# Codehaus Cargo : Project Structure

Created by Former user, last modified by S. Ali Tokmen on Oct 08, 2025

This page has been automatically generated by Cargo's build. Do not edit it directly as it'll be overwritten next time it's generated again.

Cargo's directory organization can be daunting for a newcomer. So here's some information on how the project is organized.

Legend

- directory/ : represents a directory
- directory/ : represents a directory containing a Maven project

- cargo/: Cargo is a thin wrapper that allows you to manipulate various type of application containers (J2EE, Java EE, Jakarta EE and others) in a standard way.
  - resources/: Cargo Shared Resources (License files, Checkstyle configuration files, etc)
    - build-tools/: Cargo Build Tools
    - cargo-ping-component/: Cargo Ping Component
    - jetty-6-deployer/: Webapp used by Cargo to remotely deploy applications on a Jetty 6.x server
    - jetty-7-to-jetty-9-deployer/: Webapp used by Cargo to remotely deploy applications on Jetty servers version 7.x to 9.x
    - jetty-10-deployer/: Webapp used by Cargo to remotely deploy applications on a Jetty 10.x server
    - jetty-11-deployer/: Webapp used by Cargo to remotely deploy applications on a Jetty 11.x server
    - licensed-dtds/: DTDs that are used by some Cargo components which have licenses incompatible with the rest of Cargo
    - testdata/: Test data for the Sample applications
      - authentication-war/: Cargo test data for samples - Authenticated WAR
      - classpath-war/: Cargo test data for samples - Classpath WAR
      - datasource-cmt-local-war/: Cargo test data for samples - Local Transaction DataSource WAR
      - datasource-war/: Cargo test data for samples - DataSource WAR
      - expanded-war/: Cargo test data for samples - Expanded WAR
      - jms-queue-war/: Cargo test data for samples - JMS Queue WAR
      - jms-topic-war/: Cargo test data for samples - JMS Topic WAR
      - mailsession-war/: Cargo test data for samples - Mail Session WAR
      - simple-aop/: Cargo test data for samples - Simple AOP
      - simple-bundle/: Cargo test data for samples - Simple OSGi bundle
      - simple-ear/: Cargo test data for samples - Simple EAR
      - simple-ejb/: Cargo test data for samples - Simple EJB
      - simple-har/: Cargo test data for samples - Simple HAR
      - simple-jar/: Cargo test data for samples - Simple JAR.
        Used in tests to determine that specific classes are added to the classpath.
      - simple-war/: Cargo test data for samples - Simple WAR
      - systemproperty-war/: Cargo test data for samples - System Property test WAR data for samples
      - tomcat-context/: Cargo test data for samples - Tomcat context WAR
      - tomcat-context-link-simple-jar/: Cargo test data for samples - Tomcat context WAR with link to simple jar
      - two-datasources-war/: Cargo test data for samples - Multiple DataSource WAR
      - xadatasource-war/: Cargo test data for samples - XADataSource WAR
  - core/: Cargo Core
    - api/: The Cargo Core API
      - util/: Core Utility API (logging, File utils, etc)
      - module/: Core API to parse/create J2EE Modules
      - container/: API to start/stop/configure containers
      - generic/: Core API to generically access the typed container API
    - tools/: Tools for the Core API
      - jboss-deployer-api/: JBoss remote deployer API
      - jboss-deployer-5/: Remote deployer for JBoss 5.0.x
      - jboss-deployer-5.1-and-6/: Remote deployer for JBoss 5.1.x and 6.x
      - jboss-deployer-7/: Remote deployer for JBoss 7.x
    - containers/: Core API Container Implementations
      - geronimo/: Core API implementation for Geronimo containers
      - glassfish/: Core API implementation for GlassFish containers
      - jboss/: Core API implementation for JBoss containers
      - jetty/: Core API implementation for Jetty containers
      - jo/: Core API implementation for jo! containers
      - jonas/: Core API implementation for JOnAS containers
      - jrun/: Core API implementation for JRun containers
      - liberty/: Core API implementation for WebSphere Liberty containers
      - orion/: Core API implementation for Orion containers
      - payara/: Core API implementation for Payara containers
      - resin/: Core API implementation for Resin containers
      - tomcat/: Core API implementation for Tomcat containers
      - tomee/: Core API implementation for TomEE containers
      - weblogic/: Core API implementation for WebLogic containers
      - websphere/: Core API implementation for WebSphere containers
      - wildfly/: Core API implementation for WildFly containers
      - wildfly-swarm/: Core API implementation for WildFly Swarm containers
    - uberjar/: The Cargo Core Uberjar
    - samples/: Samples that exercises the Cargo Java APIs
      - java/: Sample application that exercises the Cargo Java API
    - documentation/: Cargo Website Resources
  - extensions/: Cargo Extensions
    - ant/: Cargo Extensions for Ant
      - tasks/: Ant tasks for Cargo
      - samples/: Cargo Samples for Ant
        - ant1.10-test/: Sample application that tests the the Cargo Ant tasks with Ant 1.10.x
        - configurationFiles-xmlReplacements-test/: Sample application that tests the configuration files and XML replacement options
        - daemon-test/: Sample application that exercises the Cargo Ant tasks with the daemon
        - datasource-test/: Sample application that exercises the Cargo Ant tasks with a container and a datasource
        - remote-test/: Sample application that exercises the Cargo Ant tasks with a remote container
        - users-test/: Sample application that exercises the Cargo Ant tasks with a container and users defined
    - daemon/: Cargo Extensions for Daemon
      - client/: Cargo Daemon Client
      - webapp/: Cargo Daemon Web Application
      - itests/: Cargo Daemon Integration Tests
        - browser/: Cargo Daemon Client - Browser
        - client/: Cargo Daemon Client - Java client
        - client-with-authentication/: Cargo Daemon client with authentication - Java client
        - deployable-on-jetty/: Cargo Daemon Client - Deployable on Jetty
        - deployable-on-tomcat/: Cargo Daemon Client - Deployable on Tomcat
    - maven3/: Cargo Extensions for Maven 3
      - plugin/: Cargo Maven 3 Plugin
      - archetypes/: Sample Maven archetypes for using Cargo
        - daemon/: Sample Maven archetype showing how to configure Cargo and Maven to generate a webapp and remotely start and stop a container with the application deployed on it.
        - multiple-containers/: Sample Maven archetype showing how to start / stop multiple containers.
        - remote-deployment/: Sample Maven archetype showing how to configure Cargo and Maven to generate a webapp and deploy it to a remote container.
        - webapp-functional-tests-module/: Sample Maven archetype showing how to configure Cargo and Maven to run functional tests for a webapp by creating a separate functional-tests module.
        - webapp-single-module/: Sample Maven archetype showing how to configure Cargo and Maven to run functional tests directly from a single webapp module.
        - webapp-with-datasource/: Sample Maven archetype showing how to configure Cargo and Maven to run functional tests directly from a webapp with datasource. Cargo will be used to configure the datasource on the container.
      - samples/: Cargo Samples for Maven 3
        - artifactInstaller-test/: Sample application that tests the artifact installer
        - autoDeployable-test/: Sample application that exercises the Cargo Maven 3 plugin's AutoDeployable capabilities
        - configurationFiles-xmlReplacements-test/: Sample application that tests the configuration files and XML replacement options
        - glassfish6x-remoteDeploy-test/: Sample application that tries remote deployment on a GlassFish 6.x container
        - implementationClasses-test/: Sample application that exercises the Cargo Maven 3 plugin with personalized implementation classes
        - inPlaceDevelopment-test/: Sample application that exercises the Cargo Maven 3 plugin's in-place development capabilities. Note that this sample currently works only for Jetty and Tomcat as it requires that container implementations support deploying an expanded WAR from a directory without copying it to the container deploy directory.
        - jetty5x-embedded-test/: Sample application that exercises the Cargo Maven 3 plugin with an embedded Jetty 5.x container
        - jetty6x-embedded-test/: Sample application that exercises the Cargo Maven 3 plugin with an embedded Jetty 6.x container
        - jetty7x-embedded-test/: Sample application that exercises the Cargo Maven 3 plugin with an embedded Jetty 7.x container
        - jetty7x-root-context-test/: Sample application that exercises the Cargo Maven 3 plugin with a Jetty 7.x container and the root context
        - jetty8x-embedded-test/: Sample application that exercises the Cargo Maven 3 plugin with an embedded Jetty 8.x container
        - jetty9x-embedded-test/: Sample application that exercises the Cargo Maven 3 plugin with an embedded Jetty 9.x container
        - jetty10x-embedded-test/: Sample application that exercises the Cargo Maven 3 plugin with an embedded Jetty 10.x container
        - jetty11x-embedded-test/: Sample application that exercises the Cargo Maven 3 plugin with an embedded Jetty 11.x container
        - jetty12x-ee8-embedded-test/: Sample application that exercises the Cargo Maven 3 plugin with an embedded Jetty 12.x container with EE8 profile
        - jetty12x-ee9-embedded-test/: Sample application that exercises the Cargo Maven 3 plugin with an embedded Jetty 12.x container with EE9 profile
        - jetty12x-ee10-embedded-test/: Sample application that exercises the Cargo Maven 3 plugin with an embedded Jetty 12.x container with EE10 profile
        - jetty12x-ee11-embedded-test/: Sample application that exercises the Cargo Maven 3 plugin with an embedded Jetty 12.x container with EE11 profile
        - jetty12x-embedded-test/: Sample application that exercises the Cargo Maven 3 plugin with an embedded Jetty 12.x container
        - license-test/: Sample application that exercises checks the Uberjar with regards to its license needs (CARGO-1489 and CARGO-1494)
        - multi-datasource-test/: Sample application that exercises the Cargo Maven 3 plugin with a Tomcat 6.x container and multiple datasources
        - ping-test/: Sample application that exercises the Cargo Maven 3 plugin's deployable pinging capabilities
        - remoteDeploy-test/: Sample application that tries remote deployment
        - runMojo-test/: Sample application that tries the cargo:run MOJO
        - tomcat6x-embedded-test/: Sample application that exercises the Cargo Maven 3 plugin with an embedded Tomcat 6.x container
        - tomcat7x-context-test/: Sample application that exercises the Cargo Maven 3 plugin with a Tomcat 7.x container and a user-defined context
        - tomcat7x-embedded-test/: Sample application that exercises the Cargo Maven 3 plugin with an embedded Tomcat 7.x container
        - tomcat7x-systemProperty-test/: Sample application that exercises the Cargo Maven 3 plugin with a Tomcat 7.x container and user-defined system properties
        - tomcat8x-embedded-test/: Sample application that exercises the Cargo Maven 3 plugin with an embedded Tomcat 8.x container
        - tomcat9x-embedded-test/: Sample application that exercises the Cargo Maven 3 plugin with an embedded Tomcat 9.x container
        - tomcat10x-embedded-test/: Sample application that exercises the Cargo Maven 3 plugin with an embedded Tomcat 10.x container
        - tomcat10x-legacyWar-test/: Sample application that exercises the Cargo Maven 3 plugin with a Tomcat 10.x container and a legacy WAR
        - tomcat11x-embedded-test/: Sample application that exercises the Cargo Maven 3 plugin with an embedded Tomcat 11.x container
        - uberwar-test/: Sample application that exercises the Cargo Maven 3 plugin's uberwar feature
        - users-test/: Sample application that will be used to test configuration of users and roles.
        - weblogic-test/: Sample application that will be used to test the WebLogic container
        - websphere-test/: Sample application that will be used to test the WebSphere container
        - wildfly-swarm-test/: Sample application that will be used to test the WildFly Swarm container