Cargo : Ant support This page last changed on Mar 17, 2006 by vmassol. ### Definition Cargo provides Ant tasks to perform all the operations available from the Java API ### Explanation Before using the Ant API you need to register the Cargo Ant tasks into Ant. This is done in the following manner:
    <taskdef resource="cargo.tasks">
      <classpath>
        <pathelement location="${cargo-core-uberjar-0.7.jar}"/>
        <pathelement location="${cargo-ant-0.7.jar}"/>
      </classpath>
    </taskdef>
### Examples #### Orion 2.x Here's a full example showing how to deploy a WAR, and expanded WAR and an EAR in an Orion 2.x container. Please note that the `output` and `log` attribute are optional. The `property` elements allow you to tune how the container is configured. Here we're telling it to start on port 8180 and to generate the maximum amount of logs in the container `output` file.
    <taskdef resource="cargo.tasks">
      <classpath>
        <pathelement location="path/to/cargo.jar"/>
      </classpath>
    </taskdef>

    <cargo containerId="orion2x" home="c:/apps/orion-2.0.3" output="target/output.log"
        log="target/cargo.log" action="start">
      <configuration>
        <property name="cargo.servlet.port" value="8180"/>
        <property name="cargo.logging" value="high"/>
        <deployable type="war" file="path/to/my/simple.war"/>
        <deployable type="war" file="path/to/my/expandedwar/simple"/>
        <deployable type="ear" file="path/to/my/simple.ear"/>
      </configuration>
    </cargo>
#### Tomcat 5.x This example gives a walk through of how to get a Cargo Ant build to work with Tomcat 5.x . ##### Prerequisites It is assumed that Tomcat 5.x is already installed The cargo-core-uberjar-0.7.jar and cargo-ant-0.7.jar JARs have been downloaded A mimimum knowledge of Ant is required User already has a `war` target that properly generates a working war file ##### Steps Follow the following steps to configure your `build.xml` : Create a folder under your basedir called cargolib that will hold cargo-core-uberjar-0.7.jar and cargo-ant-0.7.jar Define a property for cargolib
    <property name="cargolib.dir" value="${basedir}/cargolib"/>
Define 2 new properties `cargo-uberjar` and `cargo-antjar` as shown below:
    <property name="cargo-uberjar" value="${cargolib.dir}/cargo-core-uberjar-0.7.jar"/>
    <property name="cargo-antjar" value="${cargolib.dir}/cargo-ant-0.7.jar"/>
- Add additional properties for defining the following:
  Property | Description
  --- | ---
  tomcat.home | Installation directory of tomcat5x
  tomcatlog.dir | This is where our logs are going to be generated
  tomcatconfig.dir | Cargo needs an empty config folder
  pathtowarfile | The full path of the war file e.g c:/devtools/myapp/dist/myfile.war
- Add the following code to your build.xml :
      <taskdef resource="cargo.tasks">
        <classpath>
          <pathelement location="${cargo-uberjar}"/>
          <pathelement location="${cargo-antjar}"/>
        </classpath>
      </taskdef>

      <target name="cargostart" depends="war">
        <delete dir="${tomcatconfig.dir}" />
        <mkdir dir="${tomcatlog.dir}"/>
        <mkdir dir="${tomcatconfig.dir}"/>
        <echo message="Starting Cargo..."/>
        <echo message="Using tomcat.home = ${tomcat.home} "/>
        <echo message="Using war = ${mywarfile} "/>
        <echo message="Jars used = ${cargo-uberjar} , ${cargo-antjar}"/>

        <cargo containerId="tomcat5x" home="${tomcat.home}" output="${tomcatlog.dir}/output.log"
            log="${tomcatlog.dir}/cargo.log" action="start">
          <configuration home="${tomcatconfig.dir}">
            <property name="cargo.servlet.port" value="8080"/>
            <property name="cargo.logging" value="high"/>
            <deployable type="war" file="${mywarfile}"/>
          </configuration>
        </cargo>

        <input>Press the Return key to stop Tomcat...</input>

      </target>
| Stopping Tomcat If the following is not specified in the target:
    <input>Press the Return key to stop Tomcat...</input>
the build after executing the `cargostart` target will just end with a `BUILD SUCCESSFUL` message and you won't get access to your webapp.The line of code above tells Ant not to stop the build process until the user presses the `Return` key, thus allowing you to access your webapp on port 8080 e.g `http://localhost:8080/mywebapp`

Document generated by Confluence on Mar 22, 2006 15:28