Class AbstractFunctionHandler<IN,OUT>

java.lang.Object
step.functions.handler.AbstractFunctionHandler<IN,OUT>
Direct Known Subclasses:
JsonBasedFunctionHandler

public abstract class AbstractFunctionHandler<IN,OUT> extends Object
  • Field Details

  • Constructor Details

    • AbstractFunctionHandler

      public AbstractFunctionHandler()
  • Method Details

    • getFunctionHandlerFactory

      protected FunctionHandlerFactory getFunctionHandlerFactory()
    • setFunctionHandlerFactory

      protected void setFunctionHandlerFactory(FunctionHandlerFactory functionHandlerFactory)
    • setApplicationContextBuilder

      protected void setApplicationContextBuilder(step.grid.contextbuilder.ApplicationContextBuilder applicationContextBuilder)
    • setFileManagerClient

      protected void setFileManagerClient(step.grid.filemanager.FileManagerClient fileManagerClient)
    • setProperties

      protected void setProperties(Map<String,String> properties)
    • getProperties

      protected Map<String,String> getProperties()
    • getTokenSession

      protected step.grid.agent.tokenpool.TokenSession getTokenSession()
    • setTokenSession

      protected void setTokenSession(step.grid.agent.tokenpool.TokenSession tokenSession)
    • getTokenReservationSession

      protected step.grid.agent.tokenpool.TokenReservationSession getTokenReservationSession()
    • setTokenReservationSession

      protected void setTokenReservationSession(step.grid.agent.tokenpool.TokenReservationSession tokenReservationSession)
    • initialize

      public void initialize()
    • getCurrentContext

      protected step.grid.contextbuilder.ApplicationContextBuilder.ApplicationContext getCurrentContext()
      Returns:
      the current ApplicationContextBuilder.ApplicationContext of the default branch
    • getCurrentContext

      protected step.grid.contextbuilder.ApplicationContextBuilder.ApplicationContext getCurrentContext(String branch)
      Parameters:
      branch -
      Returns:
      the current ApplicationContextBuilder.ApplicationContext of the branch specified in the argument
    • runInContext

      protected <T> T runInContext(Callable<T> callable) throws Exception
      Executes the callable using the ClassLoader associated to the current ApplicationContextBuilder.ApplicationContext as context classloader
      Parameters:
      callable - the callable to be executed in the current ApplicationContextBuilder.ApplicationContext
      Returns:
      the result of the callable
      Throws:
      Exception
    • runInContext

      protected <T> T runInContext(String branch, Callable<T> callable) throws Exception
      Executes the callable in the current context of the branch specified as argument
      Parameters:
      branch - the name of the branch to be used for execution
      callable - the callable to be executed in the current ApplicationContextBuilder.ApplicationContext
      Returns:
      the result of the callable
      Throws:
      Exception
    • pushLocalApplicationContext

      protected void pushLocalApplicationContext(ClassLoader classLoader, String resourceName) throws step.grid.contextbuilder.ApplicationContextBuilderException
      Push a new context based on a local file (jar or zip) to the default branch. See ApplicationContextBuilder for details
      Parameters:
      classLoader - the classloader to be used to search the file
      resourceName - the name of the resource to be pushed
      Throws:
      step.grid.contextbuilder.ApplicationContextBuilderException
    • pushLocalApplicationContext

      protected void pushLocalApplicationContext(String branch, ClassLoader classLoader, String resourceName) throws step.grid.contextbuilder.ApplicationContextBuilderException
      Push a new context based on a local file (jar or zip) to the branch specified as argument. See ApplicationContextBuilder for details
      Parameters:
      branch - the name of the branch on which the context has to be pushed
      classLoader - the classloader to be used to search the file
      resourceName - the name of the resource to be pushed
      Throws:
      step.grid.contextbuilder.ApplicationContextBuilderException
    • pushLocalFolderApplicationContext

      protected void pushLocalFolderApplicationContext(File libFolder) throws step.grid.contextbuilder.ApplicationContextBuilderException
      Push a new context based on a local folder containing a list of jars to the master branch. See ApplicationContextBuilder for details
      Parameters:
      libFolder - the folder containing the jars to be pushed to the context
      Throws:
      step.grid.contextbuilder.ApplicationContextBuilderException
    • pushLocalFolderApplicationContext

      protected void pushLocalFolderApplicationContext(String branch, File libFolder) throws step.grid.contextbuilder.ApplicationContextBuilderException
      Push a new context based on a local folder containing a list of jars to the branch specified as argument. See ApplicationContextBuilder for details
      Parameters:
      branch - the name of the branch on which the context has to be pushed
      libFolder - the folder containing the jars to be pushed to the context
      Throws:
      step.grid.contextbuilder.ApplicationContextBuilderException
    • pushRemoteApplicationContext

      protected void pushRemoteApplicationContext(String fileId, Map<String,String> properties) throws step.grid.contextbuilder.ApplicationContextBuilderException
      Push a new remote context to the default branch. See ApplicationContextBuilder for details
      Parameters:
      fileId - the id of the remote file (jar or folder) to be pushed
      properties -
      Throws:
      step.grid.contextbuilder.ApplicationContextBuilderException
    • pushRemoteApplicationContext

      protected void pushRemoteApplicationContext(String branch, String fileId, Map<String,String> properties) throws step.grid.contextbuilder.ApplicationContextBuilderException
      Push a new remote context to the branch specified as argument. See ApplicationContextBuilder for details
      Parameters:
      branch - the name of the branch on which the context has to be pushed
      fileId - the id of the remote file (jar or folder) to be pushed
      properties -
      Throws:
      step.grid.contextbuilder.ApplicationContextBuilderException
    • delegate

      protected step.functions.io.Output<OUT> delegate(String branchName, String functionHandlerClassname, step.functions.io.Input<IN> input) throws Exception
      Delegate the execution of the function to the AbstractFunctionHandler specified in the arguments in the context of the specified branch
      Parameters:
      branchName -
      functionHandlerClassname -
      input -
      Returns:
      Throws:
      Exception
    • delegate

      protected step.functions.io.Output<OUT> delegate(String functionHandlerClassname, step.functions.io.Input<IN> input) throws Exception
      Delegate the execution of the function to the AbstractFunctionHandler specified in the arguments in the context of the default branch
      Parameters:
      functionHandlerClassname -
      input -
      Returns:
      Throws:
      Exception
    • retrieveFileVersion

      protected File retrieveFileVersion(String properyName, Map<String,String> properties) throws step.grid.filemanager.FileManagerException
      Throws:
      step.grid.filemanager.FileManagerException
    • getFileVersionId

      protected step.grid.filemanager.FileVersionId getFileVersionId(String properyName, Map<String,String> properties)
    • handle

      protected abstract step.functions.io.Output<OUT> handle(step.functions.io.Input<IN> input) throws Exception
      Throws:
      Exception
    • mergeAllProperties

      protected Map<String,String> mergeAllProperties(step.functions.io.Input<?> input)
    • getInputPayloadClass

      public abstract Class<IN> getInputPayloadClass()
    • getOutputPayloadClass

      public abstract Class<OUT> getOutputPayloadClass()