summaryrefslogtreecommitdiff
path: root/src/main/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/c2kernel/process/module/ModuleManager.java17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/main/java/com/c2kernel/process/module/ModuleManager.java b/src/main/java/com/c2kernel/process/module/ModuleManager.java
index 3cb4904..9ff42e5 100644
--- a/src/main/java/com/c2kernel/process/module/ModuleManager.java
+++ b/src/main/java/com/c2kernel/process/module/ModuleManager.java
@@ -54,11 +54,6 @@ public class ModuleManager {
if (moduleNs.contains(newModule.getNs())) throw new ModuleException("Module namespace clash: "+newModule.getNs());
Logger.debug(4, "Module found: "+newModule.getNs()+" - "+newModule.getName());
loadedModules.add(newModule.getName()); moduleNs.add(newModule.getNs());
- Properties modProp = newModule.getProperties(isServer);
- for (Enumeration<?> e = modProp.propertyNames(); e.hasMoreElements();) {
- String propName = (String)e.nextElement();
- props.put(propName, modProp.get(propName));
- }
} catch (ModuleException e) {
Logger.error("Could not load module description from "+newModuleURL);
throw e;
@@ -69,7 +64,7 @@ public class ModuleManager {
}
Logger.debug(5, "Checking dependencies");
- boolean allDepsPresent = false;
+ boolean allDepsPresent = true;
ArrayList<String> prevModules = new ArrayList<String>();
for (int i=0; i<modules.size();i++) {
@@ -84,7 +79,7 @@ public class ModuleManager {
Logger.msg(6, thisMod.getName()+" depends on "+dep);
if (!loadedModules.contains(dep)) {
Logger.error("UNMET MODULE DEPENDENCY: "+thisMod.getName()+" requires "+dep);
- allDepsPresent = true;
+ allDepsPresent = false;
}
else if (!prevModules.contains(dep)) {
Logger.msg(1, "ModuleManager: Shuffling "+thisMod.getName()+" to the end to fulfil dependency on "+dep);
@@ -104,9 +99,15 @@ public class ModuleManager {
Logger.die("Circular module dependencies involving: "+badMod);
}
}
+ // Current module is 'next', this is the correct order to load the properties
+ Properties modProp = thisMod.getProperties(isServer);
+ for (Enumeration<?> e = modProp.propertyNames(); e.hasMoreElements();) {
+ String propName = (String)e.nextElement();
+ props.put(propName, modProp.get(propName));
+ }
prevModules.add(thisMod.getName());
}
- if (allDepsPresent) Logger.die("Unmet module dependencies. Cannot continue");
+ if (!allDepsPresent) Logger.die("Unmet module dependencies. Cannot continue");
}
public String getModuleVersions() {