Package org.globus.net
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 thesetTimeout()function.
-
-
Field Summary
Fields Modifier and Type Field Description protected ServerSocket_serverprotected booleanacceptprotected Authorizationauthorizationprotected GSSCredentialcredentialsprotected org.globus.net.AbstractServerDeactivatordeactivatorA handler for the deactivation framework.protected IntegergssModestatic intSO_TIMEOUTSocket timeout in milliseconds.protected inttimeoutprotected Stringurl
-
Constructor Summary
Constructors Constructor Description BaseServer()BaseServer(boolean secure, int port)BaseServer(int port)BaseServer(GSSCredential cred, int port)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description GSSCredentialgetCredentials()StringgetHost()Returns hostname of this server.StringgetHostname()Returns hostname of this serverintgetPort()Returns port of this serverStringgetProtocol()intgetTimeout()StringgetURL()Returns url of this serverprotected abstract voidhandleConnection(Socket socket)This method needs to be implemented by subclasses.protected voidinitialize()This method should be called by all subclasses.voidregisterDefaultDeactivator()Registers a default deactivation handler.voidrun()voidsetAuthorization(Authorization auth)voidsetGssMode(Integer mode)voidsetTimeout(int timeout)Sets timeout for the created sockets.voidshutdown()Stops the server but does not stop all the client threadsprotected voidstart()Starts the server.voidunregisterDefaultDeactivator()Unregisters a default deactivation handler.protected SocketwrapSocket(Socket socket)
-
-
-
Field Detail
-
SO_TIMEOUT
public static final int SO_TIMEOUT
Socket timeout in milliseconds.- See Also:
- Constant Field Values
-
accept
protected boolean accept
-
_server
protected ServerSocket _server
-
url
protected String url
-
credentials
protected GSSCredential credentials
-
authorization
protected Authorization authorization
-
gssMode
protected Integer gssMode
-
timeout
protected int timeout
-
deactivator
protected org.globus.net.AbstractServerDeactivator deactivator
A handler for the deactivation framework.
-
-
Constructor Detail
-
BaseServer
public BaseServer() throws IOException- Throws:
IOException
-
BaseServer
public BaseServer(int port) throws IOException- Throws:
IOException
-
BaseServer
public BaseServer(GSSCredential cred, int port) throws IOException
- Throws:
IOException
-
BaseServer
public BaseServer(boolean secure, int port) throws IOException- Throws:
IOException
-
-
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
-
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
-
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.
-
-