Java 类org.mozilla.javascript.commonjs.module.RequireBuilder 实例源码

项目:rec-core    文件:Scripting.java   
public static void runfile(File file,
                           String filename,
                           boolean enableRetry,
                           String retryFile) throws Exception {
    Context ctx = Context.enter();
    ctx.putThreadLocal("SCRIPT_PATH", file.getAbsoluteFile().getParent());

    ScriptableObject scope = ctx.initStandardObjects();

    NativeExecutionContext executionContext = initializeNativeExecutionContext(
            file,
            enableRetry,
            retryFile,
            ctx);

    scope.putConst("context", scope, javaToJS(executionContext, scope));

    ctx.setLanguageVersion(VERSION_1_8);
    Require require = new RequireBuilder()
            .setModuleScriptProvider(new SoftCachingModuleScriptProvider(new NativeModuleSourceProvider()))
            .createRequire(ctx, scope);
    require.install(scope);
    require.requireMain(ctx, filename);
}
项目:JsSandbox    文件:JsSandboxEvaluators.java   
private static void loadModulesFromIncludeDirs(Context cx, Scriptable scope, List<File> requireDirList)
{
    List<URI> uris = new ArrayList<URI>();
    for (File dir : requireDirList) {
        URI uri = dir.toURI();
        uris.add(uri);
        continue;
    }
    if (uris.isEmpty()) {
        return;
    }
    RequireBuilder rb = new RequireBuilder();
    rb.setModuleScriptProvider(new SoftCachingModuleScriptProvider(
            new UrlModuleSourceProvider(uris, null)));
    Require require = rb.createRequire(cx, scope);
    require.install(scope);
    return;
}
项目:Ignite    文件:JSXTransformer.java   
public void init() throws URISyntaxException {
    ctx = Context.enter();
    try {
        RequireBuilder builder = new RequireBuilder();
        builder.setModuleScriptProvider(new SoftCachingModuleScriptProvider(
                new UrlModuleSourceProvider(buildModulePaths(), null)));

        topLevelScope = ctx.initStandardObjects();
        builder.setSandboxed(false); // allows this to load scripts
        Require require = builder.createRequire(ctx, topLevelScope);

        exports = require.requireMain(ctx, jsxTransformerJS);
        transform = (Function) exports.get("transform", topLevelScope);
    } finally {
        Context.exit();
    }
}
项目:https-github.com-hyb1996-NoRootScriptDroid    文件:RhinoJavaScriptEngine.java   
void initRequireBuilder(Context context, Scriptable scope) {
    List<URI> list = new ArrayList<>();
    for (String path : mRequirePath) {
        list.add(new File(path).toURI());
    }
    AssetAndUrlModuleSourceProvider provider = new AssetAndUrlModuleSourceProvider(mAndroidContext, list);
    new RequireBuilder()
            .setModuleScriptProvider(new SoftCachingModuleScriptProvider(provider))
            .setSandboxed(true)
            .createRequire(context, scope)
            .install(scope);
}
项目:Auto.js    文件:RhinoJavaScriptEngine.java   
void initRequireBuilder(Context context, Scriptable scope) {
    List<URI> list = new ArrayList<>();
    for (String path : mRequirePath) {
        list.add(new File(path).toURI());
    }
    AssetAndUrlModuleSourceProvider provider = new AssetAndUrlModuleSourceProvider(mAndroidContext, list);
    new RequireBuilder()
            .setModuleScriptProvider(new SoftCachingModuleScriptProvider(provider))
            .setSandboxed(false)
            .createRequire(context, scope)
            .install(scope);

}
项目:whackpad    文件:Global.java   
public Require installRequire(Context cx, List<String> modulePath,
                              boolean sandboxed) {
    RequireBuilder rb = new RequireBuilder();
    rb.setSandboxed(sandboxed);
    List<URI> uris = new ArrayList<URI>();
    if (modulePath != null) {
        for (String path : modulePath) {
            try {
                URI uri = new URI(path);
                if (!uri.isAbsolute()) {
                    // call resolve("") to canonify the path
                    uri = new File(path).toURI().resolve("");
                }
                if (!uri.toString().endsWith("/")) {
                    // make sure URI always terminates with slash to
                    // avoid loading from unintended locations
                    uri = new URI(uri + "/");
                }
                uris.add(uri);
            } catch (URISyntaxException usx) {
                throw new RuntimeException(usx);
            }
        }
    }
    rb.setModuleScriptProvider(
            new SoftCachingModuleScriptProvider(
                    new UrlModuleSourceProvider(uris, null)));
    Require require = rb.createRequire(cx, this);
    require.install(this);
    return require;
}
项目:code404    文件:Global.java   
public Require installRequire(Context cx, List<String> modulePath,
                              boolean sandboxed) {
    RequireBuilder rb = new RequireBuilder();
    rb.setSandboxed(sandboxed);
    List<URI> uris = new ArrayList<URI>();
    if (modulePath != null) {
        for (String path : modulePath) {
            try {
                URI uri = new URI(path);
                if (!uri.isAbsolute()) {
                    // call resolve("") to canonify the path
                    uri = new File(path).toURI().resolve("");
                }
                if (!uri.toString().endsWith("/")) {
                    // make sure URI always terminates with slash to
                    // avoid loading from unintended locations
                    uri = new URI(uri + "/");
                }
                uris.add(uri);
            } catch (URISyntaxException usx) {
                throw new RuntimeException(usx);
            }
        }
    }
    rb.setModuleScriptProvider(
            new SoftCachingModuleScriptProvider(
                    new UrlModuleSourceProvider(uris, null)));
    Require require = rb.createRequire(cx, this);
    require.install(this);
    return require;
}
项目:S3F    文件:Global.java   
public Require installRequire(Context cx, List<String> modulePath,
                              boolean sandboxed) {
    RequireBuilder rb = new RequireBuilder();
    rb.setSandboxed(sandboxed);
    List<URI> uris = new ArrayList<URI>();
    if (modulePath != null) {
        for (String path : modulePath) {
            try {
                URI uri = new URI(path);
                if (!uri.isAbsolute()) {
                    // call resolve("") to canonify the path
                    uri = new File(path).toURI().resolve("");
                }
                if (!uri.toString().endsWith("/")) {
                    // make sure URI always terminates with slash to
                    // avoid loading from unintended locations
                    uri = new URI(uri + "/");
                }
                uris.add(uri);
            } catch (URISyntaxException usx) {
                throw new RuntimeException(usx);
            }
        }
    }
    rb.setModuleScriptProvider(
            new SoftCachingModuleScriptProvider(
                    new UrlModuleSourceProvider(uris, null)));
    Require require = rb.createRequire(cx, this);
    require.install(this);
    return require;
}
项目:rhino-jscover    文件:Global.java   
public Require installRequire(Context cx, List<String> modulePath,
                              boolean sandboxed) {
    RequireBuilder rb = new RequireBuilder();
    rb.setSandboxed(sandboxed);
    List<URI> uris = new ArrayList<URI>();
    if (modulePath != null) {
        for (String path : modulePath) {
            try {
                URI uri = new URI(path);
                if (!uri.isAbsolute()) {
                    // call resolve("") to canonify the path
                    uri = new File(path).toURI().resolve("");
                }
                if (!uri.toString().endsWith("/")) {
                    // make sure URI always terminates with slash to
                    // avoid loading from unintended locations
                    uri = new URI(uri + "/");
                }
                uris.add(uri);
            } catch (URISyntaxException usx) {
                throw new RuntimeException(usx);
            }
        }
    }
    rb.setModuleScriptProvider(
            new SoftCachingModuleScriptProvider(
                    new UrlModuleSourceProvider(uris, null)));
    Require require = rb.createRequire(cx, this);
    require.install(this);
    return require;
}
项目:astor    文件:Global.java   
public Require installRequire(Context cx, List<String> modulePath,
                              boolean sandboxed) {
    RequireBuilder rb = new RequireBuilder();
    rb.setSandboxed(sandboxed);
    List<URI> uris = new ArrayList<URI>();
    if (modulePath != null) {
        for (String path : modulePath) {
            try {
                URI uri = new URI(path);
                if (!uri.isAbsolute()) {
                    // call resolve("") to canonify the path
                    uri = new File(path).toURI().resolve("");
                }
                if (!uri.toString().endsWith("/")) {
                    // make sure URI always terminates with slash to
                    // avoid loading from unintended locations
                    uri = new URI(uri + "/");
                }
                uris.add(uri);
            } catch (URISyntaxException usx) {
                throw new RuntimeException(usx);
            }
        }
    }
    rb.setModuleScriptProvider(
            new SoftCachingModuleScriptProvider(
                    new UrlModuleSourceProvider(uris, null)));
    Require require = rb.createRequire(cx, this);
    require.install(this);
    return require;
}
项目:Rhino-Prov-Mod    文件:Global.java   
public Require installRequire(Context cx, List<String> modulePath,
                              boolean sandboxed) {
    RequireBuilder rb = new RequireBuilder();
    rb.setSandboxed(sandboxed);
    List<URI> uris = new ArrayList<URI>();
    if (modulePath != null) {
        for (String path : modulePath) {
            try {
                URI uri = new URI(path);
                if (!uri.isAbsolute()) {
                    // call resolve("") to canonify the path
                    uri = new File(path).toURI().resolve("");
                }
                if (!uri.toString().endsWith("/")) {
                    // make sure URI always terminates with slash to
                    // avoid loading from unintended locations
                    uri = new URI(uri + "/");
                }
                uris.add(uri);
            } catch (URISyntaxException usx) {
                throw new RuntimeException(usx);
            }
        }
    }
    rb.setModuleScriptProvider(
            new SoftCachingModuleScriptProvider(
                    new UrlModuleSourceProvider(uris, null)));
    Require require = rb.createRequire(cx, this);
    require.install(this);
    return require;
}
项目:closure-compiler-old    文件:Global.java   
public Require installRequire(Context cx, List<String> modulePath,
                              boolean sandboxed) {
    RequireBuilder rb = new RequireBuilder();
    rb.setSandboxed(sandboxed);
    List<URI> uris = new ArrayList<URI>();
    if (modulePath != null) {
        for (String path : modulePath) {
            try {
                URI uri = new URI(path);
                if (!uri.isAbsolute()) {
                    // call resolve("") to canonify the path
                    uri = new File(path).toURI().resolve("");
                }
                if (!uri.toString().endsWith("/")) {
                    // make sure URI always terminates with slash to
                    // avoid loading from unintended locations
                    uri = new URI(uri + "/");
                }
                uris.add(uri);
            } catch (URISyntaxException usx) {
                throw new RuntimeException(usx);
            }
        }
    }
    rb.setModuleScriptProvider(
            new SoftCachingModuleScriptProvider(
                    new UrlModuleSourceProvider(uris, null)));
    Require require = rb.createRequire(cx, this);
    require.install(this);
    return require;
}
项目:closure-compiler-copy    文件:Global.java   
public Require installRequire(Context cx, List<String> modulePath,
                              boolean sandboxed) {
    RequireBuilder rb = new RequireBuilder();
    rb.setSandboxed(sandboxed);
    List<URI> uris = new ArrayList<URI>();
    if (modulePath != null) {
        for (String path : modulePath) {
            try {
                URI uri = new URI(path);
                if (!uri.isAbsolute()) {
                    // call resolve("") to canonify the path
                    uri = new File(path).toURI().resolve("");
                }
                if (!uri.toString().endsWith("/")) {
                    // make sure URI always terminates with slash to
                    // avoid loading from unintended locations
                    uri = new URI(uri + "/");
                }
                uris.add(uri);
            } catch (URISyntaxException usx) {
                throw new RuntimeException(usx);
            }
        }
    }
    rb.setModuleScriptProvider(
            new SoftCachingModuleScriptProvider(
                    new UrlModuleSourceProvider(uris, null)));
    Require require = rb.createRequire(cx, this);
    require.install(this);
    return require;
}
项目:Equella    文件:ScriptingServiceImpl.java   
private Object executeInternal(final String script, final String scriptName, final ScriptContext context,
    final boolean function, final Class<?> expectedResultClass) throws ScriptException
{
    // never ever execute an empty script, it's just a waste of time
    if( !Check.isEmpty(script) )
    {
        // In most cases apart from calls from birt, we can expect that
        // there'll be no current context, thus one will be generated by
        // this call into the ContextFactory
        return ContextFactory.getGlobal().call(new ContextAction()
        {
            @Override
            public Object run(Context cx)
            {
                Logger errorLogger = context.getLogger();
                if( errorLogger == null )
                {
                    errorLogger = logger;
                }

                Scriptable userScriptScope = ((DefaultScriptContext) context).getUserScriptScope(cx);
                ScriptableModuleSourceProvider sourceProvider = new ScriptableModuleSourceProvider(userScriptScope);
                ModuleScriptProvider scriptProvider = new SoftCachingModuleScriptProvider(sourceProvider);

                cx.initStandardObjects();
                Scriptable scope = ((DefaultScriptContext) context).getScope(cx);

                RequireBuilder builder = new RequireBuilder();
                // The "uri" property must not exist in a sandbox
                builder.setSandboxed(false);
                builder.setModuleScriptProvider(scriptProvider);

                Require require = builder.createRequire(cx, scope);

                cx.setOptimizationLevel(-1);
                cx.setErrorReporter(new ScriptErrorReporter(errorLogger));


                final String execScript = (function ? "function runScript() {\n" + script + "\n}\n runScript();"
                    : script);
                final String execScriptName = (scriptName != null ? scriptName : "script");

                try
                {
                    context.scriptEnter();
                    require.install(scope);

                    Object result = cx.evaluateString(scope, execScript, execScriptName, 1, null);

                    context.scriptExit();
                    if( expectedResultClass == String.class )
                    {
                        return result.toString();
                    }
                    return result;
                }
                catch( JavaScriptException js )
                {
                    throw new ScriptException(js);
                }
                catch( EcmaError ec )
                {
                    throw new ScriptException(ec);
                }
                catch( EvaluatorException ev )
                {
                    throw new ScriptException(ev);
                }
            }
        });
    }
    return Boolean.TRUE;

}