X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=netconf.git;a=blobdiff_plain;f=netconf%2Fmdsal-netconf-monitoring%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fyang%2Fnetconf%2Fmdsal%2Fmonitoring%2FMdsalMonitoringMapperFactory.java;h=82359499568db4ce2a5fce6c8d3cbea16f2ee492;hp=a4fef8b3f552fd827c6f10fe50c7e1b0efc291c7;hb=dadacea0cfef402925efea5d7a70c48df7094249;hpb=0e7badde2c5a85460ef07e9dc8a7bc4de39c2c19 diff --git a/netconf/mdsal-netconf-monitoring/src/main/java/org/opendaylight/controller/config/yang/netconf/mdsal/monitoring/MdsalMonitoringMapperFactory.java b/netconf/mdsal-netconf-monitoring/src/main/java/org/opendaylight/controller/config/yang/netconf/mdsal/monitoring/MdsalMonitoringMapperFactory.java index a4fef8b3f5..8235949956 100644 --- a/netconf/mdsal-netconf-monitoring/src/main/java/org/opendaylight/controller/config/yang/netconf/mdsal/monitoring/MdsalMonitoringMapperFactory.java +++ b/netconf/mdsal-netconf-monitoring/src/main/java/org/opendaylight/controller/config/yang/netconf/mdsal/monitoring/MdsalMonitoringMapperFactory.java @@ -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); - } - }