From b3de95dce254bd72babd11dc94bc3573a9e2ccc7 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 4 Nov 2022 22:11:03 +0100 Subject: [PATCH] Prune old ABI versions Remove all ABIVersion constants before MAGNESIUM, and adjust the test for that. Also modernize tests a bit. JIRA: CONTROLLER-2060 Change-Id: Ie9e3106e24b0b75d58b360ba2296d85e46be351a Signed-off-by: Robert Varga --- .../controller/cluster/access/ABIVersion.java | 51 +++---------------- .../cluster/access/concepts/Message.java | 2 +- .../cluster/access/ABIVersionTest.java | 14 ++--- .../AbstractLocalTransactionRequestTest.java | 2 +- .../commands/ConnectClientRequestTest.java | 4 +- .../commands/ConnectClientSuccessTest.java | 5 +- .../ExistsTransactionSuccessTest.java | 2 +- .../commands/LocalHistoryFailureTest.java | 2 +- .../commands/LocalHistorySuccessTest.java | 4 +- .../ModifyTransactionRequestEmptyTest.java | 2 +- .../ModifyTransactionRequestTest.java | 3 +- .../ModifyTransactionSuccessTest.java | 4 +- .../ReadTransactionSuccessNoDataTest.java | 2 +- .../commands/ReadTransactionSuccessTest.java | 2 +- .../commands/SkipTransactionsRequestTest.java | 6 +-- .../SkipTransactionsResponseTest.java | 2 +- .../commands/TransactionAbortRequestTest.java | 2 +- .../commands/TransactionAbortSuccessTest.java | 2 +- .../TransactionCanCommitSuccessTest.java | 2 +- .../TransactionCommitSuccessTest.java | 2 +- .../TransactionDoCommitRequestTest.java | 2 +- .../commands/TransactionFailureTest.java | 2 +- .../TransactionPreCommitRequestTest.java | 2 +- .../TransactionPreCommitSuccessTest.java | 2 +- .../commands/TransactionPurgeRequestTest.java | 2 +- .../TransactionPurgeResponseTest.java | 2 +- .../client/ConnectedClientConnectionTest.java | 2 +- .../ReconnectingClientConnectionTest.java | 2 +- .../dds/AbstractShardBackendResolver.java | 4 +- 29 files changed, 47 insertions(+), 88 deletions(-) diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/ABIVersion.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/ABIVersion.java index 6c03e5f171..1ff961f26c 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/ABIVersion.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/ABIVersion.java @@ -36,48 +36,12 @@ public enum ABIVersion implements WritableObject { } }, + // BORON was 5 + // NEON_SR2 was 6 + // SODIUM_SR1 was 7 /** - * Initial ABI version, as shipped with Boron Simultaneous release. - * - * @deprecated This version scheduled for removal in the next major release. - */ - // We seed the initial version to be the same as DataStoreVersions.BORON-VERSION for compatibility reasons. - @Deprecated(since = "6.0.4", forRemoval = true) - BORON(5) { - @Override - public NormalizedNodeStreamVersion getStreamVersion() { - return NormalizedNodeStreamVersion.LITHIUM; - } - }, - /** - * Revised ABI version. The messages remain the same as {@link #BORON}, but messages bearing QNames in any shape - * are using {@link NormalizedNodeStreamVersion#NEON_SR2}, which improves encoding. - * - * @deprecated This version scheduled for removal in the next major release. - */ - @Deprecated(since = "6.0.4", forRemoval = true) - NEON_SR2(6) { - @Override - public NormalizedNodeStreamVersion getStreamVersion() { - return NormalizedNodeStreamVersion.NEON_SR2; - } - }, - /** - * Revised ABI version. The messages remain the same as {@link #BORON}, but messages bearing QNames in any shape - * are using {@link NormalizedNodeStreamVersion#SODIUM_SR1}, which improves encoding. - * - * @deprecated This version scheduled for removal in the next major release. - */ - @Deprecated(since = "6.0.4", forRemoval = true) - SODIUM_SR1(7) { - @Override - public NormalizedNodeStreamVersion getStreamVersion() { - return NormalizedNodeStreamVersion.SODIUM_SR1; - } - }, - /** - * Revised ABI version. The messages remain the same as {@link #BORON}, but messages bearing QNames in any shape - * are using {@link NormalizedNodeStreamVersion#MAGNESIUM}, which improves encoding. + * Oldest ABI version we support. The messages remain the same as {@code BORON}, but messages bearing QNames in any + * shape are using {@link NormalizedNodeStreamVersion#MAGNESIUM}, which improves encoding. */ MAGNESIUM(8) { @Override @@ -146,10 +110,7 @@ public enum ABIVersion implements WritableObject { */ public static @NonNull ABIVersion valueOf(final short value) throws FutureVersionException, PastVersionException { return switch (Short.toUnsignedInt(value)) { - case 0, 1, 2, 3, 4 -> throw new PastVersionException(value, BORON); - case 5 -> BORON; - case 6 -> NEON_SR2; - case 7 -> SODIUM_SR1; + case 0, 1, 2, 3, 4, 6, 7 -> throw new PastVersionException(value, MAGNESIUM); case 8 -> MAGNESIUM; case 9 -> CHLORINE_SR2; default -> throw new FutureVersionException(value, CHLORINE_SR2); diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/Message.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/Message.java index 54cf40a8b0..537b391de9 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/Message.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/Message.java @@ -151,7 +151,7 @@ public abstract class Message verifyNotNull(cloneAsVersion(toVersion)); + case MAGNESIUM, CHLORINE_SR2 -> verifyNotNull(cloneAsVersion(toVersion)); default -> throw new IllegalArgumentException("Unhandled ABI version " + toVersion); }; } diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/ABIVersionTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/ABIVersionTest.java index 0725dfc1d3..8c2ff3bbb7 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/ABIVersionTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/ABIVersionTest.java @@ -10,7 +10,7 @@ package org.opendaylight.controller.cluster.access; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; -import static org.opendaylight.controller.cluster.access.ABIVersion.BORON; +import static org.opendaylight.controller.cluster.access.ABIVersion.MAGNESIUM; import static org.opendaylight.controller.cluster.access.ABIVersion.TEST_FUTURE_VERSION; import static org.opendaylight.controller.cluster.access.ABIVersion.TEST_PAST_VERSION; @@ -23,15 +23,15 @@ public class ABIVersionTest { @Test public void testInvalidVersions() { assertTrue(TEST_PAST_VERSION.compareTo(TEST_FUTURE_VERSION) < 0); - assertTrue(TEST_PAST_VERSION.compareTo(BORON) < 0); - assertTrue(TEST_FUTURE_VERSION.compareTo(BORON) > 0); + assertTrue(TEST_PAST_VERSION.compareTo(MAGNESIUM) < 0); + assertTrue(TEST_FUTURE_VERSION.compareTo(MAGNESIUM) > 0); } @Test - public void testBoronVersion() throws Exception { - assertEquals((short)5, BORON.shortValue()); - assertEquals(BORON, ABIVersion.valueOf(BORON.shortValue())); - assertEquals(BORON, ABIVersion.readFrom(ByteStreams.newDataInput(writeVersion(BORON)))); + public void testMagnesiumVersion() throws Exception { + assertEquals((short)8, MAGNESIUM.shortValue()); + assertEquals(MAGNESIUM, ABIVersion.valueOf(MAGNESIUM.shortValue())); + assertEquals(MAGNESIUM, ABIVersion.readFrom(ByteStreams.newDataInput(writeVersion(MAGNESIUM)))); } @Test diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractLocalTransactionRequestTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractLocalTransactionRequestTest.java index c4e5a243d6..502bcf9b47 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractLocalTransactionRequestTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractLocalTransactionRequestTest.java @@ -26,7 +26,7 @@ public abstract class AbstractLocalTransactionRequestTest alternates = OBJECT.getAlternates(); + final var alternates = OBJECT.getAlternates(); assertArrayEquals(ALTERNATES.toArray(), alternates.toArray()); } @@ -75,7 +74,7 @@ public class ConnectClientSuccessTest extends AbstractRequestSuccessTest { - private static final SkipTransactionsRequest OBJECT = new SkipTransactionsRequest( - TRANSACTION_IDENTIFIER, 0, ACTOR_REF, List.of(UnsignedLong.ONE)); + private static final SkipTransactionsRequest OBJECT = new SkipTransactionsRequest(TRANSACTION_IDENTIFIER, 0, + ACTOR_REF, List.of(UnsignedLong.ONE)); public SkipTransactionsRequestTest() { super(OBJECT, 109, 403); @@ -24,7 +24,7 @@ public class SkipTransactionsRequestTest extends AbstractTransactionRequestTest< @Test public void cloneAsVersionTest() { - final var clone = OBJECT.cloneAsVersion(ABIVersion.BORON); + final var clone = OBJECT.cloneAsVersion(ABIVersion.MAGNESIUM); assertEquals(OBJECT.getSequence(), clone.getSequence()); assertEquals(OBJECT.getTarget(), clone.getTarget()); assertEquals(OBJECT.getReplyTo(), clone.getReplyTo()); diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsResponseTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsResponseTest.java index e0f1700a9f..083bdbb41f 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsResponseTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsResponseTest.java @@ -21,7 +21,7 @@ public class SkipTransactionsResponseTest extends AbstractTransactionSuccessTest @Test public void cloneAsVersionTest() { - final var clone = OBJECT.cloneAsVersion(ABIVersion.BORON); + final var clone = OBJECT.cloneAsVersion(ABIVersion.MAGNESIUM); assertEquals(OBJECT.getSequence(), clone.getSequence()); assertEquals(OBJECT.getTarget(), clone.getTarget()); } diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionAbortRequestTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionAbortRequestTest.java index a262135b48..4345aefb16 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionAbortRequestTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionAbortRequestTest.java @@ -22,7 +22,7 @@ public class TransactionAbortRequestTest extends AbstractTransactionRequestTest< @Test public void cloneAsVersionTest() { - final var clone = OBJECT.cloneAsVersion(ABIVersion.BORON); + final var clone = OBJECT.cloneAsVersion(ABIVersion.MAGNESIUM); assertEquals(OBJECT.getSequence(), clone.getSequence()); assertEquals(OBJECT.getTarget(), clone.getTarget()); assertEquals(OBJECT.getReplyTo(), clone.getReplyTo()); diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionAbortSuccessTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionAbortSuccessTest.java index 8755eee95f..d2ff94444d 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionAbortSuccessTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionAbortSuccessTest.java @@ -21,7 +21,7 @@ public class TransactionAbortSuccessTest extends AbstractTransactionSuccessTest< @Test public void cloneAsVersionTest() { - final var clone = OBJECT.cloneAsVersion(ABIVersion.BORON); + final var clone = OBJECT.cloneAsVersion(ABIVersion.MAGNESIUM); assertEquals(OBJECT.getSequence(), clone.getSequence()); assertEquals(OBJECT.getTarget(), clone.getTarget()); } diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionCanCommitSuccessTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionCanCommitSuccessTest.java index 9927edd1e5..92874f3d7c 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionCanCommitSuccessTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionCanCommitSuccessTest.java @@ -22,7 +22,7 @@ public class TransactionCanCommitSuccessTest extends AbstractTransactionSuccessT @Test public void cloneAsVersionTest() { - final var clone = OBJECT.cloneAsVersion(ABIVersion.BORON); + final var clone = OBJECT.cloneAsVersion(ABIVersion.MAGNESIUM); assertEquals(OBJECT.getSequence(), clone.getSequence()); assertEquals(OBJECT.getTarget(), clone.getTarget()); } diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionCommitSuccessTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionCommitSuccessTest.java index fa72ae0b0c..a435879b90 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionCommitSuccessTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionCommitSuccessTest.java @@ -21,7 +21,7 @@ public class TransactionCommitSuccessTest extends AbstractTransactionSuccessTest @Test public void cloneAsVersionTest() { - final var clone = OBJECT.cloneAsVersion(ABIVersion.BORON); + final var clone = OBJECT.cloneAsVersion(ABIVersion.MAGNESIUM); assertEquals(OBJECT.getSequence(), clone.getSequence()); assertEquals(OBJECT.getTarget(), clone.getTarget()); } diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionDoCommitRequestTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionDoCommitRequestTest.java index f6f7036cb2..875bcfdcba 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionDoCommitRequestTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionDoCommitRequestTest.java @@ -22,7 +22,7 @@ public class TransactionDoCommitRequestTest extends AbstractTransactionRequestTe @Test public void cloneAsVersionTest() { - final var clone = OBJECT.cloneAsVersion(ABIVersion.BORON); + final var clone = OBJECT.cloneAsVersion(ABIVersion.MAGNESIUM); assertEquals(OBJECT.getSequence(), clone.getSequence()); assertEquals(OBJECT.getTarget(), clone.getTarget()); assertEquals(OBJECT.getReplyTo(), clone.getReplyTo()); diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionFailureTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionFailureTest.java index ac5f764707..95fa449e67 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionFailureTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionFailureTest.java @@ -21,7 +21,7 @@ public class TransactionFailureTest extends AbstractRequestFailureTest createConnection() { - final BackendInfo backend = new BackendInfo(backendProbe.ref(), "test", 0L, ABIVersion.BORON, 10); + final BackendInfo backend = new BackendInfo(backendProbe.ref(), "test", 0L, ABIVersion.current(), 10); final ConnectingClientConnection connectingConn = new ConnectingClientConnection<>(context, 0L, backend.getName()); return new ConnectedClientConnection<>(connectingConn, backend); diff --git a/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/ReconnectingClientConnectionTest.java b/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/ReconnectingClientConnectionTest.java index 84cfea481b..367acb3b6d 100644 --- a/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/ReconnectingClientConnectionTest.java +++ b/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/ReconnectingClientConnectionTest.java @@ -44,7 +44,7 @@ public class ReconnectingClientConnectionTest @Override protected ReconnectingClientConnection createConnection() { - final BackendInfo backend = new BackendInfo(backendProbe.ref(), "test", 0L, ABIVersion.BORON, 10); + final BackendInfo backend = new BackendInfo(backendProbe.ref(), "test", 0L, ABIVersion.current(), 10); final ConnectingClientConnection connectingConn = new ConnectingClientConnection<>(context, 0L, backend.getName()); final ConnectedClientConnection connectedConn = diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractShardBackendResolver.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractShardBackendResolver.java index ca784fed7a..95089119e4 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractShardBackendResolver.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractShardBackendResolver.java @@ -74,7 +74,7 @@ abstract class AbstractShardBackendResolver extends BackendInfoResolver new ConnectClientRequest(clientId, t, ABIVersion.BORON, + connectFunction = ExplicitAsk.toScala(t -> new ConnectClientRequest(clientId, t, ABIVersion.MAGNESIUM, ABIVersion.current())); } -- 2.36.6