List of usage examples for javax.script ScriptEngineManager put
public void put(String key, Object value)
From source file:Main.java
public static void main(String[] args) throws Exception { ScriptEngineManager manager = new ScriptEngineManager(); manager.put("global", "global bindings"); dumpBindings(manager.getBindings()); ScriptEngine engine = manager.getEngineByExtension("js"); engine.put("engine", "engine bindings"); dumpBindings(engine.getBindings(ScriptContext.GLOBAL_SCOPE)); dumpBindings(engine.getBindings(ScriptContext.ENGINE_SCOPE)); Bindings bindings = engine.createBindings(); bindings.put("engine", "overridden engine bindings"); bindings.put("bindings", bindings); engine.eval("app.dumpBindings (bindings);", bindings); ScriptEngine engine2 = manager.getEngineByExtension("js"); engine2.put("engine2", "engine2 bindings"); dumpBindings(engine2.getBindings(ScriptContext.GLOBAL_SCOPE)); dumpBindings(engine2.getBindings(ScriptContext.ENGINE_SCOPE)); dumpBindings(engine.getBindings(ScriptContext.ENGINE_SCOPE)); }
From source file:GetToKnowBindingsAndScopes.java
public static void main(String[] args) { ScriptEngineManager manager = new ScriptEngineManager(); manager.put("global", "global bindings"); dumpBindings(manager.getBindings()); ScriptEngine engine = manager.getEngineByExtension("js"); engine.put("engine", "engine bindings"); dumpBindings(engine.getBindings(ScriptContext.GLOBAL_SCOPE)); dumpBindings(engine.getBindings(ScriptContext.ENGINE_SCOPE)); try {/* ww w . j a v a2 s . c o m*/ Bindings bindings = engine.createBindings(); bindings.put("engine", "overridden engine bindings"); bindings.put("app", new GetToKnowBindingsAndScopes()); bindings.put("bindings", bindings); engine.eval("app.dumpBindings (bindings);", bindings); } catch (ScriptException se) { System.err.println(se.getMessage()); } ScriptEngine engine2 = manager.getEngineByExtension("js"); engine2.put("engine2", "engine2 bindings"); dumpBindings(engine2.getBindings(ScriptContext.GLOBAL_SCOPE)); dumpBindings(engine2.getBindings(ScriptContext.ENGINE_SCOPE)); dumpBindings(engine.getBindings(ScriptContext.ENGINE_SCOPE)); }
From source file:Main.java
public static void main(String[] args) throws ScriptException { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("JavaScript"); manager.put("n1", 1); String script = "var sum = n1 + n2;print(msg + " + "' n1=' + n1 + ', n2=' + n2 + " + "', sum=' + sum);"; engine.put("n2", 2); engine.put("msg", "a string"); engine.eval(script);/*from ww w. j ava2 s .co m*/ Bindings bindings = engine.createBindings(); bindings.put("n2", 3); bindings.put("msg", "another string"); engine.eval(script, bindings); ScriptContext ctx = new SimpleScriptContext(); Bindings ctxGlobalBindings = engine.createBindings(); ctx.setBindings(ctxGlobalBindings, GLOBAL_SCOPE); ctx.setAttribute("n1", 4, GLOBAL_SCOPE); ctx.setAttribute("n2", 5, ENGINE_SCOPE); ctx.setAttribute("msg", "ScriptContext:", ENGINE_SCOPE); engine.eval(script, ctx); engine.eval(script); }
From source file:com.jkoolcloud.tnt4j.streams.filters.JavaScriptActivityExpressionFilter.java
@Override public boolean doFilter(ActivityInfo activityInfo) throws FilterException { ScriptEngineManager factory = new ScriptEngineManager(); ScriptEngine engine = factory.getEngineByName(JAVA_SCRIPT_LANG); if (CollectionUtils.isNotEmpty(exprVars)) { Object fValue;/*from ww w. ja v a 2s.c om*/ String fieldName; for (String eVar : exprVars) { fieldName = eVar.substring(2, eVar.length() - 1); fValue = activityInfo.getFieldValue(fieldName); fieldName = placeHoldersMap.get(eVar); factory.put(StringUtils.isEmpty(fieldName) ? eVar : fieldName, fValue); } } try { boolean match = (boolean) engine.eval(StreamsScriptingUtils.addDefaultJSScriptImports(getExpression())); boolean filteredOut = isFilteredOut(getHandleType(), match); activityInfo.setFiltered(filteredOut); return filteredOut; } catch (Exception exc) { throw new FilterException(StreamsResources.getStringFormatted(StreamsResources.RESOURCE_BUNDLE_NAME, "ExpressionFilter.filtering.failed", filterExpression), exc); } }
From source file:org.apache.solr.update.processor.StatelessScriptUpdateProcessorFactory.java
/** * Initializes a list of script engines - an engine per script file. * * @param req The solr request.//from ww w . ja v a2 s.co m * @param rsp The solr response * @return The list of initialized script engines. */ private List<EngineInfo> initEngines(SolrQueryRequest req, SolrQueryResponse rsp) throws SolrException { List<EngineInfo> scriptEngines = new ArrayList<>(); ScriptEngineManager scriptEngineManager = new ScriptEngineManager(resourceLoader.getClassLoader()); scriptEngineManager.put("logger", log); scriptEngineManager.put("req", req); scriptEngineManager.put("rsp", rsp); if (params != null) { scriptEngineManager.put("params", params); } for (ScriptFile scriptFile : scriptFiles) { ScriptEngine engine = null; if (null != engineName) { engine = scriptEngineManager.getEngineByName(engineName); if (engine == null) { String details = getSupportedEngines(scriptEngineManager, false); throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, "No ScriptEngine found by name: " + engineName + (null != details ? " -- supported names: " + details : "")); } } else { engine = scriptEngineManager.getEngineByExtension(scriptFile.getExtension()); if (engine == null) { String details = getSupportedEngines(scriptEngineManager, true); throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, "No ScriptEngine found by file extension: " + scriptFile.getFileName() + (null != details ? " -- supported extensions: " + details : "")); } } if (!(engine instanceof Invocable)) { String msg = "Engine " + ((null != engineName) ? engineName : ("for script " + scriptFile.getFileName())) + " does not support function invocation (via Invocable): " + engine.getClass().toString() + " (" + engine.getFactory().getEngineName() + ")"; log.error(msg); throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, msg); } if (scriptEngineCustomizer != null) { scriptEngineCustomizer.customize(engine); } scriptEngines.add(new EngineInfo((Invocable) engine, scriptFile)); try { Reader scriptSrc = scriptFile.openReader(resourceLoader); try { engine.eval(scriptSrc); } catch (ScriptException e) { throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, "Unable to evaluate script: " + scriptFile.getFileName(), e); } finally { IOUtils.closeQuietly(scriptSrc); } } catch (IOException ioe) { throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, "Unable to evaluate script: " + scriptFile.getFileName(), ioe); } } return scriptEngines; }