public class NGContext
extends java.lang.Object
Provides quite a bit of potentially useful information to classes specifically written for NailGun. The NailGun server itself, its AliasManager, the remote client's environment variables, and other information is available via this class. For all intents and purposes, the NGContext represents a single connection from a NailGun client.
If a class is written with a
public static void nailMain(NGContext context)
method, that method will be called by NailGun instead of the traditional
main(String[]) method normally used for programs. A fully populated NGContext
object will then be provided to nailMain().| Modifier and Type | Field and Description |
|---|---|
java.io.PrintStream |
err
The client's stderr
|
java.io.InputStream |
in
The client's stdin
|
java.io.PrintStream |
out
The client's stdout
|
| Constructor and Description |
|---|
NGContext()
Creates a new, empty NGContext
|
| Modifier and Type | Method and Description |
|---|---|
void |
addClientListener(NGClientListener listener) |
void |
addHeartbeatListener(NGHeartbeatListener listener) |
void |
assertLocalClient()
Throws a
java.lang.SecurityException if the client is not
connected from the local machine. |
void |
assertLoopbackClient()
Throws a
java.lang.SecurityException if the client is not
connected via the loopback address. |
void |
exit(int exitCode)
Sends an exit command with the specified exit code to
the client.
|
java.lang.String[] |
getArgs()
Returns the command line arguments for the command
implementation (nail) on the server.
|
java.lang.String |
getCommand()
Returns the command that was issued by the client (either an alias or the name of a class).
|
java.util.Properties |
getEnv()
Returns a
java.util.Properties object containing a copy
of the client's environment variables |
java.lang.String |
getFileSeparator()
Returns the file separator ('/' or '\\') used by the client's os.
|
java.net.InetAddress |
getInetAddress()
Returns the address of the client at the other side of this connection.
|
NGServer |
getNGServer()
Returns the NGServer that accepted this connection
|
java.lang.String |
getPathSeparator()
Returns the path separator (':' or ';') used by the client's os.
|
int |
getPort()
Returns the port on the client connected to the NailGun
server.
|
java.lang.String |
getWorkingDirectory()
Returns the current working directory of the client, as reported by the client.
|
boolean |
isClientConnected() |
void |
removeClientListener(NGClientListener listener) |
void |
removeHeartbeatListener(NGHeartbeatListener listener) |
void |
setArgs(java.lang.String[] args) |
void |
setCommand(java.lang.String command) |
void |
setExitStream(java.io.PrintStream exitStream) |
void |
setPort(int remotePort) |
public java.io.InputStream in
public java.io.PrintStream out
public java.io.PrintStream err
public void setExitStream(java.io.PrintStream exitStream)
public void setPort(int remotePort)
public void setCommand(java.lang.String command)
public java.lang.String getCommand()
public java.lang.String getWorkingDirectory()
File.separator ('/' or '\'),
which may differ from the separator on the server.public void setArgs(java.lang.String[] args)
public java.util.Properties getEnv()
java.util.Properties object containing a copy
of the client's environment variablesjava.util.Properties object containing a copy
of the client's environment variablesPropertiespublic java.lang.String getFileSeparator()
public java.lang.String getPathSeparator()
public java.net.InetAddress getInetAddress()
public java.lang.String[] getArgs()
public NGServer getNGServer()
public void exit(int exitCode)
exitCode - the exit code with which the client
should exitpublic int getPort()
public void assertLoopbackClient()
java.lang.SecurityException if the client is not
connected via the loopback address.public void assertLocalClient()
java.lang.SecurityException if the client is not
connected from the local machine.public boolean isClientConnected()
public void addClientListener(NGClientListener listener)
listener - the NGClientListener to be notified of client events.public void removeClientListener(NGClientListener listener)
listener - the NGClientListener to no longer be notified of client events.public void addHeartbeatListener(NGHeartbeatListener listener)
listener - the NGHeartbeatListener to be notified of client events.public void removeHeartbeatListener(NGHeartbeatListener listener)
listener - the NGHeartbeatListener to no longer be notified of client events.