Changes

Changes from JAM 2.1.beta2 to JAM 2.1

Additions

  • Added Tomcat module supporting 5.0 and 5.5 versions.
  • Refactored all application server modules to make them more consistent.
  • Added two new plugin goals get-libs.xml and copy-libs.xml to facilitate distribution and dependency handling.
  • Added jam-dev-plugin for automating JAM module documentation.
  • Complete support for the POM specification, in particular the resources and unitTest features in the build section are now supported.
  • Basic module settings are now generated in the form of a new property file: props-maven.xml.
  • All JAM modules now declare dependencies in the standard targets (compile, dist, etc.) greatly enhancing customization when overridding these targets.
  • New modules have been added including support for Oracle JDeveloper, Weblogic, CVS, Hibernate, Axis web services, JMX and modules for calling and synchronizing with Maven.
  • The JUnit and Cactus test modules have been refactored and a new remote integration test module (itest.xml) has been added.
  • JavaGen examples have been upgraded to demonstrate JAM 2.1 features.

Changes from JAM 2.0 to JAM 2.1.beta2

REFACTOR: JAM's Maven plugin

The Maven-Ant bridge now supports the full POM specification, including resource copying, unit test specification and other settings. The plugin goal names now start with 'jam' instead of 'javagen'. A second property file is now generated (props-maven.xml) containing override properties that largely replace the props-module.xml file. The default goal (jam) generates both props-maven.xml and classpath.xml files. This files must be imported in the correct relative sequence:

<import file="${basedir}/props-maven.xml"/>
<import file="${jam.home}/props-global.xml"/>
<import file="${basedir}/classpath.xml"/>

Added jam:appxml-filter goal which generates an application.xml file from the POM dependencies with the addition of a @TARGET-MODULE@ Ant filter tag. This deployment descriptor works with all JAM modules and largely replaces the jam:appxml and jam:appxml-cactus goals.

REFACTOR: core modules

Core modules (ejb.xml, lib.xml, webapp.xml, ear.xml) were updated to support the new plugin resource handling capability resulting in cleaner, more flexible Ant scripts.

REFACTOR: webapp.xml modules

This module was completely rewritten and is considerably shorter and more flexible. By default it packages its classes into a jar file. You can deploy the classes in expanded format (i.e. under the WEB-INF/classes directory) by:

  1. setting: <property name="build.classes.dir" location="${basedir}/target/web/WEB-INF/classes"/>
  2. overriding the 'dist' target removing the 'jar' dependency

REFACTOR: all modules

To make it easier to customize overridden targets, all Ant target dependencies are now specified in public target dependency clauses (i.e. there are few, if any dependencies found in supporting targets now). This has emerged as an important design pattern to achieving extensibility using a standardized set of public Ant targets.

REFACTOR: testing modules

Tests now fall in two broad categories:

  1. unit tests - run as part of the build process
                      default directory: test
                      default source suffix: *Test.java
                      modules: utest.xml
                      target name: test
                      typical usage: <target name="dist" depends="compile, test, ...
                      typical tests: unit, mock, etc.
  2. integration tests - ran after application deployed
                      default directory: itest
                      default source suffix: *ITest.java
                      modules: itest.xml, ejbtest-cactus.xml
                      target name: itest
                      typical usage (shell): ant deploy, ant itest, ant undeploy
                      typical usage (automatic using testcycle.xml): ant testcycle
                      typical tests: integration, functional, load, stress, etc.
    	

Unit test and integration tests can be used in the same build, but will be packaged and executed differently based on which subdirectory they are placed in.

ADDED appserver-oc4j.xml

Supports Oracle JDeveloper application server. Many thanks to Daxin for this contribution!!

ADDED appserver-weblogic8.xml

Early support for BEA's WebLogic 8.x application server.

ADDED maven.xml

Makes it easy to call Maven from Ant.

ADDED maven-synch.xml

Automatically keeps JAM's and Maven's build properties in synch.

ADDED javagen-ws.xml

Web service interface to JavaGen UML-to-J2EE code generator.

ADDED cvs.xml

Adds support for CVS source control. This module defines three public targets: checkout, update and checkin, in addition to utility targets for password management and changelog reports.

ADDED axis.xml

Several macros are defined here that wrap Axis Ant tasks for converting between Java, WSDL and stubs.

ADDED itest.xml

Generic support for integration testing of deployed applications. This module works well for testing web services, remote EJB methods or any JUnit based tests that can be run locally against a deployed application. This module was added to compliment ejbtest-cactus.xml which runs unit tests remotely or in-container.

ADDED testcycle.xml

Provide stand-alone deploy-test-undeploy services for automated integration testing and continuous integration builds. It works with any supported application server in conjunction with either itest.xml or ejbtest-cactus.xml test modules.

RENAMED plugin from 'maven-javagen-ant-plugin' to 'maven-jam-plugin'