@Override public Object get(String key) { return engine.get(key); }
case Jython: engine.eval(defines + "\n" + script, context); PyDictionary oJython = (PyDictionary) engine.get("result"); Iterator it = oJython.entrySet().iterator(); while (it.hasNext()) {
@Override public Object get(String key) { return engine.get(key); }
@Override public Object get(String key) { return engine.get(key); }
@Override public Object get(String key) { return engine.get(key); }
@Override public String getLanguageName() { return (String) scriptEngine.get(ScriptEngine.LANGUAGE); }
@Override public Object getParameter(String key) { return key == null ? null : scriptEngine.get(key); }
@Override public String getEngineName() { return (String) scriptEngine.get(ScriptEngine.ENGINE); }
@Override public String getEngineVersion() { return (String) scriptEngine.get(ScriptEngine.ENGINE_VERSION); }
@Override public String getLanguageVersion() { return (String) scriptEngine.get(ScriptEngine.LANGUAGE_VERSION); }
private ScriptObjectMirror getFunc(ScriptEngine engine, String fName, String filename) { ScriptObjectMirror f = (ScriptObjectMirror) engine.get(fName); if ( f == null ) return null; else if ( !f.isFunction() ) { throw new RuntimeException("Expected " + fName + " to be a function!"); } else { LOGGER.info("using function " + fName + " from " + filename); } return f; }
@Override public String getEngineVersion() { return getScriptEngine().get(ScriptEngine.ENGINE_VERSION).toString(); }
@Override public String getLanguageVersion() { return getScriptEngine().get(ScriptEngine.LANGUAGE_VERSION).toString(); }
@Override public Object getParameter(String key) { return getScriptEngine().get(key).toString(); }
@Override public String getEngineName() { return getScriptEngine().get(ScriptEngine.ENGINE).toString(); }
@Override public String getLanguageName() { return getScriptEngine().get(ScriptEngine.LANGUAGE).toString(); }
@Test public void testVariableGet() throws Exception { ScriptEngineManager factory = new ScriptEngineManager(); ScriptEngine engine = factory.getEngineByName("jphp"); engine.eval("<?php $baz = 'test value';"); Assert.assertEquals("test value", engine.get("baz").toString()); }
@Test public void customEngineAndRenderFunction() throws Exception { ScriptEngine engine = mock(InvocableScriptEngine.class); given(engine.get("key")).willReturn("value"); this.view.setEngine(engine); this.view.setRenderFunction("render"); this.view.setApplicationContext(this.context); engine = this.view.getEngine(); assertNotNull(engine); assertEquals("value", engine.get("key")); DirectFieldAccessor accessor = new DirectFieldAccessor(this.view); assertNull(accessor.getPropertyValue("renderObject")); assertEquals("render", accessor.getPropertyValue("renderFunction")); assertEquals(StandardCharsets.UTF_8, accessor.getPropertyValue("defaultCharset")); }
@OnDisabled public void onDisabled(final ConfigurationContext context) { // Call an non-interface method onDisabled(context), to allow a scripted LookupService the chance to shut down as necessary final Invocable invocable = (Invocable) scriptEngine; if (configurationContext != null) { try { // Get the actual object from the script engine, versus the proxy stored in lookupService. The object may have additional methods, // where lookupService is a proxied interface final Object obj = scriptEngine.get("lookupService"); if (obj != null) { try { invocable.invokeMethod(obj, "onDisabled", context); } catch (final NoSuchMethodException nsme) { if (getLogger().isDebugEnabled()) { getLogger().debug("Configured script LookupService does not contain an onDisabled() method."); } } } else { throw new ScriptException("No LookupService was defined by the script."); } } catch (ScriptException se) { throw new ProcessException("Error executing onDisabled(context) method", se); } } }
@Test public void customEngineAndRenderFunction() throws Exception { ScriptEngine engine = mock(InvocableScriptEngine.class); given(engine.get("key")).willReturn("value"); this.view.setEngine(engine); this.view.setRenderFunction("render"); this.view.setApplicationContext(this.wac); engine = this.view.getEngine(); assertNotNull(engine); assertEquals("value", engine.get("key")); DirectFieldAccessor accessor = new DirectFieldAccessor(this.view); assertNull(accessor.getPropertyValue("renderObject")); assertEquals("render", accessor.getPropertyValue("renderFunction")); assertEquals(StandardCharsets.UTF_8, accessor.getPropertyValue("charset")); }