Class DynamicClassLoader

java.lang.Object
org.jcsp.net.dynamic.DynamicClassLoader
All Implemented Interfaces:
Service

public class DynamicClassLoader extends Object implements Service
A service implementation for supporting dynamic class transfer at a node. When started, JFTP server and ClassMananger processes will be spawned and send/receive filters created. To support dynamic class loading over a given channel, plug the TX filter into the sending end and the RX filter into the receiving end. The channel can then be used normally.
  • Field Details

    • running

      private boolean running
      Stores the current state of the service.
    • channelTxFilter

      private DataSerializationFilter channelTxFilter
      The TX filter created when the service started, returned by getChannelTxFilter.
    • channelRxFilter

      private DeserializeChannelFilter channelRxFilter
      The RX filter created when the service started, returned by getChannelRxFilter.
    • cm

      private ClassManager cm
      The class manager process started by the service.
    • name

      public static final String name
      Default service name.
      See Also:
    • nonDynamicClassLoadingRxFilter

      private static Filter nonDynamicClassLoadingRxFilter
      The alternative RX filter that does not support dynamic class loading, returned by getNonDynamicClassLoadingRxFilter.
  • Constructor Details

    • DynamicClassLoader

      public DynamicClassLoader()
  • Method Details

    • start

      public boolean start()
      Starts the dynamic loader service by spawning ClassManager and JFTP processes.
      Specified by:
      start in interface Service
      Returns:
      true if the service started successfully.
    • stop

      public boolean stop()
      Stops the dynamic loader service.
      Specified by:
      stop in interface Service
      Returns:
      true iff the service has successfully stopped.
    • init

      public boolean init(ServiceSettings settings)
      Initializes the dynamic loader service.
      Specified by:
      init in interface Service
      Parameters:
      settings - The settings used by the service.
      Returns:
      true iff the service has been initialized.
    • isRunning

      public boolean isRunning()
      Returns true iff the service is running.
      Specified by:
      isRunning in interface Service
      Returns:
      true iff the service is currently running.
    • getUserObject

      public ServiceUserObject getUserObject() throws SecurityException
      Returns the service user object.
      Specified by:
      getUserObject in interface Service
      Returns:
      a ServiceUserObject.
      Throws:
      SecurityException - if the calling Thread does not have access to the object.
    • getChannelTxFilter

      public Filter getChannelTxFilter()
      Returns the TX filter to be used at the sending end of a channel if dynamic class loading is to be supported over that channel. If there is a TX filter at the sending end, there must be a RX filter at the receiving end.
    • getChannelRxFilter

      public Filter getChannelRxFilter()
      Returns the RX filter to be used at the receiving end of a channel if dynamic class loading is to be supported over that channel. The filter returned is safe to use if there is no TX filter at the sending end.
    • getNonDynamicClassLoadingRxFilter

      public static Filter getNonDynamicClassLoadingRxFilter()
      An alternative RX filter that does not support dynamic class loading but will properly unmarshal objects wrapped up by a TX filter.