diff options
| author | Andrew Branson <andrew.branson@cern.ch> | 2012-03-28 17:08:58 +0200 |
|---|---|---|
| committer | Andrew Branson <andrew.branson@cern.ch> | 2012-03-28 17:08:58 +0200 |
| commit | 7c2f5fb4f80c3024c674c417799a2dc295a9bd03 (patch) | |
| tree | dac026b511a5885f0f0aa8061a537a08c07baa4e /source/com/c2kernel | |
| parent | 138577d60b2612c7cbe48a44d43fec548b20fac8 (diff) | |
Migrate from BSF to javax.script. Update Mozilla Rhino JS engine.
Removed some 'auto-generated' comments from intentionally blank methods.
Other whitespace/comment cleanup.
Diffstat (limited to 'source/com/c2kernel')
7 files changed, 54 insertions, 75 deletions
diff --git a/source/com/c2kernel/gui/tabs/CollectionPane.java b/source/com/c2kernel/gui/tabs/CollectionPane.java index a8abfcd..4d9092e 100644 --- a/source/com/c2kernel/gui/tabs/CollectionPane.java +++ b/source/com/c2kernel/gui/tabs/CollectionPane.java @@ -105,7 +105,5 @@ public class CollectionPane extends EntityTabPane implements EntityProxyObserver @Override
public void control(String control, String msg) {
- // TODO Auto-generated method stub
-
}
}
diff --git a/source/com/c2kernel/gui/tabs/collection/CollectionHistoryWindow.java b/source/com/c2kernel/gui/tabs/collection/CollectionHistoryWindow.java index 0f3cc76..ee168b0 100644 --- a/source/com/c2kernel/gui/tabs/collection/CollectionHistoryWindow.java +++ b/source/com/c2kernel/gui/tabs/collection/CollectionHistoryWindow.java @@ -150,8 +150,6 @@ public class CollectionHistoryWindow extends JFrame { public void remove(String id) { }
@Override
public void control(String control, String msg) {
- // TODO Auto-generated method stub
-
}
}
diff --git a/source/com/c2kernel/gui/tabs/collection/DependencyView.java b/source/com/c2kernel/gui/tabs/collection/DependencyView.java index 734d315..e068bdc 100644 --- a/source/com/c2kernel/gui/tabs/collection/DependencyView.java +++ b/source/com/c2kernel/gui/tabs/collection/DependencyView.java @@ -30,6 +30,5 @@ public class DependencyView extends CollectionView<DependencyMember> // TODO: design a nice dependency view, with property viewing and modification
add(new JLabel("Dependency view not yet implemented. Please browse the tree instead."));
}
-
-
+
}
diff --git a/source/com/c2kernel/gui/tabs/outcome/form/field/ComboField.java b/source/com/c2kernel/gui/tabs/outcome/form/field/ComboField.java index 62a900f..2c4ce05 100644 --- a/source/com/c2kernel/gui/tabs/outcome/form/field/ComboField.java +++ b/source/com/c2kernel/gui/tabs/outcome/form/field/ComboField.java @@ -103,7 +103,7 @@ public class ComboField extends StringEditField { * @param param
*/
private void populateLOVFromLDAP(String param) {
- // TODO '/root/path;prop=val;prop=val'
+ // TODO List of Values from LDAP properties, eg '/root/path;prop=val;prop=val'
}
diff --git a/source/com/c2kernel/scripting/Script.java b/source/com/c2kernel/scripting/Script.java index c056e95..ad98eb4 100644 --- a/source/com/c2kernel/scripting/Script.java +++ b/source/com/c2kernel/scripting/Script.java @@ -4,6 +4,9 @@ import java.io.StringReader; import java.util.ArrayList;
import java.util.HashMap;
+import javax.script.Bindings;
+import javax.script.ScriptEngine;
+import javax.script.ScriptEngineManager;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
@@ -19,8 +22,6 @@ import com.c2kernel.entity.proxy.AgentProxy; import com.c2kernel.entity.proxy.ItemProxy;
import com.c2kernel.utils.LocalObjectLoader;
import com.c2kernel.utils.Logger;
-import com.ibm.bsf.BSFException;
-import com.ibm.bsf.BSFManager;
/**************************************************************************
*
@@ -37,11 +38,11 @@ public class Script String mScript = "";
String mName;
String mVersion;
- String mLang;
HashMap<String, Parameter> mInputParams = new HashMap<String, Parameter>();
HashMap<String, Parameter> mAllInputParams = new HashMap<String, Parameter>();
ArrayList<Script> mIncludes = new ArrayList<Script>();
- BSFManager scriptManager;
+ ScriptEngine engine;
+ Bindings beans;
/**
* Loads script xml and parses it for script source, parameters and output specifications.
@@ -54,29 +55,29 @@ public class Script * @param scriptVersion - named version of the script (must be numbered viewpoint)
* @throws ScriptParsingException - when script not found (ScriptLoadingException) or xml is invalid (ScriptParsingException)
*/
- public Script(String scriptName, int scriptVersion) throws ScriptingEngineException
+ public Script(String scriptName, int scriptVersion, Bindings context) throws ScriptingEngineException
{
- this(scriptName, scriptVersion, new BSFManager());
- }
+ this(scriptName, scriptVersion);
+ beans = context;
- public Script(String scriptName, int scriptVersion, BSFManager scriptManager) throws ScriptingEngineException
+ }
+
+ public Script(String scriptName, int scriptVersion) throws ScriptingEngineException
{
mName = scriptName;
mVersion = String.valueOf(scriptVersion);
- if (scriptName.equals("")) return;
- setScriptEnv(scriptManager);
- setScript(mName, mVersion);
+ if (!scriptName.equals(""))
+ setScript(mName, mVersion);
}
/**
* Creates a script executor for the supplied expression, bypassing the xml parsing bit
* Output class is forced to an object.
*/
- public Script(String lang, String expr, BSFManager scriptManager, Class<?> returnType) throws ScriptingEngineException
+ public Script(String lang, String expr, Class<?> returnType) throws ScriptingEngineException
{
- setScriptEnv(scriptManager);
mName = "<expr>";
- mLang = lang;
+ setScriptEngine(lang);
mVersion = "";
mOutputClass = returnType;
mScript = expr;
@@ -84,12 +85,7 @@ public class Script public Script(String lang, String expr) throws ScriptingEngineException
{
- this(lang, expr, new BSFManager(), Object.class);
- }
-
- public Script(String lang, String expr, Class<?> returnType) throws ScriptingEngineException
- {
- this(lang, expr, new BSFManager(), returnType);
+ this(lang, expr, Object.class);
}
public Script(ItemProxy object, AgentProxy subject, Job job) throws ScriptingEngineException
@@ -108,6 +104,11 @@ public class Script setOutput("errors", "com.c2kernel.scripting.ErrorInfo");
}
+ public void setScriptEngine(String lang) {
+ engine = new ScriptEngineManager().getEngineByName(lang);
+ beans = engine.createBindings();
+ }
+
public void setScript(String scriptName, String scriptVersion) throws ScriptingEngineException
{
try
@@ -122,10 +123,6 @@ public class Script }
}
- public void setScriptEnv(BSFManager manager) {
- this.scriptManager = manager;
- }
-
/**
* Extracts script data from script xml.
*
@@ -193,7 +190,7 @@ public class Script String includeName = currentParam.getAttribute("name");
String includeVersion = currentParam.getAttribute("version");
try {
- Script includedScript = new Script(includeName, Integer.parseInt(includeVersion), scriptManager);
+ Script includedScript = new Script(includeName, Integer.parseInt(includeVersion), beans);
mIncludes.add(includedScript);
for (Parameter includeParam : includedScript.getInputParams().values()) {
addIncludedInputParam(includeParam.getName(), includeParam.getType());
@@ -212,7 +209,7 @@ public class Script if (!currentParam.hasAttribute("language"))
throw new ScriptParsingException("Script data incomplete, must have language");
Logger.msg(6, "Script.parseScriptXML() - Script Language: " + currentParam.getAttribute("language"));
- mLang = currentParam.getAttribute("language");
+ setScriptEngine(currentParam.getAttribute("language"));
// get script source
NodeList scriptChildNodes = currentParam.getChildNodes();
@@ -294,7 +291,7 @@ public class Script {
Logger.msg(8, "Script.setOutput() - Initialising output bean '" + mOutputName + "'");
Object emptyObject = mOutputClass.newInstance();
- scriptManager.declareBean(mOutputName, emptyObject, mOutputClass);
+ beans.put(mOutputName, emptyObject);
}
catch (Exception ex)
{
@@ -342,13 +339,9 @@ public class Script if (value.getClass() != param.getType())
throw new ParameterException(
"Parameter " + name + " is wrong type \n" + "Required: " + param.getType().toString() + "\n" + "Supplied: " + value.getClass().toString());
- try {
- scriptManager.declareBean(name, value, param.getType());
- Logger.msg(7, "Script.setInputParamValue() - " + name + ": " + value.toString());
- param.setInitialised(true);
- } catch (BSFException ex) {
- throw new ParameterException("Error initialising parameter '"+name+"' - "+ex.getMessage());
- }
+ beans.put(name, value);
+ Logger.msg(7, "Script.setInputParamValue() - " + name + ": " + value.toString());
+ param.setInitialised(true);
}
// pass param down to child scripts
@@ -394,13 +387,14 @@ public class Script try
{
Logger.msg(7, "Script.execute() - Executing script");
- scriptManager.setDebug(Logger.doLog(8));
- returnValue = scriptManager.eval(mLang, mName, 0, 0, mScript);
+ if (engine == null)
+ throw new ScriptingEngineException("Script engine not set. Cannot execute scripts.");
+ returnValue = engine.eval(mScript, beans);
Logger.msg(8, "Script.execute() - script returned \"" + returnValue + "\"");
if (mOutputName != null)
{
// retrieve the value from the registered output bean
- outputValue = scriptManager.lookupBean(mOutputName);
+ outputValue = engine.get(mOutputName);
Logger.msg(8, "Script.execute() - output bean value: \"" + outputValue + "\"");
}
}
@@ -432,6 +426,6 @@ public class Script {
for (Parameter parameter : mInputParams.values())
parameter.setInitialised(false);
- scriptManager = new BSFManager();
+ beans = engine.createBindings();
}
}
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<String> securityHosts = new ArrayList<String>();
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
diff --git a/source/com/c2kernel/utils/ActDefCache.java b/source/com/c2kernel/utils/ActDefCache.java index 2982aa3..0c9fea1 100644 --- a/source/com/c2kernel/utils/ActDefCache.java +++ b/source/com/c2kernel/utils/ActDefCache.java @@ -93,8 +93,6 @@ public class ActDefCache { }
@Override
public void control(String control, String msg) {
- // TODO Auto-generated method stub
-
}
}
}
\ No newline at end of file |
