You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 14 Next »

Table of Contents

One of the things we have been meaning to do is convert our build framework over from ANT to Maven2.
The time has come, and the work is in-progress (jira:fcrepo-394).

The basic strategy was laid out in our last face-to-face committers' meeting in Ithaca.
As you can see, there are a few things that need to be done. If you are interested in helping, I would be very happy to coordinate efforts. Send me an email, Andrew Woods.

Approach

Since moving to Maven2 requires significant restructuring of the baseline directories, we want to make small, incremental changes back to svn/trunk so that the on-going fedora development does become too far seperated. This means that the ANT builds must continue to work as the baseline becomes incrementally transformed.

Progress/Status

(warning) Not yet
(info) Partial
(tick) Complete

  • (tick) 1a - Source conformant to m2 standards (files and packages) + tweak build.xml
    1. This was checked-into svn:fedora/trunk.rev.8076
    2. The basic structure of maven has been created (src/main/java, src/test/java, etc)
    3. The renaming of packages based on Maven-central's requirements will happen at the very end of this whole effort
  • (tick) 1b - Get poms for all dependencies
    1. Based on the jars in the /lib dir, a simple install script pushes them into the local repository
    2. Need to create proper *.pom and <dependency> for each artifact
  • (info) 2 - Ant-maven integration (four subprojects) with main goal of installer.jar
    • This initial integration requires a minimum break-out of the following subprojects
      1. (tick) common
        • This contains 'fedora.common' package
      2. (info) server
        • This is the 'fedora.server' package
        • includes wsdl2java generation and stubwrappers
      3. (info) client
        • This is the 'fedora.client' package
        • includes stubwrappers generation
      4. (info) integrationtest
        • This is the 'fedora.test' package
        • has dependencies on both '/client' and '/server'
  • (warning) 3 - m2-only (full split-out)
    • Admin Client
    • Java Client API
    • Server Webapp
    • Installer
    • (Old GUI)
    • New GUI
  • (warning) 4 - Split out server modules as projects
  • (warning) 5 - Rename packages based on Maven-central's requirements

To Revisit

  1. Currently, all of the maven dependencies are in the top-level pom.xml
    1. They need to be surgically pushed down to their approapriate subproject pom.xml
    2. Their dependency declaration needs to point to the proper version on maven-central, not the locally created artifact
  2. The continued need for each junit suite aggregator class needs to be re-evaluated
  3. Unit test naming conventions need to be standardized (since maven invokes them based on a regex at different build phases)
    1. unit-test: '**/*Test.class'
    2. integration-test: '**/Test*.class'
#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))
  • No labels