Example usage for jdk.nashorn.api.scripting NashornScriptEngineFactory NashornScriptEngineFactory

List of usage examples for jdk.nashorn.api.scripting NashornScriptEngineFactory NashornScriptEngineFactory

Introduction

In this page you can find the example usage for jdk.nashorn.api.scripting NashornScriptEngineFactory NashornScriptEngineFactory.

Prototype

NashornScriptEngineFactory

Source Link

Usage

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);

}