From 6be2858d9c01528228eb099843f2bd76cacdc089 Mon Sep 17 00:00:00 2001 From: Matej Sramcik Date: Thu, 28 Sep 2023 14:26:13 +0200 Subject: [PATCH] Don't use NotificationListener (ServiceHandler) Don't use NotificationListener in ServiceHandlerListener. This is a part of NotificationListener to Listener migration. JIRA: TRNSPRTPCE-756 Change-Id: Id67a411d17715cb9c9a3cf7127a058d3c742681a Signed-off-by: Matej Sramcik --- .../networkmodel/NetworkModelProvider.java | 8 +++----- .../listeners/ServiceHandlerListener.java | 12 +++++++++--- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/NetworkModelProvider.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/NetworkModelProvider.java index d1ef447cb..4158ab91b 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/NetworkModelProvider.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/NetworkModelProvider.java @@ -25,9 +25,7 @@ import org.opendaylight.transportpce.networkmodel.service.NetworkModelService; import org.opendaylight.transportpce.networkmodel.util.TpceNetwork; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.Network; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.mapping.Mapping; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.servicehandler.rev201125.TransportpceServicehandlerListener; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.osgi.service.component.annotations.Activate; @@ -50,7 +48,7 @@ public class NetworkModelProvider { private final NetConfTopologyListener topologyListener; private List listeners; private TpceNetwork tpceNetwork; - private ListenerRegistration serviceHandlerListenerRegistration; + private Registration serviceHandlerListenerRegistration; private NotificationService notificationService; private FrequenciesService frequenciesService; private PortMappingListener portMappingListener; @@ -88,8 +86,8 @@ public class NetworkModelProvider { InstanceIdentifiers.NETCONF_TOPOLOGY_II.child(Node.class)), topologyListener)); listeners.add(dataBroker.registerDataTreeChangeListener( DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION, MAPPING_II), portMappingListener)); - TransportpceServicehandlerListener serviceHandlerListner = new ServiceHandlerListener(frequenciesService); - serviceHandlerListenerRegistration = notificationService.registerNotificationListener(serviceHandlerListner); + serviceHandlerListenerRegistration = notificationService.registerCompositeListener( + new ServiceHandlerListener(frequenciesService).getCompositeListener()); } /** diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/ServiceHandlerListener.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/ServiceHandlerListener.java index 2c2bd0958..1f5c6b0f6 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/ServiceHandlerListener.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/ServiceHandlerListener.java @@ -8,24 +8,30 @@ package org.opendaylight.transportpce.networkmodel.listeners; +import java.util.Set; +import org.opendaylight.mdsal.binding.api.NotificationService.CompositeListener; import org.opendaylight.transportpce.networkmodel.service.FrequenciesService; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.servicehandler.rev201125.ServiceRpcResultSh; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.servicehandler.rev201125.TransportpceServicehandlerListener; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev230526.ServiceNotificationTypes; import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.RpcStatusEx; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class ServiceHandlerListener implements TransportpceServicehandlerListener { +public class ServiceHandlerListener { private static final Logger LOG = LoggerFactory.getLogger(ServiceHandlerListener.class); private final FrequenciesService service; + public ServiceHandlerListener(FrequenciesService service) { LOG.info("Init service handler listener for network"); this.service = service; } - @Override + public CompositeListener getCompositeListener() { + return new CompositeListener(Set.of( + new CompositeListener.Component<>(ServiceRpcResultSh.class, this::onServiceRpcResultSh))); + } + public void onServiceRpcResultSh(ServiceRpcResultSh notification) { if (notification.getStatus() != RpcStatusEx.Successful) { LOG.info("RpcStatusEx of notification not equals successful. Nothing to do for notification {}", -- 2.36.6