summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/c2kernel/entity/agent/Job.java17
-rw-r--r--src/main/java/com/c2kernel/lookup/RolePath.java2
-rw-r--r--src/main/java/com/c2kernel/persistency/XMLClusterStorage.java2
-rw-r--r--src/main/java/com/c2kernel/process/Bootstrap.java34
-rw-r--r--src/main/java/com/c2kernel/process/ClientShell.java4
-rw-r--r--src/main/java/com/c2kernel/process/Gateway.java21
-rw-r--r--src/main/java/com/c2kernel/process/UserCodeProcess.java2
-rw-r--r--src/main/java/com/c2kernel/process/module/ModuleManager.java5
-rw-r--r--src/main/java/com/c2kernel/scripting/ScriptConsole.java4
-rw-r--r--src/main/java/com/c2kernel/utils/ObjectProperties.java40
10 files changed, 69 insertions, 62 deletions
diff --git a/src/main/java/com/c2kernel/entity/agent/Job.java b/src/main/java/com/c2kernel/entity/agent/Job.java
index fe2084d..13bd268 100644
--- a/src/main/java/com/c2kernel/entity/agent/Job.java
+++ b/src/main/java/com/c2kernel/entity/agent/Job.java
@@ -349,15 +349,16 @@ public class Job implements C2KLocalObject
synchronized (ocInitCache) {
ocInit = ocInitCache.get(ocPropName);
if (ocInit == null) {
- Object ocInitObj = Gateway.getProperties().get(ocPropName);
- if (ocInitObj instanceof String) {
- try {
- ocInitObj = Class.forName((String)ocInitObj).newInstance();
- } catch (Exception e) {
- Logger.error(e);
- throw new InvalidDataException("Could not instantiate OutcomeInstantiator "+ocInitObj+" for "+ocPropName);
- }
+ Object ocInitObj;
+ if (!Gateway.getProperties().containsKey(ocPropName)) {
+ throw new InvalidDataException("Outcome instantiator "+ocPropName+" isn't defined", "");
}
+ try {
+ ocInitObj = Gateway.getProperties().getInstance(ocPropName);
+ } catch (Exception e) {
+ Logger.error(e);
+ throw new InvalidDataException("Outcome instantiator "+ocPropName+" couldn't be instantiated", "");
+ }
ocInit = (OutcomeInitiator)ocInitObj; // throw runtime class cast if it isn't one
ocInitCache.put(ocPropName, ocInit);
}
diff --git a/src/main/java/com/c2kernel/lookup/RolePath.java b/src/main/java/com/c2kernel/lookup/RolePath.java
index fa37fb3..9f9c597 100644
--- a/src/main/java/com/c2kernel/lookup/RolePath.java
+++ b/src/main/java/com/c2kernel/lookup/RolePath.java
@@ -61,7 +61,7 @@ public class RolePath extends DomainPath
@Override
- public void checkType() {
+ protected void checkType() {
mType = CONTEXT;
}
diff --git a/src/main/java/com/c2kernel/persistency/XMLClusterStorage.java b/src/main/java/com/c2kernel/persistency/XMLClusterStorage.java
index 8f01d8e..d3ee503 100644
--- a/src/main/java/com/c2kernel/persistency/XMLClusterStorage.java
+++ b/src/main/java/com/c2kernel/persistency/XMLClusterStorage.java
@@ -19,7 +19,7 @@ public class XMLClusterStorage extends ClusterStorage {
@Override
public void open(Authenticator auth) throws ClusterStorageException {
- String rootProp = Gateway.getProperties().getProperty("XMLStorage.root");
+ String rootProp = Gateway.getProperties().getString("XMLStorage.root");
if (rootProp == null)
throw new ClusterStorageException("XMLClusterStorage.open() - Root path not given in config file.");
diff --git a/src/main/java/com/c2kernel/process/Bootstrap.java b/src/main/java/com/c2kernel/process/Bootstrap.java
index 3b61ad3..0f06616 100644
--- a/src/main/java/com/c2kernel/process/Bootstrap.java
+++ b/src/main/java/com/c2kernel/process/Bootstrap.java
@@ -224,21 +224,17 @@ public class Bootstrap
private static ResourceImportHandler getHandler(String resType) throws Exception {
if (resHandlerCache.containsKey(resType))
return resHandlerCache.get(resType);
- ResourceImportHandler handler;
- Object handlerProp = Gateway.getProperties().get("ResourceImportHandler."+resType);
- if (handlerProp instanceof ResourceImportHandler)
- handler = (ResourceImportHandler)handlerProp;
- else if (handlerProp instanceof String) { //class name
+ ResourceImportHandler handler = null;
+ if (Gateway.getProperties().containsKey("ResourceImportHandler."+resType)) {
try {
- Class<?> handlerClass = Class.forName((String)handlerProp);
- handler = (ResourceImportHandler) handlerClass.newInstance();
- } catch (ClassNotFoundException e) {
- throw new Exception("Handler class "+handlerProp+" for importing "+resType+" resources not found");
- } catch (ClassCastException e) {
- throw new Exception(handlerProp+" for importing "+resType+" was not a ResourceImportHandler");
- }
+ handler = (ResourceImportHandler) Gateway.getProperties().getInstance("ResourceImportHandler."+resType);
+ } catch (Exception ex) {
+ Logger.error(ex);
+ Logger.error("Exception loading ResourceHandler for "+resType+". Using default.");
+ }
}
- else
+
+ if (handler == null)
handler = new DefaultResourceImportHandler(resType);
resHandlerCache.put(resType, handler);
@@ -327,7 +323,7 @@ public class Bootstrap
*/
public static void checkAdminAgents() throws Exception {
// check for administrative user
- String adminPassword = Gateway.getProperties().getProperty("AdminPassword", "admin12345");
+ String adminPassword = Gateway.getProperties().getString("AdminPassword", "admin12345");
// check for import user
checkAgent("system", adminPassword, "Admin", new UUID(0, 0), false);
@@ -340,7 +336,7 @@ public class Bootstrap
public static void createServerItem() throws Exception {
LookupManager lookupManager = Gateway.getLookupManager();
- String serverName = Gateway.getProperties().getProperty("ItemServer.name");
+ String serverName = Gateway.getProperties().getString("ItemServer.name", InetAddress.getLocalHost().getHostName());
thisServerPath = new DomainPath("/servers/"+serverName);
ItemPath serverEntity;
try {
@@ -356,12 +352,12 @@ public class Bootstrap
Gateway.getStorage().put(serverEntity, new Property("Name", serverName, false), null);
Gateway.getStorage().put(serverEntity, new Property("Type", "Server", false), null);
Gateway.getStorage().put(serverEntity, new Property("KernelVersion", Gateway.getKernelVersion(), true), null);
- if (Gateway.getProperties().getProperty("ItemServer.Proxy.port") != null)
- Gateway.getStorage().put(serverEntity,
- new Property("ProxyPort", Gateway.getProperties().getProperty("ItemServer.Proxy.port"), false), null);
+ int proxyPort = Gateway.getProperties().getInt("ItemServer.Proxy.port", 1553);
+ Gateway.getStorage().put(serverEntity,
+ new Property("ProxyPort", String.valueOf(proxyPort), false), null);
Gateway.getStorage().put(serverEntity,
new Property("ConsolePort", String.valueOf(Logger.getConsolePort()), true), null);
- Gateway.getProxyManager().connectToProxyServer(Gateway.getProperties().getProperty("ItemServer.name"), Gateway.getProperties().getInt("ItemServer.Proxy.port"));
+ Gateway.getProxyManager().connectToProxyServer(serverName, proxyPort);
}
diff --git a/src/main/java/com/c2kernel/process/ClientShell.java b/src/main/java/com/c2kernel/process/ClientShell.java
index eeeb07f..d97a3de 100644
--- a/src/main/java/com/c2kernel/process/ClientShell.java
+++ b/src/main/java/com/c2kernel/process/ClientShell.java
@@ -41,9 +41,7 @@ public class ClientShell extends StandardClient {
public static void main(String[] args) throws Exception {
Gateway.init(readC2KArgs(args));
- String authClassName = Gateway.getProperties().getProperty("cli.auth");
- Class<?> authClass = Gateway.getResource().getClassForName(authClassName);
- ProxyLogin auth = (ProxyLogin)authClass.newInstance();
+ ProxyLogin auth = (ProxyLogin)Gateway.getProperties().getInstance("cli.auth");
AgentProxy user = auth.authenticate(Gateway.getProperties().getProperty("Name"));
ClientShell shell = new ClientShell(user);
shell.run();
diff --git a/src/main/java/com/c2kernel/process/Gateway.java b/src/main/java/com/c2kernel/process/Gateway.java
index c2dd646..2de2b99 100644
--- a/src/main/java/com/c2kernel/process/Gateway.java
+++ b/src/main/java/com/c2kernel/process/Gateway.java
@@ -135,7 +135,7 @@ public class Gateway
dumpC2KProps(7);
//Initialise language file
- String languageFile = getProperty("language.file");
+ String languageFile = getProperties().getString("language.file");
if (languageFile != null && languageFile.length() > 0) {
Language.isTranlated=true;
Language.mTableOfTranslation = FileStringUtility.loadLanguageFile(languageFile);
@@ -376,24 +376,7 @@ public class Gateway
}
static public String getCentreId() {
- return getProperty("LocalCentre");
- }
-
- @Deprecated
- static public String getProperty(String propName) {
- return getProperty(propName, null);
- }
-
- @Deprecated
- static public String getProperty(String propName, String defaultValue) {
- if (mC2KProps == null) return defaultValue;
- return mC2KProps.getProperty(propName, defaultValue);
- }
-
- @Deprecated
- static public void setProperty(String propName, String propValue) {
- if (mC2KProps == null) return;
- mC2KProps.put(propName, propValue);
+ return getProperties().getString("LocalCentre");
}
static public Enumeration<?> propertyNames() {
diff --git a/src/main/java/com/c2kernel/process/UserCodeProcess.java b/src/main/java/com/c2kernel/process/UserCodeProcess.java
index 6b34bf5..cb8ca74 100644
--- a/src/main/java/com/c2kernel/process/UserCodeProcess.java
+++ b/src/main/java/com/c2kernel/process/UserCodeProcess.java
@@ -209,7 +209,7 @@ public class UserCodeProcess extends StandardClient implements ProxyObserver<Job
}
public static UserCodeProcess getInstance() throws UnknownHostException {
- return new UserCodeProcess(InetAddress.getLocalHost().getHostName(), "uc", Gateway.getProperties().getProperty("AuthResource", "Cristal"));
+ return new UserCodeProcess(InetAddress.getLocalHost().getHostName(), "uc", Gateway.getProperties().getString("AuthResource", "Cristal"));
}
static public void main(String[] args)
diff --git a/src/main/java/com/c2kernel/process/module/ModuleManager.java b/src/main/java/com/c2kernel/process/module/ModuleManager.java
index 4fde044..02e7eaa 100644
--- a/src/main/java/com/c2kernel/process/module/ModuleManager.java
+++ b/src/main/java/com/c2kernel/process/module/ModuleManager.java
@@ -144,7 +144,7 @@ public class ModuleManager {
public void registerModules() throws ModuleException {
ItemProxy serverEntity;
try {
- serverEntity = Gateway.getProxyManager().getProxy(new DomainPath("/servers/"+Gateway.getProperties().getProperty("ItemServer.name")));
+ serverEntity = Gateway.getProxyManager().getProxy(new DomainPath("/servers/"+Gateway.getProperties().getString("ItemServer.name")));
} catch (ObjectNotFoundException e) {
throw new ModuleException("Cannot find local server name.");
}
@@ -156,8 +156,7 @@ public class ModuleManager {
Logger.msg("Registering module "+thisMod.getName());
try {
- String nsReset = Gateway.getProperties().getProperty("Module."+thisMod.getNamespace()+".reset");
- boolean thisReset = nsReset == null?reset:nsReset.equals("true");
+ boolean thisReset = Gateway.getProperties().getBoolean("Module."+thisMod.getNamespace()+".reset");
thisMod.importAll(serverEntity, user, modulesXML.get(thisMod.getNamespace()), thisReset);
} catch (Exception e) {
Logger.error(e);
diff --git a/src/main/java/com/c2kernel/scripting/ScriptConsole.java b/src/main/java/com/c2kernel/scripting/ScriptConsole.java
index 6b77a4f..27e1234 100644
--- a/src/main/java/com/c2kernel/scripting/ScriptConsole.java
+++ b/src/main/java/com/c2kernel/scripting/ScriptConsole.java
@@ -44,10 +44,10 @@ public class ScriptConsole implements SocketHandler {
static {
securityMode = ALLOW;
- String hosts = Gateway.getProperties().getProperty("ItemServer.Console.allow");
+ String hosts = Gateway.getProperties().getString("ItemServer.Console.allow");
if (hosts == null || hosts.equals("")) {
securityMode = DENY;
- hosts = Gateway.getProperties().getProperty("ItemServer.Console.deny");
+ hosts = Gateway.getProperties().getString("ItemServer.Console.deny");
}
if (hosts == null || hosts.equals("")) { // by default only allow localhost
securityMode = ALLOW;
diff --git a/src/main/java/com/c2kernel/utils/ObjectProperties.java b/src/main/java/com/c2kernel/utils/ObjectProperties.java
index 8dacd2c..d9bf0f6 100644
--- a/src/main/java/com/c2kernel/utils/ObjectProperties.java
+++ b/src/main/java/com/c2kernel/utils/ObjectProperties.java
@@ -1,7 +1,9 @@
package com.c2kernel.utils;
+import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Properties;
+import java.util.StringTokenizer;
public class ObjectProperties extends Properties {
@@ -13,11 +15,13 @@ public class ObjectProperties extends Properties {
}
public String getString(String propName) {
- return super.getProperty(propName);
+ return getString(propName, null);
}
public String getString(String propName, String defaultValue) {
- return super.getProperty(propName, defaultValue);
+ String value = super.getProperty(propName, defaultValue);
+ if (value!=null) value = value.trim();
+ return value;
}
/**
@@ -145,7 +149,11 @@ public class ObjectProperties extends Properties {
Logger.msg(logLevel, "Properties:");
for (Enumeration<?> e = propertyNames(); e.hasMoreElements();) {
String name = (String) e.nextElement();
- Logger.msg(" "+name+" ("+getObject(name).getClass().getSimpleName()+"): "+getObject(name).toString());
+ Object value = getObject(name);
+ if (value == null)
+ Logger.msg(" "+name+": null");
+ else
+ Logger.msg(" "+name+" ("+getObject(name).getClass().getSimpleName()+"): '"+getObject(name).toString()+"'");
}
}
@@ -154,12 +162,34 @@ public class ObjectProperties extends Properties {
if (prop == null || prop.equals(""))
throw new InstantiationException("Property '"+propName+"' was not defined. Cannot instantiate.");
if (prop instanceof String)
- return Class.forName((String)prop).newInstance();
+ return Class.forName(((String)prop).trim()).newInstance();
return prop;
}
public Object getInstance(String propName) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
return getInstance(propName, null);
}
-
+
+ public ArrayList<?> getInstances(String propName, Object defaultVal) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
+ Object val = getObject(propName, defaultVal);
+ if (val == null) return null;
+ if (val instanceof ArrayList)
+ return (ArrayList<?>)val;
+ else if (val instanceof String) {
+ ArrayList<Object> retArr = new ArrayList<Object>();
+ StringTokenizer tok = new StringTokenizer((String)val, ",");
+ while (tok.hasMoreTokens())
+ retArr.add(getInstance(tok.nextToken()));
+ return retArr;
+ }
+ else {
+ ArrayList<Object> retArr = new ArrayList<Object>();
+ retArr.add(val);
+ return retArr;
+ }
+ }
+
+ public ArrayList<?> getInstances(String propName) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
+ return getInstances(propName, null);
+ }
}