<?xml version="1.0" encoding="UTF-8"?>
<!-- ====================================================
         Maven 2 project configuration file
         http://maven.apache.org/maven2/
     ==================================================== -->

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

  <prerequisites>
    <maven>3.0.2</maven>
  </prerequisites>



  <!-- ====================================================
           Project description (including license)
       ==================================================== -->
  <groupId>org.opengis</groupId>
  <artifactId>geoapi-parent</artifactId>
  <packaging>pom</packaging>
  <version>4.0-M06</version>
  <name>GeoAPI</name>
  <url>http://www.geoapi.org/</url>
  <description>
    The development community in building GIS solutions is sustaining an enormous
    level of effort. The GeoAPI project aims to reduce duplication and increase
    interoperability by providing neutral, interface-only APIs derived from OGC/ISO
    Standards.
  </description>

  <organization>
    <name>Open Geospatial Consortium</name>
    <url>http://www.opengeospatial.org/</url>
  </organization>
  <inceptionYear>1994</inceptionYear>

  <licenses>
    <license>
      <name>OGC copyright</name>
      <url>https://raw.githubusercontent.com/opengeospatial/geoapi/master/LICENSE.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>



  <!-- ====================================================
           Profiles and properties

           If the Proj.4 native library is installed on the
           local machine, then GeoAPI can be built as below:

           mvn install -DskipNativeLibraryTests=false
       ==================================================== -->
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <website.encoding>UTF-8</website.encoding>
    <skipNativeLibraryTests>true</skipNativeLibraryTests>
  </properties>

  <!--
    The default configuration is used for snapshot deployments,  in order to test GeoAPI
    experimental features in an open source implementation. The "sign-artifacts" profile
    shall be activated for all final releases by OGC staff.
  -->
  <profiles>
    <profile>
      <id>sign-artifacts</id>
      <activation>
        <property>
          <name>performRelease</name>
          <value>true</value>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
      <distributionManagement>
        <repository>
          <id>sonatype-nexus-staging</id>
          <name>Open Source Geospatial Foundation</name>
          <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
      </distributionManagement>
    </profile>
  </profiles>



  <!-- ====================================================
           Issue managements and mailing lists
       ==================================================== -->
  <scm>
    <connection>scm:git:https://github.com/opengeospatial/geoapi</connection>
    <url>https://github.com/opengeospatial/geoapi</url>
  </scm>

  <ciManagement>
    <system>jenkins</system>
    <url>http://jenkins.geotoolkit.org/job/GeoAPI/</url>
  </ciManagement>

  <issueManagement>
    <system>JIRA</system>
    <url>https://osgeo-org.atlassian.net/projects/GEO/issues</url>
  </issueManagement>

  <mailingLists>
    <mailingList>
      <name>GeoAPI development (public)</name>
      <subscribe>http://lists.sourceforge.net/lists/listinfo/geoapi-devel</subscribe>
      <unsubscribe>http://lists.sourceforge.net/lists/listinfo/geoapi-devel</unsubscribe>
      <post>geoapi-devel@lists.sourceforge.net</post>
      <archive>http://sourceforge.net/mailarchive/forum.php?forum_name=geoapi-devel</archive>
    </mailingList>
    <mailingList>
      <name>GeoAPI Standard Working Group (OGC)</name>
      <subscribe>https://lists.opengeospatial.org/mailman/listinfo/geoapi-3.0.swg</subscribe>
      <unsubscribe>https://lists.opengeospatial.org/mailman/listinfo/geoapi-3.0.swg</unsubscribe>
      <post>geoapi-3.0.swg@lists.opengeospatial.org</post>
      <archive>https://lists.opengeospatial.org/mailman/private/geoapi-3.0.swg</archive>
    </mailingList>
  </mailingLists>



  <!-- ====================================================
           Developers and contributors
       ==================================================== -->
  <developers>
    <developer>
      <name>GeoAPI contributors</name>
      <organizationUrl>http://www.geoapi.org/</organizationUrl>
      <roles>
        <role>Java developers</role>
      </roles>
    </developer>
    <developer>
      <name>GeoAPI 3.0 Standard Working Group</name>
      <organization>Open Geospatial Consortium</organization>
      <organizationUrl>http://www.opengeospatial.org/</organizationUrl>
      <roles>
        <role>Specification editors</role>
      </roles>
    </developer>
  </developers>



  <!-- ====================================================
           External dependencies
       ==================================================== -->
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>javax.measure</groupId>
        <artifactId>unit-api</artifactId>
        <version>1.0</version>
      </dependency>
      <dependency>
        <groupId>tec.units</groupId>
        <artifactId>unit-ri</artifactId>
        <version>1.0.1</version>
      </dependency>
      <dependency>
        <!-- The JUnit version number appears also in the Javadoc plugin configuration,
             in shell scripts, in Java code generating reports, and in NetBeans project
             configuration. If JUnit is updated, please search for the version number in
             the whole project. Search also for version number of the Hamcrest dependency. -->
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <!-- The vecmath dependency is used only by demo modules. -->
        <groupId>javax.vecmath</groupId>
        <artifactId>vecmath</artifactId>
        <version>1.5.2</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <groupId>javax.measure</groupId>
      <artifactId>unit-api</artifactId>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>



  <!-- ====================================================
           Build management
       ==================================================== -->
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.5.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.19.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>1.8</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>3.0.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-gpg-plugin</artifactId>
          <version>1.6</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.5.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-bundle-plugin</artifactId>
          <version>3.2.0</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>1.12</version>
        </plugin>
      </plugins>
    </pluginManagement>



    <!-- ====================================================
             Compilation
         ==================================================== -->
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <executions>
          <execution>
            <id>attach-sources</id>
            <goals>
              <goal>jar-no-fork</goal>
              <goal>test-jar-no-fork</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.7</source>          <!-- Same than the version required by JSR-363.    -->
          <target>1.7</target>          <!-- Same than the version required by JSR-363.    -->
          <debug>false</debug>          <!-- Whether to include debugging information.     -->
          <optimize>true</optimize>     <!-- Use the compiler's optimization methods.      -->
          <encoding>${project.build.sourceEncoding}</encoding>
          <useIncrementalCompilation>false</useIncrementalCompilation> <!-- https://issues.apache.org/jira/browse/MCOMPILER-209 -->
          <showWarnings>true</showWarnings>
          <showDeprecation>true</showDeprecation>
          <compilerArgs>
            <arg>-Xlint:all</arg>
          </compilerArgs>
        </configuration>
      </plugin>



      <!-- ====================================================
               JAR packaging (standard tools and OSGi)
           ==================================================== -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>test-jar</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
              <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
            </manifest>
            <manifestEntries>
              <Specification-Title>GeoAPI</Specification-Title>
              <Specification-Version>${project.version}</Specification-Version>
              <Specification-Vendor>${project.organization.name}</Specification-Vendor>
              <Implementation-Vendor>The GeoAPI project</Implementation-Vendor>
              <Implementation-URL>http://www.geoapi.org</Implementation-URL>
            </manifestEntries>
          </archive>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <extensions>true</extensions>
        <configuration>
          <instructions>
            <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
            <Bundle-DocURL>http://www.geoapi.org</Bundle-DocURL>
            <Specification-Title>GeoAPI</Specification-Title>
            <Specification-Version>${project.version}</Specification-Version>
            <Specification-Vendor>${project.organization.name}</Specification-Vendor>
            <Implementation-Vendor>The GeoAPI project</Implementation-Vendor>
            <Implementation-URL>http://www.geoapi.org</Implementation-URL>
          </instructions>
        </configuration>
      </plugin>


      <!-- =======================================================
               Remove previous snapshots from local repository
           ======================================================= -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>remove-old-artifacts</id>
            <goals>
              <goal>remove-project-artifact</goal>
            </goals>
            <configuration>
              <removeAll>false</removeAll> <!-- Remove only snapshots of this project version. -->
            </configuration>
          </execution>
        </executions>
      </plugin>



      <!-- ====================================================
               Web site generation
           ==================================================== -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <configuration>
          <locales>en</locales>
          <inputEncoding>${project.build.sourceEncoding}</inputEncoding>
          <outputEncoding>${website.encoding}</outputEncoding>
        </configuration>
      </plugin>
    </plugins>

    <!-- Following is for users who need to deploy using the ssh rather then the file protocol. -->
    <extensions>
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
         <artifactId>wagon-ssh-external</artifactId>
         <version>2.10</version>
      </extension>
    </extensions>
  </build>



  <!-- ==============================================================
         Reports configuration.
       ============================================================== -->
  <reporting>
    <plugins>
      <plugin>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <version>2.9</version>
        <reportSets>
          <reportSet>
            <reports>
              <report>index</report>
              <report>summary</report>
              <report>modules</report>
              <report>license</report>
              <report>scm</report>
              <report>cim</report>
              <report>project-team</report>
              <report>mailing-list</report>
              <report>issue-tracking</report>
              <report>dependencies</report>
              <report>dependency-convergence</report>
              <report>dependency-management</report>
              <report>plugin-management</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>



      <!-- ====================================================
               Javadoc generation
           ==================================================== -->
      <plugin>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>2.10.4</version>
        <configuration>
          <encoding>${project.build.sourceEncoding}</encoding>
          <docencoding>${website.encoding}</docencoding>
          <charset>${website.encoding}</charset>
          <author>false</author>          <!-- Specifies whether or not the author text is included.              -->
          <version>false</version>        <!-- Includes or not the version text in the generated docs.            -->
          <source>1.7</source>            <!-- Same than the version number used for compilation.                 -->
          <noqualifier>all</noqualifier>  <!-- Omits qualifying package name from ahead of class names in output. -->
          <quiet>true</quiet>             <!-- Shuts off non-error and non-warning messages.                      -->
          <maxmemory>384M</maxmemory>     <!-- The maximum Java heap size to be used when launching the javadoc.  -->
          <locale>en</locale>             <!-- The locale that javadoc uses when generating documentation.        -->
          <keywords>true</keywords>       <!-- Adds HTML meta keyword tags to the generated file for each class.  -->
          <breakiterator>true</breakiterator>
          <stylesheetfile>geoapi/src/main/javadoc/stylesheet.css</stylesheetfile>

          <!-- Do not add the "API" word in document title, because it is already included in the "GeoAPI name. -->
          <doctitle>${project.name} ${project.version}</doctitle>
          <windowtitle>${project.name} ${project.version}</windowtitle>

          <!-- Doclet for special processing of CSS files. -->
          <doclet>org.opengis.tools.doclet.Doclet</doclet>
          <docletArtifact>
            <groupId>org.opengis</groupId>
            <artifactId>tools</artifactId>
            <version>${project.version}</version>
          </docletArtifact>

          <!-- Custom taglets implemented in Java. -->
          <taglets>
            <taglet><tagletClass>org.opengis.tools.taglet.Departure</tagletClass></taglet>
          </taglets>
          <tagletArtifact>
            <groupId>org.opengis</groupId>
            <artifactId>tools</artifactId>
            <version>${project.version}</version>
          </tagletArtifact>

          <!-- Enables the Javadoc tool to interpret a simple, one-argument
               custom block tag tagname in doc comments. Note: <placement/>
               should be a combination of the "Xaoptcmf" letters. -->
          <tags>
            <tag><placement>X</placement>    <name>category</name>  <head>Category:</head></tag>
            <tag><placement>tfmc</placement> <name>condition</name> <head>Condition:</head></tag>
            <tag><placement>tfmc</placement> <name>todo</name>      <head>TODO:</head></tag>
            <tag><placement>X</placement>    <name>issue</name>     <head>JIRA:</head></tag>
            <tag><placement>fm</placement>   <name>unitof</name>    <head>Unit:</head></tag>
          </tags>

          <!-- Creates links to existing javadoc-generated
               documentation of external referenced classes. -->
          <detectJavaApiLink>false</detectJavaApiLink>
          <links>
            <link>http://docs.oracle.com/javase/8/docs/api/</link>
            <link>http://docs.oracle.com/javaee/7/api/</link> <!-- For InternationalString link. -->
            <link>http://download.java.net/media/java3d/javadoc/1.5.2/</link>
            <link>http://download.java.net/media/jai/javadoc/1.1.3/jai-apidocs/</link>
            <link>http://junit.org/javadoc/latest/</link>
            <link>http://www.unidata.ucar.edu/software/thredds/current/netcdf-java/javadoc/</link> <!-- Used by example code. -->
            <link>http://www.geoapi.org/snapshot/javadoc/</link> <!-- For modules that depend on GeoAPI. -->
          </links>

          <!-- Separates packages on the overview page into the groups specified.
               Places the normative packages first, and the pending ones last. -->
          <groups>
            <group>
              <title>Feature and coverage</title>
              <packages>org.opengis.feature*:org.opengis.coverage*</packages>
            </group>
            <group>
              <title>Geometry and Topology</title>
              <packages>org.opengis.geometry*:org.opengis.topology*</packages>
            </group>
            <group>
              <title>Spatial Referencing by Coordinates</title>
              <packages>org.opengis.referencing*:org.opengis.temporal*:org.opengis.parameter*</packages>
            </group>
            <group>
              <title>Metadata</title>
              <packages>org.opengis.metadata*</packages>
            </group>
            <group>
              <title>Base package</title>
              <packages>org.opengis.util*:org.opengis.annotation*</packages>
            </group>

            <!-- Pending packages. -->
            <group>
              <title>Filter</title>
              <packages>org.opengis.filter*</packages>
            </group>
            <group>
              <title>Display and Styling</title>
              <packages>org.opengis.display*:org.opengis.style*:org.opengis.layer*:org.opengis.sld*</packages>
            </group>
            <group>
              <title>Observations and Measurements</title>
              <packages>org.opengis.observation*</packages>
            </group>
            <group>
              <title>Catalog Services</title>
              <packages>org.opengis.catalog*</packages>
            </group>

            <!-- Other packages. -->
            <group>
              <title>Conformance tests</title>
              <packages>org.opengis.test*</packages>
            </group>
            <group>
              <title>Tests runner and reports</title>
              <packages>org.opengis.test.runner*:org.opengis.test.report*</packages>
            </group>
            <group>
              <title>Wrappers to existing libraries</title>
              <packages>org.opengis.wrapper*:org.opengis.openoffice*</packages>
            </group>
            <group>
              <title>Examples in public domain</title>
              <packages>org.opengis.example*</packages>
            </group>
          </groups>
        </configuration>
      </plugin>



      <!-- ====================================================
               Reports configuration for the web site
           ==================================================== -->
      <plugin>
        <artifactId>maven-surefire-report-plugin</artifactId>
        <version>2.19.1</version>
      </plugin>



      <!-- ====================================================
               TODO tags
           ==================================================== -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>taglist-maven-plugin</artifactId>
        <version>2.4</version>
        <configuration>
          <tagListOptions>
            <tagClasses>
              <tagClass>
                <displayName>TODO</displayName>
                <tags>
                  <tag>
                    <matchString>@todo</matchString>
                    <matchType>ignoreCase</matchType>
                  </tag>
                </tags>
              </tagClass>
            </tagClasses>
          </tagListOptions>
        </configuration>
      </plugin>
    </plugins>
  </reporting>



  <!-- ====================================================
           Deployment to public servers
       ==================================================== -->
  <distributionManagement>
    <repository>
      <id>geotoolkit</id> <!-- For snapshots only -->
      <name>GeoToolkit repository</name>
      <url>file:///var/www/maven.geotoolkit.org</url>
    </repository>
    <site>
      <id>geoapi</id>
      <name>GeoAPI web site</name>
      <url>file:///var/www/www.geoapi.org</url>
    </site>
  </distributionManagement>



  <!-- ====================================================
           All GeoAPI modules included in the build
       ==================================================== -->
  <modules>
    <module>geoapi</module>
    <module>geoapi-conformance</module>
    <module>geoapi-pending</module>
    <module>geoapi-examples</module>
    <module>geoapi-proj4</module>
    <module>geoapi-netcdf</module>
    <module>geoapi-openoffice</module>
    <module>tools</module>
  </modules>
</project>
