import java.util.Map;
import java.util.Objects;
import java.util.Optional;
+import java.util.Set;
import java.util.UUID;
import java.util.concurrent.ExecutionException;
import java.util.stream.Collectors;
import org.opendaylight.mdsal.binding.api.NotificationPublishService;
+import org.opendaylight.mdsal.binding.api.NotificationService.CompositeListener;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.transportpce.common.network.NetworkTransactionService;
import org.opendaylight.transportpce.tapi.TapiStringConstants;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.notification.rev181210.Notification;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.notification.rev181210.NotificationType;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.notification.rev181210.ObjectType;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.notification.rev181210.TapiNotificationListener;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.notification.rev181210.notification.ChangedAttributes;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.notification.rev181210.notification.ChangedAttributesBuilder;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.notification.rev181210.notification.ChangedAttributesKey;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-@Component
-public class TapiNetworkModelListenerImpl implements TapiNotificationListener {
+@Component(service = TapiNetworkModelNotificationHandler.class)
+public class TapiNetworkModelNotificationHandler {
- private static final Logger LOG = LoggerFactory.getLogger(TapiNetworkModelListenerImpl.class);
+ private static final Logger LOG = LoggerFactory.getLogger(TapiNetworkModelNotificationHandler.class);
private final NetworkTransactionService networkTransactionService;
private final NotificationPublishService notificationPublishService;
private final List<ConnectivityService> connectivityServiceChanges = new ArrayList<>();
private final List<LayerProtocolName> orderedServiceLayerList;
@Activate
- public TapiNetworkModelListenerImpl(@Reference NetworkTransactionService networkTransactionService,
+ public TapiNetworkModelNotificationHandler(@Reference NetworkTransactionService networkTransactionService,
@Reference NotificationPublishService notificationPublishService) {
this.networkTransactionService = networkTransactionService;
this.notificationPublishService = notificationPublishService;
LOG.debug("TapiNetworkModelListenerImpl instantiated");
}
- @Override
- public void onNotification(Notification notification) {
+ public CompositeListener getCompositeListener() {
+ return new CompositeListener(Set.of(
+ new CompositeListener.Component<>(Notification.class, this::onNotification)));
+ }
+
+ private void onNotification(Notification notification) {
LOG.info("Received network model notification {}", notification);
if (notification.getNotificationType() == NotificationType.ATTRIBUTEVALUECHANGE
&& notification.getTargetObjectType() == ObjectType.NODEEDGEPOINT) {