<?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>9.1.0-SNAPSHOT</version>
	<packaging>pom</packaging>
	<name>juneau</name>
	<description>Apache Juneau</description>
	
	<parent>
		<groupId>org.apache</groupId>
		<artifactId>apache</artifactId>
		<version>31</version>
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<maven.compiler.source>17</maven.compiler.source>
		<maven.compiler.target>17</maven.compiler.target>

		<jaxb.version>2.3.1</jaxb.version>
		<junit.version>4.13.2</junit.version>
		<jaxrs.version>1.1.1</jaxrs.version>
		<servlet.version>6.0.0</servlet.version>
		<httpclient.version>4.5.14</httpclient.version>
		<httpcore.version>4.4.16</httpcore.version>
		<jetty.version>11.0.20</jetty.version>
		<juneau.compare.version>9.0.1</juneau.compare.version>
		<javadoc.juneau.version>9.1.0</javadoc.juneau.version>
		<juneauVersion>9.1.0</juneauVersion>
		<juneauVersionNext>9.1.1</juneauVersionNext>
		<derby.version>10.17.1.0</derby.version>
		<hibernate.version>5.6.15.Final</hibernate.version>
		<springboot.version>3.2.4</springboot.version>
		<xml.apis.version>2.0.2</xml.apis.version>
		<javadoc.executable />
		<javadoc.plugin.version>3.6.3</javadoc.plugin.version>
		<jacoco.plugin.version>0.8.12</jacoco.plugin.version>
	</properties>

	<dependencyManagement>
		<dependencies>
			<dependency>
	            <groupId>org.junit</groupId>
            	<artifactId>junit-bom</artifactId>
            	<version>5.10.2</version>
            	<type>pom</type>
	            <scope>import</scope>
        	</dependency>
     		<dependency>
				<groupId>javax.ws.rs</groupId>
				<artifactId>jsr311-api</artifactId>
				<version>${jaxrs.version}</version>
			</dependency>
			<dependency>
				<groupId>jakarta.servlet</groupId>
				<artifactId>jakarta.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>httpcore</artifactId>
				<version>${httpcore.version}</version>
			</dependency>
			<dependency>
				<!-- Java 11 -->
				<groupId>javax.xml.bind</groupId>
				<artifactId>jaxb-api</artifactId>
				<version>${jaxb.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-utest</module>
		<module>juneau-utest-utils</module>
		<module>juneau-all</module>
		<module>juneau-distrib</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>
		<defaultGoal>clean verify</defaultGoal>
		<plugins>
			<plugin>
				<artifactId>maven-enforcer-plugin</artifactId>
				<executions>
					<execution>
						<id>enforce-maven</id>
						<goals>
							<goal>enforce</goal>
						</goals>
						<configuration>
							<rules>
								<requireMavenVersion>
									<version>3.6.3</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>
						<exclude>**/TODO.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>**/*.log</exclude>
						<exclude>**/*.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>	
											
						<exclude>**/.asf.yaml</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>${javadoc.plugin.version}</version>
					<configuration>
						<doclint>missing,reference,syntax</doclint>
						<sourcetab>3</sourcetab>
						<notimestamp>true</notimestamp>
						<verbose>true</verbose>
						<additionalJOptions>
							<additionalJOption>-J-DjuneauVersion=${juneauVersion}</additionalJOption>
							<additionalJOption>-J-DjuneauVersionNext=${juneauVersionNext}</additionalJOption>
							<additionalJOption>--allow-script-in-comments</additionalJOption>
						</additionalJOptions>
						<show>protected</show>
						<windowtitle>Apache Juneau ${project.version}</windowtitle>
						<author>true</author>
						<linksource>true</linksource>
						<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>
						<excludePackageNames>*proto*:*test*:org.apache.juneau.doc.internal</excludePackageNames>
						<linksource>true</linksource>
 						<links>
							<link>https://docs.oracle.com/javase/${maven.compiler.target}/docs/api/</link>
							<link>https://jakarta.ee/specifications/platform/8/apidocs/</link>
							<link>https://hc.apache.org/httpcomponents-client-4.5.x/current/httpclient/apidocs/</link>
							<link>https://hc.apache.org/httpcomponents-core-4.4.x/current/httpcore/apidocs/</link>
						</links>
						<docfilessubdirs>true</docfilessubdirs>
						<javadocDirectory>${basedir}/juneau-doc/src/main/javadoc</javadocDirectory>
						<javadocExecutable>${javadoc.executable}</javadocExecutable>
						<source>${maven.compiler.source}</source>
						<detectJavaApiLink>false</detectJavaApiLink>
					</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>
					<version>3.13.0</version>
					<configuration>
						<source>${maven.compiler.source}</source>
						<target>${maven.compiler.target}</target>
						<!--compilerArgument>-parameters</compilerArgument>
						<testCompilerArgument>-parameters</testCompilerArgument-->
					</configuration>
				</plugin>

				<plugin>
					<groupId>org.apache.felix</groupId>
					<artifactId>maven-bundle-plugin</artifactId>
					<version>5.1.9</version>
				</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>

				<plugin>
					<groupId>org.jacoco</groupId>
					<artifactId>jacoco-maven-plugin</artifactId>
					<version>${jacoco.plugin.version}</version>
				</plugin>

   				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-shade-plugin</artifactId>
					<!-- Same version as org.apache:apache:30 for now -->
					<version>3.5.2</version>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-source-plugin</artifactId>
					<!-- version > 3.3.0 suffers from https://issues.apache.org/jira/browse/MSOURCES-143 -->
					<version>3.2.1</version>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>

	<reporting>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>${javadoc.plugin.version}</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jxr-plugin</artifactId>
				<version>3.3.2</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-report-plugin</artifactId>
				<configuration>
					<aggregate>true</aggregate>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
				<version>${jacoco.plugin.version}</version>
				<configuration>
					<excludes>
						<exclude>**/doc/**/*</exclude>
						<exclude>**/examples/**/*</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>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>
        <developer>
          <id>ggregory</id>
          <name>Gary Gregory</name>
          <email>ggregory at apache.org</email>
          <url>https://www.garygregory.com</url>
          <organization>The Apache Software Foundation</organization>
          <organizationUrl>https://www.apache.org/</organizationUrl>      
          <roles>
            <role>PMC Member</role>
          </roles>
          <timezone>America/New_York</timezone>
          <properties>
            <picUrl>https://people.apache.org/~ggregory/img/garydgregory80.png</picUrl>
          </properties>
        </developer>
	</developers>
</project>
