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%2Fmapping%2FModuleInfoBundleTracker.java;h=8e93583e04459c3acb5dfe33b851507081090bd7;hb=94b968f7454a2d677b1ac8fc4a81c10ecca03fa3;hp=7680f72612cd40468f3758d8030b55b6a6908afc;hpb=0974e04645015a507fd88c2bc79b01c8f741462d;p=controller.git diff --git a/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/osgi/mapping/ModuleInfoBundleTracker.java b/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/osgi/mapping/ModuleInfoBundleTracker.java index 7680f72612..8e93583e04 100644 --- a/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/osgi/mapping/ModuleInfoBundleTracker.java +++ b/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/osgi/mapping/ModuleInfoBundleTracker.java @@ -7,18 +7,10 @@ */ package org.opendaylight.controller.config.manager.impl.osgi.mapping; -import static java.lang.String.format; - -import java.io.InputStream; -import java.net.URL; -import java.util.Collection; -import java.util.LinkedList; -import java.util.List; - import org.apache.commons.io.IOUtils; import org.opendaylight.yangtools.concepts.ObjectRegistration; -import org.opendaylight.yangtools.sal.binding.generator.impl.GeneratedClassLoadingStrategy; -import org.opendaylight.yangtools.sal.binding.generator.impl.ModuleInfoBackedContext; +import org.opendaylight.yangtools.concepts.Registration; +import org.opendaylight.yangtools.sal.binding.generator.api.ModuleInfoRegistry; import org.opendaylight.yangtools.yang.binding.YangModelBindingProvider; import org.opendaylight.yangtools.yang.binding.YangModuleInfo; import org.osgi.framework.Bundle; @@ -27,51 +19,57 @@ import org.osgi.util.tracker.BundleTrackerCustomizer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.InputStream; +import java.net.URL; +import java.util.Collection; +import java.util.LinkedList; +import java.util.List; + +import static java.lang.String.format; + /** - * Tracks bundles and attempts to retrieve YangModuleInfo. + * Tracks bundles and attempts to retrieve YangModuleInfo, which is then fed into ModuleInfoRegistry */ public final class ModuleInfoBundleTracker implements BundleTrackerCustomizer>> { private static final Logger logger = LoggerFactory.getLogger(ModuleInfoBundleTracker.class); - public static final String GET_MODULE_INFO_METHOD = "getModuleInfo"; public static final String MODULE_INFO_PROVIDER_PATH_PREFIX = "META-INF/services/"; - private final ModuleInfoBackedContext moduleInfoLoadingStrategy = ModuleInfoBackedContext.create(); - public GeneratedClassLoadingStrategy getModuleInfoLoadingStrategy() { - return moduleInfoLoadingStrategy; + private final ModuleInfoRegistry moduleInfoRegistry; + + public ModuleInfoBundleTracker(ModuleInfoRegistry moduleInfoRegistry) { + this.moduleInfoRegistry = moduleInfoRegistry; } @Override public Collection> addingBundle(Bundle bundle, BundleEvent event) { URL resource = bundle.getEntry(MODULE_INFO_PROVIDER_PATH_PREFIX + YangModelBindingProvider.class.getName()); - + logger.debug("Got addingBundle({}) with YangModelBindingProvider resource {}", bundle, resource); if(resource==null) { return null; } - List> registrations = new LinkedList<>(); try (InputStream inputStream = resource.openStream()) { List lines = IOUtils.readLines(inputStream); for (String moduleInfoName : lines) { + logger.trace("Retrieve ModuleInfo({}, {})", moduleInfoName, bundle); YangModuleInfo moduleInfo = retrieveModuleInfo(moduleInfoName, bundle); - registrations.add(moduleInfoLoadingStrategy.registerModuleInfo(moduleInfo)); + registrations.add(moduleInfoRegistry.registerModuleInfo(moduleInfo)); } - } catch (Exception e) { logger.error("Error while reading {}", resource, e); throw new RuntimeException(e); } - + logger.trace("Got following registrations {}", registrations); return registrations; } @Override public void modifiedBundle(Bundle bundle, BundleEvent event, Collection> object) { - // NOOP } @Override @@ -80,7 +78,7 @@ public final class ModuleInfoBundleTracker implements BundleTrackerCustomizer reg : regs) { + for (Registration reg : regs) { try { reg.close(); } catch (Exception e) { @@ -105,7 +103,7 @@ public final class ModuleInfoBundleTracker implements BundleTrackerCustomizer