X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fconfig%2Fconfig-manager%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fmanager%2Fimpl%2Fdependencyresolver%2FModulesHolder.java;h=cfe7ea14b9ae84c171a064a64f99a45b09b051f8;hb=405c97ddf445b6057a2654545dd8072d28eedcce;hp=6bbd7875a94b1fa8a1d4dd8662b2a9cb835420ea;hpb=a1b55fb491e235c028e1d451aff4b1d261d5a86c;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 6bbd7875a9..cfe7ea14b9 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 @@ -7,17 +7,6 @@ */ package org.opendaylight.controller.config.manager.impl.dependencyresolver; -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.spi.Module; -import org.opendaylight.controller.config.spi.ModuleFactory; - -import javax.annotation.concurrent.GuardedBy; -import javax.management.InstanceAlreadyExistsException; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -26,23 +15,32 @@ 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.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 implements AutoCloseable { + 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(final TransactionIdentifier transactionIdentifier) { + this.transactionIdentifier = transactionIdentifier; } - @Override + public CommitInfo toCommitInfo() { List orderedDestroyedFromPreviousTransactions = new ArrayList<>( unorderedDestroyedFromPreviousTransactions.size()); @@ -56,63 +54,57 @@ class ModulesHolder implements TransactionHolder { } private ModuleInternalTransactionalInfo findModuleInternalTransactionalInfo( - ModuleIdentifier moduleIdentifier, - JmxAttribute jmxAttributeForReporting) { + final ModuleIdentifier moduleIdentifier, + final JmxAttribute jmxAttributeForReporting) { ModuleInternalTransactionalInfo moduleInternalTransactionalInfo = commitMap .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) { + public Module findModule(final ModuleIdentifier moduleIdentifier, + final JmxAttribute jmxAttributeForReporting) { return findModuleInternalTransactionalInfo(moduleIdentifier, - jmxAttributeForReporting).getModule(); + jmxAttributeForReporting).getProxiedModule(); } - @Override - public ModuleFactory findModuleFactory(ModuleIdentifier moduleIdentifier, - JmxAttribute jmxAttributeForReporting) { + public ModuleFactory findModuleFactory(final ModuleIdentifier moduleIdentifier, + final 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(), + final ModuleInternalTransactionalInfo moduleInternalTransactionalInfo) { + commitMap.put(moduleInternalTransactionalInfo.getIdentifier(), moduleInternalTransactionalInfo); } - @Override public ModuleInternalTransactionalInfo destroyModule( - ModuleIdentifier moduleIdentifier) { - ModuleInternalTransactionalInfo found = commitMap - .remove(moduleIdentifier); - if (found == null) + final ModuleIdentifier moduleIdentifier) { + 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) + public void assertNotExists(final ModuleIdentifier moduleIdentifier) throws InstanceAlreadyExistsException { if (commitMap.containsKey(moduleIdentifier)) { throw new InstanceAlreadyExistsException( @@ -123,4 +115,17 @@ class ModulesHolder implements TransactionHolder { public Collection getAllInfos(){ return commitMap.values(); } + + public ModuleInternalTransactionalInfo findModuleInternalTransactionalInfo(final ModuleIdentifier moduleIdentifier) { + ModuleInternalTransactionalInfo found = commitMap.get(moduleIdentifier); + if (found == null) { + throw new IllegalStateException("Not found:" + moduleIdentifier); + } + return found; + } + + @Override + public void close() { + unorderedDestroyedFromPreviousTransactions.clear(); + } }