Class ScriptingEngines
- java.lang.Object
-
- org.camunda.bpm.engine.impl.scripting.engine.ScriptingEngines
-
- All Implemented Interfaces:
org.camunda.bpm.dmn.engine.impl.spi.el.DmnScriptEngineResolver
public class ScriptingEngines extends Object implements org.camunda.bpm.dmn.engine.impl.spi.el.DmnScriptEngineResolver
Manager for JSR-223
ScriptEnginehandling.Resolving a script engine: This class supports resolving a script engine for a given 'language name' (eg. 'groovy'). If the configuration option
enableScriptEngineCachingis set to true, the class will attempt to cache 'cachable' script engines. We assume aScriptEngineis 'cachable' if it declares to be threadsafe (see#isCachable(ScriptEngine))Custom Bindings: this class supports custom
Bindingsimplementations through thescriptBindingsFactory. SeeScriptBindingsFactory.- Author:
- Tom Baeyens, Daniel Meyer
-
-
Field Summary
Fields Modifier and Type Field Description static StringDEFAULT_JS_SCRIPTING_LANGUAGEstatic StringDEFAULT_SCRIPTING_LANGUAGEstatic StringECMASCRIPT_SCRIPTING_LANGUAGEprotected booleanenableScriptEngineCachingstatic StringGRAAL_JS_SCRIPT_ENGINE_NAMEstatic StringGROOVY_SCRIPTING_LANGUAGEstatic StringJAVASCRIPT_SCRIPTING_LANGUAGEprotected ScriptBindingsFactoryscriptBindingsFactoryprotected ScriptEngineResolverscriptEngineResolver
-
Constructor Summary
Constructors Constructor Description ScriptingEngines(ScriptBindingsFactory scriptBindingsFactory, ScriptEngineResolver scriptEngineResolver)ScriptingEngines(ScriptEngineResolver scriptEngineResolver)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ScriptingEnginesaddScriptEngineFactory(ScriptEngineFactory scriptEngineFactory)BindingscreateBindings(ScriptEngine scriptEngine, VariableScope variableScope)override to build a spring aware ScriptingEnginesprotected ScriptEnginegetGlobalScriptEngine(String language)protected ScriptEnginegetPaScriptEngine(String language, ProcessApplicationReference pa)ScriptBindingsFactorygetScriptBindingsFactory()ScriptEnginegetScriptEngineForLanguage(String language)Loads the given script engine by language name.ScriptEngineManagergetScriptEngineManager()booleanisEnableScriptEngineCaching()voidsetEnableScriptEngineCaching(boolean enableScriptEngineCaching)voidsetScriptBindingsFactory(ScriptBindingsFactory scriptBindingsFactory)voidsetScriptEngineResolver(ScriptEngineResolver scriptEngineResolver)
-
-
-
Field Detail
-
DEFAULT_SCRIPTING_LANGUAGE
public static final String DEFAULT_SCRIPTING_LANGUAGE
- See Also:
- Constant Field Values
-
GROOVY_SCRIPTING_LANGUAGE
public static final String GROOVY_SCRIPTING_LANGUAGE
- See Also:
- Constant Field Values
-
JAVASCRIPT_SCRIPTING_LANGUAGE
public static final String JAVASCRIPT_SCRIPTING_LANGUAGE
- See Also:
- Constant Field Values
-
ECMASCRIPT_SCRIPTING_LANGUAGE
public static final String ECMASCRIPT_SCRIPTING_LANGUAGE
- See Also:
- Constant Field Values
-
GRAAL_JS_SCRIPT_ENGINE_NAME
public static final String GRAAL_JS_SCRIPT_ENGINE_NAME
- See Also:
- Constant Field Values
-
DEFAULT_JS_SCRIPTING_LANGUAGE
public static final String DEFAULT_JS_SCRIPTING_LANGUAGE
- See Also:
- Constant Field Values
-
scriptEngineResolver
protected ScriptEngineResolver scriptEngineResolver
-
scriptBindingsFactory
protected ScriptBindingsFactory scriptBindingsFactory
-
enableScriptEngineCaching
protected boolean enableScriptEngineCaching
-
-
Constructor Detail
-
ScriptingEngines
public ScriptingEngines(ScriptBindingsFactory scriptBindingsFactory, ScriptEngineResolver scriptEngineResolver)
-
ScriptingEngines
public ScriptingEngines(ScriptEngineResolver scriptEngineResolver)
-
-
Method Detail
-
isEnableScriptEngineCaching
public boolean isEnableScriptEngineCaching()
-
setEnableScriptEngineCaching
public void setEnableScriptEngineCaching(boolean enableScriptEngineCaching)
-
getScriptEngineManager
public ScriptEngineManager getScriptEngineManager()
-
addScriptEngineFactory
public ScriptingEngines addScriptEngineFactory(ScriptEngineFactory scriptEngineFactory)
-
getScriptEngineForLanguage
public ScriptEngine getScriptEngineForLanguage(String language)
Loads the given script engine by language name. Will throw an exception if no script engine can be loaded for the given language name.- Specified by:
getScriptEngineForLanguagein interfaceorg.camunda.bpm.dmn.engine.impl.spi.el.DmnScriptEngineResolver- Parameters:
language- the name of the script language to lookup an implementation for- Returns:
- the script engine
- Throws:
ProcessEngineException- if no such engine can be found.
-
getPaScriptEngine
protected ScriptEngine getPaScriptEngine(String language, ProcessApplicationReference pa)
-
getGlobalScriptEngine
protected ScriptEngine getGlobalScriptEngine(String language)
-
createBindings
public Bindings createBindings(ScriptEngine scriptEngine, VariableScope variableScope)
override to build a spring aware ScriptingEngines- Parameters:
engineBindin-scriptEngine-
-
getScriptBindingsFactory
public ScriptBindingsFactory getScriptBindingsFactory()
-
setScriptBindingsFactory
public void setScriptBindingsFactory(ScriptBindingsFactory scriptBindingsFactory)
-
setScriptEngineResolver
public void setScriptEngineResolver(ScriptEngineResolver scriptEngineResolver)
-
-