List of usage examples for jdk.nashorn.api.scripting NashornScriptEngineFactory NashornScriptEngineFactory
NashornScriptEngineFactory
From source file:com.wx3.galacdecks.ai.EvaluatorAI.java
License:Open Source License
private static ScriptEngine getScriptEngine() { if (scriptEngine == null) { NashornScriptEngineFactory factory = new NashornScriptEngineFactory(); scriptEngine = factory.getScriptEngine(); if (scriptEngine == null) { throw new RuntimeException("Unable to get script engine"); }/*ww w. j a v a 2 s . c o m*/ } return scriptEngine; }
From source file:com.wx3.galacdecks.game.GameRules.java
License:Open Source License
private static ScriptEngine getScriptEngine() { if (scriptEngine == null) { NashornScriptEngineFactory factory = new NashornScriptEngineFactory(); scriptEngine = factory.getScriptEngine(new RestrictiveFilter()); if (scriptEngine == null) { throw new RuntimeException("Unable to get script engine"); }//from w w w . j a v a2 s .c om } return scriptEngine; }
From source file:de.hasait.genesis.scriptgen.ScriptGenProcessor.java
License:Apache License
private ScriptEngine determineScriptEngine(final String pScriptFileExtension, final ClassLoader pClassLoader) { final ScriptEngine engine; final NashornScriptEngineFactory nashornScriptEngineFactory = new NashornScriptEngineFactory(); if (nashornScriptEngineFactory.getExtensions().contains(pScriptFileExtension)) { engine = nashornScriptEngineFactory.getScriptEngine(pClassLoader); } else {//from www .j a v a 2 s. c o m final ScriptEngineManager factory = new ScriptEngineManager(); engine = factory.getEngineByExtension(pScriptFileExtension); } return engine; }
From source file:io.devcon5.misc.scripting.js.ClassFilterSandboxScripting.java
License:Apache License
public static void main(String... args) throws IOException, ScriptException { final NashornScriptEngineFactory factory = new NashornScriptEngineFactory(); final ScriptEngine engine = factory.getScriptEngine(s -> { if (!s.startsWith("java.util.ArrayList")) { return true; }/* w w w . jav a 2s .c o m*/ return false; }); //this will work, as it will create the ArrayList using a factory try (InputStreamReader reader = getScriptReader("/java.js")) { engine.eval(reader); } //this will not work, as it will create the ArrayList directly try (InputStreamReader reader = getScriptReader("/java_fail.js")) { engine.eval(reader); } }
From source file:io.devcon5.misc.scripting.js.HelloWorldScripting.java
License:Apache License
public static void main(String... args) throws IOException, ScriptException { final NashornScriptEngineFactory factory = new NashornScriptEngineFactory(); final ScriptEngine engine = factory.getScriptEngine(new String[] { "-scripting" }); try (InputStreamReader reader = getScriptReader("/helloworld-scripting.js")) { engine.put("name", "Bob"); engine.eval(reader);// w ww . j av a2s.c o m } }
From source file:io.github.djxy.spongejavascript.script.ScriptManager.java
License:Open Source License
public ScriptManager(ClassFilter classFilter) { this.scripts = new CopyOnWriteArrayList<>(); this.variables = new ConcurrentHashMap<>(); this.javascriptCodes = new CopyOnWriteArrayList<>(); this.factory = new NashornScriptEngineFactory(); this.filter = classFilter; }
From source file:io.github.jeddict.jcode.parser.ejs.EJSParser.java
License:Apache License
private ScriptEngine createEngine() { CompiledScript cscript;//ww w . ja va2s . c o m Bindings bindings; ScriptEngine scriptEngine = new NashornScriptEngineFactory().getScriptEngine("--language=es6");//engine = new ScriptEngineManager().getEngineByName("nashorn"); try { try { if (base == null) { base = IOUtils.toString(EJSParser.class.getClassLoader() .getResourceAsStream("io/github/jeddict/jcode/parser/ejs/resources/base.js"), "UTF-8"); } if (ejs == null) { ejs = IOUtils.toString(EJSParser.class.getClassLoader() .getResourceAsStream("io/github/jeddict/jcode/parser/ejs/resources/ejs.js"), "UTF-8"); } } catch (IOException ex) { Exceptions.printStackTrace(ex); } scriptEngine.eval(base); Compilable compilingEngine = (Compilable) scriptEngine; cscript = compilingEngine.compile(ejs); bindings = scriptEngine.getBindings(ScriptContext.ENGINE_SCOPE); cscript.eval(bindings); scriptEngine.eval(scripts.toString()); for (Map<String, Object> context : contexts) { context.keySet().stream().forEach((key) -> { try { bindings.put(key, context.get(key)); if (context.get(key) instanceof Collection) { scriptEngine.eval(String.format("%s = Java.from(%s);", key, key)); } } catch (ScriptException ex) { Exceptions.printStackTrace(ex); } }); } } catch (ScriptException ex) { Exceptions.printStackTrace(ex); } return scriptEngine; }
From source file:io.stallion.dataAccess.db.SqlMigrationAction.java
License:Open Source License
public ScriptEngine getOrCreateScriptEngine() { if (scriptEngine == null) { scriptEngine = new NashornScriptEngineFactory().getScriptEngine(); }/*www . j a va 2 s . co m*/ return scriptEngine; }
From source file:io.stallion.plugins.javascript.JsPluginEngine.java
License:Open Source License
public void loadSandboxedJavascript(Sandbox box, String fullPath, JsPluginSettings pluginSettings) throws Exception { SandboxClassFilter classFilter = new SandboxClassFilter(box); this.scriptEngine = new NashornScriptEngineFactory().getScriptEngine(classFilter); Log.info("Load sandboxed js file {0}", fullPath); folder = new File(fullPath).getParent(); scriptEngine.put("javaToJsHelpers", new JavaToJsHelpers(box)); SandboxedContext ctx = new SandboxedContext(folder, box, pluginSettings); scriptEngine.put("myContext", ctx); String stallionSharedJs = IOUtils.toString(getClass().getResource("/jslib/stallion_shared.js"), UTF8); classFilter.setDisabled(true); // Turn off white-listing while loading stallion_shared, since we need access to more classes scriptEngine.eval("load(" + JSON.stringify(map(val("script", stallionSharedJs), val("name", "stallion_shared.js"))) + ");"); classFilter.setDisabled(false); // Turn whitelisting back on scriptEngine.put("stallionClassLoader", new SandboxedClassLoader(box)); //scriptEngine.eval("Java = {extend: Java.extend, type: function(className) { return stallionClassLoader.loadClass(className).static; }}"); //scriptEngine.eval("Packages = undefined;java = undefined;"); scriptEngine.eval("load(\"" + fullPath + "\");"); Log.info("Loaded js plugin {0}", fullPath); }
From source file:io.stallion.plugins.javascript.JsPluginEngine.java
License:Open Source License
private void loadUnrestrictedJavascript(String fullPath, JsPluginSettings pluginSettings) throws Exception { folder = new File(fullPath).getParent(); this.scriptEngine = (NashornScriptEngine) new NashornScriptEngineFactory().getScriptEngine(); scriptEngine.put("javaToJsHelpers", new JavaToJsHelpers(null)); String jvmNpm = IOUtils.toString(getClass().getResource("/jslib/jvm-npm.js"), UTF8); scriptEngine.eval("load(" + JSON.stringify(map(val("script", jvmNpm), val("name", "jvm-npm.js"))) + ");"); SandboxedContext ctx = new SandboxedContext(folder, Sandbox.allPermissions(), pluginSettings); scriptEngine.put("myContext", ctx); String stallionSharedJs = IOUtils.toString(getClass().getResource("/jslib/stallion_shared.js"), UTF8); scriptEngine.eval("load(" + JSON.stringify(map(val("script", stallionSharedJs), val("name", "stallion_shared.js"))) + ");"); scriptEngine.put("stallionClassLoader", new UnrestrictedJsClassLoader()); //scriptEngine.eval("Java.type = function(className) { var cls = stallionClassLoader.loadClass(className); if (cls) {return cls.static} else { print('Could not find class ' + className); return null; } };"); scriptEngine.put("pluginFolder", folder); scriptEngine.put("jsEngine", this); //Global global = Context.getGlobal(); //global.put("astring", "foo", true); //Log.info("astring: {0}", scriptEngine.get("astring")); Log.info("Load js file {0}", fullPath); String folder = new File(fullPath).getParent(); String nodePath = folder + "/node_modules"; scriptEngine.eval("require.NODE_PATH = \"" + nodePath + "\""); scriptEngine.eval("load(\"" + fullPath + "\");"); Log.info("Finish loading js {0}", fullPath); }