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. TODO(maxr): Describe the difference between standalone and testing servers.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `DevAppServerFactory()`

  - ### Method Summary

    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 externalResourceDir, java.lang.String address, int port)` 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 will be searched before appDir when looking for resources.
        `address` - Address to bind to
        `port` - Port to bind to
      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`