/* * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. * * Redistribution and use in source and binary forms, with or without modification, are * permitted provided that the following conditions are met: Redistributions of source code * must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of * conditions and the following disclaimer in the documentation and/or other materials * provided with the distribution. Neither the name of the Sun Microsystems nor the names of * is contributors may be used to endorse or promote products derived from this software * without specific prior written permission. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ package com.sun.script.jruby.test; import java.io.FileNotFoundException; import java.io.FileReader; import java.util.ArrayList; import java.util.List; import javax.script.Bindings; import javax.script.ScriptContext; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; import javax.script.SimpleScriptContext; /** * EvalTest.java * @author Yoko Harada */ public class EvalTest { public static void main(String[] args) throws FileNotFoundException, ScriptException { String basedir = System.getProperty("base.dir"); ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("jruby"); //give global varibales to runime by context in the super class engine.put("who", new String("Ichiro")); List<String> people = new ArrayList<String>(); people.add("Julia"); people.add("Johnny"); engine.put("people", people); engine.eval(new FileReader(basedir+"/src/main/ruby/greetings.rb")); //give global variables to runtime by Bindings Bindings bindings = engine.createBindings(); bindings.put("who", new String("Harry")); people.add("Keira"); people.add("Keith"); bindings.put("people", people); engine.eval(new FileReader(basedir+"/src/main/ruby/greetings.rb"), bindings); //give global varibales to runtime by context created SimpleScriptContext context = new SimpleScriptContext(); context.setAttribute("who", new String("George"), ScriptContext.ENGINE_SCOPE); people.add("Luke"); people.add("Lindsay"); context.setAttribute("people", people, ScriptContext.ENGINE_SCOPE); engine.eval(new FileReader(basedir+"/src/main/ruby/greetings.rb"), context); String script = "puts \"Good evening, #{$who}.\";"+ "print \"Hello\", $people;" + "print \"#{$people.size + 1} in total.\""; //give global varibales to runime by context in the super class engine.put("who", new String("Fred")); people.add("Matt"); people.add("Mariah"); engine.eval(new String(script)); //give global variables to runtime by Bindings bindings.put("who", new String("Elliott")); people.add("Nicole"); people.add("Nicolas"); engine.eval(new String(script), bindings); //give global varibales to runtime by context created context.setAttribute("who", new String("Drew"), ScriptContext.ENGINE_SCOPE); people.add("Olivia"); people.add("Orlando"); engine.eval(new String(script), context); } }