Class Launcher

  • Direct Known Subclasses:
    BasicLauncher, JavaLauncher

    public abstract class Launcher
    extends java.lang.Object
    Abstract base class for a process launcher
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected class  Launcher.Drainer
      A thread that runs in a loop, performing the drain() action until a process terminates
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.util.Map<java.lang.String,​java.lang.String> env  
      protected byte[] stdErr  
      protected byte[] stdOut  
      protected java.io.File workingDir  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected Launcher​(boolean captureOutput, boolean captureErr, java.util.logging.Logger logger)  
      protected Launcher​(java.util.logging.Logger logger)  
    • Field Detail

      • workingDir

        protected java.io.File workingDir
      • env

        protected java.util.Map<java.lang.String,​java.lang.String> env
      • stdOut

        protected byte[] stdOut
      • stdErr

        protected byte[] stdErr
    • Constructor Detail

      • Launcher

        protected Launcher​(java.util.logging.Logger logger)
      • Launcher

        protected Launcher​(boolean captureOutput,
                           boolean captureErr,
                           java.util.logging.Logger logger)
    • Method Detail

      • getWorkingDir

        public java.io.File getWorkingDir()
      • setWorkingDir

        public void setWorkingDir​(java.io.File newWorkingDir)
      • getEnv

        public java.util.Map<java.lang.String,​java.lang.String> getEnv()
      • setEnv

        public void setEnv​(java.util.Map<java.lang.String,​java.lang.String> newEnv)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • spawnProcess

        protected java.lang.Process spawnProcess​(java.lang.String cmd)
                                          throws java.lang.IllegalArgumentException,
                                                 java.io.IOException
        Spawn a process to execute the given command
        Returns:
        an object representing the process
        Throws:
        java.lang.IllegalArgumentException
        java.io.IOException
      • spawnProcess

        protected java.lang.Process spawnProcess​(java.lang.String[] cmd)
                                          throws java.lang.IllegalArgumentException,
                                                 java.io.IOException
        Spawn a process to execute the given command
        Returns:
        an object representing the process
        Throws:
        java.lang.IllegalArgumentException
        java.io.IOException
      • drainStdOut

        protected java.lang.Thread drainStdOut​(java.lang.Process p)
      • captureStdOut

        protected Launcher.Drainer captureStdOut​(java.lang.Process p)
      • drainStdErr

        protected java.lang.Thread drainStdErr​(java.lang.Process p)
      • captureStdErr

        protected Launcher.Drainer captureStdErr​(java.lang.Process p)
      • isCaptureOutput

        public boolean isCaptureOutput()
      • isCaptureErr

        public boolean isCaptureErr()
      • getStdOut

        public byte[] getStdOut()
      • getStderr

        public byte[] getStderr()
      • setStdOut

        protected void setStdOut​(byte[] newOutput)
      • setStdErr

        protected void setStdErr​(byte[] newErr)
      • getInput

        public byte[] getInput()
      • setInput

        public void setInput​(byte[] input)
        Set input which will be fed to the launched process's stdin