Merge "Startup archetype: remove 'Impl' from config subsystem Module name."
[controller.git] / opendaylight / netconf / netconf-monitoring / src / main / java / org / opendaylight / controller / netconf / monitoring / osgi / NetconfMonitoringActivator.java
index 9d332c644029ff3c26a2725703e4b348ff046cf0..1f094f1caf3d8f57c7301a9a42cf6f0ea2c5d922 100644 (file)
@@ -7,6 +7,10 @@
 */
 package org.opendaylight.controller.netconf.monitoring.osgi;
 
+import java.util.Collections;
+import java.util.Set;
+import org.opendaylight.controller.netconf.api.Capability;
+import org.opendaylight.controller.netconf.api.monitoring.CapabilityListener;
 import org.opendaylight.controller.netconf.mapping.api.NetconfOperationService;
 import org.opendaylight.controller.netconf.mapping.api.NetconfOperationServiceFactory;
 import org.osgi.framework.BundleActivator;
@@ -16,7 +20,7 @@ import org.slf4j.LoggerFactory;
 
 public class NetconfMonitoringActivator implements BundleActivator {
 
-    private static final Logger logger = LoggerFactory.getLogger(NetconfMonitoringActivator.class);
+    private static final Logger LOG = LoggerFactory.getLogger(NetconfMonitoringActivator.class);
 
     private NetconfMonitoringServiceTracker monitor;
 
@@ -31,22 +35,43 @@ public class NetconfMonitoringActivator implements BundleActivator {
         if(monitor!=null) {
             try {
                 monitor.close();
-            } catch (Exception e) {
-                logger.warn("Ignoring exception while closing {}", monitor, e);
+            } catch (final Exception e) {
+                LOG.warn("Ignoring exception while closing {}", monitor, e);
             }
         }
     }
 
-    public static class NetconfMonitoringOperationServiceFactory implements NetconfOperationServiceFactory {
+    public static class NetconfMonitoringOperationServiceFactory implements NetconfOperationServiceFactory, AutoCloseable {
+
         private final NetconfMonitoringOperationService operationService;
 
-        public NetconfMonitoringOperationServiceFactory(NetconfMonitoringOperationService operationService) {
+        private static final AutoCloseable AUTO_CLOSEABLE = new AutoCloseable() {
+            @Override
+            public void close() throws Exception {
+                // NOOP
+            }
+        };
+
+        public NetconfMonitoringOperationServiceFactory(final NetconfMonitoringOperationService operationService) {
             this.operationService = operationService;
         }
 
         @Override
-        public NetconfOperationService createService(String netconfSessionIdForReporting) {
+        public NetconfOperationService createService(final String netconfSessionIdForReporting) {
             return operationService;
         }
+
+        @Override
+        public Set<Capability> getCapabilities() {
+            return Collections.emptySet();
+        }
+
+        @Override
+        public AutoCloseable registerCapabilityListener(final CapabilityListener listener) {
+            return AUTO_CLOSEABLE;
+        }
+
+        @Override
+        public void close() {}
     }
 }