GeoAPI

Need to simplify the distribution (geoapi / geoapi-pending / geoapi-dummy-pending)

Details

  • Type: Task Task
  • Status: Closed Closed
  • Priority: Critical Critical
  • Resolution: Fixed
  • Affects Version/s: 2.3-M1
  • Fix Version/s: 2.3-M5
  • Component/s: None
  • Labels:
    None
  • Number of attachments :
    0

Description

This task has 2 goals:

  • Remove completly the geoapi-dummy-pending module
  • Make geoapi-pending.jar a standalone JAR file, which doesn't need a separated download for geoapi.jar.

The current build process (before this task) generates three files:

  • geoapi.jar, which is the target of the specification effort.
  • geoapi-pending.jar, which contains everything left out of geoapi.jar for the initial effort.
  • geoapi-dummy-pending.jar which contains the few piece of geoapi-pending.jar needed for compiling geoapi.jar.

This is convolved, make geoapi.jar likely to cause NoClassDefFoundError if used alone, and force users of geoapi-pending.jar to depend on two JAR files. At the time this structure has been setup, I was unable to figure out a better way. Since that time, it came to our mind that we could use the svn:externals property in order to "inject" selected parts of the geoapi directory into the geoapi-pending directory. This proposal is about:

  • Move the content of geoapi-dummy-pending into geoapi with a clear javadoc saying that this is a placeholder for future interface, then delete the geoapi-dummy-pending module.
  • Create a svn:externals property in geoapi-pending for all geoapi package except the one containing the geoapi-dummy-pending interfaces, then remove the geoapi dependency.

This way, the geoapi.jar file will contain the Geometry interface placeholder (for example) while geoapi-pending.jar will contain the full pending version. The javadoc of both geoapi and geoapi-pending will clearly document the difference.

Activity

Hide
Martin Desruisseaux added a comment -

Commited as of revision 1499.

Show
Martin Desruisseaux added a comment - Commited as of revision 1499.
Hide
Martin Desruisseaux added a comment -

Actually we do not even need the svn:externals trick. The following Maven configuration in geoapi-pending/pom.xml is suffisent (together with a similar trick in geoapi/pom.xml):

<build>
  <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>build-helper-maven-plugin</artifactId>
      <executions>
        <execution>
          <goals>
            <goal>add-source</goal>
          </goals>
          <configuration>
            <sources>
              <source>../geoapi/src/main/java</source>
            </sources>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>
Show
Martin Desruisseaux added a comment - Actually we do not even need the svn:externals trick. The following Maven configuration in geoapi-pending/pom.xml is suffisent (together with a similar trick in geoapi/pom.xml):
<build>
  <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>build-helper-maven-plugin</artifactId>
      <executions>
        <execution>
          <goals>
            <goal>add-source</goal>
          </goals>
          <configuration>
            <sources>
              <source>../geoapi/src/main/java</source>
            </sources>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated:
    Resolved:

Time Tracking

Estimated:
2h
Original Estimate - 2 hours
Remaining:
0m
Remaining Estimate - 0 minutes
Logged:
2h
Time Spent - 2 hours