<?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.petstore</groupId>
    <artifactId>juneau-petstore</artifactId>
    <version>8.1.2-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>Apache Juneau Petstore Application</name>
    <description>Sample application for demonstrating 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>
        
        <junit.version>4.11</junit.version>
        <servlet.version>3.1.0</servlet.version>
        <httpclient.version>4.5.6</httpclient.version>
        <juneau.version>8.1.2</juneau.version>
        <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>
    
    <modules>
		<module>juneau-petstore-api</module>
        <module>juneau-petstore-server</module>
        <module>juneau-petstore-client</module>
	</modules>
    
    <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>
                <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>
        
    <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>2019</inceptionYear>
    
    <scm>
        <connection>scm:git:https://gitbox.apache.org/repos/asf/juneau-petstore.git</connection>
        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/juneau-petstore.git</developerConnection>
        <url>https://github.com/apache/juneau-petstore</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>

    <distributionManagement>
        <repository>
            <id>apache.releases.https</id>
            <name>Apache Release Distribution Repository</name>
            <url>https://repository.apache.org/service/local/staging/deploy/maven2</url>
        </repository>
        <snapshotRepository>
            <id>apache.snapshots.https</id>
            <name>Apache Development Snapshot Repository</name>
            <url>https://repository.apache.org/content/repositories/snapshots</url>
        </snapshotRepository>
    </distributionManagement>

</project>
