GeoAPI build tools

Javadoc taglets and annotation processing tools for processing GeoAPI after compilation. Those tools are used mostly for javadoc generation. They are internal to the GeoAPI project and may change at any time.

Creating releases

The steps for creating a GeoAPI milestone are documented in a separated page:

Creating the GeoAPI bundle

This module contains a Unix shell script for generating a target/ file with the following content:

  • geoapi-conformance.pack.gz containing the GeoAPI conformance JAR file together with its dependencies (geoapi-pending, JUnit and Unit of measurement).
  • geoapi-proj4.jar for testing the conformance tests application.
  • LICENSE.txt and README.txt files.

The bundle is created by a shell script rather than an Ant script because Ant does not yet provide a standard task for pack200. To create the bundle, execute the following command:


Documenting API

The commands documented below assumes that the environment variables have been configured as below (execute from the GeoAPI project home directory on a Unix machine):

export CLASSPATH=~/.m2/repository/javax/measure/unit-api/1.0/unit-api-1.0.jar
export CLASSPATH=$CLASSPATH:$PWD/geoapi-pending/target/geoapi-pending-$GEOAPI_VERSION.jar
export CLASSPATH=$CLASSPATH:$PWD/tools/target/tools-$GEOAPI_VERSION.jar

Generating API index page

A summary of all types and members can be generated by the IndexGenerator processor. Execute the following commands from the project root directory:

find geoapi/src/main/java -name "*.java" > content.txt
javac -proc:only -processor -Aoutput=geoapi/src/main/javadoc/content.html -AnotesList=src/ @content.txt
rm content.txt

Documenting a summary of API changes

A summary of API changes can be generated by the ChangeReport Java class. Execute the following commands from the project root directory:

java 3.0.0 3.1-SNAPSHOT src/site/resources/changes/snapshot/change-summary.html
svn diff src/site/resources/changes/snapshot/change-summary.html

To re-generate the API change summaries for the previous releases (for example after the ChangeReport class has been updated), run the following commands:

java 2.3-M5 2.3-M6 src/site/resources/changes/2.3-M6/since-M5.html
java 2.3-M4 2.3-M6 src/site/resources/changes/2.3-M6/since-M4.html
java 2.3-M3 2.3-M6 src/site/resources/changes/2.3-M6/since-M3.html
java 2.3-M2 2.3-M6 src/site/resources/changes/2.3-M6/since-M2.html
java 2.3-M1 2.3-M6 src/site/resources/changes/2.3-M6/since-M1.html
java 2.3-M4 2.3-M5 src/site/resources/changes/2.3-M5/since-M4.html
java 2.3-M3 2.3-M5 src/site/resources/changes/2.3-M5/since-M3.html
java 2.3-M2 2.3-M5 src/site/resources/changes/2.3-M5/since-M2.html
java 2.3-M1 2.3-M5 src/site/resources/changes/2.3-M5/since-M1.html
java 2.3-M3 2.3-M4 src/site/resources/changes/2.3-M4/since-M3.html
java 2.3-M2 2.3-M4 src/site/resources/changes/2.3-M4/since-M2.html
java 2.3-M1 2.3-M4 src/site/resources/changes/2.3-M4/since-M1.html
java 2.3-M2 2.3-M3 src/site/resources/changes/2.3-M3/since-M2.html
java 2.3-M1 2.3-M3 src/site/resources/changes/2.3-M3/since-M1.html
java 2.3-M1 2.3-M2 src/site/resources/changes/2.3-M2/since-M1.html