diff --git a/utils/src/com/cloud/utils/component/ComponentLocator.java b/utils/src/com/cloud/utils/component/ComponentLocator.java index 2f76f1541d5..25b5ac1abab 100755 --- a/utils/src/com/cloud/utils/component/ComponentLocator.java +++ b/utils/src/com/cloud/utils/component/ComponentLocator.java @@ -202,7 +202,16 @@ public class ComponentLocator implements ComponentLocatorMBean { _managerMap.putAll(library.getManagers()); _factories.putAll(library.getFactories()); _pluginsMap.putAll(library.getPluggableServices()); - + + for (Entry>> e : library.getAdapters().entrySet()) { + if (adapters.containsKey(e.getKey())) { + s_logger.debug("Merge needed for " + e.getKey()); + adapters.get(e.getKey()).addAll(e.getValue()); + } + else { + adapters.put(e.getKey(), e.getValue()); + } + } // putAll overwrites existing keys, so merge instead for (Entry>> e : handler.adapters.entrySet()) { if (adapters.containsKey(e.getKey())) {