Motivation:

Clarity of purpose

Contact:

full name

Tracker:

http://jira.codehaus.org/browse/GEOT-1953

Build Change

http://jira.codehaus.org/browse/GEOT-1955

Developers Guide Change

Tagline:

got code?

The introduction of unsupported modules has been a great success; now that we are nearing the release of GeoTools 2.5.0 we need to sort out a few build issues; and nail down exactly how to make modules supported.

Description

We introduced the "modules/unsupported" directory in an effort to help prevent the development community working on branches; and as an effort to introduce new developers to the GeoTools community. This also allowed us to demote several modules that have been with out a maintainer (so it is obvious to the user community what is going on).

This proposal would like to refine how we are handling unsupported modules:

The goals here are several fold:

Status

We would like to close up this issue in a timely fashion for the 2.5.0 release:

Discussion

Tasks

This section is used to make sure your proposal is complete (did you remember documentation?) and has enough paid or volunteer time lined up to be a success

 

no progress

(tick)

done

(error)

impeded

(warning)

lack mandate/funds/time

(question)

volunteer needed

  1. (tick) API changed based on BEFORE / AFTER patch is waiting to be applied, this is required to make 2.5.0 ready for release
  2. (jive) Update the developers guide and ask for review
  3. Ask a module to step through the process in order to "debug" the procedure

API Changes

BEFORE

Currently all children of unsupported/pom.xml are included in the build (or they are placed into a profile like "archive" if the code does not compile).

  <profiles>
     <profile>
       <id>gdal</id>
       <modules>
         <module>imageio-ext-gdal</module>
       </modules>
     </profile>
     <profile>
       <id>pending</id>
       <modules>
         <module>coveragetools</module>
         <module>sql-datastore</module>
         <module>geometryless</module>
         <module>notifying-collections</module>
       </modules>
     </profile>
     <profile>
       <id>archive</id>
       <modules>
         <module>community-schemas</module>
         <module>hsql</module>
         <module>geomedia</module>
         <module>ogr</module>
         <module>gml3</module>
         <module>tile</module>
       </modules>
     </profile>
  </profiles>
  <modules>
    <module>coverageio</module>
    <module>coverageio-netcdf</module>
    <module>coveragetools</module>
    <module>directory</module>
    <module>epsg-oracle</module>
    <module>geometry</module>
    <module>gml</module>    
    <module>gpx</module>
    <module>h2</module>
    <module>imagemosaic-jdbc</module>
    <module>jts-wrapper</module>
    <module>mappane</module>
    <module>mif</module>
    <module>mysql</module>
    <module>ogc</module>
    <module>oracle-spatial</module>
    <module>postgis-versioned</module>
    <module>process</module>
    <module>wps</module>
    <module>repository</module>
    <module>temporal</module>
    <module>tiger</module>
    <module>vpf</module>
    <module>widgets-swing-pending</module>
    <module>xml-gpx</module>
  </modules>
</project>

AFTER

We need to place the majority of unsupported modules into individual profiles; activated with a common -Dall command line setting:

...
  <profiles>
     <profile>
       <id>fm</id>
       <activation>
         <property>
            <name>all</name>
         </property>
       </activation>
       <modules>
         <module>coveragetools</module>
         <module>sql-datastore</module>
         <module>geometryless</module>
         <module>notifying-collections</module>
       </modules>
     </profile>
     <profile>
       <id>archive</id>
       <modules>
         <module>community-schemas</module>
         <module>hsql</module>
         <module>geomedia</module>
         <module>ogr</module>
         <module>gml3</module>
         <module>tile</module>
       </modules>
     </profile>

     <profile>
       <id>geometry</id>
       <activation>
         <property><name>all</name></property>
       </activation>
       <modules>
         <module>geometry</module>
         <module>jts-wrapper</module>
       </modules>
     </profile>

     <profile>
       <id>database</id>
       <activation>
         <property><name>all</name></property>
       </activation>
       <modules>
         <module>h2</module>
         <module>mysql</module>
         <module>oracle-spatial</module>
         <module>postgis-versioned</module>
       </modules>
     </profile>

     <profile>
       <id>workflow</id>
       <activation>
         <property><name>all</name></property>
       </activation>
       <modules>
         <module>process</module>
         <module>wps</module>
       </modules>
     </profile>

     <profile>
       <id>raster</id>
       <activation>
         <property><name>all</name></property>
       </activation>
       <modules>
         <module>coverageio</module>
         <module>coverageio-netcdf</module>
         <module>coveragetools</module>
         <module>imageio-ext-gdal</module>
         <module>imagemosaic-jdbc</module>
       </modules>
     </profile>

     <profile>
       <id>unsupported</id>
       <activation>
         <property>
            <name>all</name>
         </property>
       </activation>
       <modules>
         <module>directory</module>
         <module>epsg-oracle</module>
         <module>gml</module>    
         <module>gpx</module>
         <module>mappane</module>
         <module>mif</module>
         <module>repository</module>
         <module>temporal</module>
         <module>tiger</module>
         <module>vpf</module>
         <module>widgets-swing-pending</module>
         <module>xml-gpx</module>
       </modules>
     </profile>

     </profile>
  </profiles>
  <!-- the ogc module is currently required by our build system -->
  <modules>
    <module>ogc</module>
  </modules>
</project>

Documentation Changes

This proposal requires modification to the Developers Guide: