Package org.globus.io.gass.server
Class GassServer
- java.lang.Object
-
- org.globus.net.BaseServer
-
- org.globus.io.gass.server.GassServer
-
- All Implemented Interfaces:
Runnable
public class GassServer extends BaseServer
TheGassServer
class acts as a basic multi-threaded HTTPS server that handles GASS requests.- Version:
- $Revision 1.21 $
-
-
Field Summary
Fields Modifier and Type Field Description static int
CLIENT_SHUTDOWN_ENABLE
static int
READ_ENABLE
static String
SHUTDOWN_STR
static int
STDERR_ENABLE
static int
STDOUT_ENABLE
static int
WRITE_ENABLE
-
Fields inherited from class org.globus.net.BaseServer
_server, accept, authorization, credentials, deactivator, gssMode, SO_TIMEOUT, timeout, url
-
-
Constructor Summary
Constructors Constructor Description GassServer()
Starts Gass Server with default user credentials.GassServer(boolean secure, int port)
Starts Gass Server on given port and mode.GassServer(int port)
Starts Gass Server on given port with default user credentials.GassServer(GSSCredential cred, int port)
Starts Gass Server on given port and given credentials.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected OutputStream
getJobOutputStream(String id)
int
getOptions()
Returns current options of the server.protected void
handleConnection(Socket socket)
This method needs to be implemented by subclasses.void
registerJobOutputStream(String lb, OutputStream out)
Registers a output stream with a job.void
setOptions(int options)
Sets the options of the gass server such as enabling client shutdown, etc.static void
shutdown(GSSCredential cred, GlobusURL gassURL)
Shutdowns a remote gass server.String
toString()
void
unregisterJobOutputStream(String lb)
Unregisters a job output stream for specified output label.void
unregisterJobOutputStream(String lb, OutputStream out)
Unregisters a job output stream.-
Methods inherited from class org.globus.net.BaseServer
getCredentials, getHost, getHostname, getPort, getProtocol, getTimeout, getURL, initialize, registerDefaultDeactivator, run, setAuthorization, setGssMode, setTimeout, shutdown, start, unregisterDefaultDeactivator, wrapSocket
-
-
-
-
Field Detail
-
READ_ENABLE
public static final int READ_ENABLE
- See Also:
- Constant Field Values
-
WRITE_ENABLE
public static final int WRITE_ENABLE
- See Also:
- Constant Field Values
-
STDOUT_ENABLE
public static final int STDOUT_ENABLE
- See Also:
- Constant Field Values
-
STDERR_ENABLE
public static final int STDERR_ENABLE
- See Also:
- Constant Field Values
-
CLIENT_SHUTDOWN_ENABLE
public static final int CLIENT_SHUTDOWN_ENABLE
- See Also:
- Constant Field Values
-
SHUTDOWN_STR
public static final String SHUTDOWN_STR
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
GassServer
public GassServer() throws IOException
Starts Gass Server with default user credentials. Port of the server will be dynamically assigned- Throws:
IOException
-
GassServer
public GassServer(int port) throws IOException
Starts Gass Server on given port with default user credentials.- Parameters:
port
- port of the server, if 0 it will be dynamically assigned- Throws:
IOException
-
GassServer
public GassServer(GSSCredential cred, int port) throws IOException
Starts Gass Server on given port and given credentials.- Parameters:
cred
- credentials to use. if null default user credentials will be usedport
- port of the server, if 0 it will be dynamically assigned- Throws:
IOException
-
GassServer
public GassServer(boolean secure, int port) throws IOException
Starts Gass Server on given port and mode. If secure mode, it will use default user credentials- Parameters:
secure
- if true starts server in secure mode, otherwise unsecureport
- port of the server, if 0 it will be dynamically assigned- Throws:
IOException
-
-
Method Detail
-
setOptions
public void setOptions(int options)
Sets the options of the gass server such as enabling client shutdown, etc.- Parameters:
options
- server options
-
getOptions
public int getOptions()
Returns current options of the server.- Returns:
- options of the server. O if not none set.
-
registerJobOutputStream
public void registerJobOutputStream(String lb, OutputStream out)
Registers a output stream with a job. This is used for job stdout/err redirection. The label of the job should be the ending of the job redirected url. For example, given following RSL (stdout=$(GASS_URL)/dev/stdout-5) the label to register the output stream with should be 'out-5'.- Parameters:
lb
- job label as described above.out
- the output stream to redirect output to.
-
unregisterJobOutputStream
public void unregisterJobOutputStream(String lb)
Unregisters a job output stream for specified output label. See registerJobOutputStream() for more details.- Parameters:
lb
- job output label.
-
unregisterJobOutputStream
public void unregisterJobOutputStream(String lb, OutputStream out)
Unregisters a job output stream. This method is deprecated.
-
getJobOutputStream
protected OutputStream getJobOutputStream(String id)
-
handleConnection
protected void handleConnection(Socket socket)
Description copied from class:BaseServer
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().- Specified by:
handleConnection
in classBaseServer
-
shutdown
public static void shutdown(GSSCredential cred, GlobusURL gassURL) throws IOException, GSSException
Shutdowns a remote gass server. The server must have the CLIENT_SHUTDOWN option enabled for this to work.- Parameters:
cred
- credentials to use.gassURL
- the url of the remote gass server.- Throws:
IOException
GSSException
-
-