Class BaseServer

java.lang.Object
org.globus.net.BaseServer
All Implemented Interfaces:
Runnable
Direct Known Subclasses:
CallbackHandler, GassServer

public abstract class BaseServer extends Object implements Runnable
This class provides the basics for writing various servers. Note: Sockets created by this server have a 5 minute default timeout. The timeout can be changed using the setTimeout() function.
  • Field Details

    • logger

      private static org.apache.commons.logging.Log logger
    • SO_TIMEOUT

      public static final int SO_TIMEOUT
      Socket timeout in milliseconds.
      See Also:
    • accept

      protected boolean accept
    • _server

      protected ServerSocket _server
    • secure

      private boolean secure
    • url

      protected String url
    • serverThread

      private Thread serverThread
    • credentials

      protected GSSCredential credentials
    • authorization

      protected Authorization authorization
    • gssMode

      protected Integer gssMode
    • timeout

      protected int timeout
    • deactivator

      protected AbstractServerDeactivator deactivator
      A handler for the deactivation framework.
  • Constructor Details

  • Method Details

    • initialize

      protected void initialize()
      This method should be called by all subclasses.
    • start

      protected void start()
      Starts the server.
    • setTimeout

      public void setTimeout(int timeout)
      Sets timeout for the created sockets. By default if not set, 5 minute timeout is used.
    • getTimeout

      public int getTimeout()
    • shutdown

      public void shutdown()
      Stops the server but does not stop all the client threads
    • getCredentials

      public GSSCredential getCredentials()
    • getProtocol

      public String getProtocol()
    • getURL

      public String getURL()
      Returns url of this server
      Returns:
      url of this server
    • getPort

      public int getPort()
      Returns port of this server
      Returns:
      port number
    • getHostname

      public String getHostname()
      Returns hostname of this server
      Returns:
      hostname
    • getHost

      public String getHost()
      Returns hostname of this server. The format of the host conforms to RFC 2732, i.e. for a literal IPv6 address, this method will return the IPv6 address enclosed in square brackets ('[' and ']').
      Returns:
      hostname
    • run

      public void run()
      Specified by:
      run in interface Runnable
    • wrapSocket

      protected Socket wrapSocket(Socket socket) throws GSSException
      Throws:
      GSSException
    • setGssMode

      public void setGssMode(Integer mode)
    • setAuthorization

      public void setAuthorization(Authorization auth)
    • handleConnection

      protected abstract void handleConnection(Socket socket)
      This method needs to be implemented by subclasses. Optimmaly, it should be a non-blocking call starting a separate thread to handle the client. Note that to start an SSL handshake, you need to call socket.getInput(Output) stream().
    • registerDefaultDeactivator

      public void registerDefaultDeactivator()
      Registers a default deactivation handler. It is used to shutdown the server without having a reference to the server. Call Deactivate.deactivateAll() to shutdown all registered servers.
    • unregisterDefaultDeactivator

      public void unregisterDefaultDeactivator()
      Unregisters a default deactivation handler.