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
ZipUrlInstallernow reuses the proxy settings from Maven (CARGO-517) - Container distributions can now be directory installed from a Maven2/Maven3 artifact definition (CARGO-449)
ZipUrlInstallernow 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).- The CARGO ANT tasks can now do remote deployment (CARGO-962)
Deployable.pingUrlnow supports authentication (CARGO-813)- All deployment methods now accept a
DeployableMonitorparameter (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.stopmethod 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'
reloadableparameter 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
asadminwrapper 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:startdoes 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
waitparameter on the ANT and Maven2/Maven3 plugins is nowfalse(CARGO-896)- This means you will need to run
mvn cargo:start -Dwait=truewhen you want to run manual tests. - This change in fact renders the creation of automated integration tests easier.
- This means you will need to run
ZipUrlInstallernow has different download and extraction directories (CARGO-907), which makes theinstallDirproperty obsolete: it is replaced bydownloadDirandextractDir, the old property set them both but will probably removed in CARGO 1.2.0.TomcatPropertySet.MANAGER_URLhas been deprecated in favor ofRemotePropertySet.URI(CARGO-964).TomcatLocalInstalledLocalDeployer.shouldCopyWars()is set totrueby default (used to befalse) (CARGO-963)Deployable.isExpanded()andDeployable.isExpanded*()have been consolidated, obsoleting theDeployable.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()andAbstractCopyingInstalledLocalDeployer.setShouldDeployExpanded()have been consolidated, obsoleting theAbstractCopyingInstalledLocalDeployer.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!
Hello CARGO lovers
CARGO version 1.0.6 is now ready! As with all previous versions of CARGO, we have new features.
- CARGO can now deploy to remote GlassFish 3.x servers (see CARGO-828)! That support is based on the brand-new JSR88 Deployer.
- The abstract JSR88 deployer for CARGO, which closes one of the oldest JIRA tickets: CARGO-146. This will ease a lot the implementation of any JSR88-compliant container for CARGO.
Moreover, this version being a maintenance release, it also ships with the fix for the following issues:
- (CARGO-581) - A '/' in context path gets converted to %20
- (CARGO-875) - java.lang.StringIndexOutOfBoundsException: String index out of range: 5 at createJBossFilterChain(JBoss51xStandaloneLocalConfiguration.java:56)
- (CARGO-877) - Remote deployment on Jetty 7.1.6 using cargo-jetty-7-and-onwards-deployer fails
- (CARGO-879) - Cannot set JVM arguments in GlassFish
- (CARGO-880) - cargo-maven2-plugin - blank property value in container systemProperties causes NullPointerException
This version is also expected to be the last 1.0.x version of CARGO. Indeed, we will then be focusing our efforts on CARGO 1.1.0, which will have many changes and drop of dusty parts (such as the Maven1 plugin).
Enjoy!
Hello, CARGO enthusiasts!
Just after the 1.0.4 release, I have sent the announcements I had been talking about, and we've had interesting reactions. Having taken the most important ones into account quikcly, we are happy to announce the immediate availability of CARGO 1.0.5. This time, CARGO did not change much and only includes bug fixes. Here is a short summary of the most interesting ones:
- [CARGO-863] - The maven2 plugin gives as extension ".bundle" to OSGi bundles (instead of .jar)
- [CARGO-865] - The remote cargo-jetty-deployer does not work with Jetty 7.2.0
- [CARGO-869] - Issues with the Maven archetypes
With this new version, the CARGO archetypes are compatible with Maven 2.x as well as Maven 3.x. Moreover, on the OSGi side, both GlassFish 3.x and OW2 JOnAS 5.x support bundle deployment.
CARGO users that prefer the Java API and/or the ANT tasks can download this new version via http://cargo.codehaus.org/Downloads
Those who use the Maven2 plugin simply have to change their plugin version in their POMs -the artifacts are already on the Maven2 central repository.
Enjoy this new release!
Hello, CARGO enthusiasts!
We are happy to announce the immediate availability of CARGO 1.0.4. This new version comes with 26 bug fixes, improvements and bug fixes, here is a short summary of the most interesting ones:
- The Apache Geronimo container is back again! Both versions 1.x (these are more than 4 years old, now!) and 2.x are supported, please see the documentation pages on http://cargo.codehaus.org/Geronimo+1.x and http://cargo.codehaus.org/Geronimo+2.x (I'll not list the JIRA tickets here, we have many of them!)
- Added support for the OSGi Bundle deployable type (CARGO-850 and some others). Currently, only the OW2 JOnAS 5.x container can handle bundles, hopefully that list should expand with the new versions of GlassFish and Geronimo.
- Made the new JBoss deployers, introduced in CARGO 1.0.3, work with big (tens of megabytes) files (CARGO-859); which actually is the filesize of real-life applications
- Various documentation updates (Documentation for pingTimeout, JBoss naming ports, missing property names, etc.)
- Made the FILE deployable actually support all types of files
- ... and more!
We have also finely tuned our release process, and CARGO 1.0.4 is the first CARGO version ever that has been tagged, staged, checked for quality and voted for during 72 hours before being released. Bravo, team! ![]()
CARGO users that prefer the Java API and/or the ANT tasks can download this new version via http://cargo.codehaus.org/Downloads
Those who use the Maven2 plugin simply have to change their plugin version in their POMs -the artifacts are already on the Maven2 central repository.
Also, I will be sending nice e-mails on various application servers' mailing lists in order to introduce them CARGO. The current version can be seen on the "let's make some noise" page and all comments, corrections and ideas are most welcome.
Enjoy this new release!
Hello CARGO enthusiasts,
6 weeks after CARGO 1.0.2, CARGO 1.0.3 has been released. That new version comes with 28 bug fixes and various improvements, in particular attention has been paid to remote containers:
- In the "CARGO samples", which run many tests on various containers and therefore guarantee a certain level of quality, we have re-enabled the testing of all Remote containers (CARGO-818).
- For a long (looooong) time, the CARGO JBoss remote deployer could not actually deploy to remote servers: it was expecting the file to deploy to be accessible by the JBoss server (which is possible using technologies like NFS, but that's not natural is it?). With CARGO 1.0.3, the JBoss remote deployer can upload and deploy your applications remotely on your JBoss server (versions 4.0.x, 4.2.x, 5.0.x, 5.1.x and 6.0.x). Read more here: http://cargo.codehaus.org/JBoss+Remote+Deployer, issue link here: CARGO-416
- On Jetty, the deployer helper application's path has been set to /cargo-jetty-deployer (it used to be the WAR's name, which contains version number and other non-determinictic data) (CARGO-820).
- On JOnAS, remote authentication issues have been corrected (CARGO-836) and the CARGO JOnAS deployer now supports the "development" mode (available since JOnAS 5) (CARGO-838).
- The Tomcat 7 remote deployer has been fixed (CARGO-817).
Moreover, CARGO 1.0.3 fixes other issues and adds interesting functionalities, of which:
- The Maven2 plugin now has a "skip" element for skipping CARGO (CARGO-481). That property can also be passed via a system environment variable.
- Fixed the MANIFEST of the WAR generated by CARGO uberwar (CARGO-727).
- Stopping the container does not longer corrupt the output file (CARGO-520).
Finally, we have also started a big move under the hood: move to Nexus (see the subtasks of CARGO-810 for details). The CARGO project does no longer use the "old-style" CARGO Maven2 repository, but rather uses Nexus.
- CARGO now uses the new Codehaus artifact release process and infrastructure
- CARGO artifacts are now signed (with GPG keys) in addition to the pre-existing MD5 and SHA1 checksums.
- In the future, this will give the opportunity to better manage our releases; taking advantage of the staging features of Nexus.
Enjoy this new release!
Hello CARGO enthusiasts
Since the release of CARGO 1.0.1 about a month ago, very important bugs have been fixed:
- The CARGO Maven2 was unusable for configurations with datasource configurations. We've also updated the Java API and ANT tasks' documentation accordingly.
- The CARGO ANT tasks required the CARGO uberjar to be in the ANT's
$ANT_HOME/libdirectory -which is not the way it was documented.
We have also made major improvements:
- To avoid these two major bugs from showing up again, we have started adding samples for the ANT tasks and Maven2 plugin; exactly the way all containers are tested using the Java API.
- All plugin dependencies now have their version numbers fixed. This enhances reproducibility and guarantees that CARGO can be built and will work, the exact same way, even years later.
- The Maven2 plugin now has a help goal.
- Tomcat 7.x has been added to the supported containers list, only weeks after its official release

- The Jetty 7.x remote deployer has been fixed.
This new version, CARGO 1.0.2, is now available for use.
Users of the Java API and ANT tasks can download this new version from the http://cargo.codehaus.org/Downloads page.
Those who prefer Maven2 only need to update their version number. In the case the new version is not on the Maven central yet, please also add the http://repository.codehaus.org/ repository is in your Maven2 repositories list.
Everyone enjoy this new version
Hello, CARGO enthusiasts;
A few days after the CARGO 1.0.1 release, two important bugs have been submitted to us in the CARGO Maven2 plugin (and only in the Maven2 plugin, the rest is not affected):
- CARGO-776 makes the CARGO Maven2 plugin unable to take into account datasource configurations.
- CARGO-777 makes the CARGO Maven2 plugin unusable in some cases using the
mvn cargo:*goals.
These two nasty bugs have been corrected, and the CARGO Maven2 plugin version 1.0.1-sr-1 (1.0.1 Service Release 1) released. If you're experiencing difficulties with the CARGO Maven2 plugin, please upgrade to that version.
Sorry for the inconvenience... :s
Enjoy !
CARGO 1.0.1 is now available !
1 year and 3 months after CARGO 1.0, the CARGO team is proud to announce the immediate availability of CARGO 1.0.1.
This new version fixed 36 bugs, takes into account 13 improvements and 7 new features.
New containers
CARGO 1.0.1 supports new containers:
- Glassfish 3.x
- JBoss 5.1 and 6.0 milestones
- Jetty 7.x from eclipse.org
Also, support of existing containers has been improved. For example:
- JBoss 5 is now stable
- All JBoss versions support the username and password arguments
- JOnAS 5 supports the modern JOnAS 5.1 releases
- Memory-related arguments are now taken into account for all containers
- The "username" attribute bug on modern Tomcat versions has been fixed
- ...
New features
Apart from new containers, CARGO 1.0.1 has two main new features:
- ANT tasks can now also be used for configuring a container (without start)
- CARGO can now start and stop remote containers via ssh. Note that we did not completely finish that feature yet, try at your own risk

Improvements
On the improvements side, we have:
- All container implementations now rely on the discovery mechanisms, instead of having manual entries in the CARGO core
- The samples and Maven plugin now just use the uberjar. This ensures that the uberjar is complete.
- When running the samples, they now all use random ports.
- When running cargo:start and then cargo:stop, CARGO doesn't display logs twice anymore.
- ...
You can get the full release notes via http://jira.codehaus.org/secure/ReleaseNote.jspa?projectId=10730&version=15230
To download CARGO, please visit http://cargo.codehaus.org/Downloads
Finally, Maven users actually don't care about downloading CARGO; Maven can do everything by itself:
- The full documentation of the CARGO Maven2 plugin can be found on http://cargo.codehaus.org/Maven2+plugin
- The CARGO Maven2 archetypes (which will automatically generate Maven2 projects with CARGO integrated) are documented on http://cargo.codehaus.org/Maven2+Archetypes
Enjoy !
Cargo 1.0 Released!
The Cargo community is pleased to announce the release of Cargo 1.0!
Homepage: http://cargo.codehaus.org/
Download: http://cargo.codehaus.org/Downloads
This is a major release of Cargo, including the following major improvements:
New Features
- Multiple DataSource and Resource support via Maven/Ant/Java properties (CARGO-608)
- Including support for Tomcat, WebLogic, OC4J, Resin
- Transactional DataSource configuration support (CARGO-644)
- Including support for WebLogic and OC4J
- JBoss Clustering Support for Deploying to farm directory (CARGO-535)
- Support for Servlet 2.4 web.xml files (CARGO-534)
- Add configuration option to allow JVM to be specified (CARGO-480)
New Containers
- Tomcat 6.x (CARGO-563)
- Jetty 6.x (CARGO-32)
- JBoss 4.2x (CARGO-562)
- WebLogic 8.1-10.3x (CARGO-636)
- JOnAs 4-5.x (CARGO-94)
Experimental Containers
- JRun 4.x
- JBoss 5.x
- Jetty 7.x
There were of course many other improvements and bug fixes. Have a look at our Jira for more information.
Enjoy Cargo 1.0!
-Adrian Cole
We will release Cargo 1.0 within the next two weeks!
This is a major release of Cargo, including the following major improvements:
New Features
- Multiple DataSource and Resource support via Maven/Ant/Java properties (CARGO-608)
- Transactional DataSource configuration support (CARGO-644)
- JBoss Clustering Support for Deploying to farm directory (CARGO-535)
- Support for Servlet 2.4 web.xml files (CARGO-534)
- Add configuration option to allow JVM to be specified (CARGO-480)
New Containers
- Tomcat 6.x (CARGO-563)
- Jetty 6.x (CARGO-32)
- JBoss 4.2x (CARGO-562)
- WebLogic 8.1-10.3x (CARGO-636)
- JOnAs 4-5.x (CARGO-94)
Experimental Containers
- JRun 4.x
- JBoss 5.x
- Jetty 7.x
There were of course many other improvements and bug fixes. Have a look at our Jira for more information.
Stay Tuned!
Cargo 0.9 was released in March of 2007.
The Cargo team is pleased to release the Cargo Maven2 plugin v0.2. Get it at http://cargo.codehaus.org/Downloads.
Full release notes on: http://cargo.codehaus.org/Release+notes+for+Maven2+plugin+0.2
Thanks
-The Cargo team
The Cargo team is pleased to release Cargo 0.8. Get it at http://cargo.codehaus.org/Downloads.
- Added support for Jetty 5.x and 6.x
- Added Geronimo support
- Added JMX hot deployer for JBoss 4.x
- Firmed up the Cargo APIs and several usability improvements
- Added notion of Embedded containers
Full release notes on: http://cargo.codehaus.org/Release+notes+for+Cargo+0.8
Thanks
-The Cargo team
The Cargo team is happy to announce the first release of the Maven2 plugin for Cargo (version 0.1).
Major features:
- Allows to start/stop all containers supported by Cargo (Resin, Tomcat, Orion, WebLogic, JBoss, Jetty, etc).
- Allows to perform local and remote deploys to containers
- Automatic deployment of generated artifact for J2EE projects (war, ear, ejb)
- Support for Cargo's generation of configurations and for user-provided custom configurations.
Useful links:
- Rel.Notes: http://cargo.codehaus.org/Release+notes+for+Maven2+plugin+0.1
- Plugin documentation: http://cargo.codehaus.org/Maven2+plugin
- Cargo: http://cargo.codehaus.org
- Samples: http://tinyurl.com/b57dl
Thanks
The Cargo team
The Cargo team is pleased to release Cargo 0.7. Get it at http://cargo.codehaus.org/Downloads.
- Major refactoring to support Remote containers (i.e. containers that are started somewhere and with which we don't interact through the file system).
- Added JBoss 3.x and 4.x support.
- Added new Deployable type: EJB. Note that this new deployable is supported only by the JBoss container.
- Added a Tomcat Existing Configuration implementation.
- Added a Tomcat Local Deployer and a Tomcat Remote Deployer which uses the Tomcat Manager app for deployment.
- Added a WebLogic Existing Configuration implementation.
Full release notes on http://cargo.codehaus.org/Release+notes+for+Cargo+0.7
Please note that version 0.7 has broken lots of the older APIs. This was mainly due to the refactoring caused by the addition of Remote container support. Cargo 0.7 is one of the last 0.X version before the 1.0 release and we took the opportunity to fix the API now rather than to go through a lengthy and difficult deprecation strategy (which we'll use once 1.0 is out). We apologize to all our early users for this. This is probably the last time such a major change happens before the 1.0 release.
If you have any question feel free to ask us on the Cargo list or on irc (irc.codehaus.org, channel: #cargo).
Thanks
-The Cargo team