<?xml version='1.0' encoding='UTF-8'?>
<!--
Note to template users: update the copyright in this file (and all others) as needed.

Copyright © 2021, California Institute of Technology ("Caltech").
U.S. Government sponsorship acknowledged.

All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

• Redistributions of source code must retain the above copyright notice,
  this list of conditions and the following disclaimer.
• Redistributions must reproduce the above copyright notice, this list of
  conditions and the following disclaimer in the documentation and/or other
  materials provided with the distribution.
• Neither the name of Caltech nor its operating division, the Jet Propulsion
  Laboratory, nor the names of its contributors may be used to endorse or
  promote products derived from this software without specific prior written
  permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
-->


<!--
👉 This is the TEMPLATE project object model or `pom.xml` file.

Go through this file line-by-line and replace the template values with your own.
-->

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

    <!-- POM-specific metadata -->
    <modelVersion>4.0.0</modelVersion>

    <!--
    Speaking of the parent POM, here we say what it is: every PDS Maven project inherits from this parent.
    Maven (and other compatible build tools) resolve this automatically, but you can find the source of this
    parent at https://github.com/NASA-PDS/pdsen-maven-parent
    -->
<!--    <parent>
        <groupId>gov.nasa</groupId>
        <artifactId>pds</artifactId>
        <version>1.13.0</version>
    </parent>
  -->
    <!-- My project metadata here -->
    <properties>
        <!-- Obviously put in your own project name instead of `myproject` -->
        <project-name>Registry API</project-name>

        <!-- You'll want a Unicode-type encoding here in almost every case -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
       
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>

    <!--
    Maven "coordinates" that identify this package uniquely in the entire universe; the group identifies an 
    organizational unit (by reverse domain name) that produced the artifact:
    -->
    <groupId>gov.nasa.pds</groupId>
    <!--
    The next part of the Maven coorindate is the name of the artifact, its "artifact ID". Note we cannot use
    any expression here, as tempting as it would be to use ${project-name} here:
    -->
    <artifactId>registry-api</artifactId>
    <!-- The third part of the Maven coorindate is the version identifier of the artifact: -->
    <version>1.1.8</version>
    <!-- The final part is the kind: here we make a `jar`, but there's `war`, `ejb`, `ear`, `maven-plugin`, etc.: -->
    <packaging>pom</packaging>

    <name>${project-name}</name>
    <description>
        PDS Registry API
    </description>
    <!-- Check the calendar -->
    <inceptionYear>2021</inceptionYear>
    <url>https://nasa-pds.github.io/${project.artifactId}</url>
    <issueManagement>
        <system>GitHub</system>
        <url>https://github.com/NASA-PDS/${project.artifactId}/issues</url>
    </issueManagement>
    <scm>
        <connection>scm:git:https://github.com/NASA-PDS/${project.artifactId}.git</connection>
        <developerConnection>scm:git:ssh://github.com/NASA-PDS/${project.artifactId}.git</developerConnection>
        <url>https://nasa-pds.github.io/${project.artifactId}</url>
        <tag>main</tag>
    </scm>
    <modules >
	    <module>model</module>
	    <module>lexer</module>
	    <module>service</module>
	</modules>

    <!-- Put the packages your project depends on here -->
    <dependencies>
        <!-- If you do any kind of testing—and you should—use Junit, which is the gold standard for Java -->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <version>5.8.0-M1</version>
            <scope>test</scope>
        </dependency>
        <!--
        Here's an example dependency; you can find dependencies at https://search.maven.org. This isn't
        actually used by this template, but is shown full-fleshed out because chances are your project
        will need at least one if not many dependencies.
        -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-numbers-primes</artifactId>
            <version>1.0</version>
            <type>jar</type>
            <scope>compile</scope>
            <optional>false</optional>
        </dependency>
    </dependencies>


    <licenses>
        <license>
            <name>The Apache License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
    </licenses>

    <organization>
        <name>Planetary Data System</name>
        <url>https://pds.nasa.gov/</url>
    </organization>

    <developers>
        <developer>
            <name>Jordan Padams</name>
            <id>jordanpadams</id>
            <email>Jordan.H.Padams@jpl.nasa.gov</email>
            <organization>NASA Jet Propulsion Laboratory</organization>
            <roles>
                <role>Manager</role>
            </roles>
        </developer>
        <developer>
            <name>Thomas Loubrieu</name>
            <id>tloubrieu-jpl</id>
            <email>Thomas.J.Loubrieu@jpl.nasa.gov</email>
            <organization>NASA Jet Propulsion Laboratory</organization>
            <roles>
                <role>Development Lead</role>
            </roles>
        </developer>
        <developer>
            <name>Al Niessner</name>
            <id>al-niessner</id>
            <email>albert.f.niessner@jpl.nasa.gov</email>
            <organization>NASA Jet Propulsion Laboratory</organization>
            <roles>
                <role>Developer</role>
            </roles>
        </developer>
        <developer>
            <name>Jimmie Young</name>
            <id>jimmie</id>
            <email>Jimmie.D.Young@jpl.nasa.gov</email>
            <organization>NASA Jet Propulsion Laboratory</organization>
            <roles>
                <role>Developer</role>
            </roles>
        </developer>
    </developers>

    <build>
        <!--
        Resources (files) are non-code parts of a project that the code-parts access during run time; these
        should be bundled in a jar (or war, or whatever) and get specified here
        -->
        <!--<resources>
            <resource>
                <directory>${basedir}/src/main/resources</directory>
                <filtering>true</filtering>
                <includes>
                    <include>example.properties</include>
                </includes>
                <targetPath>gov/nasa/pds/mypackage</targetPath>
            </resource>
            <!-\- You can give <testResources> for resources needed during the test phase -\->
        </resources>-->

        <!--
        Plugins tell Maven how to operate the various lifecycle phases; include extra as needed, such
        as for CORBA stub generation from `.idl` files, or even more modern things.
        -->
        <plugins>
            <!--
            Other plugins get inherited, such as maven-compiler-plugin and maver-surefire-plugin,
            so we don't need to repeat them here.

            This plugin below makes this package an *executable* jar. If you want to make a plain jar, adjust
            the parameters below; or use a different plugin to get a differnt kind of artifact.

            You can find some plugins at: https://maven.apache.org/plugins/
            Note that other plugins exist and may be published elsewhere.
            -->
            <!--<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.2.0</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                            <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                        </manifest>
                        <manifestEntries>
                            <Main-Class>gov.nasa.pds.mypackage.Main</Main-Class>
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>
             <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
          <failOnError>false</failOnError>
          <excludePackageNames>target.generated-sources.swagger.src.gen.java.main.*,io.swagger.*</excludePackageNames>
        </configuration>
      </plugin>-->
            <plugin>
                <groupId>org.sonatype.plugins</groupId>
                <artifactId>nexus-staging-maven-plugin</artifactId>
                <version>1.6.8</version>
                <extensions>true</extensions>
                <configuration>
                    <serverId>ossrh</serverId>
                    <nexusUrl>https://oss.sonatype.org/</nexusUrl>
                    <autoReleaseAfterClose>true</autoReleaseAfterClose>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <version>3.9.1</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <version>3.0.0-M4</version>
                <configuration>
                    <tagNameFormat>v@{project.version}</tagNameFormat>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-install-plugin</artifactId>
                <version>3.0.0-M1</version>
                <executions>
                    <execution>
                        <id>default-install</id>
                        <phase>install</phase>
                        <goals>
                            <goal>install</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.0.0-M3</version>
            </plugin>
            <plugin>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>3.0.0-M3</version>
            </plugin>
        </plugins>
    </build>
    
    <profiles>
        <profile>
            <id>release</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <version>3.2.0</version>
                        <executions>
                            <execution>
                                <id>attach-sources</id>
                                <phase>prepare-package</phase>
                                <goals>
                                    <goal>jar</goal>
                                    <goal>test-jar</goal>
                                </goals> 
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <version>3.3.0</version>
                        <configuration>
                            <source>1.8</source>
                            <failOnError>false</failOnError>
                        </configuration>
                        <executions>
                            <execution>
                                <id>attach-javadocs</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>3.0.1</version>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                                <configuration>
                                    <gpgArguments>
                                        <arg>--pinentry-mode</arg>
                                        <arg>loopback</arg>
                                    </gpgArguments>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
    <distributionManagement>
        <snapshotRepository>
            <id>ossrh</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>
        <repository>
            <id>ossrh</id>
            <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
        <site>
            <id>dummy URL to enabling doc staging</id>
            <url>https://{project.artifactId}</url>
        </site>
    </distributionManagement>
    <repositories>
        <repository>
            <id>snapshots-repo</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>3.1.2</version>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>dependencies</report>
                            <report>issue-management</report>
                            <report>licenses</report>
                            <report>mailing-lists</report>
                            <report>team</report>
                            <report>summary</report>
                            <report>scm</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-changes-plugin</artifactId>
                <version>2.12.1</version>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>changes-report</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>3.3.0</version>
                <configuration>
                    <source>1.8</source>
                    <failOnError>false</failOnError>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-linkcheck-plugin</artifactId>
                <version>1.2</version>
            </plugin>
        </plugins>
    </reporting>
</project>
