31 import javax.script.*; 32 33 public class Test5 { 34 public static void main(String[] args) throws Exception { 35 System.out.println("\nTest5\n"); 36 ScriptEngineManager m = new ScriptEngineManager(); 37 ScriptEngine engine = Helper.getJsEngine(m); 38 if (engine == null) { 39 System.out.println("Warning: No js engine found; test vacuously passes."); 40 return; 41 } 42 Bindings g = new SimpleBindings(); 43 Bindings e = new SimpleBindings(); 44 g.put("key", "value in global"); 45 e.put("key", "value in engine"); 46 ScriptContext ctxt = new SimpleScriptContext(); 47 ctxt.setBindings(e, ScriptContext.ENGINE_SCOPE); 48 System.out.println("engine scope only"); 49 e.put("count", new Integer(1)); 50 51 Reader reader = new FileReader( 52 new File(System.getProperty("test.src", "."), "Test5.js")); 53 engine.eval(reader,ctxt); 54 System.out.println("both scopes"); 55 ctxt.setBindings(g, ScriptContext.GLOBAL_SCOPE); 56 e.put("count", new Integer(2)); 57 engine.eval(reader,ctxt); 58 System.out.println("only global"); 59 e.put("count", new Integer(3)); 60 ctxt.setAttribute("key", null, ScriptContext.ENGINE_SCOPE); 61 engine.eval(reader,ctxt); 62 } 63 } | 31 import javax.script.*; 32 33 public class Test5 { 34 public static void main(String[] args) throws Exception { 35 System.out.println("\nTest5\n"); 36 ScriptEngineManager m = new ScriptEngineManager(); 37 ScriptEngine engine = Helper.getJsEngine(m); 38 if (engine == null) { 39 System.out.println("Warning: No js engine found; test vacuously passes."); 40 return; 41 } 42 Bindings g = new SimpleBindings(); 43 Bindings e = new SimpleBindings(); 44 g.put("key", "value in global"); 45 e.put("key", "value in engine"); 46 ScriptContext ctxt = new SimpleScriptContext(); 47 ctxt.setBindings(e, ScriptContext.ENGINE_SCOPE); 48 System.out.println("engine scope only"); 49 e.put("count", new Integer(1)); 50 51 try (Reader reader = new FileReader( 52 new File(System.getProperty("test.src", "."), "Test5.js"))) { 53 engine.eval(reader,ctxt); 54 } 55 56 System.out.println("both scopes"); 57 ctxt.setBindings(g, ScriptContext.GLOBAL_SCOPE); 58 e.put("count", new Integer(2)); 59 try (Reader reader = new FileReader( 60 new File(System.getProperty("test.src", "."), "Test5.js"))) { 61 engine.eval(reader,ctxt); 62 } 63 System.out.println("only global"); 64 e.put("count", new Integer(3)); 65 ctxt.removeAttribute("key", ScriptContext.ENGINE_SCOPE); 66 try (Reader reader = new FileReader( 67 new File(System.getProperty("test.src", "."), "Test5.js"))) { 68 engine.eval(reader,ctxt); 69 } 70 } 71 } |