Class 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 Detail

      • httpPort

        protected final int httpPort
      • container

        protected C extends org.codehaus.cargo.container.Container 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 Detail

      • 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 Detail

      • 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
      • 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
      • 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.
      • 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.