X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fconfig%2Fconfig-manager%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fmanager%2Fimpl%2Fdependencyresolver%2FModulesHolder.java;h=1c5cd47c50455718f10042b9a66e670070c50d16;hb=4497e2212e73e13356447b9644bbdc935411949a;hp=7747e556931289c8e9d920fe9c2356c777cfb0d9;hpb=9fb64948564e252018f9b1e13e7cea2c92f991aa;p=controller.git diff --git a/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/dependencyresolver/ModulesHolder.java b/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/dependencyresolver/ModulesHolder.java index 7747e55693..1c5cd47c50 100644 --- a/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/dependencyresolver/ModulesHolder.java +++ b/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/dependencyresolver/ModulesHolder.java @@ -8,41 +8,39 @@ package org.opendaylight.controller.config.manager.impl.dependencyresolver; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; - import javax.annotation.concurrent.GuardedBy; import javax.management.InstanceAlreadyExistsException; - import org.opendaylight.controller.config.api.JmxAttribute; import org.opendaylight.controller.config.api.JmxAttributeValidationException; import org.opendaylight.controller.config.api.ModuleIdentifier; import org.opendaylight.controller.config.manager.impl.CommitInfo; -import org.opendaylight.controller.config.manager.impl.DestroyedModule; -import org.opendaylight.controller.config.manager.impl.ModuleInternalTransactionalInfo; +import org.opendaylight.controller.config.manager.impl.TransactionIdentifier; import org.opendaylight.controller.config.spi.Module; import org.opendaylight.controller.config.spi.ModuleFactory; /** * Represents modules to be committed. */ -class ModulesHolder implements TransactionHolder { - private final String transactionName; +class ModulesHolder { + private final TransactionIdentifier transactionIdentifier; @GuardedBy("this") private final Map commitMap = new HashMap<>(); @GuardedBy("this") private final Set unorderedDestroyedFromPreviousTransactions = new HashSet<>(); - ModulesHolder(String transactionName) { - this.transactionName = transactionName; + ModulesHolder(TransactionIdentifier transactionIdentifier) { + this.transactionIdentifier = transactionIdentifier; } - @Override + public CommitInfo toCommitInfo() { List orderedDestroyedFromPreviousTransactions = new ArrayList<>( unorderedDestroyedFromPreviousTransactions.size()); @@ -62,62 +60,67 @@ class ModulesHolder implements TransactionHolder { .get(moduleIdentifier); JmxAttributeValidationException.checkNotNull( moduleInternalTransactionalInfo, "Module " + moduleIdentifier - + "" + " not found in transaction " + transactionName, + + "" + " not found in transaction " + transactionIdentifier, jmxAttributeForReporting); return moduleInternalTransactionalInfo; } - @Override public Module findModule(ModuleIdentifier moduleIdentifier, JmxAttribute jmxAttributeForReporting) { return findModuleInternalTransactionalInfo(moduleIdentifier, - jmxAttributeForReporting).getModule(); + jmxAttributeForReporting).getProxiedModule(); } - @Override public ModuleFactory findModuleFactory(ModuleIdentifier moduleIdentifier, JmxAttribute jmxAttributeForReporting) { return findModuleInternalTransactionalInfo(moduleIdentifier, jmxAttributeForReporting).getModuleFactory(); } - @Override public Map getAllModules() { Map result = new HashMap<>(); for (ModuleInternalTransactionalInfo entry : commitMap.values()) { - ModuleIdentifier name = entry.getName(); - result.put(name, entry.getModule()); + ModuleIdentifier name = entry.getIdentifier(); + result.put(name, entry.getProxiedModule()); } return result; } - @Override public void put( ModuleInternalTransactionalInfo moduleInternalTransactionalInfo) { - commitMap.put(moduleInternalTransactionalInfo.getName(), + commitMap.put(moduleInternalTransactionalInfo.getIdentifier(), moduleInternalTransactionalInfo); } - @Override public ModuleInternalTransactionalInfo destroyModule( ModuleIdentifier moduleIdentifier) { - ModuleInternalTransactionalInfo found = commitMap - .remove(moduleIdentifier); - if (found == null) + ModuleInternalTransactionalInfo found = commitMap.remove(moduleIdentifier); + if (found == null) { throw new IllegalStateException("Not found:" + moduleIdentifier); + } if (found.hasOldModule()) { unorderedDestroyedFromPreviousTransactions.add(found); } return found; } - @Override public void assertNotExists(ModuleIdentifier moduleIdentifier) throws InstanceAlreadyExistsException { if (commitMap.containsKey(moduleIdentifier)) { throw new InstanceAlreadyExistsException( - "There is an instance registered with name " - + moduleIdentifier); + "There is an instance registered with name " + moduleIdentifier); } } + + public Collection getAllInfos(){ + return commitMap.values(); + } + + public ModuleInternalTransactionalInfo findModuleInternalTransactionalInfo(ModuleIdentifier moduleIdentifier) { + ModuleInternalTransactionalInfo found = commitMap.get(moduleIdentifier); + if (found == null) { + throw new IllegalStateException("Not found:" + moduleIdentifier); + } + return found; + } }