Package step.functions.handler
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 Summary
Fields Modifier and Type Field Description static StringEXECUTION_CONTEXT_KEYstatic StringFORKED_BRANCHstatic StringPARENTREPORTID_KEYstatic StringSTEP_NODE_KEY
-
Constructor Summary
Constructors Constructor Description AbstractFunctionHandler()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected step.functions.io.Output<OUT>delegate(String branchName, String functionHandlerClassname, step.functions.io.Input<IN> input)Delegate the execution of the function to theAbstractFunctionHandlerspecified in the arguments in the context of the specified branchprotected step.functions.io.Output<OUT>delegate(String functionHandlerClassname, step.functions.io.Input<IN> input)Delegate the execution of the function to theAbstractFunctionHandlerspecified in the arguments in the context of the default branchprotected step.grid.contextbuilder.ApplicationContextBuilder.ApplicationContextgetCurrentContext()protected step.grid.contextbuilder.ApplicationContextBuilder.ApplicationContextgetCurrentContext(String branch)protected step.grid.filemanager.FileVersionIdgetFileVersionId(String properyName, Map<String,String> properties)protected FunctionHandlerFactorygetFunctionHandlerFactory()abstract Class<IN>getInputPayloadClass()abstract Class<OUT>getOutputPayloadClass()protected Map<String,String>getProperties()protected step.grid.agent.tokenpool.TokenReservationSessiongetTokenReservationSession()protected step.grid.agent.tokenpool.TokenSessiongetTokenSession()protected abstract step.functions.io.Output<OUT>handle(step.functions.io.Input<IN> input)voidinitialize()protected Map<String,String>mergeAllProperties(step.functions.io.Input<?> input)protected voidpushLocalApplicationContext(ClassLoader classLoader, String resourceName)Push a new context based on a local file (jar or zip) to the default branch.protected voidpushLocalApplicationContext(String branch, ClassLoader classLoader, String resourceName)Push a new context based on a local file (jar or zip) to the branch specified as argument.protected voidpushLocalFolderApplicationContext(File libFolder)Push a new context based on a local folder containing a list of jars to the master branch.protected voidpushLocalFolderApplicationContext(String branch, File libFolder)Push a new context based on a local folder containing a list of jars to the branch specified as argument.protected voidpushRemoteApplicationContext(String branch, String fileId, Map<String,String> properties)Push a new remote context to the branch specified as argument.protected voidpushRemoteApplicationContext(String fileId, Map<String,String> properties)Push a new remote context to the default branch.protected FileretrieveFileVersion(String properyName, Map<String,String> properties)protected <T> TrunInContext(String branch, Callable<T> callable)Executes the callable in the current context of the branch specified as argumentprotected <T> TrunInContext(Callable<T> callable)Executes the callable using theClassLoaderassociated to the currentApplicationContextBuilder.ApplicationContextas context classloaderprotected voidsetApplicationContextBuilder(step.grid.contextbuilder.ApplicationContextBuilder applicationContextBuilder)protected voidsetFileManagerClient(step.grid.filemanager.FileManagerClient fileManagerClient)protected voidsetFunctionHandlerFactory(FunctionHandlerFactory functionHandlerFactory)protected voidsetProperties(Map<String,String> properties)protected voidsetTokenReservationSession(step.grid.agent.tokenpool.TokenReservationSession tokenReservationSession)protected voidsetTokenSession(step.grid.agent.tokenpool.TokenSession tokenSession)
-
-
-
Field Detail
-
FORKED_BRANCH
public static final String FORKED_BRANCH
- See Also:
- Constant Field Values
-
STEP_NODE_KEY
public static final String STEP_NODE_KEY
- See Also:
- Constant Field Values
-
PARENTREPORTID_KEY
public static final String PARENTREPORTID_KEY
- See Also:
- Constant Field Values
-
EXECUTION_CONTEXT_KEY
public static final String EXECUTION_CONTEXT_KEY
- See Also:
- Constant Field Values
-
-
Method Detail
-
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)
-
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.ApplicationContextof the default branch
-
getCurrentContext
protected step.grid.contextbuilder.ApplicationContextBuilder.ApplicationContext getCurrentContext(String branch)
- Parameters:
branch-- Returns:
- the current
ApplicationContextBuilder.ApplicationContextof the branch specified in the argument
-
runInContext
protected <T> T runInContext(Callable<T> callable) throws Exception
Executes the callable using theClassLoaderassociated to the currentApplicationContextBuilder.ApplicationContextas context classloader- Parameters:
callable- the callable to be executed in the currentApplicationContextBuilder.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 executioncallable- the callable to be executed in the currentApplicationContextBuilder.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. SeeApplicationContextBuilderfor details- Parameters:
classLoader- the classloader to be used to search the fileresourceName- 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. SeeApplicationContextBuilderfor details- Parameters:
branch- the name of the branch on which the context has to be pushedclassLoader- the classloader to be used to search the fileresourceName- 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. SeeApplicationContextBuilderfor 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. SeeApplicationContextBuilderfor details- Parameters:
branch- the name of the branch on which the context has to be pushedlibFolder- 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. SeeApplicationContextBuilderfor details- Parameters:
fileId- the id of the remote file (jar or folder) to be pushedproperties-- 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. SeeApplicationContextBuilderfor details- Parameters:
branch- the name of the branch on which the context has to be pushedfileId- the id of the remote file (jar or folder) to be pushedproperties-- 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 theAbstractFunctionHandlerspecified 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 theAbstractFunctionHandlerspecified 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)
-
-