Class AbstractScriptExecutingMessageProcessor<T>
java.lang.Object
org.springframework.integration.scripting.AbstractScriptExecutingMessageProcessor<T>
- All Implemented Interfaces:
Aware
,BeanClassLoaderAware
,BeanFactoryAware
,MessageProcessor<T>
- Direct Known Subclasses:
GroovyCommandMessageProcessor
,GroovyScriptExecutingMessageProcessor
,ScriptExecutingMessageProcessor
public abstract class AbstractScriptExecutingMessageProcessor<T> extends Object implements MessageProcessor<T>, BeanClassLoaderAware, BeanFactoryAware
Base
MessageProcessor
for scripting implementations to extend.- Since:
- 2.0
- Author:
- Mark Fisher, Stefan Reuter, Artem Bilan
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractScriptExecutingMessageProcessor()
protected
AbstractScriptExecutingMessageProcessor(ScriptVariableGenerator scriptVariableGenerator)
-
Method Summary
Modifier and Type Method Description protected abstract T
executeScript(ScriptSource scriptSource, Map<String,Object> variables)
Subclasses must implement this method.protected ClassLoader
getBeanClassLoader()
protected BeanFactory
getBeanFactory()
protected abstract ScriptSource
getScriptSource(Message<?> message)
Subclasses must implement this method to create a script source, optionally using the message to locate or create the script.protected ScriptVariableGenerator
getScriptVariableGenerator()
T
processMessage(Message<?> message)
Executes the script and returns the result.void
setBeanClassLoader(ClassLoader classLoader)
void
setBeanFactory(BeanFactory beanFactory)
-
Constructor Details
-
AbstractScriptExecutingMessageProcessor
protected AbstractScriptExecutingMessageProcessor() -
AbstractScriptExecutingMessageProcessor
-
-
Method Details
-
setBeanClassLoader
- Specified by:
setBeanClassLoader
in interfaceBeanClassLoaderAware
-
setBeanFactory
- Specified by:
setBeanFactory
in interfaceBeanFactoryAware
- Throws:
BeansException
-
getScriptVariableGenerator
-
getBeanClassLoader
-
getBeanFactory
-
processMessage
Executes the script and returns the result.- Specified by:
processMessage
in interfaceMessageProcessor<T>
- Parameters:
message
- The message to process.- Returns:
- The result.
-
getScriptSource
Subclasses must implement this method to create a script source, optionally using the message to locate or create the script.- Parameters:
message
- the message being processed- Returns:
- a ScriptSource to use to create a script
-
executeScript
@Nullable protected abstract T executeScript(ScriptSource scriptSource, Map<String,Object> variables)Subclasses must implement this method. In doing so, the execution context for the script should be populated with the provided script variables.- Parameters:
scriptSource
- The script source.variables
- The variables.- Returns:
- The result of the execution.
-