X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fconfig%2Fconfig-persister-feature-adapter%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfigpusherfeature%2Finternal%2FFeatureServiceCustomizer.java;h=9e9c26cbf3c81e0f69a702db81bcbbd4800dd8e2;hp=c941e894359f0560044136db0f40c78972c91c12;hb=f43b01b81319959b1907e3e04537f5169e7f33d8;hpb=6da2893d4a3a939a1f5d4079f6ffe04a305754e6 diff --git a/opendaylight/config/config-persister-feature-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/FeatureServiceCustomizer.java b/opendaylight/config/config-persister-feature-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/FeatureServiceCustomizer.java index c941e89435..9e9c26cbf3 100644 --- a/opendaylight/config/config-persister-feature-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/FeatureServiceCustomizer.java +++ b/opendaylight/config/config-persister-feature-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/FeatureServiceCustomizer.java @@ -9,71 +9,70 @@ package org.opendaylight.controller.configpusherfeature.internal; import com.google.common.base.Optional; import com.google.common.collect.Sets; + import java.util.Set; + import org.apache.karaf.features.Feature; import org.apache.karaf.features.FeaturesListener; import org.apache.karaf.features.FeaturesService; import org.opendaylight.controller.config.persist.api.ConfigPusher; -import org.opendaylight.controller.config.persist.storage.file.xml.FeatureListProvider; import org.opendaylight.controller.config.persist.storage.file.xml.XmlFileStorageAdapter; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceReference; import org.osgi.framework.ServiceRegistration; import org.osgi.util.tracker.ServiceTrackerCustomizer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -public class FeatureServiceCustomizer implements ServiceTrackerCustomizer, AutoCloseable { +public class FeatureServiceCustomizer implements ServiceTrackerCustomizer, + AutoCloseable { + private static final Logger LOG = LoggerFactory.getLogger(FeatureServiceCustomizer.class); private ConfigPusher configPusher = null; - private ConfigFeaturesListener configFeaturesListener = null; private ServiceRegistration registration; - FeatureServiceCustomizer(ConfigPusher c) { - configPusher = c; + FeatureServiceCustomizer(final ConfigPusher configPusher) { + this.configPusher = configPusher; } - @Override - public FeaturesService addingService(ServiceReference reference) { + @SuppressWarnings("IllegalCatch") + public FeaturesService addingService(final ServiceReference reference) { BundleContext bc = reference.getBundle().getBundleContext(); final FeaturesService featureService = bc.getService(reference); final Optional currentPersister = XmlFileStorageAdapter.getInstance(); - if(XmlFileStorageAdapter.getInstance().isPresent()) { + if (XmlFileStorageAdapter.getInstance().isPresent()) { final Set installedFeatureIds = Sets.newHashSet(); - for (final Feature installedFeature : featureService.listInstalledFeatures()) { - installedFeatureIds.add(installedFeature.getId()); + try { + for (final Feature installedFeature : featureService.listInstalledFeatures()) { + installedFeatureIds.add(installedFeature.getId()); + } + } catch (final Exception e) { + LOG.error("Error listing installed features", e); } - currentPersister.get().setFeaturesService(new FeatureListProvider() { - @Override - public Set listFeatures() { - return installedFeatureIds; - } - }); + currentPersister.get().setFeaturesService(() -> installedFeatureIds); } - configFeaturesListener = new ConfigFeaturesListener(configPusher,featureService); + ConfigFeaturesListener configFeaturesListener = new ConfigFeaturesListener(configPusher, featureService); registration = bc.registerService(FeaturesListener.class.getCanonicalName(), configFeaturesListener, null); return featureService; } @Override - public void modifiedService(ServiceReference reference, - FeaturesService service) { + public void modifiedService(final ServiceReference reference, final FeaturesService service) { // we don't care if the properties change - } @Override - public void removedService(ServiceReference reference, - FeaturesService service) { + public void removedService(final ServiceReference reference, final FeaturesService service) { close(); } @Override public void close() { - if(registration != null) { + if (registration != null) { registration.unregister(); registration = null; } } - }