*/
package org.opendaylight.controller.config.yang.netconf.mdsal.monitoring;
-import java.util.Collections;
+import static java.util.Objects.requireNonNull;
+
import java.util.Set;
-import org.opendaylight.controller.config.util.capability.Capability;
-import org.opendaylight.controller.sal.common.util.NoopAutoCloseable;
+import org.opendaylight.netconf.api.capability.Capability;
import org.opendaylight.netconf.api.monitoring.CapabilityListener;
import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
-import org.opendaylight.netconf.mapping.api.NetconfOperation;
-import org.opendaylight.netconf.mapping.api.NetconfOperationService;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
-import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactoryListener;
-import org.opendaylight.netconf.monitoring.GetSchema;
-
-public class MdsalMonitoringMapperFactory implements NetconfOperationServiceFactory, AutoCloseable {
+import org.opendaylight.netconf.server.api.operations.NetconfOperation;
+import org.opendaylight.netconf.server.api.operations.NetconfOperationService;
+import org.opendaylight.netconf.server.api.operations.NetconfOperationServiceFactory;
+import org.opendaylight.netconf.server.api.operations.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;
- private final NetconfOperationService operationService;
- private final MonitoringToMdsalWriter monitoringToMdsalWriter;
+@Component(service = { })
+public final class MdsalMonitoringMapperFactory implements NetconfOperationServiceFactory, AutoCloseable {
private final NetconfOperationServiceFactoryListener netconfOperationServiceFactoryListener;
+ private final NetconfMonitoringService netconfMonitoringService;
- private static final Set<Capability> CAPABILITIES = Collections.emptySet();
-
+ @Activate
public MdsalMonitoringMapperFactory(
+ @Reference(target = "(type=mapper-aggregator-registry)")
final NetconfOperationServiceFactoryListener netconfOperationServiceFactoryListener,
- final NetconfMonitoringService netconfMonitoringService,
- final MonitoringToMdsalWriter monitoringToMdsalWriter) {
+ @Reference(target = "(type=netconf-server-monitoring)")
+ final NetconfMonitoringService netconfMonitoringService) {
+ this.netconfOperationServiceFactoryListener = requireNonNull(netconfOperationServiceFactoryListener);
+ this.netconfMonitoringService = requireNonNull(netconfMonitoringService);
+ this.netconfOperationServiceFactoryListener.onAddNetconfOperationServiceFactory(this);
+ }
- this.netconfOperationServiceFactoryListener = netconfOperationServiceFactoryListener;
- this.monitoringToMdsalWriter = monitoringToMdsalWriter;
+ @Deactivate
+ @Override
+ public void close() {
+ netconfOperationServiceFactoryListener.onRemoveNetconfOperationServiceFactory(this);
+ }
- this.operationService = new NetconfOperationService() {
+ @Override
+ public NetconfOperationService createService(final String netconfSessionIdForReporting) {
+ return new NetconfOperationService() {
@Override
public Set<NetconfOperation> getNetconfOperations() {
- return Collections.singleton(new GetSchema(netconfMonitoringService));
+ return Set.of(new GetSchema(netconfSessionIdForReporting, netconfMonitoringService));
}
@Override
// NOOP
}
};
-
- this.netconfOperationServiceFactoryListener.onAddNetconfOperationServiceFactory(this);
- }
-
- @Override
- public NetconfOperationService createService(final String netconfSessionIdForReporting) {
- return operationService;
}
@Override
public Set<Capability> getCapabilities() {
- // TODO No capabilities exposed to prevent clashes with schemas from mdsal-netconf-connector (it exposes
- // all the schemas). If the schemas exposed by mdsal-netconf-connector are filtered, this class would expose
- // monitoring related models.
- return CAPABILITIES;
+ // TODO No capabilities exposed to prevent clashes with schemas from mdsal-netconf-connector (it exposes all the
+ // schemas). If the schemas exposed by mdsal-netconf-connector are filtered, this class would expose monitoring
+ // related models.
+ return Set.of();
}
@Override
- public AutoCloseable registerCapabilityListener(final CapabilityListener listener) {
- return NoopAutoCloseable.INSTANCE;
+ public Registration registerCapabilityListener(final CapabilityListener listener) {
+ return () -> { };
}
-
- /**
- * Invoked using blueprint.
- */
- @Override
- public void close() {
- monitoringToMdsalWriter.close();
- netconfOperationServiceFactoryListener.onRemoveNetconfOperationServiceFactory(this);
- }
-
-}
\ No newline at end of file
+}