Convert mdsal-netconf-monitoring to OSGi DS
[netconf.git] / netconf / mdsal-netconf-monitoring / src / main / java / org / opendaylight / controller / config / yang / netconf / mdsal / monitoring / MdsalMonitoringMapperFactory.java
index a4fef8b3f552fd827c6f10fe50c7e1b0efc291c7..82359499568db4ce2a5fce6c8d3cbea16f2ee492 100644 (file)
@@ -7,6 +7,8 @@
  */
 package org.opendaylight.controller.config.yang.netconf.mdsal.monitoring;
 
+import static java.util.Objects.requireNonNull;
+
 import java.util.Set;
 import org.opendaylight.netconf.api.capability.Capability;
 import org.opendaylight.netconf.api.monitoring.CapabilityListener;
@@ -16,23 +18,33 @@ import org.opendaylight.netconf.mapping.api.NetconfOperationService;
 import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
 import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactoryListener;
 import org.opendaylight.yangtools.concepts.Registration;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
 
+@Component(service = { })
 public final class MdsalMonitoringMapperFactory implements NetconfOperationServiceFactory, AutoCloseable {
-    private final MonitoringToMdsalWriter monitoringToMdsalWriter;
     private final NetconfOperationServiceFactoryListener netconfOperationServiceFactoryListener;
     private final NetconfMonitoringService netconfMonitoringService;
 
+    @Activate
     public MdsalMonitoringMapperFactory(
+            @Reference(target = "(type=mapper-aggregator-registry)")
             final NetconfOperationServiceFactoryListener netconfOperationServiceFactoryListener,
-            final NetconfMonitoringService netconfMonitoringService,
-            final MonitoringToMdsalWriter monitoringToMdsalWriter) {
-
-        this.netconfOperationServiceFactoryListener = netconfOperationServiceFactoryListener;
-        this.netconfMonitoringService = netconfMonitoringService;
-        this.monitoringToMdsalWriter = monitoringToMdsalWriter;
+            @Reference(target = "(type=netconf-server-monitoring)")
+            final NetconfMonitoringService netconfMonitoringService) {
+        this.netconfOperationServiceFactoryListener = requireNonNull(netconfOperationServiceFactoryListener);
+        this.netconfMonitoringService = requireNonNull(netconfMonitoringService);
         this.netconfOperationServiceFactoryListener.onAddNetconfOperationServiceFactory(this);
     }
 
+    @Deactivate
+    @Override
+    public void close() {
+        netconfOperationServiceFactoryListener.onRemoveNetconfOperationServiceFactory(this);
+    }
+
     @Override
     public NetconfOperationService createService(final String netconfSessionIdForReporting) {
         return new NetconfOperationService() {
@@ -60,14 +72,4 @@ public final class MdsalMonitoringMapperFactory implements NetconfOperationServi
     public Registration registerCapabilityListener(final CapabilityListener listener) {
         return () -> { };
     }
-
-    /**
-     * Invoked using blueprint.
-     */
-    @Override
-    public void close() {
-        monitoringToMdsalWriter.close();
-        netconfOperationServiceFactoryListener.onRemoveNetconfOperationServiceFactory(this);
-    }
-
 }