<?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.1</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>
	</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>
						<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>
						<taglet>org.apache.juneau.doc.internal.DocTag</taglet>
						<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.1-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>
