Package step.functions.handler
Class AbstractFunctionHandler<IN,OUT>
java.lang.Object
step.functions.handler.AbstractFunctionHandler<IN,OUT>
- Direct Known Subclasses:
JsonBasedFunctionHandler
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected step.functions.io.Output<OUT>Delegate the execution of the function to theAbstractFunctionHandlerspecified in the arguments in the context of the specified branchprotected step.functions.io.Output<OUT>Delegate the execution of the function to theAbstractFunctionHandlerspecified in the arguments in the context of the default branchprotected step.grid.contextbuilder.ApplicationContextBuilder.ApplicationContextprotected step.grid.contextbuilder.ApplicationContextBuilder.ApplicationContextgetCurrentContext(String branch) protected step.grid.filemanager.FileVersionIdgetFileVersionId(String properyName, Map<String, String> properties) protected FunctionHandlerFactoryprotected step.grid.agent.tokenpool.TokenReservationSessionprotected step.grid.agent.tokenpool.TokenSessionprotected abstract step.functions.io.Output<OUT>voidmergeAllProperties(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 voidPush 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 Details
-
FORKED_BRANCH
- See Also:
-
STEP_NODE_KEY
- See Also:
-
PARENTREPORTID_KEY
- See Also:
-
EXECUTION_CONTEXT_KEY
- See Also:
-
-
Constructor Details
-
AbstractFunctionHandler
public AbstractFunctionHandler()
-
-
Method Details
-
getFunctionHandlerFactory
-
setFunctionHandlerFactory
-
setApplicationContextBuilder
protected void setApplicationContextBuilder(step.grid.contextbuilder.ApplicationContextBuilder applicationContextBuilder) -
setFileManagerClient
protected void setFileManagerClient(step.grid.filemanager.FileManagerClient fileManagerClient) -
setProperties
-
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.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
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
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.ApplicationContextBuilderExceptionPush 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.ApplicationContextBuilderExceptionPush 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
-
handle
protected abstract step.functions.io.Output<OUT> handle(step.functions.io.Input<IN> input) throws Exception - Throws:
Exception
-
mergeAllProperties
-
getInputPayloadClass
-
getOutputPayloadClass
-