Class JavaExec

  • All Implemented Interfaces:
    AdditionalInformationHandler, CleanUpHandler, Destroyable, GlobalInfoSupporter, LoggingLevelHandler, LoggingSupporter, OptionHandler, Pausable, QuickInfoSupporter, ShallowCopySupporter<Actor>, SizeOfHandler, Stoppable, StoppableWithFeedback, VariablesInspectionHandler, FlowPauseStateListener, VariableChangeListener, Actor, ActorHandler, ControlActor, ErrorHandler, FixedNameActorHandler, Flushable, SubFlowWrapUp, Serializable, Comparable

    public class JavaExec
    extends AbstractControlActor
    implements FixedNameActorHandler
    Forks off a new JVM with the same classpath by default. The classpath can be extended using classpath augmenters. Additional JVM options can be supplied as well, apart from the heap size.

    Valid options are:

    -D <int> (property: debugLevel)
        The greater the number the more additional info the scheme may output to 
        the console (0 = off).
        default: 0
        minimum: 0
     
    -name <java.lang.String> (property: name)
        The name of the actor.
        default: JavaExec
     
    -annotation <adams.core.base.BaseText> (property: annotations)
        The annotations to attach to this actor.
        default: 
     
    -skip (property: skip)
        If set to true, transformation is skipped and the input token is just forwarded 
        as it is.
     
    -stop-flow-on-error (property: stopFlowOnError)
        If set to true, the flow gets stopped in case this actor encounters an error;
         useful for critical actors.
     
    -java-class <java.lang.String> (property: javaClass)
        The java class to execute.
        default: adams.core.SystemInfo
     
    -memory <java.lang.String> (property: memory)
        The amount of memory to start the JVM with.
        default: 256m
     
    -jvm <adams.core.base.BaseString> [-jvm ...] (property: JVM)
        The additional options for the JVM.
        default: 
     
    -option <adams.core.base.BaseString> [-option ...] (property: options)
        The options for the Java class.
        default: 
     
    -classpath-augmenter <adams.core.management.ClassPathAugmenter> [-classpath-augmenter ...] (property: classPathAugmenters)
        The classpath augmenters to use when launching the Java process.
        default: 
     
    -record-output (property: recordOutput)
        If enabled, the output of stdout/stderr gets recorded and forwarded (as 
        string) to the appropriate sub-actor for further processing.
     
    -stdout <adams.flow.core.Actor> (property: stdOut)
        The actor for further processing the stdout output (string).
        default: adams.flow.sink.Null -name stdout
     
    -stderr <adams.flow.core.Actor> (property: stdErr)
        The actor for further processing the stderr output (string).
        default: adams.flow.sink.Null -name stderr
     
    Author:
    fracpete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Detail

      • m_JavaClass

        protected String m_JavaClass
        the class to run.
      • m_Memory

        protected String m_Memory
        the amount of memory to use.
      • m_JVM

        protected BaseString[] m_JVM
        additional options for the jvm.
      • m_Options

        protected BaseString[] m_Options
        additional options for the java class.
      • m_ClassPathAugmenters

        protected ClassPathAugmenter[] m_ClassPathAugmenters
        classpath augmenters.
      • m_RecordOutput

        protected boolean m_RecordOutput
        whether to record the output of the process.
      • m_StdOut

        protected Actor m_StdOut
        the stdout actor.
      • m_StdErr

        protected Actor m_StdErr
        the stderr actor.
      • m_Launcher

        protected transient Launcher m_Launcher
        the launched process.
    • Constructor Detail

      • JavaExec

        public JavaExec()
    • Method Detail

      • setJavaClass

        public void setJavaClass​(String value)
        Sets the java class to execute.
        Parameters:
        value - the class name
      • getJavaClass

        public String getJavaClass()
        Returns the java class to execute.
        Returns:
        the class name
      • javaClassTipText

        public String javaClassTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setMemory

        public void setMemory​(String value)
        Sets the amount of memory to use for the JVM.
        Parameters:
        value - the amount
      • getMemory

        public String getMemory()
        Returns the amount of memory to use for the JVM.
        Returns:
        the amount
      • memoryTipText

        public String memoryTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setJVM

        public void setJVM​(BaseString[] value)
        Sets the additional options for the JVM.
        Parameters:
        value - the options
      • getJVM

        public BaseString[] getJVM()
        Returns the additional options for the JVM.
        Returns:
        the options
      • JVMTipText

        public String JVMTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setOptions

        public void setOptions​(BaseString[] value)
        Sets the options for the Java class.
        Parameters:
        value - the options
      • getOptions

        public BaseString[] getOptions()
        Returns the options for the Java class.
        Returns:
        the options
      • optionsTipText

        public String optionsTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setClassPathAugmenters

        public void setClassPathAugmenters​(ClassPathAugmenter[] value)
        Sets the classpath augmenters.
        Parameters:
        value - the augmenters
      • getClassPathAugmenters

        public ClassPathAugmenter[] getClassPathAugmenters()
        Returns the classpath augmenters.
        Returns:
        the augmenters
      • classPathAugmentersTipText

        public String classPathAugmentersTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setRecordOutput

        public void setRecordOutput​(boolean value)
        Sets whether to record stdout/stderr output of process.
        Parameters:
        value - true if to record
      • getRecordOutput

        public boolean getRecordOutput()
        Returns whether to record stdout/stderr output of process.
        Returns:
        true if recorded
      • recordOutputTipText

        public String recordOutputTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setStdOut

        public void setStdOut​(Actor value)
        Sets the actor for further processing the stdout output (string).
        Parameters:
        value - the actor
      • getStdOut

        public Actor getStdOut()
        Returns the actor for further processing the stdout output (string).
        Returns:
        the actor
      • stdOutTipText

        public String stdOutTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setStdErr

        public void setStdErr​(Actor value)
        Sets the actor for further processing the stderr output (string).
        Parameters:
        value - the actor
      • getStdErr

        public Actor getStdErr()
        Returns the actor for further processing the stderr output (string).
        Returns:
        the actor
      • stdErrTipText

        public String stdErrTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • get

        public Actor get​(int index)
        Returns the actor at the given position.
        Specified by:
        get in interface ActorHandler
        Specified by:
        get in class AbstractControlActor
        Parameters:
        index - the position
        Returns:
        the actor
      • set

        public String set​(int index,
                          Actor actor)
        Sets the actor at the given position.
        Specified by:
        set in interface ActorHandler
        Specified by:
        set in class AbstractControlActor
        Parameters:
        index - the position
        actor - the actor to set at this position
        Returns:
        null if everything is fine, otherwise the error
      • indexOf

        public int indexOf​(String actor)
        Returns the index of the actor.
        Specified by:
        indexOf in interface ActorHandler
        Specified by:
        indexOf in class AbstractControlActor
        Parameters:
        actor - the name of the actor to look for
        Returns:
        the index of -1 if not found
      • getFixedName

        public String getFixedName​(int index)
        Returns the name for the sub-actor at this position.
        Specified by:
        getFixedName in interface FixedNameActorHandler
        Parameters:
        index - the position of the sub-actor
        Returns:
        the name to use
      • doExecute

        protected String doExecute()
        Executes the flow item.
        Specified by:
        doExecute in class AbstractActor
        Returns:
        null if everything is fine, otherwise error message