Package javax.script

Examples of javax.script.ScriptEngineFactory


    public ScriptEngine getEngineByMimeType(String mimeType) {
        if (mimeType == null) {
            throw new NullPointerException("Null mimeType");
        }
        ScriptEngineFactory factory = mimetypeMap.get(mimeType);
        if (factory == null) {
            throw new IllegalArgumentException("No engine for " + mimeType);
        }
        ScriptEngine engine = factory.getScriptEngine();
        engine.getContext().setBindings(globalMap, ScriptContext.GLOBAL_SCOPE);
        return engine;
    }
View Full Code Here


    //@Test
    public void testGetFactory() {
        logger1.info("getFactory");
        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine instance = manager.getEngineByName("jruby");
        ScriptEngineFactory result = instance.getFactory();
        assertTrue(result instanceof JRubyEngineFactory);
        String expResult = "JSR 223 JRuby Engine";
        String ret = result.getEngineName();
        assertEquals(expResult, ret);

        instance.getBindings(ScriptContext.ENGINE_SCOPE).clear();
        instance = null;
    }
View Full Code Here

        synchronized (this) {
            System.setProperty("org.jruby.embed.localcontext.scope", "singlethread");
            System.setProperty("org.jruby.embed.localvariable.behavior", "global");
            ScriptEngineManager manager = new ScriptEngineManager();
            List<ScriptEngineFactory> factories = manager.getEngineFactories();
            ScriptEngineFactory factory = null;
            while (factories.iterator().hasNext()) {
                factory = factories.iterator().next();
                if ("ruby".equals(factory.getLanguageName())) {
                    break;
                }
            }
            engine1 = factory.getScriptEngine();
            engine2 = factory.getScriptEngine();
        }
        engine1.put("Value", "value of the first engine");
        engine2.put("Value", new Double(-0.0149));
        Object obj1 = engine1.eval("$Value + 2010.to_s");
        Object obj2 = engine2.eval("$Value + 2010");
View Full Code Here

    public ScriptEngine getEngineByName(String shortName) {
        if (shortName == null) {
            throw new NullPointerException("Null shortName");
        }
        ScriptEngineFactory factory = nameMap.get(shortName);
        if (factory == null) {
            throw new IllegalArgumentException("No engine for " + shortName);
        }
        ScriptEngine engine = factory.getScriptEngine();
        engine.getContext().setBindings(globalMap, ScriptContext.GLOBAL_SCOPE);
        return engine;
    }
View Full Code Here

    public ScriptEngine getEngineByExtension(String extension) {
        if (extension == null) {
            throw new NullPointerException("Null extension");
        }
        ScriptEngineFactory factory = extensionMap.get(extension);
        if (factory == null) {
            throw new IllegalArgumentException("No engine for " + extension);
        }
        ScriptEngine engine = factory.getScriptEngine();
        engine.getContext().setBindings(globalMap, ScriptContext.GLOBAL_SCOPE);
        return engine;
    }
View Full Code Here

    public ScriptEngine getEngineByMimeType(String mimeType) {
        if (mimeType == null) {
            throw new NullPointerException("Null mimeType");
        }
        ScriptEngineFactory factory = mimetypeMap.get(mimeType);
        if (factory == null) {
            throw new IllegalArgumentException("No engine for " + mimeType);
        }
        ScriptEngine engine = factory.getScriptEngine();
        engine.getContext().setBindings(globalMap, ScriptContext.GLOBAL_SCOPE);
        return engine;
    }
View Full Code Here

        final int engineCount = engineFactories.size();
        if (SHOW_FACTORIES.equalsIgnoreCase(show)) {
            System.err.println("Found "+engineCount+ " engine factories");
            for (Iterator iter = engineFactories.iterator(); iter.hasNext();){
                ScriptEngineFactory fac = (ScriptEngineFactory) iter.next();
                showFactory(fac, false);
            }
            return;
        }

        if (language == null && extension == null && inFileName != null) {
            int i = inFileName.lastIndexOf('.');
            if (i > 0) {
                extension = inFileName.substring(i+1);
            }
        }
        if (extension == null && language == null) {
            throw new IllegalArgumentException("unable to determine language");
        }

        Reader in;

        if (inFileName != null) {
            in = new FileReader(inFileName);
        } else {
            in = new InputStreamReader(System.in);
            inFileName = DEFAULT_IN_FILE_NAME;
        }

        try {
            ScriptEngine engine;
            if (language != null) {
                engine = mgr.getEngineByName(language);
                if (engine == null){
                    throw new IllegalArgumentException("unable to find engine using Language: "+language);
                }
            } else {
                engine = mgr.getEngineByExtension(extension);
                if (engine == null){
                    throw new IllegalArgumentException("unable to find engine using Extension: "+extension);
                }
            }
            if (SHOW_ENGINE.equalsIgnoreCase(show)){
                ScriptEngineFactory fac = engine.getFactory();
                showFactory(fac, true);
                System.err.println("Engine="+engine.getClass().getName());
                if (engine instanceof Compilable){
                    System.err.println("Engine supports Compilable interface.");
                }
View Full Code Here

                in.close();
                Class<?> cls = bundle.loadClass(className);
                if (!ScriptEngineFactory.class.isAssignableFrom(cls)) {
                    throw new IllegalStateException("Invalid ScriptEngineFactory: " + cls.getName());
                }
                ScriptEngineFactory factory = (ScriptEngineFactory) cls.newInstance();
                List<String> names = factory.getNames();
                for (String test : names) {
                    if (test.equals(name)) {
                        ClassLoader old = Thread.currentThread().getContextClassLoader();
                        ScriptEngine engine;
                        try {
                            // JRuby seems to require the correct TCCL to call getScriptEngine
                            Thread.currentThread().setContextClassLoader(factory.getClass().getClassLoader());
                            engine = factory.getScriptEngine();
                        } finally {
                            Thread.currentThread().setContextClassLoader(old);
                        }
                        LOG.trace("Resolved ScriptEngineFactory: {} for expected name: {}", engine, name);
                        return engine;
                    }
                }
                LOG.debug("ScriptEngineFactory: {} does not match expected name: {}", factory.getEngineName(), name);
                return null;
            } catch (Exception e) {
                LOG.warn("Cannot create ScriptEngineFactory: " + e.getClass().getName(), e);
                return null;
            }
View Full Code Here

      throw new OCommandScriptException("No language was specified");

    final String lang = iLanguage.toLowerCase();
    ScriptEngine scriptEngine = sharedEngines.get(lang);
    if (scriptEngine == null) {
      final ScriptEngineFactory scriptEngineFactory = engines.get(lang);
      if (scriptEngineFactory == null)
        throw new OCommandScriptException("Unsupported language: " + iLanguage + ". Supported languages are: "
            + getSupportedLanguages());
      scriptEngine = scriptEngineFactory.getScriptEngine();
    }

    return scriptEngine;
  }
View Full Code Here

    }

    private static ScriptEngine engine(final String language) {
        ScriptEngine engine = ENGINES.get().get(language);
        if (engine == null) {
            final ScriptEngineFactory factory = ENGINE_FACTORIES.get(language);
            engine = factory.getScriptEngine();
            ENGINES.get().put(language, engine);
        }
        return engine;
    }
View Full Code Here

TOP

Related Classes of javax.script.ScriptEngineFactory

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.