com.google.appengine.tools.development
Class AbstractContainerService

java.lang.Object
  extended by 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/interfaces inherited from interface com.google.appengine.tools.development.ContainerService
ContainerService.EnvironmentVariableMismatchSeverity
 
Constructor Summary
AbstractContainerService()
           
 
Method Summary
 void configure(java.lang.String devAppServerVersion, java.io.File appDir, java.lang.String webXmlLocation, AppEngineWebXmlReader appEngineWebXmlReader, java.lang.String address, int port)
          Set up the necessary configuration parameters.
 java.lang.String getAddress()
           
 java.io.File getAppDirectory()
          This allows us to recover the application directory from the container.
 int getPort()
           
 java.security.Permissions getUserPermissions()
          Returns a Permissions object containing UnresolvedPermission instances for every permission that was requested by the user in their appengine-web.xml file.
 void setEnvironmentVariableMismatchSeverity(ContainerService.EnvironmentVariableMismatchSeverity val)
          Override the default EnvironmentVariableMismatchSeverity setting, to disable exceptions during the testing.
 void shutdown()
          Shut down the servlet container.
 void startup()
          This is made final, and detail implementation (that is specific to any particular servlet container) goes to individual "template" methods.
 
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
getWebAppContext
 

Constructor Detail

AbstractContainerService

public AbstractContainerService()
Method Detail

configure

public final void configure(java.lang.String devAppServerVersion,
                            java.io.File appDir,
                            java.lang.String webXmlLocation,
                            AppEngineWebXmlReader appEngineWebXmlReader,
                            java.lang.String address,
                            int port)
Description copied from interface: ContainerService
Set up the necessary configuration parameters.

Specified by:
configure in interface ContainerService
Parameters:
devAppServerVersion - Version of the devAppServer.
appDir - The location of the application to run.
webXmlLocation - The location of a file whose format complies with http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd. Can be null.
appEngineWebXmlReader - The reader that will be used to create an instance of com.google.apphosting.utils.config.AppEngineWebXml. If null, an instance of AppEngineWebXmlReader will be instantiated with appDir as the constructor argument.

startup

public final void startup()
                   throws java.lang.Exception
This is made final, and detail implementation (that is specific to any particular servlet container) goes to individual "template" methods.

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
Shut down the servlet container.

Specified by:
shutdown in interface ContainerService
Throws:
java.lang.Exception - Any exception from the container will be rethrown as is.

getAddress

public java.lang.String getAddress()
Specified by:
getAddress in interface ContainerService
Returns:
the listener network address, however it's decided during the servlet container deployment.

getAppDirectory

public java.io.File getAppDirectory()
Description copied from interface: ContainerService
This allows us to recover the application directory from the container.

Specified by:
getAppDirectory in interface ContainerService

getPort

public int getPort()
Specified by:
getPort in interface ContainerService
Returns:
the listener port number, however it's decided during the servlet container deployment.

setEnvironmentVariableMismatchSeverity

public void setEnvironmentVariableMismatchSeverity(ContainerService.EnvironmentVariableMismatchSeverity val)
Description copied from interface: ContainerService
Override the default EnvironmentVariableMismatchSeverity setting, to disable exceptions during the testing.

Specified by:
setEnvironmentVariableMismatchSeverity in interface ContainerService
Parameters:
val - The new EnvironmentVariableMismatchSeverity.
See Also:
ContainerService.EnvironmentVariableMismatchSeverity

getUserPermissions

public java.security.Permissions getUserPermissions()
Description copied from interface: ContainerService
Returns a Permissions object containing UnresolvedPermission instances for every permission that was requested by the user in their appengine-web.xml file.

Note that user code will not actually running with these permissions. However, to user-provided code that calls SecurityManager.checkPermission directly it will appear that it is. This is designed primarily for third-party libraries that introduce their own Permission subclasses that are not used by any other classes.

Specified by:
getUserPermissions in interface ContainerService