com.google.appengine.tools.development

## Interface ContainerService

- All Known Implementing Classes:
    AbstractContainerService

      public interface ContainerService

  Provides the backing servlet container support for the `DevAppServer`, as discovered via `ServiceProvider`.

  More specifically, this interface encapsulates the interactions between the `DevAppServer` and the underlying servlet container, which by default uses Jetty.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static class` | `ContainerService.EnvironmentVariableMismatchSeverity` The severity with which we'll treat environment variable mismatches.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `com.google.appengine.tools.development.LocalServerEnvironment` | `configure(java.lang.String devAppServerVersion, java.io.File appDir, java.io.File externalResourceDir, java.io.File webXmlLocation, java.io.File appEngineWebXmlLocation, java.lang.String address, int port, java.util.Map<java.lang.String,java.lang.Object> containerConfigProperties, DevAppServer devAppServer)` Sets up the necessary configuration parameters.
    `java.lang.String` | `getAddress()` Returns the listener network address, however it's decided during the servlet container deployment.
    `com.google.appengine.tools.development.AppContext` | `getAppContext()` Returns the context representing the currently executing webapp.
    `AppEngineWebXml` | `getAppEngineWebXmlConfig()` Return the AppEngineWebXml configuration of this container
    `BackendsXml` | `getBackendsXml()`
    `java.lang.String` | `getHostName()` Returns the host name of the server, however it's decided during the the servlet container deployment.
    `int` | `getPort()` Returns the listener port number, however it's decided during the servlet container deployment.
    `java.util.Map<java.lang.String,java.lang.String>` | `getServiceProperties()` Get a set of properties to be passed to each service, based on the AppEngineWebXml configuration.
    `void` | `setEnvironmentVariableMismatchSeverity(ContainerService.EnvironmentVariableMismatchSeverity val)` Overrides the default EnvironmentVariableMismatchSeverity setting, to disable exceptions during the testing.
    `void` | `shutdown()` Shuts down the servlet container.
    `void` | `startup()` Starts up the servlet container.

- - ### Method Detail

    - #### configure

          com.google.appengine.tools.development.LocalServerEnvironment configure(java.lang.String devAppServerVersion,
                                                                                java.io.File appDir,
                                                                                java.io.File externalResourceDir,
                                                                                java.io.File webXmlLocation,
                                                                                java.io.File appEngineWebXmlLocation,
                                                                                java.lang.String address,
                                                                                int port,
                                                                                java.util.Map<java.lang.String,java.lang.Object> containerConfigProperties,
                                                                                DevAppServer devAppServer)

      Sets up the necessary configuration parameters.
      Parameters:
        `devAppServerVersion` - Version of the devAppServer.
        `appDir` - The location of the application to run.
        `externalResourceDir` - If not `null`, a resource directory external to the appDir. This will be searched before appDir when looking for resources.
        `webXmlLocation` - The location of a file whose format complies with http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd. If null we will use /WEB-INF/web.xml.
        `appEngineWebXmlLocation` - The location of the app engine config file. If null we will use /WEB-INF/appengine-web.xml.
        `address` - The address on which the server will run
        `port` - The port to which the server will be bound. If 0, an available port will be selected.
        `containerConfigProperties` - Additional properties used in the configuration of the specific container implementation. This map travels across classloader boundaries, so all values in the map must be JRE classes.
      Returns:
        A LocalServerEnvironment describing the environment in which the server is running.

    - #### startup

          void startup()
                       throws java.lang.Exception

      Starts up the servlet container.
      Throws:
        `java.lang.Exception` - Any exception from the container will be rethrown as is.

    - #### shutdown

          void shutdown()
                        throws java.lang.Exception

      Shuts down the servlet container.
      Throws:
        `java.lang.Exception` - Any exception from the container will be rethrown as is.

    - #### getAddress

          java.lang.String getAddress()

      Returns the listener network address, however it's decided during the servlet container deployment.

    - #### getPort

          int getPort()

      Returns the listener port number, however it's decided during the servlet container deployment.

    - #### getHostName

          java.lang.String getHostName()

      Returns the host name of the server, however it's decided during the the servlet container deployment.

    - #### getAppContext

          com.google.appengine.tools.development.AppContext getAppContext()

      Returns the context representing the currently executing webapp.

    - #### getAppEngineWebXmlConfig

          AppEngineWebXml getAppEngineWebXmlConfig()

      Return the AppEngineWebXml configuration of this container

    - #### getBackendsXml

          BackendsXml getBackendsXml()

    - #### setEnvironmentVariableMismatchSeverity

          void setEnvironmentVariableMismatchSeverity(ContainerService.EnvironmentVariableMismatchSeverity val)

      Overrides the default EnvironmentVariableMismatchSeverity setting, to disable exceptions during the testing.
      Parameters:
        `val` - The new EnvironmentVariableMismatchSeverity.
      See Also:
        `ContainerService.EnvironmentVariableMismatchSeverity`

    - #### getServiceProperties

          java.util.Map<java.lang.String,java.lang.String> getServiceProperties()

      Get a set of properties to be passed to each service, based on the AppEngineWebXml configuration.
      Returns:
        the map of properties to be passed to each service.