X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fconfig%2Fconfig-manager%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fmanager%2Fimpl%2Fdependencyresolver%2FDependencyResolverManager.java;h=1a2c6b7b22f20cea8e3d309cde933ba45e7a588e;hp=3ef6e5d8421ac39834394b34afbf56d58b7eeca8;hb=f43b01b81319959b1907e3e04537f5169e7f33d8;hpb=e631dc96f0461b2270377dc072b9f969a875667a diff --git a/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/dependencyresolver/DependencyResolverManager.java b/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/dependencyresolver/DependencyResolverManager.java index 3ef6e5d842..1a2c6b7b22 100644 --- a/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/dependencyresolver/DependencyResolverManager.java +++ b/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/dependencyresolver/DependencyResolverManager.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. + * Copyright (c) 2013, 2017 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, @@ -7,8 +7,6 @@ */ package org.opendaylight.controller.config.manager.impl.dependencyresolver; -import static com.google.common.base.Preconditions.checkState; - import com.google.common.base.Preconditions; import com.google.common.reflect.AbstractInvocationHandler; import com.google.common.reflect.Reflection; @@ -46,26 +44,26 @@ import org.osgi.framework.BundleContext; */ public class DependencyResolverManager implements DependencyResolverFactory, AutoCloseable { @GuardedBy("this") - private final Map moduleIdentifiersToDependencyResolverMap = new HashMap<>(); + private final Map + moduleIdentifiersToDependencyResolverMap = new HashMap<>(); private final TransactionIdentifier transactionIdentifier; private final ModulesHolder modulesHolder; private final TransactionStatus transactionStatus; private final ServiceReferenceReadableRegistry readableRegistry; private final BindingContextProvider bindingContextProvider; private final DeadlockMonitor deadlockMonitor; - private final MBeanServer mBeanServer; + private final MBeanServer beanServer; public DependencyResolverManager(final TransactionIdentifier transactionIdentifier, - final TransactionStatus transactionStatus, - final ServiceReferenceReadableRegistry readableRegistry, final BindingContextProvider bindingContextProvider, - final MBeanServer mBeanServer) { + final TransactionStatus transactionStatus, final ServiceReferenceReadableRegistry readableRegistry, + final BindingContextProvider bindingContextProvider, final MBeanServer beanServer) { this.transactionIdentifier = transactionIdentifier; this.modulesHolder = new ModulesHolder(transactionIdentifier); this.transactionStatus = transactionStatus; this.readableRegistry = readableRegistry; this.bindingContextProvider = bindingContextProvider; this.deadlockMonitor = new DeadlockMonitor(transactionIdentifier); - this.mBeanServer = mBeanServer; + this.beanServer = beanServer; } @Override @@ -78,7 +76,7 @@ public class DependencyResolverManager implements DependencyResolverFactory, Aut if (dependencyResolver == null) { transactionStatus.checkNotCommitted(); dependencyResolver = new DependencyResolverImpl(name, transactionStatus, modulesHolder, readableRegistry, - bindingContextProvider, transactionIdentifier.getName(), mBeanServer); + bindingContextProvider, transactionIdentifier.getName(), beanServer); moduleIdentifiersToDependencyResolverMap.put(name, dependencyResolver); } return dependencyResolver; @@ -86,12 +84,11 @@ public class DependencyResolverManager implements DependencyResolverFactory, Aut /** * Get all dependency resolvers, including those that belong to destroyed - * things? + * things?. */ private List getAllSorted() { transactionStatus.checkCommitStarted(); - List sorted = new ArrayList<>( - moduleIdentifiersToDependencyResolverMap.values()); + List sorted = new ArrayList<>(moduleIdentifiersToDependencyResolverMap.values()); for (DependencyResolverImpl dri : sorted) { dri.countMaxDependencyDepth(this); } @@ -100,8 +97,7 @@ public class DependencyResolverManager implements DependencyResolverFactory, Aut } public List getSortedModuleIdentifiers() { - List result = new ArrayList<>( - moduleIdentifiersToDependencyResolverMap.size()); + List result = new ArrayList<>(moduleIdentifiersToDependencyResolverMap.size()); for (DependencyResolverImpl dri : getAllSorted()) { ModuleIdentifier driName = dri.getIdentifier(); result.add(driName); @@ -109,11 +105,9 @@ public class DependencyResolverManager implements DependencyResolverFactory, Aut return result; } - public ModuleInternalTransactionalInfo destroyModule( - final ModuleIdentifier moduleIdentifier) { + public ModuleInternalTransactionalInfo destroyModule(final ModuleIdentifier moduleIdentifier) { transactionStatus.checkNotCommitted(); - ModuleInternalTransactionalInfo found = modulesHolder - .destroyModule(moduleIdentifier); + ModuleInternalTransactionalInfo found = modulesHolder.destroyModule(moduleIdentifier); moduleIdentifiersToDependencyResolverMap.remove(moduleIdentifier); return found; } @@ -125,25 +119,29 @@ public class DependencyResolverManager implements DependencyResolverFactory, Aut private final ModuleIdentifier moduleIdentifier; private final Module module; - // optimization: subsequent calls to getInstance MUST return the same value during transaction, + // optimization: subsequent calls to getInstance MUST return the same value + // during transaction, // so it is safe to cache the response private Object cachedInstance; - ModuleInvocationHandler(final DeadlockMonitor deadlockMonitor, final ModuleIdentifier moduleIdentifier, final Module module) { + ModuleInvocationHandler(final DeadlockMonitor deadlockMonitor, final ModuleIdentifier moduleIdentifier, + final Module module) { this.deadlockMonitor = Preconditions.checkNotNull(deadlockMonitor); this.moduleIdentifier = Preconditions.checkNotNull(moduleIdentifier); this.module = Preconditions.checkNotNull(module); } @Override - protected Object handleInvocation(final Object proxy, final Method method, final Object[] args) throws Throwable { + @SuppressWarnings("checkstyle:avoidHidingCauseException") + protected Object handleInvocation(final Object proxy, final Method method, final Object[] args) + throws Throwable { boolean isGetInstance = "getInstance".equals(method.getName()); if (isGetInstance) { if (cachedInstance != null) { return cachedInstance; } - checkState(deadlockMonitor.isAlive(), "Deadlock monitor is not alive"); + Preconditions.checkState(deadlockMonitor.isAlive(), "Deadlock monitor is not alive"); deadlockMonitor.setCurrentlyInstantiatedModule(moduleIdentifier); } try { @@ -152,7 +150,7 @@ public class DependencyResolverManager implements DependencyResolverFactory, Aut cachedInstance = response; } return response; - } catch(InvocationTargetException e) { + } catch (final InvocationTargetException e) { throw e.getCause(); } finally { if (isGetInstance) { @@ -162,23 +160,21 @@ public class DependencyResolverManager implements DependencyResolverFactory, Aut } } - public void put( - final ModuleIdentifier moduleIdentifier, - final Module module, - final ModuleFactory moduleFactory, + public void put(final ModuleIdentifier moduleIdentifier, final Module module, final ModuleFactory moduleFactory, final ModuleInternalInfo maybeOldInternalInfo, - final TransactionModuleJMXRegistration transactionModuleJMXRegistration, - final boolean isDefaultBean, final BundleContext bundleContext) { + final TransactionModuleJMXRegistration transactionModuleJMXRegistration, final boolean isDefaultBean, + final BundleContext bundleContext) { transactionStatus.checkNotCommitted(); Class moduleClass = Module.class; if (module instanceof RuntimeBeanRegistratorAwareModule) { moduleClass = RuntimeBeanRegistratorAwareModule.class; } - Module proxiedModule = Reflection.newProxy(moduleClass, new ModuleInvocationHandler(deadlockMonitor, moduleIdentifier, module)); + Module proxiedModule = Reflection.newProxy(moduleClass, + new ModuleInvocationHandler(deadlockMonitor, moduleIdentifier, module)); ModuleInternalTransactionalInfo moduleInternalTransactionalInfo = new ModuleInternalTransactionalInfo( - moduleIdentifier, proxiedModule, moduleFactory, - maybeOldInternalInfo, transactionModuleJMXRegistration, isDefaultBean, module, bundleContext); + moduleIdentifier, proxiedModule, moduleFactory, maybeOldInternalInfo, transactionModuleJMXRegistration, + isDefaultBean, module, bundleContext); modulesHolder.put(moduleInternalTransactionalInfo); } @@ -188,28 +184,25 @@ public class DependencyResolverManager implements DependencyResolverFactory, Aut return modulesHolder.toCommitInfo(); } - public Module findModule(final ModuleIdentifier moduleIdentifier, - final JmxAttribute jmxAttributeForReporting) { - return modulesHolder.findModule(moduleIdentifier, - jmxAttributeForReporting); + public Module findModule(final ModuleIdentifier moduleIdentifier, final JmxAttribute jmxAttributeForReporting) { + return modulesHolder.findModule(moduleIdentifier, jmxAttributeForReporting); } - public ModuleInternalTransactionalInfo findModuleInternalTransactionalInfo(final ModuleIdentifier moduleIdentifier) { + public ModuleInternalTransactionalInfo findModuleInternalTransactionalInfo( + final ModuleIdentifier moduleIdentifier) { return modulesHolder.findModuleInternalTransactionalInfo(moduleIdentifier); } public ModuleFactory findModuleFactory(final ModuleIdentifier moduleIdentifier, - final JmxAttribute jmxAttributeForReporting) { - return modulesHolder.findModuleFactory(moduleIdentifier, - jmxAttributeForReporting); + final JmxAttribute jmxAttributeForReporting) { + return modulesHolder.findModuleFactory(moduleIdentifier, jmxAttributeForReporting); } public Map getAllModules() { return modulesHolder.getAllModules(); } - public void assertNotExists(final ModuleIdentifier moduleIdentifier) - throws InstanceAlreadyExistsException { + public void assertNotExists(final ModuleIdentifier moduleIdentifier) throws InstanceAlreadyExistsException { modulesHolder.assertNotExists(moduleIdentifier); } @@ -225,7 +218,7 @@ public class DependencyResolverManager implements DependencyResolverFactory, Aut @Override public void close() { + modulesHolder.close(); deadlockMonitor.close(); } - }