com.google.appengine.tools.development

## Class AbstractContainerService

- java.lang.Object
- - com.google.appengine.tools.development.AbstractContainerService

- All Implemented Interfaces:
    ContainerService

      public abstract class AbstractContainerService
      extends java.lang.Object
      implements ContainerService

  Common implementation for the `ContainerService` interface.

  There should be no reference to any third-party servlet container from here.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `AbstractContainerService.LocalInitializationEnvironment` A fake `LocalEnvironment` implementation that is used during the initialization of the Development AppServer.
    `static interface` | `AbstractContainerService.PortMappingProvider` Provider for the 'portMapping'.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `PORT_MAPPING_PROVIDER_PROP`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractContainerService()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `com.google.appengine.tools.development.LocalServerEnvironment` | `configure(java.lang.String devAppServerVersion, java.lang.String address, int port, com.google.appengine.tools.development.ApplicationConfigurationManager.ModuleConfigurationHandle moduleConfigurationHandle, java.io.File externalResourceDir, java.util.Map<java.lang.String,java.lang.Object> containerConfigProperties, int instance, DevAppServer devAppServer)` Sets up the necessary configuration parameters.
    `void` | `createConnection()` Create's this containers network connections.
    `java.lang.String` | `getAddress()` Returns the listener network address, however it's decided during the servlet container deployment.
    `AppEngineWebXml` | `getAppEngineWebXmlConfig()` Return the AppEngineWebXml configuration of this container
    `java.lang.String` | `getHostName()` Returns the host name of the module instance, 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.
    `static void` | `installLocalInitializationEnvironment(AppEngineWebXml appEngineWebXml, int instance, int port, int defaultModuleMainPort, java.lang.String backendName, int backendInstance, java.util.Map<java.lang.String,java.lang.String> portMapping)` Sets up an `com.google.apphosting.api.ApiProxy.Environment` for container initialization.
    `void` | `setApiProxyDelegate(<any> apiProxyDelegate)` Sets the `com.google.apphosting.api.ApiProxy.Delegate`.
    `void` | `shutdown()` Shuts down the servlet container.
    `void` | `startup()` Starts up the servlet container.

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface com.google.appengine.tools.development.ContainerService

      `forwardToServer, getAppContext`

- - ### Field Detail

    - #### PORT_MAPPING_PROVIDER_PROP

          public static final java.lang.String PORT_MAPPING_PROVIDER_PROP

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### AbstractContainerService

          public AbstractContainerService()

  - ### Method Detail

    - #### configure

          public final com.google.appengine.tools.development.LocalServerEnvironment configure(java.lang.String devAppServerVersion,
                                                                                               java.lang.String address,
                                                                                               int port,
                                                                                               com.google.appengine.tools.development.ApplicationConfigurationManager.ModuleConfigurationHandle moduleConfigurationHandle,
                                                                                               java.io.File externalResourceDir,
                                                                                               java.util.Map<java.lang.String,java.lang.Object> containerConfigProperties,
                                                                                               int instance,
                                                                                               DevAppServer devAppServer)

      Description copied from interface: `ContainerService`
      Sets up the necessary configuration parameters.
      Specified by:
        `configure` in interface `ContainerService`
      Parameters:
        `devAppServerVersion` - Version of the devAppServer.
        `address` - The address on which the module instance will run
        `port` - The port to which the module instance will be bound. If 0, an available port will be selected.
        `moduleConfigurationHandle` - Handle to access and reread the configuration.
        `externalResourceDir` - If not `null`, a resource directory external to the applicationDirectory. This will be searched before applicationDirectory when looking for resources.
        `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.
        `instance` - the 0 based instance number for this container's instance or `LocalEnvironment.MAIN_INSTANCE`.
      Returns:
        A LocalServerEnvironment describing the environment in which the module instance is running.

    - #### setApiProxyDelegate

          public void setApiProxyDelegate(<any> apiProxyDelegate)

      Description copied from interface: `ContainerService`
      Sets the `com.google.apphosting.api.ApiProxy.Delegate`.

      Note that this provides access to the original delegate which was established by the `DevAppServer`. Though this delegate is usually available by calling the delegate can be changed by the application so we keep this reference to the original.

      Specified by:
        `setApiProxyDelegate` in interface `ContainerService`

    - #### createConnection

          public final void createConnection()
                                      throws java.lang.Exception

      Description copied from interface: `ContainerService`
      Create's this containers network connections. After this returns `ContainerService.getAddress()`, `ContainerService.getPort()` and `getHostName` return correct values for this container.
      Specified by:
        `createConnection` in interface `ContainerService`
      Throws:
        `java.lang.Exception`

    - #### startup

          public final void startup()
                             throws java.lang.Exception

      Description copied from interface: `ContainerService`
      Starts up the servlet container.
      Specified by:
        `startup` in interface `ContainerService`
      Throws:
        `java.lang.Exception` - Any exception from the container will be rethrown as is.

    - #### shutdown

          public final void shutdown()
                              throws java.lang.Exception

      Description copied from interface: `ContainerService`
      Shuts down the servlet container.
      Specified by:
        `shutdown` in interface `ContainerService`
      Throws:
        `java.lang.Exception` - Any exception from the container will be rethrown as is.

    - #### getServiceProperties

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

      Description copied from interface: `ContainerService`
      Get a set of properties to be passed to each service, based on the AppEngineWebXml configuration.
      Specified by:
        `getServiceProperties` in interface `ContainerService`
      Returns:
        the map of properties to be passed to each service.

    - #### getAddress

          public java.lang.String getAddress()

      Description copied from interface: `ContainerService`
      Returns the listener network address, however it's decided during the servlet container deployment.
      Specified by:
        `getAddress` in interface `ContainerService`

    - #### getAppEngineWebXmlConfig

          public AppEngineWebXml getAppEngineWebXmlConfig()

      Description copied from interface: `ContainerService`
      Return the AppEngineWebXml configuration of this container
      Specified by:
        `getAppEngineWebXmlConfig` in interface `ContainerService`

    - #### getPort

          public int getPort()

      Description copied from interface: `ContainerService`
      Returns the listener port number, however it's decided during the servlet container deployment.
      Specified by:
        `getPort` in interface `ContainerService`

    - #### getHostName

          public java.lang.String getHostName()

      Description copied from interface: `ContainerService`
      Returns the host name of the module instance, however it's decided during the the servlet container deployment.
      Specified by:
        `getHostName` in interface `ContainerService`

    - #### installLocalInitializationEnvironment

          public static void installLocalInitializationEnvironment(AppEngineWebXml appEngineWebXml,
                                                                   int instance,
                                                                   int port,
                                                                   int defaultModuleMainPort,
                                                                   java.lang.String backendName,
                                                                   int backendInstance,
                                                                   java.util.Map<java.lang.String,java.lang.String> portMapping)

      Sets up an `com.google.apphosting.api.ApiProxy.Environment` for container initialization.