Class ProcessSpawner

  • All Implemented Interfaces:
    CSProcess

    class ProcessSpawner
    extends java.lang.Object
    implements CSProcess
    Launches a new JVM to run a process received by this spawner. This process will communicate with the new JVM, routing any exceptions to the requesting host and also any information printed to the System.err or System.out streams.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private ApplicationID applicationID
      The application identifier of the caller that the child should adopt.
      private NetChannelOutput caller
      For sending data back to the calling JVM who is running the RemoteProcess proxy.
      private java.lang.String classPath
      The classpath the spawned JVM should use to get the caller's classes from a networked filesystem or null if the default classpath should be used.
      private NodeFactory factory
      The factory the child should use to initialize its node or null if the default initialization should take place.
      (package private) static int MSG_EXCEPTION
      An Exception follows that was raised by the spawned process.
      (package private) static int MSG_FAIL
      An Exception follows that was raised by the spawned process on failure.
      (package private) static int MSG_OK
      The process terminated without error.
      (package private) static int MSG_STDERR
      A String follows with a line of text that was for System.err.
      (package private) static int MSG_STDOUT
      A String follows with a line of text that was for System.out.
      private static java.lang.Integer msgEXCEPTION
      An Exception follows that was raised by the spawned process.
      private static java.lang.Integer msgFAIL
      An Exception follows that was raised by the spawned process on failure.
      private static java.lang.Integer msgOK
      The process terminated without error.
      private static java.lang.Integer msgSTDERR
      A String follows with a line of text that was for System.err.
      private static java.lang.Integer msgSTDOUT
      A String follows with a line of text that was for System.out.
      private CSProcess process
      The process that needs to be started.
      private SpawnerService service
      The parent service that started this one.
      private java.lang.String uniqueName
      A unique name generated by the service fo use in creating a temporary file.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void run()
      Main process loop.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • MSG_STDOUT

        static final int MSG_STDOUT
        A String follows with a line of text that was for System.out.
        See Also:
        Constant Field Values
      • MSG_STDERR

        static final int MSG_STDERR
        A String follows with a line of text that was for System.err.
        See Also:
        Constant Field Values
      • MSG_EXCEPTION

        static final int MSG_EXCEPTION
        An Exception follows that was raised by the spawned process.
        See Also:
        Constant Field Values
      • MSG_FAIL

        static final int MSG_FAIL
        An Exception follows that was raised by the spawned process on failure.
        See Also:
        Constant Field Values
      • msgSTDOUT

        private static final java.lang.Integer msgSTDOUT
        A String follows with a line of text that was for System.out.
      • msgSTDERR

        private static final java.lang.Integer msgSTDERR
        A String follows with a line of text that was for System.err.
      • msgEXCEPTION

        private static final java.lang.Integer msgEXCEPTION
        An Exception follows that was raised by the spawned process.
      • msgFAIL

        private static final java.lang.Integer msgFAIL
        An Exception follows that was raised by the spawned process on failure.
      • msgOK

        private static final java.lang.Integer msgOK
        The process terminated without error.
      • service

        private final SpawnerService service
        The parent service that started this one.
      • process

        private final CSProcess process
        The process that needs to be started.
      • caller

        private final NetChannelOutput caller
        For sending data back to the calling JVM who is running the RemoteProcess proxy.
      • factory

        private final NodeFactory factory
        The factory the child should use to initialize its node or null if the default initialization should take place.
      • applicationID

        private final ApplicationID applicationID
        The application identifier of the caller that the child should adopt.
      • uniqueName

        private final java.lang.String uniqueName
        A unique name generated by the service fo use in creating a temporary file.
      • classPath

        private final java.lang.String classPath
        The classpath the spawned JVM should use to get the caller's classes from a networked filesystem or null if the default classpath should be used.
    • Constructor Detail

      • ProcessSpawner

        public ProcessSpawner​(SpawnerService service,
                              CSProcess process,
                              NetChannelOutput caller,
                              NodeFactory factory,
                              ApplicationID applicationID,
                              int unique,
                              java.lang.String classPath)
        Constructs a new spawner.
        Parameters:
        service - the parent service that is creating this object.
        process - the process that should be run.
        caller - for sending data back to the caller.
        factory - optional factory for initializing the child process' node.
        applicationID - caller's application ID that the child should adopt.
        unique - a unique number allocated by the parent service.
        classPath - classpath specified by the caller process for any classes available from a networked filesystem.
    • Method Detail

      • run

        public void run()
        Main process loop.
        Specified by:
        run in interface CSProcess