X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fnetconf-monitoring%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fmonitoring%2Fosgi%2FNetconfMonitoringServiceTracker.java;h=5d0a2a91ad59f95ea20df53b7bc62433479f4650;hp=920236b9b67ab0a277a5e166459463bc3ebac562;hb=45757bbd6c220f0f805715c84025c75a9388770a;hpb=356f96ce57f8c099ce98e38b4053c075050bda10 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(); + } } }