diff options
| author | Andrew Branson <andrew.branson@cern.ch> | 2012-07-06 15:50:45 +0200 |
|---|---|---|
| committer | Andrew Branson <andrew.branson@cern.ch> | 2012-07-06 15:50:45 +0200 |
| commit | b53164978a9a264fbe26679c07e32731a4d495f9 (patch) | |
| tree | b0f0335625c4ee11012d51df3da5daae270bdd2f /src/main/java/com/c2kernel/process/module/ModuleManager.java | |
| parent | 24314dc1699c7e73048fa24e33729f1aa1ec0e86 (diff) | |
Remove XML parsing from module processing, use Castor unmarshalling
instead.
Create module item with collection of imported Items and module XML
registered as an outcome.
Diffstat (limited to 'src/main/java/com/c2kernel/process/module/ModuleManager.java')
| -rw-r--r-- | src/main/java/com/c2kernel/process/module/ModuleManager.java | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/main/java/com/c2kernel/process/module/ModuleManager.java b/src/main/java/com/c2kernel/process/module/ModuleManager.java index ca47ec9..0870c6f 100644 --- a/src/main/java/com/c2kernel/process/module/ModuleManager.java +++ b/src/main/java/com/c2kernel/process/module/ModuleManager.java @@ -4,6 +4,7 @@ import java.net.URL; import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Enumeration;
+import java.util.HashMap;
import java.util.Properties;
import com.c2kernel.common.CannotManageException;
@@ -16,9 +17,11 @@ import com.c2kernel.process.Gateway; import com.c2kernel.scripting.ScriptingEngineException;
import com.c2kernel.utils.FileStringUtility;
import com.c2kernel.utils.Logger;
+import com.c2kernel.utils.Resource;
public class ModuleManager {
ArrayList<Module> modules = new ArrayList<Module>();
+ HashMap<String, String> modulesXML = new HashMap<String, String>();
Properties props = new Properties();
boolean isServer;
@@ -29,10 +32,11 @@ public class ModuleManager { while(moduleEnum.hasMoreElements()) {
URL newModuleURL = moduleEnum.nextElement();
try {
- //Module newModule = (Module)Gateway.getMarshaller().unmarshall(FileStringUtility.url2String(newModuleURL));
- //Resource.addModuleBaseURL(newModule.ns, newModule.resURL);
- Module newModule = new Module(FileStringUtility.url2String(newModuleURL));
+ String moduleXML = FileStringUtility.url2String(newModuleURL);
+ Module newModule = (Module)Gateway.getMarshaller().unmarshall(moduleXML);
+ Resource.addModuleBaseURL(newModule.ns, newModule.resURL);
modules.add(newModule);
+ modulesXML.put(newModule.ns, moduleXML);
if (loadedModules.contains(newModule.getName())) throw new ModuleException("Module name clash: "+newModule.getName());
if (moduleNs.contains(newModule.getNs())) throw new ModuleException("Module namespace clash: "+newModule.getNs());
Logger.debug(4, "Module found: "+newModule.getNs()+" - "+newModule.getName());
@@ -96,7 +100,7 @@ public class ModuleManager { Logger.debug(3, "Registering modules");
for (Module thisMod : modules) {
Logger.msg("Registering module "+thisMod.getName());
- thisMod.importAll(serverEntity);
+ thisMod.importAll(serverEntity, modulesXML.get(thisMod.ns));
Logger.msg("Module "+thisMod.getName()+" registered");
}
}
|
