<?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/xsd/maven-4.0.0.xsd">

	<modelVersion>4.0.0</modelVersion>

	<groupId>org.apache.juneau</groupId>
	<artifactId>juneau</artifactId>
	<version>7.2.2</version>
	<packaging>pom</packaging>
	<name>Apache Juneau</name>
	<description>All the Apache Juneau content in one convenient package.</description>
	
	<parent>
		<groupId>org.apache</groupId>
		<artifactId>apache</artifactId>
		<version>21</version>
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<jena.version>2.7.1</jena.version>
		<junit.version>4.11</junit.version>
		<jaxrs.version>1.1.1</jaxrs.version>
		<servlet.version>3.1.0</servlet.version>
		<httpclient.version>4.5.6</httpclient.version>
		<jetty.version>9.4.12.v20180830</jetty.version>
		<juneau.compare.version>7.2.0</juneau.compare.version>
		<javadoc.juneau.version>7.2.1</javadoc.juneau.version>
		<juneauVersion>7.2.2</juneauVersion>
		<juneauVersionNext>7.2.3</juneauVersionNext>
	</properties>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.apache.jena</groupId>
				<artifactId>jena-core</artifactId>
				<version>${jena.version}</version>
			</dependency>
			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>${junit.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>javax.ws.rs</groupId>
				<artifactId>jsr311-api</artifactId>
				<version>${jaxrs.version}</version>
			</dependency>
			<dependency>
				<groupId>javax.servlet</groupId>
				<artifactId>javax.servlet-api</artifactId>
				<version>${servlet.version}</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>org.apache.httpcomponents</groupId>
				<artifactId>httpclient</artifactId>
				<version>${httpclient.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.httpcomponents</groupId>
				<artifactId>httpmime</artifactId>
				<version>${httpclient.version}</version>
			</dependency>
			<dependency>
				<groupId>com.github.siom79.japicmp</groupId>
				<artifactId>japicmp</artifactId>
				<version>0.13.0</version>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<modules>
		<module>juneau-core</module>
		<module>juneau-rest</module>
        <module>juneau-microservice</module>
        <module>juneau-examples</module>
        <module>juneau-doc</module>
		<module>juneau-releng</module>
    </modules>

	<distributionManagement>
		<!-- Uncomment to generate Maven site in /tmp/site --> 
		<!--site>
			<id>${project.artifactId}-site</id>
			<url>file:///tmp/site</url>
		</site-->
	</distributionManagement>

	<build>
		<plugins>
			<plugin>
				<artifactId>maven-enforcer-plugin</artifactId>
				<executions>
					<execution>
						<id>enforce-maven</id>
						<goals>
							<goal>enforce</goal>
						</goals>
						<configuration>
							<rules>
								<requireMavenVersion>
									<!-- ! Maven minimum 3.2.0 to build. -->
									<version>3.2.0</version>
								</requireMavenVersion>
							</rules>
						</configuration>
					</execution>
				</executions>
			</plugin>
			
			<!-- 
				Runs Apache Rat against all source code to make sure all files have licenses. 
			-->
			<plugin>
				<groupId>org.apache.rat</groupId>
				<artifactId>apache-rat-plugin</artifactId>
				<!--
					! Can be removed if updated to asf parent version 19.
				-->
				<configuration>
					<excludes>
						<exclude>**/DEPENDENCIES</exclude>
						<exclude>**/target/**</exclude>
						
						<!-- Eclipse metadata files -->
						<exclude>**/.settings/**</exclude>
						<exclude>**/.project</exclude>
						<exclude>**/.classpath</exclude>
						<exclude>**/*.launch</exclude>
						
						<!-- Generated by embedded jetty server -->
						<exclude>**/jetty.out.xml</exclude>
						
						<!-- Generated in juneau-microservice-template for some reason -->
						<exclude>**/dependency-reduced-pom.xml</exclude>

						<!-- Generated by juneau-docs.jar -->
						<exclude>**/docs.txt</exclude>
					</excludes>
					<consoleOutput>true</consoleOutput>
					<!-- Note:  useEclipseDefaultExcludes does not work for subprojects.  See RAT-107 -->
				</configuration>
				<executions>
					<execution>
						<phase>verify</phase>
						<goals>
							<goal>check</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>

		<pluginManagement>
			<plugins>
		
				<!-- Generates the javadocs for all non-test projects. -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>2.10.4</version>
					<configuration>
						<additionalJOptions>
							<additionalJOption>-J-DjuneauVersion=${juneauVersion}</additionalJOption>
							<additionalJOption>-J-DjuneauVersionNext=${juneauVersionNext}</additionalJOption>
						</additionalJOptions>
						<show>protected</show>
						<windowtitle>${project.name} ${project.version}</windowtitle>
						<author>true</author>
						<linksource>true</linksource>
						<source>1.7</source>
						<bootclasspath>${sun.boot.class.path}</bootclasspath>
						<overview>${basedir}/juneau-doc/src/main/javadoc/overview.html</overview>
						<stylesheetfile>${basedir}/juneau-doc/src/main/javadoc/javadoc.css</stylesheetfile>
						<use>false</use>
						<additionalparam>-sourcetab 3 -notimestamp -Xdoclint:none --allow-script-in-comments</additionalparam>
						<verbose>false</verbose>
						<excludePackageNames>*proto*:*samples*:*examples*:*test*:org.apache.juneau.doc.internal</excludePackageNames>
						<linksource>true</linksource>
						<links>
							<link>http://docs.oracle.com/javase/7/docs/api/</link>
							<link>http://docs.oracle.com/javaee/5/api/</link>
						</links>
						<docfilessubdirs>true</docfilessubdirs>
						<javadocDirectory>${basedir}/juneau-doc/src/main/javadoc</javadocDirectory>
						<taglets>
							<taglet>
								<tagletClass>org.apache.juneau.doc.internal.DocTag</tagletClass>
								<tagletpath>${basedir}/juneau-doc/juneau-doc.jar</tagletpath>
							</taglet>
							<taglet>
								<tagletClass>org.apache.juneau.doc.internal.PropertyTag</tagletClass>
								<tagletpath>${basedir}/juneau-doc/juneau-doc.jar</tagletpath>
							</taglet>
							
							<!--org.apache.juneau.doc.internal.DocTag</taglet-->
							<!-- taglet>org.apache.juneau.doc.internal.PropertyTag</taglet-->
						</taglets>
						<tagletpath>${basedir}/juneau-doc/juneau-doc.jar</tagletpath>
					</configuration>
					<executions>
						<execution>
							<id>attach-javadocs</id>
							<goals>
								<goal>jar</goal>
							</goals>
						</execution>
						<execution>
							<id>aggregate</id>
							<phase>site</phase>
							<goals>
								<goal>aggregate</goal>
							</goals>
						</execution>
					</executions>
				</plugin>

				<!-- Forces all modules to compile at Java 6. -->
				<plugin>
					<artifactId>maven-compiler-plugin</artifactId>
					<configuration>
						<source>1.7</source>
						<target>1.7</target>
					</configuration>
				</plugin>

		        <plugin>
		            <groupId>org.eclipse.m2e</groupId>
		            <artifactId>lifecycle-mapping</artifactId>
		            <version>1.0.0</version>
		            <configuration>
		                <lifecycleMappingMetadata>
		                    <pluginExecutions>
		                        <pluginExecution>
		                            <pluginExecutionFilter>
		                                <groupId>org.apache.maven.plugins</groupId>
		                                <artifactId>maven-remote-resources-plugin</artifactId>
		                                <versionRange>[1.0,)</versionRange>
		                                <goals>
		                                    <goal>process</goal>
		                                </goals>
		                            </pluginExecutionFilter>
		                            <action>
		                                <ignore>
		                                </ignore>
		                            </action>
		                        </pluginExecution>
		                    </pluginExecutions>
		                </lifecycleMappingMetadata>
		            </configuration>
		        </plugin>
			</plugins>
		</pluginManagement>
	</build>

	<reporting>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>2.10.4</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jxr-plugin</artifactId>
				<version>2.5</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-report-plugin</artifactId>
				<version>2.18</version>
				<configuration>
					<aggregate>true</aggregate>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
				<version>0.7.2.201409121644</version>
				<configuration>
					<fileSets>
						<fileSet implementation="org.apache.maven.shared.model.fileset.FileSet">
							<directory>${project.parent.build.directory}</directory>
							<includes>
								<include>*.exec</include>
							</includes>
						</fileSet>
					</fileSets>
				</configuration>
			</plugin>
		</plugins>
	</reporting>

	<url>http://juneau.apache.org</url>
	<organization>
		<name>Apache</name>
		<url>http://www.apache.org/</url>
	</organization>
	<scm>
		<connection>scm:git:https://gitbox.apache.org/repos/asf/juneau.git</connection>
		<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/juneau.git</developerConnection>
		<url>https://github.com/apache/juneau</url>
		<tag>juneau-7.2.2-RC1</tag>
	</scm>
	<issueManagement>
		<system>Jira</system>
		<url>https://issues.apache.org/jira/browse/JUNEAU</url>
	</issueManagement>
	<mailingLists>
		<mailingList>
			<name>Apache Juneau Developers</name>
			<post>dev@juneau.apache.org</post>
			<subscribe>list-subscribe@juneau.apache.org</subscribe>
			<unsubscribe>list-unsubscribe@juneau.apache.org</unsubscribe>
			<archive>https://lists.apache.org/list.html?dev@juneau.apache.org</archive>
		</mailingList>
	</mailingLists>
	<developers>
		<developer>
			<id>johnadament</id>
			<name>John D. Ament</name>
			<roles><role>PMC</role></roles>
		</developer>
		<developer>
			<id>sblackmon</id>
			<name>Steve Blackmon</name>
			<roles><role>PMC</role></roles>
		</developer>
		<developer>
			<id>clr</id>
			<name>Craig L Russell</name>
			<roles><role>PMC</role></roles>
		</developer>
		<developer>
			<id>stain</id>
			<name>Stian Soiland-Reyes</name>
			<roles><role>PMC</role></roles>
		</developer>
		<developer>
			<id>jochen</id>
			<name>Jochen Wiedmann</name>
			<roles><role>PMC</role></roles>
		</developer>
		<developer>
			<id>jamesbognar</id>
			<name>James Bognar</name>
			<roles><role>PMC</role></roles>
		</developer>
		<developer>
			<id>dmg</id>
			<name>David M Goddard</name>
			<roles><role>PMC</role></roles>
		</developer>
		<developer>
			<id>phaumer</id>
			<name>Peter Haumer</name>
			<roles><role>PMC</role></roles>
		</developer>
		<developer>
			<id>yidonguk</id>
			<name>Raphi D Lee</name>
			<roles><role>PMC</role></roles>
		</developer>
	</developers>
</project>
