Migrate bgp-rib-impl use of Builders 19/110419/1
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 1 Mar 2024 17:18:34 +0000 (18:18 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 1 Mar 2024 17:18:34 +0000 (18:18 +0100)
Use spi.node.ImmutableNodes instead, reducing the overall dependencies.

Change-Id: I048138e00c175392f3808100e2d0fd3077a7d062
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
bgp/rib-impl/pom.xml
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/AdjRibInWriter.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/EffectiveRibInWriter.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/RIBImpl.java
bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/AbstractRIBTestSetup.java
bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/SynchronizationAndExceptionTest.java

index 41aac2c58b9aac21e48f9be1c4275a30303ce734..7fc10ec09473bdca2fc21ff2bea5b2d34aad7eef 100644 (file)
         </dependency>
         <dependency>
             <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-data-tree-api</artifactId>
+            <artifactId>yang-data-spi</artifactId>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-data-impl</artifactId>
+            <artifactId>yang-data-tree-api</artifactId>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.yangtools</groupId>
index 24155b249973c25c8237b276badbb7e0f4afd940..8f01cf92fe7c42204f5d3a62c19a8ab8956ff740 100644 (file)
@@ -63,8 +63,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
 import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -83,12 +82,14 @@ final class AdjRibInWriter {
     private static final QName SEND_RECEIVE = QName.create(SupportedTables.QNAME, "send-receive").intern();
 
     // FIXME: is there a utility method to construct this?
-    private static final MapNode EMPTY_TABLES = ImmutableNodes.mapNodeBuilder(TABLES_NID).build();
-    private static final ContainerNode EMPTY_ADJRIBIN = Builders.containerBuilder()
+    private static final MapNode EMPTY_TABLES = ImmutableNodes.newSystemMapBuilder()
+        .withNodeIdentifier(TABLES_NID)
+        .build();
+    private static final ContainerNode EMPTY_ADJRIBIN = ImmutableNodes.newContainerBuilder()
             .withNodeIdentifier(ADJRIBIN_NID).addChild(EMPTY_TABLES).build();
-    private static final ContainerNode EMPTY_EFFRIBIN = Builders.containerBuilder()
+    private static final ContainerNode EMPTY_EFFRIBIN = ImmutableNodes.newContainerBuilder()
             .withNodeIdentifier(EFFRIBIN_NID).addChild(EMPTY_TABLES).build();
-    private static final ContainerNode EMPTY_ADJRIBOUT = Builders.containerBuilder()
+    private static final ContainerNode EMPTY_ADJRIBOUT = ImmutableNodes.newContainerBuilder()
             .withNodeIdentifier(ADJRIBOUT_NID).addChild(EMPTY_TABLES).build();
 
     private final Map<TablesKey, TableContext> tables;
@@ -210,7 +211,7 @@ final class AdjRibInWriter {
             final SendReceive sendReceive, final DOMDataTreeWriteTransaction tx) {
         final var tableKey = rs.getRibSupport().tablesKey();
         final var supTablesKey = NodeIdentifierWithPredicates.of(SupportedTables.QNAME, tableKey.asMap());
-        final var tt = Builders.mapEntryBuilder().withNodeIdentifier(supTablesKey);
+        final var tt = ImmutableNodes.newMapEntryBuilder().withNodeIdentifier(supTablesKey);
         for (var e : supTablesKey.entrySet()) {
             tt.withChild(ImmutableNodes.leafNode(e.getKey(), e.getValue()));
         }
@@ -232,11 +233,11 @@ final class AdjRibInWriter {
 
     @VisibleForTesting
     MapEntryNode peerSkeleton(final NodeIdentifierWithPredicates peerKey, final String peerId) {
-        return Builders.mapEntryBuilder()
+        return ImmutableNodes.newMapEntryBuilder()
             .withNodeIdentifier(peerKey)
             .withChild(ImmutableNodes.leafNode(PEER_ID, peerId))
             .withChild(ImmutableNodes.leafNode(PEER_ROLE, PeerRoleUtil.roleForString(role)))
-            .withChild(Builders.mapBuilder().withNodeIdentifier(PEER_TABLES).build())
+            .withChild(ImmutableNodes.newSystemMapBuilder().withNodeIdentifier(PEER_TABLES).build())
             .withChild(EMPTY_ADJRIBIN)
             .withChild(EMPTY_EFFRIBIN)
             .withChild(EMPTY_ADJRIBOUT)
index 709ae409ad98cfc0e83bbd16f2e2dd6cf2975b81..5d2d28359c1b19b4cb4e7e05fbb709ddc812cf46 100644 (file)
@@ -78,7 +78,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
 import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodes;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate;
 import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
 import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
@@ -114,7 +114,9 @@ final class EffectiveRibInWriter implements PrefixesReceivedCounters, PrefixesIn
             .xml.ns.yang.bgp.message.rev200120.path.attributes.AttributesBuilder()
             .setCommunities(STALE_LLGR_COMMUNUTIES)
             .build();
-    private static final ChoiceNode EMPTY_ROUTES = Builders.choiceBuilder().withNodeIdentifier(ROUTES_NID).build();
+    private static final ChoiceNode EMPTY_ROUTES = ImmutableNodes.newChoiceBuilder()
+        .withNodeIdentifier(ROUTES_NID)
+        .build();
 
     private final RIBSupportContextRegistry registry;
     private final YangInstanceIdentifier peerIId;
index 622171aac35fe85ae52dc6f94ef55d07a26b52b5..010fb61010bea780cc82b78e60e1f897092eaf45 100644 (file)
@@ -69,8 +69,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.InstanceI
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -310,16 +309,17 @@ public final class RIBImpl extends BGPRibStateImpl implements RIB {
         domChain = domDataBroker.createMergingTransactionChain();
         addCallback(domChain);
 
-        final ContainerNode bgpRib = Builders.containerBuilder().withNodeIdentifier(BGPRIB_NID)
-                .addChild(ImmutableNodes.mapNodeBuilder(RIB_NID).build()).build();
-
-        final MapEntryNode ribInstance = Builders.mapEntryBuilder().withNodeIdentifier(
-                NodeIdentifierWithPredicates.of(Rib.QNAME, RIB_ID_QNAME, ribId.getValue()))
-                .addChild(ImmutableNodes.leafNode(RIB_ID_QNAME, ribId.getValue()))
-                .addChild(ImmutableNodes.mapNodeBuilder(PEER_NID).build())
-                .addChild(Builders.containerBuilder().withNodeIdentifier(LOCRIB_NID)
-                        .addChild(ImmutableNodes.mapNodeBuilder(TABLES_NID).build())
-                        .build()).build();
+        final ContainerNode bgpRib = ImmutableNodes.newContainerBuilder().withNodeIdentifier(BGPRIB_NID)
+                .addChild(ImmutableNodes.newSystemMapBuilder().withNodeIdentifier(RIB_NID).build()).build();
+
+        final MapEntryNode ribInstance = ImmutableNodes.newMapEntryBuilder()
+            .withNodeIdentifier(NodeIdentifierWithPredicates.of(Rib.QNAME, RIB_ID_QNAME, ribId.getValue()))
+            .addChild(ImmutableNodes.leafNode(RIB_ID_QNAME, ribId.getValue()))
+            .addChild(ImmutableNodes.newSystemMapBuilder().withNodeIdentifier(PEER_NID).build())
+            .addChild(ImmutableNodes.newContainerBuilder().withNodeIdentifier(LOCRIB_NID)
+                .addChild(ImmutableNodes.newSystemMapBuilder().withNodeIdentifier(TABLES_NID).build())
+                .build())
+            .build();
 
         final DOMDataTreeWriteTransaction trans = domChain.newWriteOnlyTransaction();
 
index 2dbf9d73c47f0a1cc678e24433d1aa792782848f..c692f1f3b4eacca058bb9f83c2ea55f16bbe3b0b 100644 (file)
@@ -17,7 +17,6 @@ import static org.mockito.Mockito.mock;
 import com.google.common.util.concurrent.FluentFuture;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.EventListener;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
@@ -54,19 +53,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.type
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.Ipv4AddressFamily;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.Ipv6AddressFamily;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.UnicastSubsequentAddressFamily;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.concepts.Registration;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.Uint32;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
-import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.builder.DataContainerNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate;
 import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
 import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
@@ -160,11 +154,9 @@ public class AbstractRIBTestSetup extends DefaultRibPoliciesMockTest {
         for (final Ipv4Prefix p : prefix) {
             final NodeIdentifierWithPredicates routekey =
                     NodeIdentifierWithPredicates.of(Ipv4Route.QNAME, PREFIX_QNAME, p);
-            final DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> b =
-                    ImmutableNodes.mapEntryBuilder();
-            b.withNodeIdentifier(routekey);
-            b.addChild(Builders.leafBuilder()
-                    .withNodeIdentifier(new NodeIdentifier(PREFIX_QNAME)).withValue(p).build());
+            final var b = ImmutableNodes.newMapEntryBuilder()
+                .withNodeIdentifier(routekey)
+                .addChild(ImmutableNodes.leafNode(PREFIX_QNAME, p));
 
             final DataTreeCandidateNode child = mock(DataTreeCandidateNode.class);
             doReturn(createIdentifier(p)).when(child).name();
@@ -191,12 +183,7 @@ public class AbstractRIBTestSetup extends DefaultRibPoliciesMockTest {
         return domTransWrite;
     }
 
-    private static final class TestListenerRegistration implements ListenerRegistration<EventListener> {
-        @Override
-        public EventListener getInstance() {
-            return null;
-        }
-
+    private static final class TestListenerRegistration implements Registration {
         @Override
         public void close() {
         }
index 062143d429a704f748bd0f57e9e5b89a165ffd28..7cfd493ef7ad5fd850c6f988e18bf1a2a9bad533 100644 (file)
@@ -101,7 +101,7 @@ import org.opendaylight.yangtools.yang.common.Uint8;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 
 public class SynchronizationAndExceptionTest extends AbstractAddPathTest {
     private static final int HOLD_TIMER = 3;