<?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>10.2.0-SNAPSHOT</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>
		<asciidoctor-maven-plugin.version>2.2.6</asciidoctor-maven-plugin.version>
		<japicmp.skip>true</japicmp.skip>
	</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>
					<version>${maven-deploy-plugin.version}</version>
					<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>${maven-enforcer-plugin.version}</version>
					<inherited>false</inherited>
					<configuration>
						<skip>true</skip>
					</configuration>
					<dependencies>
						<dependency>
							<groupId>com.github.ferstl</groupId>
							<artifactId>pedantic-pom-enforcers</artifactId>
							<version>2.2.0</version>
						</dependency>
					</dependencies>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>${maven-javadoc-plugin.version}</version>
					<configuration>
						<!-- Just documentation, no sources -->
						<skip>true</skip>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-source-plugin</artifactId>
					<version>${maven-source-plugin.version}</version>
					<configuration>
						<!-- Just documentation, no sources -->
						<skipSource>true</skipSource>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.asciidoctor</groupId>
					<artifactId>asciidoctor-maven-plugin</artifactId>
					<version>${asciidoctor-maven-plugin.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.asciidoctor</groupId>
							<artifactId>asciidoctorj-pdf</artifactId>
							<version>2.3.4</version>
						</dependency>
						<dependency>
							<groupId>org.asciidoctor</groupId>
							<artifactId>asciidoctorj-diagram</artifactId>
							<version>2.2.17</version>
						</dependency>
					</dependencies>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>${maven-surefire-plugin.version}</version>
					<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>
						<version>${maven-clean-plugin.version}</version>
						<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>
