<?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>3.1-M04</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://geoapi.svn.sourceforge.net/svnroot/geoapi/trunk/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:svn:https://geoapi.svn.sourceforge.net/svnroot/geoapi/trunk/</connection>
    <url>http://geoapi.svn.sourceforge.net/viewvc/geoapi/trunk/</url>
  </scm>

  <ciManagement>
    <system>hudson</system>
    <url>http://hudson.geomatys.com/job/GeoAPI/</url>
  </ciManagement>

  <issueManagement>
    <system>JIRA</system>
    <url>http://jira.codehaus.org/browse/GEO</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>


  <!-- ====================================================
           Repository for the legacy JSR-275 dependency,
           for UmlGraph (site generation only), and for
           NetCDF and vecmath (demo modules only).
       ==================================================== -->
  <repositories>
    <repository>
      <id>geotoolkit</id>
      <name>Geotoolkit repository</name>
      <url>http://maven.geotoolkit.org/</url>
    </repository>
  </repositories>



  <!-- ====================================================
           External dependencies
       ==================================================== -->
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>javax.measure</groupId>
        <artifactId>jsr-275</artifactId>
        <version>0.9.3</version>
      </dependency>
      <dependency>
        <!-- The JUnit version number appears also in the maven-javadoc-plugin
             <link/> configuration below. They should be keep synchronized. -->
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.10</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <!-- The vecmath dependency is used only by demo modules. The latest version available on
             Maven Central is 1.3.1, but more recent versions are available on other repositories. -->
        <groupId>java3d</groupId>
        <artifactId>vecmath</artifactId>
        <version>1.5.2</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <groupId>javax.measure</groupId>
      <artifactId>jsr-275</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>2.4</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>2.5</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>2.4</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.12</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>1.7</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>2.1.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-gpg-plugin</artifactId>
          <version>1.4</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.7</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>2.8.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>2.4</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-report-plugin</artifactId>
          <version>2.12</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-changelog-plugin</artifactId>
          <version>2.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-bundle-plugin</artifactId>
          <version>2.3.7</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>1.7</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>taglist-maven-plugin</artifactId>
          <version>2.4</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.5</source>          <!-- The -source argument for the Java compiler.   -->
          <target>1.5</target>          <!-- The -target argument for the Java compiler.   -->
          <debug>false</debug>          <!-- Whether to include debugging information.     -->
          <optimize>true</optimize>     <!-- Use the compiler's optimization methods.      -->
          <encoding>${project.build.sourceEncoding}</encoding>
          <showWarnings>true</showWarnings>
          <showDeprecation>true</showDeprecation>
        </configuration>
      </plugin>



      <!-- =======================================================
               Resources
           ======================================================= -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <configuration>
          <encoding>${project.build.sourceEncoding}</encoding>
        </configuration>
        <!--
          In addition to Maven standard behavior, also copy HTML files from the
          source javadoc directory to the root of target javadoc directory. This
          is different than the default behavior which is to store such files in
          a "doc-files" subdirectory. This allows shorter permanent URL for top-
          level pages like "content.html" which may be referenced from external
          sites.

          Note: as of Maven 3.0.3, this goal is not executed by "mvn deploy". We
          need an explicit "mvn install" even if it was supposed to be implicit.
        -->
        <executions>
          <execution>
            <id>copy-resources</id>
            <phase>prepare-package</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <resources>
                <resource>
                  <directory>${basedir}/src/main/javadoc/</directory>
                  <includes>
                    <include>*.html</include>
                  </includes>
                  <excludes>
                    <exclude>overview.html</exclude>
                  </excludes>
                </resource>
              </resources>
              <outputDirectory>${basedir}/target/apidocs/</outputDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>



      <!-- ====================================================
               JAR packaging
           ==================================================== -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <executions>
         <execution>
           <goals>
             <goal>jar</goal>
             <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>



      <!-- =======================================================
               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>
          <reportPlugins>
            <!-- ====================================================
                     Web site and Javadoc generation
                 ==================================================== -->
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-javadoc-plugin</artifactId>
              <reportSets>
                <reportSet>
                  <reports>
                    <report>javadoc</report>
                    <report>test-javadoc</report>
                  </reports>
                </reportSet>
              </reportSets>
              <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.5</source>            <!-- Necessary to enable javadoc to handle J2SE 1.5 features.           -->
                <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>
                <linksource>true</linksource>

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

                <!-- Generate the UML for each package and class. Credit: the configuration is inspired from the following project:
                     http://project.smartics.de/public/de.smartics.maven.plugin/maven-issues-plugin/0.2.4/references/credits.html -->
                <doclet>org.umlgraph.doclet.UmlGraphDoc</doclet>
                <docletArtifact>
                  <groupId>org.umlgraph</groupId>
                  <artifactId>UmlGraph</artifactId>
                  <version>5.4</version>
                </docletArtifact>
                <additionalparam>
                  -collapsible -qualify -postfixpackage -nodefontsize 9 -nodefontpackagesize 7
                </additionalparam>

                <!-- Custom taglets implemented in Java. -->
                <taglets>
                  <taglet><tagletClass>org.opengis.tools.taglet.Note</tagletClass></taglet>
                  <taglet><tagletClass>org.opengis.tools.taglet.SvnUrl</tagletClass></taglet>
                  <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 combinaison of the letters Xaoptcmf. -->
                <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>
                  <tag><placement>X</placement>    <name>navassoc</name>  <head>Associated to:</head></tag> <!-- Used by UmlGraph doclet. -->
                </tags>

                <!-- Creates links to existing javadoc-generated
                     documentation of external referenced classes. -->
                <links>
                  <link>http://docs.oracle.com/javase/6/docs/api/</link>
                  <link>http://docs.oracle.com/javaee/6/api/</link> <!-- For InternationalString link. -->
                  <link>http://download.java.net/media/jai/javadoc/1.1.3/jai-apidocs/</link>
                  <link>http://download.java.net/media/java3d/javadoc/1.5.2/</link>
                  <link>http://jscience.org/jsr-275/api/</link>
                  <link>http://kentbeck.github.com/junit/javadoc/4.10/</link>
                  <link>http://www.unidata.ucar.edu/software/netcdf-java/v4.3/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>Base package</title>
                    <packages>org.opengis.util*:org.opengis.annotation*</packages>
                  </group>
                  <group>
                    <title>Metadata</title>
                    <packages>org.opengis.metadata*</packages>
                  </group>
                  <group>
                    <title>Spatial Referencing by Coordinates</title>
                    <packages>org.opengis.referencing*:org.opengis.temporal*:org.opengis.parameter*</packages>
                  </group>

                  <!-- Pending packages. -->
                  <group>
                    <title>Geometry and Topology</title>
                    <packages>org.opengis.geometry*:org.opengis.topology*</packages>
                  </group>
                  <group>
                    <title>Coverage</title>
                    <packages>org.opengis.coverage*</packages>
                  </group>
                  <group>
                    <title>Feature and Filter</title>
                    <packages>org.opengis.feature*: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>
                  <group>
                    <title>Web Services</title>
                    <packages>org.opengis.web*</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>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-project-info-reports-plugin</artifactId>
              <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>



            <!-- ====================================================
                     JUnit test results
                 ==================================================== -->
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-surefire-report-plugin</artifactId>
            </plugin>



            <!-- ====================================================
                     Changes log
                 ==================================================== -->
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-changelog-plugin</artifactId>
              <configuration>
                <type>range</type>
                <range>90</range>
              </configuration>
              <reportSets>
                <reportSet>
                  <reports>
                    <report>changelog</report>
                    <report>file-activity</report>
                  </reports>
                </reportSet>
              </reportSets>
            </plugin>



            <!-- ====================================================
                     TODO tags
                 ==================================================== -->
            <plugin>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>taglist-maven-plugin</artifactId>
              <configuration>
                <tagListOptions>
                  <tagClasses>
                    <tagClass>
                      <displayName>TODO</displayName>
                      <tags>
                        <tag>
                          <matchString>@todo</matchString>
                          <matchType>ignoreCase</matchType>
                        </tag>
                      </tags>
                    </tagClass>
                  </tagClasses>
                </tagListOptions>
              </configuration>
            </plugin>
          </reportPlugins>
        </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>1.0-beta-6</version>
      </extension>
    </extensions>
  </build>



  <!-- ====================================================
           Deployment to public servers
       ==================================================== -->
  <distributionManagement>
    <repository>
      <id>geotoolkit</id> <!-- For snapshots only -->
      <name>GeoToolkit repository</name>
      <url>scpexe://luciole.geomatys.com/var/www/maven.geotoolkit.org</url>
    </repository>
    <site>
      <id>geoapi</id>
      <name>GeoAPI web site</name>
      <url>scpexe://luciole.geomatys.com/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>
