Modernize bgp-rib-impl 20/110420/1
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 1 Mar 2024 17:26:16 +0000 (18:26 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 1 Mar 2024 17:26:59 +0000 (18:26 +0100)
Remove references to ClusteredDataTreeChangeListener, as we are using
the correct method already. Also migrate other users of MD-SAL-deprecated
methods.

Change-Id: Ibf2b194550e50676776f61643eeb0e5069161a77
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/ApplicationPeer.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/config/BGPClusterSingletonService.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/config/DefaultBgpDeployer.java

index e1759d8d5a26d9d77389ba3160b1c730c33c6ef9..f55b10a5ddd3185badbc70502e9cd2636980a98c 100644 (file)
@@ -28,8 +28,8 @@ import java.util.Map;
 import java.util.Set;
 import org.opendaylight.mdsal.common.api.CommitInfo;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.mdsal.dom.api.ClusteredDOMDataTreeChangeListener;
 import org.opendaylight.mdsal.dom.api.DOMDataBroker.DataTreeChangeExtension;
+import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeListener;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction;
 import org.opendaylight.mdsal.dom.api.DOMTransactionChain;
@@ -75,7 +75,7 @@ import org.slf4j.LoggerFactory;
  * For purposed of import policies such as Best Path Selection, application
  * peer needs to have a BGP-ID that is configurable.
  */
-public class ApplicationPeer extends AbstractPeer implements ClusteredDOMDataTreeChangeListener {
+public class ApplicationPeer extends AbstractPeer implements DOMDataTreeChangeListener {
     private static final Logger LOG = LoggerFactory.getLogger(ApplicationPeer.class);
     private static final String APP_PEER_GROUP = "application-peers";
 
@@ -143,16 +143,15 @@ public class ApplicationPeer extends AbstractPeer implements ClusteredDOMDataTre
         createDomChain();
         adjRibInWriter = AdjRibInWriter.create(rib.getYangRibId(), PeerRole.Internal, this);
         final RIBSupportContextRegistry context = rib.getRibSupportContext();
-        final RegisterAppPeerListener registerAppPeerListener = () -> {
-            synchronized (this) {
-                if (getDomChain() != null) {
-                    registration = dataTreeChangeService.registerTreeChangeListener(appPeerDOMId, this);
-                }
-            }
-        };
         peerPath = createPeerPath(peerId);
-        adjRibInWriter = adjRibInWriter.transform(peerId, peerPath, context, localTables,
-                Map.of(), registerAppPeerListener);
+        adjRibInWriter = adjRibInWriter.transform(peerId, peerPath, context, localTables, Map.of(),
+            () -> {
+                synchronized (this) {
+                    if (getDomChain() != null) {
+                        registration = dataTreeChangeService.registerTreeChangeListener(appPeerDOMId, this);
+                    }
+                }
+            });
 
         final var chain = rib.createPeerDOMChain();
         chain.addCallback(this);
index 47d399bdb6e6a8bb3fa479f87ca71e06df743277..c928895f01ccb6cba06d1f4c4709f001ad9899fb 100644 (file)
@@ -158,7 +158,7 @@ public class BGPClusterSingletonService implements ClusterSingletonService, Auto
     }
 
     synchronized void onGlobalChanged(final DataObjectModification<Global> dataObjectModification) {
-        switch (dataObjectModification.getModificationType()) {
+        switch (dataObjectModification.modificationType()) {
             case DELETE:
                 LOG.debug("Removing RIB instance: {}", bgpIid);
                 if (ribImpl != null) {
@@ -170,7 +170,7 @@ public class BGPClusterSingletonService implements ClusterSingletonService, Auto
                 break;
             case SUBTREE_MODIFIED:
             case WRITE:
-                final Global global = dataObjectModification.getDataAfter();
+                final Global global = dataObjectModification.dataAfter();
                 if (ribImpl == null) {
                     onGlobalCreated(global);
                 } else if (!ribImpl.isGlobalEqual(requireNonNull(global))) {
@@ -252,14 +252,14 @@ public class BGPClusterSingletonService implements ClusterSingletonService, Auto
     @VisibleForTesting
     @Holding("this")
     void onNeighborsChanged(final DataObjectModification<Neighbors> dataObjectModification) {
-        for (final DataObjectModification<?> neighborModification : dataObjectModification.getModifiedChildren()) {
-            switch (neighborModification.getModificationType()) {
+        for (var neighborModification : dataObjectModification.modifiedChildren()) {
+            switch (neighborModification.modificationType()) {
                 case DELETE:
-                    onNeighborRemoved((Neighbor) neighborModification.getDataBefore());
+                    onNeighborRemoved((Neighbor) neighborModification.dataBefore());
                     break;
                 case SUBTREE_MODIFIED:
                 case WRITE:
-                    onNeighborModified((Neighbor) neighborModification.getDataAfter());
+                    onNeighborModified((Neighbor) neighborModification.dataAfter());
                     break;
                 default:
                     break;
index 3f784b066fa144508cb666ad3edbb0ef1899fe27..fe4eb10864e1044c29b463276ded0dac5c362f26 100644 (file)
@@ -27,9 +27,9 @@ import javax.annotation.PreDestroy;
 import javax.inject.Inject;
 import javax.inject.Singleton;
 import org.checkerframework.checker.lock.qual.GuardedBy;
-import org.opendaylight.mdsal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.mdsal.binding.api.DataBroker;
 import org.opendaylight.mdsal.binding.api.DataObjectModification;
+import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
 import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
 import org.opendaylight.mdsal.binding.api.DataTreeModification;
 import org.opendaylight.mdsal.binding.api.ReadTransaction;
@@ -68,7 +68,7 @@ import org.slf4j.LoggerFactory;
 
 @Singleton
 // Non-final because of Mockito.spy()
-public class DefaultBgpDeployer implements ClusteredDataTreeChangeListener<Bgp>, PeerGroupConfigLoader, AutoCloseable {
+public class DefaultBgpDeployer implements DataTreeChangeListener<Bgp>, PeerGroupConfigLoader, AutoCloseable {
     private static final Logger LOG = LoggerFactory.getLogger(DefaultBgpDeployer.class);
 
     private final InstanceIdentifier<NetworkInstance> networkInstanceIId;
@@ -140,7 +140,7 @@ public class DefaultBgpDeployer implements ClusteredDataTreeChangeListener<Bgp>,
     @PostConstruct
     // Split out of constructor to support partial mocking
     public synchronized void init() {
-        registration = dataBroker.registerDataTreeChangeListener(
+        registration = dataBroker.registerTreeChangeListener(
                 DataTreeIdentifier.of(LogicalDatastoreType.CONFIGURATION,
                         networkInstanceIId.child(Protocols.class).child(Protocol.class)
                                 .augmentation(NetworkInstanceProtocol.class).child(Bgp.class)), this);
@@ -163,17 +163,17 @@ public class DefaultBgpDeployer implements ClusteredDataTreeChangeListener<Bgp>,
             return;
         }
 
-        for (final DataTreeModification<Bgp> dataTreeModification : changes) {
-            final InstanceIdentifier<Bgp> rootIdentifier = dataTreeModification.getRootPath().getRootIdentifier();
+        for (var dataTreeModification : changes) {
+            final InstanceIdentifier<Bgp> rootIdentifier = dataTreeModification.getRootPath().path();
             final DataObjectModification<Bgp> rootNode = dataTreeModification.getRootNode();
-            final List<DataObjectModification<? extends DataObject>> deletedConfig
-                    = rootNode.getModifiedChildren().stream()
-                    .filter(mod -> mod.getModificationType() == DataObjectModification.ModificationType.DELETE)
-                    .collect(Collectors.toList());
-            final List<DataObjectModification<? extends DataObject>> changedConfig
-                    = rootNode.getModifiedChildren().stream()
-                    .filter(mod -> mod.getModificationType() != DataObjectModification.ModificationType.DELETE)
-                    .collect(Collectors.toList());
+            final List<DataObjectModification<? extends DataObject>> deletedConfig = rootNode.modifiedChildren()
+                .stream()
+                .filter(mod -> mod.modificationType() == DataObjectModification.ModificationType.DELETE)
+                .collect(Collectors.toList());
+            final List<DataObjectModification<? extends DataObject>> changedConfig = rootNode.modifiedChildren()
+                .stream()
+                .filter(mod -> mod.modificationType() != DataObjectModification.ModificationType.DELETE)
+                .collect(Collectors.toList());
             handleDeletions(deletedConfig, rootIdentifier);
             handleModifications(changedConfig, rootIdentifier);
         }
@@ -182,10 +182,10 @@ public class DefaultBgpDeployer implements ClusteredDataTreeChangeListener<Bgp>,
     private void handleModifications(final List<DataObjectModification<? extends DataObject>> changedConfig,
                                      final InstanceIdentifier<Bgp> rootIdentifier) {
         final List<DataObjectModification<? extends DataObject>> globalMod = changedConfig.stream()
-                .filter(mod -> mod.getDataType().equals(Global.class))
+                .filter(mod -> mod.dataType().equals(Global.class))
                 .collect(Collectors.toList());
         final List<DataObjectModification<? extends DataObject>> peerMod = changedConfig.stream()
-                .filter(mod -> !mod.getDataType().equals(Global.class))
+                .filter(mod -> !mod.dataType().equals(Global.class))
                 .collect(Collectors.toList());
         if (!globalMod.isEmpty()) {
             handleGlobalChange(globalMod, rootIdentifier);
@@ -198,10 +198,10 @@ public class DefaultBgpDeployer implements ClusteredDataTreeChangeListener<Bgp>,
     private void handleDeletions(final List<DataObjectModification<? extends DataObject>> deletedConfig,
                                  final InstanceIdentifier<Bgp> rootIdentifier) {
         final List<DataObjectModification<? extends DataObject>> globalMod = deletedConfig.stream()
-                .filter(mod -> mod.getDataType().equals(Global.class))
+                .filter(mod -> mod.dataType().equals(Global.class))
                 .collect(Collectors.toList());
         final List<DataObjectModification<? extends DataObject>> peerMod = deletedConfig.stream()
-                .filter(mod -> !mod.getDataType().equals(Global.class))
+                .filter(mod -> !mod.dataType().equals(Global.class))
                 .collect(Collectors.toList());
         if (!globalMod.isEmpty()) {
             handleGlobalChange(globalMod, rootIdentifier);
@@ -223,18 +223,18 @@ public class DefaultBgpDeployer implements ClusteredDataTreeChangeListener<Bgp>,
             final List<DataObjectModification<? extends DataObject>> config,
             final InstanceIdentifier<Bgp> rootIdentifier) {
         for (final DataObjectModification<? extends DataObject> dataObjectModification : config) {
-            if (dataObjectModification.getDataType().equals(Neighbors.class)) {
+            if (dataObjectModification.dataType().equals(Neighbors.class)) {
                 onNeighborsChanged((DataObjectModification<Neighbors>) dataObjectModification, rootIdentifier);
-            } else if (dataObjectModification.getDataType().equals(PeerGroups.class)) {
+            } else if (dataObjectModification.dataType().equals(PeerGroups.class)) {
                 rebootNeighbors((DataObjectModification<PeerGroups>) dataObjectModification);
             }
         }
     }
 
     private synchronized void rebootNeighbors(final DataObjectModification<PeerGroups> dataObjectModification) {
-        PeerGroups extPeerGroups = dataObjectModification.getDataAfter();
+        PeerGroups extPeerGroups = dataObjectModification.dataAfter();
         if (extPeerGroups == null) {
-            extPeerGroups = dataObjectModification.getDataBefore();
+            extPeerGroups = dataObjectModification.dataBefore();
         }
         if (extPeerGroups == null) {
             return;