...
- Currently, all of the maven dependencies are in the top-level pom.xml
- They need to be surgically pushed down to their appropriate subproject pom.xml
- An initial push down is essentially complete though additional verification and pom optimization is needed
- Their dependency declaration needs to point to the proper version on maven-central, not the locally created artifact
- All of the artifacts that can be resolved to maven-central without selected new versions is complete
- Additional validation is needed especially to ensure that conflicts do not cause problems
- They need to be surgically pushed down to their appropriate subproject pom.xml
- The continued need for each junit suite aggregator class needs to be re-evaluated
- Unit test naming conventions need to be standardized (since maven invokes them based on a regex at different build phases)
- unit-test: '**/*Test.class'
- integration-test: '**/Test*.class'
- Unit/system/integration tests used to fall under 'fedora.test'
- now that they have been split across subprojects ('server', 'client', 'integrationtest'), they are not aggregated with a single call (i.e. fedora.test.AllUnitTests)
- a fix to this issue would only be needed as long as we continue to use ANT, Maven2 has its own test aggregation
- Build number & timestamp needed for artifact names and manifest files
client.jar
- needs 'fedora.version' in filename and manifest
- needs 'build.tstamp' in manifest
- The following is a plugin that should do the trick
- It should be configured in the top-level /pom.xml and /client/pom.xml
- http://mojo.codehaus.org/buildnumber-maven-plugin/index.html
- The build number plug-in fails if the SCM is unavailable or is not installed on the host platform. A <revisionOnScmFailure> parameter has been added to set a default build number. A warning is still shown during build but the build runs properly to completion. The default build number has been set to the "version" of the fedora-repository pom assuming that pom's version will eventually match a current or planned release.
- Refactor fedora.test.FedoraTestCase.java into two classes (one dependent on '/server' and one on '/client') so tests the inherit from it can be pushed back down from '/integrationtest' to their respective projects.
- fedora.test.integration.cma.SimpleDeploymentTests has a bug. See source file for details.
- In creating fedorahome.zip, deploy and undeploy *.wsdd files are token-swapped (e.g. 'Fedora-API-M-Port-SOAPHTTP' to 'management').
- This mangles token instances such as 'Fedora-API-M-Port-SOAPHTTP S'. This is a pre-existing bug.
- Running the maven-built installer can result in an out of memory exception:
- java -jar installer/target/installer-1.0.0-fedora-installer.jar
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.jar.JarInputStream.getBytes(JarInputStream.java:82)
at java.util.jar.JarInputStream.<init>(JarInputStream.java:65)
at java.util.jar.JarInputStream.<init>(JarInputStream.java:43)
at com.simontuffs.onejar.JarClassLoader.loadByteCode(JarClassLoader.java:450) - Chris has been able to reproduce this consistently in Ubuntu with Sun Java5 and Java6.
- Dan has been able to reproduce this consistently on Windows XP with Sun Java5 and Java6.
- This can be worked around by specifying -Xms256m -Xmx256m (increasing the heap size).
- The installer currently is built with superflouous jars, so that may be the cause. It may be the case that the dependency push-down effort (#1 above) resolves this.
- java -jar installer/target/installer-1.0.0-fedora-installer.jar
- Script needs to be written to support Maven Bamboo CI build
- server/src/main/resources/properties/lib.properties may be a candidate for removal as it was tied to the Ant build
- libraries listed in server/src/resource/properties/install.properties do not automatically update with library updates and duplicate information in the pom which does not benefit from pom dependency checking
Rationale
Subproject break-out
...