<?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 https://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</version>
	<packaging>pom</packaging>
	<name>juneau</name>
	<description>Apache Juneau</description>

	<parent>
		<groupId>org.apache</groupId>
		<artifactId>apache</artifactId>
		<version>34</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>

		<!-- First step in migration to Jetty 12: EE 8 -->
		<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>

		<javadoc.plugin.version>3.11.2</javadoc.plugin.version>
		<jacoco.plugin.version>0.8.13</jacoco.plugin.version>
	</properties>

	<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>
		<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*:*internal*: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>
						<sourcepath>src/main/java</sourcepath>
					</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.14.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>6.0.0</version>
				</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.6.0</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.6.0</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>juneau-9.1.0-RC3</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>
