This page last changed on Jun 14, 2011 by alitokmen.

Mission

Cargo is a thin wrapper that allows you to manipulate Java EE containers in a standard way.  

Tools

Cargo provides the following Tools and APIs:

  • A Java API to start/stop/configure Java Containers and deploy modules into them.
  • A Java API to parse/create/merge Java EE Modules
  • Ant tasks and Maven 2/Maven 3 plugins.
    • Intellij IDEA and Netbeans plugins are in the sandbox.

Usage

Cargo is often used to deploy applications to containers from ant or maven builds.  Cargo can install the container and dependencies needed for your deployment as well.   Click here for a Maven 2 quick start!

For more use cases, please check the utilisation page.

Development Status

Current Versions

click in the status column to get release notes:

Version Status Comments
1.1.1 Released on 14/06/11

All released versions are available here.

Container Support

List of supported containers and the extensions that are implemented for each container (Java API, Ant tasks and Maven2/Maven3 plugin). The specified version is the version of the associated Cargo module where the feature was first made available (for example 0.2 for the Maven2 plugin means version 0.2 of the Cargo Maven 2 extension release). Click on a container's name to see a detailed list of features it supports.

Container Java API (version) Ant tasks (version) Maven 2 plugin (version)
Geronimo 1.x
0.8

0.8

0.8
Geronimo 2.x
1.0.4

1.0.4

1.0.4
Glassfish 2.x
1.0.1

1.0.1

1.0.1
Glassfish 3.x
1.0.1

1.0.1

1.0.1
JBoss 3.x
0.7

0.7

0.7
JBoss 4.x
0.7

0.7

0.7
JBoss 4.2.x
1.0

1.0

1.0
JBoss 5.x
1.0

1.0

1.0
JBoss 5.1.x
1.0.1

1.0.1

1.0.1
JBoss 6.x
1.0.1

1.0.1

1.0.1
Jetty 4.x
0.1

1.0

0.2
Jetty 5.x
0.8

1.0

0.2
Jetty 6.x
0.8

1.0

0.2
Jetty 7.x
1.0.1

1.0.1

1.0.1
jo! 1.x
0.5

0.5

0.1
JOnAS 4.x
1.0

1.0

1.0
JOnAS 5.x
1.0

1.0

1.0
JRun 4.x
1.0

1.0

1.0
Oc4J 9.x
0.3

0.3

0.3
Oc4j 10.x
1.0

1.0

1.0
Resin 2.x
0.1

0.1

0.1
Resin 3.x
0.1

0.1

0.1
Tomcat 4.x
0.1

0.1

0.1
Tomcat 5.x
0.1

0.1

0.1
Tomcat 6.x
1.0

1.0

1.0
Tomcat 7.x
1.0.2

1.0.2

1.0.2
WebLogic 8.x
0.3

0.3

0.1
WebLogic 9.x
1.0

1.0

1.0
WebLogic 10.x
1.0

1.0

1.0
WebLogic 10.3.x
1.0

1.0

1.0


We also encourage you to report success and failures on different versions of those containers in the Tested on section. Moreover, some containers are tested dialy on the Codehaus Cargo Continous Integration System; for these the container's page also shows which version is tested.

News

CARGO 1.1.1 is here!

Hi CARGO enthusiasts;

CARGO 1.1.0 has been out for just over a month now, and we have had important bug fixes and improvements since. We therefore are very happy to announce CARGO 1.1.1.

Wonder what has changed? Here is a short list:

  • A certain number of user inquiries made us realize that there has been a confusion around the wait parameter of the start ANT task and Maven goal of CARGO. Indeed, most other similar tools have a clearer separation:
    • A "run" task/goal, which starts the container and waits until the user decides to stop it.
    • A "start" task/goal, which starts the container and hands over to the next task/goal (run integration tests, for example).
    • With version 1.1.1, CARGO also implements that behaviour.
    • Of course the wait parameter remains available AND will remain so until CARGO version 1.3.0 at least.
  • The various installers (introduced with CARGO 1.1.0) now have homogeneous parameters and default values.
  • Fixes and improvements on various containers:
    • The JBoss remote deployer now supports a wider range of configurations.
    • Jetty 7.x and Tomcat 7.x remote deployers are now better documented to avoid some mistakes.
    • Various improvements on the JOnAS containers:
      • Added datasource support on JOnAS 4.x and 5.x.
      • Added extra classpath support on JOnAS 5.x.
      • Added undeploy and redeploy capabilities to the JOnAS 5.x local deployer.
    • The webapp directory of Tomcat containers is now configurable.

And, the full changelog:

Fixed bugs:

  • [CARGO-974] - default extraction dir for artifactInstaller is different from zipUrlInstaller
  • [CARGO-978] - Broken link in site (Local Container)
  • [CARGO-983] - cargo-jetty-7-and-onwards-deployer fails perform remote deploy on jetty-hightide (Jetty@Codehaus)
  • [CARGO-984] - Remote redeploy does not work for Tomcat 7
  • [CARGO-992] - Jonas 5.2: "mvn cargo:redeploy" don't work with the local deployer

Improvements and new features:

  • [CARGO-973] - Add support for extractDir to artifactInstaller
  • [CARGO-979] - Allow specifying the profile name when remotely deploying to a JBoss 5.1.X-server
  • [CARGO-981] - Configuring Tomcat webapps Dir
  • [CARGO-985] - Implement cargo:run
  • [CARGO-989] - Implement run task
  • [CARGO-994] - Add datasource support to JOnAS
  • [CARGO-995] - Add extra classpath support to JOnAS 5.x

Other changes:

  • [CARGO-987] - Deprecate cargo:start's -Dwait argument
  • [CARGO-990] - Deprecate the ANT start task's wait argumen

Enjoy!

CARGO 1.1.0

Hi CARGO enthusiasts;

It has been more than usual since we did not come up with any new versions, and it is for a good reason: we have been working on CARGO's version 1.1.0. As usual, we have many bug fixes; but most notably we have very interesting new features.

Some of the interesting new features would perhaps be the following:

  • The Maven2/Maven3 ZipUrlInstaller now reuses the proxy settings from Maven (CARGO-517)
  • Container distributions can now be directory installed from a Maven2/Maven3 artifact definition (CARGO-449)
  • ZipUrlInstaller now has different download and extraction directories (CARGO-907), and the default extraction directory for the Maven2/Maven3 plugin is the project's build directory (CARGO-908).
    • This way, all containers can use the default directories of the ZipUrlInstaller (CARGO-895, CARGO-959 and others).
  • The CARGO ANT tasks can now do remote deployment (CARGO-962)
  • Deployable.pingUrl now supports authentication (CARGO-813)
  • All deployment methods now accept a DeployableMonitor parameter (CARGO-414)
  • The steps to follow in order to remotely debug a container is now documented (CARGO-447); you can check http://cargo.codehaus.org/Debugging for details

As for some of the improvements:

  • Remote deployment on Jetty is now much faster (CARGO-884)
  • Remote deployers can now change the WAR context (CARGO-331)
  • The Container.stop method now waits for the whole server to stop (CARGO-918), which results in more stable tests if containers are started and stopped one after the other.
  • Different timeouts can be defined when starting and stopping a container (CARGO-713)
  • The JBoss remote deployer can now deploy to clusters (CARGO-899)
  • Tomcat contexts' reloadable parameter can now be configured (CARGO-461)
  • TomcatLocalInstalledLocalDeployer.shouldCopyWars() has been made configurable (CARGO-963)
  • Container pages now include a link to the downloadable container used for tests (CARGO-313) as well as a link to the CI
  • The Maven archetypes now use the failsafe plugin (CARGO-883)

And some fixes:

  • CARGO now takes into account the encoding of your configuration and resource files (CARGO-900, CARGO-903 and CARGO-945)
  • The GlassFish container's asadmin wrapper now correctly reports back errors (CARGO-914)
  • The JBoss 4.x remote deployer now works with large files (CARGO-892)
  • The Tomcat 7.x container now supports the latest Tomcat 7.x releases (CARGO-923)
  • cargo:start does not fail with some versions of JBoss deployables when there's no internet connection (CARGO-956)
  • The shared and extra classpath functionalities have been fixed (CARGO-928)
  • Various fixes around Windows-configurations: CARGO-934, CARGO-893 and CARGO-939

And, finally, some major changes that you probably won't notice (but which are one of the reasons why we changed the version number to 1.1.0):

  • CARGO can now be built with Maven3 (CARGO-789), which this also results in the removal of the Maven1 support (CARGO-793).
  • All the code now uses Java 5 APIs and style (CARGO-656), moreover we have enforced the use of generics. We have also added checkstyle to all the code, including tests (CARGO-891).
  • Java API users can now change the JVM launching method they like (CARGO-898), for example Eclipse instead of the default ANT.

... as well as some major changes you should take a note of:

  • The default value for the wait parameter on the ANT and Maven2/Maven3 plugins is now false (CARGO-896)
    • This means you will need to run mvn cargo:start -Dwait=true when you want to run manual tests.
    • This change in fact renders the creation of automated integration tests easier.
  • ZipUrlInstaller now has different download and extraction directories (CARGO-907), which makes the installDir property obsolete: it is replaced by downloadDir and extractDir, the old property set them both but will probably removed in CARGO 1.2.0.
  • TomcatPropertySet.MANAGER_URL has been deprecated in favor of RemotePropertySet.URI (CARGO-964).
  • TomcatLocalInstalledLocalDeployer.shouldCopyWars() is set to true by default (used to be false) (CARGO-963)
  • Deployable.isExpanded() and Deployable.isExpanded*() have been consolidated, obsoleting the Deployable.isExpanded*() methods (CARGO-902).
  • All API methods for copying configuration and resource files that specify no encoding are deprecated (CARGO-900, CARGO-903 and CARGO-945)
  • AbstractCopyingInstalledLocalDeployer.setShouldDeployExpanded*s() and AbstractCopyingInstalledLocalDeployer.setShouldDeployExpanded() have been consolidated, obsoleting the AbstractCopyingInstalledLocalDeployer.setShouldDeployExpanded*() methods.

For a full list, you can always check the release notes: http://jira.codehaus.org/secure/ReleaseNote.jspa?projectId=10730&version=16436 -we have more than 80 changes!

To use this new version:

  • Users of the Java API and/or ANT tasks can download the CARGO uberjar and ANT tasks from the download page: http://cargo.codehaus.org/Downloads
  • Maven2/Maven3 users simply need to change the plugin's <version> to 1.1.0, and Maven2/Maven3 will download the new version automatically.

Please share your good (and bad) findings on the user@cargo.codehaus.org mailing list.

Enjoy!


architecture.jpg (image/jpeg)
architecture.jpg (image/jpeg)
access-layers.jpg (image/jpeg)
access-layers.jpg (image/jpeg)
access-layers.jpg (image/jpeg)
Document generated by Confluence on Jun 14, 2011 22:09