List of usage examples for javax.script ScriptEngineManager ScriptEngineManager
public ScriptEngineManager(ClassLoader loader)
ScriptEngineFactory visible to the given ClassLoader using the service provider mechanism.null, the script engine factories that are bundled with the platform are loaded. From source file:org.opennms.opennms.pris.plugins.script.util.ScriptManager.java
public static Object execute(final InstanceConfiguration config, final Map<String, Object> bindings) throws IOException, ScriptException { Requisition requisition = null;//from w ww. j av a 2 s.c o m // Get the path to the script final List<Path> scripts = config.getPaths("file"); // Get the script engine by language defined in config or by extension if it // is not defined in the config final ScriptEngineManager SCRIPT_ENGINE_MANAGER = new ScriptEngineManager( ScriptManager.class.getClassLoader()); for (Path script : scripts) { final ScriptEngine scriptEngine = config.containsKey("lang") ? SCRIPT_ENGINE_MANAGER.getEngineByName(config.getString("lang")) : SCRIPT_ENGINE_MANAGER.getEngineByExtension(FilenameUtils.getExtension(script.toString())); if (scriptEngine == null) { throw new RuntimeException("Script engine implementation not found"); } // Create some bindings for values available in the script final Bindings scriptBindings = scriptEngine.createBindings(); scriptBindings.put("script", script); scriptBindings.put("logger", LoggerFactory.getLogger(script.toString())); scriptBindings.put("config", config); scriptBindings.put("instance", config.getInstanceIdentifier()); scriptBindings.put("interfaceUtils", new InterfaceUtils(config)); scriptBindings.putAll(bindings); // Overwrite initial requisition with the requisition from the previous script, if there was any. if (requisition != null) { scriptBindings.put("requisition", requisition); } // Evaluate the script and return the requisition created in the script try (final Reader scriptReader = Files.newBufferedReader(script, StandardCharsets.UTF_8)) { LOGGER.debug("Start Script {}", script); requisition = (Requisition) scriptEngine.eval(scriptReader, scriptBindings); LOGGER.debug("Done Script {}", script); } } return requisition; }
From source file:ca.hedlund.jiss.preprocessor.LangPreprocessor.java
@Override public boolean preprocessCommand(JissModel jissModel, String orig, StringBuffer cmd) { final String c = cmd.toString(); if (c.equals("::langs")) { cmd.setLength(0);/* ww w . j a v a 2 s.c om*/ printLangs(jissModel, cmd); } else if (c.equals("::lang")) { cmd.setLength(0); printCurrentLang(jissModel, cmd); } else if (c.startsWith("::lang")) { cmd.setLength(0); final String parts[] = c.split("\\p{Space}"); if (parts.length == 2) { final String lang = parts[1]; final ScriptEngineManager manager = new ScriptEngineManager(JissModel.class.getClassLoader()); ScriptEngine newEngine = null; for (ScriptEngineFactory factory : manager.getEngineFactories()) { if (factory.getLanguageName().equals(lang) || factory.getExtensions().contains(lang) || factory.getMimeTypes().contains(lang)) { newEngine = factory.getScriptEngine(); break; } } if (newEngine != null) { jissModel.setScriptEngine(newEngine); printCurrentLang(jissModel, cmd); } } } return false; }
From source file:me.tfeng.toolbox.dust.NashornEngine.java
@Override public void initialize() throws Exception { scriptEngine = new ScriptEngineManager(null).getEngineByName("nashorn"); InputStream dustJsStream = getAssetLocator().getResource(DUST_JS_NAME); String dustJs = readAndClose(dustJsStream); scriptEngine.eval(dustJs);//from w w w .ja v a 2 s .c om }
From source file:com.adaptris.core.services.ScriptingServiceImp.java
@Override protected void initService() throws CoreException { try {/*from w ww . j ava2 s .co m*/ Args.notBlank(language, "language"); String error = String.format("getEngineByName('%s')", getLanguage()); fatController = new ScriptEngineManager(this.getClass().getClassLoader()); engine = Args.notNull(fatController.getEngineByName(getLanguage()), error); } catch (Exception e) { throw ExceptionHelper.wrapCoreException(e); } }
From source file:org.springframework.data.hadoop.scripting.Jsr223ScriptEvaluator.java
protected ScriptEngine discoverEngine(ScriptSource script, Map<String, Object> arguments) { ScriptEngineManager engineManager = new ScriptEngineManager(classLoader); ScriptEngine engine = null;// w w w . ja va2s . com if (StringUtils.hasText(language)) { engine = engineManager.getEngineByName(language); } else { // make use the extension (enhanced ScriptSource interface) Assert.hasText(extension, "no language or extension specified"); engine = engineManager.getEngineByExtension(extension); } Assert.notNull(engine, "No suitable engine found for " + (StringUtils.hasText(language) ? "language " + language : "extension " + extension)); if (log.isDebugEnabled()) { ScriptEngineFactory factory = engine.getFactory(); log.debug(String.format("Using ScriptEngine %s (%s), language %s (%s)", factory.getEngineName(), factory.getEngineVersion(), factory.getLanguageName(), factory.getLanguageVersion())); } return engine; }
From source file:ca.hedlund.jiss.preprocessor.LangPreprocessor.java
private void printLangs(JissModel model, StringBuffer cmd) { final ScriptEngineManager manager = new ScriptEngineManager(JissModel.class.getClassLoader()); final List<String> cmds = new ArrayList<String>(); for (ScriptEngineFactory factory : manager.getEngineFactories()) { final String engineInfo = factory.getLanguageName() + " " + factory.getLanguageVersion() + ":" + factory.getEngineName() + " " + factory.getEngineVersion(); cmds.add(createPrintCmd(model, engineInfo)); }// w w w . jav a 2 s.c o m final ScriptEngineFactory factory = model.getScriptEngine().getFactory(); final String prog = StringEscapeUtils.unescapeJava(factory.getProgram(cmds.toArray(new String[0]))); cmd.append(prog); }
From source file:com.linkedin.drelephant.util.Utils.java
/** * Returns the configured thresholds after evaluating and verifying the levels. * * @param rawLimits A comma separated string of threshold limits * @param thresholdLevels The number of threshold levels * @return The evaluated threshold limits */// w w w . j av a 2s .c om public static double[] getParam(String rawLimits, int thresholdLevels) { double[] parsedLimits = null; if (rawLimits != null && !rawLimits.isEmpty()) { String[] thresholds = rawLimits.split(","); if (thresholds.length != thresholdLevels) { logger.error("Could not find " + thresholdLevels + " threshold levels in " + rawLimits); parsedLimits = null; } else { // Evaluate the limits parsedLimits = new double[thresholdLevels]; ScriptEngineManager mgr = new ScriptEngineManager(null); ScriptEngine engine = mgr.getEngineByName("JavaScript"); for (int i = 0; i < thresholdLevels; i++) { try { parsedLimits[i] = Double.parseDouble(engine.eval(thresholds[i]).toString()); } catch (ScriptException e) { logger.error("Could not evaluate " + thresholds[i] + " in " + rawLimits); parsedLimits = null; } } } } return parsedLimits; }
From source file:org.freeplane.plugin.script.GenericScript.java
static ScriptEngineManager getScriptEngineManager() { synchronized (scriptEngineManagerMutex) { if (scriptEngineManager == null) { final ClassLoader classLoader = createClassLoader(); scriptEngineManager = new ScriptEngineManager(classLoader); }/*from w w w. j av a2 s . co m*/ return scriptEngineManager; } }
From source file:org.netbeans.jcode.core.util.FileUtil.java
/** * Used core method for getting {@code ScriptEngine} from {@code * org.netbeans.modules.templates.ScriptingCreateFromTemplateHandler}. *///from w ww . j a v a 2s.c o m private static ScriptEngine getScriptEngine() { if (manager == null) { synchronized (FileUtil.class) { if (manager == null) { ClassLoader loader = Lookup.getDefault().lookup(ClassLoader.class); try { loader.loadClass(PrefixResolver.class.getName()); } catch (ClassNotFoundException ex) { Exceptions.printStackTrace(ex); } manager = new ScriptEngineManager( loader != null ? loader : Thread.currentThread().getContextClassLoader()); } } } return manager.getEngineByName((String) "freemarker"); }
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 w ww . ja v a 2s . com*/ * @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; }