Package org.apache.synapse.mediators.bsf
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"> (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
jsEngine
The BSF engine created to validate each JSON payloadprotected ScriptEngine
scriptEngine
The BSF engine created to process each message through the script
-
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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
getFunction()
Map<org.apache.synapse.mediators.Value,Object>
getIncludeMap()
org.apache.synapse.mediators.Value
getKey()
String
getLanguage()
ClassLoader
getLoader()
ScriptEngineWrapper
getNewScriptEngine()
String
getScriptSrc()
protected void
initInlineScript()
Initialise the Mediator for the inline scriptprotected void
initScriptEngine()
boolean
isContentAltering()
boolean
mediate(org.apache.synapse.MessageContext synCtx)
Perform Script mediation.protected ScriptEngineWrapper
prepareExternalScript(org.apache.synapse.MessageContext synCtx)
Prepares the mediator for the invocation of an external scriptvoid
setLoader(ClassLoader loader)
-
Methods inherited from class org.apache.synapse.mediators.AbstractMediator
auditLog, auditWarn, configure, disableStatistics, disableTracing, divertMediationRoute, enableStatistics, enableTracing, getAspectConfiguration, getCommentsList, getDescription, getInputType, getLastSequenceFaultHandler, getLog, getMediatorName, getMediatorPosition, getOutputType, getRegisteredMediationFlowPoint, getShortDescription, getTraceState, getType, handleException, handleException, isBreakPoint, isContentAware, isSkipEnabled, isStatisticsEnable, isTraceOn, isTraceOrDebugOn, isTracingEnabled, registerMediationFlowPoint, reportCloseStatistics, reportOpenStatistics, setBreakPoint, setCommentsList, setComponentStatisticsId, setDescription, setEffectiveTraceState, setMediatorPosition, setShortDescription, setSkipEnabled, setTraceState, shouldCaptureTracing, shouldTrace, shouldTrace, traceOrDebug, traceOrDebugWarn, unregisterMediationFlowPoint
-
-
-
-
Field Detail
-
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 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 languagescriptSourceCode
- 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 languageincludeKeysMap
- Include script keyskey
- the registry entry key to load the scriptfunction
- 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 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()
-
getLoader
public ClassLoader getLoader()
-
setLoader
public void setLoader(ClassLoader loader)
-
getNewScriptEngine
public ScriptEngineWrapper getNewScriptEngine()
-
isContentAltering
public boolean isContentAltering()
- Specified by:
isContentAltering
in interfaceorg.apache.synapse.Mediator
- Overrides:
isContentAltering
in classorg.apache.synapse.mediators.AbstractMediator
-
-