diff --git a/src/main/java/net/floodlightcontroller/core/module/FloodlightModuleContext.java b/src/main/java/net/floodlightcontroller/core/module/FloodlightModuleContext.java index c26a595b6924d546d58b72ecb96377eefa773293..0cbae3234a4e2b2a9baf8e78d9161e097737e825 100644 --- a/src/main/java/net/floodlightcontroller/core/module/FloodlightModuleContext.java +++ b/src/main/java/net/floodlightcontroller/core/module/FloodlightModuleContext.java @@ -71,6 +71,19 @@ public class FloodlightModuleContext implements IFloodlightModuleContext { retMap = new HashMap<String, String>(); configParams.put(module.getClass(), retMap); } + + // also add any configuration parameters for superclasses, but + // only if more specific configuration does not override it + for (Class<? extends IFloodlightModule> c : configParams.keySet()) { + if (c.isInstance(module)) { + for (Map.Entry<String, String> ent : configParams.get(c).entrySet()) { + if (!retMap.containsKey(ent.getKey())) { + retMap.put(ent.getKey(), ent.getValue()); + } + } + } + } + return retMap; }