Package com.bc.ceres.core
Class ProcessObserver
- java.lang.Object
- 
- com.bc.ceres.core.ProcessObserver
 
- 
 public class ProcessObserver extends Object An observer that notifies itshandlersabout lines of characters that have been written by a process to bothstdoutandstderroutput streams.TODO Develop External Process Invocation API (EPIA) - idea: use velocity to generate input files + command-line from current context - address that executables might have different extensions (and paths) on different OS (.exe, .bat, .sh) Process Descriptor - name - description - n input descriptors (descriptor: name + type + description) - n output descriptors (descriptor: name + type + description) - n parameter descriptors (descriptor: name + type + description + attributes) - 1 command-line velocity template - 1 relative working directory template - n environment variables templates - n velocity file templates - n static files - n static archives to unpack Process Invocation - prepare context: set environment variables set inputs, outputs, parameters 
- 
- 
Nested Class SummaryNested Classes Modifier and Type Class Description static classProcessObserver.DefaultHandlerDefault implementation ofProcessObserver.Handler, which simply prints observations to the console.static interfaceProcessObserver.HandlerA handler that will be notified during the observation of the process.static classProcessObserver.ModeThe observation mode.static interfaceProcessObserver.ObservedProcessThe observed process.
 - 
Constructor SummaryConstructors Constructor Description ProcessObserver(Process process)Constructor.
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description ProcessObserver.HandlergetHandler()ProcessObserver.ModegetMode()StringgetName()intgetPollPeriod()ProgressMonitorgetProgressMonitor()ProcessObserversetHandler(ProcessObserver.Handler handler)Default-handler prints to stdout / stderr.ProcessObserversetMode(ProcessObserver.Mode mode)Default isProcessObserver.Mode.BLOCKING.ProcessObserversetName(String name)Default is "process".ProcessObserversetPollPeriod(int pollPeriod)Default is 500 milliseconds.ProcessObserversetProgressMonitor(ProgressMonitor progressMonitor)Default does nothing.ProcessObserver.ObservedProcessstart()Starts observing the given process.
 
- 
- 
- 
Constructor Detail- 
ProcessObserverpublic ProcessObserver(Process process) Constructor.- Parameters:
- process- The process to be observed
 
 
- 
 - 
Method Detail- 
getNamepublic String getName() - Returns:
- A name that represents the process.
 
 - 
setNamepublic ProcessObserver setName(String name) Default is "process".- Parameters:
- name- A name that represents the process.
- Returns:
- this
 
 - 
getHandlerpublic ProcessObserver.Handler getHandler() - Returns:
- A handler.
 
 - 
setHandlerpublic ProcessObserver setHandler(ProcessObserver.Handler handler) Default-handler prints to stdout / stderr.- Parameters:
- handler- A handler.
- Returns:
- this
 
 - 
getProgressMonitorpublic ProgressMonitor getProgressMonitor() - Returns:
- A progress monitor.
 
 - 
setProgressMonitorpublic ProcessObserver setProgressMonitor(ProgressMonitor progressMonitor) Default does nothing.- Parameters:
- progressMonitor- A progress monitor.
- Returns:
- this
 
 - 
getModepublic ProcessObserver.Mode getMode() - Returns:
- The observation mode.
 
 - 
setModepublic ProcessObserver setMode(ProcessObserver.Mode mode) Default isProcessObserver.Mode.BLOCKING.- Parameters:
- mode- The observation mode.
- Returns:
- this
 
 - 
getPollPeriodpublic int getPollPeriod() - Returns:
- Time in milliseconds between successive process status queries.
 
 - 
setPollPeriodpublic ProcessObserver setPollPeriod(int pollPeriod) Default is 500 milliseconds.- Parameters:
- pollPeriod- Time in milliseconds between successive process status queries.
- Returns:
- this
 
 - 
startpublic ProcessObserver.ObservedProcess start() Starts observing the given process.
 
- 
 
-