Interface DevAppServer

All Known Implementing Classes:
DevAppServerImpl

public interface DevAppServer
DevAppServer launches a local Jetty server (by default) with a single hosted web application. It can be invoked from the command-line by providing the path to the directory in which the application resides as the only argument. Over time, the environment provided by this class should come to resemble the environment provided to hosted applications in production. For example, stub applications of all of the API's should be provided, and similar security restrictions should be enforced.
  • Field Details

    • DEFAULT_HTTP_ADDRESS

      static final String DEFAULT_HTTP_ADDRESS
      DevAppServer listens on this network address for incoming HTTP requests. This can be overriden with --address=<addr>.
      See Also:
    • DEFAULT_HTTP_PORT

      static final int DEFAULT_HTTP_PORT
      DevAppServer listens on this port for incoming HTTP requests. This can be overriden with --port=NNNN.
      See Also:
  • Method Details

    • setServiceProperties

      void setServiceProperties(Map<String,String> properties)
      Sets the properties that will be used by the local services to configure themselves. This method must be called before the server has been started.
      Parameters:
      properties - a, maybe null, set of properties.
      Throws:
      IllegalStateException - if the server has already been started.
    • getServiceProperties

      Map<String,String> getServiceProperties()
      Get the properties that are used by the local services to configure themselves.
      Returns:
      service properties.
    • start

      CountDownLatch start() throws Exception
      Starts the server.
      Returns:
      a latch that will be decremented to zero when the server is shutdown or restarted.
      Throws:
      IllegalStateException - If the server has already been started or shutdown.
      com.google.apphosting.utils.config.AppEngineConfigException - If no WEB-INF directory can be found or WEB-INF/appengine-web.xml does not exist.
      Exception
    • restart

      CountDownLatch restart() throws Exception
      Restart the server to reload disk and class changes.
      Returns:
      a latch that will be decremented to zero when the server is shutdown or restarted.
      Throws:
      IllegalStateException - If the server has not been started or has already been shutdown.
      Exception
    • shutdown

      void shutdown() throws Exception
      Shut down the server.
      Throws:
      IllegalStateException - If the server has not been started or has already been shutdown.
      Exception
    • gracefulShutdown

      void gracefulShutdown()
      Shut down the server after all outstanding requests have completed.
    • getPort

      int getPort()
      Returns:
      the servlet container listener port number.
    • getAppContext

      AppContext getAppContext()
      Returns the AppContext for the main container. Useful in embedding scenarios to allow the embedder to install servlets, etc. Any such modification should be done before calling start().
      See Also:
    • getCurrentAppContext

      AppContext getCurrentAppContext()
      Returns the AppContext corresponding to the HTTP request (or background thread) associated with the current thread, or null if the current thread is not associated with any HTTP request (or background thread).
    • setThrowOnEnvironmentVariableMismatch

      void setThrowOnEnvironmentVariableMismatch(boolean throwOnMismatch)
      Reset the container EnvironmentVariableMismatchSeverity.