X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fnetconf-monitoring%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fmonitoring%2Fosgi%2FNetconfMonitoringServiceTracker.java;h=5d0a2a91ad59f95ea20df53b7bc62433479f4650;hb=fb3ca10a354d54d067201f18943504c212b93613;hp=920236b9b67ab0a277a5e166459463bc3ebac562;hpb=0a23c5e6383fe72e6c5f59aa727ae2b27bb966f5;p=controller.git diff --git a/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/osgi/NetconfMonitoringServiceTracker.java b/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/osgi/NetconfMonitoringServiceTracker.java index 920236b9b6..5d0a2a91ad 100644 --- a/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/osgi/NetconfMonitoringServiceTracker.java +++ b/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/osgi/NetconfMonitoringServiceTracker.java @@ -8,7 +8,10 @@ package org.opendaylight.controller.netconf.monitoring.osgi; import com.google.common.base.Preconditions; +import java.util.Dictionary; +import java.util.Hashtable; import org.opendaylight.controller.netconf.api.monitoring.NetconfMonitoringService; +import org.opendaylight.controller.netconf.api.util.NetconfConstants; import org.opendaylight.controller.netconf.mapping.api.NetconfOperationServiceFactory; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceReference; @@ -17,46 +20,48 @@ import org.osgi.util.tracker.ServiceTracker; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.Dictionary; -import java.util.Hashtable; - public class NetconfMonitoringServiceTracker extends ServiceTracker { - private static final Logger logger = LoggerFactory.getLogger(NetconfMonitoringServiceTracker.class); + private static final Logger LOG = LoggerFactory.getLogger(NetconfMonitoringServiceTracker.class); private ServiceRegistration reg; + private NetconfMonitoringActivator.NetconfMonitoringOperationServiceFactory factory; - NetconfMonitoringServiceTracker(BundleContext context) { + NetconfMonitoringServiceTracker(final BundleContext context) { super(context, NetconfMonitoringService.class, null); } @Override - public NetconfMonitoringService addingService(ServiceReference reference) { + public NetconfMonitoringService addingService(final ServiceReference reference) { Preconditions.checkState(reg == null, "Monitoring service was already added"); - NetconfMonitoringService netconfMonitoringService = super.addingService(reference); + final NetconfMonitoringService netconfMonitoringService = super.addingService(reference); final NetconfMonitoringOperationService operationService = new NetconfMonitoringOperationService( netconfMonitoringService); - NetconfOperationServiceFactory factory = new NetconfMonitoringActivator.NetconfMonitoringOperationServiceFactory( + factory = new NetconfMonitoringActivator.NetconfMonitoringOperationServiceFactory( operationService); - Dictionary props = new Hashtable<>(); - reg = context.registerService(NetconfOperationServiceFactory.class, factory, props); + Dictionary properties = new Hashtable<>(); + properties.put(NetconfConstants.SERVICE_NAME, NetconfConstants.NETCONF_MONITORING); + reg = context.registerService(NetconfOperationServiceFactory.class, factory, properties); return netconfMonitoringService; } @Override - public void removedService(ServiceReference reference, - NetconfMonitoringService netconfMonitoringService) { + public void removedService(final ServiceReference reference, + final NetconfMonitoringService netconfMonitoringService) { if(reg!=null) { try { reg.unregister(); - } catch (Exception e) { - logger.warn("Ignoring exception while unregistering {}", reg, e); + } catch (final Exception e) { + LOG.warn("Ignoring exception while unregistering {}", reg, e); } } + if(factory!=null) { + factory.close(); + } } }