Class 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 Detail

      • SO_TIMEOUT

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

        protected boolean accept
      • gssMode

        protected Integer gssMode
      • timeout

        protected int timeout
      • deactivator

        protected org.globus.net.AbstractServerDeactivator deactivator
        A handler for the deactivation framework.
    • Method Detail

      • 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
      • 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
      • 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.