Class AbstractScriptExecutingMessageProcessor<T>

java.lang.Object
org.springframework.integration.scripting.AbstractScriptExecutingMessageProcessor<T>
Type Parameters:
T - the paylaod type.
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 Details

    • AbstractScriptExecutingMessageProcessor

      protected AbstractScriptExecutingMessageProcessor()
    • AbstractScriptExecutingMessageProcessor

      protected AbstractScriptExecutingMessageProcessor(ScriptVariableGenerator scriptVariableGenerator)
  • Method Details

    • setBeanClassLoader

      public void setBeanClassLoader(ClassLoader classLoader)
      Specified by:
      setBeanClassLoader in interface BeanClassLoaderAware
    • setBeanFactory

      public void setBeanFactory(BeanFactory beanFactory) throws BeansException
      Specified by:
      setBeanFactory in interface BeanFactoryAware
      Throws:
      BeansException
    • getScriptVariableGenerator

      protected ScriptVariableGenerator getScriptVariableGenerator()
    • getBeanClassLoader

      protected ClassLoader getBeanClassLoader()
    • getBeanFactory

      protected BeanFactory getBeanFactory()
    • processMessage

      @Nullable public final T processMessage(Message<?> message)
      Execute the script and return the result.
      Specified by:
      processMessage in interface MessageProcessor<T>
      Parameters:
      message - The message to process.
      Returns:
      The result.
    • getScriptSource

      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.
      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.