Refine search
import javax.script.*; import java.util.*; public class Main { public static void main(String[] args) throws Exception { ScriptEngine engine = new ScriptEngineManager().getEngineByName("JavaScript"); Map<String, Object> vars = new HashMap<String, Object>(); vars.put("x", 2); vars.put("y", 1); vars.put("z", 3); System.out.println("result = "+engine.eval("x + y + z", new SimpleBindings(vars))); } }
SimpleBindings bindings = new SimpleBindings(); bindings.putAll(model); model.put("renderingContext", context); html = engine.eval(template, bindings); Object thiz = engine.eval(this.renderObject); html = ((Invocable) engine).invokeMethod(thiz, this.renderFunction, template, model, context);
@SuppressWarnings("unchecked") @Override public <T> T getElValue(String exp, Object target, Object[] arguments, Object retVal, boolean hasRetVal, Class<T> valueType) throws Exception { Bindings bindings = new SimpleBindings(); bindings.put(TARGET, target); bindings.put(ARGS, arguments); if (hasRetVal) { bindings.put(RET_VAL, retVal); } CompiledScript script = expCache.get(exp); if (null != script) { return (T) script.eval(bindings); } if (engine instanceof Compilable) { Compilable compEngine = (Compilable) engine; script = compEngine.compile(funcs + exp); expCache.put(exp, script); return (T) script.eval(bindings); } else { return (T) engine.eval(funcs + exp, bindings); } }
private static void log(String msg, Object obj) { System.out.println(msg + " " + obj); } public static void main(String[] args) throws ScriptException { ScriptEngineManager manager = new ScriptEngineManager(); Bindings bindings = new SimpleBindings(); bindings.put("a", 3); bindings.put("org", 10); log("bingings-org", bindings.get("org")); manager.setBindings(bindings); ScriptEngine engine = manager.getEngineByName("JavaScript"); log("global-a", engine.getBindings(ScriptContext.GLOBAL_SCOPE).get("a")); log("local-a", engine.get("a")); log("global-org", engine.getBindings(ScriptContext.GLOBAL_SCOPE).get("org")); log("local-org", engine.get("org")); // Use "context" to access GLOBAL_SCOPE "org" from script engine.eval( "var GLOBAL_SCOPE = javax.script.ScriptContext.GLOBAL_SCOPE;\n" + "var g = context.getBindings(GLOBAL_SCOPE);\n" + "print(g.get('org'))"); }
public void testEvalWithReader() throws ScriptException, FileNotFoundException { //Check that multiple evals don't cause an NPE. //See issue http://bugs.jython.org/issue1536 final ScriptEngineManager manager = new ScriptEngineManager(); final String engineType = "jython"; final ScriptEngine engine = manager.getEngineByName(engineType); final StringWriter stdout = new StringWriter(); final StringWriter stderr = new StringWriter(); engine.getContext().setWriter(stdout); engine.getContext().setErrorWriter(stderr); final Bindings bindings = new SimpleBindings(); bindings.put("firstLevelNodes", 10); bindings.put("secondLevelNodes", 5); engine.setBindings(bindings, ScriptContext.ENGINE_SCOPE); engine.setBindings(bindings, ScriptContext.ENGINE_SCOPE); final Reader dfsScript = new FileReader("tests/python/dfs.py"); for (int i = 1; i <= 10; i++) { engine.eval(dfsScript); assertEquals(61, engine.get("result")); } }
@Override public boolean test(Map<String, Object> env) { try { return (Boolean) jsEngine.eval(script, new SimpleBindings(env)); } catch (Exception e) { return false; } } }
final Class<T> clazz) { try { val engine = new ScriptEngineManager().getEngineByName("groovy"); if (engine == null) { LOGGER.warn("Script engine is not available for Groovy"); return null; val binding = new SimpleBindings(); if (variables != null && !variables.isEmpty()) { binding.putAll(variables); if (!binding.containsKey("logger")) { binding.put("logger", LOGGER); val result = engine.eval(script, binding); return getGroovyScriptExecutionResultOrThrow(clazz, result); } catch (final Exception e) {
Bindings bindings = scriptEngine.getBindings(ScriptContext.ENGINE_SCOPE); if (bindings == null) { bindings = new SimpleBindings(); bindings.put("context", context); bindings.put("log", log); bindings.put("vmMetrics", vmMetrics); scriptEngine.setBindings(bindings, ScriptContext.ENGINE_SCOPE); configurator.eval(scriptEngine, scriptToRun, scriptingComponentHelper.getModules()); } else { scriptEngine.eval(scriptToRun);
import javax.script.*; public class CallFunction { /** * @param args * @throws Exception oops! */ public static void main(String[] args) throws Exception { ScriptEngine js = new ScriptEngineManager().getEngineByExtension("js"); js.getContext().setAttribute("out", System.out, ScriptContext.ENGINE_SCOPE); Object a = js.eval( "out.println('Defining function a...');" + "function a() {out.println('hello from JavaScript!'); }" + "function foobar() {out.println('in foobar() definition');}" + "out.println('Done!.');" ); System.out.println(js.get("a")); // InterpretedFunction SimpleBindings bindings = new SimpleBindings(); bindings.put("foobar",js.get("a")); js.eval("foobar();", bindings); // hello from JavaScript js.eval("foobar();"); // in foobar() definition } }
private Bindings createBindings(ExtensionContext context) { ScriptAccessor configurationParameterAccessor = new ScriptAccessor.ConfigurationParameterAccessor(context); Bindings bindings = new SimpleBindings(); bindings.put(Script.BIND_JUNIT_TAGS, context.getTags()); bindings.put(Script.BIND_JUNIT_UNIQUE_ID, context.getUniqueId()); bindings.put(Script.BIND_JUNIT_DISPLAY_NAME, context.getDisplayName()); bindings.put(Script.BIND_JUNIT_CONFIGURATION_PARAMETER, configurationParameterAccessor); return bindings; }
protected Object evalScript(String language, String script, Map<String, Object> arguments) { try { script = interpreteScript(script); Bindings bindings = null; if(arguments != null) { bindings = new SimpleBindings(arguments); } if(bindings != null) { return getCurrentScriptEngineManager().getEngineByName(language).eval(script, bindings); } return getCurrentScriptEngineManager().getEngineByName(language).eval(script); } catch (ScriptException e) { throw new UnhandledException(e); } }
@Override public Traversal.Admin eval(final Bytecode bytecode, final Bindings bindings, final String traversalSource) throws ScriptException { // these validations occur before merging in bytecode bindings which will override existing ones. need to // extract the named traversalsource prior to that happening so that bytecode bindings can share the same // namespace as global bindings (e.g. traversalsources and graphs). if (traversalSource.equals(HIDDEN_G)) throw new IllegalArgumentException("The traversalSource cannot have the name " + HIDDEN_G + " - it is reserved"); if (!bindings.containsKey(traversalSource)) throw new IllegalArgumentException("The bindings available to the ScriptEngine do not contain a traversalSource named: " + traversalSource); final Object b = bindings.get(traversalSource); if (!(b instanceof TraversalSource)) throw new IllegalArgumentException(traversalSource + " is of type " + b.getClass().getSimpleName() + " and is not an instance of TraversalSource"); final Bindings inner = new SimpleBindings(); inner.putAll(bindings); inner.putAll(bytecode.getBindings()); inner.put(HIDDEN_G, b); return (Traversal.Admin) this.eval(JythonTranslator.of(HIDDEN_G).translate(bytecode), inner); }
ScriptEngine createScriptEngineWith(SampleResult sampleResult) { final ScriptEngine scriptEngine = scriptEngineManager.getEngineByName(this.getScriptLanguage()); Bindings engineBindings = new SimpleBindings(); WebDriverScriptable scriptable = new WebDriverScriptable(); scriptable.setName(getName()); scriptable.setParameters(getParameters()); JMeterContext context = JMeterContextService.getContext(); scriptable.setVars(context.getVariables()); scriptable.setProps(JMeterUtils.getJMeterProperties()); scriptable.setCtx(context); scriptable.setLog(LOGGER); scriptable.setSampleResult(sampleResult); scriptable.setBrowser(getWebDriver()); engineBindings.put("WDS", scriptable); scriptEngine.setBindings(engineBindings, ScriptContext.ENGINE_SCOPE); return scriptEngine; } }
/** * Puts a the given map of variables into the engine. * * @param engine The engine to be populated with variables * @param variables The variables to be populated */ public static void putJavaVariablesIntoEngine(final ScriptEngine engine, final Map<String, Object> variables) { final Bindings bindings = new SimpleBindings(); // final Bindings bindings = engine.createBindings(); for (String key : variables.keySet()) { bindings.put(key, variables.get(key)); } engine.setBindings(bindings, ScriptContext.ENGINE_SCOPE); }
@Override public Result filter(final Logger logger, final Level level, final Marker marker, final Message msg, final Throwable t) { final SimpleBindings bindings = new SimpleBindings(); bindings.put("logger", logger); bindings.put("level", level); bindings.put("marker", marker); bindings.put("message", msg); bindings.put("parameters", null); bindings.put("throwable", t); bindings.putAll(configuration.getProperties()); bindings.put("substitutor", configuration.getStrSubstitutor()); final Object object = configuration.getScriptManager().execute(script.getName(), bindings); return object == null || !Boolean.TRUE.equals(object) ? onMismatch : onMatch; }
@Override public void setup(OperatorContext context) { for (Map.Entry<String, Object> entry : serializableBindings.entrySet()) { scriptBindings.put(entry.getKey(), entry.getValue()); } this.scriptContext.setBindings(scriptBindings, ScriptContext.ENGINE_SCOPE); engine.setContext(this.scriptContext); try { for (String s : setupScripts) { engine.eval(s, this.scriptContext); } } catch (ScriptException ex) { throw new RuntimeException(ex); } }
private Bindings createBindings(final Map<String,Object> bindingMap, final Map<String,String> rebindingMap) { final Bindings bindings = new SimpleBindings(); // rebind any global bindings to a different variable. if (!rebindingMap.isEmpty()) { for (Map.Entry<String, String> kv : rebindingMap.entrySet()) { boolean found = false; final Graph g = this.graphManager.getGraph(kv.getValue()); if (null != g) { bindings.put(kv.getKey(), g); found = true; } if (!found) { final TraversalSource ts = this.graphManager.getTraversalSource(kv.getValue()); if (null != ts) { bindings.put(kv.getKey(), ts); found = true; } } if (!found) { final String error = String.format("Could not rebind [%s] to [%s] as [%s] not in the Graph or TraversalSource global bindings", kv.getKey(), kv.getValue(), kv.getValue()); throw new IllegalStateException(error); } } } bindings.putAll(bindingMap); return bindings; }
@Test public void shouldEvalBytecode() throws Exception { final GremlinScriptEngine scriptEngine = manager.getEngineByName(ENGINE_TO_TEST); final Graph graph = EmptyGraph.instance(); final GraphTraversalSource g = graph.traversal(); // purposefully use "x" to match the name of the traversal source binding for "x" below and // thus tests the alias added for "x" final GraphTraversal t = getTraversalWithLambda(g); final Bindings bindings = new SimpleBindings(); bindings.put("x", g); final Traversal evald = scriptEngine.eval(t.asAdmin().getBytecode(), bindings, "x"); assertTraversals(t, evald); assertThat(manager.getBindings().containsKey(GremlinScriptEngine.HIDDEN_G), is(false)); }
static Bindings getBindings(Map<String, Object> bindings) { return (bindings instanceof Bindings ? (Bindings) bindings : new SimpleBindings(bindings)); }
@Override public Bindings createBindings() { final SimpleBindings bindings = new SimpleBindings(); bindings.put(KEY_CONFIGURATION, configuration); bindings.put(KEY_STATUS_LOGGER, logger); return bindings; }