/** * create bindings for script engine */ private <T> Bindings createBindings(List<Invoker<T>> invokers, Invocation invocation) { Bindings bindings = engine.createBindings(); // create a new List of invokers bindings.put("invokers", new ArrayList<>(invokers)); bindings.put("invocation", invocation); bindings.put("context", RpcContext.getContext()); return bindings; }
/** * create bindings for script engine */ private <T> Bindings createBindings(List<Invoker<T>> invokers, Invocation invocation) { Bindings bindings = engine.createBindings(); // create a new List of invokers bindings.put("invokers", new ArrayList<>(invokers)); bindings.put("invocation", invocation); bindings.put("context", RpcContext.getContext()); return bindings; }
public void bind(String name, Object obj) { bindings.put(name, obj); } public Object unbind(String name) {
protected ClojureScriptEngine(ScriptEngineFactory scriptEngineFactory) { this.scriptEngineFactory = scriptEngineFactory; // Set up the engine bindings Bindings engineScope = getBindings(ScriptContext.ENGINE_SCOPE); engineScope.put(ENGINE, ENGINE_NAME); engineScope.put(ENGINE_VERSION, ENGINE_VERSION); engineScope.put(NAME, ENGINE_NAME); engineScope.put(LANGUAGE, ENGINE_NAME); engineScope.put(LANGUAGE_VERSION, ENGINE_VERSION); }
protected Map<String,String> parseJsonResponse(String json) throws ScriptException { synchronized (scriptEngineLock) { if (scriptEngine == null) { scriptEngine = new ScriptEngineManager().getEngineByName("JavaScript"); if (scriptEngine == null) { throw new RuntimeException("Failed to load JavaScript script engine"); } } Bindings bindings = new SimpleBindings(); bindings.put("json", json); return (Map<String, String>)scriptEngine.eval(JSON_RESPONSE_PARSING_SCRIPT, bindings); } } }
private Bindings createBindings(ExtensionContext context) { ScriptAccessor configurationParameterAccessor = new ScriptAccessor.ConfigurationParameterAccessor(context); Bindings bindings = new SimpleBindings(); bindings.put(Script.BIND_JUNIT_TAGS, context.getTags()); bindings.put(Script.BIND_JUNIT_UNIQUE_ID, context.getUniqueId()); bindings.put(Script.BIND_JUNIT_DISPLAY_NAME, context.getDisplayName()); bindings.put(Script.BIND_JUNIT_CONFIGURATION_PARAMETER, configurationParameterAccessor); return bindings; }
public static Object eval(String script, Object input) throws ScriptException { Bindings bindings = engine.createBindings(); bindings.put("$", input); return engine.eval(script, bindings); } }
public Object put(String name, Object value) { if (storeScriptVariables) { Object oldValue = null; if (!UNSTORED_KEYS.contains(name)) { oldValue = variableScope.getVariable(name); variableScope.setVariable(name, value); return oldValue; } } return defaultBindings.put(name, value); }
@SuppressWarnings("unchecked") @Override public <T> T getElValue(String exp, Object target, Object[] arguments, Object retVal, boolean hasRetVal, Class<T> valueType) throws Exception { Bindings bindings = new SimpleBindings(); bindings.put(TARGET, target); bindings.put(ARGS, arguments); if (hasRetVal) { bindings.put(RET_VAL, retVal); } CompiledScript script = expCache.get(exp); if (null != script) { return (T) script.eval(bindings); } if (engine instanceof Compilable) { Compilable compEngine = (Compilable) engine; script = compEngine.compile(funcs + exp); expCache.put(exp, script); return (T) script.eval(bindings); } else { return (T) engine.eval(funcs + exp, bindings); } }
ScriptEngine createScriptEngine(String engine) { ScriptEngine scriptEngine = scriptEngineManager.getEngineByName(engine); if (scriptEngine == null) { scriptEngine = scriptEngineManager.getEngineByExtension(engine); } if (scriptEngine == null) { scriptEngine = scriptEngineManager.getEngineByMimeType(engine); } Preconditions.notNull(scriptEngine, () -> "Script engine not found: " + engine); Bindings bindings = scriptEngine.getBindings(ScriptContext.GLOBAL_SCOPE); bindings.put(Script.BIND_SYSTEM_PROPERTY, systemPropertyAccessor); bindings.put(Script.BIND_SYSTEM_ENVIRONMENT, environmentVariableAccessor); return scriptEngine; }
jsscope.put( jsScripts[i].getScriptName(), jsScripts[i].getScript() ); for ( int i = 0; i < getAddClasses().length; i++ ) { jsscope.put( getAddClasses()[i].getJSName(), getAddClasses()[i].getAddObject() ); jsscope.put( "SKIP_TRANSFORMATION", Integer.valueOf( Script.SKIP_TRANSFORMATION ) ); jsscope.put( "ABORT_TRANSFORMATION", Integer.valueOf( Script.ABORT_TRANSFORMATION ) ); jsscope.put( "ERROR_TRANSFORMATION", Integer.valueOf( Script.ERROR_TRANSFORMATION ) ); jsscope.put( "CONTINUE_TRANSFORMATION", Integer.valueOf( Script.CONTINUE_TRANSFORMATION ) ); } catch ( Exception ex ) { error_message = "Couldn't add Transformation Constants! Error:" + Const.CR + ex.toString(); jsscope.put( "_step_", dummyStep ); jsscope.put( "rowMeta", prev ); for ( int i = 0; i < prev.size(); i++ ) { ValueMetaInterface valueMeta = prev.getValueMeta( i ); jsscope.put( valueMeta.getName(), valueData ); jsscope.put( "Value", Value.class ); jsscope.put( "row", row ); } catch ( Exception ev ) { error_message = "Couldn't add Input fields to Script! Error:" + Const.CR + ev.toString();
data.scope.put( "_step_", this ); data.scope.put( jsScripts[ i ].getScriptName(), jsScripts[ i ].getScript() ); data.scope.put( "_TransformationName_", this.getStepname() ); data.scope.put( "row", row ); data.scope.put( valueMeta.getName(), normalStorageValueData ); data.scope.put( "rowMeta", rowMeta ); for ( int i = 0; i < meta.getAddClasses().length; i++ ) { data.scope.put( meta.getAddClasses()[ i ].getJSName(), meta.getAddClasses()[ i ].getAddObject() ); data.scope.put( "SKIP_TRANSFORMATION", Integer.valueOf( SKIP_TRANSFORMATION ) ); data.scope.put( "ABORT_TRANSFORMATION", Integer.valueOf( ABORT_TRANSFORMATION ) ); data.scope.put( "ERROR_TRANSFORMATION", Integer.valueOf( ERROR_TRANSFORMATION ) ); data.scope.put( "CONTINUE_TRANSFORMATION", Integer.valueOf( CONTINUE_TRANSFORMATION ) ); data.scope.put( "row", row ); data.scope.put( valueMeta.getName(), normalStorageValueData ); data.scope.put( "rowMeta", rowMeta ); } catch ( Exception e ) { throw new KettleValueException( BaseMessages.getString( PKG, "Script.Log.UnexpectedeError" ), e );
@SuppressWarnings("deprecation") private void putConnector(Bindings b, AccumuloClient client) { try { b.put("connection", org.apache.accumulo.core.client.Connector.from(client)); } catch (AccumuloSecurityException | AccumuloException e) { throw new RuntimeException(e); } }
public Object apply(final Object a) { try { final Bindings bindings = new SimpleBindings(); bindings.put(A, a); return this.engine.eval(this.script, bindings); } catch (final ScriptException e) { throw new IllegalArgumentException(e.getMessage()); } }
public Object put(String name, Object value) { if(autoStoreScriptVariables) { if (!UNSTORED_KEYS.contains(name)) { Object oldValue = variableScope.getVariable(name); variableScope.setVariable(name, value); return oldValue; } } return wrappedBindings.put(name, value); }
public Object put(String name, Object value) { if(autoStoreScriptVariables) { if (!UNSTORED_KEYS.contains(name)) { Object oldValue = variableScope.getVariable(name); variableScope.setVariable(name, value); return oldValue; } } return wrappedBindings.put(name, value); }
@Test public void shouldAddLazyGlobalBindingsViaPlugin() throws Exception { final Bindings bindings = new SimpleBindings(); bindings.put("x", 100); final BindingsGremlinPlugin plugin = new BindingsGremlinPlugin(() -> bindings); final DefaultGremlinScriptEngineManager manager = new DefaultGremlinScriptEngineManager(); manager.addPlugin(plugin); final GremlinScriptEngine engine = manager.getEngineByName(ENGINE_TO_TEST); assertThat(engine.getBindings(ScriptContext.GLOBAL_SCOPE).size(), is(1)); assertEquals(101, (int) engine.eval("x+1")); }