Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 89 Next »

Mission

Cargo is a thin wrapper around existing containers (e.g. J2EE containers). It provides different APIs to easily manipulate containers.

Cargo provides the following APIs:

  • A Java to start/stop/configure Java Containers and deploy modules into them. We also offer Ant tasks, Maven 1, Maven 2, Intellij IDEA and Netbeans plugins.
  • A Java API to parse/create J2EE Modules

Status

Version status (click in the status column to get release notes):

Version

Status

Comments

0.1

(tick)

Released on 11/09/04

0.2

(tick)

Released on 03/10/04

0.3

(tick)

Released on 30/10/04

0.4

(tick)

Released on 26/11/04

0.5

(tick)

Released on 30/04/05

0.6

(tick)

Released on 21/07/05

0.7

(error)

Sometime in November 2005

1.0

(error)

End of year 2005?


Documentation for Cargo version in development

Icon

The documentation below is for Cargo 0.7 which is the version that we are currently developing (not released yet). The documentation for Cargo 0.6 (latest released version) is available here

Architecture


Cargo offers differents ways of using it at different levels:

  • Module Java API: A Java API to parse/create J2EE Modules (WAR, EAR, etc)
  • Container Java API: A Java API to start/stop/configure Java Containers and deploy modules into them.
  • Generic Java API: A Java API that sits on top of the Container API but allows writing generic code that works with any container. It consists mostly in a set of Factory classes to instantiate Container API objects by name.
  • Build plugins
  • IDE plugins
    • Netbeans plugin
    • IntelliJ IDEA

The main Container API objects are:

  • The Container is the top level interface wrapping a real physical container. Cargo supports local and remote containers. A Container is composed of a Configuration.
  • A Configuration tells Cargo how the container is to be configured (whether it should create a standalone setup, whether it should be based on an existing configuration, etc). A Configuration can be configured to install Deployable before the Container is started.
  • You can use a Deployer to deploy Deployable dynamically (i.e. after the Container is started).
  • Deployables are archives to be deployed in the Container. They are WAR, EAR, etc.

Feature list

Some top-level features (the full feature list can be found here):

  • ConfigurationA Configuration specifies how the container is configured (logging, security, data sources, location where to put deployables, etc).
  • ContainerA top level interface wrapping a real physical container
  • DebuggingExplain how to perform debugging when something doesn't work in Cargo
  • DeploymentHow to deploy components to a container
  • ExtensionsExtensions are additions to the Cargo core Java API such as build tool plugins, IDE plugins, etc
  • Module APIAPI to manipulate J2EE archives, including vendor-specific deployment descriptors

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

(tick)
0.8

(tick)
0.8

(tick)
0.8

Geronimo 2.x

(tick)
1.0.4

(tick)
1.0.4

(tick)
1.0.4

Geronimo 3.x(tick)
1.2.4
(tick)
1.2.4
(tick)
1.2.4

Glassfish 2.x

(tick)
1.0.1

(tick)
1.0.1

(tick)
1.0.1

Glassfish 3.x

(tick)
1.0.1

(tick)
1.0.1

(tick)
1.0.1

Glassfish 4.x(tick)
1.4.0
(tick)
1.4.0
(tick)
1.4.0

JBoss 3.x

(tick)
0.7

(tick)
0.7

(tick)
0.7

JBoss 4.x

(tick)
0.7

(tick)
0.7

(tick)
0.7

JBoss 4.2.x

(tick)
1.0

(tick)
1.0

(tick)
1.0

JBoss 5.x

(tick)
1.0

(tick)
1.0

(tick)
1.0

JBoss 5.1.x

(tick)
1.0.1

(tick)
1.0.1

(tick)
1.0.1

JBoss 6.x

(tick)
1.0.1

(tick)
1.0.1

(tick)
1.0.1

JBoss 6.1.x

(tick)
1.1.3

(tick)
1.1.3

(tick)
1.1.3

JBoss 7.x

(tick)
1.1.2

(tick)
1.1.2

(tick)
1.1.2

JBoss 7.1.x

(tick)
1.1.4

(tick)
1.1.4

(tick)
1.1.4

JBoss 7.2.x

(tick)
1.4.3
(tick)
1.4.3
(tick)
1.4.3
JBoss 7.3.x(tick)
1.4.6
(tick)
1.4.6
(tick)
1.4.6
JBoss 7.4.x(tick)
1.4.9
(tick)
1.4.9
(tick)
1.4.9

Jetty 4.x

(tick)
0.1

(tick)
1.0

(tick)
0.2

Jetty 5.x

(tick)
0.8

(tick)
1.0

(tick)
0.2

Jetty 6.x

(tick)
0.8

(tick)
1.0

(tick)
0.2

Jetty 7.x

(tick)
1.0.1

(tick)
1.0.1

(tick)
1.0.1

Jetty 8.x

(tick)
1.1.3

(tick)
1.1.3

(tick)
1.1.3

Jetty 9.x

(tick)
1.3.0

(tick)
1.3.0

(tick)
1.3.0

jo! 1.x

(tick)
0.5

(tick)
0.5

(tick)
0.1

JOnAS 4.x

(tick)
1.0

(tick)
1.0

(tick)
1.0

JOnAS 5.x

(tick)
1.0

(tick)
1.0

(tick)
1.0

JRun 4.x

(tick)
1.0

(tick)
1.0

(tick)
1.0

Oc4J 9.x

(tick)
0.3

(tick)
0.3

(tick)
0.3

Oc4j 10.x

(tick)
1.0

(tick)
1.0

(tick)
1.0

Resin 2.x

(tick)
0.1

(tick)
0.1

(tick)
0.1

Resin 3.x

(tick)
0.1

(tick)
0.1

(tick)
0.1

Resin 3.1.x(tick)
1.2.0
(tick)
1.2.0
(tick)
1.2.0
Resin 4.x(tick)
1.4.0
(tick)
1.4.0
(tick)
1.4.0

Tomcat 4.x

(tick)
0.1

(tick)
0.1

(tick)
0.1

Tomcat 5.x

(tick)
0.1

(tick)
0.1

(tick)
0.1

Tomcat 6.x

(tick)
1.0

(tick)
1.0

(tick)
1.0

Tomcat 7.x

(tick)
1.0.2

(tick)
1.0.2

(tick)
1.0.2

Tomcat 8.x(tick)
1.4.4
(tick)
1.4.4
(tick)
1.4.4

WebLogic 8.x

(tick)
0.3

(tick)
0.3

(tick)
0.1

WebLogic 9.x

(tick)
1.0

(tick)
1.0

(tick)
1.0

WebLogic 10.x

(tick)
1.0

(tick)
1.0

(tick)
1.0

WebLogic 10.3.x

(tick)
1.0

(tick)
1.0

(tick)
1.0

WebLogic 12.x(tick)
1.2.4
(tick)
1.2.4
(tick)
1.2.4
WebLogic 12.1.x(tick)
1.4.6
(tick)
1.4.6
(tick)
1.4.6
WebSphere 8.5.x(tick)
1.3.0
(tick)
1.3.0
(tick)
1.3.0
WildFly 8.x(tick)
1.4.2
(tick)
1.4.2
(tick)
1.4.2


Some containers are tested dialy on the Codehaus Cargo Continous Integration System; for these the container's page also shows which version is tested.

Quick Start

The following examples demonstrate how to configure Resin 3.0.15 to start in target/resin3x and deploy a WAR located in path/to/simple.war using the Java API. The default port is 8080. Please note that the container.start() and container.stop() methods wait until the container is fully started and fully stopped before continuing. Thus, for any action you are executing after, you are assured the container is completely operational.

ANT tasks and Maven2 plugin

Icon

CARGO can be used using its Java API as it is shown here. In addition to a Java API, CARGO also has ANT tasks and a Maven2 plugin:

Static deployment

Static deployment means that the Deployable is deployed before the container is started. Here's an example using the strongly typed Java API:

Here's the same example using the generic untyped API (which we recommend as it leads to more generic code):

Hot deployment

Hot deployment means that the Deployable is deployed after the container is started.

Functional tests

For a detailed documentation on how to use Cargo for executing functional tests on a container, directly from your Java unit test classes (JUnit, TestNG, etc), read our Functional testing page.

  • No labels