<?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.0.0-M4</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>
		<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.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>
