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:
Mediator

public class ScriptMediator
extends 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 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 includeKeysMap, String key, String function)
          Create a script mediator for the given language and given script entry key and function
ScriptMediator(String language, String scriptSourceCode)
          Create a script mediator for the given language and given script source
 
Method Summary
 String getFunction()
           
 Map getIncludeMap()
           
 String getKey()
           
 String getLanguage()
           
 String getScriptSrc()
           
protected  void initInlineScript()
          Initialise the Mediator for the inline script
protected  void initScriptEngine()
           
 boolean mediate(MessageContext synCtx)
          Perform Script mediation
protected  Object mediateForInlineScript(MessageContext synCtx)
          Perform mediation with static inline script of the given scripting language
protected  Object mediateWithExternalScript(MessageContext synCtx)
          Mediation implementation when the script to be executed should be loaded from the registry
protected  void prepareExternalScript(MessageContext synCtx)
          Prepares the mediator for the invocation of an external script
 void setIncludeMap(Map includeMap)
           
 
Methods inherited from class org.apache.synapse.mediators.AbstractMediator
auditLog, auditWarn, getTraceState, getType, handleException, handleException, isTraceOn, isTraceOrDebugOn, setEffectiveTraceState, 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

Constructor Detail

ScriptMediator

public ScriptMediator(String language,
                      String scriptSourceCode)
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 includeKeysMap,
                      String key,
                      String function)
Create a script mediator for the given language and given script entry key and function

Parameters:
language - the BSF language
key - the registry entry key to load the script
function - the function to be invoked
Method Detail

mediate

public boolean mediate(MessageContext synCtx)
Perform Script mediation

Parameters:
synCtx - the Synapse message context
Returns:
the boolean result from the script invocation

mediateWithExternalScript

protected Object mediateWithExternalScript(MessageContext synCtx)
                                    throws javax.script.ScriptException,
                                           NoSuchMethodException
Mediation implementation when the script to be executed should be loaded from the registry

Parameters:
synCtx - the message context
Returns:
script result
Throws:
javax.script.ScriptException
NoSuchMethodException

mediateForInlineScript

protected Object mediateForInlineScript(MessageContext synCtx)
                                 throws javax.script.ScriptException
Perform mediation with static inline script of the given scripting language

Parameters:
synCtx - message context
Returns:
true, or the script return value
Throws:
javax.script.ScriptException

initInlineScript

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


prepareExternalScript

protected void prepareExternalScript(MessageContext synCtx)
                              throws javax.script.ScriptException
Prepares the mediator for the invocation of an external script

Throws:
javax.script.ScriptException

initScriptEngine

protected void initScriptEngine()

getLanguage

public String getLanguage()

getKey

public String getKey()

getFunction

public String getFunction()

getScriptSrc

public String getScriptSrc()

getIncludeMap

public Map getIncludeMap()

setIncludeMap

public void setIncludeMap(Map includeMap)


Copyright © 2005-2008 Apache Software Foundation. All Rights Reserved.