<?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.1.3</version>
	<packaging>pom</packaging>
	<name>juneau</name>
	<description>Apache Juneau</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.1.3</javadoc.juneau.version>
		<juneauVersion>8.1.3</juneauVersion>
		<juneauVersionNext>8.1.4</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-sc</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>
						<exclude>**/empty.txt</exclude>
						
						
						<!-- Eclipse metadata files -->
						<exclude>**/.settings/**</exclude>
						<exclude>**/.project</exclude>
						<exclude>**/.classpath</exclude>
						<exclude>**/*.launch</exclude>
						<exclude>**/*.prefs</exclude>

						<!-- Overlay files -->
						<exclude>**/*.2</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>https://docs.oracle.com/javase/8/docs/api/</link>
							<link>https://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>https://juneau.apache.org/</url>
	<!-- 
	Inherited from parent pom 
	<organization>
		<name>The Apache Software Foundation</name>
		<url>https://www.apache.org/</url>
	</organization>
	-->
	<inceptionYear>2016</inceptionYear>

	<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-8.1.3-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>
		<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>
