summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/scripting/ScriptConsole.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/c2kernel/scripting/ScriptConsole.java')
-rw-r--r--src/main/java/com/c2kernel/scripting/ScriptConsole.java50
1 files changed, 17 insertions, 33 deletions
diff --git a/src/main/java/com/c2kernel/scripting/ScriptConsole.java b/src/main/java/com/c2kernel/scripting/ScriptConsole.java
index 826ab88..9b70641 100644
--- a/src/main/java/com/c2kernel/scripting/ScriptConsole.java
+++ b/src/main/java/com/c2kernel/scripting/ScriptConsole.java
@@ -13,13 +13,12 @@ import java.util.StringTokenizer;
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.process.Gateway;
import com.c2kernel.utils.Logger;
-import com.c2kernel.utils.Resource;
import com.c2kernel.utils.server.SocketHandler;
/**************************************************************************
@@ -139,19 +138,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());
+ AgentProxy user = Gateway.getCurrentUser();
try {
- beans.put("system", Gateway.getProxyManager().getProxy(
- Gateway.getLDAPLookup().getRoleManager().getAgentPath("system")));
+ if (user == null) user = (AgentProxy)Gateway.getProxyManager().getProxy(
+ Gateway.getLDAPLookup().getRoleManager().getAgentPath("system"));
+ } catch (Exception ex) {
+ output.println("System agent unavailable");
+ }
+ Script context;
+ try {
+ context = new Script("javascript", user, output);
} catch (Exception ex) {
- output.println("System agent unavailable");
+ output.println("Error initializing console script context");
+ ex.printStackTrace(output);
+ shutdown();
+ return;
}
StringBuffer commandBuffer = new StringBuffer();
@@ -176,24 +177,6 @@ public class ScriptConsole implements SocketHandler {
shutdown();
continue;
}
- else if(command.startsWith("log")) {
- try {
- int newLogLevel = Integer.parseInt(command.substring(4));
- Logger.removeLogStream(output);
- Logger.addLogStream(output, newLogLevel);
- Logger.msg("Log level for "+socket.getInetAddress()+" set to "+newLogLevel);
- continue;
- } catch (NumberFormatException ex) { }
- }
- else if(command.equals("help")) {
- output.println(Resource.findTextResource("textFiles/consoleHelp.txt"));
- continue;
- }
- else if(command.equals("version")) {
- output.println("Kernel version: "+Resource.getKernelVersion());
- output.println("Modules loaded: "+Gateway.getModuleManager().getModuleVersions());
- continue;
- }
try {
if (command.endsWith("\\")) {
commandBuffer.append(command.substring(0,command.length()-1));
@@ -206,10 +189,11 @@ public class ScriptConsole implements SocketHandler {
// process control
if (command.equals("shutdown")) {
- WrapperManager.stop(0);
+ WrapperManager.stop(0);
}
else {
- Object response = engine.eval(command, beans);
+ context.setScript(command);
+ Object response = context.execute();
if (response == null)
output.println("Ok");
else