1 package org.jruby.demo; 2 3 import java.applet.Applet ; 4 import java.io.IOException ; 5 import java.io.PipedInputStream ; 6 import java.io.PipedOutputStream ; 7 import java.io.PrintStream ; 8 import java.util.ArrayList ; 9 10 import org.jruby.Ruby; 11 import org.jruby.RubyInstanceConfig; 12 13 public class DOMScriptingApplet extends Applet { 14 15 public void start() { 16 super.start(); 17 18 try { 19 final PipedInputStream pipeIn = new PipedInputStream (); 20 final PipedOutputStream out = new PipedOutputStream (pipeIn); 21 final PipedInputStream in = new PipedInputStream (); 22 final PipedOutputStream pipeOut = new PipedOutputStream (in); 23 final RubyInstanceConfig config = new RubyInstanceConfig() {{ 24 setInput(pipeIn); 25 setOutput(new PrintStream (pipeOut)); 26 setError(new PrintStream (pipeOut)); 27 setObjectSpaceEnabled(false); 28 }}; 29 final Ruby runtime = Ruby.newInstance(config); 30 31 runtime.defineGlobalConstant("ARGV", runtime.newArray()); 32 runtime.getLoadService().init(new ArrayList (0)); 34 35 final String script = getParameter("script"); 36 37 Thread t2 = new Thread () { 38 public void run() { 39 runtime.evalScript(script); 40 } 41 }; 42 t2.start(); 43 } catch (IOException ioe) { 44 ioe.printStackTrace(); 45 } 46 } 47 48 51 private static final long serialVersionUID = 3746242973444417387L; 52 53 } 54 | Popular Tags |