<?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>7.14.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>
		<asciidoctor.version>1.5.5</asciidoctor.version>
		<clirr.skip>true</clirr.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-javadoc-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.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>
			</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>
