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 java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringEXECUTION_CONTEXT_KEYstatic java.lang.StringFORKED_BRANCHstatic java.lang.StringPARENTREPORTID_KEYstatic java.lang.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(java.lang.String branchName, java.lang.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(java.lang.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(java.lang.String branch)protected step.grid.filemanager.FileVersionIdgetFileVersionId(java.lang.String properyName, java.util.Map<java.lang.String,java.lang.String> properties)protected FunctionHandlerFactorygetFunctionHandlerFactory()abstract java.lang.Class<IN>getInputPayloadClass()abstract java.lang.Class<OUT>getOutputPayloadClass()protected java.util.Map<java.lang.String,java.lang.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 java.util.Map<java.lang.String,java.lang.String>mergeAllProperties(step.functions.io.Input<?> input)protected voidpushLocalApplicationContext(java.lang.ClassLoader classLoader, java.lang.String resourceName)Push a new context based on a local file (jar or zip) to the default branch.protected voidpushLocalApplicationContext(java.lang.String branch, java.lang.ClassLoader classLoader, java.lang.String resourceName)Push a new context based on a local file (jar or zip) to the branch specified as argument.protected voidpushLocalFolderApplicationContext(java.io.File libFolder)Push a new context based on a local folder containing a list of jars to the master branch.protected voidpushLocalFolderApplicationContext(java.lang.String branch, java.io.File libFolder)Push a new context based on a local folder containing a list of jars to the branch specified as argument.protected voidpushRemoteApplicationContext(java.lang.String branch, java.lang.String fileId, java.util.Map<java.lang.String,java.lang.String> properties)Push a new remote context to the branch specified as argument.protected voidpushRemoteApplicationContext(java.lang.String fileId, java.util.Map<java.lang.String,java.lang.String> properties)Push a new remote context to the default branch.protected java.io.FileretrieveFileVersion(java.lang.String properyName, java.util.Map<java.lang.String,java.lang.String> properties)protected <T> TrunInContext(java.lang.String branch, java.util.concurrent.Callable<T> callable)Executes the callable in the current context of the branch specified as argumentprotected <T> TrunInContext(java.util.concurrent.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(java.util.Map<java.lang.String,java.lang.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 java.lang.String FORKED_BRANCH
- See Also:
- Constant Field Values
-
STEP_NODE_KEY
public static final java.lang.String STEP_NODE_KEY
- See Also:
- Constant Field Values
-
PARENTREPORTID_KEY
public static final java.lang.String PARENTREPORTID_KEY
- See Also:
- Constant Field Values
-
EXECUTION_CONTEXT_KEY
public static final java.lang.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)
-
setProperties
protected void setProperties(java.util.Map<java.lang.String,java.lang.String> properties)
-
getProperties
protected java.util.Map<java.lang.String,java.lang.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.ApplicationContextof the default branch
-
getCurrentContext
protected step.grid.contextbuilder.ApplicationContextBuilder.ApplicationContext getCurrentContext(java.lang.String branch)
- Parameters:
branch-- Returns:
- the current
ApplicationContextBuilder.ApplicationContextof the branch specified in the argument
-
runInContext
protected <T> T runInContext(java.util.concurrent.Callable<T> callable) throws java.lang.ExceptionExecutes 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:
java.lang.Exception
-
runInContext
protected <T> T runInContext(java.lang.String branch, java.util.concurrent.Callable<T> callable) throws java.lang.ExceptionExecutes 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:
java.lang.Exception
-
pushLocalApplicationContext
protected void pushLocalApplicationContext(java.lang.ClassLoader classLoader, java.lang.String resourceName) throws step.grid.contextbuilder.ApplicationContextBuilderExceptionPush 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(java.lang.String branch, java.lang.ClassLoader classLoader, java.lang.String resourceName) throws step.grid.contextbuilder.ApplicationContextBuilderExceptionPush 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(java.io.File libFolder) throws step.grid.contextbuilder.ApplicationContextBuilderExceptionPush 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(java.lang.String branch, java.io.File libFolder) throws step.grid.contextbuilder.ApplicationContextBuilderExceptionPush 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(java.lang.String fileId, java.util.Map<java.lang.String,java.lang.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(java.lang.String branch, java.lang.String fileId, java.util.Map<java.lang.String,java.lang.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(java.lang.String branchName, java.lang.String functionHandlerClassname, step.functions.io.Input<IN> input) throws java.lang.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:
java.lang.Exception
-
delegate
protected step.functions.io.Output<OUT> delegate(java.lang.String functionHandlerClassname, step.functions.io.Input<IN> input) throws java.lang.Exception
Delegate the execution of the function to theAbstractFunctionHandlerspecified in the arguments in the context of the default branch- Parameters:
functionHandlerClassname-input-- Returns:
- Throws:
java.lang.Exception
-
retrieveFileVersion
protected java.io.File retrieveFileVersion(java.lang.String properyName, java.util.Map<java.lang.String,java.lang.String> properties) throws step.grid.filemanager.FileManagerException- Throws:
step.grid.filemanager.FileManagerException
-
getFileVersionId
protected step.grid.filemanager.FileVersionId getFileVersionId(java.lang.String properyName, java.util.Map<java.lang.String,java.lang.String> properties)
-
handle
protected abstract step.functions.io.Output<OUT> handle(step.functions.io.Input<IN> input) throws java.lang.Exception
- Throws:
java.lang.Exception
-
mergeAllProperties
protected java.util.Map<java.lang.String,java.lang.String> mergeAllProperties(step.functions.io.Input<?> input)
-
getInputPayloadClass
public abstract java.lang.Class<IN> getInputPayloadClass()
-
getOutputPayloadClass
public abstract java.lang.Class<OUT> getOutputPayloadClass()
-
-