<?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>8.0.1-SNAPSHOT</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>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>

		<jaxb.version>2.3.1</jaxb.version>
		<jena.version>3.10.0</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.13.v20181111</jetty.version>
		<juneau.compare.version>8.0.0</juneau.compare.version>
		<javadoc.juneau.version>8.0.1</javadoc.juneau.version>
		<juneauVersion>8.0.1</juneauVersion>
		<juneauVersionNext>8.0.2</juneauVersionNext>
		<derby.version>10.10.2.0</derby.version>
		<hibernate.version>5.0.9.Final</hibernate.version>
		<javax.inject.version>1</javax.inject.version>
		<springframework.version>2.0.1.RELEASE</springframework.version>
		<xml.apis.version>1.4.01</xml.apis.version>
	</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>javax.xml.bind</groupId>
				<artifactId>jaxb-api</artifactId>
				<version>${jaxb.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>
				<!-- Java 11 -->
				<groupId>javax.activation</groupId>
				<artifactId>javax.activation-api</artifactId>
				<version>1.2.0</version>
			</dependency>
			<dependency>
				<!-- Java 11 -->
				<groupId>com.sun.activation</groupId>
				<artifactId>javax.activation</artifactId>
				<version>1.2.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>
		<module>juneau-sc</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>
						<exclude>**/derby.log</exclude>
						
						<!-- Generated in juneau-microservice-template for some reason -->
						<exclude>**/dependency-reduced-pom.xml</exclude>

						<!-- Generated by juneau-docs.jar -->
						<exclude>**/docs.txt</exclude>
						<exclude>**/toc.txt</exclude>
						
						<!-- Files needed by Heroku as-is -->
						<exclude>**/app.json</exclude>						
						<exclude>**/Procfile</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.8</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*:*test*:org.apache.juneau.doc.internal</excludePackageNames>
						<linksource>true</linksource>
						<links>
							<link>http://docs.oracle.com/javase/8/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>
							<taglet>
								<tagletClass>org.apache.juneau.doc.internal.FragmentTag</tagletClass>
								<tagletpath>${basedir}/juneau-doc/juneau-doc.jar</tagletpath>
							</taglet>
							<taglet>
								<tagletClass>org.apache.juneau.doc.internal.SourceTag</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>

				<plugin>
					<artifactId>maven-compiler-plugin</artifactId>
					<configuration>
						<source>1.8</source>
						<target>1.8</target>
						<compilerArgument>-parameters</compilerArgument>
      						<testCompilerArgument>-parameters</testCompilerArgument>
					</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.8.2</version>
				<configuration>
					<excludes>
						<exclude>**/doc/**/*</exclude>
						<exclude>**/examples/**/*</exclude>
						<exclude>**/testutils/**/*</exclude>
					</excludes>
					<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>HEAD</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>
		<developer>
			<id>shalithasuranga</id>
			<name>Shalitha Suranga</name>
			<roles><role>PMC</role></roles>
		</developer>
		<developer>
			<id>marcelosouzav</id>
			<name>Marcelo Vieira</name>
			<roles><role>PMC</role></roles>
		</developer>
		<developer>
			<id>akayeshmantha</id>
			<name>Ayeshmantha Perera</name>
			<roles><role>PMC</role></roles>
		</developer>
	</developers>
</project>
