com.google.appengine.tools.development

## Class DevAppServerFactory

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

-     public class DevAppServerFactory
      extends java.lang.Object

  Creates new `DevAppServers` which can be used to launch web applications.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `DevAppServerFactory()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `DevAppServer` | `createDevAppServer(java.io.File appDir, java.io.File webXmlLocation, java.io.File appEngineWebXmlLocation, java.lang.String address, int port, boolean useCustomStreamHandler, boolean installSecurityManager, java.util.Collection<java.net.URL> classpath)` Creates a new `DevAppServer` with a custom classpath for the web app.
    `DevAppServer` | `createDevAppServer(java.io.File appDir, java.io.File webXmlLocation, java.io.File appEngineWebXmlLocation, java.lang.String address, int port, boolean useCustomStreamHandler, boolean installSecurityManager, java.util.Collection<java.net.URL> classpath, boolean noJavaAgent)` Creates a new `DevAppServer` with a custom classpath for the web app.
    `DevAppServer` | `createDevAppServer(java.io.File appDir, java.io.File webXmlLocation, java.io.File appEngineWebXmlLocation, java.lang.String address, int port, boolean useCustomStreamHandler, boolean installSecurityManager, java.util.Map<java.lang.String,java.lang.Object> containerConfigProperties)` Creates a new `DevAppServer` ready to start serving.
    `DevAppServer` | `createDevAppServer(java.io.File appDir, java.io.File webXmlLocation, java.io.File appEngineWebXmlLocation, java.lang.String address, int port, boolean useCustomStreamHandler, boolean installSecurityManager, java.util.Map<java.lang.String,java.lang.Object> containerConfigProperties, boolean noJavaAgent)` Creates a new `DevAppServer` with a custom classpath for the web app.
    `DevAppServer` | `createDevAppServer(java.io.File appDir, java.io.File webXmlLocation, java.io.File appEngineWebXmlLocation, java.lang.String address, int port, boolean useCustomStreamHandler, boolean installSecurityManager, java.util.Map<java.lang.String,java.lang.Object> containerConfigProperties, boolean noJavaAgent, java.lang.String applicationId)` Creates a new `DevAppServer` with a custom classpath and application ID for the web app.
    `DevAppServer` | `createDevAppServer(java.io.File appDir, java.io.File externalResourceDir, java.lang.String address, int port)` Creates a new `DevAppServer` ready to start serving.
    `DevAppServer` | `createDevAppServer(java.io.File appDir, java.io.File externalResourceDir, java.lang.String address, int port, boolean noJavaAgent)` Creates a new `DevAppServer` ready to start serving.
    `DevAppServer` | `createDevAppServer(java.io.File appDir, java.lang.String address, int port)` Creates a new `DevAppServer` ready to start serving.

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

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

- - ### Constructor Detail

    - #### DevAppServerFactory

          public DevAppServerFactory()

  - ### Method Detail

    - #### createDevAppServer

          public DevAppServer createDevAppServer(java.io.File appDir,
                                                 java.lang.String address,
                                                 int port)

      Creates a new `DevAppServer` ready to start serving.
      Parameters:
        `appDir` - The top-level directory of the web application to be run
        `address` - Address to bind to
        `port` - Port to bind to
      Returns:
        a `DevAppServer`

    - #### createDevAppServer

          public DevAppServer createDevAppServer(java.io.File appDir,
                                                 java.io.File externalResourceDir,
                                                 java.lang.String address,
                                                 int port)

      Creates a new `DevAppServer` ready to start serving.
      Parameters:
        `appDir` - The top-level directory of the web application to be run
        `externalResourceDir` - If not `null`, a resource directory external to the appDir. This paramater is now ignored.
        `address` - Address to bind to
        `port` - Port to bind to
      Returns:
        a `DevAppServer`

    - #### createDevAppServer

          public DevAppServer createDevAppServer(java.io.File appDir,
                                                 java.io.File externalResourceDir,
                                                 java.lang.String address,
                                                 int port,
                                                 boolean noJavaAgent)

      Creates a new `DevAppServer` ready to start serving.
      Parameters:
        `appDir` - The top-level directory of the web application to be run
        `externalResourceDir` - If not `null`, a resource directory external to the appDir. This paramater is now ignored.
        `address` - Address to bind to
        `port` - Port to bind to
        `noJavaAgent` - whether to disable detection of the Java agent or not
      Returns:
        a `DevAppServer`

    - #### createDevAppServer

          public DevAppServer createDevAppServer(java.io.File appDir,
                                                 java.io.File webXmlLocation,
                                                 java.io.File appEngineWebXmlLocation,
                                                 java.lang.String address,
                                                 int port,
                                                 boolean useCustomStreamHandler,
                                                 boolean installSecurityManager,
                                                 java.util.Collection<java.net.URL> classpath)

      Creates a new `DevAppServer` with a custom classpath for the web app.
      Parameters:
        `appDir` - The top-level directory of the web application to be run
        `webXmlLocation` - The location of a file whose format complies with http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd. If `null`, defaults to /WEB-INF/web.xml
        `appEngineWebXmlLocation` - The name of the app engine config file. If `null`, defaults to /WEB-INF/appengine-web.xml.
        `address` - Address to bind to
        `port` - Port to bind to
        `useCustomStreamHandler` - If `true`, install `StreamHandlerFactory`. This is "normal" behavior for the dev app server but tests may want to disable this since there are some compatibility issues with our custom handler and Selenium.
        `installSecurityManager` - Whether or not to install the dev appserver security manager. It is strongly recommended you pass `true` unless there is something in your test environment that prevents you from installing a security manager.
        `classpath` - The classpath of the test and all its dependencies (possibly the entire app).
      Returns:
        a `DevAppServer`

    - #### createDevAppServer

          public DevAppServer createDevAppServer(java.io.File appDir,
                                                 java.io.File webXmlLocation,
                                                 java.io.File appEngineWebXmlLocation,
                                                 java.lang.String address,
                                                 int port,
                                                 boolean useCustomStreamHandler,
                                                 boolean installSecurityManager,
                                                 java.util.Collection<java.net.URL> classpath,
                                                 boolean noJavaAgent)

      Creates a new `DevAppServer` with a custom classpath for the web app.
      Parameters:
        `appDir` - The top-level directory of the web application to be run
        `webXmlLocation` - The location of a file whose format complies with http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd. If `null`, defaults to /WEB-INF/web.xml
        `appEngineWebXmlLocation` - The name of the app engine config file. If `null`, defaults to /WEB-INF/appengine-web.xml.
        `address` - Address to bind to
        `port` - Port to bind to
        `useCustomStreamHandler` - If `true`, install `StreamHandlerFactory`. This is "normal" behavior for the dev app server but tests may want to disable this since there are some compatibility issues with our custom handler and Selenium.
        `installSecurityManager` - Whether or not to install the dev appserver security manager. It is strongly recommended you pass `true` unless there is something in your test environment that prevents you from installing a security manager.
        `classpath` - The classpath of the test and all its dependencies (possibly the entire app).
        `noJavaAgent` - whether to disable detection of the Java agent or not
      Returns:
        a `DevAppServer`

    - #### createDevAppServer

          public DevAppServer createDevAppServer(java.io.File appDir,
                                                 java.io.File webXmlLocation,
                                                 java.io.File appEngineWebXmlLocation,
                                                 java.lang.String address,
                                                 int port,
                                                 boolean useCustomStreamHandler,
                                                 boolean installSecurityManager,
                                                 java.util.Map<java.lang.String,java.lang.Object> containerConfigProperties)

      Creates a new `DevAppServer` ready to start serving.
      Parameters:
        `appDir` - The top-level directory of the web application to be run
        `webXmlLocation` - The location of a file whose format complies with http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd. If `null`, defaults to /WEB-INF/web.xml
        `appEngineWebXmlLocation` - The name of the app engine config file. If `null`, defaults to /WEB-INF/appengine-web.xml.
        `address` - Address to bind to
        `port` - Port to bind to
        `useCustomStreamHandler` - If `true`, install `StreamHandlerFactory`. This is "normal" behavior for the dev app server but tests may want to disable this since there are some compatibility issues with our custom handler and Selenium.
        `installSecurityManager` - Whether or not to install the dev appserver security manager. It is strongly recommended you pass `true` unless there is something in your test environment that prevents you from installing a security manager.
        `containerConfigProperties` - `Map` that contains settings that will allow to inject a classpath and to not require a WEB-INF directory. (Only needed for testing).
      Returns:
        a `DevAppServer`

    - #### createDevAppServer

          public DevAppServer createDevAppServer(java.io.File appDir,
                                                 java.io.File webXmlLocation,
                                                 java.io.File appEngineWebXmlLocation,
                                                 java.lang.String address,
                                                 int port,
                                                 boolean useCustomStreamHandler,
                                                 boolean installSecurityManager,
                                                 java.util.Map<java.lang.String,java.lang.Object> containerConfigProperties,
                                                 boolean noJavaAgent)

      Creates a new `DevAppServer` with a custom classpath for the web app.
      Parameters:
        `appDir` - The top-level directory of the web application to be run
        `webXmlLocation` - The location of a file whose format complies with http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd. If `null`, defaults to {appDir}/WEB-INF/web.xml
        `appEngineWebXmlLocation` - The name of the app engine config file. If `null`, defaults to {appDir}/WEB-INF/appengine-web.xml.
        `address` - Address to bind to
        `port` - Port to bind to
        `useCustomStreamHandler` - If `true`, install `StreamHandlerFactory`. This is "normal" behavior for the dev app server but tests may want to disable this since there are some compatibility issues with our custom handler and Selenium.
        `installSecurityManager` - Whether or not to install the dev appserver security manager. For the java8 runtime, you do not need a security manager.
        `containerConfigProperties` - Extra container configurations.
        `noJavaAgent` - whether to disable detection of the Java agent or not.
      Returns:
        a `DevAppServer`

    - #### createDevAppServer

          public DevAppServer createDevAppServer(java.io.File appDir,
                                                 java.io.File webXmlLocation,
                                                 java.io.File appEngineWebXmlLocation,
                                                 java.lang.String address,
                                                 int port,
                                                 boolean useCustomStreamHandler,
                                                 boolean installSecurityManager,
                                                 java.util.Map<java.lang.String,java.lang.Object> containerConfigProperties,
                                                 boolean noJavaAgent,
                                                 java.lang.String applicationId)

      Creates a new `DevAppServer` with a custom classpath and application ID for the web app.
      Parameters:
        `appDir` - The top-level directory of the web application to be run
        `webXmlLocation` - The location of a file whose format complies with http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd. If `null`, defaults to {appDir}/WEB-INF/web.xml
        `appEngineWebXmlLocation` - The name of the app engine config file. If `null`, defaults to {appDir}/WEB-INF/appengine-web.xml.
        `address` - Address to bind to
        `port` - Port to bind to
        `useCustomStreamHandler` - If `true`, install `StreamHandlerFactory`. This is "normal" behavior for the dev app server but tests may want to disable this since there are some compatibility issues with our custom handler and Selenium.
        `installSecurityManager` - Whether or not to install the dev appserver security manager. For the java8 runtime, you do not need a security manager.
        `containerConfigProperties` - Extra container configurations.
        `noJavaAgent` - whether to disable detection of the Java agent or not.
        `applicationId` - Custom application ID. If `null`, defaults to use the primary module's application ID.
      Returns:
        a `DevAppServer`