Class ScriptMediator

java.lang.Object
org.apache.synapse.mediators.AbstractMediator
org.apache.synapse.mediators.bsf.ScriptMediator
All Implemented Interfaces:
org.apache.synapse.aspects.AspectConfigurable, org.apache.synapse.Mediator, org.apache.synapse.SynapseArtifact

public class ScriptMediator extends org.apache.synapse.mediators.AbstractMediator
A Synapse mediator that calls a function in any scripting language supported by the BSF. The ScriptMediator supports scripts specified in-line or those loaded through a registry

    <script [key="entry-key"]
      [function="script-function-name"] language="nashornJs|javascript|groovy|ruby"invalid input: '&gt'
      (text | xml)?
    </script>
 

The function is an optional attribute defining the name of the script function to call, if not specified it defaults to a function named 'mediate'. The function takes a single parameter which is the Synapse MessageContext. The function may return a boolean, if it does not then true is assumed.

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected ScriptEngine
    The BSF engine created to validate each JSON payload
    protected ScriptEngine
    The BSF engine created to process each message through the script

    Fields inherited from class org.apache.synapse.mediators.AbstractMediator

    log, trace, traceState
  • Constructor Summary

    Constructors
    Constructor
    Description
    ScriptMediator(String language, String scriptSourceCode, ClassLoader classLoader)
    Create a script mediator for the given language and given script source.
    ScriptMediator(String language, Map<org.apache.synapse.mediators.Value,Object> includeKeysMap, org.apache.synapse.mediators.Value key, String function, ClassLoader classLoader)
    Create a script mediator for the given language and given script entry key and function.
  • Method Summary

    Modifier and Type
    Method
    Description
     
    Map<org.apache.synapse.mediators.Value,Object>
     
    Map<String,org.apache.synapse.mediators.v2.ext.InputArgument>
     
    org.apache.synapse.mediators.Value
     
     
     
     
     
     
     
    protected void
    Initialise the Mediator for the inline script
    protected void
     
    boolean
     
    boolean
    mediate(org.apache.synapse.MessageContext synCtx)
    Perform Script mediation.
    prepareExternalScript(org.apache.synapse.MessageContext synCtx)
    Prepares the mediator for the invocation of an external script
    void
    setInputArgumentMap(Map<String,org.apache.synapse.mediators.v2.ext.InputArgument> inputArgumentMap)
     
    void
     
    void
    setResultTarget(String resultTarget)
     
    void
    setVariableName(String variableName)
     

    Methods inherited from class org.apache.synapse.mediators.AbstractMediator

    auditLog, auditWarn, configure, disableStatistics, disableTracing, divertMediationRoute, enableStatistics, enableTracing, getArtifactIdentifier, getAspectConfiguration, getCommentsList, getDescription, getInputType, getLastSequenceFaultHandler, getLog, getMediatorId, getMediatorName, getMediatorPosition, getOutputType, getRegisteredMediationFlowPoint, getShortDescription, getTraceState, getType, handleException, handleException, isBreakPoint, isContentAware, isSkipEnabled, isStatisticsEnable, isTraceOn, isTraceOrDebugOn, isTracingEnabled, registerMediationFlowPoint, reportCloseStatistics, reportCloseStatisticsWithError, reportOpenStatistics, setArtifactIdentifier, setBreakPoint, setCommentsList, setComponentStatisticsId, setDescription, setEffectiveTraceState, setMediatorId, setMediatorPosition, setShortDescription, setSkipEnabled, setTraceState, shouldCaptureTracing, shouldTrace, shouldTrace, traceOrDebug, traceOrDebugWarn, unregisterMediationFlowPoint

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • scriptEngine

      protected ScriptEngine scriptEngine
      The BSF engine created to process each message through the script
    • jsEngine

      protected ScriptEngine jsEngine
      The BSF engine created to validate each JSON payload
  • Constructor Details

    • ScriptMediator

      public ScriptMediator(String language, String scriptSourceCode, ClassLoader classLoader)
      Create a script mediator for the given language and given script source.
      Parameters:
      language - the BSF language
      scriptSourceCode - the source code of the script
    • ScriptMediator

      public ScriptMediator(String language, Map<org.apache.synapse.mediators.Value,Object> includeKeysMap, org.apache.synapse.mediators.Value key, String function, ClassLoader classLoader)
      Create a script mediator for the given language and given script entry key and function.
      Parameters:
      language - the BSF language
      includeKeysMap - Include script keys
      key - the registry entry key to load the script
      function - the function to be invoked
  • Method Details

    • mediate

      public boolean mediate(org.apache.synapse.MessageContext synCtx)
      Perform Script mediation.
      Parameters:
      synCtx - the Synapse message context
      Returns:
      the boolean result from the script invocation
    • initInlineScript

      protected void initInlineScript()
      Initialise the Mediator for the inline script
    • prepareExternalScript

      protected ScriptEngineWrapper prepareExternalScript(org.apache.synapse.MessageContext synCtx) throws ScriptException
      Prepares the mediator for the invocation of an external script
      Parameters:
      synCtx - MessageContext script
      Throws:
      ScriptException - For any errors , when compile the script
    • initScriptEngine

      protected void initScriptEngine()
    • getLanguage

      public String getLanguage()
    • getKey

      public org.apache.synapse.mediators.Value getKey()
    • getFunction

      public String getFunction()
    • getScriptSrc

      public String getScriptSrc()
    • getIncludeMap

      public Map<org.apache.synapse.mediators.Value,Object> getIncludeMap()
    • getLoader

      public ClassLoader getLoader()
    • setLoader

      public void setLoader(ClassLoader loader)
    • getNewScriptEngine

      public ScriptEngineWrapper getNewScriptEngine()
    • isContentAltering

      public boolean isContentAltering()
      Specified by:
      isContentAltering in interface org.apache.synapse.Mediator
      Overrides:
      isContentAltering in class org.apache.synapse.mediators.AbstractMediator
    • setInputArgumentMap

      public void setInputArgumentMap(Map<String,org.apache.synapse.mediators.v2.ext.InputArgument> inputArgumentMap)
    • getInputArgumentList

      public Map<String,org.apache.synapse.mediators.v2.ext.InputArgument> getInputArgumentList()
    • setResultTarget

      public void setResultTarget(String resultTarget)
    • getResultTarget

      public String getResultTarget()
    • setVariableName

      public void setVariableName(String variableName)
    • getVariableName

      public String getVariableName()