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;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.Dictionary;
-import java.util.Hashtable;
-
public class NetconfMonitoringServiceTracker extends ServiceTracker<NetconfMonitoringService, NetconfMonitoringService> {
- private static final Logger logger = LoggerFactory.getLogger(NetconfMonitoringServiceTracker.class);
+ private static final Logger LOG = LoggerFactory.getLogger(NetconfMonitoringServiceTracker.class);
private ServiceRegistration<NetconfOperationServiceFactory> reg;
+ private NetconfMonitoringActivator.NetconfMonitoringOperationServiceFactory factory;
- NetconfMonitoringServiceTracker(BundleContext context) {
+ NetconfMonitoringServiceTracker(final BundleContext context) {
super(context, NetconfMonitoringService.class, null);
}
@Override
- public NetconfMonitoringService addingService(ServiceReference<NetconfMonitoringService> reference) {
+ public NetconfMonitoringService addingService(final ServiceReference<NetconfMonitoringService> 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<String, ?> props = new Hashtable<>();
- reg = context.registerService(NetconfOperationServiceFactory.class, factory, props);
+ Dictionary<String, String> 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<NetconfMonitoringService> reference,
- NetconfMonitoringService netconfMonitoringService) {
+ public void removedService(final ServiceReference<NetconfMonitoringService> 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();
+ }
}
}