Package com.tangosol.coherence.rest.util
Class MvelHelper
java.lang.Object
com.tangosol.coherence.rest.util.MvelHelper
Enable Mvel to be optional by only accessing module via reflection with implementation provided on classpath.
org.mvel.mvel2
module is removed by default for security reasons, but one can override and
have backwards compatible support by adding the mvel module to the path.- Since:
- 12.2.1.3.18
- Author:
- jf 2022/01/19
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final MethodHandle
MethodHandle for method compileExpression(String expr, ParserContext ctx) from org.mvel2.MVEL.static final MethodHandle
MethodHandle for method compileSetExpression(String expr, ParserContext ctx) from org.mvel2.MVEL.static final MethodHandle
MethodHandle for method executeExpression(Object compiledExpr, Object ctx) from org.mvel2.MVEL.static final MethodHandle
MethodHandle for method executeSetExpression(Serializable compiledExpr, Object ctx, Object value) from org.mvel2.MVEL.static final MethodHandle
MethodHandle for method setClassLoader() from org.mvel2.ParserConfiguration.static final MethodHandle
MethodHandle for method addPackageImport(String) from org.mvel2.ParserContext.static final MethodHandle
MethodHandle for method getParserConfiguration() from org.mvel2.ParserContext.static final Class<?>
Reflection lookup of class org.mvel2.MVEL.static final Class<?>
Reflection lookup of class org.mvel2.ParserContext.static final boolean
True iff mvel2 jar is on classpath and all reflection lookups succeeded. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic Serializable
compileExpression
(String sExpr, Object ctx) CompilesExpr
within ParserContextctx
.static Serializable
compileSetExpression
(String sExpr, Object ctx) CompilesExpr
using ParserContextctx
.static Object
executeExpression
(Object compiledExpr, Object oTarget) Executes a compiledExpression against target.static void
executeSetExpression
(Serializable compiledSet, Object oTarget, Object oValue) Set property referenced bycompiledSet
expression inoTarget
toOvalue
..static Object
Return an instance of ParserContext to be used for MVEL compilation.static boolean
Return true if optionalorg.mvel.mvel2
module is loaded from path.
-
Field Details
-
s_fEnabled
public static final boolean s_fEnabledTrue iff mvel2 jar is on classpath and all reflection lookups succeeded. -
s_clzMVEL
Reflection lookup of class org.mvel2.MVEL. -
s_clzParserContext
Reflection lookup of class org.mvel2.ParserContext. -
HANDLE_PARSER_CONTEXT_ADD_PACKAGE_IMPORT
MethodHandle for method addPackageImport(String) from org.mvel2.ParserContext. -
HANDLE_PARSER_CONTEXT_GET_PARSER_CONFIGURATION
MethodHandle for method getParserConfiguration() from org.mvel2.ParserContext. -
HANDLE_PARSER_CONFIGURATION_SET_CLASS_LOADER
MethodHandle for method setClassLoader() from org.mvel2.ParserConfiguration. -
HANDLE_COMPILE_EXPRESSION
MethodHandle for method compileExpression(String expr, ParserContext ctx) from org.mvel2.MVEL. -
HANDLE_EXECUTE_EXPRESSION
MethodHandle for method executeExpression(Object compiledExpr, Object ctx) from org.mvel2.MVEL. -
HANDLE_COMPILE_SET_EXPRESSION
MethodHandle for method compileSetExpression(String expr, ParserContext ctx) from org.mvel2.MVEL. -
HANDLE_EXECUTE_SET_EXPRESSION
MethodHandle for method executeSetExpression(Serializable compiledExpr, Object ctx, Object value) from org.mvel2.MVEL.
-
-
Constructor Details
-
MvelHelper
public MvelHelper()
-
-
Method Details
-
isEnabled
public static boolean isEnabled()Return true if optionalorg.mvel.mvel2
module is loaded from path. Due to security concerns, Mvel is removed from default implementation and only optionally available for backwards compatibility mode.- Returns:
- true if mvel implementation is available
-
getMvelParserContext
Return an instance of ParserContext to be used for MVEL compilation.- Returns:
- an instance of ParserContext to be used for MVEL compilation
-
compileExpression
CompilesExpr
within ParserContextctx
.- Parameters:
sExpr
- expressionctx
- ParserContext- Returns:
- a
Serializable
compiled expression
-
executeExpression
Executes a compiledExpression against target.- Parameters:
compiledExpr
- compiled expression to select data from targetoTarget
- target object- Returns:
- the extracted data from
oTarget
-
compileSetExpression
CompilesExpr
using ParserContextctx
.- Parameters:
sExpr
- expressionctx
- ParserContext- Returns:
- a
Serializable
compiled expression
-
executeSetExpression
Set property referenced bycompiledSet
expression inoTarget
toOvalue
..- Parameters:
compiledSet
- result ofcompileSetExpression(String, Object)
oTarget
- object to be updatedoValue
- value to update the computed property
-