<?xml version="1.0" encoding="UTF-8"?>
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.apache.wicket</groupId>
		<artifactId>wicket-parent</artifactId>
		<version>9.11.0</version>
		<relativePath>../pom.xml</relativePath>
	</parent>
	<artifactId>wicket-user-guide</artifactId>
	<packaging>jar</packaging>
	<name>Wicket User Guide</name>
	<description>
		Provides the user guide of wicket
	</description>

	<properties>
		<automatic-module-name>org.apache.wicket.userguide</automatic-module-name>
		<asciidoctor.version>1.5.5</asciidoctor.version>
		<japicmp.skip>true</japicmp.skip>
		<!-- because of windows we need this particular version -->
		<jruby.version>1.7.21</jruby.version>
	</properties>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-deploy-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
			</plugin>
		</plugins>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-deploy-plugin</artifactId>
					<configuration>
						<!-- Just documentation. No need to deploy -->
						<skip>true</skip>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-enforcer-plugin</artifactId>
					<version>1.4</version>
					<inherited>false</inherited>
					<configuration>
						<skip>true</skip>
					</configuration>
					<dependencies>
						<dependency>
							<groupId>com.github.ferstl</groupId>
							<artifactId>pedantic-pom-enforcers</artifactId>
							<version>1.2.0</version>
						</dependency>
					</dependencies>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<configuration>
						<!-- Just documentation, no sources -->
						<skip>true</skip>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-source-plugin</artifactId>
					<configuration>
						<!-- Just documentation, no sources -->
						<skipSource>true</skipSource>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.asciidoctor</groupId>
					<artifactId>asciidoctor-maven-plugin</artifactId>
					<version>${asciidoctor.version}</version>
					<configuration>
						<backend>html</backend>
						<doctype>book</doctype>
						<attributes>
							<gemPath>${project.build.directory}/gems-provided</gemPath>
							<allow-uri-read>allow-uri-read</allow-uri-read>
							<stylesheet>css/style.css</stylesheet>
							<linkcss>true</linkcss>
						</attributes>
						<preserveDirectories>true</preserveDirectories>
						<requires>
							<require>asciidoctor-diagram</require>
						</requires>
						<sourceDocumentName>single.adoc</sourceDocumentName>
						<sourceHighlighter>coderay</sourceHighlighter>
					</configuration>
					<executions>
						<execution>
							<id>output-html</id>
							<phase>generate-resources</phase>
							<goals>
								<goal>process-asciidoc</goal>
							</goals>
						</execution>
						<execution>
							<id>output-docbook</id>
							<phase>generate-resources</phase>
							<goals>
								<goal>process-asciidoc</goal>
							</goals>
							<configuration>
								<backend>docbook</backend>
								<doctype>book</doctype>
							</configuration>
						</execution>
						<execution>
							<id>output-pdf</id>
							<phase>generate-resources</phase>
							<goals>
								<goal>process-asciidoc</goal>
							</goals>
							<configuration>
								<backend>pdf</backend>
								<attributes>
									<pagenums />
									<idprefix />
									<idseparator>-</idseparator>
									<toc />
								</attributes>
							</configuration>
						</execution>
					</executions>
					<dependencies>
						<dependency>
							<groupId>org.jruby</groupId>
							<artifactId>jruby-complete</artifactId>
							<version>9.2.7.0</version>
							<type>bundle</type>
						</dependency>
						<dependency>
							<groupId>org.asciidoctor</groupId>
							<artifactId>asciidoctorj-pdf</artifactId>
							<version>1.5.0-alpha.15</version>
						</dependency>
						<dependency>
							<groupId>org.asciidoctor</groupId>
							<artifactId>asciidoctorj-diagram</artifactId>
							<version>1.5.4</version>
						</dependency>
						<dependency>
							<groupId>org.asciidoctor</groupId>
							<artifactId>asciidoctorj</artifactId>
							<version>1.5.5</version>
						</dependency>
						<dependency>
							<groupId>org.jruby</groupId>
							<artifactId>jruby-complete</artifactId>
							<version>${jruby.version}</version>
						</dependency>
					</dependencies>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<configuration>
						<!-- No Java tests here -->
						<skip>true</skip>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>

	<profiles>
		<profile>
			<id>guide</id>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
			<build>
				<plugins>
					<plugin>
						<artifactId>maven-clean-plugin</artifactId>
						<configuration>
							<filesets>
								<fileset>
									<directory>plugins</directory>
									<includes>
										<include>**/*</include>
									</includes>
									<followSymlinks>false</followSymlinks>
								</fileset>
							</filesets>
						</configuration>
					</plugin>
					<plugin>
						<groupId>org.asciidoctor</groupId>
						<artifactId>asciidoctor-maven-plugin</artifactId>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>dot-1</id>
			<activation>
				<file>
					<exists>/usr/local/bin/dot</exists>
				</file>
			</activation>
			<properties>
				<dot.location>/usr/local/bin/dot</dot.location>
			</properties>
		</profile>
		<profile>
			<id>dot-2</id>
			<activation>
				<file>
					<exists>/usr/bin/dot</exists>
				</file>
			</activation>
			<properties>
				<dot.location>/usr/bin/dot</dot.location>
			</properties>
		</profile>
	</profiles>
</project>
