Class AbstractFunctionHandler<IN,​OUT>

    • Constructor Detail

      • AbstractFunctionHandler

        public AbstractFunctionHandler()
    • Method Detail

      • 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)
      • 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()