org.apache.synapse.mediators.bsf
Class ScriptMediator

java.lang.Object
  extended by org.apache.synapse.mediators.AbstractMediator
      extended by 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="javascript|groovy|ruby">
      (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
protected  javax.script.ScriptEngine jsEngine
          The BSF engine created to validate each JSON payload
protected  javax.script.ScriptEngine 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
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
ScriptMediator(String language, String scriptSourceCode, ClassLoader classLoader)
          Create a script mediator for the given language and given script source
 
Method Summary
 String getFunction()
           
 Map<org.apache.synapse.mediators.Value,Object> getIncludeMap()
           
 org.apache.synapse.mediators.Value getKey()
           
 String getLanguage()
           
 ClassLoader getLoader()
           
 String getScriptSrc()
           
protected  void initInlineScript()
          Initialise the Mediator for the inline script
protected  void initScriptEngine()
           
 boolean mediate(org.apache.synapse.MessageContext synCtx)
          Perform Script mediation
protected  void prepareExternalScript(org.apache.synapse.MessageContext synCtx)
          Prepares the mediator for the invocation of an external script
 void setLoader(ClassLoader loader)
           
 
Methods inherited from class org.apache.synapse.mediators.AbstractMediator
auditLog, auditWarn, configure, disableStatistics, enableStatistics, getAspectConfiguration, getDescription, getInputType, getLog, getMediatorPosition, getOutputType, getShortDescription, getTraceState, getType, handleException, handleException, isContentAware, isStatisticsEnable, isTraceOn, isTraceOrDebugOn, setDescription, setEffectiveTraceState, setMediatorPosition, setShortDescription, setTraceState, shouldTrace, traceOrDebug, traceOrDebugWarn
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

scriptEngine

protected javax.script.ScriptEngine scriptEngine
The BSF engine created to process each message through the script


jsEngine

protected javax.script.ScriptEngine jsEngine
The BSF engine created to validate each JSON payload

Constructor Detail

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 Detail

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 void prepareExternalScript(org.apache.synapse.MessageContext synCtx)
                              throws javax.script.ScriptException
Prepares the mediator for the invocation of an external script

Parameters:
synCtx - MessageContext script
Throws:
javax.script.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)


Copyright © 2005–2015 Apache Software Foundation. All rights reserved.