Classes | |
interface | Listener |
class | ListenerAdapter |
class | Reader |
class | Spawner |
class | Watcher |
Public Member Functions | |
NativeCommand (String command, boolean foreground) | |
NativeCommand (String command, boolean foreground, long maxExecutionTime) | |
NativeCommand (String command, boolean foreground, long maxExecutionTime, String endMark) | |
NativeCommand (String command, boolean foreground, long maxExecutionTime, String endMark, long interval, long delay) | |
void | setThreadFactory (ThreadFactory threads) |
void | addListener (NativeCommand.Listener po) |
void | removeListener (NativeCommand.Listener po) |
String | getStatus () |
Integer | getExitValue () |
Throwable | getLatestException () |
void | send (String text) |
void | run () |
Static Public Attributes | |
static final String | NEW = "new" |
static final String | RUNNING = "running" |
static final String | TERMINATED = "terminated" |
static final String | CANNOTRUN = "unable to run" |
static final String | TIMEOUT = "timed out" |
static final long | NO_TIMEOUT = -1 |
static long | DEFAULT_WATCHER_INTERVAL = 1000 |
static long | DEFAULT_WATCHER_DELAY = 500 |
Protected Member Functions | |
void | changeStatus (String newStatus) |
void | fireStatusChanged (String oldStatus, String newStatus) |
void | fireOutputWritten (InputStream sourceStream, String additionalOutput) |
Protected Attributes | |
OutputStreamWriter | stdin |
Vector< NativeCommand.Listener > | listeners = new Vector<NativeCommand.Listener>() |
String | command |
Process | process |
long | interval |
long | delay |
long | maxExecutionTime |
String | status |
boolean | foreground |
String | endMark |
Throwable | latestException |
Integer | exitValue = null |
Logger | log |
ThreadFactory | threadFactoryDefault |
ThreadFactory | threadFactory = threadFactoryDefault |
Static Protected Attributes | |
static Timer | watchers |
Describes and encapsulates a native command. A native command triggers a process, and provides various bells and whistles around the pure process object as provided by the Java Runtime.
The native command can be run a) within its own thread (as it implements Runnable), or b) directly via a call to its run() method.
alma.acs.commandcenter.engine.NativeCommand.NativeCommand | ( | String | command, | |
boolean | foreground | |||
) |
alma.acs.commandcenter.engine.NativeCommand.NativeCommand | ( | String | command, | |
boolean | foreground, | |||
long | maxExecutionTime | |||
) |
alma.acs.commandcenter.engine.NativeCommand.NativeCommand | ( | String | command, | |
boolean | foreground, | |||
long | maxExecutionTime, | |||
String | endMark | |||
) |
alma.acs.commandcenter.engine.NativeCommand.NativeCommand | ( | String | command, | |
boolean | foreground, | |||
long | maxExecutionTime, | |||
String | endMark, | |||
long | interval, | |||
long | delay | |||
) |
void alma.acs.commandcenter.engine.NativeCommand.addListener | ( | NativeCommand.Listener | po | ) |
References alma.acs.commandcenter.engine.NativeCommand.listeners.
Referenced by alma.acs.commandcenter.engine.Executor.localOutProc().
void alma.acs.commandcenter.engine.NativeCommand.changeStatus | ( | String | newStatus | ) | [protected] |
References alma.acs.commandcenter.engine.NativeCommand.fireStatusChanged(), alma.acs.commandcenter.engine.NativeCommand.process, alma.acs.commandcenter.engine.NativeCommand.status, and alma.acs.commandcenter.engine.NativeCommand.TERMINATED.
Referenced by alma.acs.commandcenter.engine.NativeCommand.Watcher.run(), and alma.acs.commandcenter.engine.NativeCommand.Spawner.run().
void alma.acs.commandcenter.engine.NativeCommand.fireOutputWritten | ( | InputStream | sourceStream, | |
String | additionalOutput | |||
) | [protected] |
void alma.acs.commandcenter.engine.NativeCommand.fireStatusChanged | ( | String | oldStatus, | |
String | newStatus | |||
) | [protected] |
References alma.acs.commandcenter.engine.NativeCommand.listeners.
Referenced by alma.acs.commandcenter.engine.NativeCommand.changeStatus().
Integer alma.acs.commandcenter.engine.NativeCommand.getExitValue | ( | ) |
References alma.acs.commandcenter.engine.NativeCommand.exitValue.
Referenced by alma.acs.commandcenter.engine.Executor.localOutProc().
Throwable alma.acs.commandcenter.engine.NativeCommand.getLatestException | ( | ) |
Returns the most recent occured error. Note that the internal exception cache is reset by this method, thus it can only be called once for each error.
References alma.acs.commandcenter.engine.NativeCommand.latestException.
Referenced by alma.acs.commandcenter.engine.Executor.localOutProc().
String alma.acs.commandcenter.engine.NativeCommand.getStatus | ( | ) |
References alma.acs.commandcenter.engine.NativeCommand.status.
Referenced by alma.acs.commandcenter.engine.Executor.localOutProc().
void alma.acs.commandcenter.engine.NativeCommand.removeListener | ( | NativeCommand.Listener | po | ) |
void alma.acs.commandcenter.engine.NativeCommand.run | ( | ) |
We use four delegates:
The delegates give feedback to the main thread by provoking InterruptedExceptions on it.
References alma.acs.commandcenter.engine.NativeCommand.CANNOTRUN, alma.acs.commandcenter.engine.NativeCommand.delay, alma.acs.commandcenter.engine.NativeCommand.endMark, alma.acs.commandcenter.engine.NativeCommand.foreground, alma.acs.commandcenter.engine.NativeCommand.Reader.interruptThreadOnExpectedOutput(), alma.acs.commandcenter.engine.NativeCommand.Watcher.interruptThreadOnTaskTermination(), alma.acs.commandcenter.engine.NativeCommand.interval, alma.acs.commandcenter.engine.NativeCommand.log, alma.acs.commandcenter.engine.NativeCommand.process, alma.acs.commandcenter.engine.NativeCommand.Spawner.run(), alma.acs.commandcenter.engine.NativeCommand.status, alma.acs.commandcenter.engine.NativeCommand.stdin, alma.acs.commandcenter.engine.NativeCommand.threadFactory, and alma.acs.commandcenter.engine.NativeCommand.watchers.
Referenced by alma.acs.commandcenter.engine.Executor.localOutProc().
void alma.acs.commandcenter.engine.NativeCommand.send | ( | String | text | ) |
Writes the given text to the STDIN of the process.
text | the input to send to the process |
References alma.acs.commandcenter.engine.NativeCommand.command, alma.acs.commandcenter.engine.NativeCommand.log, alma.acs.commandcenter.engine.NativeCommand.process, and alma.acs.commandcenter.engine.NativeCommand.stdin.
void alma.acs.commandcenter.engine.NativeCommand.setThreadFactory | ( | ThreadFactory | threads | ) |
This class executes various actions concurrently. With this setter, clients can control the threads to be used.
threads | - null for default |
References alma.acs.commandcenter.engine.NativeCommand.threadFactory, and alma.acs.commandcenter.engine.NativeCommand.threadFactoryDefault.
final String alma.acs.commandcenter.engine.NativeCommand.CANNOTRUN = "unable to run" [static] |
String alma.acs.commandcenter.engine.NativeCommand.command [protected] |
long alma.acs.commandcenter.engine.NativeCommand.DEFAULT_WATCHER_DELAY = 500 [static] |
Referenced by alma.acs.commandcenter.engine.NativeCommand.NativeCommand().
long alma.acs.commandcenter.engine.NativeCommand.DEFAULT_WATCHER_INTERVAL = 1000 [static] |
Referenced by alma.acs.commandcenter.engine.NativeCommand.NativeCommand().
long alma.acs.commandcenter.engine.NativeCommand.delay [protected] |
Referenced by alma.acs.commandcenter.engine.NativeCommand.run().
String alma.acs.commandcenter.engine.NativeCommand.endMark [protected] |
Referenced by alma.acs.commandcenter.engine.NativeCommand.run().
Integer alma.acs.commandcenter.engine.NativeCommand.exitValue = null [protected] |
boolean alma.acs.commandcenter.engine.NativeCommand.foreground [protected] |
Referenced by alma.acs.commandcenter.engine.NativeCommand.run().
long alma.acs.commandcenter.engine.NativeCommand.interval [protected] |
Referenced by alma.acs.commandcenter.engine.NativeCommand.run().
Throwable alma.acs.commandcenter.engine.NativeCommand.latestException [protected] |
Vector<NativeCommand.Listener> alma.acs.commandcenter.engine.NativeCommand.listeners = new Vector<NativeCommand.Listener>() [protected] |
Logger alma.acs.commandcenter.engine.NativeCommand.log [protected] |
long alma.acs.commandcenter.engine.NativeCommand.maxExecutionTime [protected] |
Referenced by alma.acs.commandcenter.engine.NativeCommand.Watcher.run().
final String alma.acs.commandcenter.engine.NativeCommand.NEW = "new" [static] |
Referenced by alma.acs.commandcenter.engine.NativeCommand.NativeCommand().
final long alma.acs.commandcenter.engine.NativeCommand.NO_TIMEOUT = -1 [static] |
Process alma.acs.commandcenter.engine.NativeCommand.process [protected] |
Referenced by alma.acs.commandcenter.engine.NativeCommand.changeStatus(), alma.acs.commandcenter.engine.NativeCommand.fireOutputWritten(), alma.acs.commandcenter.engine.NativeCommand.Watcher.run(), alma.acs.commandcenter.engine.NativeCommand.Spawner.run(), alma.acs.commandcenter.engine.NativeCommand.run(), and alma.acs.commandcenter.engine.NativeCommand.send().
final String alma.acs.commandcenter.engine.NativeCommand.RUNNING = "running" [static] |
Referenced by alma.acs.commandcenter.engine.NativeCommand.Spawner.run().
String alma.acs.commandcenter.engine.NativeCommand.status [protected] |
Referenced by alma.acs.commandcenter.engine.NativeCommand.changeStatus(), alma.acs.commandcenter.engine.NativeCommand.getStatus(), alma.acs.commandcenter.engine.NativeCommand.NativeCommand(), alma.acs.commandcenter.engine.NativeCommand.Watcher.run(), and alma.acs.commandcenter.engine.NativeCommand.run().
OutputStreamWriter alma.acs.commandcenter.engine.NativeCommand.stdin [protected] |
final String alma.acs.commandcenter.engine.NativeCommand.TERMINATED = "terminated" [static] |
ThreadFactory alma.acs.commandcenter.engine.NativeCommand.threadFactory = threadFactoryDefault [protected] |
ThreadFactory alma.acs.commandcenter.engine.NativeCommand.threadFactoryDefault [protected] |
new ThreadFactory(){ public Thread newThread (Runnable r) { return new Thread(r); } }
The default thread factory for background actions.
Referenced by alma.acs.commandcenter.engine.NativeCommand.setThreadFactory().
final String alma.acs.commandcenter.engine.NativeCommand.TIMEOUT = "timed out" [static] |
Referenced by alma.acs.commandcenter.engine.NativeCommand.Watcher.run().
Timer alma.acs.commandcenter.engine.NativeCommand.watchers [static, protected] |
Referenced by alma.acs.commandcenter.engine.NativeCommand.run().