From 7c2f5fb4f80c3024c674c417799a2dc295a9bd03 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Wed, 28 Mar 2012 17:08:58 +0200 Subject: Migrate from BSF to javax.script. Update Mozilla Rhino JS engine. Removed some 'auto-generated' comments from intentionally blank methods. Other whitespace/comment cleanup. --- source/com/c2kernel/scripting/ScriptConsole.java | 48 ++++++++++-------------- 1 file changed, 20 insertions(+), 28 deletions(-) (limited to 'source/com/c2kernel/scripting/ScriptConsole.java') diff --git a/source/com/c2kernel/scripting/ScriptConsole.java b/source/com/c2kernel/scripting/ScriptConsole.java index 99ad90f..2876f4c 100644 --- a/source/com/c2kernel/scripting/ScriptConsole.java +++ b/source/com/c2kernel/scripting/ScriptConsole.java @@ -11,20 +11,16 @@ import java.net.UnknownHostException; import java.util.ArrayList; import java.util.StringTokenizer; -import org.omg.CORBA.ORB; +import javax.script.Bindings; +import javax.script.ScriptEngine; +import javax.script.ScriptEngineManager; + import org.tanukisoftware.wrapper.WrapperManager; -import com.c2kernel.entity.proxy.AgentProxy; -import com.c2kernel.entity.proxy.EntityProxyManager; -import com.c2kernel.lookup.LDAPLookup; -import com.c2kernel.persistency.TransactionManager; import com.c2kernel.process.Gateway; import com.c2kernel.utils.Logger; import com.c2kernel.utils.Resource; import com.c2kernel.utils.server.SocketHandler; -import com.ibm.bsf.BSFEngine; -import com.ibm.bsf.BSFException; -import com.ibm.bsf.BSFManager; /************************************************************************** * @@ -41,8 +37,8 @@ public class ScriptConsole implements SocketHandler { BufferedReader input; PrintStream output; Socket socket = null; - BSFManager manager; - BSFEngine context; + ScriptEngine engine; + Bindings beans; static ArrayList securityHosts = new ArrayList(); public static final short NONE = 0; public static final short ALLOW = 1; @@ -143,25 +139,21 @@ public class ScriptConsole implements SocketHandler { // get system objects try { Logger.addLogStream(output, 0); + + engine = new ScriptEngineManager().getEngineByName("JavaScript"); + beans = engine.createBindings(); + beans.put("storage", Gateway.getStorage()); + beans.put("db", Gateway.getStorage().getDb()); + beans.put("proxy", Gateway.getProxyManager()); + beans.put("lookup", Gateway.getLDAPLookup()); + beans.put("orb", Gateway.getORB()); try { - manager = new BSFManager(); - manager.declareBean("storage", Gateway.getStorage(), TransactionManager.class); - manager.declareBean("db", Gateway.getStorage().getDb(), TransactionManager.class); - manager.declareBean("proxy", Gateway.getProxyManager(), EntityProxyManager.class); - manager.declareBean("lookup", Gateway.getLDAPLookup(), LDAPLookup.class); - manager.declareBean("orb", Gateway.getORB(), ORB.class); - try { - manager.declareBean("system", Gateway.getProxyManager().getProxy( - Gateway.getLDAPLookup().getRoleManager().getAgentPath("system")), AgentProxy.class); - } catch (Exception ex) { - output.println("System agent unavailable"); - } - context = manager.loadScriptingEngine("javascript"); - } catch (BSFException ex) { - output.println("Error initialising environment objects"); - output.flush(); - shutdown(); + beans.put("system", Gateway.getProxyManager().getProxy( + Gateway.getLDAPLookup().getRoleManager().getAgentPath("system"))); + } catch (Exception ex) { + output.println("System agent unavailable"); } + StringBuffer commandBuffer = new StringBuffer(); while (socket != null) { @@ -217,7 +209,7 @@ public class ScriptConsole implements SocketHandler { WrapperManager.stop(0); } else { - Object response = context.eval("Command", 0, 0, command); + Object response = engine.eval(command, beans); if (response instanceof org.mozilla.javascript.Undefined) output.println("Ok"); else -- cgit v1.2.3