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%2Fosgi%2FBundleContextBackedModuleFactoriesResolver.java;fp=opendaylight%2Fconfig%2Fconfig-manager%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fmanager%2Fimpl%2Fosgi%2FBundleContextBackedModuleFactoriesResolver.java;h=0000000000000000000000000000000000000000;hb=ac6f2699cd0c1e340cc32e8f0d0ca94c8e9c0cc0;hp=28f512d848f9b03fc5abbd1fc1cb7d3da7660535;hpb=f43b01b81319959b1907e3e04537f5169e7f33d8;p=controller.git diff --git a/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/osgi/BundleContextBackedModuleFactoriesResolver.java b/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/osgi/BundleContextBackedModuleFactoriesResolver.java deleted file mode 100644 index 28f512d848..0000000000 --- a/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/osgi/BundleContextBackedModuleFactoriesResolver.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * 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, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.controller.config.manager.impl.osgi; - -import java.util.AbstractMap; -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; -import org.opendaylight.controller.config.manager.impl.factoriesresolver.ModuleFactoriesResolver; -import org.opendaylight.controller.config.spi.ModuleFactory; -import org.osgi.framework.BundleContext; -import org.osgi.framework.InvalidSyntaxException; -import org.osgi.framework.ServiceReference; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Retrieves list of currently registered Module Factories using bundlecontext. - */ -public class BundleContextBackedModuleFactoriesResolver implements ModuleFactoriesResolver { - private static final Logger LOG = LoggerFactory.getLogger(BundleContextBackedModuleFactoriesResolver.class); - private final BundleContext bundleContext; - - public BundleContextBackedModuleFactoriesResolver(final BundleContext bundleContext) { - this.bundleContext = bundleContext; - } - - @Override - public Map> getAllFactories() { - Collection> serviceReferences; - try { - serviceReferences = bundleContext.getServiceReferences(ModuleFactory.class, null); - } catch (final InvalidSyntaxException e) { - throw new IllegalStateException(e); - } - Map> result = new HashMap<>(serviceReferences.size()); - for (ServiceReference serviceReference : serviceReferences) { - ModuleFactory factory = bundleContext.getService(serviceReference); - // null if the service is not registered, the service object - // returned by a ServiceFactory does not - // implement the classes under which it was registered or the - // ServiceFactory threw an exception. - if (factory == null) { - throw new NullPointerException( - "ServiceReference of class" + serviceReference.getClass() + "not found."); - } - - String moduleName = factory.getImplementationName(); - if (moduleName == null || moduleName.isEmpty()) { - throw new IllegalStateException("Invalid implementation name for " + factory); - } - if (serviceReference.getBundle() == null || serviceReference.getBundle().getBundleContext() == null) { - throw new NullPointerException("Bundle context of " + factory + " ModuleFactory not found."); - } - LOG.debug("Reading factory {} {}", moduleName, factory); - - Map.Entry conflicting = result.get(moduleName); - if (conflicting != null) { - String error = String.format( - "Module name is not unique. Found two conflicting factories with same name '%s': '%s' '%s'", - moduleName, conflicting.getKey(), factory); - LOG.error(error); - throw new IllegalArgumentException(error); - } - - result.put(moduleName, - new AbstractMap.SimpleImmutableEntry<>(factory, serviceReference.getBundle().getBundleContext())); - } - return result; - } -}