Class InstalledCargoApplicationContainer

java.lang.Object
com.sun.xml.ws.test.container.AbstractApplicationContainer
com.sun.xml.ws.test.container.cargo.InstalledCargoApplicationContainer
All Implemented Interfaces:
ApplicationContainer

public class InstalledCargoApplicationContainer extends AbstractApplicationContainer
ApplicationContainer that launches a container from within the harness.

This uses an image of the container installed locally, but this operation does not affect the data file and configuration files in that installation, so you need not have an installation dedicated to this test harness.

Author:
Kohsuke Kawaguchi
  • Field Details

    • httpPort

      protected final int httpPort
    • container

      protected org.codehaus.cargo.container.InstalledLocalContainer container
      Expected to be set by the constructor of the derived class. Conceptually final --- no update after that.
    • deployerFactory

      protected final org.codehaus.cargo.generic.deployer.DefaultDeployerFactory deployerFactory
    • deployableFactory

      protected final org.codehaus.cargo.generic.deployable.DefaultDeployableFactory deployableFactory
  • Constructor Details

    • InstalledCargoApplicationContainer

      public InstalledCargoApplicationContainer(WsTool wsimport, WsTool wsgen, String containerId, File homeDir, int port, boolean httpspi) throws IOException
      Parameters:
      containerId - The ID that represents the container. "tomcat5x" for Tomcat.
      homeDir - The installation of the container. For Tomcat, this is
      Throws:
      IOException
  • Method Details

    • toString

      public String toString()
      For tomcat local, since cargo doesn't support copying of shared/lib jars, the war can be created with the jars in the WEB-INF/lib. Other option is to subclass Tomcat5xStandaloneLocalConfiguration and do the copying of jars from Tomcat installation to local working dir in doConfigure() Copy JAX-WS runtime code? protected boolean copyRuntimeLibraries() { return false; }
      Overrides:
      toString in class Object
    • assembleWar

      protected WAR assembleWar(DeployedService service) throws Exception
      Description copied from class: AbstractApplicationContainer
      Prepares an exploded war file image for this service.
      Overrides:
      assembleWar in class AbstractApplicationContainer
      Throws:
      Exception
    • start

      public void start() throws Exception
      Description copied from interface: ApplicationContainer
      Starts the container. This is invoked at the very beginning before any service is deployed.
      Throws:
      Exception
    • shutdown

      public void shutdown() throws Exception
      Description copied from interface: ApplicationContainer
      Stops the container. This is invoked at the end to clean up any resources.
      Throws:
      Exception
    • getServiceUrl

      protected URL getServiceUrl(String contextPath) throws Exception
      Throws:
      Exception
    • getFreePort

      public static int getFreePort()
    • getTransport

      public String getTransport()
      Description copied from interface: ApplicationContainer
      Returns the transport that this container uses for testing.
      Returns:
      For example, "http", "local", "tcp", "jms", etc. It should match the scheme portion of the endpoint address URI. Never null. This value is compared in the descriptor's transport declaration to decide wheter to run a test or not.
    • deploy

      @NotNull public Application deploy(DeployedService service) throws Exception
      Description copied from interface: ApplicationContainer
      Starts a service inside a container, making it ready to process requests.
      Throws:
      Exception
    • needsArchive

      protected boolean needsArchive()
      True if the Cargo implementation only takes a .war file and not the exploded war image. Not creating a war file makes the testing faster.