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%2FConfigTransactionControllerImpl.java;h=b945bf6965d67acf33d17795b7c558debcc3971d;hb=248f46ddb283452df60d0e084d5a03af82ed5ef5;hp=ca318f32c9efbf94c1fdd1683d5ebdaeced7d93f;hpb=8c3828c33459a75b18d463155295bd70c5e6fc04;p=controller.git diff --git a/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/ConfigTransactionControllerImpl.java b/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/ConfigTransactionControllerImpl.java index ca318f32c9..b945bf6965 100644 --- a/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/ConfigTransactionControllerImpl.java +++ b/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/ConfigTransactionControllerImpl.java @@ -9,7 +9,6 @@ package org.opendaylight.controller.config.manager.impl; import static com.google.common.base.Preconditions.checkNotNull; import static java.lang.String.format; - import com.google.common.collect.Lists; import java.util.ArrayList; import java.util.Collection; @@ -27,6 +26,7 @@ import javax.management.InstanceNotFoundException; import javax.management.MBeanServer; import javax.management.ObjectName; import org.opendaylight.controller.config.api.DependencyResolver; +import org.opendaylight.controller.config.api.ModuleFactoryNotFoundException; import org.opendaylight.controller.config.api.ModuleIdentifier; import org.opendaylight.controller.config.api.ValidationException; import org.opendaylight.controller.config.api.annotations.ServiceInterfaceAnnotation; @@ -188,7 +188,8 @@ class ConfigTransactionControllerImpl implements } - private synchronized void copyExistingModule(ModuleInternalInfo oldConfigBeanInfo) throws InstanceAlreadyExistsException { + private synchronized void copyExistingModule(ModuleInternalInfo oldConfigBeanInfo) + throws InstanceAlreadyExistsException { transactionStatus.checkNotCommitStarted(); transactionStatus.checkNotAborted(); @@ -200,7 +201,7 @@ class ConfigTransactionControllerImpl implements try { moduleFactory = factoriesHolder.findByModuleName(moduleIdentifier.getFactoryName()); bc = getModuleFactoryBundleContext(moduleFactory.getImplementationName()); - } catch (InstanceNotFoundException e) { + } catch (ModuleFactoryNotFoundException e) { throw new IllegalStateException(e); } @@ -221,8 +222,8 @@ class ConfigTransactionControllerImpl implements } @Override - public synchronized ObjectName createModule(String factoryName, - String instanceName) throws InstanceAlreadyExistsException { + public synchronized ObjectName createModule(String factoryName, String instanceName) + throws InstanceAlreadyExistsException { transactionStatus.checkNotCommitStarted(); transactionStatus.checkNotAborted(); @@ -230,12 +231,8 @@ class ConfigTransactionControllerImpl implements dependencyResolverManager.assertNotExists(moduleIdentifier); // find factory - ModuleFactory moduleFactory; - try { - moduleFactory = factoriesHolder.findByModuleName(factoryName); - } catch (InstanceNotFoundException e) { - throw new IllegalArgumentException(e); - } + ModuleFactory moduleFactory = factoriesHolder.findByModuleName(factoryName); + DependencyResolver dependencyResolver = dependencyResolverManager.getOrCreate(moduleIdentifier); BundleContext bundleContext = getModuleFactoryBundleContext(moduleFactory.getImplementationName()); Module module = moduleFactory.createModule(instanceName, dependencyResolver, @@ -452,6 +449,7 @@ class ConfigTransactionControllerImpl implements close(); } + @Override public void close() { dependencyResolverManager.close(); txLookupRegistry.close();