Class ServerWebApp

java.lang.Object
org.apache.hadoop.lib.server.Server
org.apache.hadoop.lib.servlet.ServerWebApp
All Implemented Interfaces:
EventListener, javax.servlet.ServletContextListener
Direct Known Subclasses:
HttpFSServerWebApp

@Private public abstract class ServerWebApp extends Server implements javax.servlet.ServletContextListener
Server subclass that implements ServletContextListener and uses its lifecycle to start and stop the server.
  • Field Details

  • Constructor Details

    • ServerWebApp

      protected ServerWebApp(String name, String homeDir, String configDir, String logDir, String tempDir, org.apache.hadoop.conf.Configuration config)
      Constructor for testing purposes.
    • ServerWebApp

      protected ServerWebApp(String name, String homeDir, org.apache.hadoop.conf.Configuration config)
      Constructor for testing purposes.
    • ServerWebApp

      public ServerWebApp(String name)
      Constructor. Subclasses must have a default constructor specifying the server name.

      The server name is used to resolve the Java System properties that define the server home, config, log and temp directories.

      The home directory is looked in the Java System property #SERVER_NAME#.home.dir.

      The config directory is looked in the Java System property #SERVER_NAME#.config.dir, if not defined it resolves to the #SERVER_HOME_DIR#/conf directory.

      The log directory is looked in the Java System property #SERVER_NAME#.log.dir, if not defined it resolves to the #SERVER_HOME_DIR#/log directory.

      The temp directory is looked in the Java System property #SERVER_NAME#.temp.dir, if not defined it resolves to the #SERVER_HOME_DIR#/temp directory.

      Parameters:
      name - server name.
  • Method Details

    • setHomeDirForCurrentThread

      public static void setHomeDirForCurrentThread(String homeDir)
      Method for testing purposes.
    • contextInitialized

      public void contextInitialized(javax.servlet.ServletContextEvent event)
      Initializes the ServletContextListener which initializes the Server.
      Specified by:
      contextInitialized in interface javax.servlet.ServletContextListener
      Parameters:
      event - servelt context event.
    • resolveAuthority

      protected InetSocketAddress resolveAuthority() throws ServerException
      Resolves the host and port InetSocketAddress the web server is listening to.

      This implementation looks for the following 2 properties:

      • #SERVER_NAME#.http.hostname
      • #SERVER_NAME#.http.port
      Returns:
      the host and port InetSocketAddress the web server is listening to.
      Throws:
      ServerException - thrown if any of the above 2 properties is not defined.
    • contextDestroyed

      public void contextDestroyed(javax.servlet.ServletContextEvent event)
      Destroys the ServletContextListener which destroys the Server.
      Specified by:
      contextDestroyed in interface javax.servlet.ServletContextListener
      Parameters:
      event - servelt context event.
    • getAuthority

      public InetSocketAddress getAuthority() throws ServerException
      Returns the hostname:port InetSocketAddress the webserver is listening to.
      Returns:
      the hostname:port InetSocketAddress the webserver is listening to.
      Throws:
      ServerException
    • setAuthority

      @VisibleForTesting public void setAuthority(InetSocketAddress authority)
      Sets an alternate hostname:port InetSocketAddress to use.

      For testing purposes.

      Parameters:
      authority - alterante authority.
    • isSslEnabled

      public boolean isSslEnabled()