Cargo : Deployable This page last changed on Dec 26, 2005 by vmassol. ### Definition Deployables are archives (WAR, EAR, etc) that can be deployed in the container ### Explanation A `Deployable` class is a wrapper class around a physical archive. `Deployable` are constructed by directly instantiating them (e.g. `new WAR(...)` or `new TomcatWAR(...)`) or by using a `DeployableFactory` (e.g. `DefaultDeployableFactory`). There are 2 generic deployable classes: `o.c.c.c.deployable.WAR` `o.c.c.c.deployable.EAR` There are also some container-specific deployables such as: `o.c.c.c.deployable.tomcat.TomcatWAR` `o.c.c.c.deployable.jboss.JBossWAR` They are there to support container extensions to archives (for example, Tomcat supports `context.xml` files located in your WAR's `META-INF` directory, JBoss allows for a `jboss-web.xml` located in your WAR, etc). The `DeployableFactory` interface offers a principal method for creating a `Deployable`: `DeployableFactory.createDeployable(String containerId, String deployableLocation, DeployableType type)`. `DeployableType` can be `DeployableType.WAR` or `DeployableType.EAR`. Once you have a `Deployable` instance wrapping your archive, you'll need to deploy it. This can be done either using Static Deployment or using Hot Deployment. ### Example using the Java API Deploying a WAR in Tomcat 5.x:
    Container container = new Tomcat5xContainer(
        new CatalinaStandalineConfiguration("target/tomcat5x"));
    container.setHome("c:/apps/tomcat-5.0.29");

    WAR war = new WAR("path/to/my.war");

    [...]
### Example using the Generic API
    [...]

    DeployableFactory factory = new DefaultDeployableFactory();
    WAR war = factory.createDeployable("tomcat5x", "path/to/my.war",
        DeployableType.WAR);
### Example using the Ant API Statically deploying a WAR in Tomcat 5.x:
    <cargo containerId="tomcat5x" home="c:/apps/tomcat-5.0.29" action="start">
      <configuration>
        <war warfile="path/to/my.war"/>
      </configuration>
    </cargo>
Note: In the future there will be an Ant task to support Hot Deployment.

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