Cargo Blog

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!

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!

CARGO 1.0.5 now available!

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!

CARGO 1.0.4 released!

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! (smile)

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!

CARGO 1.0.2 released!

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/lib directory -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 (smile)
  • 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 (smile)

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:

Enjoy !

Cargo 1.0 Released!

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

Cargo 1.0 Release Soon

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

Cargo 0.8 released

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:

Thanks
The Cargo team

Cargo 0.7 released

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