From 4e17701c40b94af520df4b6a60c1fa175f52e601 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 28 Nov 2022 23:06:52 +0100 Subject: [PATCH 01/69] Bump upstrems Adopt: - odlparent-11.0.3 - yangtools-9.0.4 - mdsal-10.0.4 Change-Id: I41a097ffc5e4f1aae4f81d5e051faed64856d572 Signed-off-by: Robert Varga --- akka/pom.xml | 2 +- akka/repackaged-akka-jar/pom.xml | 2 +- artifacts/pom.xml | 2 +- benchmark/pom.xml | 2 +- bundle-parent/pom.xml | 2 +- docs/pom.xml | 8 ++++---- features/features-controller-experimental/pom.xml | 2 +- features/features-controller-testing/pom.xml | 2 +- features/features-controller/pom.xml | 2 +- features/pom.xml | 2 +- features/single-feature-parent/pom.xml | 2 +- jolokia/pom.xml | 2 +- karaf/pom.xml | 2 +- opendaylight/blueprint/pom.xml | 6 +++--- opendaylight/config/netty-event-executor-config/pom.xml | 2 +- opendaylight/config/netty-threadgroup-config/pom.xml | 2 +- opendaylight/config/netty-timer-config/pom.xml | 2 +- opendaylight/config/pom.xml | 2 +- opendaylight/config/threadpool-config-api/pom.xml | 2 +- opendaylight/config/threadpool-config-impl/pom.xml | 2 +- opendaylight/md-sal/mdsal-it-base/pom.xml | 4 ++-- opendaylight/md-sal/mdsal-it-parent/pom.xml | 2 +- opendaylight/md-sal/parent/pom.xml | 2 +- opendaylight/md-sal/pom.xml | 2 +- opendaylight/md-sal/sal-clustering-config/pom.xml | 2 +- .../samples/clustering-test-app/configuration/pom.xml | 2 +- opendaylight/md-sal/samples/clustering-test-app/pom.xml | 2 +- opendaylight/md-sal/samples/pom.xml | 2 +- pom.xml | 2 +- 29 files changed, 35 insertions(+), 35 deletions(-) diff --git a/akka/pom.xml b/akka/pom.xml index 5374854f077..5c227443a07 100644 --- a/akka/pom.xml +++ b/akka/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.2 + 11.0.3 diff --git a/akka/repackaged-akka-jar/pom.xml b/akka/repackaged-akka-jar/pom.xml index e731a29cc9a..5283c4759c6 100644 --- a/akka/repackaged-akka-jar/pom.xml +++ b/akka/repackaged-akka-jar/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent - 11.0.2 + 11.0.3 diff --git a/artifacts/pom.xml b/artifacts/pom.xml index 962313a714e..fa39a5da8de 100644 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.2 + 11.0.3 diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 58b6dadc53c..406c91af483 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -10,7 +10,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent odlparent-lite - 11.0.2 + 11.0.3 diff --git a/bundle-parent/pom.xml b/bundle-parent/pom.xml index bd027ec19e9..a847825c164 100644 --- a/bundle-parent/pom.xml +++ b/bundle-parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.mdsal dom-parent - 10.0.3 + 10.0.4 diff --git a/docs/pom.xml b/docs/pom.xml index 2b33c3ed513..981cc90c039 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent - 11.0.2 + 11.0.3 @@ -229,9 +229,9 @@ http://netty.io/4.1/api/ https://commons.apache.org/proper/commons-lang/javadocs/api-release/ - https://www.javadoc.io/doc/org.opendaylight.odlparent/odlparent-docs/11.0.2/ - https://www.javadoc.io/doc/org.opendaylight.yangtools/yangtools-docs/9.0.2/ - https://www.javadoc.io/doc/org.opendaylight.mdsal/mdsal-docs/10.0.3/ + https://www.javadoc.io/doc/org.opendaylight.odlparent/odlparent-docs/11.0.3/ + https://www.javadoc.io/doc/org.opendaylight.yangtools/yangtools-docs/9.0.4/ + https://www.javadoc.io/doc/org.opendaylight.mdsal/mdsal-docs/10.0.4/ diff --git a/features/features-controller-experimental/pom.xml b/features/features-controller-experimental/pom.xml index 463b2ba2dbf..a2cd31e439b 100644 --- a/features/features-controller-experimental/pom.xml +++ b/features/features-controller-experimental/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent feature-repo-parent - 11.0.2 + 11.0.3 diff --git a/features/features-controller-testing/pom.xml b/features/features-controller-testing/pom.xml index 7f6fde5f947..4ec5b5c79f5 100644 --- a/features/features-controller-testing/pom.xml +++ b/features/features-controller-testing/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent feature-repo-parent - 11.0.2 + 11.0.3 diff --git a/features/features-controller/pom.xml b/features/features-controller/pom.xml index ebbbb54a4f6..5334e56ee3a 100644 --- a/features/features-controller/pom.xml +++ b/features/features-controller/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent feature-repo-parent - 11.0.2 + 11.0.3 diff --git a/features/pom.xml b/features/pom.xml index 2bb16a6c04e..b3db46680fe 100644 --- a/features/pom.xml +++ b/features/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.2 + 11.0.3 diff --git a/features/single-feature-parent/pom.xml b/features/single-feature-parent/pom.xml index 18f150c2627..bad6e3113f0 100644 --- a/features/single-feature-parent/pom.xml +++ b/features/single-feature-parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent single-feature-parent - 11.0.2 + 11.0.3 diff --git a/jolokia/pom.xml b/jolokia/pom.xml index 91cae74dad3..d5ed008aa75 100644 --- a/jolokia/pom.xml +++ b/jolokia/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent - 11.0.2 + 11.0.3 diff --git a/karaf/pom.xml b/karaf/pom.xml index c4dd2b3f87d..a0728264ef8 100644 --- a/karaf/pom.xml +++ b/karaf/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent karaf4-parent - 11.0.2 + 11.0.3 diff --git a/opendaylight/blueprint/pom.xml b/opendaylight/blueprint/pom.xml index 38d95a61547..3d5ec70b371 100644 --- a/opendaylight/blueprint/pom.xml +++ b/opendaylight/blueprint/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.2 + 11.0.3 @@ -27,14 +27,14 @@ org.opendaylight.yangtools yangtools-artifacts - 9.0.2 + 9.0.4 pom import org.opendaylight.mdsal mdsal-artifacts - 10.0.3 + 10.0.4 pom import diff --git a/opendaylight/config/netty-event-executor-config/pom.xml b/opendaylight/config/netty-event-executor-config/pom.xml index 17cad70fff8..5ce6ba710c4 100644 --- a/opendaylight/config/netty-event-executor-config/pom.xml +++ b/opendaylight/config/netty-event-executor-config/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.2 + 11.0.3 diff --git a/opendaylight/config/netty-threadgroup-config/pom.xml b/opendaylight/config/netty-threadgroup-config/pom.xml index 060426066cf..5a0d5fef1fb 100644 --- a/opendaylight/config/netty-threadgroup-config/pom.xml +++ b/opendaylight/config/netty-threadgroup-config/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.2 + 11.0.3 diff --git a/opendaylight/config/netty-timer-config/pom.xml b/opendaylight/config/netty-timer-config/pom.xml index 8c11ee92293..485d1de4c03 100644 --- a/opendaylight/config/netty-timer-config/pom.xml +++ b/opendaylight/config/netty-timer-config/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.2 + 11.0.3 diff --git a/opendaylight/config/pom.xml b/opendaylight/config/pom.xml index 614c1231e8e..279fa4925eb 100644 --- a/opendaylight/config/pom.xml +++ b/opendaylight/config/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.2 + 11.0.3 diff --git a/opendaylight/config/threadpool-config-api/pom.xml b/opendaylight/config/threadpool-config-api/pom.xml index 63ab7bdc673..cef62c3b81d 100644 --- a/opendaylight/config/threadpool-config-api/pom.xml +++ b/opendaylight/config/threadpool-config-api/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.2 + 11.0.3 diff --git a/opendaylight/config/threadpool-config-impl/pom.xml b/opendaylight/config/threadpool-config-impl/pom.xml index 5148d0923fc..9a1f9608524 100644 --- a/opendaylight/config/threadpool-config-impl/pom.xml +++ b/opendaylight/config/threadpool-config-impl/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.2 + 11.0.3 diff --git a/opendaylight/md-sal/mdsal-it-base/pom.xml b/opendaylight/md-sal/mdsal-it-base/pom.xml index d16185627c2..b78f4337218 100644 --- a/opendaylight/md-sal/mdsal-it-base/pom.xml +++ b/opendaylight/md-sal/mdsal-it-base/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent bundle-parent - 11.0.2 + 11.0.3 @@ -26,7 +26,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.mdsal mdsal-artifacts - 10.0.3 + 10.0.4 pom import diff --git a/opendaylight/md-sal/mdsal-it-parent/pom.xml b/opendaylight/md-sal/mdsal-it-parent/pom.xml index 70e0be7c955..9e3a6db0389 100644 --- a/opendaylight/md-sal/mdsal-it-parent/pom.xml +++ b/opendaylight/md-sal/mdsal-it-parent/pom.xml @@ -13,7 +13,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent bundle-parent - 11.0.2 + 11.0.3 diff --git a/opendaylight/md-sal/parent/pom.xml b/opendaylight/md-sal/parent/pom.xml index fb1f10c0679..bd5907e67b0 100644 --- a/opendaylight/md-sal/parent/pom.xml +++ b/opendaylight/md-sal/parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.mdsal binding-parent - 10.0.3 + 10.0.4 diff --git a/opendaylight/md-sal/pom.xml b/opendaylight/md-sal/pom.xml index b3b818ecce3..3fd295863a3 100644 --- a/opendaylight/md-sal/pom.xml +++ b/opendaylight/md-sal/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.2 + 11.0.3 diff --git a/opendaylight/md-sal/sal-clustering-config/pom.xml b/opendaylight/md-sal/sal-clustering-config/pom.xml index c24bd22fbec..ecb841c7644 100644 --- a/opendaylight/md-sal/sal-clustering-config/pom.xml +++ b/opendaylight/md-sal/sal-clustering-config/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.2 + 11.0.3 diff --git a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml index 073781883b3..8b578a47931 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.2 + 11.0.3 diff --git a/opendaylight/md-sal/samples/clustering-test-app/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/pom.xml index 05468f301eb..defac9af946 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.2 + 11.0.3 diff --git a/opendaylight/md-sal/samples/pom.xml b/opendaylight/md-sal/samples/pom.xml index e71a82be01d..f2efcf542c9 100644 --- a/opendaylight/md-sal/samples/pom.xml +++ b/opendaylight/md-sal/samples/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.2 + 11.0.3 diff --git a/pom.xml b/pom.xml index 91837550c94..e9806023b2e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.2 + 11.0.3 From 6f2ab747cbf2c21fab0e97c52a1153405171542c Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 28 Nov 2022 18:38:48 +0100 Subject: [PATCH 02/69] Add serialVersionUID fields We are missing a few definitions and are about to modify the classes in backwards-compatible ways, but the changes would end up changing the versions. Make sure to define generated serialVersionUIDs. JIRA: CONTROLLER-2051 JIRA: CONTROLLER-2056 Change-Id: I006f51e16dd3fee66fb9c344bb99235780b08d3e Signed-off-by: Robert Varga (cherry picked from commit 0597bd64ca6214fd3ca3fb152ab2ca7fd3b32ed5) --- .../access/commands/ConnectClientFailureProxyV1.java | 4 ++++ .../access/commands/ConnectClientRequestProxyV1.java | 8 ++++++-- .../IncrementTransactionSequenceRequestProxyV1.java | 6 +++++- .../access/commands/SkipTransactionsRequestV1.java | 4 ++++ .../cluster/access/concepts/FailureEnvelopeTest.java | 5 ++++- .../cluster/datastore/messages/AbortTransactionReply.java | 3 ++- .../datastore/messages/CanCommitTransactionReply.java | 3 +++ .../datastore/messages/CommitTransactionReply.java | 4 +++- .../cluster/datastore/messages/EmptyExternalizable.java | 2 ++ .../datastore/modification/AbstractModification.java | 2 ++ .../datastore/persisted/DisableTrackingPayload.java | 3 +++ .../datastore/persisted/ShardDataTreeSnapshotTest.java | 3 +++ 12 files changed, 41 insertions(+), 6 deletions(-) diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientFailureProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientFailureProxyV1.java index 55efb283c07..84a10dae160 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientFailureProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientFailureProxyV1.java @@ -9,6 +9,7 @@ import java.io.DataInput; import java.io.IOException; +import java.io.Serial; import org.opendaylight.controller.cluster.access.concepts.AbstractRequestFailureProxy; import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier; import org.opendaylight.controller.cluster.access.concepts.RequestException; @@ -20,6 +21,9 @@ * @author Robert Varga */ final class ConnectClientFailureProxyV1 extends AbstractRequestFailureProxy { + @Serial + private static final long serialVersionUID = 2688639416324657256L; + // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to // be able to create instances via reflection. @SuppressWarnings("checkstyle:RedundantModifier") diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientRequestProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientRequestProxyV1.java index da3a601db75..b420125b831 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientRequestProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientRequestProxyV1.java @@ -12,6 +12,7 @@ import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; +import java.io.Serial; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.AbstractRequestProxy; import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier; @@ -23,6 +24,9 @@ * @author Robert Varga */ final class ConnectClientRequestProxyV1 extends AbstractRequestProxy { + @Serial + private static final long serialVersionUID = 8439729661327852159L; + private ABIVersion minVersion; private ABIVersion maxVersion; @@ -35,8 +39,8 @@ public ConnectClientRequestProxyV1() { ConnectClientRequestProxyV1(final ConnectClientRequest request) { super(request); - this.minVersion = request.getMinVersion(); - this.maxVersion = request.getMaxVersion(); + minVersion = request.getMinVersion(); + maxVersion = request.getMaxVersion(); } @Override diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/IncrementTransactionSequenceRequestProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/IncrementTransactionSequenceRequestProxyV1.java index da1659e1fe5..c400b3c7506 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/IncrementTransactionSequenceRequestProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/IncrementTransactionSequenceRequestProxyV1.java @@ -11,11 +11,15 @@ import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; +import java.io.Serial; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.yangtools.concepts.WritableObjects; final class IncrementTransactionSequenceRequestProxyV1 extends AbstractReadTransactionRequestProxyV1 { + @Serial + private static final long serialVersionUID = -7345885599575376005L; + private long increment; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to @@ -27,7 +31,7 @@ public IncrementTransactionSequenceRequestProxyV1() { IncrementTransactionSequenceRequestProxyV1(final IncrementTransactionSequenceRequest request) { super(request); - this.increment = request.getIncrement(); + increment = request.getIncrement(); } @Override diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsRequestV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsRequestV1.java index c7c383cf8d7..26d660f1d9d 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsRequestV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsRequestV1.java @@ -13,6 +13,7 @@ import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; +import java.io.Serial; import java.util.List; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.yangtools.concepts.WritableObjects; @@ -22,6 +23,9 @@ * (Phosphorus SR1) serialization format. */ final class SkipTransactionsRequestV1 extends AbstractTransactionRequestProxy { + @Serial + private static final long serialVersionUID = -7493419007644462643L; + private List others; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/FailureEnvelopeTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/FailureEnvelopeTest.java index 733c3c75250..93f93b6d490 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/FailureEnvelopeTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/FailureEnvelopeTest.java @@ -11,6 +11,7 @@ import java.io.DataInput; import java.io.IOException; +import java.io.Serial; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.yangtools.concepts.WritableIdentifier; @@ -33,6 +34,8 @@ protected void doAdditionalAssertions(final FailureEnvelope envelope, final Fail } private static class MockRequestFailureProxy extends AbstractRequestFailureProxy { + @Serial + private static final long serialVersionUID = 5015515628523887221L; @SuppressWarnings("checkstyle:RedundantModifier") public MockRequestFailureProxy() { @@ -53,10 +56,10 @@ protected MockFailure createFailure(final WritableIdentifier target, final long protected WritableIdentifier readTarget(final DataInput in) throws IOException { return TransactionIdentifier.readFrom(in); } - } private static class MockFailure extends RequestFailure { + @Serial private static final long serialVersionUID = 1L; MockFailure(final WritableIdentifier target, final RequestException cause, final long sequence) { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/AbortTransactionReply.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/AbortTransactionReply.java index 3b58458e1a3..8d3fb17c20b 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/AbortTransactionReply.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/AbortTransactionReply.java @@ -5,12 +5,13 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.controller.cluster.datastore.messages; import org.opendaylight.controller.cluster.datastore.DataStoreVersions; public class AbortTransactionReply extends VersionedExternalizableMessage { + @java.io.Serial + private static final long serialVersionUID = 7251132353204199793L; private static final AbortTransactionReply INSTANCE = new AbortTransactionReply(); public AbortTransactionReply() { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/CanCommitTransactionReply.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/CanCommitTransactionReply.java index f346cba4334..51fa29f1130 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/CanCommitTransactionReply.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/CanCommitTransactionReply.java @@ -15,6 +15,9 @@ import org.opendaylight.controller.cluster.datastore.DataStoreVersions; public class CanCommitTransactionReply extends VersionedExternalizableMessage { + @java.io.Serial + private static final long serialVersionUID = 4355566635423934872L; + private static final CanCommitTransactionReply YES = new CanCommitTransactionReply(true, DataStoreVersions.CURRENT_VERSION); private static final CanCommitTransactionReply NO = diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/CommitTransactionReply.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/CommitTransactionReply.java index cd3a13a9f7a..1dd8e8ec8f2 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/CommitTransactionReply.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/CommitTransactionReply.java @@ -5,12 +5,14 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.controller.cluster.datastore.messages; import org.opendaylight.controller.cluster.datastore.DataStoreVersions; public class CommitTransactionReply extends VersionedExternalizableMessage { + @java.io.Serial + private static final long serialVersionUID = -8342450250867395000L; + public static final CommitTransactionReply INSTANCE = new CommitTransactionReply(); public CommitTransactionReply() { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/EmptyExternalizable.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/EmptyExternalizable.java index c7ee83a819f..79f97e84be9 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/EmptyExternalizable.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/EmptyExternalizable.java @@ -17,6 +17,8 @@ * @author Thomas Pantelis */ public class EmptyExternalizable implements Externalizable { + @java.io.Serial + private static final long serialVersionUID = 8413772905242947276L; @Override public void readExternal(ObjectInput in) { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/AbstractModification.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/AbstractModification.java index 33bd4d45e19..2645a03538b 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/AbstractModification.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/AbstractModification.java @@ -14,6 +14,8 @@ * Base class to be used for all simple modifications that can be applied to a DOMStoreTransaction. */ public abstract class AbstractModification implements Modification { + @java.io.Serial + private static final long serialVersionUID = 2647778426312509718L; private YangInstanceIdentifier path; private short version; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DisableTrackingPayload.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DisableTrackingPayload.java index d8684fef985..318df05d92f 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DisableTrackingPayload.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DisableTrackingPayload.java @@ -17,6 +17,9 @@ public final class DisableTrackingPayload extends AbstractIdentifiablePayload { private static final class Proxy extends AbstractProxy { + @java.io.Serial + private static final long serialVersionUID = -5490519942445085251L; + @SuppressWarnings("checkstyle:RedundantModifier") public Proxy() { // For Externalizable diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/ShardDataTreeSnapshotTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/ShardDataTreeSnapshotTest.java index 22d844a2219..28fe35e9dd3 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/ShardDataTreeSnapshotTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/ShardDataTreeSnapshotTest.java @@ -123,6 +123,9 @@ public boolean equals(final Object obj) { } private static class Proxy implements Externalizable { + @java.io.Serial + private static final long serialVersionUID = 7534948936595056176L; + private String data; @SuppressWarnings("checkstyle:RedundantModifier") From df7659781e0d668b7bc7e70091e21c61f368afbe Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sat, 26 Nov 2022 12:42:15 +0100 Subject: [PATCH 03/69] Assert payload serialized size We want to be in control over the size of our serialization, make sure to add assertions. JIRA: CONTROLLER-2051 JIRA: CONTROLLER-2056 Change-Id: I72957eaf284bfd5498cfdb11301239ac50d612f1 Signed-off-by: Robert Varga (cherry picked from commit deaa438d6cb6d271bd800bb1879dbdc2360e5392) --- .../AbortLocalTransactionRequestTest.java | 13 +++-- .../AbstractLocalTransactionRequestTest.java | 5 +- .../AbstractReadTransactionRequestTest.java | 18 ++++--- .../AbstractTransactionRequestTest.java | 16 +++---- .../CommitLocalTransactionRequestTest.java | 29 +++++------ .../commands/ConnectClientRequestTest.java | 45 +++++++++-------- .../ExistsTransactionRequestTest.java | 29 ++++++----- .../ModifyTransactionRequestEmptyTest.java | 44 +++++++---------- .../ModifyTransactionRequestTest.java | 48 ++++++++----------- .../commands/ReadTransactionRequestTest.java | 29 ++++++----- .../commands/SkipTransactionsRequestTest.java | 15 ++---- .../commands/TransactionAbortRequestTest.java | 20 ++++---- .../TransactionDoCommitRequestTest.java | 20 ++++---- .../TransactionPreCommitRequestTest.java | 20 ++++---- .../commands/TransactionPurgeRequestTest.java | 20 ++++---- .../access/concepts/AbstractEnvelopeTest.java | 38 +++++++++------ .../access/concepts/AbstractRequestTest.java | 32 +++++++++---- .../access/concepts/FailureEnvelopeTest.java | 15 +++--- .../access/concepts/RequestEnvelopeTest.java | 32 +++++++------ .../access/concepts/SuccessEnvelopeTest.java | 14 +++--- .../cluster/datastore/AbstractTest.java | 12 ++++- .../messages/CloseTransactionChainTest.java | 10 ++-- .../AbortTransactionPayloadTest.java | 6 +-- .../AbstractIdentifiablePayloadTest.java | 20 +++++--- .../CloseLocalHistoryPayloadTest.java | 6 +-- .../CommitTransactionPayloadTest.java | 1 + .../CreateLocalHistoryPayloadTest.java | 6 +-- .../PurgeLocalHistoryPayloadTest.java | 6 +-- .../PurgeTransactionPayloadTest.java | 6 +-- .../SkipTransactionsPayloadTest.java | 5 +- 30 files changed, 293 insertions(+), 287 deletions(-) diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbortLocalTransactionRequestTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbortLocalTransactionRequestTest.java index 60e7dc83884..2235e0e3326 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbortLocalTransactionRequestTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbortLocalTransactionRequestTest.java @@ -7,7 +7,8 @@ */ package org.opendaylight.controller.cluster.access.commands; -import org.junit.Assert; +import static org.junit.Assert.assertEquals; + import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier; import org.opendaylight.controller.cluster.access.concepts.FrontendIdentifier; import org.opendaylight.controller.cluster.access.concepts.FrontendType; @@ -25,14 +26,12 @@ public class AbortLocalTransactionRequestTest private static final AbortLocalTransactionRequest OBJECT = new AbortLocalTransactionRequest(TRANSACTION, ACTOR_REF); - @Override - protected AbortLocalTransactionRequest object() { - return OBJECT; + public AbortLocalTransactionRequestTest() { + super(OBJECT, 0); } @Override - protected void doAdditionalAssertions(final Object deserialize) { - Assert.assertTrue(deserialize instanceof AbortLocalTransactionRequest); - Assert.assertEquals(OBJECT.getReplyTo(), ((AbortLocalTransactionRequest) deserialize).getReplyTo()); + protected void doAdditionalAssertions(final AbortLocalTransactionRequest deserialize) { + assertEquals(OBJECT.getReplyTo(), deserialize.getReplyTo()); } } \ No newline at end of file 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 49755f75221..77e975e8e6f 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 @@ -20,8 +20,9 @@ public abstract class AbstractLocalTransactionRequestTest> extends AbstractTransactionRequestTest { - @Override - protected abstract T object(); + protected AbstractLocalTransactionRequestTest(final T object, final int baseSize) { + super(object, baseSize); + } @Test public void cloneAsVersionTest() { diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractReadTransactionRequestTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractReadTransactionRequestTest.java index f1fe2c08f91..df8407b3f0e 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractReadTransactionRequestTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractReadTransactionRequestTest.java @@ -7,8 +7,11 @@ */ package org.opendaylight.controller.cluster.access.commands; +import static org.hamcrest.CoreMatchers.containsString; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.Assert.assertEquals; + import com.google.common.base.MoreObjects; -import org.junit.Assert; import org.junit.Test; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; @@ -17,22 +20,23 @@ public abstract class AbstractReadTransactionRequestTest MODIFICATIONS = Lists.newArrayList( + private static final List MODIFICATIONS = List.of( new TransactionWrite(YangInstanceIdentifier.empty(), NODE)); private static final PersistenceProtocol PROTOCOL = PersistenceProtocol.ABORT; - private static final ModifyTransactionRequest OBJECT = new ModifyTransactionRequest( - TRANSACTION_IDENTIFIER, 0, ACTOR_REF, MODIFICATIONS, PROTOCOL); + private static final ModifyTransactionRequest OBJECT = new ModifyTransactionRequest(TRANSACTION_IDENTIFIER, 0, + ACTOR_REF, MODIFICATIONS, PROTOCOL); - @Override - protected ModifyTransactionRequest object() { - return OBJECT; + public ModifyTransactionRequestTest() { + super(OBJECT, 440); } @Test public void getPersistenceProtocolTest() { - final Optional result = OBJECT.getPersistenceProtocol(); - assertTrue(result.isPresent()); - assertEquals(PROTOCOL, result.get()); + assertEquals(Optional.of(PROTOCOL), OBJECT.getPersistenceProtocol()); } @Test public void getModificationsTest() { - final List result = OBJECT.getModifications(); - assertNotNull(result); - assertEquals(MODIFICATIONS, result); + assertEquals(MODIFICATIONS, OBJECT.getModifications()); } @Test public void addToStringAttributesTest() { - final MoreObjects.ToStringHelper result = OBJECT.addToStringAttributes(MoreObjects.toStringHelper(OBJECT)); - assertTrue(result.toString().contains("modifications=1")); - assertTrue(result.toString().contains("protocol=" + PROTOCOL)); + final var result = OBJECT.addToStringAttributes(MoreObjects.toStringHelper(OBJECT)).toString(); + assertThat(result, containsString("modifications=1")); + assertThat(result, containsString("protocol=" + PROTOCOL)); } @Test public void cloneAsVersionTest() { - final ModifyTransactionRequest clone = OBJECT.cloneAsVersion(ABIVersion.BORON); - Assert.assertEquals(OBJECT, clone); + assertEquals(OBJECT, OBJECT.cloneAsVersion(ABIVersion.BORON)); } @Override - protected void doAdditionalAssertions(final Object deserialize) { - assertTrue(deserialize instanceof ModifyTransactionRequest); - final ModifyTransactionRequest casted = (ModifyTransactionRequest) deserialize; - - assertEquals(OBJECT.getReplyTo(), casted.getReplyTo()); - assertEquals(OBJECT.getPersistenceProtocol(), casted.getPersistenceProtocol()); + protected void doAdditionalAssertions(final ModifyTransactionRequest deserialize) { + assertEquals(OBJECT.getReplyTo(), deserialize.getReplyTo()); + assertEquals(OBJECT.getPersistenceProtocol(), deserialize.getPersistenceProtocol()); - assertNotNull(casted.getModifications()); - assertEquals(1, casted.getModifications().size()); - final TransactionModification modification = casted.getModifications().get(0); + assertNotNull(deserialize.getModifications()); + assertEquals(1, deserialize.getModifications().size()); + final var modification = deserialize.getModifications().get(0); assertEquals(YangInstanceIdentifier.empty(), modification.getPath()); assertEquals(TYPE_WRITE, modification.getType()); } diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionRequestTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionRequestTest.java index c4096833ca2..4009f8e5510 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionRequestTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionRequestTest.java @@ -7,32 +7,31 @@ */ package org.opendaylight.controller.cluster.access.commands; -import org.junit.Assert; +import static org.junit.Assert.assertEquals; + import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; public class ReadTransactionRequestTest extends AbstractReadTransactionRequestTest { - private static final ReadTransactionRequest OBJECT = new ReadTransactionRequest( - TRANSACTION_IDENTIFIER, 0, ACTOR_REF, PATH, SNAPSHOT_ONLY); + private static final ReadTransactionRequest OBJECT = new ReadTransactionRequest(TRANSACTION_IDENTIFIER, 0, + ACTOR_REF, PATH, SNAPSHOT_ONLY); - @Override - protected ReadTransactionRequest object() { - return OBJECT; + public ReadTransactionRequestTest() { + super(OBJECT, 618); } @Test public void cloneAsVersionTest() { - final ABIVersion cloneVersion = ABIVersion.TEST_FUTURE_VERSION; - final ReadTransactionRequest clone = OBJECT.cloneAsVersion(cloneVersion); - Assert.assertEquals(cloneVersion, clone.getVersion()); - Assert.assertEquals(OBJECT.getPath(), clone.getPath()); - Assert.assertEquals(OBJECT.isSnapshotOnly(), clone.isSnapshotOnly()); + final var cloneVersion = ABIVersion.TEST_FUTURE_VERSION; + final var clone = OBJECT.cloneAsVersion(cloneVersion); + assertEquals(cloneVersion, clone.getVersion()); + assertEquals(OBJECT.getPath(), clone.getPath()); + assertEquals(OBJECT.isSnapshotOnly(), clone.isSnapshotOnly()); } @Override - protected void doAdditionalAssertions(final Object deserialize) { - Assert.assertTrue(deserialize instanceof ReadTransactionRequest); - Assert.assertEquals(OBJECT.getReplyTo(), ((ReadTransactionRequest) deserialize).getReplyTo()); - Assert.assertEquals(OBJECT.getPath(), ((ReadTransactionRequest) deserialize).getPath()); + protected void doAdditionalAssertions(final ReadTransactionRequest deserialize) { + assertEquals(OBJECT.getReplyTo(), deserialize.getReplyTo()); + assertEquals(OBJECT.getPath(), deserialize.getPath()); } } \ No newline at end of file diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsRequestTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsRequestTest.java index 39076e30072..51bd58b3f85 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsRequestTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsRequestTest.java @@ -7,8 +7,6 @@ */ package org.opendaylight.controller.cluster.access.commands; -import static org.hamcrest.CoreMatchers.instanceOf; -import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertEquals; import com.google.common.primitives.UnsignedLong; @@ -20,20 +18,17 @@ public class SkipTransactionsRequestTest extends AbstractTransactionRequestTest< private static final SkipTransactionsRequest OBJECT = new SkipTransactionsRequest( TRANSACTION_IDENTIFIER, 0, ACTOR_REF, List.of(UnsignedLong.ONE)); - @Override - protected SkipTransactionsRequest object() { - return OBJECT; + public SkipTransactionsRequestTest() { + super(OBJECT, 403); } @Test public void cloneAsVersionTest() { - final SkipTransactionsRequest clone = OBJECT.cloneAsVersion(ABIVersion.BORON); - assertEquals(OBJECT, clone); + assertEquals(OBJECT, OBJECT.cloneAsVersion(ABIVersion.BORON)); } @Override - protected void doAdditionalAssertions(final Object deserialize) { - assertThat(deserialize, instanceOf(SkipTransactionsRequest.class)); - assertEquals(OBJECT.getReplyTo(), ((SkipTransactionsRequest) deserialize).getReplyTo()); + protected void doAdditionalAssertions(final SkipTransactionsRequest deserialize) { + assertEquals(OBJECT.getReplyTo(), deserialize.getReplyTo()); } } \ No newline at end of file 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 9c7dbf11d72..cf7ab56a9f0 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 @@ -7,28 +7,26 @@ */ package org.opendaylight.controller.cluster.access.commands; -import org.junit.Assert; +import static org.junit.Assert.assertEquals; + import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; public class TransactionAbortRequestTest extends AbstractTransactionRequestTest { - private static final TransactionAbortRequest OBJECT = new TransactionAbortRequest( - TRANSACTION_IDENTIFIER, 0, ACTOR_REF); + private static final TransactionAbortRequest OBJECT = new TransactionAbortRequest(TRANSACTION_IDENTIFIER, 0, + ACTOR_REF); - @Override - protected TransactionAbortRequest object() { - return OBJECT; + public TransactionAbortRequestTest() { + super(OBJECT, 400); } @Test public void cloneAsVersionTest() { - final TransactionAbortRequest clone = OBJECT.cloneAsVersion(ABIVersion.BORON); - Assert.assertEquals(OBJECT, clone); + assertEquals(OBJECT, OBJECT.cloneAsVersion(ABIVersion.BORON)); } @Override - protected void doAdditionalAssertions(final Object deserialize) { - Assert.assertTrue(deserialize instanceof TransactionAbortRequest); - Assert.assertEquals(OBJECT.getReplyTo(), ((TransactionAbortRequest)deserialize).getReplyTo()); + protected void doAdditionalAssertions(final TransactionAbortRequest deserialize) { + assertEquals(OBJECT.getReplyTo(), deserialize.getReplyTo()); } } \ No newline at end of file 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 26f1a379bbe..8e52cc976fd 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 @@ -7,28 +7,26 @@ */ package org.opendaylight.controller.cluster.access.commands; -import org.junit.Assert; +import static org.junit.Assert.assertEquals; + import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; public class TransactionDoCommitRequestTest extends AbstractTransactionRequestTest { - private static final TransactionDoCommitRequest OBJECT = new TransactionDoCommitRequest( - TRANSACTION_IDENTIFIER, 0, ACTOR_REF); + private static final TransactionDoCommitRequest OBJECT = new TransactionDoCommitRequest(TRANSACTION_IDENTIFIER, 0, + ACTOR_REF); - @Override - protected TransactionDoCommitRequest object() { - return OBJECT; + public TransactionDoCommitRequestTest() { + super(OBJECT, 403); } @Test public void cloneAsVersionTest() { - final TransactionDoCommitRequest clone = OBJECT.cloneAsVersion(ABIVersion.BORON); - Assert.assertEquals(OBJECT, clone); + assertEquals(OBJECT, OBJECT.cloneAsVersion(ABIVersion.BORON)); } @Override - protected void doAdditionalAssertions(final Object deserialize) { - Assert.assertTrue(deserialize instanceof TransactionDoCommitRequest); - Assert.assertEquals(OBJECT.getReplyTo(), ((TransactionDoCommitRequest) deserialize).getReplyTo()); + protected void doAdditionalAssertions(final TransactionDoCommitRequest deserialize) { + assertEquals(OBJECT.getReplyTo(), deserialize.getReplyTo()); } } \ No newline at end of file diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitRequestTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitRequestTest.java index ceac8606b87..e9dd25c0363 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitRequestTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitRequestTest.java @@ -7,28 +7,26 @@ */ package org.opendaylight.controller.cluster.access.commands; -import org.junit.Assert; +import static org.junit.Assert.assertEquals; + import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; public class TransactionPreCommitRequestTest extends AbstractTransactionRequestTest { - private static final TransactionPreCommitRequest OBJECT = new TransactionPreCommitRequest( - TRANSACTION_IDENTIFIER, 0, ACTOR_REF); + private static final TransactionPreCommitRequest OBJECT = new TransactionPreCommitRequest(TRANSACTION_IDENTIFIER, 0, + ACTOR_REF); - @Override - protected TransactionPreCommitRequest object() { - return OBJECT; + public TransactionPreCommitRequestTest() { + super(OBJECT, 404); } @Test public void cloneAsVersionTest() { - final TransactionPreCommitRequest clone = OBJECT.cloneAsVersion(ABIVersion.BORON); - Assert.assertEquals(OBJECT, clone); + assertEquals(OBJECT, OBJECT.cloneAsVersion(ABIVersion.BORON)); } @Override - protected void doAdditionalAssertions(final Object deserialize) { - Assert.assertTrue(deserialize instanceof TransactionPreCommitRequest); - Assert.assertEquals(OBJECT.getReplyTo(), ((TransactionPreCommitRequest) deserialize).getReplyTo()); + protected void doAdditionalAssertions(final TransactionPreCommitRequest deserialize) { + assertEquals(OBJECT.getReplyTo(), deserialize.getReplyTo()); } } \ No newline at end of file diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeRequestTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeRequestTest.java index 5ae9f26dbf5..087b515816d 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeRequestTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeRequestTest.java @@ -7,28 +7,26 @@ */ package org.opendaylight.controller.cluster.access.commands; -import org.junit.Assert; +import static org.junit.Assert.assertEquals; + import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; public class TransactionPurgeRequestTest extends AbstractTransactionRequestTest { - private static final TransactionPurgeRequest OBJECT = new TransactionPurgeRequest( - TRANSACTION_IDENTIFIER, 0, ACTOR_REF); + private static final TransactionPurgeRequest OBJECT = new TransactionPurgeRequest(TRANSACTION_IDENTIFIER, 0, + ACTOR_REF); - @Override - protected TransactionPurgeRequest object() { - return OBJECT; + public TransactionPurgeRequestTest() { + super(OBJECT, 400); } @Test public void cloneAsVersionTest() { - final TransactionPurgeRequest clone = OBJECT.cloneAsVersion(ABIVersion.BORON); - Assert.assertEquals(OBJECT, clone); + assertEquals(OBJECT, OBJECT.cloneAsVersion(ABIVersion.BORON)); } @Override - protected void doAdditionalAssertions(final Object deserialize) { - Assert.assertTrue(deserialize instanceof TransactionPurgeRequest); - Assert.assertEquals(OBJECT.getReplyTo(), ((TransactionPurgeRequest) deserialize).getReplyTo()); + protected void doAdditionalAssertions(final TransactionPurgeRequest deserialize) { + assertEquals(OBJECT.getReplyTo(), deserialize.getReplyTo()); } } \ No newline at end of file diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/AbstractEnvelopeTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/AbstractEnvelopeTest.java index f0f5d3d26c5..d4a0fc9de3b 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/AbstractEnvelopeTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/AbstractEnvelopeTest.java @@ -7,12 +7,18 @@ */ package org.opendaylight.controller.cluster.access.concepts; +import static java.util.Objects.requireNonNull; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.apache.commons.lang.SerializationUtils; -import org.junit.Assert; import org.junit.Before; import org.junit.Test; public abstract class AbstractEnvelopeTest> { + protected record EnvelopeDetails>(E envelope, int expectedSize) { + // Nothing else + } + private static final FrontendIdentifier FRONTEND = new FrontendIdentifier(MemberName.forName("test"), FrontendIdentifierTest.ONE_FRONTEND_TYPE); private static final ClientIdentifier CLIENT = new ClientIdentifier(FRONTEND, 0); @@ -20,33 +26,37 @@ public abstract class AbstractEnvelopeTest> { protected static final TransactionIdentifier OBJECT = new TransactionIdentifier(HISTORY, 0); private E envelope; + private int expectedSize; @Before public void setUp() throws Exception { - envelope = createEnvelope(); + final var details = createEnvelope(); + envelope = requireNonNull(details.envelope); + expectedSize = details.expectedSize; } @Test public void testProxySerializationDeserialization() { final byte[] serializedBytes = SerializationUtils.serialize(envelope); - final Object deserialize = SerializationUtils.deserialize(serializedBytes); - checkDeserialized((E) deserialize); + assertEquals(expectedSize, serializedBytes.length); + @SuppressWarnings("unchecked") + final E deserialize = (E) SerializationUtils.deserialize(serializedBytes); + checkDeserialized(deserialize); } private void checkDeserialized(final E deserializedEnvelope) { - Assert.assertEquals(envelope.getSessionId(), deserializedEnvelope.getSessionId()); - Assert.assertEquals(envelope.getTxSequence(), deserializedEnvelope.getTxSequence()); - final Message expectedMessage = envelope.getMessage(); - final Message actualMessage = deserializedEnvelope.getMessage(); - Assert.assertEquals(expectedMessage.getSequence(), actualMessage.getSequence()); - Assert.assertEquals(expectedMessage.getTarget(), actualMessage.getTarget()); - Assert.assertEquals(expectedMessage.getVersion(), actualMessage.getVersion()); - Assert.assertEquals(expectedMessage.getClass(), actualMessage.getClass()); + assertEquals(envelope.getSessionId(), deserializedEnvelope.getSessionId()); + assertEquals(envelope.getTxSequence(), deserializedEnvelope.getTxSequence()); + final var expectedMessage = envelope.getMessage(); + final var actualMessage = deserializedEnvelope.getMessage(); + assertEquals(expectedMessage.getSequence(), actualMessage.getSequence()); + assertEquals(expectedMessage.getTarget(), actualMessage.getTarget()); + assertEquals(expectedMessage.getVersion(), actualMessage.getVersion()); + assertEquals(expectedMessage.getClass(), actualMessage.getClass()); doAdditionalAssertions(envelope, deserializedEnvelope); } - protected abstract E createEnvelope(); + protected abstract EnvelopeDetails createEnvelope(); - @SuppressWarnings("checkstyle:hiddenField") protected abstract void doAdditionalAssertions(E envelope, E resolvedObject); } diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/AbstractRequestTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/AbstractRequestTest.java index e5fb8bc9cc2..22be739bff6 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/AbstractRequestTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/AbstractRequestTest.java @@ -7,6 +7,7 @@ */ package org.opendaylight.controller.cluster.access.concepts; +import static java.util.Objects.requireNonNull; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertEquals; @@ -24,8 +25,19 @@ public abstract class AbstractRequestTest> { private static final ActorSystem SYSTEM = ActorSystem.create("test"); protected static final ActorRef ACTOR_REF = TestProbe.apply(SYSTEM).ref(); + private static final int ACTOR_REF_SIZE = ACTOR_REF.path().toSerializationFormat().length(); - protected abstract T object(); + private final T object; + private final int expectedSize; + + protected AbstractRequestTest(final T object, final int baseSize) { + this.object = requireNonNull(object); + this.expectedSize = baseSize + ACTOR_REF_SIZE; + } + + protected final T object() { + return object; + } @Before public void setUp() { @@ -34,25 +46,27 @@ public void setUp() { @Test public void getReplyToTest() { - assertEquals(ACTOR_REF, object().getReplyTo()); + assertEquals(ACTOR_REF, object.getReplyTo()); } @Test public void addToStringAttributesCommonTest() { - final var result = object().addToStringAttributes(MoreObjects.toStringHelper(object())); + final var result = object.addToStringAttributes(MoreObjects.toStringHelper(object)); assertThat(result.toString(), containsString("replyTo=" + ACTOR_REF)); } - @SuppressWarnings("unchecked") @Test public void serializationTest() { - final Object deserialize = SerializationUtils.clone(object()); + final byte[] bytes = SerializationUtils.serialize(object); + assertEquals(expectedSize, bytes.length); + @SuppressWarnings("unchecked") + final T deserialize = (T) SerializationUtils.deserialize(bytes); - assertEquals(object().getTarget(), ((T) deserialize).getTarget()); - assertEquals(object().getVersion(), ((T) deserialize).getVersion()); - assertEquals(object().getSequence(), ((T) deserialize).getSequence()); + assertEquals(object.getTarget(), deserialize.getTarget()); + assertEquals(object.getVersion(), deserialize.getVersion()); + assertEquals(object.getSequence(), deserialize.getSequence()); doAdditionalAssertions(deserialize); } - protected abstract void doAdditionalAssertions(Object deserialize); + protected abstract void doAdditionalAssertions(T deserialize); } diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/FailureEnvelopeTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/FailureEnvelopeTest.java index 93f93b6d490..5bf162f059d 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/FailureEnvelopeTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/FailureEnvelopeTest.java @@ -12,23 +12,24 @@ import java.io.DataInput; import java.io.IOException; import java.io.Serial; +import org.apache.commons.lang.SerializationUtils; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.yangtools.concepts.WritableIdentifier; public class FailureEnvelopeTest extends AbstractEnvelopeTest { - @Override - protected FailureEnvelope createEnvelope() { - final RequestFailure message = - new MockFailure(OBJECT, new RuntimeRequestException("msg", new RuntimeException()), 42); - return new FailureEnvelope(message, 1L, 2L, 11L); + protected EnvelopeDetails createEnvelope() { + final var cause = new RuntimeRequestException("msg", new RuntimeException()); + final int causeSize = SerializationUtils.serialize(cause).length; + return new EnvelopeDetails<>(new FailureEnvelope(new MockFailure(OBJECT, cause, 42), 1L, 2L, 11L), + causeSize + 687); } @Override protected void doAdditionalAssertions(final FailureEnvelope envelope, final FailureEnvelope resolvedObject) { assertEquals(envelope.getExecutionTimeNanos(), resolvedObject.getExecutionTimeNanos()); - final RequestException expectedCause = envelope.getMessage().getCause(); - final RequestException actualCause = resolvedObject.getMessage().getCause(); + final var expectedCause = envelope.getMessage().getCause(); + final var actualCause = resolvedObject.getMessage().getCause(); assertEquals(expectedCause.getMessage(), actualCause.getMessage()); assertEquals(expectedCause.isRetriable(), actualCause.isRetriable()); } diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/RequestEnvelopeTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/RequestEnvelopeTest.java index b63dc4c78c7..f5e1f28590f 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/RequestEnvelopeTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/RequestEnvelopeTest.java @@ -7,19 +7,21 @@ */ package org.opendaylight.controller.cluster.access.concepts; +import static org.hamcrest.CoreMatchers.instanceOf; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.Assert.assertEquals; + import akka.actor.ActorRef; import akka.actor.ActorSystem; import akka.actor.ExtendedActorSystem; import akka.serialization.JavaSerializer; import akka.testkit.TestProbe; import org.junit.After; -import org.junit.Assert; import org.junit.Before; import org.opendaylight.controller.cluster.access.commands.TransactionPurgeRequest; import org.opendaylight.controller.cluster.access.commands.TransactionPurgeResponse; public class RequestEnvelopeTest extends AbstractEnvelopeTest { - private ActorSystem system; private ActorRef replyTo; private TestProbe replyToProbe; @@ -33,27 +35,29 @@ public void setUp() throws Exception { } @Override - protected RequestEnvelope createEnvelope() { + protected EnvelopeDetails createEnvelope() { replyToProbe = new TestProbe(system); replyTo = replyToProbe.ref(); - final TransactionPurgeRequest message = new TransactionPurgeRequest(OBJECT, 2L, replyTo); - return new RequestEnvelope(message, 1L, 2L); + final int refSize = replyTo.path().toSerializationFormat().length(); + + return new EnvelopeDetails<>(new RequestEnvelope(new TransactionPurgeRequest(OBJECT, 2L, replyTo), 1L, 2L), + refSize + 584); } @Override protected void doAdditionalAssertions(final RequestEnvelope envelope, final RequestEnvelope resolvedObject) { final Request actual = resolvedObject.getMessage(); - Assert.assertTrue(actual instanceof TransactionPurgeRequest); - final TransactionPurgeRequest purgeRequest = (TransactionPurgeRequest) actual; - Assert.assertEquals(replyTo, purgeRequest.getReplyTo()); - final TransactionPurgeResponse response = new TransactionPurgeResponse(OBJECT, 2L); + assertThat(actual, instanceOf(TransactionPurgeRequest.class)); + final var purgeRequest = (TransactionPurgeRequest) actual; + assertEquals(replyTo, purgeRequest.getReplyTo()); + final var response = new TransactionPurgeResponse(OBJECT, 2L); resolvedObject.sendSuccess(response, 11L); - final SuccessEnvelope successEnvelope = replyToProbe.expectMsgClass(SuccessEnvelope.class); - Assert.assertEquals(response, successEnvelope.getMessage()); - final RuntimeRequestException failResponse = new RuntimeRequestException("fail", new RuntimeException()); + final var successEnvelope = replyToProbe.expectMsgClass(SuccessEnvelope.class); + assertEquals(response, successEnvelope.getMessage()); + final var failResponse = new RuntimeRequestException("fail", new RuntimeException()); resolvedObject.sendFailure(failResponse, 11L); - final FailureEnvelope failureEnvelope = replyToProbe.expectMsgClass(FailureEnvelope.class); - Assert.assertEquals(failResponse, failureEnvelope.getMessage().getCause()); + final var failureEnvelope = replyToProbe.expectMsgClass(FailureEnvelope.class); + assertEquals(failResponse, failureEnvelope.getMessage().getCause()); } @After diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/SuccessEnvelopeTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/SuccessEnvelopeTest.java index 30d9e98636e..c7a01ef0ecb 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/SuccessEnvelopeTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/SuccessEnvelopeTest.java @@ -7,20 +7,18 @@ */ package org.opendaylight.controller.cluster.access.concepts; -import org.junit.Assert; +import static org.junit.Assert.assertEquals; + import org.opendaylight.controller.cluster.access.commands.TransactionAbortSuccess; public class SuccessEnvelopeTest extends AbstractEnvelopeTest { - @Override - protected SuccessEnvelope createEnvelope() { - final RequestSuccess message = new TransactionAbortSuccess(OBJECT, 2L); - return new SuccessEnvelope(message, 1L, 2L, 11L); + protected EnvelopeDetails createEnvelope() { + return new EnvelopeDetails<>(new SuccessEnvelope(new TransactionAbortSuccess(OBJECT, 2L), 1L, 2L, 11L), 769); } @Override - protected void doAdditionalAssertions(final SuccessEnvelope envelope, - final SuccessEnvelope resolvedObject) { - Assert.assertEquals(envelope.getExecutionTimeNanos(), resolvedObject.getExecutionTimeNanos()); + protected void doAdditionalAssertions(final SuccessEnvelope envelope, final SuccessEnvelope resolvedObject) { + assertEquals(envelope.getExecutionTimeNanos(), resolvedObject.getExecutionTimeNanos()); } } \ No newline at end of file diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/AbstractTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/AbstractTest.java index a3726e270be..67987c3e37b 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/AbstractTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/AbstractTest.java @@ -45,12 +45,20 @@ protected static void setUpStatic() { TX_COUNTER.set(1L); } + protected static TransactionIdentifier newTransactionId(final long txId) { + return new TransactionIdentifier(HISTORY_ID, txId); + } + protected static TransactionIdentifier nextTransactionId() { - return new TransactionIdentifier(HISTORY_ID, TX_COUNTER.getAndIncrement()); + return newTransactionId(TX_COUNTER.getAndIncrement()); + } + + protected static LocalHistoryIdentifier newHistoryId(final long historyId) { + return new LocalHistoryIdentifier(CLIENT_ID, historyId); } protected static LocalHistoryIdentifier nextHistoryId() { - return new LocalHistoryIdentifier(CLIENT_ID, HISTORY_COUNTER.incrementAndGet()); + return newHistoryId(HISTORY_COUNTER.incrementAndGet()); } protected static T waitOnAsyncTask(final CompletionStage completionStage, final FiniteDuration timeout) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CloseTransactionChainTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CloseTransactionChainTest.java index 6f857112a4f..fcb4d0d29ba 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CloseTransactionChainTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CloseTransactionChainTest.java @@ -23,16 +23,18 @@ * @author Thomas Pantelis */ public class CloseTransactionChainTest extends AbstractTest { - @Test public void testSerialization() { - CloseTransactionChain expected = new CloseTransactionChain(nextHistoryId(), DataStoreVersions.CURRENT_VERSION); + CloseTransactionChain expected = new CloseTransactionChain(newHistoryId(1), DataStoreVersions.CURRENT_VERSION); - Object serialized = expected.toSerializable(); + var serialized = (Serializable) expected.toSerializable(); assertEquals("Serialized type", CloseTransactionChain.class, serialized.getClass()); + final byte[] bytes = SerializationUtils.serialize(serialized); + assertEquals(241, bytes.length); + CloseTransactionChain actual = CloseTransactionChain.fromSerializable( - SerializationUtils.clone((Serializable) serialized)); + SerializationUtils.deserialize(bytes)); assertEquals("getIdentifier", expected.getIdentifier(), actual.getIdentifier()); assertEquals("getVersion", DataStoreVersions.CURRENT_VERSION, actual.getVersion()); } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/AbortTransactionPayloadTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/AbortTransactionPayloadTest.java index 8453368cb18..895f458a34a 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/AbortTransactionPayloadTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/AbortTransactionPayloadTest.java @@ -8,9 +8,7 @@ package org.opendaylight.controller.cluster.datastore.persisted; public class AbortTransactionPayloadTest extends AbstractIdentifiablePayloadTest { - - @Override - AbortTransactionPayload object() { - return AbortTransactionPayload.create(nextTransactionId(), 512); + public AbortTransactionPayloadTest() { + super(AbortTransactionPayload.create(newTransactionId(0), 512), 264); } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractIdentifiablePayloadTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractIdentifiablePayloadTest.java index a04c1691987..5b82a478a74 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractIdentifiablePayloadTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractIdentifiablePayloadTest.java @@ -7,19 +7,27 @@ */ package org.opendaylight.controller.cluster.datastore.persisted; +import static java.util.Objects.requireNonNull; +import static org.junit.Assert.assertEquals; + import org.apache.commons.lang3.SerializationUtils; -import org.junit.Assert; import org.junit.Test; import org.opendaylight.controller.cluster.datastore.AbstractTest; -public abstract class AbstractIdentifiablePayloadTest> extends AbstractTest { +abstract class AbstractIdentifiablePayloadTest> extends AbstractTest { + private final T object; + private final int expectedSize; - abstract T object(); + AbstractIdentifiablePayloadTest(final T object, final int expectedSize) { + this.object = requireNonNull(object); + this.expectedSize = expectedSize; + } @Test public void testSerialization() { - final T object = object(); - final T cloned = SerializationUtils.clone(object); - Assert.assertEquals(object.getIdentifier(), cloned.getIdentifier()); + final byte[] bytes = SerializationUtils.serialize(object); + assertEquals(expectedSize, bytes.length); + final T cloned = SerializationUtils.deserialize(bytes); + assertEquals(object.getIdentifier(), cloned.getIdentifier()); } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CloseLocalHistoryPayloadTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CloseLocalHistoryPayloadTest.java index eeed0612b7f..d8169790887 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CloseLocalHistoryPayloadTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CloseLocalHistoryPayloadTest.java @@ -8,9 +8,7 @@ package org.opendaylight.controller.cluster.datastore.persisted; public class CloseLocalHistoryPayloadTest extends AbstractIdentifiablePayloadTest { - - @Override - CloseLocalHistoryPayload object() { - return CloseLocalHistoryPayload.create(nextHistoryId(), 512); + public CloseLocalHistoryPayloadTest() { + super(CloseLocalHistoryPayload.create(newHistoryId(0), 512), 264); } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayloadTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayloadTest.java index e3696e0fb79..c5b8bab0685 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayloadTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayloadTest.java @@ -108,6 +108,7 @@ public void setUp() { public void testCandidateSerialization() throws IOException { final CommitTransactionPayload payload = CommitTransactionPayload.create(nextTransactionId(), candidate); assertEquals("payload size", 156, payload.size()); + assertEquals("serialized size", 270, SerializationUtils.serialize(payload).length); } @Test diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CreateLocalHistoryPayloadTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CreateLocalHistoryPayloadTest.java index e0aef362e94..7c0891e6f5c 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CreateLocalHistoryPayloadTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CreateLocalHistoryPayloadTest.java @@ -8,9 +8,7 @@ package org.opendaylight.controller.cluster.datastore.persisted; public class CreateLocalHistoryPayloadTest extends AbstractIdentifiablePayloadTest { - - @Override - CreateLocalHistoryPayload object() { - return CreateLocalHistoryPayload.create(nextHistoryId(), 512); + public CreateLocalHistoryPayloadTest() { + super(CreateLocalHistoryPayload.create(newHistoryId(0), 512), 265); } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/PurgeLocalHistoryPayloadTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/PurgeLocalHistoryPayloadTest.java index 3a3ded1af7e..99c188ddd88 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/PurgeLocalHistoryPayloadTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/PurgeLocalHistoryPayloadTest.java @@ -8,9 +8,7 @@ package org.opendaylight.controller.cluster.datastore.persisted; public class PurgeLocalHistoryPayloadTest extends AbstractIdentifiablePayloadTest { - - @Override - PurgeLocalHistoryPayload object() { - return PurgeLocalHistoryPayload.create(nextHistoryId(), 512); + public PurgeLocalHistoryPayloadTest() { + super(PurgeLocalHistoryPayload.create(newHistoryId(0), 512), 264); } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/PurgeTransactionPayloadTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/PurgeTransactionPayloadTest.java index cf59654467d..fad6205e166 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/PurgeTransactionPayloadTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/PurgeTransactionPayloadTest.java @@ -8,9 +8,7 @@ package org.opendaylight.controller.cluster.datastore.persisted; public class PurgeTransactionPayloadTest extends AbstractIdentifiablePayloadTest { - - @Override - PurgeTransactionPayload object() { - return PurgeTransactionPayload.create(nextTransactionId(), 512); + public PurgeTransactionPayloadTest() { + super(PurgeTransactionPayload.create(newTransactionId(0), 512), 264); } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/SkipTransactionsPayloadTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/SkipTransactionsPayloadTest.java index 44012d81d63..39df133c8a2 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/SkipTransactionsPayloadTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/SkipTransactionsPayloadTest.java @@ -10,8 +10,7 @@ import org.opendaylight.controller.cluster.datastore.utils.MutableUnsignedLongSet; public class SkipTransactionsPayloadTest extends AbstractIdentifiablePayloadTest { - @Override - SkipTransactionsPayload object() { - return SkipTransactionsPayload.create(nextHistoryId(), MutableUnsignedLongSet.of(42).immutableCopy(), 512); + public SkipTransactionsPayloadTest() { + super(SkipTransactionsPayload.create(newHistoryId(0), MutableUnsignedLongSet.of(42).immutableCopy(), 512), 270); } } From 8f78704e1c5048100ec5eddd9864eb8bed330b66 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 29 Nov 2022 10:50:48 +0100 Subject: [PATCH 04/69] Use an instanceof pattern We can merge the check and cast here. Change-Id: I95cb4d5574dab43e4f5f06c9c372fe294c131224 Signed-off-by: Robert Varga (cherry picked from commit 034d4e72ffaffc2081a2a6df83ad2ed8a794e2e6) --- .../controller/cluster/raft/RaftActorRecoverySupport.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorRecoverySupport.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorRecoverySupport.java index 86552578249..2eb343f6919 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorRecoverySupport.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorRecoverySupport.java @@ -46,7 +46,7 @@ class RaftActorRecoverySupport { RaftActorRecoverySupport(final RaftActorContext context, final RaftActorRecoveryCohort cohort) { this.context = context; this.cohort = cohort; - this.log = context.getLogger(); + log = context.getLogger(); } boolean handleRecoveryMessage(final Object message, final PersistentDataProvider persistentProvider) { @@ -254,7 +254,7 @@ private void takeRecoverySnapshot(final ReplicatedLogEntry logEntry) { final SnapshotManager snapshotManager = context.getSnapshotManager(); if (snapshotManager.capture(logEntry, -1)) { log.info("Capturing snapshot, resetting timer for the next recovery snapshot interval."); - this.recoverySnapshotTimer.reset().start(); + recoverySnapshotTimer.reset().start(); } else { log.info("SnapshotManager is not able to capture snapshot at this time. It will be retried " + "again with the next recovered entry."); @@ -262,7 +262,7 @@ private void takeRecoverySnapshot(final ReplicatedLogEntry logEntry) { } private boolean shouldTakeRecoverySnapshot() { - return this.recoverySnapshotTimer != null && this.recoverySnapshotTimer.elapsed(TimeUnit.SECONDS) + return recoverySnapshotTimer != null && recoverySnapshotTimer.elapsed(TimeUnit.SECONDS) >= context.getConfigParams().getRecoverySnapshotIntervalSeconds(); } @@ -338,6 +338,6 @@ private static boolean isMigratedPayload(final ReplicatedLogEntry repLogEntry) { } private static boolean isMigratedSerializable(final Object message) { - return message instanceof MigratedSerializable && ((MigratedSerializable)message).isMigrated(); + return message instanceof MigratedSerializable migrated && migrated.isMigrated(); } } From 9072e0d20ef1fc365ac738058ad1c72e6ebfa0dd Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 29 Nov 2022 16:17:23 +0100 Subject: [PATCH 05/69] Use a switch expression for TreeType Use exhaustiveness of a switch expression to peel an impossible case. Change-Id: I7d1d228484656fc81b51762878d569698d570f80 Signed-off-by: Robert Varga (cherry picked from commit 04502b115693e22d215716feef7b34b6d3c37f6a) --- .../controller/cluster/datastore/Shard.java | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java index 9284224341a..bcf09b3331d 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java @@ -1239,15 +1239,10 @@ public DataTree getDataTree() { } public TreeType getTreeType() { - switch (datastoreContext.getLogicalStoreType()) { - case CONFIGURATION: - return TreeType.CONFIGURATION; - case OPERATIONAL: - return TreeType.OPERATIONAL; - default: - throw new IllegalStateException("Unhandled logical store type " - + datastoreContext.getLogicalStoreType()); - } + return switch (datastoreContext.getLogicalStoreType()) { + case CONFIGURATION -> TreeType.CONFIGURATION; + case OPERATIONAL -> TreeType.OPERATIONAL; + }; } protected void verify() { From fa22d0eb1e69af394496a1ed8f3f4f5ee022e198 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 29 Nov 2022 19:55:04 +0100 Subject: [PATCH 06/69] Use a switch expression for Payload parsing We can simplify the switch statement here, making it easier to read. Change-Id: Ie6e23e7817072b5968f14d17d7063e036563122b Signed-off-by: Robert Varga (cherry picked from commit 16b15aea2abdda554ce89da99061e159417596ee) --- .../datastore/persisted/PayloadVersion.java | 22 +++++-------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PayloadVersion.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PayloadVersion.java index 7d51f4660c5..516f2592627 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PayloadVersion.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PayloadVersion.java @@ -126,22 +126,12 @@ public short shortValue() { */ public static @NonNull PayloadVersion valueOf(final short version) throws FutureVersionException, PastVersionException { - switch (Short.toUnsignedInt(version)) { - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - throw new PastVersionException(version, SODIUM_SR1); - case 7: - return SODIUM_SR1; - case 8: - return MAGNESIUM; - default: - throw new FutureVersionException(version, MAGNESIUM); - } + return switch (Short.toUnsignedInt(version)) { + case 0, 1, 2, 3, 4, 5, 6 -> throw new PastVersionException(version, SODIUM_SR1); + case 7 -> SODIUM_SR1; + case 8 -> MAGNESIUM; + default -> throw new FutureVersionException(version, MAGNESIUM); + }; } @Override From 6f7fad882fd24712fec365d287a2e5962d456572 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sat, 26 Nov 2022 18:35:35 +0100 Subject: [PATCH 07/69] Define efficient serialization proxies Superclasses have footprint in serialization protocol, as their descriptors get written out. Capture Externalizable logic into SerialForm, which implements Externalizable -- the protocol to be easily implemented without a superclass. This entails updating the API footprint of AbstractProxy to reuse its methods. Then introduce shorthand proxy classes which behave exactly like their AbstractProxy counterparts, but without the AbstractProxy baggage. This enables reading implied serialization format, if we encounter it, providing forward compatibility with the format. JIRA: CONTROLLER-2056 Change-Id: I4da54ca57849c2bfdaaf76c22e7903abcfa58be9 Signed-off-by: Robert Varga (cherry picked from commit 2dedb8231e13abe55d6b75eb532d23dbe536e168) --- .../cluster/datastore/persisted/AT.java | 51 ++++++++ .../AbstractIdentifiablePayload.java | 76 ++++++++++-- .../cluster/datastore/persisted/CH.java | 51 ++++++++ .../cluster/datastore/persisted/CT.java | 62 ++++++++++ .../persisted/CommitTransactionPayload.java | 6 +- .../cluster/datastore/persisted/DH.java | 51 ++++++++ .../cluster/datastore/persisted/DS.java | 44 +++++++ .../cluster/datastore/persisted/DSS.java | 47 +++++++ .../cluster/datastore/persisted/DT.java | 51 ++++++++ .../persisted/DatastoreSnapshot.java | 117 ++++++++++++------ .../cluster/datastore/persisted/FM.java | 55 ++++++++ .../cluster/datastore/persisted/MS.java | 83 +++++++++++++ .../cluster/datastore/persisted/PH.java | 51 ++++++++ .../cluster/datastore/persisted/PT.java | 51 ++++++++ .../cluster/datastore/persisted/SM.java | 47 +++++++ .../cluster/datastore/persisted/SS.java | 44 +++++++ .../cluster/datastore/persisted/ST.java | 56 +++++++++ .../persisted/ShardManagerSnapshot.java | 74 ++++++++--- .../persisted/ShardSnapshotState.java | 37 ++++-- .../persisted/SkipTransactionsPayload.java | 2 +- 20 files changed, 979 insertions(+), 77 deletions(-) create mode 100644 opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AT.java create mode 100644 opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CH.java create mode 100644 opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CT.java create mode 100644 opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DH.java create mode 100644 opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DS.java create mode 100644 opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DSS.java create mode 100644 opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DT.java create mode 100644 opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/FM.java create mode 100644 opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/MS.java create mode 100644 opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PH.java create mode 100644 opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PT.java create mode 100644 opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/SM.java create mode 100644 opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/SS.java create mode 100644 opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ST.java diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AT.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AT.java new file mode 100644 index 00000000000..ddb9dc93e0f --- /dev/null +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AT.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.datastore.persisted; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +import com.google.common.io.ByteStreams; +import java.io.IOException; +import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; +import org.opendaylight.controller.cluster.datastore.persisted.AbstractIdentifiablePayload.SerialForm; + +/** + * Serialization proxy for {@link AbortTransactionPayload}. + */ +final class AT implements SerialForm { + private static final long serialVersionUID = 1L; + + private TransactionIdentifier identifier; + private byte[] bytes; + + @SuppressWarnings("checkstyle:RedundantModifier") + public AT() { + // For Externalizable + } + + AT(final byte[] bytes) { + this.bytes = requireNonNull(bytes); + } + + @Override + public byte[] bytes() { + return bytes; + } + + @Override + public void readExternal(final byte[] newBytes) throws IOException { + bytes = requireNonNull(newBytes); + identifier = verifyNotNull(TransactionIdentifier.readFrom(ByteStreams.newDataInput(newBytes))); + } + + @Override + public Object readResolve() { + return new AbortTransactionPayload(identifier, bytes); + } +} diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractIdentifiablePayload.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractIdentifiablePayload.java index f07d4dbe903..9bc5a319da2 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractIdentifiablePayload.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractIdentifiablePayload.java @@ -32,7 +32,62 @@ */ public abstract class AbstractIdentifiablePayload extends IdentifiablePayload implements Serializable { - protected abstract static class AbstractProxy implements Externalizable { + /** + * An {@link Externalizable} with default implementations we expect our implementations to comply with. On-wire + * serialization format is defined by {@link #bytes()}. + */ + protected interface SerialForm extends Externalizable { + /** + * Return the serial form of this object contents, corresponding to + * {@link AbstractIdentifiablePayload#serialized}. + * + * @return Serialized form + */ + byte[] bytes(); + + /** + * Resolve this proxy to an actual {@link AbstractIdentifiablePayload}. + * + * @return A payload. + */ + Object readResolve(); + + /** + * Restore state from specified serialized form. + * + * @param newBytes Serialized form, as returned by {@link #bytes()} + * @throws IOException when a deserialization problem occurs + */ + void readExternal(byte[] newBytes) throws IOException; + + /** + * {@inheritDoc} + * + *

+ * The default implementation is canonical and should never be overridden. + */ + @Override + default void readExternal(final ObjectInput in) throws IOException { + final var bytes = new byte[in.readInt()]; + in.readFully(bytes); + readExternal(bytes); + } + + /** + * {@inheritDoc} + * + *

+ * The default implementation is canonical and should never be overridden. + */ + @Override + default void writeExternal(final ObjectOutput out) throws IOException { + final var bytes = bytes(); + out.writeInt(bytes.length); + out.write(bytes); + } + } + + protected abstract static class AbstractProxy implements SerialForm { private static final long serialVersionUID = 1L; private byte[] serialized; @@ -47,20 +102,18 @@ protected AbstractProxy(final byte[] serialized) { } @Override - public final void writeExternal(final ObjectOutput out) throws IOException { - out.writeInt(serialized.length); - out.write(serialized); + public final byte[] bytes() { + return serialized; } @Override - public final void readExternal(final ObjectInput in) throws IOException { - final int length = in.readInt(); - serialized = new byte[length]; - in.readFully(serialized); + public final void readExternal(final byte[] bytes) throws IOException { + serialized = requireNonNull(bytes); identifier = verifyNotNull(readIdentifier(ByteStreams.newDataInput(serialized))); } - protected final Object readResolve() { + @Override + public final Object readResolve() { return verifyNotNull(createObject(identifier, serialized)); } @@ -90,6 +143,10 @@ public final int size() { return serialized.length; } + protected final byte @NonNull [] serialized() { + return serialized; + } + @Override public final int serializedSize() { // TODO: this is not entirely accurate, as the serialization stream has additional overheads: @@ -109,7 +166,6 @@ protected final Object writeReplace() { return verifyNotNull(externalizableProxy(serialized)); } - @SuppressWarnings("checkstyle:hiddenField") protected abstract @NonNull AbstractProxy externalizableProxy(byte @NonNull[] serialized); protected abstract int externalizableProxySize(); diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CH.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CH.java new file mode 100644 index 00000000000..b4e827b4030 --- /dev/null +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CH.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.datastore.persisted; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +import com.google.common.io.ByteStreams; +import java.io.IOException; +import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; +import org.opendaylight.controller.cluster.datastore.persisted.AbstractIdentifiablePayload.SerialForm; + +/** + * Serialization proxy for {@link CreateLocalHistoryPayload}. + */ +final class CH implements SerialForm { + private static final long serialVersionUID = 1L; + + private LocalHistoryIdentifier identifier; + private byte[] bytes; + + @SuppressWarnings("checkstyle:RedundantModifier") + public CH() { + // For Externalizable + } + + CH(final byte[] bytes) { + this.bytes = requireNonNull(bytes); + } + + @Override + public byte[] bytes() { + return bytes; + } + + @Override + public void readExternal(final byte[] newBytes) throws IOException { + bytes = requireNonNull(newBytes); + identifier = verifyNotNull(LocalHistoryIdentifier.readFrom(ByteStreams.newDataInput(newBytes))); + } + + @Override + public Object readResolve() { + return new CreateLocalHistoryPayload(identifier, bytes); + } +} diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CT.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CT.java new file mode 100644 index 00000000000..98c2562f0b6 --- /dev/null +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CT.java @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.datastore.persisted; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import java.io.StreamCorruptedException; +import org.opendaylight.controller.cluster.datastore.persisted.CommitTransactionPayload.Chunked; +import org.opendaylight.controller.cluster.datastore.persisted.CommitTransactionPayload.Simple; +import org.opendaylight.controller.cluster.io.ChunkedByteArray; + +/** + * Serialization proxy for {@link CommitTransactionPayload}. + */ +final class CT implements Externalizable { + private static final long serialVersionUID = 1L; + + private CommitTransactionPayload payload; + + @SuppressWarnings("checkstyle:RedundantModifier") + public CT() { + // For Externalizable + } + + CT(final CommitTransactionPayload payload) { + this.payload = requireNonNull(payload); + } + + @Override + public void writeExternal(final ObjectOutput out) throws IOException { + out.writeInt(payload.size()); + payload.writeBytes(out); + } + + @Override + public void readExternal(final ObjectInput in) throws IOException { + final int length = in.readInt(); + if (length < 0) { + throw new StreamCorruptedException("Invalid payload length " + length); + } else if (length < CommitTransactionPayload.MAX_ARRAY_SIZE) { + final byte[] serialized = new byte[length]; + in.readFully(serialized); + payload = new Simple(serialized); + } else { + payload = new Chunked(ChunkedByteArray.readFrom(in, length, CommitTransactionPayload.MAX_ARRAY_SIZE)); + } + } + + private Object readResolve() { + return verifyNotNull(payload); + } +} diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayload.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayload.java index d4d08a7292f..7da1b97e7bb 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayload.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayload.java @@ -53,7 +53,7 @@ public abstract class CommitTransactionPayload extends IdentifiablePayload candidate = null; @@ -153,7 +153,7 @@ protected final Object writeReplace() { return new Proxy(this); } - private static final class Simple extends CommitTransactionPayload { + static final class Simple extends CommitTransactionPayload { private static final long serialVersionUID = 1L; private final byte[] serialized; @@ -178,7 +178,7 @@ void writeBytes(final ObjectOutput out) throws IOException { } } - private static final class Chunked extends CommitTransactionPayload { + static final class Chunked extends CommitTransactionPayload { private static final long serialVersionUID = 1L; @SuppressFBWarnings(value = "SE_BAD_FIELD", justification = "Handled via serialization proxy") diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DH.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DH.java new file mode 100644 index 00000000000..a9c6c634919 --- /dev/null +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DH.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.datastore.persisted; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +import com.google.common.io.ByteStreams; +import java.io.IOException; +import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; +import org.opendaylight.controller.cluster.datastore.persisted.AbstractIdentifiablePayload.SerialForm; + +/** + * Serialization proxy for {@link CloseLocalHistoryPayload}. + */ +final class DH implements SerialForm { + private static final long serialVersionUID = 1L; + + private LocalHistoryIdentifier identifier; + private byte[] bytes; + + @SuppressWarnings("checkstyle:RedundantModifier") + public DH() { + // For Externalizable + } + + DH(final byte[] bytes) { + this.bytes = requireNonNull(bytes); + } + + @Override + public byte[] bytes() { + return bytes; + } + + @Override + public void readExternal(final byte[] newBytes) throws IOException { + bytes = requireNonNull(newBytes); + identifier = verifyNotNull(LocalHistoryIdentifier.readFrom(ByteStreams.newDataInput(newBytes))); + } + + @Override + public Object readResolve() { + return new CloseLocalHistoryPayload(identifier, bytes); + } +} diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DS.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DS.java new file mode 100644 index 00000000000..5dc365483b8 --- /dev/null +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DS.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.datastore.persisted; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Serialization proxy for {@link DatastoreSnapshot}. + */ +final class DS implements DatastoreSnapshot.SerialForm { + private static final long serialVersionUID = 1L; + + private DatastoreSnapshot datastoreSnapshot; + + @SuppressWarnings("checkstyle:RedundantModifier") + public DS() { + // For Externalizable + } + + DS(final DatastoreSnapshot datastoreSnapshot) { + this.datastoreSnapshot = requireNonNull(datastoreSnapshot); + } + + @Override + public DatastoreSnapshot datastoreSnapshot() { + return datastoreSnapshot; + } + + @Override + public void resolveTo(final DatastoreSnapshot newDatastoreSnapshot) { + datastoreSnapshot = requireNonNull(newDatastoreSnapshot); + } + + @Override + public Object readResolve() { + return verifyNotNull(datastoreSnapshot); + } +} diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DSS.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DSS.java new file mode 100644 index 00000000000..074706b1ff3 --- /dev/null +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DSS.java @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.datastore.persisted; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +import org.opendaylight.controller.cluster.datastore.persisted.DatastoreSnapshot.ShardSnapshot; +import org.opendaylight.controller.cluster.raft.persisted.Snapshot; + +/** + * Serialization proxy for {@link ShardDataTreeSnapshot}. + */ +final class DSS implements ShardSnapshot.SerialForm { + private static final long serialVersionUID = 1L; + + private ShardSnapshot shardSnapshot; + + @SuppressWarnings("checkstyle:RedundantModifier") + public DSS() { + // For Externalizable + } + + DSS(final ShardSnapshot shardSnapshot) { + this.shardSnapshot = requireNonNull(shardSnapshot); + } + + @Override + public ShardSnapshot shardSnapshot() { + return shardSnapshot; + } + + @Override + public void resolveTo(final String name, final Snapshot snapshot) { + shardSnapshot = new ShardSnapshot(name, snapshot); + } + + @Override + public Object readResolve() { + return verifyNotNull(shardSnapshot); + } +} diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DT.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DT.java new file mode 100644 index 00000000000..8a619f64fa6 --- /dev/null +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DT.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.datastore.persisted; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +import com.google.common.io.ByteStreams; +import java.io.IOException; +import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier; +import org.opendaylight.controller.cluster.datastore.persisted.AbstractIdentifiablePayload.SerialForm; + +/** + * Serialization proxy for {@link DisableTrackingPayload}. + */ +final class DT implements SerialForm { + private static final long serialVersionUID = 1L; + + private ClientIdentifier identifier; + private byte[] bytes; + + @SuppressWarnings("checkstyle:RedundantModifier") + public DT() { + // For Externalizable + } + + DT(final byte[] bytes) { + this.bytes = requireNonNull(bytes); + } + + @Override + public byte[] bytes() { + return bytes; + } + + @Override + public void readExternal(final byte[] newBytes) throws IOException { + bytes = requireNonNull(newBytes); + identifier = verifyNotNull(ClientIdentifier.readFrom(ByteStreams.newDataInput(newBytes))); + } + + @Override + public Object readResolve() { + return new DisableTrackingPayload(identifier, bytes); + } +} diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DatastoreSnapshot.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DatastoreSnapshot.java index 6330e5d4c25..9416e58f2c8 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DatastoreSnapshot.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DatastoreSnapshot.java @@ -7,6 +7,7 @@ */ package org.opendaylight.controller.cluster.datastore.persisted; +import static com.google.common.base.Verify.verifyNotNull; import static java.util.Objects.requireNonNull; import com.google.common.collect.ImmutableList; @@ -27,26 +28,31 @@ * @author Thomas Pantelis */ public class DatastoreSnapshot implements Serializable { - private static final long serialVersionUID = 1L; + interface SerialForm extends Externalizable { - private static final class Proxy implements Externalizable { - private static final long serialVersionUID = 1L; + DatastoreSnapshot datastoreSnapshot(); - private DatastoreSnapshot datastoreSnapshot; + Object readResolve(); - // checkstyle flags the public modifier as redundant which really doesn't make sense since it clearly isn't - // redundant. It is explicitly needed for Java serialization to be able to create instances via reflection. - @SuppressWarnings("checkstyle:RedundantModifier") - public Proxy() { - // For Externalizable - } + void resolveTo(@NonNull DatastoreSnapshot newDatastoreSnapshot); - Proxy(final DatastoreSnapshot datastoreSnapshot) { - this.datastoreSnapshot = datastoreSnapshot; + @Override + default void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { + final var type = (String)in.readObject(); + final var snapshot = (ShardManagerSnapshot) in.readObject(); + + final int size = in.readInt(); + var localShardSnapshots = new ArrayList(size); + for (int i = 0; i < size; i++) { + localShardSnapshots.add((ShardSnapshot) in.readObject()); + } + + resolveTo(new DatastoreSnapshot(type, snapshot, localShardSnapshots)); } @Override - public void writeExternal(ObjectOutput out) throws IOException { + default void writeExternal(ObjectOutput out) throws IOException { + final var datastoreSnapshot = datastoreSnapshot(); out.writeObject(datastoreSnapshot.type); out.writeObject(datastoreSnapshot.shardManagerSnapshot); @@ -55,29 +61,45 @@ public void writeExternal(ObjectOutput out) throws IOException { out.writeObject(shardSnapshot); } } + } - @Override - public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { - String localType = (String)in.readObject(); - ShardManagerSnapshot localShardManagerSnapshot = (ShardManagerSnapshot) in.readObject(); + private static final class Proxy implements SerialForm { + private static final long serialVersionUID = 1L; - int size = in.readInt(); - List localShardSnapshots = new ArrayList<>(size); - for (int i = 0; i < size; i++) { - localShardSnapshots.add((ShardSnapshot) in.readObject()); - } + private DatastoreSnapshot datastoreSnapshot; + + // checkstyle flags the public modifier as redundant which really doesn't make sense since it clearly isn't + // redundant. It is explicitly needed for Java serialization to be able to create instances via reflection. + @SuppressWarnings("checkstyle:RedundantModifier") + public Proxy() { + // For Externalizable + } - datastoreSnapshot = new DatastoreSnapshot(localType, localShardManagerSnapshot, localShardSnapshots); + Proxy(final DatastoreSnapshot datastoreSnapshot) { + this.datastoreSnapshot = requireNonNull(datastoreSnapshot); } - private Object readResolve() { + @Override + public DatastoreSnapshot datastoreSnapshot() { return datastoreSnapshot; } + + @Override + public void resolveTo(DatastoreSnapshot newDatastoreSnapshot) { + datastoreSnapshot = requireNonNull(newDatastoreSnapshot); + } + + @Override + public Object readResolve() { + return verifyNotNull(datastoreSnapshot); + } } - private final String type; + private static final long serialVersionUID = 1L; + + private final @NonNull String type; private final ShardManagerSnapshot shardManagerSnapshot; - private final List shardSnapshots; + private final @NonNull ImmutableList shardSnapshots; public DatastoreSnapshot(@NonNull String type, @Nullable ShardManagerSnapshot shardManagerSnapshot, @NonNull List shardSnapshots) { @@ -103,9 +125,28 @@ private Object writeReplace() { } public static class ShardSnapshot implements Serializable { - private static final long serialVersionUID = 1L; + interface SerialForm extends Externalizable { + + ShardSnapshot shardSnapshot(); + + Object readResolve(); + + void resolveTo(String name, Snapshot snapshot); + + @Override + default void writeExternal(ObjectOutput out) throws IOException { + final var shardSnapshot = shardSnapshot(); + out.writeObject(shardSnapshot.name); + out.writeObject(shardSnapshot.snapshot); + } + + @Override + default void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { + resolveTo((String) in.readObject(), (Snapshot) in.readObject()); + } + } - private static final class Proxy implements Externalizable { + private static final class Proxy implements SerialForm { private static final long serialVersionUID = 1L; private ShardSnapshot shardSnapshot; @@ -122,23 +163,25 @@ public Proxy() { } @Override - public void writeExternal(ObjectOutput out) throws IOException { - out.writeObject(shardSnapshot.name); - out.writeObject(shardSnapshot.snapshot); + public ShardSnapshot shardSnapshot() { + return shardSnapshot; } @Override - public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { - shardSnapshot = new ShardSnapshot((String)in.readObject(), (Snapshot) in.readObject()); + public void resolveTo(final String name, final Snapshot snapshot) { + shardSnapshot = new ShardSnapshot(name, snapshot); } - private Object readResolve() { - return shardSnapshot; + @Override + public Object readResolve() { + return verifyNotNull(shardSnapshot); } } - private final String name; - private final Snapshot snapshot; + private static final long serialVersionUID = 1L; + + private final @NonNull String name; + private final @NonNull Snapshot snapshot; public ShardSnapshot(@NonNull String name, @NonNull Snapshot snapshot) { this.name = requireNonNull(name); diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/FM.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/FM.java new file mode 100644 index 00000000000..5a432cc8ad0 --- /dev/null +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/FM.java @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.datastore.persisted; + +import com.google.common.collect.ImmutableList; +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import java.util.List; + +/** + * Externalizable proxy for {@link FrontendShardDataTreeSnapshotMetadata}. + */ +final class FM implements Externalizable { + private static final long serialVersionUID = 1L; + + private List clients; + + @SuppressWarnings("checkstyle:RedundantModifier") + public FM() { + // For Externalizable + } + + FM(final FrontendShardDataTreeSnapshotMetadata metadata) { + clients = metadata.getClients(); + } + + @Override + public void writeExternal(final ObjectOutput out) throws IOException { + out.writeInt(clients.size()); + for (var c : clients) { + c.writeTo(out); + } + } + + @Override + public void readExternal(final ObjectInput in) throws IOException { + final int size = in.readInt(); + final var builder = ImmutableList.builderWithExpectedSize(size); + for (int i = 0; i < size ; ++i) { + builder.add(FrontendClientMetadata.readFrom(in)); + } + clients = builder.build(); + } + + private Object readResolve() { + return new FrontendShardDataTreeSnapshotMetadata(clients); + } +} \ No newline at end of file diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/MS.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/MS.java new file mode 100644 index 00000000000..7246e503db6 --- /dev/null +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/MS.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.datastore.persisted; + +import static com.google.common.base.Preconditions.checkArgument; + +import com.google.common.collect.ImmutableMap; +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import java.util.Map; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataInput; +import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeStreamVersion; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Externalizable proxy for {@link MetadataShardDataTreeSnapshot}. + */ +final class MS implements Externalizable { + private static final Logger LOG = LoggerFactory.getLogger(MS.class); + private static final long serialVersionUID = 1L; + + private Map>, ShardDataTreeSnapshotMetadata> metadata; + private NormalizedNodeStreamVersion version; + private NormalizedNode rootNode; + + @SuppressWarnings("checkstyle:RedundantModifier") + public MS() { + // For Externalizable + } + + MS(final MetadataShardDataTreeSnapshot snapshot) { + rootNode = snapshot.getRootNode().orElseThrow(); + metadata = snapshot.getMetadata(); + version = snapshot.version().getStreamVersion(); + } + + @Override + public void writeExternal(final ObjectOutput out) throws IOException { + out.writeInt(metadata.size()); + for (var m : metadata.values()) { + out.writeObject(m); + } + try (var stream = version.newDataOutput(out)) { + stream.writeNormalizedNode(rootNode); + } + } + + @Override + public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { + final int metaSize = in.readInt(); + checkArgument(metaSize >= 0, "Invalid negative metadata map length %s", metaSize); + + // Default pre-allocate is 4, which should be fine + final var metaBuilder = ImmutableMap + .>, ShardDataTreeSnapshotMetadata>builder(); + for (int i = 0; i < metaSize; ++i) { + final var m = (ShardDataTreeSnapshotMetadata) in.readObject(); + if (m != null) { + metaBuilder.put(m.getType(), m); + } else { + LOG.warn("Skipping null metadata"); + } + } + metadata = metaBuilder.build(); + + final var stream = NormalizedNodeDataInput.newDataInput(in); + version = stream.getVersion(); + rootNode = stream.readNormalizedNode(); + } + + private Object readResolve() { + return new MetadataShardDataTreeSnapshot(rootNode, metadata); + } +} \ No newline at end of file diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PH.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PH.java new file mode 100644 index 00000000000..028d1508dac --- /dev/null +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PH.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.datastore.persisted; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +import com.google.common.io.ByteStreams; +import java.io.IOException; +import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; +import org.opendaylight.controller.cluster.datastore.persisted.AbstractIdentifiablePayload.SerialForm; + +/** + * Serialization proxy for {@link PurgeLocalHistoryPayload}. + */ +final class PH implements SerialForm { + private static final long serialVersionUID = 1L; + + private LocalHistoryIdentifier identifier; + private byte[] bytes; + + @SuppressWarnings("checkstyle:RedundantModifier") + public PH() { + // For Externalizable + } + + PH(final byte[] bytes) { + this.bytes = requireNonNull(bytes); + } + + @Override + public byte[] bytes() { + return bytes; + } + + @Override + public void readExternal(final byte[] newBytes) throws IOException { + bytes = requireNonNull(newBytes); + identifier = verifyNotNull(LocalHistoryIdentifier.readFrom(ByteStreams.newDataInput(newBytes))); + } + + @Override + public Object readResolve() { + return new PurgeLocalHistoryPayload(identifier, bytes); + } +} diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PT.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PT.java new file mode 100644 index 00000000000..23bd12b1fa3 --- /dev/null +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PT.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.datastore.persisted; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +import com.google.common.io.ByteStreams; +import java.io.IOException; +import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; +import org.opendaylight.controller.cluster.datastore.persisted.AbstractIdentifiablePayload.SerialForm; + +/** + * Serialization proxy for {@link PurgeTransactionPayload}. + */ +final class PT implements SerialForm { + private static final long serialVersionUID = 1L; + + private TransactionIdentifier identifier; + private byte[] bytes; + + @SuppressWarnings("checkstyle:RedundantModifier") + public PT() { + // For Externalizable + } + + PT(final byte[] bytes) { + this.bytes = requireNonNull(bytes); + } + + @Override + public byte[] bytes() { + return bytes; + } + + @Override + public void readExternal(final byte[] newBytes) throws IOException { + bytes = requireNonNull(newBytes); + identifier = verifyNotNull(TransactionIdentifier.readFrom(ByteStreams.newDataInput(newBytes))); + } + + @Override + public Object readResolve() { + return new PurgeTransactionPayload(identifier, bytes); + } +} diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/SM.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/SM.java new file mode 100644 index 00000000000..1e2cdc8da12 --- /dev/null +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/SM.java @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.datastore.persisted; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +import java.util.List; + +/** + * Serialization proxy for {@link ShardManagerSnapshot}. + */ +final class SM implements ShardManagerSnapshot.SerializedForm { + private static final long serialVersionUID = 1L; + + private ShardManagerSnapshot snapshot; + + @SuppressWarnings("checkstyle:RedundantModifier") + public SM() { + // For Externalizable + } + + SM(final ShardManagerSnapshot snapshot) { + this.snapshot = requireNonNull(snapshot); + } + + @Override + public List shardNames() { + return snapshot.getShardList(); + } + + @Override + public void resolveTo(final ShardManagerSnapshot newSnapshot) { + snapshot = requireNonNull(newSnapshot); + } + + @Override + public Object readResolve() { + return verifyNotNull(snapshot); + } + +} diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/SS.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/SS.java new file mode 100644 index 00000000000..13a8ac64fbd --- /dev/null +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/SS.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.datastore.persisted; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Serialization proxy for {@link ShardSnapshotState}. + */ +final class SS implements ShardSnapshotState.SerialForm { + private static final long serialVersionUID = 1L; + + private ShardSnapshotState snapshotState; + + @SuppressWarnings("checkstyle:RedundantModifier") + public SS() { + // For Externalizable + } + + SS(final ShardSnapshotState snapshotState) { + this.snapshotState = requireNonNull(snapshotState); + } + + @Override + public ShardSnapshotState snapshotState() { + return snapshotState; + } + + @Override + public void resolveTo(final ShardSnapshotState newSnapshotState) { + snapshotState = requireNonNull(newSnapshotState); + } + + @Override + public Object readResolve() { + return verifyNotNull(snapshotState); + } +} diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ST.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ST.java new file mode 100644 index 00000000000..756a20bcd2a --- /dev/null +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ST.java @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.datastore.persisted; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +import com.google.common.io.ByteStreams; +import java.io.IOException; +import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; +import org.opendaylight.controller.cluster.datastore.persisted.AbstractIdentifiablePayload.SerialForm; +import org.opendaylight.controller.cluster.datastore.utils.ImmutableUnsignedLongSet; + +/** + * Serialization proxy for {@link SkipTransactionsPayload}. + */ +final class ST implements SerialForm { + private static final long serialVersionUID = 1L; + + private ImmutableUnsignedLongSet transactionIds; + private LocalHistoryIdentifier identifier; + private byte[] bytes; + + @SuppressWarnings("checkstyle:RedundantModifier") + public ST() { + // For Externalizable + } + + ST(final byte[] bytes) { + this.bytes = requireNonNull(bytes); + } + + @Override + public byte[] bytes() { + return bytes; + } + + @Override + public void readExternal(final byte[] newBytes) throws IOException { + bytes = requireNonNull(newBytes); + + final var in = ByteStreams.newDataInput(newBytes); + identifier = LocalHistoryIdentifier.readFrom(in); + transactionIds = verifyNotNull(ImmutableUnsignedLongSet.readFrom(in)); + } + + @Override + public Object readResolve() { + return new SkipTransactionsPayload(identifier, bytes, transactionIds); + } +} diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardManagerSnapshot.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardManagerSnapshot.java index 728dd29ea32..d792b9b8a6b 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardManagerSnapshot.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardManagerSnapshot.java @@ -7,6 +7,9 @@ */ package org.opendaylight.controller.cluster.datastore.persisted; +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + import com.google.common.collect.ImmutableList; import java.io.Externalizable; import java.io.IOException; @@ -23,9 +26,50 @@ * @author Thomas Pantelis */ public class ShardManagerSnapshot implements Serializable { - private static final long serialVersionUID = 1L; + interface SerializedForm extends Externalizable { + /** + * Return the serial form of this object contents, corresponding to {@link ShardManagerSnapshot#shardList}. + * + * @return List of shards names. + */ + List shardNames(); + + /** + * Resolve this proxy to an actual {@link ShardManagerSnapshot}. Implementations can rely on the object to be + * set via {@link #resolveTo(ShardManagerSnapshot)}. + * + * @return A snapshot + */ + Object readResolve(); - private static final class Proxy implements Externalizable { + /** + * Set this proxy to return {@code snapshot} on next {@link #readResolve()}. + * + * @param newSnapshot Snapshot to set + */ + void resolveTo(@NonNull ShardManagerSnapshot newSnapshot); + + @Override + default void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { + final int size = in.readInt(); + final var shardList = new ArrayList(size); + for (int i = 0; i < size; i++) { + shardList.add((String) in.readObject()); + } + resolveTo(new ShardManagerSnapshot(shardList)); + } + + @Override + default void writeExternal(final ObjectOutput out) throws IOException { + final var shardList = shardNames(); + out.writeInt(shardList.size()); + for (var shardName : shardList) { + out.writeObject(shardName); + } + } + } + + private static final class Proxy implements SerializedForm { private static final long serialVersionUID = 1L; private ShardManagerSnapshot snapshot; @@ -42,29 +86,23 @@ public Proxy() { } @Override - public void writeExternal(final ObjectOutput out) throws IOException { - out.writeInt(snapshot.shardList.size()); - for (String shard: snapshot.shardList) { - out.writeObject(shard); - } + public List shardNames() { + return snapshot.getShardList(); } @Override - public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { - int size = in.readInt(); - List localShardList = new ArrayList<>(size); - for (int i = 0; i < size; i++) { - localShardList.add((String) in.readObject()); - } - - snapshot = new ShardManagerSnapshot(localShardList); + public void resolveTo(final ShardManagerSnapshot newSnapshot) { + snapshot = requireNonNull(newSnapshot); } - private Object readResolve() { - return snapshot; + @Override + public Object readResolve() { + return verifyNotNull(snapshot); } } + private static final long serialVersionUID = 1L; + private final List shardList; public ShardManagerSnapshot(final @NonNull List shardList) { @@ -72,7 +110,7 @@ public ShardManagerSnapshot(final @NonNull List shardList) { } public List getShardList() { - return this.shardList; + return shardList; } private Object writeReplace() { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardSnapshotState.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardSnapshotState.java index a294584227e..e496eec831b 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardSnapshotState.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardSnapshotState.java @@ -7,6 +7,7 @@ */ package org.opendaylight.controller.cluster.datastore.persisted; +import static com.google.common.base.Verify.verifyNotNull; import static java.util.Objects.requireNonNull; import com.google.common.annotations.VisibleForTesting; @@ -24,9 +25,26 @@ * @author Thomas Pantelis */ public class ShardSnapshotState implements Snapshot.State { - private static final long serialVersionUID = 1L; + interface SerialForm extends Externalizable { + + ShardSnapshotState snapshotState(); + + void resolveTo(@NonNull ShardSnapshotState newSnapshotState); + + Object readResolve(); + + @Override + default void readExternal(final ObjectInput in) throws IOException { + resolveTo(ShardDataTreeSnapshot.deserialize(in)); + } + + @Override + default void writeExternal(final ObjectOutput out) throws IOException { + snapshotState().getSnapshot().serialize(out); + } + } - private static final class Proxy implements Externalizable { + private static final class Proxy implements SerialForm { private static final long serialVersionUID = 1L; private ShardSnapshotState snapshotState; @@ -43,20 +61,23 @@ public Proxy() { } @Override - public void writeExternal(final ObjectOutput out) throws IOException { - snapshotState.snapshot.serialize(out); + public ShardSnapshotState snapshotState() { + return snapshotState; } @Override - public void readExternal(final ObjectInput in) throws IOException { - snapshotState = ShardDataTreeSnapshot.deserialize(in); + public void resolveTo(final ShardSnapshotState newSnapshotState) { + snapshotState = requireNonNull(newSnapshotState); } - private Object readResolve() { - return snapshotState; + @Override + public Object readResolve() { + return verifyNotNull(snapshotState); } } + private static final long serialVersionUID = 1L; + @SuppressFBWarnings(value = "SE_BAD_FIELD", justification = "This field is not Serializable but this class " + "implements writeReplace to delegate serialization to a Proxy class and thus instances of this class " + "aren't serialized. FindBugs does not recognize this.") diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/SkipTransactionsPayload.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/SkipTransactionsPayload.java index 5b8ba739420..a3f7af99f04 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/SkipTransactionsPayload.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/SkipTransactionsPayload.java @@ -63,7 +63,7 @@ protected SkipTransactionsPayload createObject(final LocalHistoryIdentifier iden @SuppressFBWarnings(value = "SE_BAD_FIELD", justification = "Handled via externalizable proxy") private final @NonNull ImmutableUnsignedLongSet transactionIds; - private SkipTransactionsPayload(final @NonNull LocalHistoryIdentifier historyId, + SkipTransactionsPayload(final @NonNull LocalHistoryIdentifier historyId, final byte @NonNull [] serialized, final ImmutableUnsignedLongSet transactionIds) { super(historyId, serialized); this.transactionIds = requireNonNull(transactionIds); From 8b7ed4a094b39885adf3bb37f3cc064820443f57 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 29 Nov 2022 22:07:21 +0100 Subject: [PATCH 08/69] Add missing final keywords We have a few ommissions here, fix that up. Change-Id: If633f22e293e7a0ca022d12bed8f39ec68ae05d0 Signed-off-by: Robert Varga (cherry picked from commit 3f406c078a3fc91f1ea2199fe32d53e9e1064f4b) --- .../datastore/persisted/DatastoreSnapshot.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DatastoreSnapshot.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DatastoreSnapshot.java index 9416e58f2c8..1ba1ad3a24f 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DatastoreSnapshot.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DatastoreSnapshot.java @@ -37,7 +37,7 @@ interface SerialForm extends Externalizable { void resolveTo(@NonNull DatastoreSnapshot newDatastoreSnapshot); @Override - default void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { + default void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { final var type = (String)in.readObject(); final var snapshot = (ShardManagerSnapshot) in.readObject(); @@ -51,7 +51,7 @@ default void readExternal(ObjectInput in) throws IOException, ClassNotFoundExcep } @Override - default void writeExternal(ObjectOutput out) throws IOException { + default void writeExternal(final ObjectOutput out) throws IOException { final var datastoreSnapshot = datastoreSnapshot(); out.writeObject(datastoreSnapshot.type); out.writeObject(datastoreSnapshot.shardManagerSnapshot); @@ -85,7 +85,7 @@ public DatastoreSnapshot datastoreSnapshot() { } @Override - public void resolveTo(DatastoreSnapshot newDatastoreSnapshot) { + public void resolveTo(final DatastoreSnapshot newDatastoreSnapshot) { datastoreSnapshot = requireNonNull(newDatastoreSnapshot); } @@ -101,8 +101,8 @@ public Object readResolve() { private final ShardManagerSnapshot shardManagerSnapshot; private final @NonNull ImmutableList shardSnapshots; - public DatastoreSnapshot(@NonNull String type, @Nullable ShardManagerSnapshot shardManagerSnapshot, - @NonNull List shardSnapshots) { + public DatastoreSnapshot(final @NonNull String type, final @Nullable ShardManagerSnapshot shardManagerSnapshot, + final @NonNull List shardSnapshots) { this.type = requireNonNull(type); this.shardManagerSnapshot = shardManagerSnapshot; this.shardSnapshots = ImmutableList.copyOf(shardSnapshots); @@ -134,14 +134,14 @@ interface SerialForm extends Externalizable { void resolveTo(String name, Snapshot snapshot); @Override - default void writeExternal(ObjectOutput out) throws IOException { + default void writeExternal(final ObjectOutput out) throws IOException { final var shardSnapshot = shardSnapshot(); out.writeObject(shardSnapshot.name); out.writeObject(shardSnapshot.snapshot); } @Override - default void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { + default void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { resolveTo((String) in.readObject(), (Snapshot) in.readObject()); } } @@ -183,7 +183,7 @@ public Object readResolve() { private final @NonNull String name; private final @NonNull Snapshot snapshot; - public ShardSnapshot(@NonNull String name, @NonNull Snapshot snapshot) { + public ShardSnapshot(final @NonNull String name, final @NonNull Snapshot snapshot) { this.name = requireNonNull(name); this.snapshot = requireNonNull(snapshot); } From e7eeb8149be208b49d26d52f839f700dcc1add8f Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 30 Nov 2022 14:37:20 +0100 Subject: [PATCH 09/69] Add serialization size assertions for Request{Failure,Success} We have a bunch of unasserted sizes, make sure we fill them in. JIRA: CONTROLLER-2051 Change-Id: I7b812d53133425b5ac754652901787b202e16c63 Signed-off-by: Robert Varga (cherry picked from commit e085f22bb1934959f9d6f7f4368c1afe964b1e07) --- .../commands/AbstractRequestFailureTest.java | 31 ++++++++++++----- .../commands/AbstractRequestSuccessTest.java | 34 +++++++++++++------ .../AbstractTransactionSuccessTest.java | 8 +++-- .../commands/ConnectClientFailureTest.java | 14 ++++---- .../commands/ConnectClientSuccessTest.java | 32 ++++++++--------- .../ExistsTransactionSuccessTest.java | 29 ++++++++-------- .../commands/LocalHistoryFailureTest.java | 10 +++--- .../commands/LocalHistorySuccessTest.java | 11 ++---- .../ModifyTransactionSuccessTest.java | 11 ++---- .../ReadTransactionSuccessNoDataTest.java | 20 ++++------- .../commands/ReadTransactionSuccessTest.java | 16 +++------ .../SkipTransactionsResponseTest.java | 15 ++------ .../commands/TransactionAbortSuccessTest.java | 18 ++++------ .../TransactionCanCommitSuccessTest.java | 19 ++++------- .../TransactionCommitSuccessTest.java | 20 ++++------- .../commands/TransactionFailureTest.java | 10 +++--- .../TransactionPreCommitSuccessTest.java | 19 ++++------- .../TransactionPurgeResponseTest.java | 18 ++++------ 18 files changed, 148 insertions(+), 187 deletions(-) diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractRequestFailureTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractRequestFailureTest.java index ccdc6753ac6..ebea7f2f87b 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractRequestFailureTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractRequestFailureTest.java @@ -7,8 +7,11 @@ */ package org.opendaylight.controller.cluster.access.commands; +import static java.util.Objects.requireNonNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.apache.commons.lang.SerializationUtils; -import org.junit.Assert; import org.junit.Test; import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier; import org.opendaylight.controller.cluster.access.concepts.FrontendIdentifier; @@ -29,26 +32,36 @@ public abstract class AbstractRequestFailureTest> protected static final TransactionIdentifier TRANSACTION_IDENTIFIER = new TransactionIdentifier( HISTORY_IDENTIFIER, 0); protected static final RequestException CAUSE = new RuntimeRequestException("fail", new Throwable()); + private static final int CAUSE_SIZE = SerializationUtils.serialize(CAUSE).length; + + private final T object; + private final int expectedSize; - abstract T object(); + protected AbstractRequestFailureTest(final T object, final int baseSize) { + this.object = requireNonNull(object); + this.expectedSize = baseSize + CAUSE_SIZE; + } @Test public void getCauseTest() { - Assert.assertEquals(CAUSE, object().getCause()); + assertEquals(CAUSE, object.getCause()); } @Test public void isHardFailureTest() { - Assert.assertTrue(object().isHardFailure()); + assertTrue(object.isHardFailure()); } - @SuppressWarnings("unchecked") @Test public void serializationTest() { - final Object deserialize = SerializationUtils.clone(object()); + final var bytes = SerializationUtils.serialize(object); + assertEquals(expectedSize, bytes.length); + + @SuppressWarnings("unchecked") + final var deserialize = (T) SerializationUtils.deserialize(bytes); - Assert.assertEquals(object().getTarget(), ((T) deserialize).getTarget()); - Assert.assertEquals(object().getVersion(), ((T) deserialize).getVersion()); - Assert.assertEquals(object().getSequence(), ((T) deserialize).getSequence()); + assertEquals(object.getTarget(), deserialize.getTarget()); + assertEquals(object.getVersion(), deserialize.getVersion()); + assertEquals(object.getSequence(), deserialize.getSequence()); } } diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractRequestSuccessTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractRequestSuccessTest.java index 8a812522336..a13fbbc00dc 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractRequestSuccessTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractRequestSuccessTest.java @@ -7,8 +7,11 @@ */ package org.opendaylight.controller.cluster.access.commands; +import static java.util.Objects.requireNonNull; +import static org.junit.Assert.assertEquals; + import org.apache.commons.lang.SerializationUtils; -import org.junit.Assert; +import org.eclipse.jdt.annotation.NonNull; import org.junit.Test; import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier; import org.opendaylight.controller.cluster.access.concepts.FrontendIdentifier; @@ -18,25 +21,34 @@ import org.opendaylight.controller.cluster.access.concepts.RequestSuccess; public abstract class AbstractRequestSuccessTest> { - private static final FrontendIdentifier FRONTEND_IDENTIFIER = FrontendIdentifier.create( MemberName.forName("test"), FrontendType.forName("one")); protected static final ClientIdentifier CLIENT_IDENTIFIER = ClientIdentifier.create(FRONTEND_IDENTIFIER, 0); - protected static final LocalHistoryIdentifier HISTORY_IDENTIFIER = new LocalHistoryIdentifier( - CLIENT_IDENTIFIER, 0); + protected static final LocalHistoryIdentifier HISTORY_IDENTIFIER = new LocalHistoryIdentifier(CLIENT_IDENTIFIER, 0); + + private final @NonNull T object; + private final int expectedSize; - protected abstract T object(); + protected AbstractRequestSuccessTest(final T object, final int expectedSize) { + this.object = requireNonNull(object); + this.expectedSize = expectedSize; + } - @SuppressWarnings("unchecked") @Test public void serializationTest() { - final Object deserialize = SerializationUtils.clone(object()); + final var bytes = SerializationUtils.serialize(object); + assertEquals(expectedSize, bytes.length); + + @SuppressWarnings("unchecked") + final var deserialize = (T) SerializationUtils.deserialize(bytes); - Assert.assertEquals(object().getTarget(), ((T) deserialize).getTarget()); - Assert.assertEquals(object().getVersion(), ((T) deserialize).getVersion()); - Assert.assertEquals(object().getSequence(), ((T) deserialize).getSequence()); + assertEquals(object.getTarget(), deserialize.getTarget()); + assertEquals(object.getVersion(), deserialize.getVersion()); + assertEquals(object.getSequence(), deserialize.getSequence()); doAdditionalAssertions(deserialize); } - protected abstract void doAdditionalAssertions(Object deserialize); + protected void doAdditionalAssertions(final T deserialize) { + // No-op by default + } } diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractTransactionSuccessTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractTransactionSuccessTest.java index 08c9abb3af1..4f00501750f 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractTransactionSuccessTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractTransactionSuccessTest.java @@ -11,8 +11,10 @@ public abstract class AbstractTransactionSuccessTest> extends AbstractRequestSuccessTest { + protected static final TransactionIdentifier TRANSACTION_IDENTIFIER = new TransactionIdentifier(HISTORY_IDENTIFIER, + 0); - protected static final TransactionIdentifier TRANSACTION_IDENTIFIER = new TransactionIdentifier( - HISTORY_IDENTIFIER, 0); - + protected AbstractTransactionSuccessTest(final T object, final int expectedSize) { + super(object, expectedSize); + } } diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ConnectClientFailureTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ConnectClientFailureTest.java index 6518102fa14..8955a2cc9ab 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ConnectClientFailureTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ConnectClientFailureTest.java @@ -7,23 +7,23 @@ */ package org.opendaylight.controller.cluster.access.commands; -import org.junit.Assert; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; public class ConnectClientFailureTest extends AbstractRequestFailureTest { private static final ConnectClientFailure OBJECT = new ConnectClientFailure(CLIENT_IDENTIFIER, 0, CAUSE); - @Override - ConnectClientFailure object() { - return OBJECT; + public ConnectClientFailureTest() { + super(OBJECT, 392); } @Test public void cloneAsVersionTest() { final ConnectClientFailure clone = OBJECT.cloneAsVersion(ABIVersion.current()); - Assert.assertEquals(OBJECT.getTarget(), clone.getTarget()); - Assert.assertEquals(OBJECT.getSequence(), clone.getSequence()); - Assert.assertEquals(OBJECT.getCause(), clone.getCause()); + assertEquals(OBJECT.getTarget(), clone.getTarget()); + assertEquals(OBJECT.getSequence(), clone.getSequence()); + assertEquals(OBJECT.getCause(), clone.getCause()); } } \ No newline at end of file diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ConnectClientSuccessTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ConnectClientSuccessTest.java index 12f5dc83225..82d51e86a7e 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ConnectClientSuccessTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ConnectClientSuccessTest.java @@ -7,6 +7,9 @@ */ package org.opendaylight.controller.cluster.access.commands; +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; + import akka.actor.ActorRef; import akka.actor.ActorSelection; import akka.actor.ActorSystem; @@ -18,7 +21,6 @@ import java.util.Collection; import java.util.List; import java.util.Optional; -import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; @@ -28,7 +30,6 @@ import org.opendaylight.yangtools.yang.data.tree.impl.di.InMemoryDataTreeFactory; public class ConnectClientSuccessTest extends AbstractRequestSuccessTest { - private static final DataTree TREE = new InMemoryDataTreeFactory().create( DataTreeConfiguration.DEFAULT_OPERATIONAL); private static final ActorSystem SYSTEM = ActorSystem.create("test"); @@ -39,9 +40,8 @@ public class ConnectClientSuccessTest extends AbstractRequestSuccessTest alternates = OBJECT.getAlternates(); - Assert.assertArrayEquals(ALTERNATES.toArray(), alternates.toArray()); + assertArrayEquals(ALTERNATES.toArray(), alternates.toArray()); } @Test public void testGetBackend() { final ActorRef actorRef = OBJECT.getBackend(); - Assert.assertEquals(ACTOR_REF, actorRef); + assertEquals(ACTOR_REF, actorRef); } @Test public void testGetDataTree() { final ReadOnlyDataTree tree = OBJECT.getDataTree().get(); - Assert.assertEquals(TREE, tree); + assertEquals(TREE, tree); } @Test public void testGetMaxMessages() { - final int maxMessages = OBJECT.getMaxMessages(); - Assert.assertEquals(MAX_MESSAGES, maxMessages); + assertEquals(MAX_MESSAGES, OBJECT.getMaxMessages()); } @Test public void cloneAsVersionTest() { final ConnectClientSuccess clone = OBJECT.cloneAsVersion(ABIVersion.BORON); - Assert.assertEquals(OBJECT, clone); + assertEquals(OBJECT, clone); } @Test @@ -86,11 +85,10 @@ public void addToStringAttributes() { } @Override - protected void doAdditionalAssertions(final Object deserialize) { - Assert.assertTrue(deserialize instanceof ConnectClientSuccess); - Assert.assertEquals(OBJECT.getAlternates().size(), ((ConnectClientSuccess) deserialize).getAlternates().size()); - Assert.assertEquals(OBJECT.getBackend(), ((ConnectClientSuccess) deserialize).getBackend()); - Assert.assertEquals(Optional.empty(), ((ConnectClientSuccess) deserialize).getDataTree()); - Assert.assertEquals(OBJECT.getMaxMessages(), ((ConnectClientSuccess) deserialize).getMaxMessages()); + protected void doAdditionalAssertions(final ConnectClientSuccess deserialize) { + assertEquals(OBJECT.getAlternates().size(), deserialize.getAlternates().size()); + assertEquals(OBJECT.getBackend(), deserialize.getBackend()); + assertEquals(Optional.empty(), deserialize.getDataTree()); + assertEquals(OBJECT.getMaxMessages(), deserialize.getMaxMessages()); } } diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionSuccessTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionSuccessTest.java index e5a74a63854..f7777b30499 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionSuccessTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionSuccessTest.java @@ -7,43 +7,42 @@ */ package org.opendaylight.controller.cluster.access.commands; +import static org.hamcrest.CoreMatchers.containsString; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.Assert.assertEquals; + import com.google.common.base.MoreObjects; -import org.junit.Assert; import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; public class ExistsTransactionSuccessTest extends AbstractTransactionSuccessTest { private static final boolean EXISTS = true; - private static final ExistsTransactionSuccess OBJECT = new ExistsTransactionSuccess( - TRANSACTION_IDENTIFIER, 0, EXISTS); + private static final ExistsTransactionSuccess OBJECT = new ExistsTransactionSuccess(TRANSACTION_IDENTIFIER, 0, + EXISTS); - @Override - protected ExistsTransactionSuccess object() { - return OBJECT; + public ExistsTransactionSuccessTest() { + super(OBJECT, 487); } @Test public void getExistsTest() { - final boolean result = OBJECT.getExists(); - Assert.assertEquals(EXISTS, result); + assertEquals(EXISTS, OBJECT.getExists()); } @Test public void cloneAsVersionTest() { - final ExistsTransactionSuccess clone = OBJECT.cloneAsVersion(ABIVersion.BORON); - Assert.assertEquals(OBJECT, clone); + assertEquals(OBJECT, OBJECT.cloneAsVersion(ABIVersion.BORON)); } @Test public void addToStringAttributesTest() { - final MoreObjects.ToStringHelper result = OBJECT.addToStringAttributes(MoreObjects.toStringHelper(OBJECT)); - Assert.assertTrue(result.toString().contains("exists=" + EXISTS)); + final var result = OBJECT.addToStringAttributes(MoreObjects.toStringHelper(OBJECT)).toString(); + assertThat(result, containsString("exists=" + EXISTS)); } @Override - protected void doAdditionalAssertions(final Object deserialize) { - Assert.assertTrue(deserialize instanceof ExistsTransactionSuccess); - Assert.assertEquals(OBJECT.getExists(), ((ExistsTransactionSuccess) deserialize).getExists()); + protected void doAdditionalAssertions(final ExistsTransactionSuccess deserialize) { + assertEquals(OBJECT.getExists(), deserialize.getExists()); } } \ No newline at end of file diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryFailureTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryFailureTest.java index c9d76f9b3d4..54b63eeaa38 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryFailureTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryFailureTest.java @@ -7,21 +7,21 @@ */ package org.opendaylight.controller.cluster.access.commands; -import org.junit.Assert; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; public class LocalHistoryFailureTest extends AbstractRequestFailureTest { private static final LocalHistoryFailure OBJECT = new LocalHistoryFailure(HISTORY_IDENTIFIER, 0, CAUSE); - @Override - LocalHistoryFailure object() { - return OBJECT; + public LocalHistoryFailureTest() { + super(OBJECT, 392); } @Test public void cloneAsVersionTest() { final LocalHistoryFailure clone = OBJECT.cloneAsVersion(ABIVersion.current()); - Assert.assertEquals(OBJECT, clone); + assertEquals(OBJECT, clone); } } \ No newline at end of file diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/LocalHistorySuccessTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/LocalHistorySuccessTest.java index 875037bb000..6b68ae7c241 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/LocalHistorySuccessTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/LocalHistorySuccessTest.java @@ -8,7 +8,6 @@ package org.opendaylight.controller.cluster.access.commands; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; @@ -16,9 +15,8 @@ public class LocalHistorySuccessTest extends AbstractRequestSuccessTest { private static final LocalHistorySuccess OBJECT = new LocalHistorySuccess(HISTORY_IDENTIFIER, 0); - @Override - protected LocalHistorySuccess object() { - return OBJECT; + public LocalHistorySuccessTest() { + super(OBJECT, 382); } @Test @@ -28,9 +26,4 @@ public void cloneAsVersionTest() { assertEquals(OBJECT.getSequence(), clone.getSequence()); assertEquals(OBJECT.getTarget(), clone.getTarget()); } - - @Override - protected void doAdditionalAssertions(final Object deserialize) { - assertTrue(deserialize instanceof LocalHistorySuccess); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionSuccessTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionSuccessTest.java index 3cd46269338..227b7410221 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionSuccessTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionSuccessTest.java @@ -8,7 +8,6 @@ package org.opendaylight.controller.cluster.access.commands; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; @@ -16,9 +15,8 @@ public class ModifyTransactionSuccessTest extends AbstractTransactionSuccessTest { private static final ModifyTransactionSuccess OBJECT = new ModifyTransactionSuccess(TRANSACTION_IDENTIFIER, 0); - @Override - protected ModifyTransactionSuccess object() { - return OBJECT; + public ModifyTransactionSuccessTest() { + super(OBJECT, 486); } @Test @@ -28,9 +26,4 @@ public void cloneAsVersionTest() { assertEquals(OBJECT.getSequence(), clone.getSequence()); assertEquals(OBJECT.getTarget(), clone.getTarget()); } - - @Override - protected void doAdditionalAssertions(final Object deserialize) { - assertTrue(deserialize instanceof ModifyTransactionSuccess); - } } \ No newline at end of file diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessNoDataTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessNoDataTest.java index 51257462b63..c0eced7a776 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessNoDataTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessNoDataTest.java @@ -8,27 +8,22 @@ package org.opendaylight.controller.cluster.access.commands; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; import java.util.Optional; import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; public class ReadTransactionSuccessNoDataTest extends AbstractTransactionSuccessTest { - private static final ReadTransactionSuccess OBJECT = new ReadTransactionSuccess( - TRANSACTION_IDENTIFIER, 0, Optional.empty()); + private static final ReadTransactionSuccess OBJECT = new ReadTransactionSuccess(TRANSACTION_IDENTIFIER, 0, + Optional.empty()); - @Override - protected ReadTransactionSuccess object() { - return OBJECT; + public ReadTransactionSuccessNoDataTest() { + super(OBJECT, 485); } @Test public void getDataTest() { - final Optional result = OBJECT.getData(); - assertFalse(result.isPresent()); + assertEquals(Optional.empty(), OBJECT.getData()); } @Test @@ -38,8 +33,7 @@ public void cloneAsVersionTest() { } @Override - protected void doAdditionalAssertions(final Object deserialize) { - assertTrue(deserialize instanceof ReadTransactionSuccess); - assertEquals(OBJECT.getData(), ((ReadTransactionSuccess) deserialize).getData()); + protected void doAdditionalAssertions(final ReadTransactionSuccess deserialize) { + assertEquals(OBJECT.getData(), deserialize.getData()); } } diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessTest.java index 4bda8c8016d..e9193f8d8d6 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessTest.java @@ -8,7 +8,6 @@ package org.opendaylight.controller.cluster.access.commands; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; import java.util.Optional; import org.junit.Test; @@ -16,7 +15,6 @@ import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.impl.schema.Builders; public class ReadTransactionSuccessTest extends AbstractTransactionSuccessTest { @@ -26,16 +24,13 @@ public class ReadTransactionSuccessTest extends AbstractTransactionSuccessTest result = OBJECT.getData(); - assertTrue(result.isPresent()); - assertEquals(NODE.body(), result.get().body()); + assertEquals(Optional.of(NODE), OBJECT.getData()); } @Test @@ -45,8 +40,7 @@ public void cloneAsVersionTest() { } @Override - protected void doAdditionalAssertions(final Object deserialize) { - assertTrue(deserialize instanceof ReadTransactionSuccess); - assertEquals(OBJECT.getData(), ((ReadTransactionSuccess) deserialize).getData()); + protected void doAdditionalAssertions(final ReadTransactionSuccess deserialize) { + assertEquals(OBJECT.getData(), deserialize.getData()); } } 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 be70ad96ea8..c4c3f0767e5 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 @@ -7,20 +7,16 @@ */ package org.opendaylight.controller.cluster.access.commands; -import static org.hamcrest.CoreMatchers.instanceOf; -import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertEquals; import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; public class SkipTransactionsResponseTest extends AbstractTransactionSuccessTest { - private static final SkipTransactionsResponse OBJECT = new SkipTransactionsResponse( - TRANSACTION_IDENTIFIER, 0); + private static final SkipTransactionsResponse OBJECT = new SkipTransactionsResponse(TRANSACTION_IDENTIFIER, 0); - @Override - protected SkipTransactionsResponse object() { - return OBJECT; + public SkipTransactionsResponseTest() { + super(OBJECT, 486); } @Test @@ -28,9 +24,4 @@ public void cloneAsVersionTest() { final SkipTransactionsResponse clone = OBJECT.cloneAsVersion(ABIVersion.BORON); assertEquals(OBJECT, clone); } - - @Override - protected void doAdditionalAssertions(final Object deserialize) { - assertThat(deserialize, instanceOf(SkipTransactionsResponse.class)); - } } \ No newline at end of file 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 31959aaf3e1..ee2a7198908 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 @@ -7,27 +7,21 @@ */ package org.opendaylight.controller.cluster.access.commands; -import org.junit.Assert; +import static org.junit.Assert.assertEquals; + import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; public class TransactionAbortSuccessTest extends AbstractTransactionSuccessTest { - private static final TransactionAbortSuccess OBJECT = new TransactionAbortSuccess( - TRANSACTION_IDENTIFIER, 0); + private static final TransactionAbortSuccess OBJECT = new TransactionAbortSuccess(TRANSACTION_IDENTIFIER, 0); - @Override - protected TransactionAbortSuccess object() { - return OBJECT; + public TransactionAbortSuccessTest() { + super(OBJECT, 485); } @Test public void cloneAsVersionTest() { final TransactionAbortSuccess clone = OBJECT.cloneAsVersion(ABIVersion.BORON); - Assert.assertEquals(OBJECT, clone); - } - - @Override - protected void doAdditionalAssertions(Object deserialize) { - Assert.assertTrue(deserialize instanceof TransactionAbortSuccess); + assertEquals(OBJECT, clone); } } \ No newline at end of file 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 e8995a9e247..5d073f5a405 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 @@ -7,27 +7,22 @@ */ package org.opendaylight.controller.cluster.access.commands; -import org.junit.Assert; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; public class TransactionCanCommitSuccessTest extends AbstractTransactionSuccessTest { - private static final TransactionCanCommitSuccess OBJECT = new TransactionCanCommitSuccess( - TRANSACTION_IDENTIFIER, 0); + private static final TransactionCanCommitSuccess OBJECT = new TransactionCanCommitSuccess(TRANSACTION_IDENTIFIER, + 0); - @Override - protected TransactionCanCommitSuccess object() { - return OBJECT; + public TransactionCanCommitSuccessTest() { + super(OBJECT, 489); } @Test public void cloneAsVersionTest() { final TransactionCanCommitSuccess clone = OBJECT.cloneAsVersion(ABIVersion.BORON); - Assert.assertEquals(OBJECT, clone); - } - - @Override - protected void doAdditionalAssertions(Object deserialize) { - Assert.assertTrue(deserialize instanceof TransactionCanCommitSuccess); + assertEquals(OBJECT, clone); } } \ No newline at end of file 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 9db578d2b6d..f4ac48225ff 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 @@ -7,27 +7,21 @@ */ package org.opendaylight.controller.cluster.access.commands; -import org.junit.Assert; +import static org.junit.Assert.assertEquals; + import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; public class TransactionCommitSuccessTest extends AbstractTransactionSuccessTest { - private static final TransactionCommitSuccess OBJECT = new TransactionCommitSuccess( - TRANSACTION_IDENTIFIER, 0); + private static final TransactionCommitSuccess OBJECT = new TransactionCommitSuccess(TRANSACTION_IDENTIFIER, 0); - @Override - protected TransactionCommitSuccess object() { - return OBJECT; + public TransactionCommitSuccessTest() { + super(OBJECT, 486); } @Test public void cloneAsVersionTest() { final TransactionCommitSuccess clone = OBJECT.cloneAsVersion(ABIVersion.BORON); - Assert.assertEquals(OBJECT, clone); - } - - @Override - protected void doAdditionalAssertions(Object deserialize) { - Assert.assertTrue(deserialize instanceof TransactionCommitSuccess); + assertEquals(OBJECT, clone); } -} \ No newline at end of file +} 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 9e8467e5ca3..ab50f4ad297 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 @@ -7,21 +7,21 @@ */ package org.opendaylight.controller.cluster.access.commands; -import org.junit.Assert; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; public class TransactionFailureTest extends AbstractRequestFailureTest { private static final TransactionFailure OBJECT = new TransactionFailure(TRANSACTION_IDENTIFIER, 0, CAUSE); - @Override - TransactionFailure object() { - return OBJECT; + public TransactionFailureTest() { + super(OBJECT, 392); } @Test public void cloneAsVersionTest() { final TransactionFailure clone = OBJECT.cloneAsVersion(ABIVersion.current()); - Assert.assertEquals(OBJECT, clone); + assertEquals(OBJECT, clone); } } \ No newline at end of file diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitSuccessTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitSuccessTest.java index 0130ea06ab8..505036f8300 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitSuccessTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitSuccessTest.java @@ -7,27 +7,22 @@ */ package org.opendaylight.controller.cluster.access.commands; -import org.junit.Assert; +import static org.junit.Assert.assertEquals; + import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; public class TransactionPreCommitSuccessTest extends AbstractTransactionSuccessTest { - private static final TransactionPreCommitSuccess OBJECT = new TransactionPreCommitSuccess( - TRANSACTION_IDENTIFIER, 0); + private static final TransactionPreCommitSuccess OBJECT = new TransactionPreCommitSuccess(TRANSACTION_IDENTIFIER, + 0); - @Override - protected TransactionPreCommitSuccess object() { - return OBJECT; + public TransactionPreCommitSuccessTest() { + super(OBJECT, 489); } @Test public void cloneAsVersionTest() { final TransactionPreCommitSuccess clone = OBJECT.cloneAsVersion(ABIVersion.BORON); - Assert.assertEquals(OBJECT, clone); - } - - @Override - protected void doAdditionalAssertions(Object deserialize) { - Assert.assertTrue(deserialize instanceof TransactionPreCommitSuccess); + assertEquals(OBJECT, clone); } } \ No newline at end of file diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeResponseTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeResponseTest.java index bef9ae140bd..e44f8521cde 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeResponseTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeResponseTest.java @@ -7,27 +7,21 @@ */ package org.opendaylight.controller.cluster.access.commands; -import org.junit.Assert; +import static org.junit.Assert.assertEquals; + import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; public class TransactionPurgeResponseTest extends AbstractTransactionSuccessTest { - private static final TransactionPurgeResponse OBJECT = new TransactionPurgeResponse( - TRANSACTION_IDENTIFIER, 0); + private static final TransactionPurgeResponse OBJECT = new TransactionPurgeResponse(TRANSACTION_IDENTIFIER, 0); - @Override - protected TransactionPurgeResponse object() { - return OBJECT; + public TransactionPurgeResponseTest() { + super(OBJECT, 486); } @Test public void cloneAsVersionTest() { final TransactionPurgeResponse clone = OBJECT.cloneAsVersion(ABIVersion.BORON); - Assert.assertEquals(OBJECT, clone); - } - - @Override - protected void doAdditionalAssertions(Object deserialize) { - Assert.assertTrue(deserialize instanceof TransactionPurgeResponse); + assertEquals(OBJECT, clone); } } \ No newline at end of file From d2a03098f78e7a237a04eb83d494160cf85eee72 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sun, 27 Nov 2022 13:59:16 +0100 Subject: [PATCH 10/69] Add new cds-access-api proxies Externalizable serialization format record class hierarchy, which leads to significant overheads. This patch introduces proxies which are are flat, i.e. have java.Object as their superclass, eliminating this overhead. The way we do this is we defined SerialForm interfaces which extend Externalizable and define the serialization protocol in terms of default methods. We then define a bunch of classes which are pure data holders implementing individual SerialForms. Also ensure messages properly implement cloneAsVersion() to propagate the target version, now that it matters for them. Finally audit use of java.io.Serial so that we do not import it -- it is just pure overhead vs. using @java.io.Serial directly. JIRA: CONTROLLER-2051 Change-Id: I01132665027687edc1c6d44dda8a6ab0cab6ad6a Signed-off-by: Robert Varga (cherry picked from commit d92bd0e575983b3d6a09a73089ef8f9c62f94eaa) --- .../controller/cluster/access/ABIVersion.java | 11 +++ .../access/AbstractVersionException.java | 3 +- .../access/FutureVersionException.java | 6 +- .../cluster/access/PastVersionException.java | 6 +- .../AbortLocalTransactionRequest.java | 3 +- .../AbstractLocalHistoryRequestProxy.java | 12 +-- .../AbstractLocalTransactionRequest.java | 5 +- .../AbstractReadPathTransactionRequest.java | 31 ++++++- ...ractReadPathTransactionRequestProxyV1.java | 43 +--------- .../AbstractReadTransactionRequest.java | 26 +++++- ...AbstractReadTransactionRequestProxyV1.java | 34 +------- .../AbstractTransactionRequestProxy.java | 12 +-- .../AbstractTransactionSuccessProxy.java | 12 +-- .../cluster/access/commands/CCF.java | 45 ++++++++++ .../cluster/access/commands/CCR.java | 45 ++++++++++ .../cluster/access/commands/CCS.java | 45 ++++++++++ .../cluster/access/commands/CHR.java | 46 +++++++++++ .../commands/ClosedTransactionException.java | 3 +- .../CommitLocalTransactionRequest.java | 3 +- .../access/commands/ConnectClientFailure.java | 24 ++++-- .../commands/ConnectClientFailureProxyV1.java | 20 +---- .../access/commands/ConnectClientRequest.java | 34 ++++++-- .../commands/ConnectClientRequestProxyV1.java | 42 +--------- .../access/commands/ConnectClientSuccess.java | 60 ++++++++++++-- .../commands/ConnectClientSuccessProxyV1.java | 61 +------------- .../commands/CreateLocalHistoryRequest.java | 17 ++-- .../CreateLocalHistoryRequestProxyV1.java | 15 +--- .../cluster/access/commands/DHR.java | 46 +++++++++++ .../access/commands/DeadHistoryException.java | 3 +- .../commands/DeadTransactionException.java | 3 +- .../commands/DestroyLocalHistoryRequest.java | 17 ++-- .../DestroyLocalHistoryRequestProxyV1.java | 15 +--- .../cluster/access/commands/ETR.java | 46 +++++++++++ .../cluster/access/commands/ETS.java | 46 +++++++++++ .../commands/ExistsTransactionRequest.java | 20 +++-- .../ExistsTransactionRequestProxyV1.java | 17 +--- .../commands/ExistsTransactionSuccess.java | 30 +++++-- .../ExistsTransactionSuccessProxyV1.java | 31 +------ .../cluster/access/commands/HF.java | 45 ++++++++++ .../cluster/access/commands/HS.java | 45 ++++++++++ .../cluster/access/commands/ITSR.java | 46 +++++++++++ .../cluster/access/commands/ITSS.java | 46 +++++++++++ .../IncrementTransactionSequenceRequest.java | 43 ++++++++-- ...mentTransactionSequenceRequestProxyV1.java | 34 +------- .../IncrementTransactionSequenceSuccess.java | 23 ++++-- ...mentTransactionSequenceSuccessProxyV1.java | 14 +--- .../access/commands/LocalHistoryFailure.java | 30 +++++-- .../commands/LocalHistoryFailureProxyV1.java | 22 +---- .../access/commands/LocalHistoryRequest.java | 14 +++- .../access/commands/LocalHistorySuccess.java | 31 +++++-- .../commands/LocalHistorySuccessProxyV1.java | 18 +--- .../cluster/access/commands/MTR.java | 46 +++++++++++ .../cluster/access/commands/MTS.java | 46 +++++++++++ .../commands/ModifyTransactionRequest.java | 63 ++++++++++++-- .../ModifyTransactionRequestProxyV1.java | 70 +--------------- .../commands/ModifyTransactionSuccess.java | 17 +++- .../ModifyTransactionSuccessProxyV1.java | 13 +-- .../access/commands/NotLeaderException.java | 3 +- .../commands/OutOfOrderRequestException.java | 3 +- .../OutOfSequenceEnvelopeException.java | 3 +- .../cluster/access/commands/PHR.java | 46 +++++++++++ .../commands/PurgeLocalHistoryRequest.java | 16 +++- .../PurgeLocalHistoryRequestProxyV1.java | 15 +--- .../cluster/access/commands/RTR.java | 46 +++++++++++ .../cluster/access/commands/RTS.java | 46 +++++++++++ .../commands/ReadTransactionRequest.java | 18 +++- .../ReadTransactionRequestProxyV1.java | 16 +--- .../commands/ReadTransactionSuccess.java | 47 +++++++++-- .../ReadTransactionSuccessProxyV1.java | 51 +----------- .../cluster/access/commands/STR.java | 46 +++++++++++ .../cluster/access/commands/STS.java | 46 +++++++++++ .../commands/SkipTransactionsRequest.java | 61 ++++++++++++-- .../commands/SkipTransactionsRequestV1.java | 65 +-------------- .../commands/SkipTransactionsResponse.java | 24 ++++-- .../SkipTransactionsResponseProxyV1.java | 13 +-- .../cluster/access/commands/TAR.java | 46 +++++++++++ .../cluster/access/commands/TAS.java | 46 +++++++++++ .../cluster/access/commands/TCCS.java | 46 +++++++++++ .../cluster/access/commands/TCS.java | 46 +++++++++++ .../cluster/access/commands/TDCR.java | 46 +++++++++++ .../cluster/access/commands/TF.java | 45 ++++++++++ .../cluster/access/commands/TPCR.java | 46 +++++++++++ .../cluster/access/commands/TPCS.java | 46 +++++++++++ .../cluster/access/commands/TPR.java | 46 +++++++++++ .../cluster/access/commands/TPS.java | 46 +++++++++++ .../commands/TransactionAbortRequest.java | 22 +++-- .../TransactionAbortRequestProxyV1.java | 15 +--- .../commands/TransactionAbortSuccess.java | 22 +++-- .../TransactionAbortSuccessProxyV1.java | 13 +-- .../commands/TransactionCanCommitSuccess.java | 23 ++++-- .../TransactionCanCommitSuccessProxyV1.java | 26 +----- .../commands/TransactionCommitSuccess.java | 22 +++-- .../TransactionCommitSuccessProxyV1.java | 13 +-- .../commands/TransactionDoCommitRequest.java | 22 +++-- .../TransactionDoCommitRequestProxyV1.java | 15 +--- .../access/commands/TransactionFailure.java | 28 +++++-- .../commands/TransactionFailureProxyV1.java | 20 +---- .../commands/TransactionPreCommitRequest.java | 22 +++-- .../TransactionPreCommitRequestProxyV1.java | 15 +--- .../commands/TransactionPreCommitSuccess.java | 24 ++++-- .../TransactionPreCommitSuccessProxyV1.java | 13 +-- .../commands/TransactionPurgeRequest.java | 22 +++-- .../TransactionPurgeRequestProxyV1.java | 15 +--- .../commands/TransactionPurgeResponse.java | 26 ++++-- .../TransactionPurgeResponseProxyV1.java | 13 +-- .../access/commands/TransactionRequest.java | 15 +++- .../access/commands/TransactionSuccess.java | 14 +++- .../commands/UnknownHistoryException.java | 3 +- .../concepts/AbstractEnvelopeProxy.java | 47 ++++------- .../access/concepts/AbstractMessageProxy.java | 39 +++------ .../concepts/AbstractRequestFailureProxy.java | 33 +------- .../access/concepts/AbstractRequestProxy.java | 33 +------- .../AbstractResponseEnvelopeProxy.java | 36 +------- .../concepts/AbstractResponseProxy.java | 10 +-- .../access/concepts/AbstractSuccessProxy.java | 10 +-- .../cluster/access/concepts/CI.java | 45 ++++++++++ .../access/concepts/ClientIdentifier.java | 59 ++++++++----- .../cluster/access/concepts/Envelope.java | 49 +++++++++-- .../cluster/access/concepts/FE.java | 45 ++++++++++ .../cluster/access/concepts/FI.java | 45 ++++++++++ .../cluster/access/concepts/FT.java | 45 ++++++++++ .../access/concepts/FailureEnvelope.java | 19 ++++- .../access/concepts/FailureEnvelopeProxy.java | 13 +-- .../access/concepts/FrontendIdentifier.java | 57 ++++++++----- .../cluster/access/concepts/FrontendType.java | 60 +++++++++----- .../cluster/access/concepts/HI.java | 45 ++++++++++ .../concepts/LocalHistoryIdentifier.java | 82 +++++++++++-------- .../cluster/access/concepts/MN.java | 45 ++++++++++ .../cluster/access/concepts/MemberName.java | 58 ++++++++----- .../cluster/access/concepts/Message.java | 54 ++++++++++-- .../cluster/access/concepts/RE.java | 45 ++++++++++ .../cluster/access/concepts/Request.java | 28 ++++++- .../access/concepts/RequestEnvelope.java | 19 ++++- .../access/concepts/RequestEnvelopeProxy.java | 12 +-- .../access/concepts/RequestException.java | 3 +- .../access/concepts/RequestFailure.java | 29 ++++++- .../access/concepts/RequestSuccess.java | 22 +++-- .../cluster/access/concepts/Response.java | 11 +-- .../access/concepts/ResponseEnvelope.java | 32 ++++++-- .../concepts/RetiredGenerationException.java | 4 +- .../concepts/RuntimeRequestException.java | 3 +- .../cluster/access/concepts/SE.java | 53 ++++++++++++ .../access/concepts/SuccessEnvelope.java | 20 ++++- .../access/concepts/SuccessEnvelopeProxy.java | 13 +-- .../cluster/access/concepts/TI.java | 45 ++++++++++ .../concepts/TransactionIdentifier.java | 57 ++++++++----- .../concepts/UnsupportedRequestException.java | 4 +- .../commands/ConnectClientSuccessTest.java | 9 +- .../ExistsTransactionSuccessTest.java | 5 +- .../commands/LocalHistoryFailureTest.java | 8 +- .../ModifyTransactionRequestEmptyTest.java | 6 +- .../ModifyTransactionRequestTest.java | 7 +- .../ReadTransactionSuccessNoDataTest.java | 6 +- .../commands/ReadTransactionSuccessTest.java | 6 +- .../commands/SkipTransactionsRequestTest.java | 5 +- .../SkipTransactionsResponseTest.java | 5 +- .../commands/TransactionAbortRequestTest.java | 5 +- .../commands/TransactionAbortSuccessTest.java | 5 +- .../TransactionCanCommitSuccessTest.java | 7 +- .../TransactionCommitSuccessTest.java | 5 +- .../TransactionDoCommitRequestTest.java | 5 +- .../commands/TransactionFailureTest.java | 8 +- .../TransactionPreCommitRequestTest.java | 5 +- .../TransactionPreCommitSuccessTest.java | 5 +- .../commands/TransactionPurgeRequestTest.java | 5 +- .../TransactionPurgeResponseTest.java | 5 +- .../access/concepts/FailureEnvelopeTest.java | 11 ++- .../client/TransmittingTransmitQueueTest.java | 2 +- 168 files changed, 3170 insertions(+), 1335 deletions(-) create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CCF.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CCR.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CCS.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CHR.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/DHR.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ETR.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ETS.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/HF.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/HS.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ITSR.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ITSS.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/MTR.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/MTS.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/PHR.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/RTR.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/RTS.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/STR.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/STS.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TAR.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TAS.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TCCS.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TCS.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TDCR.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TF.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TPCR.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TPCS.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TPR.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TPS.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/CI.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FE.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FI.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FT.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/HI.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/MN.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RE.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/SE.java create mode 100644 opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/TI.java 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 84eb8f6c97f..716083156b3 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 @@ -136,6 +136,17 @@ public short shortValue() { }; } + /** + * Return {@code true} if this version is earier than some {@code other} version. + * + * @param other Other {@link ABIVersion} + * @return {@code true} if {@code other is later} + * @throws NullPointerException if {@code other} is null + */ + public boolean lt(final @NonNull ABIVersion other) { + return compareTo(other) < 0; + } + @Override public void writeTo(final DataOutput out) throws IOException { out.writeShort(value); diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/AbstractVersionException.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/AbstractVersionException.java index f1c538c7180..1555b59501b 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/AbstractVersionException.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/AbstractVersionException.java @@ -9,14 +9,13 @@ import static java.util.Objects.requireNonNull; -import java.io.Serial; import org.eclipse.jdt.annotation.NonNull; /** * Abstract base exception used for reporting version mismatches from {@link ABIVersion}. */ public abstract class AbstractVersionException extends Exception { - @Serial + @java.io.Serial private static final long serialVersionUID = 1L; private final @NonNull ABIVersion closestVersion; diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/FutureVersionException.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/FutureVersionException.java index 4cd807ee097..f0ceaa4890b 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/FutureVersionException.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/FutureVersionException.java @@ -7,17 +7,15 @@ */ package org.opendaylight.controller.cluster.access; -import java.io.Serial; - /** * Exception thrown from {@link ABIVersion#valueOf(short)} when the specified version is too new to be supported * by the codebase. */ public final class FutureVersionException extends AbstractVersionException { - @Serial + @java.io.Serial private static final long serialVersionUID = 1L; - FutureVersionException(final short version, ABIVersion closest) { + FutureVersionException(final short version, final ABIVersion closest) { super("Version " + Short.toUnsignedInt(version) + " is too new", version, closest); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/PastVersionException.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/PastVersionException.java index 0b7f134ec97..c333d3495e1 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/PastVersionException.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/PastVersionException.java @@ -7,16 +7,12 @@ */ package org.opendaylight.controller.cluster.access; -import java.io.Serial; - /** * Exception thrown from {@link ABIVersion#valueOf(short)} when the specified version is too old and no longer * supported by the codebase. - * - * @author Robert Varga */ public final class PastVersionException extends AbstractVersionException { - @Serial + @java.io.Serial private static final long serialVersionUID = 1L; PastVersionException(final short version, final ABIVersion closest) { diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbortLocalTransactionRequest.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbortLocalTransactionRequest.java index 37ddb9e7e73..9e2998c5b25 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbortLocalTransactionRequest.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbortLocalTransactionRequest.java @@ -8,7 +8,6 @@ package org.opendaylight.controller.cluster.access.commands; import akka.actor.ActorRef; -import java.io.Serial; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; @@ -18,7 +17,7 @@ * not important for single transactions, but is critical to ensure transaction ordering within local histories. */ public final class AbortLocalTransactionRequest extends AbstractLocalTransactionRequest { - @Serial + @java.io.Serial private static final long serialVersionUID = 1L; public AbortLocalTransactionRequest(final @NonNull TransactionIdentifier identifier, diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractLocalHistoryRequestProxy.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractLocalHistoryRequestProxy.java index cd02a200995..1bd37fb83c1 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractLocalHistoryRequestProxy.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractLocalHistoryRequestProxy.java @@ -7,9 +7,6 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.DataInput; -import java.io.IOException; -import java.io.Serial; import org.opendaylight.controller.cluster.access.concepts.AbstractRequestProxy; import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; @@ -21,8 +18,8 @@ * @param Message type */ abstract class AbstractLocalHistoryRequestProxy> - extends AbstractRequestProxy { - @Serial + extends AbstractRequestProxy implements LocalHistoryRequest.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; protected AbstractLocalHistoryRequestProxy() { @@ -32,9 +29,4 @@ protected AbstractLocalHistoryRequestProxy() { AbstractLocalHistoryRequestProxy(final T request) { super(request); } - - @Override - protected final LocalHistoryIdentifier readTarget(final DataInput in) throws IOException { - return LocalHistoryIdentifier.readFrom(in); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractLocalTransactionRequest.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractLocalTransactionRequest.java index f31e4088890..5831e65c11a 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractLocalTransactionRequest.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractLocalTransactionRequest.java @@ -8,7 +8,6 @@ package org.opendaylight.controller.cluster.access.commands; import akka.actor.ActorRef; -import java.io.Serial; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.Request; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; @@ -23,7 +22,7 @@ */ public abstract class AbstractLocalTransactionRequest> extends TransactionRequest { - @Serial + @java.io.Serial private static final long serialVersionUID = 1L; AbstractLocalTransactionRequest(final TransactionIdentifier identifier, final long sequence, @@ -32,7 +31,7 @@ public abstract class AbstractLocalTransactionRequest externalizableProxy(final ABIVersion version) { + protected final SerialForm externalizableProxy(final ABIVersion version) { throw new UnsupportedOperationException("Local transaction request " + this + " should never be serialized"); } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractReadPathTransactionRequest.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractReadPathTransactionRequest.java index 1cdade9ac03..2b4ee0e7e8d 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractReadPathTransactionRequest.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractReadPathTransactionRequest.java @@ -11,11 +11,14 @@ import akka.actor.ActorRef; import com.google.common.base.MoreObjects.ToStringHelper; -import java.io.Serial; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; +import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataInput; /** * Abstract base class for {@link TransactionRequest}s accessing data as visible in the isolated context of a particular @@ -29,7 +32,29 @@ */ public abstract class AbstractReadPathTransactionRequest> extends AbstractReadTransactionRequest { - @Serial + interface SerialForm> + extends AbstractReadTransactionRequest.SerialForm { + + @Override + default T readExternal(final ObjectInput in, final TransactionIdentifier target, final long sequence, + final ActorRef replyTo, final boolean snapshotOnly) throws IOException { + return readExternal(in, target, sequence, replyTo, snapshotOnly, + NormalizedNodeDataInput.newDataInput(in).readYangInstanceIdentifier()); + } + + @NonNull T readExternal(@NonNull ObjectInput in, @NonNull TransactionIdentifier target, long sequence, + @NonNull ActorRef replyTo, boolean snapshotOnly, @NonNull YangInstanceIdentifier path) throws IOException; + + @Override + default void writeExternal(final ObjectOutput out, final T msg) throws IOException { + AbstractReadTransactionRequest.SerialForm.super.writeExternal(out, msg); + try (var nnout = msg.getVersion().getStreamVersion().newDataOutput(out)) { + nnout.writeYangInstanceIdentifier(msg.getPath()); + } + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; private final @NonNull YangInstanceIdentifier path; @@ -55,5 +80,5 @@ protected ToStringHelper addToStringAttributes(final ToStringHelper toStringHelp } @Override - protected abstract AbstractReadTransactionRequestProxyV1 externalizableProxy(ABIVersion version); + protected abstract SerialForm externalizableProxy(ABIVersion version); } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractReadPathTransactionRequestProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractReadPathTransactionRequestProxyV1.java index e139920d6f2..e5429841f3a 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractReadPathTransactionRequestProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractReadPathTransactionRequestProxyV1.java @@ -7,17 +7,6 @@ */ package org.opendaylight.controller.cluster.access.commands; -import akka.actor.ActorRef; -import java.io.IOException; -import java.io.ObjectInput; -import java.io.ObjectOutput; -import java.io.Serial; -import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataInput; -import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataOutput; -import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeStreamVersion; - /** * Abstract base class for serialization proxies associated with {@link AbstractReadTransactionRequest}s. It implements * the initial (Boron) serialization format. @@ -27,43 +16,15 @@ * @param Message type */ abstract class AbstractReadPathTransactionRequestProxyV1> - extends AbstractReadTransactionRequestProxyV1 { - @Serial + extends AbstractReadTransactionRequestProxyV1 implements AbstractReadPathTransactionRequest.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; - private YangInstanceIdentifier path; - private transient NormalizedNodeStreamVersion streamVersion; - protected AbstractReadPathTransactionRequestProxyV1() { // For Externalizable } AbstractReadPathTransactionRequestProxyV1(final T request) { super(request); - path = request.getPath(); - streamVersion = request.getVersion().getStreamVersion(); } - - @Override - public final void writeExternal(final ObjectOutput out) throws IOException { - super.writeExternal(out); - try (NormalizedNodeDataOutput nnout = streamVersion.newDataOutput(out)) { - nnout.writeYangInstanceIdentifier(path); - } - } - - @Override - public final void readExternal(final ObjectInput in) throws ClassNotFoundException, IOException { - super.readExternal(in); - path = NormalizedNodeDataInput.newDataInput(in).readYangInstanceIdentifier(); - } - - @Override - protected final T createReadRequest(final TransactionIdentifier target, final long sequence, - final ActorRef replyTo, final boolean snapshotOnly) { - return createReadPathRequest(target, sequence, replyTo, path, snapshotOnly); - } - - abstract T createReadPathRequest(TransactionIdentifier target, long sequence, ActorRef replyTo, - YangInstanceIdentifier requestPath, boolean snapshotOnly); } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractReadTransactionRequest.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractReadTransactionRequest.java index 4c1d3971f51..23fdd85140d 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractReadTransactionRequest.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractReadTransactionRequest.java @@ -9,7 +9,10 @@ import akka.actor.ActorRef; import com.google.common.base.MoreObjects.ToStringHelper; -import java.io.Serial; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; @@ -24,7 +27,24 @@ */ public abstract class AbstractReadTransactionRequest> extends TransactionRequest { - @Serial + interface SerialForm> extends TransactionRequest.SerialForm { + @Override + default T readExternal(final ObjectInput in, final TransactionIdentifier target, final long sequence, + final ActorRef replyTo) throws IOException { + return readExternal(in, target, sequence, replyTo, in.readBoolean()); + } + + @NonNull T readExternal(@NonNull ObjectInput in, @NonNull TransactionIdentifier target, long sequence, + @NonNull ActorRef replyTo, boolean snapshotOnly) throws IOException; + + @Override + default void writeExternal(final ObjectOutput out, final T msg) throws IOException { + TransactionRequest.SerialForm.super.writeExternal(out, msg); + out.writeBoolean(msg.isSnapshotOnly()); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; private final boolean snapshotOnly; @@ -50,5 +70,5 @@ protected ToStringHelper addToStringAttributes(final ToStringHelper toStringHelp } @Override - protected abstract AbstractReadTransactionRequestProxyV1 externalizableProxy(ABIVersion version); + protected abstract SerialForm externalizableProxy(ABIVersion version); } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractReadTransactionRequestProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractReadTransactionRequestProxyV1.java index 66bca1d7465..e8539ea57b4 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractReadTransactionRequestProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractReadTransactionRequestProxyV1.java @@ -7,13 +7,6 @@ */ package org.opendaylight.controller.cluster.access.commands; -import akka.actor.ActorRef; -import java.io.IOException; -import java.io.ObjectInput; -import java.io.ObjectOutput; -import java.io.Serial; -import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; - /** * Abstract base class for serialization proxies associated with {@link AbstractReadTransactionRequest}s. It implements * the initial (Boron) serialization format. @@ -23,38 +16,15 @@ * @param Message type */ abstract class AbstractReadTransactionRequestProxyV1> - extends AbstractTransactionRequestProxy { - @Serial + extends AbstractTransactionRequestProxy implements AbstractReadTransactionRequest.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; - private boolean snapshotOnly; - protected AbstractReadTransactionRequestProxyV1() { // For Externalizable } AbstractReadTransactionRequestProxyV1(final T request) { super(request); - snapshotOnly = request.isSnapshotOnly(); } - - @Override - public void writeExternal(final ObjectOutput out) throws IOException { - super.writeExternal(out); - out.writeBoolean(snapshotOnly); - } - - @Override - public void readExternal(final ObjectInput in) throws ClassNotFoundException, IOException { - super.readExternal(in); - snapshotOnly = in.readBoolean(); - } - - @Override - protected final T createRequest(final TransactionIdentifier target, final long sequence, final ActorRef replyTo) { - return createReadRequest(target, sequence, replyTo, snapshotOnly); - } - - @SuppressWarnings("checkstyle:hiddenField") - abstract T createReadRequest(TransactionIdentifier target, long sequence, ActorRef replyTo, boolean snapshotOnly); } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractTransactionRequestProxy.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractTransactionRequestProxy.java index b37227056a1..f43a0d22304 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractTransactionRequestProxy.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractTransactionRequestProxy.java @@ -7,9 +7,6 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.DataInput; -import java.io.IOException; -import java.io.Serial; import org.opendaylight.controller.cluster.access.concepts.AbstractRequestProxy; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; @@ -21,8 +18,8 @@ * @param Message type */ abstract class AbstractTransactionRequestProxy> - extends AbstractRequestProxy { - @Serial + extends AbstractRequestProxy implements TransactionRequest.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; AbstractTransactionRequestProxy() { @@ -32,9 +29,4 @@ abstract class AbstractTransactionRequestProxy> AbstractTransactionRequestProxy(final T request) { super(request); } - - @Override - protected final TransactionIdentifier readTarget(final DataInput in) throws IOException { - return TransactionIdentifier.readFrom(in); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractTransactionSuccessProxy.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractTransactionSuccessProxy.java index 187ad71c351..ee44907b22a 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractTransactionSuccessProxy.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractTransactionSuccessProxy.java @@ -7,9 +7,6 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.DataInput; -import java.io.IOException; -import java.io.Serial; import org.opendaylight.controller.cluster.access.concepts.AbstractSuccessProxy; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; @@ -21,8 +18,8 @@ * @param Message type */ abstract class AbstractTransactionSuccessProxy> - extends AbstractSuccessProxy { - @Serial + extends AbstractSuccessProxy implements TransactionSuccess.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; AbstractTransactionSuccessProxy() { @@ -32,9 +29,4 @@ abstract class AbstractTransactionSuccessProxy> AbstractTransactionSuccessProxy(final T request) { super(request); } - - @Override - protected final TransactionIdentifier readTarget(final DataInput in) throws IOException { - return TransactionIdentifier.readFrom(in); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CCF.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CCF.java new file mode 100644 index 00000000000..ea9c37e3fd0 --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CCF.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link ConnectClientFailure}. It implements the Chlorine SR2 serialization format. + */ +final class CCF implements ConnectClientFailure.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private ConnectClientFailure message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public CCF() { + // for Externalizable + } + + CCF(final ConnectClientFailure request) { + message = requireNonNull(request); + } + + @Override + public ConnectClientFailure message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final ConnectClientFailure message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CCR.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CCR.java new file mode 100644 index 00000000000..ace94d579c3 --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CCR.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link ConnectClientRequest}. It implements the Chlorine SR2 serialization format. + */ +final class CCR implements ConnectClientRequest.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private ConnectClientRequest message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public CCR() { + // for Externalizable + } + + CCR(final ConnectClientRequest request) { + message = requireNonNull(request); + } + + @Override + public ConnectClientRequest message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final ConnectClientRequest message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CCS.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CCS.java new file mode 100644 index 00000000000..ea425e5d2df --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CCS.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link ConnectClientSuccess}. It implements the Chlorine SR2 serialization format. + */ +final class CCS implements ConnectClientSuccess.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private ConnectClientSuccess message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public CCS() { + // for Externalizable + } + + CCS(final ConnectClientSuccess request) { + message = requireNonNull(request); + } + + @Override + public ConnectClientSuccess message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final ConnectClientSuccess message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CHR.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CHR.java new file mode 100644 index 00000000000..da3fd132d1e --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CHR.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link CreateLocalHistoryRequest}. It implements the Chlorine SR2 serialization + * format. + */ +final class CHR implements CreateLocalHistoryRequest.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private CreateLocalHistoryRequest message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public CHR() { + // For Externalizable + } + + CHR(final CreateLocalHistoryRequest message) { + this.message = requireNonNull(message); + } + + @Override + public CreateLocalHistoryRequest message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final CreateLocalHistoryRequest message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ClosedTransactionException.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ClosedTransactionException.java index 10bee071a5d..67b1a40408f 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ClosedTransactionException.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ClosedTransactionException.java @@ -7,7 +7,6 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.Serial; import org.opendaylight.controller.cluster.access.concepts.RequestException; /** @@ -17,7 +16,7 @@ * leader moved before the frontend retried the corresponding request. */ public final class ClosedTransactionException extends RequestException { - @Serial + @java.io.Serial private static final long serialVersionUID = 1L; private final boolean successful; diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CommitLocalTransactionRequest.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CommitLocalTransactionRequest.java index c51165fb63c..c7502d51d45 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CommitLocalTransactionRequest.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CommitLocalTransactionRequest.java @@ -12,7 +12,6 @@ import akka.actor.ActorRef; import com.google.common.base.MoreObjects.ToStringHelper; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; -import java.io.Serial; import java.util.Optional; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; @@ -25,7 +24,7 @@ */ public final class CommitLocalTransactionRequest extends AbstractLocalTransactionRequest { - @Serial + @java.io.Serial private static final long serialVersionUID = 1L; @SuppressFBWarnings(value = "SE_BAD_FIELD", justification = "This field is not Serializable but this class " diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientFailure.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientFailure.java index e11798ab808..aa93708cd4d 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientFailure.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientFailure.java @@ -7,9 +7,9 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.Serial; +import java.io.DataInput; +import java.io.IOException; import org.opendaylight.controller.cluster.access.ABIVersion; -import org.opendaylight.controller.cluster.access.concepts.AbstractRequestFailureProxy; import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier; import org.opendaylight.controller.cluster.access.concepts.RequestException; import org.opendaylight.controller.cluster.access.concepts.RequestFailure; @@ -18,7 +18,20 @@ * A {@link RequestFailure} reported when {@link ConnectClientRequest} fails. */ public final class ConnectClientFailure extends RequestFailure { - @Serial + interface SerialForm extends RequestFailure.SerialForm { + @Override + default ClientIdentifier readTarget(final DataInput in) throws IOException { + return ClientIdentifier.readFrom(in); + } + + @Override + default ConnectClientFailure createFailure(final ClientIdentifier target, final long sequence, + final RequestException cause) { + return new ConnectClientFailure(target, sequence, cause); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; ConnectClientFailure(final ClientIdentifier target, final long sequence, final RequestException cause) { @@ -30,9 +43,8 @@ private ConnectClientFailure(final ConnectClientFailure failure, final ABIVersio } @Override - protected AbstractRequestFailureProxy externalizableProxy( - final ABIVersion version) { - return new ConnectClientFailureProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new CCF(this) : new ConnectClientFailureProxyV1(this); } @Override diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientFailureProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientFailureProxyV1.java index 84a10dae160..75f3a5f1fc0 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientFailureProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientFailureProxyV1.java @@ -7,12 +7,8 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.DataInput; -import java.io.IOException; -import java.io.Serial; import org.opendaylight.controller.cluster.access.concepts.AbstractRequestFailureProxy; import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier; -import org.opendaylight.controller.cluster.access.concepts.RequestException; /** * Serialization proxy for use with {@link ConnectClientFailure}. This class implements initial (Boron) serialization @@ -20,8 +16,9 @@ * * @author Robert Varga */ -final class ConnectClientFailureProxyV1 extends AbstractRequestFailureProxy { - @Serial +final class ConnectClientFailureProxyV1 extends AbstractRequestFailureProxy + implements ConnectClientFailure.SerialForm { + @java.io.Serial private static final long serialVersionUID = 2688639416324657256L; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to @@ -34,15 +31,4 @@ public ConnectClientFailureProxyV1() { ConnectClientFailureProxyV1(final ConnectClientFailure failure) { super(failure); } - - @Override - protected ConnectClientFailure createFailure(final ClientIdentifier target, final long sequence, - final RequestException cause) { - return new ConnectClientFailure(target, sequence, cause); - } - - @Override - protected ClientIdentifier readTarget(final DataInput in) throws IOException { - return ClientIdentifier.readFrom(in); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientRequest.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientRequest.java index 12534e037de..12fb0181d5f 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientRequest.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientRequest.java @@ -11,9 +11,11 @@ import akka.actor.ActorRef; import com.google.common.base.MoreObjects.ToStringHelper; -import java.io.Serial; +import java.io.DataInput; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; import org.opendaylight.controller.cluster.access.ABIVersion; -import org.opendaylight.controller.cluster.access.concepts.AbstractRequestProxy; import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier; import org.opendaylight.controller.cluster.access.concepts.Request; import org.opendaylight.controller.cluster.access.concepts.RequestException; @@ -28,7 +30,28 @@ * It also includes request stream sequencing information. */ public final class ConnectClientRequest extends Request { - @Serial + interface SerialForm extends Request.SerialForm { + @Override + default ConnectClientRequest readExternal(final ObjectInput in, final ClientIdentifier target, + final long sequence, final ActorRef replyTo) throws IOException { + return new ConnectClientRequest(target, sequence, replyTo, ABIVersion.inexactReadFrom(in), + ABIVersion.inexactReadFrom(in)); + } + + @Override + default ClientIdentifier readTarget(final DataInput in) throws IOException { + return ClientIdentifier.readFrom(in); + } + + @Override + default void writeExternal(final ObjectOutput out, final ConnectClientRequest msg) throws IOException { + Request.SerialForm.super.writeExternal(out, msg); + msg.getMinVersion().writeTo(out); + msg.getMaxVersion().writeTo(out); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; private final ABIVersion minVersion; @@ -66,9 +89,8 @@ public ConnectClientFailure toRequestFailure(final RequestException cause) { } @Override - protected AbstractRequestProxy externalizableProxy( - final ABIVersion version) { - return new ConnectClientRequestProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new CCR(this) : new ConnectClientRequestProxyV1(this); } @Override diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientRequestProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientRequestProxyV1.java index b420125b831..419852328f8 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientRequestProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientRequestProxyV1.java @@ -7,13 +7,6 @@ */ package org.opendaylight.controller.cluster.access.commands; -import akka.actor.ActorRef; -import java.io.DataInput; -import java.io.IOException; -import java.io.ObjectInput; -import java.io.ObjectOutput; -import java.io.Serial; -import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.AbstractRequestProxy; import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier; @@ -23,13 +16,11 @@ * * @author Robert Varga */ -final class ConnectClientRequestProxyV1 extends AbstractRequestProxy { - @Serial +final class ConnectClientRequestProxyV1 extends AbstractRequestProxy + implements ConnectClientRequest.SerialForm { + @java.io.Serial private static final long serialVersionUID = 8439729661327852159L; - private ABIVersion minVersion; - private ABIVersion maxVersion; - // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to // be able to create instances via reflection. @SuppressWarnings("checkstyle:RedundantModifier") @@ -39,32 +30,5 @@ public ConnectClientRequestProxyV1() { ConnectClientRequestProxyV1(final ConnectClientRequest request) { super(request); - minVersion = request.getMinVersion(); - maxVersion = request.getMaxVersion(); - } - - @Override - public void writeExternal(final ObjectOutput out) throws IOException { - super.writeExternal(out); - minVersion.writeTo(out); - maxVersion.writeTo(out); - } - - @Override - public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { - super.readExternal(in); - minVersion = ABIVersion.inexactReadFrom(in); - maxVersion = ABIVersion.inexactReadFrom(in); - } - - @Override - protected ConnectClientRequest createRequest(final ClientIdentifier target, final long sequence, - final ActorRef replyTo) { - return new ConnectClientRequest(target, sequence, replyTo, minVersion, maxVersion); - } - - @Override - protected ClientIdentifier readTarget(final DataInput in) throws IOException { - return ClientIdentifier.readFrom(in); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientSuccess.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientSuccess.java index d87a486f791..72dd51d616d 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientSuccess.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientSuccess.java @@ -12,10 +12,16 @@ import akka.actor.ActorRef; import akka.actor.ActorSelection; +import akka.serialization.JavaSerializer; +import akka.serialization.Serialization; import com.google.common.base.MoreObjects.ToStringHelper; import com.google.common.collect.ImmutableList; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; -import java.io.Serial; +import java.io.DataInput; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import java.util.ArrayList; import java.util.List; import java.util.Optional; import org.eclipse.jdt.annotation.NonNull; @@ -30,7 +36,43 @@ * fail, the client can try accessing the provided alternates. */ public final class ConnectClientSuccess extends RequestSuccess { - @Serial + interface SerialForm extends RequestSuccess.SerialForm { + @Override + default ClientIdentifier readTarget(final DataInput in) throws IOException { + return ClientIdentifier.readFrom(in); + } + + @Override + default ConnectClientSuccess readExternal(final ObjectInput in, final ClientIdentifier target, + final long sequence) throws IOException, ClassNotFoundException { + final var backend = JavaSerializer.currentSystem().value().provider() + .resolveActorRef((String) in.readObject()); + final var maxMessages = in.readInt(); + + final int alternatesSize = in.readInt(); + final var alternates = new ArrayList(alternatesSize); + for (int i = 0; i < alternatesSize; ++i) { + alternates.add(ActorSelection.apply(ActorRef.noSender(), (String)in.readObject())); + } + + return new ConnectClientSuccess(target, sequence, backend, alternates, maxMessages, null); + } + + @Override + default void writeExternal(final ObjectOutput out, final ConnectClientSuccess msg) throws IOException { + out.writeObject(Serialization.serializedActorPath(msg.backend)); + out.writeInt(msg.maxMessages); + + out.writeInt(msg.alternates.size()); + for (ActorSelection b : msg.alternates) { + out.writeObject(b.toSerializationFormat()); + } + + // We are ignoring the DataTree, it is not serializable anyway + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; private final @NonNull ImmutableList alternates; @@ -40,6 +82,14 @@ public final class ConnectClientSuccess extends RequestSuccess alternates, final int maxMessages, final ReadOnlyDataTree dataTree) { super(target, sequence); @@ -78,13 +128,13 @@ public int getMaxMessages() { } @Override - protected ConnectClientSuccessProxyV1 externalizableProxy(final ABIVersion version) { - return new ConnectClientSuccessProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new CCS(this) : new ConnectClientSuccessProxyV1(this); } @Override protected ConnectClientSuccess cloneAsVersion(final ABIVersion version) { - return this; + return new ConnectClientSuccess(this, version); } @Override diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientSuccessProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientSuccessProxyV1.java index ed04f031974..ec898b016c1 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientSuccessProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientSuccessProxyV1.java @@ -7,17 +7,6 @@ */ package org.opendaylight.controller.cluster.access.commands; -import akka.actor.ActorRef; -import akka.actor.ActorSelection; -import akka.serialization.JavaSerializer; -import akka.serialization.Serialization; -import java.io.DataInput; -import java.io.IOException; -import java.io.ObjectInput; -import java.io.ObjectOutput; -import java.io.Serial; -import java.util.ArrayList; -import java.util.List; import org.opendaylight.controller.cluster.access.concepts.AbstractSuccessProxy; import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier; @@ -27,14 +16,11 @@ * * @author Robert Varga */ -final class ConnectClientSuccessProxyV1 extends AbstractSuccessProxy { - @Serial +final class ConnectClientSuccessProxyV1 extends AbstractSuccessProxy + implements ConnectClientSuccess.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; - private List alternates; - private ActorRef backend; - private int maxMessages; - // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to // be able to create instances via reflection. @SuppressWarnings("checkstyle:RedundantModifier") @@ -44,46 +30,5 @@ public ConnectClientSuccessProxyV1() { ConnectClientSuccessProxyV1(final ConnectClientSuccess success) { super(success); - alternates = success.getAlternates(); - backend = success.getBackend(); - maxMessages = success.getMaxMessages(); - // We are ignoring the DataTree, it is not serializable anyway - } - - @Override - public void writeExternal(final ObjectOutput out) throws IOException { - super.writeExternal(out); - - out.writeObject(Serialization.serializedActorPath(backend)); - out.writeInt(maxMessages); - - out.writeInt(alternates.size()); - for (ActorSelection b : alternates) { - out.writeObject(b.toSerializationFormat()); - } - } - - @Override - public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { - super.readExternal(in); - - backend = JavaSerializer.currentSystem().value().provider().resolveActorRef((String) in.readObject()); - maxMessages = in.readInt(); - - final int alternatesSize = in.readInt(); - alternates = new ArrayList<>(alternatesSize); - for (int i = 0; i < alternatesSize; ++i) { - alternates.add(ActorSelection.apply(ActorRef.noSender(), (String)in.readObject())); - } - } - - @Override - protected ConnectClientSuccess createSuccess(final ClientIdentifier target, final long sequence) { - return new ConnectClientSuccess(target, sequence, backend, alternates, maxMessages, null); - } - - @Override - protected ClientIdentifier readTarget(final DataInput in) throws IOException { - return ClientIdentifier.readFrom(in); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CreateLocalHistoryRequest.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CreateLocalHistoryRequest.java index 4e07b8ff75d..2520aeefd4b 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CreateLocalHistoryRequest.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CreateLocalHistoryRequest.java @@ -8,7 +8,7 @@ package org.opendaylight.controller.cluster.access.commands; import akka.actor.ActorRef; -import java.io.Serial; +import java.io.ObjectInput; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; @@ -16,7 +16,15 @@ * Request to create a new local history. */ public final class CreateLocalHistoryRequest extends LocalHistoryRequest { - @Serial + interface SerialForm extends LocalHistoryRequest.SerialForm { + @Override + default CreateLocalHistoryRequest readExternal(final ObjectInput in, final LocalHistoryIdentifier target, + final long sequence, final ActorRef replyTo) { + return new CreateLocalHistoryRequest(target, sequence, replyTo); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; public CreateLocalHistoryRequest(final LocalHistoryIdentifier target, final ActorRef replyTo) { @@ -32,9 +40,8 @@ private CreateLocalHistoryRequest(final CreateLocalHistoryRequest request, final } @Override - protected AbstractLocalHistoryRequestProxy externalizableProxy( - final ABIVersion version) { - return new CreateLocalHistoryRequestProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new CHR(this) : new CreateLocalHistoryRequestProxyV1(this); } @Override diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CreateLocalHistoryRequestProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CreateLocalHistoryRequestProxyV1.java index ff3d09844ee..f5581e1414e 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CreateLocalHistoryRequestProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CreateLocalHistoryRequestProxyV1.java @@ -7,18 +7,15 @@ */ package org.opendaylight.controller.cluster.access.commands; -import akka.actor.ActorRef; -import java.io.Serial; -import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; - /** * Externalizable proxy for use with {@link CreateLocalHistoryRequest}. It implements the initial (Boron) serialization * format. * * @author Robert Varga */ -final class CreateLocalHistoryRequestProxyV1 extends AbstractLocalHistoryRequestProxy { - @Serial +final class CreateLocalHistoryRequestProxyV1 extends AbstractLocalHistoryRequestProxy + implements CreateLocalHistoryRequest.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to @@ -31,10 +28,4 @@ public CreateLocalHistoryRequestProxyV1() { CreateLocalHistoryRequestProxyV1(final CreateLocalHistoryRequest request) { super(request); } - - @Override - protected CreateLocalHistoryRequest createRequest(final LocalHistoryIdentifier target, final long sequence, - final ActorRef replyTo) { - return new CreateLocalHistoryRequest(target, sequence, replyTo); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/DHR.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/DHR.java new file mode 100644 index 00000000000..ebd0f02aaad --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/DHR.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link DestroyLocalHistoryRequest}. It implements the Chlorine SR2 serialization + * format. + */ +final class DHR implements DestroyLocalHistoryRequest.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private DestroyLocalHistoryRequest message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public DHR() { + // for Externalizable + } + + DHR(final DestroyLocalHistoryRequest message) { + this.message = requireNonNull(message); + } + + @Override + public DestroyLocalHistoryRequest message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final DestroyLocalHistoryRequest message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/DeadHistoryException.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/DeadHistoryException.java index 81c8dabf5cf..a91eb6971c3 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/DeadHistoryException.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/DeadHistoryException.java @@ -9,7 +9,6 @@ import com.google.common.collect.RangeSet; import com.google.common.primitives.UnsignedLong; -import java.io.Serial; import org.opendaylight.controller.cluster.access.concepts.RequestException; /** @@ -17,7 +16,7 @@ * been retired. */ public final class DeadHistoryException extends RequestException { - @Serial + @java.io.Serial private static final long serialVersionUID = 1L; public DeadHistoryException(final RangeSet purgedHistories) { diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/DeadTransactionException.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/DeadTransactionException.java index dadfb931108..0f259c1a947 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/DeadTransactionException.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/DeadTransactionException.java @@ -10,7 +10,6 @@ import com.google.common.collect.ImmutableRangeSet; import com.google.common.collect.RangeSet; import com.google.common.primitives.UnsignedLong; -import java.io.Serial; import org.opendaylight.controller.cluster.access.concepts.RequestException; /** @@ -18,7 +17,7 @@ * already been purged. */ public final class DeadTransactionException extends RequestException { - @Serial + @java.io.Serial private static final long serialVersionUID = 1L; private final RangeSet purgedIdentifiers; diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/DestroyLocalHistoryRequest.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/DestroyLocalHistoryRequest.java index 3c9a4b69456..e70bd536548 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/DestroyLocalHistoryRequest.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/DestroyLocalHistoryRequest.java @@ -8,7 +8,7 @@ package org.opendaylight.controller.cluster.access.commands; import akka.actor.ActorRef; -import java.io.Serial; +import java.io.ObjectInput; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; @@ -16,7 +16,15 @@ * Request to destroy a local history. */ public final class DestroyLocalHistoryRequest extends LocalHistoryRequest { - @Serial + interface SerialForm extends LocalHistoryRequest.SerialForm { + @Override + default DestroyLocalHistoryRequest readExternal(final ObjectInput in, final LocalHistoryIdentifier target, + final long sequence, final ActorRef replyTo) { + return new DestroyLocalHistoryRequest(target, sequence, replyTo); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; public DestroyLocalHistoryRequest(final LocalHistoryIdentifier target, final long sequence, @@ -29,9 +37,8 @@ private DestroyLocalHistoryRequest(final DestroyLocalHistoryRequest request, fin } @Override - protected AbstractLocalHistoryRequestProxy externalizableProxy( - final ABIVersion version) { - return new DestroyLocalHistoryRequestProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new DHR(this) : new DestroyLocalHistoryRequestProxyV1(this); } @Override diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/DestroyLocalHistoryRequestProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/DestroyLocalHistoryRequestProxyV1.java index d5eb96e9700..ad285ca8ac5 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/DestroyLocalHistoryRequestProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/DestroyLocalHistoryRequestProxyV1.java @@ -7,18 +7,15 @@ */ package org.opendaylight.controller.cluster.access.commands; -import akka.actor.ActorRef; -import java.io.Serial; -import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; - /** * Externalizable proxy for use with {@link DestroyLocalHistoryRequest}. It implements the initial (Boron) serialization * format. * * @author Robert Varga */ -final class DestroyLocalHistoryRequestProxyV1 extends AbstractLocalHistoryRequestProxy { - @Serial +final class DestroyLocalHistoryRequestProxyV1 extends AbstractLocalHistoryRequestProxy + implements DestroyLocalHistoryRequest.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to @@ -31,10 +28,4 @@ public DestroyLocalHistoryRequestProxyV1() { DestroyLocalHistoryRequestProxyV1(final DestroyLocalHistoryRequest request) { super(request); } - - @Override - protected DestroyLocalHistoryRequest createRequest(final LocalHistoryIdentifier target, final long sequence, - final ActorRef replyTo) { - return new DestroyLocalHistoryRequest(target, sequence, replyTo); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ETR.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ETR.java new file mode 100644 index 00000000000..26964e474ae --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ETR.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link ExistsTransactionRequest}. It implements the Chlorine SR2 serialization + * format. + */ +final class ETR implements ExistsTransactionRequest.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private ExistsTransactionRequest message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public ETR() { + // for Externalizable + } + + ETR(final ExistsTransactionRequest message) { + this.message = requireNonNull(message); + } + + @Override + public ExistsTransactionRequest message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final ExistsTransactionRequest message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ETS.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ETS.java new file mode 100644 index 00000000000..8cfc5e29d84 --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ETS.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link ExistsTransactionSuccess}. It implements the Chlorine SR2 serialization + * format. + */ +final class ETS implements ExistsTransactionSuccess.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private ExistsTransactionSuccess message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public ETS() { + // for Externalizable + } + + ETS(final ExistsTransactionSuccess message) { + this.message = requireNonNull(message); + } + + @Override + public ExistsTransactionSuccess message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final ExistsTransactionSuccess message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionRequest.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionRequest.java index d5e619c7065..1d16186af0b 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionRequest.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionRequest.java @@ -8,7 +8,8 @@ package org.opendaylight.controller.cluster.access.commands; import akka.actor.ActorRef; -import java.io.Serial; +import java.io.IOException; +import java.io.ObjectInput; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; @@ -18,11 +19,20 @@ * A transaction request to query if a particular path exists in the current view of a particular transaction. */ public final class ExistsTransactionRequest extends AbstractReadPathTransactionRequest { - @Serial + interface SerialForm extends AbstractReadPathTransactionRequest.SerialForm { + @Override + default ExistsTransactionRequest readExternal(final ObjectInput in, final TransactionIdentifier target, + final long sequence, final ActorRef replyTo, final boolean snapshotOnly, final YangInstanceIdentifier path) + throws IOException { + return new ExistsTransactionRequest(target, sequence, replyTo, path, snapshotOnly); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; public ExistsTransactionRequest(final @NonNull TransactionIdentifier identifier, final long sequence, - final @NonNull ActorRef replyTo, final @NonNull YangInstanceIdentifier path, final boolean snapshotOnly) { + final @NonNull ActorRef replyTo, final @NonNull YangInstanceIdentifier path, final boolean snapshotOnly) { super(identifier, sequence, replyTo, path, snapshotOnly); } @@ -36,7 +46,7 @@ protected ExistsTransactionRequest cloneAsVersion(final ABIVersion version) { } @Override - protected ExistsTransactionRequestProxyV1 externalizableProxy(final ABIVersion version) { - return new ExistsTransactionRequestProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new ETR(this) : new ExistsTransactionRequestProxyV1(this); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionRequestProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionRequestProxyV1.java index a899da944ca..9e048e27dc6 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionRequestProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionRequestProxyV1.java @@ -7,20 +7,15 @@ */ package org.opendaylight.controller.cluster.access.commands; -import akka.actor.ActorRef; -import java.io.Serial; -import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; - /** * Externalizable proxy for use with {@link ExistsTransactionRequest}. It implements the initial (Boron) serialization * format. * * @author Robert Varga */ -final class ExistsTransactionRequestProxyV1 extends - AbstractReadPathTransactionRequestProxyV1 { - @Serial +final class ExistsTransactionRequestProxyV1 extends AbstractReadPathTransactionRequestProxyV1 + implements ExistsTransactionRequest.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to @@ -33,10 +28,4 @@ public ExistsTransactionRequestProxyV1() { ExistsTransactionRequestProxyV1(final ExistsTransactionRequest request) { super(request); } - - @Override - ExistsTransactionRequest createReadPathRequest(final TransactionIdentifier target, final long sequence, - final ActorRef replyTo, final YangInstanceIdentifier path, final boolean snapshotOnly) { - return new ExistsTransactionRequest(target, sequence, replyTo, path, snapshotOnly); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionSuccess.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionSuccess.java index 3110002e4fe..ca5377051a4 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionSuccess.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionSuccess.java @@ -8,7 +8,9 @@ package org.opendaylight.controller.cluster.access.commands; import com.google.common.base.MoreObjects.ToStringHelper; -import java.io.Serial; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; @@ -17,11 +19,29 @@ * {@link #getExists()}. */ public final class ExistsTransactionSuccess extends TransactionSuccess { - @Serial + interface SerialForm extends TransactionSuccess.SerialForm { + @Override + default ExistsTransactionSuccess readExternal(final ObjectInput in, final TransactionIdentifier target, + final long sequence) throws IOException { + return new ExistsTransactionSuccess(target, sequence, in.readBoolean()); + } + + @Override + default void writeExternal(final ObjectOutput out, final ExistsTransactionSuccess msg) throws IOException { + out.writeBoolean(msg.getExists()); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; private final boolean exists; + private ExistsTransactionSuccess(final ExistsTransactionSuccess success, final ABIVersion version) { + super(success, version); + exists = success.exists; + } + public ExistsTransactionSuccess(final TransactionIdentifier target, final long sequence, final boolean exists) { super(target, sequence); this.exists = exists; @@ -32,13 +52,13 @@ public boolean getExists() { } @Override - protected ExistsTransactionSuccessProxyV1 externalizableProxy(final ABIVersion version) { - return new ExistsTransactionSuccessProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new ETS(this) : new ExistsTransactionSuccessProxyV1(this); } @Override protected ExistsTransactionSuccess cloneAsVersion(final ABIVersion version) { - return this; + return new ExistsTransactionSuccess(this, version); } @Override diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionSuccessProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionSuccessProxyV1.java index ed66fb2d3d2..96d1843bdd4 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionSuccessProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionSuccessProxyV1.java @@ -7,24 +7,17 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.IOException; -import java.io.ObjectInput; -import java.io.ObjectOutput; -import java.io.Serial; -import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; - /** * Externalizable proxy for use with {@link ExistsTransactionSuccess}. It implements the initial (Boron) serialization * format. * * @author Robert Varga */ -final class ExistsTransactionSuccessProxyV1 extends AbstractTransactionSuccessProxy { - @Serial +final class ExistsTransactionSuccessProxyV1 extends AbstractTransactionSuccessProxy + implements ExistsTransactionSuccess.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; - private boolean exists; - // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to // be able to create instances via reflection. @SuppressWarnings("checkstyle:RedundantModifier") @@ -34,23 +27,5 @@ public ExistsTransactionSuccessProxyV1() { ExistsTransactionSuccessProxyV1(final ExistsTransactionSuccess request) { super(request); - exists = request.getExists(); - } - - @Override - public void writeExternal(final ObjectOutput out) throws IOException { - super.writeExternal(out); - out.writeBoolean(exists); - } - - @Override - public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { - super.readExternal(in); - exists = in.readBoolean(); - } - - @Override - protected ExistsTransactionSuccess createSuccess(final TransactionIdentifier target, final long sequence) { - return new ExistsTransactionSuccess(target, sequence, exists); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/HF.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/HF.java new file mode 100644 index 00000000000..68e9b09b48f --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/HF.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link LocalHistoryFailure}. It implements the Chlorine SR2 serialization format. + */ +final class HF implements LocalHistoryFailure.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private LocalHistoryFailure message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public HF() { + // for Externalizable + } + + HF(final LocalHistoryFailure message) { + this.message = requireNonNull(message); + } + + @Override + public LocalHistoryFailure message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final LocalHistoryFailure message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/HS.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/HS.java new file mode 100644 index 00000000000..4ab0ff5ce08 --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/HS.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link LocalHistorySuccess}. It implements the Chlorine SR2 serialization format. + */ +final class HS implements LocalHistorySuccess.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private LocalHistorySuccess message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public HS() { + // for Externalizable + } + + HS(final LocalHistorySuccess message) { + this.message = requireNonNull(message); + } + + @Override + public LocalHistorySuccess message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final LocalHistorySuccess message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ITSR.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ITSR.java new file mode 100644 index 00000000000..ef76f5ea19b --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ITSR.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link IncrementTransactionSequenceRequest}. It implements the Chlorine SR2 + * serialization format. + */ +final class ITSR implements IncrementTransactionSequenceRequest.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private IncrementTransactionSequenceRequest message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public ITSR() { + // for Externalizable + } + + ITSR(final IncrementTransactionSequenceRequest message) { + this.message = requireNonNull(message); + } + + @Override + public IncrementTransactionSequenceRequest message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final IncrementTransactionSequenceRequest message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ITSS.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ITSS.java new file mode 100644 index 00000000000..178992ab815 --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ITSS.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link IncrementTransactionSequenceSuccess}. It implements the Chlorine SR2 + * serialization format. + */ +final class ITSS implements IncrementTransactionSequenceSuccess.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private IncrementTransactionSequenceSuccess message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public ITSS() { + // for Externalizable + } + + ITSS(final IncrementTransactionSequenceSuccess message) { + this.message = requireNonNull(message); + } + + @Override + public IncrementTransactionSequenceSuccess message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final IncrementTransactionSequenceSuccess message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/IncrementTransactionSequenceRequest.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/IncrementTransactionSequenceRequest.java index 5e85316c413..55a435beeec 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/IncrementTransactionSequenceRequest.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/IncrementTransactionSequenceRequest.java @@ -7,30 +7,55 @@ */ package org.opendaylight.controller.cluster.access.commands; +import static com.google.common.base.Preconditions.checkArgument; + import akka.actor.ActorRef; -import com.google.common.base.Preconditions; -import java.io.Serial; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; +import org.opendaylight.yangtools.concepts.WritableObjects; /** * A blank transaction request. This is used to provide backfill requests in converted retransmit scenarios, such as * when a initial request to a transaction (such as a {@link ReadTransactionRequest}) is satisfied by the backend * before the need to replay the transaction to a different remote backend. - * - * @author Robert Varga */ public final class IncrementTransactionSequenceRequest extends AbstractReadTransactionRequest { - @Serial + interface SerialForm extends AbstractReadTransactionRequest.SerialForm { + @Override + default void writeExternal(final ObjectOutput out, final IncrementTransactionSequenceRequest msg) + throws IOException { + AbstractReadTransactionRequest.SerialForm.super.writeExternal(out, msg); + WritableObjects.writeLong(out, msg.getIncrement()); + } + + @Override + default IncrementTransactionSequenceRequest readExternal(final ObjectInput in, + final TransactionIdentifier target, final long sequence, final ActorRef replyTo, + final boolean snapshotOnly) throws IOException { + return new IncrementTransactionSequenceRequest(target, sequence, replyTo, snapshotOnly, + WritableObjects.readLong(in)); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; private final long increment; + public IncrementTransactionSequenceRequest(final IncrementTransactionSequenceRequest request, + final ABIVersion version) { + super(request, version); + increment = request.increment; + } + public IncrementTransactionSequenceRequest(final TransactionIdentifier identifier, final long sequence, final ActorRef replyTo, final boolean snapshotOnly, final long increment) { super(identifier, sequence, replyTo, snapshotOnly); - Preconditions.checkArgument(increment >= 0); + checkArgument(increment >= 0, "Unexpected increment %s", increment); this.increment = increment; } @@ -44,12 +69,12 @@ public long getIncrement() { } @Override - protected IncrementTransactionSequenceRequestProxyV1 externalizableProxy(final ABIVersion version) { - return new IncrementTransactionSequenceRequestProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new ITSR(this) : new IncrementTransactionSequenceRequestProxyV1(this); } @Override protected IncrementTransactionSequenceRequest cloneAsVersion(final ABIVersion targetVersion) { - return this; + return new IncrementTransactionSequenceRequest(this, targetVersion); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/IncrementTransactionSequenceRequestProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/IncrementTransactionSequenceRequestProxyV1.java index c400b3c7506..bedae8e5e81 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/IncrementTransactionSequenceRequestProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/IncrementTransactionSequenceRequestProxyV1.java @@ -7,21 +7,12 @@ */ package org.opendaylight.controller.cluster.access.commands; -import akka.actor.ActorRef; -import java.io.IOException; -import java.io.ObjectInput; -import java.io.ObjectOutput; -import java.io.Serial; -import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; -import org.opendaylight.yangtools.concepts.WritableObjects; - final class IncrementTransactionSequenceRequestProxyV1 - extends AbstractReadTransactionRequestProxyV1 { - @Serial + extends AbstractReadTransactionRequestProxyV1 + implements IncrementTransactionSequenceRequest.SerialForm { + @java.io.Serial private static final long serialVersionUID = -7345885599575376005L; - private long increment; - // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to // be able to create instances via reflection. @SuppressWarnings("checkstyle:RedundantModifier") @@ -31,24 +22,5 @@ public IncrementTransactionSequenceRequestProxyV1() { IncrementTransactionSequenceRequestProxyV1(final IncrementTransactionSequenceRequest request) { super(request); - increment = request.getIncrement(); - } - - @Override - public void writeExternal(final ObjectOutput out) throws IOException { - super.writeExternal(out); - WritableObjects.writeLong(out, increment); - } - - @Override - public void readExternal(final ObjectInput in) throws ClassNotFoundException, IOException { - super.readExternal(in); - increment = WritableObjects.readLong(in); - } - - @Override - IncrementTransactionSequenceRequest createReadRequest(final TransactionIdentifier target, final long sequence, - final ActorRef replyToActor, final boolean snapshotOnly) { - return new IncrementTransactionSequenceRequest(target, sequence, replyToActor, snapshotOnly, increment); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/IncrementTransactionSequenceSuccess.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/IncrementTransactionSequenceSuccess.java index a147545dd9a..e462edc4d80 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/IncrementTransactionSequenceSuccess.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/IncrementTransactionSequenceSuccess.java @@ -7,7 +7,7 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.Serial; +import java.io.ObjectInput; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; @@ -15,20 +15,33 @@ * Successful reply to an {@link IncrementTransactionSequenceRequest}. */ public final class IncrementTransactionSequenceSuccess extends TransactionSuccess { - @Serial + interface SerialForm extends TransactionSuccess.SerialForm { + @Override + default IncrementTransactionSequenceSuccess readExternal(final ObjectInput it, + final TransactionIdentifier target, final long sequence) { + return new IncrementTransactionSequenceSuccess(target, sequence); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; + private IncrementTransactionSequenceSuccess(final IncrementTransactionSequenceSuccess success, + final ABIVersion version) { + super(success, version); + } + public IncrementTransactionSequenceSuccess(final TransactionIdentifier target, final long sequence) { super(target, sequence); } @Override - protected IncrementTransactionSequenceSuccessProxyV1 externalizableProxy(final ABIVersion version) { - return new IncrementTransactionSequenceSuccessProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new ITSS(this) : new IncrementTransactionSequenceSuccessProxyV1(this); } @Override protected IncrementTransactionSequenceSuccess cloneAsVersion(final ABIVersion version) { - return this; + return new IncrementTransactionSequenceSuccess(this, version); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/IncrementTransactionSequenceSuccessProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/IncrementTransactionSequenceSuccessProxyV1.java index 58c017bb949..0acb9b44290 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/IncrementTransactionSequenceSuccessProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/IncrementTransactionSequenceSuccessProxyV1.java @@ -7,9 +7,6 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.Serial; -import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; - /** * Externalizable proxy for use with {@link IncrementTransactionSequenceSuccess}. It implements the initial (Boron) * serialization format. @@ -17,8 +14,9 @@ * @author Robert Varga */ final class IncrementTransactionSequenceSuccessProxyV1 - extends AbstractTransactionSuccessProxy { - @Serial + extends AbstractTransactionSuccessProxy + implements IncrementTransactionSequenceSuccess.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to @@ -31,10 +29,4 @@ public IncrementTransactionSequenceSuccessProxyV1() { IncrementTransactionSequenceSuccessProxyV1(final IncrementTransactionSequenceSuccess request) { super(request); } - - @Override - protected IncrementTransactionSequenceSuccess createSuccess(final TransactionIdentifier target, - final long sequence) { - return new IncrementTransactionSequenceSuccess(target, sequence); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryFailure.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryFailure.java index 60aba50d360..6f2eda8ba6b 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryFailure.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryFailure.java @@ -7,7 +7,8 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.Serial; +import java.io.DataInput; +import java.io.IOException; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; import org.opendaylight.controller.cluster.access.concepts.RequestException; @@ -17,20 +18,37 @@ * Generic {@link RequestFailure} involving a {@link LocalHistoryRequest}. */ public final class LocalHistoryFailure extends RequestFailure { - @Serial + interface SerialForm extends RequestFailure.SerialForm { + @Override + default LocalHistoryIdentifier readTarget(final DataInput in) throws IOException { + return LocalHistoryIdentifier.readFrom(in); + } + + @Override + default LocalHistoryFailure createFailure(final LocalHistoryIdentifier target, final long sequence, + final RequestException cause) { + return new LocalHistoryFailure(target, sequence, cause); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; + private LocalHistoryFailure(final LocalHistoryFailure failure, final ABIVersion version) { + super(failure, version); + } + LocalHistoryFailure(final LocalHistoryIdentifier target, final long sequence, final RequestException cause) { super(target, sequence, cause); } @Override - protected LocalHistoryFailure cloneAsVersion(final ABIVersion version) { - return this; + protected LocalHistoryFailure cloneAsVersion(final ABIVersion targetVersion) { + return new LocalHistoryFailure(this, targetVersion); } @Override - protected LocalHistoryFailureProxyV1 externalizableProxy(final ABIVersion version) { - return new LocalHistoryFailureProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new HF(this) : new LocalHistoryFailureProxyV1(this); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryFailureProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryFailureProxyV1.java index 11ebfa55fbf..f044936b7a2 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryFailureProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryFailureProxyV1.java @@ -7,12 +7,8 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.DataInput; -import java.io.IOException; -import java.io.Serial; import org.opendaylight.controller.cluster.access.concepts.AbstractRequestFailureProxy; import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; -import org.opendaylight.controller.cluster.access.concepts.RequestException; /** * Externalizable proxy for use with {@link LocalHistoryFailure}. It implements the initial (Boron) serialization @@ -20,9 +16,10 @@ * * @author Robert Varga */ -final class LocalHistoryFailureProxyV1 extends - AbstractRequestFailureProxy { - @Serial +final class LocalHistoryFailureProxyV1 + extends AbstractRequestFailureProxy + implements LocalHistoryFailure.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to @@ -35,15 +32,4 @@ public LocalHistoryFailureProxyV1() { LocalHistoryFailureProxyV1(final LocalHistoryFailure failure) { super(failure); } - - @Override - protected LocalHistoryFailure createFailure(final LocalHistoryIdentifier target, final long sequence, - final RequestException cause) { - return new LocalHistoryFailure(target, sequence, cause); - } - - @Override - protected LocalHistoryIdentifier readTarget(final DataInput in) throws IOException { - return LocalHistoryIdentifier.readFrom(in); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryRequest.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryRequest.java index 0fe4c2d6181..c304384fd8b 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryRequest.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryRequest.java @@ -9,7 +9,8 @@ import akka.actor.ActorRef; import com.google.common.base.Preconditions; -import java.io.Serial; +import java.io.DataInput; +import java.io.IOException; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; import org.opendaylight.controller.cluster.access.concepts.Request; @@ -22,7 +23,14 @@ * @param Message type */ public abstract class LocalHistoryRequest> extends Request { - @Serial + interface SerialForm> extends Request.SerialForm { + @Override + default LocalHistoryIdentifier readTarget(final DataInput in) throws IOException { + return LocalHistoryIdentifier.readFrom(in); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; LocalHistoryRequest(final LocalHistoryIdentifier target, final long sequence, final ActorRef replyTo) { @@ -40,5 +48,5 @@ public final LocalHistoryFailure toRequestFailure(final RequestException cause) } @Override - protected abstract AbstractLocalHistoryRequestProxy externalizableProxy(ABIVersion version); + protected abstract SerialForm externalizableProxy(ABIVersion version); } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistorySuccess.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistorySuccess.java index 99c1de1d619..a36994937b1 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistorySuccess.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistorySuccess.java @@ -7,9 +7,10 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.Serial; +import java.io.DataInput; +import java.io.IOException; +import java.io.ObjectInput; import org.opendaylight.controller.cluster.access.ABIVersion; -import org.opendaylight.controller.cluster.access.concepts.AbstractSuccessProxy; import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; import org.opendaylight.controller.cluster.access.concepts.RequestSuccess; @@ -17,25 +18,37 @@ * Success class for {@link RequestSuccess}es involving a specific local history. */ public final class LocalHistorySuccess extends RequestSuccess { - @Serial - private static final long serialVersionUID = 1L; + interface SerialForm extends RequestSuccess.SerialForm { + @Override + default LocalHistoryIdentifier readTarget(final DataInput in) throws IOException { + return LocalHistoryIdentifier.readFrom(in); + } - public LocalHistorySuccess(final LocalHistoryIdentifier target, final long sequence) { - super(target, sequence); + @Override + default LocalHistorySuccess readExternal(final ObjectInput it, final LocalHistoryIdentifier target, + final long sequence) { + return new LocalHistorySuccess(target, sequence); + } } + @java.io.Serial + private static final long serialVersionUID = 1L; + private LocalHistorySuccess(final LocalHistorySuccess success, final ABIVersion version) { super(success, version); } + public LocalHistorySuccess(final LocalHistoryIdentifier target, final long sequence) { + super(target, sequence); + } + @Override protected LocalHistorySuccess cloneAsVersion(final ABIVersion version) { return new LocalHistorySuccess(this, version); } @Override - protected AbstractSuccessProxy externalizableProxy( - final ABIVersion version) { - return new LocalHistorySuccessProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new HS(this) : new LocalHistorySuccessProxyV1(this); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistorySuccessProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistorySuccessProxyV1.java index 18ea0bd9de0..6f05617613e 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistorySuccessProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistorySuccessProxyV1.java @@ -7,9 +7,6 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.DataInput; -import java.io.IOException; -import java.io.Serial; import org.opendaylight.controller.cluster.access.concepts.AbstractSuccessProxy; import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; @@ -18,8 +15,9 @@ * * @author Robert Varga */ -final class LocalHistorySuccessProxyV1 extends AbstractSuccessProxy { - @Serial +final class LocalHistorySuccessProxyV1 extends AbstractSuccessProxy + implements LocalHistorySuccess.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to @@ -32,14 +30,4 @@ public LocalHistorySuccessProxyV1() { LocalHistorySuccessProxyV1(final LocalHistorySuccess success) { super(success); } - - @Override - protected LocalHistoryIdentifier readTarget(final DataInput in) throws IOException { - return LocalHistoryIdentifier.readFrom(in); - } - - @Override - protected LocalHistorySuccess createSuccess(final LocalHistoryIdentifier target, final long sequence) { - return new LocalHistorySuccess(target, sequence); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/MTR.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/MTR.java new file mode 100644 index 00000000000..a0c5acf8b0a --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/MTR.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link ModifyTransactionRequest}. It implements the Chlorine SR2 serialization + * format. + */ +final class MTR implements ModifyTransactionRequest.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private ModifyTransactionRequest message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public MTR() { + // for Externalizable + } + + MTR(final ModifyTransactionRequest message) { + this.message = requireNonNull(message); + } + + @Override + public ModifyTransactionRequest message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final ModifyTransactionRequest message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/MTS.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/MTS.java new file mode 100644 index 00000000000..3a46a8a9432 --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/MTS.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link ModifyTransactionSuccess}. It implements the Chlorine SR2 serialization + * format. + */ +final class MTS implements ModifyTransactionSuccess.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private ModifyTransactionSuccess message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public MTS() { + // for Externalizable + } + + MTS(final ModifyTransactionSuccess message) { + this.message = requireNonNull(message); + } + + @Override + public ModifyTransactionSuccess message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final ModifyTransactionSuccess message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionRequest.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionRequest.java index 6f42d0ce56e..efa8a77f3d4 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionRequest.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionRequest.java @@ -11,12 +11,17 @@ import com.google.common.base.MoreObjects.ToStringHelper; import com.google.common.collect.ImmutableList; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; -import java.io.Serial; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import java.util.ArrayList; import java.util.List; import java.util.Optional; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.SliceableMessage; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; +import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataInput; +import org.opendaylight.yangtools.yang.data.impl.schema.ReusableImmutableNormalizedNodeStreamWriter; /** * A transaction request to apply a particular set of operations on top of the current transaction. This message is @@ -24,7 +29,49 @@ */ public final class ModifyTransactionRequest extends TransactionRequest implements SliceableMessage { - @Serial + interface SerialForm extends TransactionRequest.SerialForm { + + + @Override + default ModifyTransactionRequest readExternal(final ObjectInput in, final TransactionIdentifier target, + final long sequence, final ActorRef replyTo) throws IOException { + + final var protocol = Optional.ofNullable(PersistenceProtocol.readFrom(in)); + final int size = in.readInt(); + final List modifications; + if (size != 0) { + modifications = new ArrayList<>(size); + final var nnin = NormalizedNodeDataInput.newDataInput(in); + final var writer = ReusableImmutableNormalizedNodeStreamWriter.create(); + for (int i = 0; i < size; ++i) { + modifications.add(TransactionModification.readFrom(nnin, writer)); + } + } else { + modifications = ImmutableList.of(); + } + + return new ModifyTransactionRequest(target, sequence, replyTo, modifications, protocol.orElse(null)); + } + + @Override + default void writeExternal(final ObjectOutput out, final ModifyTransactionRequest msg) throws IOException { + TransactionRequest.SerialForm.super.writeExternal(out, msg); + + out.writeByte(PersistenceProtocol.byteValue(msg.getPersistenceProtocol().orElse(null))); + + final var modifications = msg.getModifications(); + out.writeInt(modifications.size()); + if (!modifications.isEmpty()) { + try (var nnout = msg.getVersion().getStreamVersion().newDataOutput(out)) { + for (var op : modifications) { + op.writeTo(nnout); + } + } + } + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; @SuppressFBWarnings(value = "SE_BAD_FIELD", justification = "This field is not Serializable but this class " @@ -33,6 +80,12 @@ public final class ModifyTransactionRequest extends TransactionRequest modifications; private final PersistenceProtocol protocol; + private ModifyTransactionRequest(final ModifyTransactionRequest request, final ABIVersion version) { + super(request, version); + modifications = request.modifications; + protocol = request.protocol; + } + ModifyTransactionRequest(final TransactionIdentifier target, final long sequence, final ActorRef replyTo, final List modifications, final PersistenceProtocol protocol) { super(target, sequence, replyTo); @@ -55,12 +108,12 @@ protected ToStringHelper addToStringAttributes(final ToStringHelper toStringHelp } @Override - protected ModifyTransactionRequestProxyV1 externalizableProxy(final ABIVersion version) { - return new ModifyTransactionRequestProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new MTR(this) : new ModifyTransactionRequestProxyV1(this); } @Override protected ModifyTransactionRequest cloneAsVersion(final ABIVersion version) { - return this; + return new ModifyTransactionRequest(this, version); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionRequestProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionRequestProxyV1.java index 369aa1515bb..91d8a27c6b2 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionRequestProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionRequestProxyV1.java @@ -7,37 +7,17 @@ */ package org.opendaylight.controller.cluster.access.commands; -import static java.util.Objects.requireNonNull; - -import akka.actor.ActorRef; -import com.google.common.collect.ImmutableList; -import java.io.IOException; -import java.io.ObjectInput; -import java.io.ObjectOutput; -import java.io.Serial; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; -import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataInput; -import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataOutput; -import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeStreamVersion; -import org.opendaylight.yangtools.yang.data.impl.schema.ReusableImmutableNormalizedNodeStreamWriter; - /** * Externalizable proxy for use with {@link ExistsTransactionRequest}. It implements the initial (Boron) serialization * format. * * @author Robert Varga */ -final class ModifyTransactionRequestProxyV1 extends AbstractTransactionRequestProxy { - @Serial +final class ModifyTransactionRequestProxyV1 extends AbstractTransactionRequestProxy + implements ModifyTransactionRequest.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; - private List modifications; - private Optional protocol; - private transient NormalizedNodeStreamVersion streamVersion; - // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to // be able to create instances via reflection. @SuppressWarnings("checkstyle:RedundantModifier") @@ -47,49 +27,5 @@ public ModifyTransactionRequestProxyV1() { ModifyTransactionRequestProxyV1(final ModifyTransactionRequest request) { super(request); - modifications = requireNonNull(request.getModifications()); - protocol = request.getPersistenceProtocol(); - streamVersion = request.getVersion().getStreamVersion(); - } - - @Override - public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { - super.readExternal(in); - - protocol = Optional.ofNullable(PersistenceProtocol.readFrom(in)); - - final int size = in.readInt(); - if (size != 0) { - modifications = new ArrayList<>(size); - final NormalizedNodeDataInput nnin = NormalizedNodeDataInput.newDataInput(in); - final ReusableImmutableNormalizedNodeStreamWriter writer = - ReusableImmutableNormalizedNodeStreamWriter.create(); - for (int i = 0; i < size; ++i) { - modifications.add(TransactionModification.readFrom(nnin, writer)); - } - } else { - modifications = ImmutableList.of(); - } - } - - @Override - public void writeExternal(final ObjectOutput out) throws IOException { - super.writeExternal(out); - - out.writeByte(PersistenceProtocol.byteValue(protocol.orElse(null))); - out.writeInt(modifications.size()); - if (!modifications.isEmpty()) { - try (NormalizedNodeDataOutput nnout = streamVersion.newDataOutput(out)) { - for (TransactionModification op : modifications) { - op.writeTo(nnout); - } - } - } - } - - @Override - protected ModifyTransactionRequest createRequest(final TransactionIdentifier target, final long sequence, - final ActorRef replyTo) { - return new ModifyTransactionRequest(target, sequence, replyTo, modifications, protocol.orElse(null)); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionSuccess.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionSuccess.java index 42f22439b1d..c1620a86664 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionSuccess.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionSuccess.java @@ -7,7 +7,8 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.Serial; +import java.io.IOException; +import java.io.ObjectInput; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; @@ -15,7 +16,15 @@ * Response to a {@link ModifyTransactionRequest} which does not have a {@link PersistenceProtocol}. */ public final class ModifyTransactionSuccess extends TransactionSuccess { - @Serial + interface SerialForm extends TransactionSuccess.SerialForm { + @Override + default ModifyTransactionSuccess readExternal(final ObjectInput in, final TransactionIdentifier target, + final long sequence) throws IOException { + return new ModifyTransactionSuccess(target, sequence); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; public ModifyTransactionSuccess(final TransactionIdentifier identifier, final long sequence) { @@ -27,8 +36,8 @@ private ModifyTransactionSuccess(final ModifyTransactionSuccess success, final A } @Override - protected AbstractTransactionSuccessProxy externalizableProxy(final ABIVersion version) { - return new ModifyTransactionSuccessProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new MTS(this) : new ModifyTransactionSuccessProxyV1(this); } @Override diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionSuccessProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionSuccessProxyV1.java index 4ead55671cd..8738f997479 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionSuccessProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionSuccessProxyV1.java @@ -7,17 +7,15 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.Serial; -import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; - /** * Externalizable proxy for use with {@link ModifyTransactionSuccess}. It implements the initial (Boron) serialization * format. * * @author Robert Varga */ -final class ModifyTransactionSuccessProxyV1 extends AbstractTransactionSuccessProxy { - @Serial +final class ModifyTransactionSuccessProxyV1 extends AbstractTransactionSuccessProxy + implements ModifyTransactionSuccess.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to @@ -30,9 +28,4 @@ public ModifyTransactionSuccessProxyV1() { ModifyTransactionSuccessProxyV1(final ModifyTransactionSuccess success) { super(success); } - - @Override - protected ModifyTransactionSuccess createSuccess(final TransactionIdentifier target, final long sequence) { - return new ModifyTransactionSuccess(target, sequence); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/NotLeaderException.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/NotLeaderException.java index 881953c01b5..c4353c37fd6 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/NotLeaderException.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/NotLeaderException.java @@ -8,7 +8,6 @@ package org.opendaylight.controller.cluster.access.commands; import akka.actor.ActorRef; -import java.io.Serial; import org.opendaylight.controller.cluster.access.concepts.RequestException; /** @@ -16,7 +15,7 @@ * means that the backend processing has moved and the frontend needs to run rediscovery and retry the request. */ public final class NotLeaderException extends RequestException { - @Serial + @java.io.Serial private static final long serialVersionUID = 1L; public NotLeaderException(final ActorRef me) { diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/OutOfOrderRequestException.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/OutOfOrderRequestException.java index 7ee5a2f306f..0c908078ebb 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/OutOfOrderRequestException.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/OutOfOrderRequestException.java @@ -7,7 +7,6 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.Serial; import org.opendaylight.controller.cluster.access.concepts.RequestException; /** @@ -15,7 +14,7 @@ * next expected sequence for the target. This is a hard error, as it indicates a Request is missing in the stream. */ public final class OutOfOrderRequestException extends RequestException { - @Serial + @java.io.Serial private static final long serialVersionUID = 1L; public OutOfOrderRequestException(final long expectedRequest) { diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/OutOfSequenceEnvelopeException.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/OutOfSequenceEnvelopeException.java index 61715bc42a4..b39e09a6a45 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/OutOfSequenceEnvelopeException.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/OutOfSequenceEnvelopeException.java @@ -7,7 +7,6 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.Serial; import org.opendaylight.controller.cluster.access.concepts.RequestException; /** @@ -16,7 +15,7 @@ * the backend is not the leader and it transitions to being a leader with old stream messages still being present. */ public final class OutOfSequenceEnvelopeException extends RequestException { - @Serial + @java.io.Serial private static final long serialVersionUID = 1L; public OutOfSequenceEnvelopeException(final long expectedEnvelope) { diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/PHR.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/PHR.java new file mode 100644 index 00000000000..e2b3959e649 --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/PHR.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link PurgeLocalHistoryRequest}. It implements the Chlorine SR2 serialization + * format. + */ +final class PHR implements PurgeLocalHistoryRequest.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private PurgeLocalHistoryRequest message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public PHR() { + // for Externalizable + } + + PHR(final PurgeLocalHistoryRequest message) { + this.message = requireNonNull(message); + } + + @Override + public PurgeLocalHistoryRequest message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final PurgeLocalHistoryRequest message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/PurgeLocalHistoryRequest.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/PurgeLocalHistoryRequest.java index 50f16570264..81c632f715a 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/PurgeLocalHistoryRequest.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/PurgeLocalHistoryRequest.java @@ -8,7 +8,7 @@ package org.opendaylight.controller.cluster.access.commands; import akka.actor.ActorRef; -import java.io.Serial; +import java.io.ObjectInput; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; @@ -17,7 +17,15 @@ * {@link DestroyLocalHistoryRequest} and indicates it has removed all state attached to a particular local history. */ public final class PurgeLocalHistoryRequest extends LocalHistoryRequest { - @Serial + interface SerialForm extends LocalHistoryRequest.SerialForm { + @Override + default PurgeLocalHistoryRequest readExternal(final ObjectInput in, final LocalHistoryIdentifier target, + final long sequence, final ActorRef replyTo) { + return new PurgeLocalHistoryRequest(target, sequence, replyTo); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; public PurgeLocalHistoryRequest(final LocalHistoryIdentifier target, final long sequence, final ActorRef replyTo) { @@ -29,8 +37,8 @@ private PurgeLocalHistoryRequest(final PurgeLocalHistoryRequest request, final A } @Override - protected AbstractLocalHistoryRequestProxy externalizableProxy(final ABIVersion version) { - return new PurgeLocalHistoryRequestProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new PHR(this) : new PurgeLocalHistoryRequestProxyV1(this); } @Override diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/PurgeLocalHistoryRequestProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/PurgeLocalHistoryRequestProxyV1.java index ff7f4ee4e2f..35571fb11d2 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/PurgeLocalHistoryRequestProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/PurgeLocalHistoryRequestProxyV1.java @@ -7,18 +7,15 @@ */ package org.opendaylight.controller.cluster.access.commands; -import akka.actor.ActorRef; -import java.io.Serial; -import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; - /** * Externalizable proxy for use with {@link PurgeLocalHistoryRequest}. It implements the initial (Boron) serialization * format. * * @author Robert Varga */ -final class PurgeLocalHistoryRequestProxyV1 extends AbstractLocalHistoryRequestProxy { - @Serial +final class PurgeLocalHistoryRequestProxyV1 extends AbstractLocalHistoryRequestProxy + implements PurgeLocalHistoryRequest.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to @@ -31,10 +28,4 @@ public PurgeLocalHistoryRequestProxyV1() { PurgeLocalHistoryRequestProxyV1(final PurgeLocalHistoryRequest request) { super(request); } - - @Override - protected PurgeLocalHistoryRequest createRequest(final LocalHistoryIdentifier target, final long sequence, - final ActorRef replyTo) { - return new PurgeLocalHistoryRequest(target, sequence, replyTo); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/RTR.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/RTR.java new file mode 100644 index 00000000000..e342c1806f9 --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/RTR.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link ReadTransactionRequest}. It implements the Chlorine SR2 serialization + * format. + */ +final class RTR implements ReadTransactionRequest.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private ReadTransactionRequest message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public RTR() { + // for Externalizable + } + + RTR(final ReadTransactionRequest message) { + this.message = requireNonNull(message); + } + + @Override + public ReadTransactionRequest message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final ReadTransactionRequest message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/RTS.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/RTS.java new file mode 100644 index 00000000000..bcf09f80ba8 --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/RTS.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link ReadTransactionSuccess}. It implements the Chlorine SR2 serialization + * format. + */ +final class RTS implements ReadTransactionSuccess.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private ReadTransactionSuccess message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public RTS() { + // for Externalizable + } + + RTS(final ReadTransactionSuccess message) { + this.message = requireNonNull(message); + } + + @Override + public ReadTransactionSuccess message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final ReadTransactionSuccess message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionRequest.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionRequest.java index c5a550ce05a..00ae65b469e 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionRequest.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionRequest.java @@ -8,7 +8,8 @@ package org.opendaylight.controller.cluster.access.commands; import akka.actor.ActorRef; -import java.io.Serial; +import java.io.IOException; +import java.io.ObjectInput; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; @@ -18,7 +19,16 @@ * A transaction request to read a particular path exists in the current view of a particular transaction. */ public final class ReadTransactionRequest extends AbstractReadPathTransactionRequest { - @Serial + interface SerialForm extends AbstractReadPathTransactionRequest.SerialForm { + @Override + default ReadTransactionRequest readExternal(final ObjectInput in, final TransactionIdentifier target, + final long sequence, final ActorRef replyTo, final boolean snapshotOnly, final YangInstanceIdentifier path) + throws IOException { + return new ReadTransactionRequest(target, sequence, replyTo, path, snapshotOnly); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; public ReadTransactionRequest(final @NonNull TransactionIdentifier identifier, final long sequence, @@ -36,7 +46,7 @@ protected ReadTransactionRequest cloneAsVersion(final ABIVersion version) { } @Override - protected ReadTransactionRequestProxyV1 externalizableProxy(final ABIVersion version) { - return new ReadTransactionRequestProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new RTR(this) : new ReadTransactionRequestProxyV1(this); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionRequestProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionRequestProxyV1.java index 20d1d308f42..e27869547b0 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionRequestProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionRequestProxyV1.java @@ -7,19 +7,15 @@ */ package org.opendaylight.controller.cluster.access.commands; -import akka.actor.ActorRef; -import java.io.Serial; -import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; - /** * Externalizable proxy for use with {@link ReadTransactionRequest}. It implements the initial (Boron) serialization * format. * * @author Robert Varga */ -final class ReadTransactionRequestProxyV1 extends AbstractReadPathTransactionRequestProxyV1 { - @Serial +final class ReadTransactionRequestProxyV1 extends AbstractReadPathTransactionRequestProxyV1 + implements ReadTransactionRequest.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to @@ -32,10 +28,4 @@ public ReadTransactionRequestProxyV1() { ReadTransactionRequestProxyV1(final ReadTransactionRequest request) { super(request); } - - @Override - ReadTransactionRequest createReadPathRequest(final TransactionIdentifier target, final long sequence, - final ActorRef replyTo, final YangInstanceIdentifier path, final boolean snapshotOnly) { - return new ReadTransactionRequest(target, sequence, replyTo, path, snapshotOnly); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccess.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccess.java index 1e473d2b304..b65473aa381 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccess.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccess.java @@ -10,12 +10,15 @@ import static java.util.Objects.requireNonNull; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; -import java.io.Serial; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; import java.util.Optional; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.SliceableMessage; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataInput; /** * Successful reply to an {@link ReadTransactionRequest}. It indicates presence of requested data via @@ -23,12 +26,46 @@ */ public final class ReadTransactionSuccess extends TransactionSuccess implements SliceableMessage { - @Serial + interface SerialForm extends TransactionSuccess.SerialForm { + @Override + default ReadTransactionSuccess readExternal(final ObjectInput in, final TransactionIdentifier target, + final long sequence) throws IOException { + final Optional data; + if (in.readBoolean()) { + data = Optional.of(NormalizedNodeDataInput.newDataInput(in).readNormalizedNode()); + } else { + data = Optional.empty(); + } + return new ReadTransactionSuccess(target, sequence, data); + } + + @Override + default void writeExternal(final ObjectOutput out, final ReadTransactionSuccess msg) throws IOException { + TransactionSuccess.SerialForm.super.writeExternal(out, msg); + + final var data = msg.getData(); + if (data.isPresent()) { + out.writeBoolean(true); + try (var nnout = msg.getVersion().getStreamVersion().newDataOutput(out)) { + nnout.writeNormalizedNode(data.orElseThrow()); + } + } else { + out.writeBoolean(false); + } + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; @SuppressFBWarnings(value = "SE_BAD_FIELD", justification = "interface-based best effort") private final Optional data; + private ReadTransactionSuccess(final ReadTransactionSuccess request, final ABIVersion version) { + super(request, version); + data = request.data; + } + public ReadTransactionSuccess(final TransactionIdentifier identifier, final long sequence, final Optional data) { super(identifier, sequence); @@ -40,12 +77,12 @@ public Optional getData() { } @Override - protected AbstractTransactionSuccessProxy externalizableProxy(final ABIVersion version) { - return new ReadTransactionSuccessProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new RTS(this) : new ReadTransactionSuccessProxyV1(this); } @Override protected ReadTransactionSuccess cloneAsVersion(final ABIVersion version) { - return this; + return new ReadTransactionSuccess(this, version); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessProxyV1.java index df462cf0c3a..9818ada0afd 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessProxyV1.java @@ -7,30 +7,17 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.IOException; -import java.io.ObjectInput; -import java.io.ObjectOutput; -import java.io.Serial; -import java.util.Optional; -import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataInput; -import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataOutput; -import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeStreamVersion; - /** * Externalizable proxy for use with {@link ReadTransactionSuccess}. It implements the initial (Boron) serialization * format. * * @author Robert Varga */ -final class ReadTransactionSuccessProxyV1 extends AbstractTransactionSuccessProxy { - @Serial +final class ReadTransactionSuccessProxyV1 extends AbstractTransactionSuccessProxy + implements ReadTransactionSuccess.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; - private Optional data; - private transient NormalizedNodeStreamVersion streamVersion; - // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to // be able to create instances via reflection. @SuppressWarnings("checkstyle:RedundantModifier") @@ -40,37 +27,5 @@ public ReadTransactionSuccessProxyV1() { ReadTransactionSuccessProxyV1(final ReadTransactionSuccess request) { super(request); - data = request.getData(); - streamVersion = request.getVersion().getStreamVersion(); - } - - @Override - public void writeExternal(final ObjectOutput out) throws IOException { - super.writeExternal(out); - - if (data.isPresent()) { - out.writeBoolean(true); - try (NormalizedNodeDataOutput nnout = streamVersion.newDataOutput(out)) { - nnout.writeNormalizedNode(data.get()); - } - } else { - out.writeBoolean(false); - } - } - - @Override - public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { - super.readExternal(in); - - if (in.readBoolean()) { - data = Optional.of(NormalizedNodeDataInput.newDataInput(in).readNormalizedNode()); - } else { - data = Optional.empty(); - } - } - - @Override - protected ReadTransactionSuccess createSuccess(final TransactionIdentifier target, final long sequence) { - return new ReadTransactionSuccess(target, sequence, data); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/STR.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/STR.java new file mode 100644 index 00000000000..aa529eab68d --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/STR.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link SkipTransactionsRequest}. It implements the Chlorine SR2 serialization + * format. + */ +final class STR implements SkipTransactionsRequest.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private SkipTransactionsRequest message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public STR() { + // for Externalizable + } + + STR(final SkipTransactionsRequest message) { + this.message = requireNonNull(message); + } + + @Override + public SkipTransactionsRequest message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final SkipTransactionsRequest message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/STS.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/STS.java new file mode 100644 index 00000000000..c548a4fc45b --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/STS.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link SkipTransactionsResponse}. It implements the Chlorine SR2 serialization + * format. + */ +final class STS implements SkipTransactionsResponse.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private SkipTransactionsResponse message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public STS() { + // for Externalizable + } + + STS(final SkipTransactionsResponse message) { + this.message = requireNonNull(message); + } + + @Override + public SkipTransactionsResponse message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final SkipTransactionsResponse message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsRequest.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsRequest.java index 3b97bb98170..54fdfc581a7 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsRequest.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsRequest.java @@ -11,12 +11,15 @@ import com.google.common.base.MoreObjects.ToStringHelper; import com.google.common.collect.ImmutableList; import com.google.common.primitives.UnsignedLong; -import java.io.Serial; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; import java.util.Collection; import java.util.List; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; +import org.opendaylight.yangtools.concepts.WritableObjects; /** * Request to skip a number of {@link TransactionIdentifier}s within a {code local history}. This request is essentially @@ -28,7 +31,50 @@ * explicitly retired and are guaranteed to never be used by the frontend. */ public final class SkipTransactionsRequest extends TransactionRequest { - @Serial + interface SerialForm extends TransactionRequest.SerialForm { + @Override + default SkipTransactionsRequest readExternal(final ObjectInput in, final TransactionIdentifier target, + final long sequence, final ActorRef replyTo) throws IOException { + final int size = in.readInt(); + final var builder = ImmutableList.builderWithExpectedSize(size); + int idx; + if (size % 2 != 0) { + builder.add(UnsignedLong.fromLongBits(WritableObjects.readLong(in))); + idx = 1; + } else { + idx = 0; + } + for (; idx < size; idx += 2) { + final byte hdr = WritableObjects.readLongHeader(in); + builder.add(UnsignedLong.fromLongBits(WritableObjects.readFirstLong(in, hdr))); + builder.add(UnsignedLong.fromLongBits(WritableObjects.readSecondLong(in, hdr))); + } + + return new SkipTransactionsRequest(target, sequence, replyTo, builder.build()); + } + + @Override + default void writeExternal(final ObjectOutput out, final SkipTransactionsRequest msg) throws IOException { + TransactionRequest.SerialForm.super.writeExternal(out, msg); + + final var others = msg.others; + final int size = others.size(); + out.writeInt(size); + + int idx; + if (size % 2 != 0) { + WritableObjects.writeLong(out, others.get(0).longValue()); + idx = 1; + } else { + idx = 0; + } + for (; idx < size; idx += 2) { + WritableObjects.writeLongs(out, others.get(idx).longValue(), others.get(idx + 1).longValue()); + } + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; // Note: UnsignedLong is arbitrary, yang.common.Uint64 would work just as well, we really want an immutable @@ -41,6 +87,11 @@ public SkipTransactionsRequest(final TransactionIdentifier target, final long se this.others = ImmutableList.copyOf(others); } + private SkipTransactionsRequest(final SkipTransactionsRequest request, final ABIVersion version) { + super(request, version); + others = request.others; + } + /** * Return this {@link #getTarget()}s sibling {@link TransactionIdentifier}s. * @@ -51,13 +102,13 @@ public List getOthers() { } @Override - protected SkipTransactionsRequestV1 externalizableProxy(final ABIVersion version) { - return new SkipTransactionsRequestV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new STR(this) : new SkipTransactionsRequestV1(this); } @Override protected SkipTransactionsRequest cloneAsVersion(final ABIVersion version) { - return this; + return new SkipTransactionsRequest(this, version); } @Override diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsRequestV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsRequestV1.java index 26d660f1d9d..762289c0bc3 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsRequestV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsRequestV1.java @@ -7,27 +7,15 @@ */ package org.opendaylight.controller.cluster.access.commands; -import akka.actor.ActorRef; -import com.google.common.collect.ImmutableList; -import com.google.common.primitives.UnsignedLong; -import java.io.IOException; -import java.io.ObjectInput; -import java.io.ObjectOutput; -import java.io.Serial; -import java.util.List; -import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; -import org.opendaylight.yangtools.concepts.WritableObjects; - /** * Externalizable proxy for use with {@link SkipTransactionsRequest}. It implements the initial * (Phosphorus SR1) serialization format. */ -final class SkipTransactionsRequestV1 extends AbstractTransactionRequestProxy { - @Serial +final class SkipTransactionsRequestV1 extends AbstractTransactionRequestProxy + implements SkipTransactionsRequest.SerialForm { + @java.io.Serial private static final long serialVersionUID = -7493419007644462643L; - private List others; - // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to // be able to create instances via reflection. @SuppressWarnings("checkstyle:RedundantModifier") @@ -37,52 +25,5 @@ public SkipTransactionsRequestV1() { SkipTransactionsRequestV1(final SkipTransactionsRequest request) { super(request); - others = request.getOthers(); - } - - @Override - public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { - super.readExternal(in); - - final int size = in.readInt(); - final var builder = ImmutableList.builderWithExpectedSize(size); - int idx; - if (size % 2 != 0) { - builder.add(UnsignedLong.fromLongBits(WritableObjects.readLong(in))); - idx = 1; - } else { - idx = 0; - } - for (; idx < size; idx += 2) { - final byte hdr = WritableObjects.readLongHeader(in); - builder.add(UnsignedLong.fromLongBits(WritableObjects.readFirstLong(in, hdr))); - builder.add(UnsignedLong.fromLongBits(WritableObjects.readSecondLong(in, hdr))); - } - others = builder.build(); - } - - @Override - public void writeExternal(final ObjectOutput out) throws IOException { - super.writeExternal(out); - - final int size = others.size(); - out.writeInt(size); - - int idx; - if (size % 2 != 0) { - WritableObjects.writeLong(out, others.get(0).longValue()); - idx = 1; - } else { - idx = 0; - } - for (; idx < size; idx += 2) { - WritableObjects.writeLongs(out, others.get(idx).longValue(), others.get(idx + 1).longValue()); - } - } - - @Override - protected SkipTransactionsRequest createRequest(final TransactionIdentifier target, final long sequence, - final ActorRef replyToActor) { - return new SkipTransactionsRequest(target, sequence, replyToActor, others); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsResponse.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsResponse.java index 6d168d30d69..b2fbc714215 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsResponse.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsResponse.java @@ -7,29 +7,41 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.Serial; +import java.io.ObjectInput; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; /** * Successful reply to a {@link SkipTransactionsRequest}. */ +// FIXME: rename to SkipTransactionsSuccess public final class SkipTransactionsResponse extends TransactionSuccess { - @Serial + interface SerialForm extends TransactionSuccess.SerialForm { + @Override + default SkipTransactionsResponse readExternal(final ObjectInput in, final TransactionIdentifier target, + final long sequence) { + return new SkipTransactionsResponse(target, sequence); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; + private SkipTransactionsResponse(final SkipTransactionsResponse success, final ABIVersion version) { + super(success, version); + } + public SkipTransactionsResponse(final TransactionIdentifier identifier, final long sequence) { super(identifier, sequence); } @Override - protected AbstractTransactionSuccessProxy externalizableProxy( - final ABIVersion version) { - return new SkipTransactionsResponseProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new STS(this) : new SkipTransactionsResponseProxyV1(this); } @Override protected SkipTransactionsResponse cloneAsVersion(final ABIVersion version) { - return this; + return new SkipTransactionsResponse(this, version); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsResponseProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsResponseProxyV1.java index a1bf23de6da..7e08536f601 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsResponseProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsResponseProxyV1.java @@ -7,15 +7,13 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.Serial; -import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; - /** * Externalizable proxy for use with {@link SkipTransactionsResponse}. It implements the initial (Phosphorus SR1) * serialization format. */ -final class SkipTransactionsResponseProxyV1 extends AbstractTransactionSuccessProxy { - @Serial +final class SkipTransactionsResponseProxyV1 extends AbstractTransactionSuccessProxy + implements SkipTransactionsResponse.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to @@ -28,9 +26,4 @@ public SkipTransactionsResponseProxyV1() { SkipTransactionsResponseProxyV1(final SkipTransactionsResponse success) { super(success); } - - @Override - protected SkipTransactionsResponse createSuccess(final TransactionIdentifier target, final long sequence) { - return new SkipTransactionsResponse(target, sequence); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TAR.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TAR.java new file mode 100644 index 00000000000..98f63b75cac --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TAR.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link TransactionAbortRequest}. It implements the Chlorine SR2 serialization + * format. + */ +final class TAR implements TransactionAbortRequest.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private TransactionAbortRequest message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public TAR() { + // for Externalizable + } + + TAR(final TransactionAbortRequest message) { + this.message = requireNonNull(message); + } + + @Override + public TransactionAbortRequest message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final TransactionAbortRequest message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TAS.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TAS.java new file mode 100644 index 00000000000..c34323bf75d --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TAS.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link TransactionAbortSuccess}. It implements the Chlorine SR2 serialization + * format. + */ +final class TAS implements TransactionAbortSuccess.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private TransactionAbortSuccess message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public TAS() { + // for Externalizable + } + + TAS(final TransactionAbortSuccess message) { + this.message = requireNonNull(message); + } + + @Override + public TransactionAbortSuccess message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final TransactionAbortSuccess message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TCCS.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TCCS.java new file mode 100644 index 00000000000..ab094b3054b --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TCCS.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link TransactionCanCommitSuccess}. It implements the Chlorine SR2 serialization + * format. + */ +final class TCCS implements TransactionCanCommitSuccess.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private TransactionCanCommitSuccess message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public TCCS() { + // for Externalizable + } + + TCCS(final TransactionCanCommitSuccess message) { + this.message = requireNonNull(message); + } + + @Override + public TransactionCanCommitSuccess message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final TransactionCanCommitSuccess message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TCS.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TCS.java new file mode 100644 index 00000000000..5e0265da33c --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TCS.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link TransactionCommitSuccess}. It implements the Chlorine SR2 serialization + * format. + */ +final class TCS implements TransactionCommitSuccess.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private TransactionCommitSuccess message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public TCS() { + // for Externalizable + } + + TCS(final TransactionCommitSuccess message) { + this.message = requireNonNull(message); + } + + @Override + public TransactionCommitSuccess message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final TransactionCommitSuccess message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TDCR.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TDCR.java new file mode 100644 index 00000000000..01c2733f9f9 --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TDCR.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link TransactionDoCommitRequest}. It implements the Chlorine SR2 serialization + * format. + */ +final class TDCR implements TransactionDoCommitRequest.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private TransactionDoCommitRequest message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public TDCR() { + // for Externalizable + } + + TDCR(final TransactionDoCommitRequest message) { + this.message = requireNonNull(message); + } + + @Override + public TransactionDoCommitRequest message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final TransactionDoCommitRequest message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TF.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TF.java new file mode 100644 index 00000000000..6e26fc329d5 --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TF.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link TransactionFailure}. It implements the Chlorine SR2 serialization format. + */ +final class TF implements TransactionFailure.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private TransactionFailure message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public TF() { + // for Externalizable + } + + TF(final TransactionFailure message) { + this.message = requireNonNull(message); + } + + @Override + public TransactionFailure message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final TransactionFailure message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TPCR.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TPCR.java new file mode 100644 index 00000000000..0bf4ae5ea93 --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TPCR.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link TransactionPreCommitRequest}. It implements the Chlorine SR2 serialization + * format. + */ +final class TPCR implements TransactionPreCommitRequest.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private TransactionPreCommitRequest message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public TPCR() { + // for Externalizable + } + + TPCR(final TransactionPreCommitRequest message) { + this.message = requireNonNull(message); + } + + @Override + public TransactionPreCommitRequest message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final TransactionPreCommitRequest message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TPCS.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TPCS.java new file mode 100644 index 00000000000..28c0e95bc39 --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TPCS.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link TransactionPreCommitSuccess}. It implements the Chlorine SR2 serialization + * format. + */ +final class TPCS implements TransactionPreCommitSuccess.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private TransactionPreCommitSuccess message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public TPCS() { + // for Externalizable + } + + TPCS(final TransactionPreCommitSuccess message) { + this.message = requireNonNull(message); + } + + @Override + public TransactionPreCommitSuccess message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final TransactionPreCommitSuccess message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TPR.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TPR.java new file mode 100644 index 00000000000..a80e1f6675d --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TPR.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link TransactionPurgeRequest}. It implements the Chlorine SR2 serialization + * format. + */ +final class TPR implements TransactionPurgeRequest.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private TransactionPurgeRequest message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public TPR() { + // for Externalizable + } + + TPR(final TransactionPurgeRequest message) { + this.message = requireNonNull(message); + } + + @Override + public TransactionPurgeRequest message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final TransactionPurgeRequest message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TPS.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TPS.java new file mode 100644 index 00000000000..cff3891a67b --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TPS.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.commands; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Externalizable proxy for use with {@link TransactionPurgeResponse}. It implements the Chlorine SR2 serialization + * format. + */ +final class TPS implements TransactionPurgeResponse.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private TransactionPurgeResponse message; + + @SuppressWarnings("checkstyle:RedundantModifier") + public TPS() { + // for Externalizable + } + + TPS(final TransactionPurgeResponse message) { + this.message = requireNonNull(message); + } + + @Override + public TransactionPurgeResponse message() { + return verifyNotNull(message); + } + + @Override + public void setMessage(final TransactionPurgeResponse message) { + this.message = requireNonNull(message); + } + + @Override + public Object readResolve() { + return message(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionAbortRequest.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionAbortRequest.java index d43d188de41..6ad73ef427a 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionAbortRequest.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionAbortRequest.java @@ -8,7 +8,7 @@ package org.opendaylight.controller.cluster.access.commands; import akka.actor.ActorRef; -import java.io.Serial; +import java.io.ObjectInput; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; @@ -16,20 +16,32 @@ * A transaction request to perform the abort step of the three-phase commit protocol. */ public final class TransactionAbortRequest extends TransactionRequest { - @Serial + interface SerialForm extends TransactionRequest.SerialForm { + @Override + default TransactionAbortRequest readExternal(final ObjectInput in, final TransactionIdentifier target, + final long sequence, final ActorRef replyTo) { + return new TransactionAbortRequest(target, sequence, replyTo); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; + private TransactionAbortRequest(final TransactionAbortRequest request, final ABIVersion version) { + super(request, version); + } + public TransactionAbortRequest(final TransactionIdentifier target, final long sequence, final ActorRef replyTo) { super(target, sequence, replyTo); } @Override - protected TransactionAbortRequestProxyV1 externalizableProxy(final ABIVersion version) { - return new TransactionAbortRequestProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new TAR(this) : new TransactionAbortRequestProxyV1(this); } @Override protected TransactionAbortRequest cloneAsVersion(final ABIVersion version) { - return this; + return new TransactionAbortRequest(this, version); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionAbortRequestProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionAbortRequestProxyV1.java index b4f80f64e41..87def66318e 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionAbortRequestProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionAbortRequestProxyV1.java @@ -7,18 +7,15 @@ */ package org.opendaylight.controller.cluster.access.commands; -import akka.actor.ActorRef; -import java.io.Serial; -import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; - /** * Externalizable proxy for use with {@link TransactionAbortRequest}. It implements the initial (Boron) serialization * format. * * @author Robert Varga */ -final class TransactionAbortRequestProxyV1 extends AbstractTransactionRequestProxy { - @Serial +final class TransactionAbortRequestProxyV1 extends AbstractTransactionRequestProxy + implements TransactionAbortRequest.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to @@ -31,10 +28,4 @@ public TransactionAbortRequestProxyV1() { TransactionAbortRequestProxyV1(final TransactionAbortRequest request) { super(request); } - - @Override - protected TransactionAbortRequest createRequest(final TransactionIdentifier target, final long sequence, - final ActorRef replyTo) { - return new TransactionAbortRequest(target, sequence, replyTo); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionAbortSuccess.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionAbortSuccess.java index 44de3f69fe1..9f2c4c967b8 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionAbortSuccess.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionAbortSuccess.java @@ -7,7 +7,7 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.Serial; +import java.io.ObjectInput; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; @@ -18,20 +18,32 @@ * @author Robert Varga */ public final class TransactionAbortSuccess extends TransactionSuccess { - @Serial + interface SerialForm extends TransactionSuccess.SerialForm { + @Override + default TransactionAbortSuccess readExternal(final ObjectInput in, final TransactionIdentifier target, + final long sequence) { + return new TransactionAbortSuccess(target, sequence); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; + private TransactionAbortSuccess(final TransactionAbortSuccess success, final ABIVersion version) { + super(success, version); + } + public TransactionAbortSuccess(final TransactionIdentifier identifier, final long sequence) { super(identifier, sequence); } @Override - protected AbstractTransactionSuccessProxy externalizableProxy(final ABIVersion version) { - return new TransactionAbortSuccessProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new TAS(this) : new TransactionAbortSuccessProxyV1(this); } @Override protected TransactionAbortSuccess cloneAsVersion(final ABIVersion version) { - return this; + return new TransactionAbortSuccess(this, version); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionAbortSuccessProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionAbortSuccessProxyV1.java index c04cadc9776..9d057ada5e6 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionAbortSuccessProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionAbortSuccessProxyV1.java @@ -7,17 +7,15 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.Serial; -import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; - /** * Externalizable proxy for use with {@link TransactionAbortSuccess}. It implements the initial (Boron) * serialization format. * * @author Robert Varga */ -final class TransactionAbortSuccessProxyV1 extends AbstractTransactionSuccessProxy { - @Serial +final class TransactionAbortSuccessProxyV1 extends AbstractTransactionSuccessProxy + implements TransactionAbortSuccess.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to @@ -30,9 +28,4 @@ public TransactionAbortSuccessProxyV1() { TransactionAbortSuccessProxyV1(final TransactionAbortSuccess success) { super(success); } - - @Override - protected TransactionAbortSuccess createSuccess(final TransactionIdentifier target, final long sequence) { - return new TransactionAbortSuccess(target, sequence); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionCanCommitSuccess.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionCanCommitSuccess.java index 720305dc42d..5e9e74f81bd 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionCanCommitSuccess.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionCanCommitSuccess.java @@ -7,7 +7,7 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.Serial; +import java.io.ObjectInput; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; @@ -18,21 +18,32 @@ * @author Robert Varga */ public final class TransactionCanCommitSuccess extends TransactionSuccess { - @Serial + interface SerialForm extends TransactionSuccess.SerialForm { + @Override + default TransactionCanCommitSuccess readExternal(final ObjectInput in, final TransactionIdentifier target, + final long sequence) { + return new TransactionCanCommitSuccess(target, sequence); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; + private TransactionCanCommitSuccess(final TransactionCanCommitSuccess success, final ABIVersion version) { + super(success, version); + } + public TransactionCanCommitSuccess(final TransactionIdentifier identifier, final long sequence) { super(identifier, sequence); } @Override - protected AbstractTransactionSuccessProxy externalizableProxy( - final ABIVersion version) { - return new TransactionCanCommitSuccessProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new TCCS(this) : new TransactionCanCommitSuccessProxyV1(this); } @Override protected TransactionCanCommitSuccess cloneAsVersion(final ABIVersion version) { - return this; + return new TransactionCanCommitSuccess(this, version); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionCanCommitSuccessProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionCanCommitSuccessProxyV1.java index b187ce52474..0d731c86ff9 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionCanCommitSuccessProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionCanCommitSuccessProxyV1.java @@ -7,20 +7,15 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.IOException; -import java.io.ObjectInput; -import java.io.ObjectOutput; -import java.io.Serial; -import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; - /** * Externalizable proxy for use with {@link TransactionCanCommitSuccess}. It implements the initial (Boron) * serialization format. * * @author Robert Varga */ -final class TransactionCanCommitSuccessProxyV1 extends AbstractTransactionSuccessProxy { - @Serial +final class TransactionCanCommitSuccessProxyV1 extends AbstractTransactionSuccessProxy + implements TransactionCanCommitSuccess.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to @@ -33,19 +28,4 @@ public TransactionCanCommitSuccessProxyV1() { TransactionCanCommitSuccessProxyV1(final TransactionCanCommitSuccess success) { super(success); } - - @Override - public void writeExternal(final ObjectOutput out) throws IOException { - super.writeExternal(out); - } - - @Override - public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { - super.readExternal(in); - } - - @Override - protected TransactionCanCommitSuccess createSuccess(final TransactionIdentifier target, final long sequence) { - return new TransactionCanCommitSuccess(target, sequence); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionCommitSuccess.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionCommitSuccess.java index 8ba0b476add..a91fe5c9bfa 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionCommitSuccess.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionCommitSuccess.java @@ -7,7 +7,7 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.Serial; +import java.io.ObjectInput; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; @@ -18,20 +18,32 @@ * @author Robert Varga */ public final class TransactionCommitSuccess extends TransactionSuccess { - @Serial + interface SerialForm extends TransactionSuccess.SerialForm { + @Override + default TransactionCommitSuccess readExternal(final ObjectInput in, final TransactionIdentifier target, + final long sequence) { + return new TransactionCommitSuccess(target, sequence); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; + private TransactionCommitSuccess(final TransactionCommitSuccess success, final ABIVersion version) { + super(success, version); + } + public TransactionCommitSuccess(final TransactionIdentifier identifier, final long sequence) { super(identifier, sequence); } @Override - protected AbstractTransactionSuccessProxy externalizableProxy(final ABIVersion version) { - return new TransactionCommitSuccessProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new TCS(this) : new TransactionCommitSuccessProxyV1(this); } @Override protected TransactionCommitSuccess cloneAsVersion(final ABIVersion version) { - return this; + return new TransactionCommitSuccess(this, version); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionCommitSuccessProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionCommitSuccessProxyV1.java index 42a8151db9b..ad2f1cb6c42 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionCommitSuccessProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionCommitSuccessProxyV1.java @@ -7,17 +7,15 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.Serial; -import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; - /** * Externalizable proxy for use with {@link TransactionCommitSuccess}. It implements the initial (Boron) * serialization format. * * @author Robert Varga */ -final class TransactionCommitSuccessProxyV1 extends AbstractTransactionSuccessProxy { - @Serial +final class TransactionCommitSuccessProxyV1 extends AbstractTransactionSuccessProxy + implements TransactionCommitSuccess.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to @@ -30,9 +28,4 @@ public TransactionCommitSuccessProxyV1() { TransactionCommitSuccessProxyV1(final TransactionCommitSuccess success) { super(success); } - - @Override - protected TransactionCommitSuccess createSuccess(final TransactionIdentifier target, final long sequence) { - return new TransactionCommitSuccess(target, sequence); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionDoCommitRequest.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionDoCommitRequest.java index 92ede4f1d88..9ba1f1d48fd 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionDoCommitRequest.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionDoCommitRequest.java @@ -8,7 +8,7 @@ package org.opendaylight.controller.cluster.access.commands; import akka.actor.ActorRef; -import java.io.Serial; +import java.io.ObjectInput; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; @@ -16,20 +16,32 @@ * A transaction request to perform the final, doCommit, step of the three-phase commit protocol. */ public final class TransactionDoCommitRequest extends TransactionRequest { - @Serial + interface SerialForm extends TransactionRequest.SerialForm { + @Override + default TransactionDoCommitRequest readExternal(final ObjectInput in, final TransactionIdentifier target, + final long sequence, final ActorRef replyTo) { + return new TransactionDoCommitRequest(target, sequence, replyTo); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; + private TransactionDoCommitRequest(final TransactionDoCommitRequest request, final ABIVersion version) { + super(request, version); + } + public TransactionDoCommitRequest(final TransactionIdentifier target, final long sequence, final ActorRef replyTo) { super(target, sequence, replyTo); } @Override - protected TransactionDoCommitRequestProxyV1 externalizableProxy(final ABIVersion version) { - return new TransactionDoCommitRequestProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new TDCR(this) : new TransactionDoCommitRequestProxyV1(this); } @Override protected TransactionDoCommitRequest cloneAsVersion(final ABIVersion version) { - return this; + return new TransactionDoCommitRequest(this, version); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionDoCommitRequestProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionDoCommitRequestProxyV1.java index c510e3f071e..ea9cfdb0410 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionDoCommitRequestProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionDoCommitRequestProxyV1.java @@ -7,18 +7,15 @@ */ package org.opendaylight.controller.cluster.access.commands; -import akka.actor.ActorRef; -import java.io.Serial; -import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; - /** * Externalizable proxy for use with {@link TransactionDoCommitRequest}. It implements the initial (Boron) serialization * format. * * @author Robert Varga */ -final class TransactionDoCommitRequestProxyV1 extends AbstractTransactionRequestProxy { - @Serial +final class TransactionDoCommitRequestProxyV1 extends AbstractTransactionRequestProxy + implements TransactionDoCommitRequest.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to @@ -31,10 +28,4 @@ public TransactionDoCommitRequestProxyV1() { TransactionDoCommitRequestProxyV1(final TransactionDoCommitRequest request) { super(request); } - - @Override - protected TransactionDoCommitRequest createRequest(final TransactionIdentifier target, final long sequence, - final ActorRef replyTo) { - return new TransactionDoCommitRequest(target, sequence, replyTo); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionFailure.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionFailure.java index 86240ddfbce..af8509601a9 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionFailure.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionFailure.java @@ -7,7 +7,8 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.Serial; +import java.io.DataInput; +import java.io.IOException; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.RequestException; import org.opendaylight.controller.cluster.access.concepts.RequestFailure; @@ -17,20 +18,37 @@ * Generic {@link RequestFailure} involving a {@link TransactionRequest}. */ public final class TransactionFailure extends RequestFailure { - @Serial + interface SerialForm extends RequestFailure.SerialForm { + @Override + default TransactionIdentifier readTarget(final DataInput in) throws IOException { + return TransactionIdentifier.readFrom(in); + } + + @Override + default TransactionFailure createFailure(final TransactionIdentifier target, final long sequence, + final RequestException cause) { + return new TransactionFailure(target, sequence, cause); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; + private TransactionFailure(final TransactionFailure failure, final ABIVersion version) { + super(failure, version); + } + TransactionFailure(final TransactionIdentifier target, final long sequence, final RequestException cause) { super(target, sequence, cause); } @Override protected TransactionFailure cloneAsVersion(final ABIVersion version) { - return this; + return new TransactionFailure(this, version); } @Override - protected TransactionFailureProxyV1 externalizableProxy(final ABIVersion version) { - return new TransactionFailureProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new TF(this) : new TransactionFailureProxyV1(this); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionFailureProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionFailureProxyV1.java index 70d1e30e51f..335308b05cc 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionFailureProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionFailureProxyV1.java @@ -7,11 +7,7 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.DataInput; -import java.io.IOException; -import java.io.Serial; import org.opendaylight.controller.cluster.access.concepts.AbstractRequestFailureProxy; -import org.opendaylight.controller.cluster.access.concepts.RequestException; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; /** @@ -20,8 +16,9 @@ * * @author Robert Varga */ -final class TransactionFailureProxyV1 extends AbstractRequestFailureProxy { - @Serial +final class TransactionFailureProxyV1 extends AbstractRequestFailureProxy + implements TransactionFailure.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to @@ -34,15 +31,4 @@ public TransactionFailureProxyV1() { TransactionFailureProxyV1(final TransactionFailure failure) { super(failure); } - - @Override - protected TransactionFailure createFailure(final TransactionIdentifier target, final long sequence, - final RequestException cause) { - return new TransactionFailure(target, sequence, cause); - } - - @Override - protected TransactionIdentifier readTarget(final DataInput in) throws IOException { - return TransactionIdentifier.readFrom(in); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitRequest.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitRequest.java index 3828628089d..406f659b965 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitRequest.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitRequest.java @@ -8,7 +8,7 @@ package org.opendaylight.controller.cluster.access.commands; import akka.actor.ActorRef; -import java.io.Serial; +import java.io.ObjectInput; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; @@ -16,21 +16,33 @@ * A transaction request to perform the second, preCommit, step of the three-phase commit protocol. */ public final class TransactionPreCommitRequest extends TransactionRequest { - @Serial + interface SerialForm extends TransactionRequest.SerialForm { + @Override + default TransactionPreCommitRequest readExternal(final ObjectInput in, final TransactionIdentifier target, + final long sequence, final ActorRef replyTo) { + return new TransactionPreCommitRequest(target, sequence, replyTo); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; + private TransactionPreCommitRequest(final TransactionPreCommitRequest request, final ABIVersion version) { + super(request, version); + } + public TransactionPreCommitRequest(final TransactionIdentifier target, final long sequence, final ActorRef replyTo) { super(target, sequence, replyTo); } @Override - protected TransactionPreCommitRequestProxyV1 externalizableProxy(final ABIVersion version) { - return new TransactionPreCommitRequestProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new TPCR(this) : new TransactionPreCommitRequestProxyV1(this); } @Override protected TransactionPreCommitRequest cloneAsVersion(final ABIVersion version) { - return this; + return new TransactionPreCommitRequest(this, version); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitRequestProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitRequestProxyV1.java index 2b56cc352be..59fefb66dc3 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitRequestProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitRequestProxyV1.java @@ -7,18 +7,15 @@ */ package org.opendaylight.controller.cluster.access.commands; -import akka.actor.ActorRef; -import java.io.Serial; -import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; - /** * Externalizable proxy for use with {@link TransactionPreCommitRequest}. It implements the initial (Boron) * serialization format. * * @author Robert Varga */ -final class TransactionPreCommitRequestProxyV1 extends AbstractTransactionRequestProxy { - @Serial +final class TransactionPreCommitRequestProxyV1 extends AbstractTransactionRequestProxy + implements TransactionPreCommitRequest.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to @@ -31,10 +28,4 @@ public TransactionPreCommitRequestProxyV1() { TransactionPreCommitRequestProxyV1(final TransactionPreCommitRequest request) { super(request); } - - @Override - protected TransactionPreCommitRequest createRequest(final TransactionIdentifier target, final long sequence, - final ActorRef replyTo) { - return new TransactionPreCommitRequest(target, sequence, replyTo); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitSuccess.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitSuccess.java index a349d72e8b3..635573ba51d 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitSuccess.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitSuccess.java @@ -7,7 +7,8 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.Serial; +import java.io.IOException; +import java.io.ObjectInput; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; @@ -17,21 +18,32 @@ * @author Robert Varga */ public final class TransactionPreCommitSuccess extends TransactionSuccess { - @Serial + interface SerialForm extends TransactionSuccess.SerialForm { + @Override + default TransactionPreCommitSuccess readExternal(final ObjectInput in, final TransactionIdentifier target, + final long sequence) throws IOException { + return new TransactionPreCommitSuccess(target, sequence); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; + private TransactionPreCommitSuccess(final TransactionPreCommitSuccess success, final ABIVersion version) { + super(success, version); + } + public TransactionPreCommitSuccess(final TransactionIdentifier identifier, final long sequence) { super(identifier, sequence); } @Override - protected AbstractTransactionSuccessProxy externalizableProxy( - final ABIVersion version) { - return new TransactionPreCommitSuccessProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new TPCS(this) : new TransactionPreCommitSuccessProxyV1(this); } @Override protected TransactionPreCommitSuccess cloneAsVersion(final ABIVersion version) { - return this; + return new TransactionPreCommitSuccess(this, version); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitSuccessProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitSuccessProxyV1.java index 4e71077f835..e421f785ff0 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitSuccessProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitSuccessProxyV1.java @@ -7,17 +7,15 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.Serial; -import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; - /** * Externalizable proxy for use with {@link TransactionPreCommitSuccess}. It implements the initial (Boron) * serialization format. * * @author Robert Varga */ -final class TransactionPreCommitSuccessProxyV1 extends AbstractTransactionSuccessProxy { - @Serial +final class TransactionPreCommitSuccessProxyV1 extends AbstractTransactionSuccessProxy + implements TransactionPreCommitSuccess.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to @@ -30,9 +28,4 @@ public TransactionPreCommitSuccessProxyV1() { TransactionPreCommitSuccessProxyV1(final TransactionPreCommitSuccess success) { super(success); } - - @Override - protected TransactionPreCommitSuccess createSuccess(final TransactionIdentifier target, final long sequence) { - return new TransactionPreCommitSuccess(target, sequence); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeRequest.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeRequest.java index a374a891db3..dd26df2529f 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeRequest.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeRequest.java @@ -8,7 +8,7 @@ package org.opendaylight.controller.cluster.access.commands; import akka.actor.ActorRef; -import java.io.Serial; +import java.io.ObjectInput; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; @@ -18,20 +18,32 @@ * to the transaction and responds with a {@link TransactionPurgeResponse}. */ public final class TransactionPurgeRequest extends TransactionRequest { - @Serial + interface SerialForm extends TransactionRequest.SerialForm { + @Override + default TransactionPurgeRequest readExternal(final ObjectInput in, final TransactionIdentifier target, + final long sequence, final ActorRef replyTo) { + return new TransactionPurgeRequest(target, sequence, replyTo); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; + private TransactionPurgeRequest(final TransactionPurgeRequest request, final ABIVersion version) { + super(request, version); + } + public TransactionPurgeRequest(final TransactionIdentifier target, final long sequence, final ActorRef replyTo) { super(target, sequence, replyTo); } @Override - protected TransactionPurgeRequestProxyV1 externalizableProxy(final ABIVersion version) { - return new TransactionPurgeRequestProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new TPR(this) : new TransactionPurgeRequestProxyV1(this); } @Override protected TransactionPurgeRequest cloneAsVersion(final ABIVersion version) { - return this; + return new TransactionPurgeRequest(this, version); } } \ No newline at end of file diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeRequestProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeRequestProxyV1.java index a6be95d9f96..529cc090f84 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeRequestProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeRequestProxyV1.java @@ -7,18 +7,15 @@ */ package org.opendaylight.controller.cluster.access.commands; -import akka.actor.ActorRef; -import java.io.Serial; -import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; - /** * Externalizable proxy for use with {@link TransactionPurgeRequest}. It implements the initial (Boron) * serialization format. * * @author Robert Varga */ -final class TransactionPurgeRequestProxyV1 extends AbstractTransactionRequestProxy { - @Serial +final class TransactionPurgeRequestProxyV1 extends AbstractTransactionRequestProxy + implements TransactionPurgeRequest.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to @@ -31,10 +28,4 @@ public TransactionPurgeRequestProxyV1() { TransactionPurgeRequestProxyV1(final TransactionPurgeRequest request) { super(request); } - - @Override - protected TransactionPurgeRequest createRequest(final TransactionIdentifier target, final long sequence, - final ActorRef replyTo) { - return new TransactionPurgeRequest(target, sequence, replyTo); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeResponse.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeResponse.java index 1d3a74ab05a..5b650e60f91 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeResponse.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeResponse.java @@ -7,31 +7,41 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.Serial; +import java.io.ObjectInput; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; /** * Successful reply to a {@link TransactionPurgeRequest}. - * - * @author Robert Varga */ +// FIXME: rename to TransactionPurgeSuccess public final class TransactionPurgeResponse extends TransactionSuccess { - @Serial + interface SerialForm extends TransactionSuccess.SerialForm { + @Override + default TransactionPurgeResponse readExternal(final ObjectInput in, final TransactionIdentifier target, + final long sequence) { + return new TransactionPurgeResponse(target, sequence); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; + private TransactionPurgeResponse(final TransactionPurgeResponse success, final ABIVersion version) { + super(success, version); + } + public TransactionPurgeResponse(final TransactionIdentifier identifier, final long sequence) { super(identifier, sequence); } @Override - protected AbstractTransactionSuccessProxy externalizableProxy( - final ABIVersion version) { - return new TransactionPurgeResponseProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new TPS(this) : new TransactionPurgeResponseProxyV1(this); } @Override protected TransactionPurgeResponse cloneAsVersion(final ABIVersion version) { - return this; + return new TransactionPurgeResponse(this, version); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeResponseProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeResponseProxyV1.java index f51dc606fa9..38756141877 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeResponseProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeResponseProxyV1.java @@ -7,17 +7,15 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.Serial; -import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; - /** * Externalizable proxy for use with {@link TransactionPurgeResponse}. It implements the initial (Boron) * serialization format. * * @author Robert Varga */ -final class TransactionPurgeResponseProxyV1 extends AbstractTransactionSuccessProxy { - @Serial +final class TransactionPurgeResponseProxyV1 extends AbstractTransactionSuccessProxy + implements TransactionPurgeResponse.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to @@ -30,9 +28,4 @@ public TransactionPurgeResponseProxyV1() { TransactionPurgeResponseProxyV1(final TransactionPurgeResponse success) { super(success); } - - @Override - protected TransactionPurgeResponse createSuccess(final TransactionIdentifier target, final long sequence) { - return new TransactionPurgeResponse(target, sequence); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionRequest.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionRequest.java index fb12edeacdd..15d98f91507 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionRequest.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionRequest.java @@ -8,7 +8,8 @@ package org.opendaylight.controller.cluster.access.commands; import akka.actor.ActorRef; -import java.io.Serial; +import java.io.DataInput; +import java.io.IOException; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.Request; import org.opendaylight.controller.cluster.access.concepts.RequestException; @@ -21,7 +22,15 @@ * @param Message type */ public abstract class TransactionRequest> extends Request { - @Serial + protected interface SerialForm> + extends Request.SerialForm { + @Override + default TransactionIdentifier readTarget(final DataInput in) throws IOException { + return TransactionIdentifier.readFrom(in); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; TransactionRequest(final TransactionIdentifier identifier, final long sequence, final ActorRef replyTo) { @@ -38,5 +47,5 @@ public final TransactionFailure toRequestFailure(final RequestException cause) { } @Override - protected abstract AbstractTransactionRequestProxy externalizableProxy(ABIVersion version); + protected abstract SerialForm externalizableProxy(ABIVersion version); } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionSuccess.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionSuccess.java index f70b750813d..689b4d5ee14 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionSuccess.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionSuccess.java @@ -7,7 +7,8 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.Serial; +import java.io.DataInput; +import java.io.IOException; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.RequestSuccess; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; @@ -20,7 +21,14 @@ */ public abstract class TransactionSuccess> extends RequestSuccess { - @Serial + interface SerialForm> extends RequestSuccess.SerialForm { + @Override + default TransactionIdentifier readTarget(final DataInput in) throws IOException { + return TransactionIdentifier.readFrom(in); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; TransactionSuccess(final TransactionIdentifier identifier, final long sequence) { @@ -32,5 +40,5 @@ public abstract class TransactionSuccess> } @Override - protected abstract AbstractTransactionSuccessProxy externalizableProxy(ABIVersion version); + protected abstract SerialForm externalizableProxy(ABIVersion version); } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/UnknownHistoryException.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/UnknownHistoryException.java index b7b2228e0f7..c688df3c90f 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/UnknownHistoryException.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/UnknownHistoryException.java @@ -7,7 +7,6 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.Serial; import org.opendaylight.controller.cluster.access.concepts.RequestException; /** @@ -15,7 +14,7 @@ * typically happens when the linear history ID is newer than the highest observed {@link CreateLocalHistoryRequest}. */ public final class UnknownHistoryException extends RequestException { - @Serial + @java.io.Serial private static final long serialVersionUID = 1L; public UnknownHistoryException(final Long lastSeenHistory) { diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractEnvelopeProxy.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractEnvelopeProxy.java index c4d100a560a..a97a3f0aadc 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractEnvelopeProxy.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractEnvelopeProxy.java @@ -7,51 +7,36 @@ */ package org.opendaylight.controller.cluster.access.concepts; -import java.io.Externalizable; -import java.io.IOException; -import java.io.ObjectInput; -import java.io.ObjectOutput; -import java.io.Serial; -import org.opendaylight.yangtools.concepts.WritableObjects; - -abstract class AbstractEnvelopeProxy> implements Externalizable { - @Serial +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +abstract class AbstractEnvelopeProxy, E extends Envelope> + implements Envelope.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; - private T message; - private long sessionId; - private long txSequence; + private E envelope; AbstractEnvelopeProxy() { // for Externalizable } - AbstractEnvelopeProxy(final Envelope envelope) { - message = envelope.getMessage(); - txSequence = envelope.getTxSequence(); - sessionId = envelope.getSessionId(); + AbstractEnvelopeProxy(final E envelope) { + this.envelope = requireNonNull(envelope); } @Override - public void writeExternal(final ObjectOutput out) throws IOException { - WritableObjects.writeLongs(out, sessionId, txSequence); - out.writeObject(message); + public final E envelope() { + return verifyNotNull(envelope); } - @SuppressWarnings("unchecked") @Override - public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { - final byte header = WritableObjects.readLongHeader(in); - sessionId = WritableObjects.readFirstLong(in, header); - txSequence = WritableObjects.readSecondLong(in, header); - message = (T) in.readObject(); + public final void setEnvelope(final E envelope) { + this.envelope = requireNonNull(envelope); } - @SuppressWarnings("checkstyle:hiddenField") - abstract Envelope createEnvelope(T wrappedNessage, long sessionId, long txSequence); - - @Serial - final Object readResolve() { - return createEnvelope(message, sessionId, txSequence); + @Override + public final Object readResolve() { + return envelope(); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractMessageProxy.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractMessageProxy.java index 1cc091bdb28..8b0912ff636 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractMessageProxy.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractMessageProxy.java @@ -8,16 +8,10 @@ package org.opendaylight.controller.cluster.access.concepts; import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; -import java.io.DataInput; -import java.io.Externalizable; -import java.io.IOException; -import java.io.ObjectInput; -import java.io.ObjectOutput; -import java.io.Serial; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.concepts.WritableIdentifier; -import org.opendaylight.yangtools.concepts.WritableObjects; /** * Abstract Externalizable proxy for use with {@link Message} subclasses. @@ -27,40 +21,33 @@ * @param Target identifier type * @param Message class */ -abstract class AbstractMessageProxy> implements Externalizable { - @Serial +abstract class AbstractMessageProxy> + implements Message.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; - private T target; - private long sequence; + private C message; protected AbstractMessageProxy() { // For Externalizable } AbstractMessageProxy(final @NonNull C message) { - this.target = message.getTarget(); - this.sequence = message.getSequence(); + this.message = requireNonNull(message); } @Override - public void writeExternal(final ObjectOutput out) throws IOException { - target.writeTo(out); - WritableObjects.writeLong(out, sequence); + public final C message() { + return verifyNotNull(message); } @Override - public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { - target = verifyNotNull(readTarget(in)); - sequence = WritableObjects.readLong(in); + public final void setMessage(final C message) { + this.message = requireNonNull(message); } - @Serial - protected final Object readResolve() { - return verifyNotNull(createMessage(target, sequence)); + @Override + public final Object readResolve() { + return message(); } - - protected abstract @NonNull T readTarget(@NonNull DataInput in) throws IOException; - - abstract @NonNull C createMessage(@NonNull T msgTarget, long msgSequence); } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractRequestFailureProxy.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractRequestFailureProxy.java index e715c94f011..8089856ed29 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractRequestFailureProxy.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractRequestFailureProxy.java @@ -7,10 +7,6 @@ */ package org.opendaylight.controller.cluster.access.concepts; -import java.io.IOException; -import java.io.ObjectInput; -import java.io.ObjectOutput; -import java.io.Serial; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.concepts.WritableIdentifier; @@ -20,38 +16,15 @@ * @param Target identifier type */ public abstract class AbstractRequestFailureProxy> - extends AbstractResponseProxy { - @Serial + extends AbstractResponseProxy implements RequestFailure.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; - private RequestException cause; - protected AbstractRequestFailureProxy() { // For Externalizable } protected AbstractRequestFailureProxy(final @NonNull C failure) { super(failure); - this.cause = failure.getCause(); - } - - @Override - public void writeExternal(final ObjectOutput out) throws IOException { - super.writeExternal(out); - out.writeObject(cause); - } - - @Override - public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { - super.readExternal(in); - cause = (RequestException) in.readObject(); - } - - @Override - final C createResponse(final T target, final long sequence) { - return createFailure(target, sequence, cause); } - - protected abstract @NonNull C createFailure(@NonNull T target, long sequence, - @NonNull RequestException failureCause); -} +} \ No newline at end of file diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractRequestProxy.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractRequestProxy.java index 762c9728d5f..3ce1193e40c 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractRequestProxy.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractRequestProxy.java @@ -7,13 +7,6 @@ */ package org.opendaylight.controller.cluster.access.concepts; -import akka.actor.ActorRef; -import akka.serialization.JavaSerializer; -import akka.serialization.Serialization; -import java.io.IOException; -import java.io.ObjectInput; -import java.io.ObjectOutput; -import java.io.Serial; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.concepts.WritableIdentifier; @@ -23,37 +16,15 @@ * @param Target identifier type */ public abstract class AbstractRequestProxy> - extends AbstractMessageProxy { - @Serial + extends AbstractMessageProxy implements Request.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; - private ActorRef replyTo; - protected AbstractRequestProxy() { // For Externalizable } protected AbstractRequestProxy(final @NonNull C request) { super(request); - this.replyTo = request.getReplyTo(); - } - - @Override - public void writeExternal(final ObjectOutput out) throws IOException { - super.writeExternal(out); - out.writeObject(Serialization.serializedActorPath(replyTo)); - } - - @Override - public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { - super.readExternal(in); - replyTo = JavaSerializer.currentSystem().value().provider().resolveActorRef((String) in.readObject()); - } - - @Override - final C createMessage(final T target, final long sequence) { - return createRequest(target, sequence, replyTo); } - - protected abstract @NonNull C createRequest(@NonNull T target, long sequence, @NonNull ActorRef replyToActor); } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractResponseEnvelopeProxy.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractResponseEnvelopeProxy.java index 7c35a3fd530..12bbe79a7b8 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractResponseEnvelopeProxy.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractResponseEnvelopeProxy.java @@ -7,44 +7,16 @@ */ package org.opendaylight.controller.cluster.access.concepts; -import java.io.IOException; -import java.io.ObjectInput; -import java.io.ObjectOutput; -import java.io.Serial; -import org.opendaylight.yangtools.concepts.WritableObjects; - -abstract class AbstractResponseEnvelopeProxy> extends AbstractEnvelopeProxy { - @Serial +abstract class AbstractResponseEnvelopeProxy, E extends ResponseEnvelope> + extends AbstractEnvelopeProxy { + @java.io.Serial private static final long serialVersionUID = 1L; - private long executionTimeNanos; - AbstractResponseEnvelopeProxy() { // for Externalizable } - AbstractResponseEnvelopeProxy(final ResponseEnvelope envelope) { + AbstractResponseEnvelopeProxy(final E envelope) { super(envelope); - this.executionTimeNanos = envelope.getExecutionTimeNanos(); } - - @Override - public final void writeExternal(final ObjectOutput out) throws IOException { - super.writeExternal(out); - WritableObjects.writeLong(out, executionTimeNanos); - } - - @Override - public final void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { - super.readExternal(in); - executionTimeNanos = WritableObjects.readLong(in); - } - - @Override - final ResponseEnvelope createEnvelope(final T message, final long sessionId, final long txSequence) { - return createEnvelope(message, sessionId, txSequence, executionTimeNanos); - } - - @SuppressWarnings("checkstyle:hiddenField") - abstract ResponseEnvelope createEnvelope(T message, long sessionId, long txSequence, long executionTimeNanos); } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractResponseProxy.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractResponseProxy.java index 818410dbb39..4e9f81e0cdb 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractResponseProxy.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractResponseProxy.java @@ -7,7 +7,6 @@ */ package org.opendaylight.controller.cluster.access.concepts; -import java.io.Serial; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.concepts.WritableIdentifier; @@ -21,7 +20,7 @@ */ abstract class AbstractResponseProxy> extends AbstractMessageProxy { - @Serial + @java.io.Serial private static final long serialVersionUID = 1L; protected AbstractResponseProxy() { @@ -31,11 +30,4 @@ protected AbstractResponseProxy() { AbstractResponseProxy(final @NonNull C response) { super(response); } - - @Override - final C createMessage(final T target, final long sequence) { - return createResponse(target, sequence); - } - - abstract @NonNull C createResponse(@NonNull T target, long sequence); } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractSuccessProxy.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractSuccessProxy.java index 4e31019c773..bed6e8947b5 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractSuccessProxy.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractSuccessProxy.java @@ -7,7 +7,6 @@ */ package org.opendaylight.controller.cluster.access.concepts; -import java.io.Serial; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.concepts.WritableIdentifier; @@ -18,7 +17,7 @@ */ public abstract class AbstractSuccessProxy> extends AbstractResponseProxy { - @Serial + @java.io.Serial private static final long serialVersionUID = 1L; protected AbstractSuccessProxy() { @@ -28,11 +27,4 @@ protected AbstractSuccessProxy() { protected AbstractSuccessProxy(final @NonNull C success) { super(success); } - - @Override - final C createResponse(final T target, final long sequence) { - return createSuccess(target, sequence); - } - - protected abstract @NonNull C createSuccess(@NonNull T target, long sequence); } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/CI.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/CI.java new file mode 100644 index 00000000000..2186d03e5a8 --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/CI.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.concepts; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Serialization proxy for {@link ClientIdentifier}. + */ +final class CI implements ClientIdentifier.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private ClientIdentifier identifier; + + @SuppressWarnings("checkstyle:RedundantModifier") + public CI() { + // for Externalizable + } + + CI(final ClientIdentifier identifier) { + this.identifier = requireNonNull(identifier); + } + + @Override + public ClientIdentifier identifier() { + return verifyNotNull(identifier); + } + + @Override + public void setIdentifier(final ClientIdentifier identifier) { + this.identifier = requireNonNull(identifier); + } + + @Override + public Object readResolve() { + return identifier(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/ClientIdentifier.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/ClientIdentifier.java index d62b5938456..fc8a2a4954e 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/ClientIdentifier.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/ClientIdentifier.java @@ -7,6 +7,7 @@ */ package org.opendaylight.controller.cluster.access.concepts; +import static com.google.common.base.Verify.verifyNotNull; import static java.util.Objects.requireNonNull; import com.google.common.base.MoreObjects; @@ -16,7 +17,6 @@ import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; -import java.io.Serial; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.cds.types.rev191024.ClientGeneration; import org.opendaylight.yangtools.concepts.WritableIdentifier; @@ -26,16 +26,34 @@ /** * A cluster-wide unique identifier of a frontend instance. This identifier discerns between individual incarnations * of a particular frontend. - * - * @author Robert Varga */ public final class ClientIdentifier implements WritableIdentifier { - private static final class Proxy implements Externalizable { - @Serial + interface SerialForm extends Externalizable { + @NonNull ClientIdentifier identifier(); + + void setIdentifier(@NonNull ClientIdentifier identifier); + + @java.io.Serial + Object readResolve(); + + @Override + default void readExternal(final ObjectInput in) throws IOException { + setIdentifier(new ClientIdentifier(FrontendIdentifier.readFrom(in), WritableObjects.readLong(in))); + } + + @Override + default void writeExternal(final ObjectOutput out) throws IOException { + final var id = identifier(); + id.getFrontendId().writeTo(out); + WritableObjects.writeLong(out, id.getGeneration()); + } + } + + private static final class Proxy implements SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; - private FrontendIdentifier frontendId; - private long generation; + private ClientIdentifier identifier; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to // be able to create instances via reflection. @@ -44,30 +62,27 @@ public Proxy() { // Needed for Externalizable } - Proxy(final FrontendIdentifier frontendId, final long generation) { - this.frontendId = requireNonNull(frontendId); - this.generation = generation; + Proxy(final ClientIdentifier identifier) { + this.identifier = requireNonNull(identifier); } @Override - public void writeExternal(final ObjectOutput out) throws IOException { - frontendId.writeTo(out); - WritableObjects.writeLong(out, generation); + public ClientIdentifier identifier() { + return verifyNotNull(identifier); } @Override - public void readExternal(final ObjectInput in) throws IOException { - frontendId = FrontendIdentifier.readFrom(in); - generation = WritableObjects.readLong(in); + public void setIdentifier(final ClientIdentifier identifier) { + this.identifier = requireNonNull(identifier); } - @Serial - private Object readResolve() { - return new ClientIdentifier(frontendId, generation); + @Override + public Object readResolve() { + return identifier(); } } - @Serial + @java.io.Serial private static final long serialVersionUID = 1L; private final @NonNull FrontendIdentifier frontendId; @@ -125,8 +140,8 @@ public String toString() { .toString(); } - @Serial + @java.io.Serial private Object writeReplace() { - return new Proxy(frontendId, generation); + return new Proxy(this); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/Envelope.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/Envelope.java index 44cf7171c7f..7d39f48e0cc 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/Envelope.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/Envelope.java @@ -10,13 +10,50 @@ import static java.util.Objects.requireNonNull; import com.google.common.base.MoreObjects; -import java.io.Serial; +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; import java.io.Serializable; import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.yangtools.concepts.Immutable; +import org.opendaylight.yangtools.concepts.WritableObjects; public abstract class Envelope> implements Immutable, Serializable { - @Serial + interface SerialForm, E extends Envelope> extends Externalizable { + + @NonNull E envelope(); + + void setEnvelope(@NonNull E envelope); + + @java.io.Serial + Object readResolve(); + + @Override + default void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { + final byte header = WritableObjects.readLongHeader(in); + final var sessionId = WritableObjects.readFirstLong(in, header); + final var txSequence = WritableObjects.readSecondLong(in, header); + @SuppressWarnings("unchecked") + final var message = (T) in.readObject(); + setEnvelope(readExternal(in, sessionId, txSequence, message)); + } + + E readExternal(ObjectInput in, long sessionId, long txSequence, T message) throws IOException; + + @Override + default void writeExternal(final ObjectOutput out) throws IOException { + writeExternal(out, envelope()); + } + + default void writeExternal(final ObjectOutput out, final @NonNull E envelope) throws IOException { + WritableObjects.writeLongs(out, envelope.getSessionId(), envelope.getTxSequence()); + out.writeObject(envelope.getMessage()); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; private final @NonNull T message; @@ -62,10 +99,12 @@ public String toString() { .add("txSequence", Long.toHexString(txSequence)).add("message", message).toString(); } - @Serial + @java.io.Serial final Object writeReplace() { - return createProxy(); + return ABIVersion.MAGNESIUM.lt(message.getVersion()) ? createProxy() : legacyProxy(); } - abstract AbstractEnvelopeProxy createProxy(); + abstract @NonNull SerialForm createProxy(); + + abstract @NonNull AbstractEnvelopeProxy legacyProxy(); } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FE.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FE.java new file mode 100644 index 00000000000..e80a38dad93 --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FE.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.concepts; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Serialization proxy for {@link FailureEnvelope}. + */ +final class FE implements FailureEnvelope.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private FailureEnvelope envelope; + + @SuppressWarnings("checkstyle:RedundantModifier") + public FE() { + // for Externalizable + } + + FE(final FailureEnvelope envelope) { + this.envelope = requireNonNull(envelope); + } + + @Override + public FailureEnvelope envelope() { + return verifyNotNull(envelope); + } + + @Override + public void setEnvelope(final FailureEnvelope envelope) { + this.envelope = requireNonNull(envelope); + } + + @Override + public Object readResolve() { + return envelope(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FI.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FI.java new file mode 100644 index 00000000000..4640c3fa133 --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FI.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.concepts; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Serialization proxy for {@link FrontendIdentifier}. + */ +final class FI implements FrontendIdentifier.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private FrontendIdentifier identifier; + + @SuppressWarnings("checkstyle:RedundantModifier") + public FI() { + // for Externalizable + } + + FI(final FrontendIdentifier identifier) { + this.identifier = requireNonNull(identifier); + } + + @Override + public FrontendIdentifier identifier() { + return verifyNotNull(identifier); + } + + @Override + public void setIdentifier(final FrontendIdentifier identifier) { + this.identifier = requireNonNull(identifier); + } + + @Override + public Object readResolve() { + return identifier(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FT.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FT.java new file mode 100644 index 00000000000..60c45fefc65 --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FT.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.concepts; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Serialization proxy for {@link FrontendType}. + */ +final class FT implements FrontendType.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private FrontendType type; + + @SuppressWarnings("checkstyle:RedundantModifier") + public FT() { + // for Externalizable + } + + FT(final FrontendType type) { + this.type = requireNonNull(type); + } + + @Override + public FrontendType type() { + return verifyNotNull(type); + } + + @Override + public void setType(final FrontendType type) { + this.type = requireNonNull(type); + } + + @Override + public Object readResolve() { + return type(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FailureEnvelope.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FailureEnvelope.java index c2daa742033..4de13ac8f81 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FailureEnvelope.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FailureEnvelope.java @@ -7,10 +7,18 @@ */ package org.opendaylight.controller.cluster.access.concepts; -import java.io.Serial; +import java.io.ObjectInput; public final class FailureEnvelope extends ResponseEnvelope> { - @Serial + interface SerialForm extends ResponseEnvelope.SerialForm, FailureEnvelope> { + @Override + default FailureEnvelope readExternal(final ObjectInput in, final long sessionId, final long txSequence, + final RequestFailure message, final long executionTimeNanos) { + return new FailureEnvelope(message, sessionId, txSequence, executionTimeNanos); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; public FailureEnvelope(final RequestFailure message, final long sessionId, final long txSequence, @@ -19,7 +27,12 @@ public FailureEnvelope(final RequestFailure message, final long sessionId, } @Override - FailureEnvelopeProxy createProxy() { + FE createProxy() { + return new FE(this); + } + + @Override + FailureEnvelopeProxy legacyProxy() { return new FailureEnvelopeProxy(this); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FailureEnvelopeProxy.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FailureEnvelopeProxy.java index 65c2f43b7e5..98ae8be089d 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FailureEnvelopeProxy.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FailureEnvelopeProxy.java @@ -7,10 +7,9 @@ */ package org.opendaylight.controller.cluster.access.concepts; -import java.io.Serial; - -final class FailureEnvelopeProxy extends AbstractResponseEnvelopeProxy> { - @Serial +final class FailureEnvelopeProxy extends AbstractResponseEnvelopeProxy, FailureEnvelope> + implements FailureEnvelope.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to be @@ -23,10 +22,4 @@ public FailureEnvelopeProxy() { FailureEnvelopeProxy(final FailureEnvelope envelope) { super(envelope); } - - @Override - ResponseEnvelope> createEnvelope(final RequestFailure message, final long sessionId, - final long txSequence, final long executionTimeNanos) { - return new FailureEnvelope(message, sessionId, txSequence, executionTimeNanos); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FrontendIdentifier.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FrontendIdentifier.java index 5afaa115b02..933aa16c79c 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FrontendIdentifier.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FrontendIdentifier.java @@ -7,6 +7,7 @@ */ package org.opendaylight.controller.cluster.access.concepts; +import static com.google.common.base.Verify.verifyNotNull; import static java.util.Objects.requireNonNull; import java.io.DataInput; @@ -15,7 +16,6 @@ import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; -import java.io.Serial; import java.util.Objects; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.concepts.WritableIdentifier; @@ -24,12 +24,32 @@ * A cluster-wide unique identifier of a frontend type located at a cluster member. */ public final class FrontendIdentifier implements WritableIdentifier { - private static final class Proxy implements Externalizable { - @Serial + interface SerialForm extends Externalizable { + @NonNull FrontendIdentifier identifier(); + + void setIdentifier(@NonNull FrontendIdentifier identifier); + + @java.io.Serial + Object readResolve(); + + @Override + default void writeExternal(final ObjectOutput out) throws IOException { + final var id = identifier(); + id.memberName.writeTo(out); + id.clientType.writeTo(out); + } + + @Override + default void readExternal(final ObjectInput in) throws IOException { + setIdentifier(new FrontendIdentifier(MemberName.readFrom(in), FrontendType.readFrom(in))); + } + } + + private static final class Proxy implements SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; - private MemberName memberName; - private FrontendType clientType; + private FrontendIdentifier identifier; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to // be able to create instances via reflection. @@ -38,30 +58,27 @@ public Proxy() { // Needed for Externalizable } - Proxy(final MemberName memberName, final FrontendType clientType) { - this.memberName = requireNonNull(memberName); - this.clientType = requireNonNull(clientType); + Proxy(final FrontendIdentifier identifier) { + this.identifier = requireNonNull(identifier); } @Override - public void writeExternal(final ObjectOutput out) throws IOException { - memberName.writeTo(out); - clientType.writeTo(out); + public FrontendIdentifier identifier() { + return verifyNotNull(identifier); } @Override - public void readExternal(final ObjectInput in) throws IOException { - memberName = MemberName.readFrom(in); - clientType = FrontendType.readFrom(in); + public void setIdentifier(final FrontendIdentifier identifier) { + this.identifier = requireNonNull(identifier); } - @Serial - private Object readResolve() { - return new FrontendIdentifier(memberName, clientType); + @Override + public Object readResolve() { + return identifier(); } } - @Serial + @java.io.Serial private static final long serialVersionUID = 1L; private final MemberName memberName; @@ -116,8 +133,8 @@ public String toString() { return toPersistentId(); } - @Serial + @java.io.Serial private Object writeReplace() { - return new Proxy(memberName, clientType); + return new Proxy(this); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FrontendType.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FrontendType.java index b36cbbe4031..3a25df7dc48 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FrontendType.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/FrontendType.java @@ -20,7 +20,6 @@ import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; -import java.io.Serial; import java.nio.charset.StandardCharsets; import java.util.regex.Pattern; import org.eclipse.jdt.annotation.NonNull; @@ -33,11 +32,35 @@ * discerned. */ public final class FrontendType implements Comparable, WritableIdentifier { - private static final class Proxy implements Externalizable { - @Serial + interface SerialForm extends Externalizable { + @NonNull FrontendType type(); + + void setType(@NonNull FrontendType type); + + @java.io.Serial + Object readResolve(); + + @Override + default void writeExternal(final ObjectOutput out) throws IOException { + final var serialized = type().getSerialized(); + out.writeInt(serialized.length); + out.write(serialized); + } + + @Override + default void readExternal(final ObjectInput in) throws IOException { + final var serialized = new byte[in.readInt()]; + in.readFully(serialized); + // TODO: consider caching instances here + setType(new FrontendType(new String(serialized, StandardCharsets.UTF_8), serialized)); + } + } + + private static final class Proxy implements SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; - private byte[] serialized; + private FrontendType type; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to // be able to create instances via reflection. @@ -46,33 +69,30 @@ public Proxy() { // For Externalizable } - Proxy(final byte[] serialized) { - this.serialized = requireNonNull(serialized); + Proxy(final FrontendType type) { + this.type = requireNonNull(type); } @Override - public void writeExternal(final ObjectOutput out) throws IOException { - out.writeInt(serialized.length); - out.write(serialized); + public FrontendType type() { + return verifyNotNull(type); } @Override - public void readExternal(final ObjectInput in) throws IOException { - serialized = new byte[in.readInt()]; - in.readFully(serialized); + public void setType(final FrontendType type) { + this.type = requireNonNull(type); } - @Serial - private Object readResolve() { - // TODO: consider caching instances here - return new FrontendType(new String(serialized, StandardCharsets.UTF_8), serialized); + @Override + public Object readResolve() { + return type(); } } + @java.io.Serial + private static final long serialVersionUID = 1L; private static final String SIMPLE_STRING_REGEX = "^[a-zA-Z0-9-_.*+:=,!~';]+$"; private static final Pattern SIMPLE_STRING_PATTERN = Pattern.compile(SIMPLE_STRING_REGEX); - @Serial - private static final long serialVersionUID = 1L; private final @NonNull String name; @@ -158,8 +178,8 @@ private byte[] getSerialized() { return local; } - @Serial + @java.io.Serial Object writeReplace() { - return new Proxy(getSerialized()); + return new Proxy(this); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/HI.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/HI.java new file mode 100644 index 00000000000..a0d4795ac67 --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/HI.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.concepts; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Serialization proxy for {@link LocalHistoryIdentifier}. + */ +final class HI implements LocalHistoryIdentifier.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private LocalHistoryIdentifier identifier; + + @SuppressWarnings("checkstyle:RedundantModifier") + public HI() { + // for Externalizable + } + + HI(final LocalHistoryIdentifier identifier) { + this.identifier = requireNonNull(identifier); + } + + @Override + public LocalHistoryIdentifier identifier() { + return verifyNotNull(identifier); + } + + @Override + public void setIdentifier(final LocalHistoryIdentifier identifier) { + this.identifier = requireNonNull(identifier); + } + + @Override + public Object readResolve() { + return identifier(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/LocalHistoryIdentifier.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/LocalHistoryIdentifier.java index e6050e76c50..0e70edc76fb 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/LocalHistoryIdentifier.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/LocalHistoryIdentifier.java @@ -7,6 +7,7 @@ */ package org.opendaylight.controller.cluster.access.concepts; +import static com.google.common.base.Verify.verifyNotNull; import static java.util.Objects.requireNonNull; import com.google.common.base.MoreObjects; @@ -16,7 +17,6 @@ import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; -import java.io.Serial; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.concepts.WritableIdentifier; import org.opendaylight.yangtools.concepts.WritableObjects; @@ -28,22 +28,47 @@ * - an unsigned long cookie, assigned by the client and meaningless on the backend, which just reflects it back */ public final class LocalHistoryIdentifier implements WritableIdentifier { - /* - * Implementation note: cookie is currently required only for module-based sharding, which is implemented as part - * of normal DataBroker interfaces. For DOMDataTreeProducer cookie will always be zero, hence - * we may end up not needing cookie at all. + /** + * Serialized form of {@link LocalHistoryIdentifier}. * - * We use WritableObjects.writeLongs() to output historyId and cookie (in that order). If we - * end up not needing the cookie at all, we can switch to writeLong() and use zero flags for - * compatibility. + * @implNote + * cookie is currently required only for module-based sharding, which is implemented as part of normal + * DataBroker interfaces. For DOMDataTreeProducer cookie will always be zero, hence we may end up not needing + * cookie at all. + * We use WritableObjects.writeLongs() to output historyId and cookie (in that order). If we end up not needing + * the cookie at all, we can switch to writeLong() and use zero flags for compatibility. */ - private static final class Proxy implements Externalizable { - @Serial + interface SerialForm extends Externalizable { + @NonNull LocalHistoryIdentifier identifier(); + + void setIdentifier(@NonNull LocalHistoryIdentifier identifier); + + @java.io.Serial + Object readResolve(); + + @Override + default void writeExternal(final ObjectOutput out) throws IOException { + final var id = identifier(); + id.getClientId().writeTo(out); + WritableObjects.writeLongs(out, id.getHistoryId(), id.getCookie()); + } + + @Override + default void readExternal(final ObjectInput in) throws IOException { + final var clientId = ClientIdentifier.readFrom(in); + + final byte header = WritableObjects.readLongHeader(in); + final var historyId = WritableObjects.readFirstLong(in, header); + final var cookie = WritableObjects.readSecondLong(in, header); + setIdentifier(new LocalHistoryIdentifier(clientId, historyId, cookie)); + } + } + + private static final class Proxy implements SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; - private ClientIdentifier clientId; - private long historyId; - private long cookie; + private LocalHistoryIdentifier identifier; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to // be able to create instances via reflection. @@ -52,34 +77,27 @@ public Proxy() { // For Externalizable } - Proxy(final ClientIdentifier frontendId, final long historyId, final long cookie) { - clientId = requireNonNull(frontendId); - this.historyId = historyId; - this.cookie = cookie; + Proxy(final LocalHistoryIdentifier identifier) { + this.identifier = requireNonNull(identifier); } @Override - public void writeExternal(final ObjectOutput out) throws IOException { - clientId.writeTo(out); - WritableObjects.writeLongs(out, historyId, cookie); + public LocalHistoryIdentifier identifier() { + return verifyNotNull(identifier); } @Override - public void readExternal(final ObjectInput in) throws IOException { - clientId = ClientIdentifier.readFrom(in); - - final byte header = WritableObjects.readLongHeader(in); - historyId = WritableObjects.readFirstLong(in, header); - cookie = WritableObjects.readSecondLong(in, header); + public void setIdentifier(final LocalHistoryIdentifier identifier) { + this.identifier = requireNonNull(identifier); } - @Serial - private Object readResolve() { - return new LocalHistoryIdentifier(clientId, historyId, cookie); + @Override + public Object readResolve() { + return identifier(); } } - @Serial + @java.io.Serial private static final long serialVersionUID = 1L; private final @NonNull ClientIdentifier clientId; @@ -149,8 +167,8 @@ public String toString() { .add("cookie", Long.toUnsignedString(cookie, 16)).toString(); } - @Serial + @java.io.Serial private Object writeReplace() { - return new Proxy(clientId, historyId, cookie); + return new Proxy(this); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/MN.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/MN.java new file mode 100644 index 00000000000..83ef1e59ba0 --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/MN.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.concepts; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Serialization proxy for {@link MemberName}. + */ +final class MN implements MemberName.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private MemberName name; + + @SuppressWarnings("checkstyle:RedundantModifier") + public MN() { + // for Externalizable + } + + MN(final MemberName name) { + this.name = requireNonNull(name); + } + + @Override + public MemberName name() { + return verifyNotNull(name); + } + + @Override + public void setName(final MemberName name) { + this.name = requireNonNull(name); + } + + @Override + public Object readResolve() { + return name(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/MemberName.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/MemberName.java index f26df831836..41a91360757 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/MemberName.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/MemberName.java @@ -20,7 +20,6 @@ import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; -import java.io.Serial; import java.nio.charset.StandardCharsets; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.concepts.WritableIdentifier; @@ -29,11 +28,35 @@ * Type-safe encapsulation of a cluster member name. */ public final class MemberName implements Comparable, WritableIdentifier { - private static final class Proxy implements Externalizable { - @Serial + interface SerialForm extends Externalizable { + @NonNull MemberName name(); + + void setName(@NonNull MemberName name); + + @java.io.Serial + Object readResolve(); + + @Override + default void writeExternal(final ObjectOutput out) throws IOException { + final var serialized = name().getSerialized(); + out.writeInt(serialized.length); + out.write(serialized); + } + + @Override + default void readExternal(final ObjectInput in) throws IOException { + final var serialized = new byte[in.readInt()]; + in.readFully(serialized); + // TODO: consider caching instances here + setName(new MemberName(new String(serialized, StandardCharsets.UTF_8), serialized)); + } + } + + private static final class Proxy implements SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; - private byte[] serialized; + private MemberName name; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to // be able to create instances via reflection. @@ -42,30 +65,27 @@ public Proxy() { // For Externalizable } - Proxy(final byte[] serialized) { - this.serialized = requireNonNull(serialized); + Proxy(final MemberName name) { + this.name = requireNonNull(name); } @Override - public void writeExternal(final ObjectOutput out) throws IOException { - out.writeInt(serialized.length); - out.write(serialized); + public MemberName name() { + return verifyNotNull(name); } @Override - public void readExternal(final ObjectInput in) throws IOException { - serialized = new byte[in.readInt()]; - in.readFully(serialized); + public void setName(final MemberName name) { + this.name = requireNonNull(name); } - @Serial - private Object readResolve() { - // TODO: consider caching instances here - return new MemberName(new String(serialized, StandardCharsets.UTF_8), serialized); + @Override + public Object readResolve() { + return name(); } } - @Serial + @java.io.Serial private static final long serialVersionUID = 1L; private final @NonNull String name; @@ -141,8 +161,8 @@ private byte[] getSerialized() { return local; } - @Serial + @java.io.Serial Object writeReplace() { - return new Proxy(getSerialized()); + return new Proxy(this); } } 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 6ee547fc93e..86c91ef9553 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 @@ -13,12 +13,17 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.base.MoreObjects; import com.google.common.base.MoreObjects.ToStringHelper; -import java.io.Serial; +import java.io.DataInput; +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; import java.io.Serializable; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.yangtools.concepts.Immutable; import org.opendaylight.yangtools.concepts.WritableIdentifier; +import org.opendaylight.yangtools.concepts.WritableObjects; /** * An abstract concept of a Message. This class cannot be instantiated directly, use its specializations {@link Request} @@ -50,9 +55,46 @@ * @param Target identifier type * @param Message type */ -public abstract class Message> implements Immutable, - Serializable { - @Serial +public abstract class Message> + implements Immutable, Serializable { + /** + * Externalizable proxy for use with {@link Message} subclasses. + * + * @param Target identifier type + * @param Message class + */ + protected interface SerialForm> extends Externalizable { + + @NonNull C message(); + + void setMessage(@NonNull C message); + + @Override + default void writeExternal(final ObjectOutput out) throws IOException { + final var message = message(); + message.getTarget().writeTo(out); + WritableObjects.writeLong(out, message.getSequence()); + writeExternal(out, message); + } + + void writeExternal(@NonNull ObjectOutput out, @NonNull C msg) throws IOException; + + @Override + default void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { + final var target = verifyNotNull(readTarget(in)); + final var sequence = WritableObjects.readLong(in); + setMessage(verifyNotNull(readExternal(in, target, sequence))); + } + + @NonNull C readExternal(@NonNull ObjectInput in, @NonNull T target, long sequence) + throws IOException, ClassNotFoundException; + + Object readResolve(); + + @NonNull T readTarget(@NonNull DataInput in) throws IOException; + } + + @java.io.Serial private static final long serialVersionUID = 1L; private final @NonNull ABIVersion version; @@ -150,9 +192,9 @@ public final String toString() { * @param reqVersion Requested ABI version * @return Proxy for this object */ - abstract @NonNull AbstractMessageProxy externalizableProxy(@NonNull ABIVersion reqVersion); + protected abstract @NonNull SerialForm externalizableProxy(@NonNull ABIVersion reqVersion); - @Serial + @java.io.Serial protected final Object writeReplace() { return externalizableProxy(version); } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RE.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RE.java new file mode 100644 index 00000000000..455e00e5581 --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RE.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.concepts; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Serialization proxy for {@link RequestEnvelope}. + */ +final class RE implements RequestEnvelope.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private RequestEnvelope envelope; + + @SuppressWarnings("checkstyle:RedundantModifier") + public RE() { + // for Externalizable + } + + RE(final RequestEnvelope envelope) { + this.envelope = requireNonNull(envelope); + } + + @Override + public RequestEnvelope envelope() { + return verifyNotNull(envelope); + } + + @Override + public void setEnvelope(final RequestEnvelope envelope) { + this.envelope = requireNonNull(envelope); + } + + @Override + public Object readResolve() { + return envelope(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/Request.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/Request.java index d39617cf77a..97ce498bda2 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/Request.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/Request.java @@ -10,8 +10,12 @@ import static java.util.Objects.requireNonNull; import akka.actor.ActorRef; +import akka.serialization.JavaSerializer; +import akka.serialization.Serialization; import com.google.common.base.MoreObjects.ToStringHelper; -import java.io.Serial; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.yangtools.concepts.WritableIdentifier; @@ -24,7 +28,25 @@ * @param Message type */ public abstract class Request> extends Message { - @Serial + protected interface SerialForm> + extends Message.SerialForm { + @Override + default C readExternal(final ObjectInput in, final T target, final long sequence) + throws ClassNotFoundException, IOException { + return readExternal(in, target, sequence, + JavaSerializer.currentSystem().value().provider().resolveActorRef((String) in.readObject())); + } + + @NonNull C readExternal(@NonNull ObjectInput in, @NonNull T target, long sequence, @NonNull ActorRef replyTo) + throws IOException; + + @Override + default void writeExternal(final ObjectOutput out, final C msg) throws IOException { + out.writeObject(Serialization.serializedActorPath(msg.getReplyTo())); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; private final @NonNull ActorRef replyTo; @@ -62,5 +84,5 @@ protected ToStringHelper addToStringAttributes(final ToStringHelper toStringHelp } @Override - protected abstract AbstractRequestProxy externalizableProxy(ABIVersion version); + protected abstract SerialForm externalizableProxy(ABIVersion version); } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RequestEnvelope.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RequestEnvelope.java index 4dac0b0330d..5648846fd93 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RequestEnvelope.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RequestEnvelope.java @@ -8,10 +8,18 @@ package org.opendaylight.controller.cluster.access.concepts; import akka.actor.ActorRef; -import java.io.Serial; +import java.io.ObjectInput; public final class RequestEnvelope extends Envelope> { - @Serial + interface SerialForm extends Envelope.SerialForm, RequestEnvelope> { + @Override + default RequestEnvelope readExternal(final ObjectInput in, final long sessionId, final long txSequence, + final Request message) { + return new RequestEnvelope(message, sessionId, txSequence); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; public RequestEnvelope(final Request message, final long sessionId, final long txSequence) { @@ -19,7 +27,12 @@ public RequestEnvelope(final Request message, final long sessionId, final } @Override - RequestEnvelopeProxy createProxy() { + RE createProxy() { + return new RE(this); + } + + @Override + RequestEnvelopeProxy legacyProxy() { return new RequestEnvelopeProxy(this); } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RequestEnvelopeProxy.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RequestEnvelopeProxy.java index 21b99807af7..ce9b1f72fe7 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RequestEnvelopeProxy.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RequestEnvelopeProxy.java @@ -7,10 +7,9 @@ */ package org.opendaylight.controller.cluster.access.concepts; -import java.io.Serial; - -final class RequestEnvelopeProxy extends AbstractEnvelopeProxy> { - @Serial +final class RequestEnvelopeProxy extends AbstractEnvelopeProxy, RequestEnvelope> + implements RequestEnvelope.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to @@ -23,9 +22,4 @@ public RequestEnvelopeProxy() { RequestEnvelopeProxy(final RequestEnvelope envelope) { super(envelope); } - - @Override - RequestEnvelope createEnvelope(final Request message, final long sessionId, final long txSequence) { - return new RequestEnvelope(message, sessionId, txSequence); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RequestException.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RequestException.java index 41bfd13dd20..d1120c61ef4 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RequestException.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RequestException.java @@ -9,14 +9,13 @@ import static java.util.Objects.requireNonNull; -import java.io.Serial; import org.eclipse.jdt.annotation.NonNull; /** * A failure cause behind a {@link RequestFailure} to process a {@link Request}. */ public abstract class RequestException extends Exception { - @Serial + @java.io.Serial private static final long serialVersionUID = 1L; protected RequestException(final @NonNull String message) { diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RequestFailure.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RequestFailure.java index c30269f63e1..7204912669c 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RequestFailure.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RequestFailure.java @@ -10,7 +10,9 @@ import static java.util.Objects.requireNonNull; import com.google.common.base.MoreObjects.ToStringHelper; -import java.io.Serial; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.yangtools.concepts.WritableIdentifier; @@ -23,7 +25,28 @@ */ public abstract class RequestFailure> extends Response { - @Serial + /** + * Externalizable proxy for use with {@link RequestFailure} subclasses. + * + * @param Target identifier type + */ + protected interface SerialForm> + extends Message.SerialForm { + @Override + default C readExternal(final ObjectInput in, final T target, final long sequence) + throws IOException, ClassNotFoundException { + return createFailure(target, sequence, (RequestException) in.readObject()); + } + + @Override + default void writeExternal(final ObjectOutput out, final C msg) throws IOException { + out.writeObject(msg.getCause()); + } + + @NonNull C createFailure(@NonNull T target, long sequence, @NonNull RequestException failureCause); + } + + @java.io.Serial private static final long serialVersionUID = 1L; private final @NonNull RequestException cause; @@ -63,5 +86,5 @@ protected ToStringHelper addToStringAttributes(final ToStringHelper toStringHelp } @Override - protected abstract AbstractRequestFailureProxy externalizableProxy(ABIVersion version); + protected abstract SerialForm externalizableProxy(ABIVersion version); } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RequestSuccess.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RequestSuccess.java index 7542c4cb364..f7e59ed1e65 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RequestSuccess.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RequestSuccess.java @@ -7,7 +7,8 @@ */ package org.opendaylight.controller.cluster.access.concepts; -import java.io.Serial; +import java.io.IOException; +import java.io.ObjectOutput; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.yangtools.concepts.WritableIdentifier; @@ -17,19 +18,24 @@ * * @param Target identifier type */ -public abstract class RequestSuccess> extends - Response { - @Serial +public abstract class RequestSuccess> + extends Response { + protected interface SerialForm> + extends Response.SerialForm { + @Override + default void writeExternal(final ObjectOutput out, final C msg) throws IOException { + // Defaults to no-op + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; - protected RequestSuccess(final @NonNull C success, final @NonNull ABIVersion version) { + protected RequestSuccess(final @NonNull C success, final @NonNull ABIVersion version) { super(success, version); } protected RequestSuccess(final @NonNull T target, final long sequence) { super(target, sequence); } - - @Override - protected abstract AbstractSuccessProxy externalizableProxy(ABIVersion version); } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/Response.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/Response.java index 7f74e39683f..a41fa01db99 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/Response.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/Response.java @@ -7,7 +7,6 @@ */ package org.opendaylight.controller.cluster.access.concepts; -import java.io.Serial; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.yangtools.concepts.WritableIdentifier; @@ -21,7 +20,12 @@ * @param Message type */ public abstract class Response> extends Message { - @Serial + protected interface SerialForm> + extends Message.SerialForm { + + } + + @java.io.Serial private static final long serialVersionUID = 1L; Response(final @NonNull T target, final long sequence) { @@ -31,7 +35,4 @@ public abstract class Response externalizableProxy(ABIVersion version); } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/ResponseEnvelope.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/ResponseEnvelope.java index 90fe7beb11e..50d1e7434ce 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/ResponseEnvelope.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/ResponseEnvelope.java @@ -7,18 +7,39 @@ */ package org.opendaylight.controller.cluster.access.concepts; -import com.google.common.base.Preconditions; -import java.io.Serial; +import static com.google.common.base.Preconditions.checkArgument; + +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.yangtools.concepts.WritableObjects; public abstract class ResponseEnvelope> extends Envelope { - @Serial + interface SerialForm, E extends ResponseEnvelope> extends Envelope.SerialForm { + @Override + default void writeExternal(final ObjectOutput out, final @NonNull E envelope) throws IOException { + Envelope.SerialForm.super.writeExternal(out, envelope); + WritableObjects.writeLong(out, envelope.getExecutionTimeNanos()); + } + + @Override + default E readExternal(final ObjectInput in, final long sessionId, final long txSequence, final T message) + throws IOException { + return readExternal(in, sessionId, txSequence, message, WritableObjects.readLong(in)); + } + + E readExternal(ObjectInput in, long sessionId, long txSequence, T message, long executionTimeNanos); + } + + @java.io.Serial private static final long serialVersionUID = 1L; private final long executionTimeNanos; ResponseEnvelope(final T message, final long sessionId, final long txSequence, final long executionTimeNanos) { super(message, sessionId, txSequence); - Preconditions.checkArgument(executionTimeNanos >= 0); + checkArgument(executionTimeNanos >= 0, "Negative executionTime"); this.executionTimeNanos = executionTimeNanos; } @@ -31,7 +52,4 @@ public abstract class ResponseEnvelope> extends Envelop public final long getExecutionTimeNanos() { return executionTimeNanos; } - - @Override - abstract AbstractResponseEnvelopeProxy createProxy(); } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RetiredGenerationException.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RetiredGenerationException.java index cc0c6d0e16c..3f1f71d17e8 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RetiredGenerationException.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RetiredGenerationException.java @@ -7,14 +7,12 @@ */ package org.opendaylight.controller.cluster.access.concepts; -import java.io.Serial; - /** * General error raised when the recipient of a {@link Request} determines that the request contains * a {@link ClientIdentifier} which corresponds to an outdated generation. */ public final class RetiredGenerationException extends RequestException { - @Serial + @java.io.Serial private static final long serialVersionUID = 1L; public RetiredGenerationException(final long originatingGeneration, final long newGeneration) { diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RuntimeRequestException.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RuntimeRequestException.java index 713c413e529..3f886a85102 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RuntimeRequestException.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RuntimeRequestException.java @@ -11,13 +11,12 @@ import static java.util.Objects.requireNonNull; import com.google.common.base.Strings; -import java.io.Serial; /** * General error raised when the recipient of a {@link Request} fails to process a request. */ public final class RuntimeRequestException extends RequestException { - @Serial + @java.io.Serial private static final long serialVersionUID = 1L; public RuntimeRequestException(final String message, final Throwable cause) { diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/SE.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/SE.java new file mode 100644 index 00000000000..59615a474cd --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/SE.java @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.concepts; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +import java.io.ObjectInput; + +/** + * Serialization proxy for {@link SuccessEnvelope}. + */ +final class SE implements SuccessEnvelope.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private SuccessEnvelope envelope; + + @SuppressWarnings("checkstyle:RedundantModifier") + public SE() { + // for Externalizable + } + + SE(final SuccessEnvelope envelope) { + this.envelope = requireNonNull(envelope); + } + + @Override + public SuccessEnvelope envelope() { + return verifyNotNull(envelope); + } + + @Override + public void setEnvelope(final SuccessEnvelope envelope) { + this.envelope = requireNonNull(envelope); + } + + @Override + public SuccessEnvelope readExternal(final ObjectInput in, final long sessionId, final long txSequence, + final RequestSuccess message, final long executionTimeNanos) { + return new SuccessEnvelope(message, sessionId, txSequence, executionTimeNanos); + } + + @Override + public Object readResolve() { + return envelope(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/SuccessEnvelope.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/SuccessEnvelope.java index bf35c4931f0..0c6ed7a1123 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/SuccessEnvelope.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/SuccessEnvelope.java @@ -7,10 +7,18 @@ */ package org.opendaylight.controller.cluster.access.concepts; -import java.io.Serial; +import java.io.ObjectInput; public final class SuccessEnvelope extends ResponseEnvelope> { - @Serial + interface SerialForm extends ResponseEnvelope.SerialForm, SuccessEnvelope> { + @Override + default SuccessEnvelope readExternal(final ObjectInput in, final long sessionId, final long txSequence, + final RequestSuccess message, final long executionTimeNanos) { + return new SuccessEnvelope(message, sessionId, txSequence, executionTimeNanos); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; public SuccessEnvelope(final RequestSuccess message, final long sessionId, final long txSequence, @@ -19,7 +27,13 @@ public SuccessEnvelope(final RequestSuccess message, final long sessionId, } @Override - SuccessEnvelopeProxy createProxy() { + SE createProxy() { + return new SE(this); + } + + @Override + SuccessEnvelopeProxy legacyProxy() { return new SuccessEnvelopeProxy(this); } + } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/SuccessEnvelopeProxy.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/SuccessEnvelopeProxy.java index 76adbb193f0..20b46fcb501 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/SuccessEnvelopeProxy.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/SuccessEnvelopeProxy.java @@ -7,10 +7,9 @@ */ package org.opendaylight.controller.cluster.access.concepts; -import java.io.Serial; - -final class SuccessEnvelopeProxy extends AbstractResponseEnvelopeProxy> { - @Serial +final class SuccessEnvelopeProxy extends AbstractResponseEnvelopeProxy, SuccessEnvelope> + implements SuccessEnvelope.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to @@ -23,10 +22,4 @@ public SuccessEnvelopeProxy() { SuccessEnvelopeProxy(final SuccessEnvelope envelope) { super(envelope); } - - @Override - ResponseEnvelope> createEnvelope(final RequestSuccess message, final long sessionId, - final long txSequence, final long executionTimeNanos) { - return new SuccessEnvelope(message, sessionId, txSequence, executionTimeNanos); - } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/TI.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/TI.java new file mode 100644 index 00000000000..653f4fce45b --- /dev/null +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/TI.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.access.concepts; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +/** + * Serialization proxy for {@link TransactionIdentifier}. + */ +final class TI implements TransactionIdentifier.SerialForm { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private TransactionIdentifier identifier; + + @SuppressWarnings("checkstyle:RedundantModifier") + public TI() { + // for Externalizable + } + + TI(final TransactionIdentifier identifier) { + this.identifier = requireNonNull(identifier); + } + + @Override + public TransactionIdentifier identifier() { + return verifyNotNull(identifier); + } + + @Override + public void setIdentifier(final TransactionIdentifier identifier) { + this.identifier = requireNonNull(identifier); + } + + @Override + public Object readResolve() { + return identifier(); + } +} diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/TransactionIdentifier.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/TransactionIdentifier.java index 29edfe8fda0..b03e2cd5c34 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/TransactionIdentifier.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/TransactionIdentifier.java @@ -7,6 +7,7 @@ */ package org.opendaylight.controller.cluster.access.concepts; +import static com.google.common.base.Verify.verifyNotNull; import static java.util.Objects.requireNonNull; import java.io.DataInput; @@ -15,7 +16,6 @@ import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; -import java.io.Serial; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.concepts.WritableIdentifier; import org.opendaylight.yangtools.concepts.WritableObjects; @@ -24,12 +24,32 @@ * Globally-unique identifier of a transaction. */ public final class TransactionIdentifier implements WritableIdentifier { - private static final class Proxy implements Externalizable { - @Serial + interface SerialForm extends Externalizable { + @NonNull TransactionIdentifier identifier(); + + void setIdentifier(@NonNull TransactionIdentifier identifier); + + @java.io.Serial + Object readResolve(); + + @Override + default void readExternal(final ObjectInput in) throws IOException { + setIdentifier(new TransactionIdentifier(LocalHistoryIdentifier.readFrom(in), WritableObjects.readLong(in))); + } + + @Override + default void writeExternal(final ObjectOutput out) throws IOException { + final var id = identifier(); + id.getHistoryId().writeTo(out); + WritableObjects.writeLong(out, id.getTransactionId()); + } + } + + private static final class Proxy implements SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; - private LocalHistoryIdentifier historyId; - private long transactionId; + private TransactionIdentifier identifier; // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to // be able to create instances via reflection. @@ -38,30 +58,27 @@ public Proxy() { // For Externalizable } - Proxy(final LocalHistoryIdentifier historyId, final long transactionId) { - this.historyId = requireNonNull(historyId); - this.transactionId = transactionId; + Proxy(final TransactionIdentifier identifier) { + this.identifier = requireNonNull(identifier); } @Override - public void writeExternal(final ObjectOutput out) throws IOException { - historyId.writeTo(out); - WritableObjects.writeLong(out, transactionId); + public @NonNull TransactionIdentifier identifier() { + return verifyNotNull(identifier); } @Override - public void readExternal(final ObjectInput in) throws IOException { - historyId = LocalHistoryIdentifier.readFrom(in); - transactionId = WritableObjects.readLong(in); + public void setIdentifier(final TransactionIdentifier identifier) { + this.identifier = requireNonNull(identifier); } - @Serial - private Object readResolve() { - return new TransactionIdentifier(historyId, transactionId); + @Override + public Object readResolve() { + return identifier(); } } - @Serial + @java.io.Serial private static final long serialVersionUID = 1L; private final @NonNull LocalHistoryIdentifier historyId; @@ -120,8 +137,8 @@ public String toString() { return toShortString(); } - @Serial + @java.io.Serial private Object writeReplace() { - return new Proxy(historyId, transactionId); + return new Proxy(this); } } diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/UnsupportedRequestException.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/UnsupportedRequestException.java index 134a0a94f26..1de266d2851 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/UnsupportedRequestException.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/UnsupportedRequestException.java @@ -7,14 +7,12 @@ */ package org.opendaylight.controller.cluster.access.concepts; -import java.io.Serial; - /** * General error raised when the recipient of a {@link Request} determines that it does not know how to handle * the request. */ public final class UnsupportedRequestException extends RequestException { - @Serial + @java.io.Serial private static final long serialVersionUID = 1L; public UnsupportedRequestException(final Request request) { diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ConnectClientSuccessTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ConnectClientSuccessTest.java index 82d51e86a7e..3f51399aba5 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ConnectClientSuccessTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ConnectClientSuccessTest.java @@ -74,8 +74,13 @@ public void testGetMaxMessages() { @Test public void cloneAsVersionTest() { - final ConnectClientSuccess clone = OBJECT.cloneAsVersion(ABIVersion.BORON); - assertEquals(OBJECT, clone); + final var clone = OBJECT.cloneAsVersion(ABIVersion.BORON); + assertEquals(OBJECT.getSequence(), clone.getSequence()); + assertEquals(OBJECT.getTarget(), clone.getTarget()); + assertEquals(OBJECT.getAlternates(), clone.getAlternates()); + assertEquals(OBJECT.getBackend(), clone.getBackend()); + assertEquals(OBJECT.getDataTree(), clone.getDataTree()); + assertEquals(OBJECT.getMaxMessages(), clone.getMaxMessages()); } @Test diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionSuccessTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionSuccessTest.java index f7777b30499..9713794ef5e 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionSuccessTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionSuccessTest.java @@ -32,7 +32,10 @@ public void getExistsTest() { @Test public void cloneAsVersionTest() { - assertEquals(OBJECT, OBJECT.cloneAsVersion(ABIVersion.BORON)); + final var clone = OBJECT.cloneAsVersion(ABIVersion.BORON); + assertEquals(OBJECT.getSequence(), clone.getSequence()); + assertEquals(OBJECT.getTarget(), clone.getTarget()); + assertEquals(OBJECT.getExists(), clone.getExists()); } @Test diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryFailureTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryFailureTest.java index 54b63eeaa38..ecec96df148 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryFailureTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryFailureTest.java @@ -7,7 +7,7 @@ */ package org.opendaylight.controller.cluster.access.commands; -import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.Assert.assertEquals; import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; @@ -21,7 +21,9 @@ public LocalHistoryFailureTest() { @Test public void cloneAsVersionTest() { - final LocalHistoryFailure clone = OBJECT.cloneAsVersion(ABIVersion.current()); - assertEquals(OBJECT, clone); + final var clone = OBJECT.cloneAsVersion(ABIVersion.BORON); + assertEquals(OBJECT.getSequence(), clone.getSequence()); + assertEquals(OBJECT.getTarget(), clone.getTarget()); + assertEquals(OBJECT.getCause(), clone.getCause()); } } \ No newline at end of file diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionRequestEmptyTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionRequestEmptyTest.java index ce1b0d98b77..f6d72cc7d03 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionRequestEmptyTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionRequestEmptyTest.java @@ -45,7 +45,11 @@ public void addToStringAttributesTest() { @Test public void cloneAsVersionTest() { - assertEquals(OBJECT, OBJECT.cloneAsVersion(ABIVersion.BORON)); + final var clone = OBJECT.cloneAsVersion(ABIVersion.BORON); + assertEquals(OBJECT.getSequence(), clone.getSequence()); + assertEquals(OBJECT.getTarget(), clone.getTarget()); + assertEquals(OBJECT.getReplyTo(), clone.getReplyTo()); + assertEquals(OBJECT.getPersistenceProtocol(), clone.getPersistenceProtocol()); } @Override diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionRequestTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionRequestTest.java index ad85c0f3ff5..0d282fe60f7 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionRequestTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionRequestTest.java @@ -59,7 +59,12 @@ public void addToStringAttributesTest() { @Test public void cloneAsVersionTest() { - assertEquals(OBJECT, OBJECT.cloneAsVersion(ABIVersion.BORON)); + final var clone = OBJECT.cloneAsVersion(ABIVersion.BORON); + assertEquals(OBJECT.getSequence(), clone.getSequence()); + assertEquals(OBJECT.getTarget(), clone.getTarget()); + assertEquals(OBJECT.getReplyTo(), clone.getReplyTo()); + assertEquals(OBJECT.getModifications(), clone.getModifications()); + assertEquals(OBJECT.getPersistenceProtocol(), clone.getPersistenceProtocol()); } @Override diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessNoDataTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessNoDataTest.java index c0eced7a776..4ab7740356f 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessNoDataTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessNoDataTest.java @@ -28,8 +28,10 @@ public void getDataTest() { @Test public void cloneAsVersionTest() { - final ReadTransactionSuccess clone = OBJECT.cloneAsVersion(ABIVersion.BORON); - assertEquals(OBJECT, clone); + final var clone = OBJECT.cloneAsVersion(ABIVersion.BORON); + assertEquals(OBJECT.getSequence(), clone.getSequence()); + assertEquals(OBJECT.getTarget(), clone.getTarget()); + assertEquals(OBJECT.getData(), clone.getData()); } @Override diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessTest.java index e9193f8d8d6..08d5b6571b0 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessTest.java @@ -35,8 +35,10 @@ public void getDataTest() { @Test public void cloneAsVersionTest() { - final ReadTransactionSuccess clone = OBJECT.cloneAsVersion(ABIVersion.BORON); - assertEquals(OBJECT, clone); + final var clone = OBJECT.cloneAsVersion(ABIVersion.BORON); + assertEquals(OBJECT.getSequence(), clone.getSequence()); + assertEquals(OBJECT.getTarget(), clone.getTarget()); + assertEquals(OBJECT.getData(), clone.getData()); } @Override diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsRequestTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsRequestTest.java index 51bd58b3f85..92bc3578140 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsRequestTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsRequestTest.java @@ -24,7 +24,10 @@ public SkipTransactionsRequestTest() { @Test public void cloneAsVersionTest() { - assertEquals(OBJECT, OBJECT.cloneAsVersion(ABIVersion.BORON)); + final var clone = OBJECT.cloneAsVersion(ABIVersion.BORON); + assertEquals(OBJECT.getSequence(), clone.getSequence()); + assertEquals(OBJECT.getTarget(), clone.getTarget()); + assertEquals(OBJECT.getReplyTo(), clone.getReplyTo()); } @Override 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 c4c3f0767e5..67048c1c8d0 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,8 @@ public SkipTransactionsResponseTest() { @Test public void cloneAsVersionTest() { - final SkipTransactionsResponse clone = OBJECT.cloneAsVersion(ABIVersion.BORON); - assertEquals(OBJECT, clone); + final var clone = OBJECT.cloneAsVersion(ABIVersion.BORON); + assertEquals(OBJECT.getSequence(), clone.getSequence()); + assertEquals(OBJECT.getTarget(), clone.getTarget()); } } \ No newline at end of file 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 cf7ab56a9f0..f5aefd7d6b1 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,10 @@ public TransactionAbortRequestTest() { @Test public void cloneAsVersionTest() { - assertEquals(OBJECT, OBJECT.cloneAsVersion(ABIVersion.BORON)); + final var clone = OBJECT.cloneAsVersion(ABIVersion.BORON); + assertEquals(OBJECT.getSequence(), clone.getSequence()); + assertEquals(OBJECT.getTarget(), clone.getTarget()); + assertEquals(OBJECT.getReplyTo(), clone.getReplyTo()); } @Override 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 ee2a7198908..eace872e18f 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,8 @@ public TransactionAbortSuccessTest() { @Test public void cloneAsVersionTest() { - final TransactionAbortSuccess clone = OBJECT.cloneAsVersion(ABIVersion.BORON); - assertEquals(OBJECT, clone); + final var clone = OBJECT.cloneAsVersion(ABIVersion.BORON); + assertEquals(OBJECT.getSequence(), clone.getSequence()); + assertEquals(OBJECT.getTarget(), clone.getTarget()); } } \ No newline at end of file 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 5d073f5a405..1ffe0c0bbee 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 @@ -7,7 +7,7 @@ */ package org.opendaylight.controller.cluster.access.commands; -import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.Assert.assertEquals; import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; @@ -22,7 +22,8 @@ public TransactionCanCommitSuccessTest() { @Test public void cloneAsVersionTest() { - final TransactionCanCommitSuccess clone = OBJECT.cloneAsVersion(ABIVersion.BORON); - assertEquals(OBJECT, clone); + final var clone = OBJECT.cloneAsVersion(ABIVersion.BORON); + assertEquals(OBJECT.getSequence(), clone.getSequence()); + assertEquals(OBJECT.getTarget(), clone.getTarget()); } } \ No newline at end of file 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 f4ac48225ff..de5719f815b 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,8 @@ public TransactionCommitSuccessTest() { @Test public void cloneAsVersionTest() { - final TransactionCommitSuccess clone = OBJECT.cloneAsVersion(ABIVersion.BORON); - assertEquals(OBJECT, clone); + final var clone = OBJECT.cloneAsVersion(ABIVersion.BORON); + 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 8e52cc976fd..122ce4ce109 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,10 @@ public TransactionDoCommitRequestTest() { @Test public void cloneAsVersionTest() { - assertEquals(OBJECT, OBJECT.cloneAsVersion(ABIVersion.BORON)); + final var clone = OBJECT.cloneAsVersion(ABIVersion.BORON); + assertEquals(OBJECT.getSequence(), clone.getSequence()); + assertEquals(OBJECT.getTarget(), clone.getTarget()); + assertEquals(OBJECT.getReplyTo(), clone.getReplyTo()); } @Override 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 ab50f4ad297..893883e2d70 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 @@ -7,7 +7,7 @@ */ package org.opendaylight.controller.cluster.access.commands; -import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.Assert.assertEquals; import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; @@ -21,7 +21,9 @@ public TransactionFailureTest() { @Test public void cloneAsVersionTest() { - final TransactionFailure clone = OBJECT.cloneAsVersion(ABIVersion.current()); - assertEquals(OBJECT, clone); + final var clone = OBJECT.cloneAsVersion(ABIVersion.BORON); + assertEquals(OBJECT.getSequence(), clone.getSequence()); + assertEquals(OBJECT.getTarget(), clone.getTarget()); + assertEquals(OBJECT.getCause(), clone.getCause()); } } \ No newline at end of file diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitRequestTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitRequestTest.java index e9dd25c0363..8170986b71a 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitRequestTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitRequestTest.java @@ -22,7 +22,10 @@ public TransactionPreCommitRequestTest() { @Test public void cloneAsVersionTest() { - assertEquals(OBJECT, OBJECT.cloneAsVersion(ABIVersion.BORON)); + final var clone = OBJECT.cloneAsVersion(ABIVersion.BORON); + assertEquals(OBJECT.getSequence(), clone.getSequence()); + assertEquals(OBJECT.getTarget(), clone.getTarget()); + assertEquals(OBJECT.getReplyTo(), clone.getReplyTo()); } @Override diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitSuccessTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitSuccessTest.java index 505036f8300..bc12bb419f7 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitSuccessTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPreCommitSuccessTest.java @@ -22,7 +22,8 @@ public TransactionPreCommitSuccessTest() { @Test public void cloneAsVersionTest() { - final TransactionPreCommitSuccess clone = OBJECT.cloneAsVersion(ABIVersion.BORON); - assertEquals(OBJECT, clone); + final var clone = OBJECT.cloneAsVersion(ABIVersion.BORON); + assertEquals(OBJECT.getSequence(), clone.getSequence()); + assertEquals(OBJECT.getTarget(), clone.getTarget()); } } \ No newline at end of file diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeRequestTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeRequestTest.java index 087b515816d..507a0f1d002 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeRequestTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeRequestTest.java @@ -22,7 +22,10 @@ public TransactionPurgeRequestTest() { @Test public void cloneAsVersionTest() { - assertEquals(OBJECT, OBJECT.cloneAsVersion(ABIVersion.BORON)); + final var clone = OBJECT.cloneAsVersion(ABIVersion.BORON); + assertEquals(OBJECT.getSequence(), clone.getSequence()); + assertEquals(OBJECT.getTarget(), clone.getTarget()); + assertEquals(OBJECT.getReplyTo(), clone.getReplyTo()); } @Override diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeResponseTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeResponseTest.java index e44f8521cde..e482244547b 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeResponseTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/TransactionPurgeResponseTest.java @@ -21,7 +21,8 @@ public TransactionPurgeResponseTest() { @Test public void cloneAsVersionTest() { - final TransactionPurgeResponse clone = OBJECT.cloneAsVersion(ABIVersion.BORON); - assertEquals(OBJECT, clone); + final var clone = OBJECT.cloneAsVersion(ABIVersion.BORON); + assertEquals(OBJECT.getSequence(), clone.getSequence()); + assertEquals(OBJECT.getTarget(), clone.getTarget()); } } \ No newline at end of file diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/FailureEnvelopeTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/FailureEnvelopeTest.java index 5bf162f059d..97015e9aff9 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/FailureEnvelopeTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/FailureEnvelopeTest.java @@ -11,7 +11,6 @@ import java.io.DataInput; import java.io.IOException; -import java.io.Serial; import org.apache.commons.lang.SerializationUtils; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.yangtools.concepts.WritableIdentifier; @@ -35,7 +34,7 @@ protected void doAdditionalAssertions(final FailureEnvelope envelope, final Fail } private static class MockRequestFailureProxy extends AbstractRequestFailureProxy { - @Serial + @java.io.Serial private static final long serialVersionUID = 5015515628523887221L; @SuppressWarnings("checkstyle:RedundantModifier") @@ -48,19 +47,19 @@ private MockRequestFailureProxy(final MockFailure mockFailure) { } @Override - protected MockFailure createFailure(final WritableIdentifier target, final long sequence, - final RequestException failureCause) { + public MockFailure createFailure(final WritableIdentifier target, final long sequence, + final RequestException failureCause) { return new MockFailure(target, failureCause, sequence); } @Override - protected WritableIdentifier readTarget(final DataInput in) throws IOException { + public WritableIdentifier readTarget(final DataInput in) throws IOException { return TransactionIdentifier.readFrom(in); } } private static class MockFailure extends RequestFailure { - @Serial + @java.io.Serial private static final long serialVersionUID = 1L; MockFailure(final WritableIdentifier target, final RequestException cause, final long sequence) { diff --git a/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/TransmittingTransmitQueueTest.java b/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/TransmittingTransmitQueueTest.java index b40aefb663a..cb8794cdb5c 100644 --- a/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/TransmittingTransmitQueueTest.java +++ b/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/TransmittingTransmitQueueTest.java @@ -64,7 +64,7 @@ protected int getMaxInFlightMessages() { @Override protected TransmitQueue.Transmitting createQueue() { doReturn(false).when(mockMessageSlicer).slice(any()); - backendInfo = new BackendInfo(probe.ref(), "test", 0L, ABIVersion.BORON, 3); + backendInfo = new BackendInfo(probe.ref(), "test", 0L, ABIVersion.current(), 3); return new TransmitQueue.Transmitting(new TransmitQueue.Halted(0), 0, backendInfo, now(), mockMessageSlicer); } From 972e0e51af3ea01740a3e3014b80a7f5e0e6be5f Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 30 Nov 2022 14:24:23 +0100 Subject: [PATCH 11/69] Add ABIVersion.CHLORINE_SR2 We have a fresh set of serialization proxies used when we have a version newer than MAGNESIUM. This patch defines that new version. JIRA: CONTROLLER-2051 Change-Id: Id91201652afc9dd55d4b44c73bd2d9d3fa3853d3 Signed-off-by: Robert Varga (cherry picked from commit 8d4821705d12546cb554c5c2e67f446be81a28eb) --- .../controller/cluster/access/ABIVersion.java | 13 ++++++++++++- .../controller/cluster/access/concepts/Message.java | 2 +- 2 files changed, 13 insertions(+), 2 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 716083156b3..b4278f7d790 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 @@ -76,6 +76,16 @@ public NormalizedNodeStreamVersion getStreamVersion() { return NormalizedNodeStreamVersion.MAGNESIUM; } }, + /** + * Revised ABI version. The messages remain the same as {@link #MAGNESIUM}, the serialization proxies in use are + * flat objects without any superclasses. + */ + CHLORINE_SR2(9) { + @Override + public NormalizedNodeStreamVersion getStreamVersion() { + return NormalizedNodeStreamVersion.MAGNESIUM; + } + }, /** * Version which is newer than any other version. This version exists purely for testing purposes. @@ -132,7 +142,8 @@ public short shortValue() { case 6 -> NEON_SR2; case 7 -> SODIUM_SR1; case 8 -> MAGNESIUM; - default -> throw new FutureVersionException(value, 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 86c91ef9553..54cf40a8b00 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 final long getSequence() { } return switch (toVersion) { - case BORON, NEON_SR2, SODIUM_SR1, MAGNESIUM -> verifyNotNull(cloneAsVersion(toVersion)); + case BORON, NEON_SR2, SODIUM_SR1, MAGNESIUM, CHLORINE_SR2 -> verifyNotNull(cloneAsVersion(toVersion)); default -> throw new IllegalArgumentException("Unhandled ABI version " + toVersion); }; } From 12fdfea689ed4c4910f6650cfea2113b5165c62a Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 30 Nov 2022 15:26:48 +0100 Subject: [PATCH 12/69] Assert new request sizes We now have ABIVersion.CHLORINE_SR2, use it to test serialization proxy sizes -- showing the improvements to size. JIRA: CONTROLLER-2051 Change-Id: I8c37201e531c00c5ff9d1322db911dfbcf8fd97b Signed-off-by: Robert Varga (cherry picked from commit 8cfb2b25798db8916cb5d30e65cdf1bbfd07767c) --- .../commands/AbortLocalTransactionRequestTest.java | 2 +- .../commands/AbstractLocalTransactionRequestTest.java | 4 ++-- .../commands/AbstractReadTransactionRequestTest.java | 4 ++-- .../access/commands/AbstractRequestFailureTest.java | 8 ++++++-- .../access/commands/AbstractRequestSuccessTest.java | 8 ++++++-- .../commands/AbstractTransactionRequestTest.java | 4 ++-- .../commands/AbstractTransactionSuccessTest.java | 4 ++-- .../commands/CommitLocalTransactionRequestTest.java | 2 +- .../access/commands/ConnectClientFailureTest.java | 2 +- .../access/commands/ConnectClientRequestTest.java | 2 +- .../access/commands/ConnectClientSuccessTest.java | 7 ++++--- .../access/commands/ExistsTransactionRequestTest.java | 2 +- .../access/commands/ExistsTransactionSuccessTest.java | 2 +- .../access/commands/LocalHistoryFailureTest.java | 2 +- .../access/commands/LocalHistorySuccessTest.java | 2 +- .../commands/ModifyTransactionRequestEmptyTest.java | 2 +- .../access/commands/ModifyTransactionRequestTest.java | 2 +- .../access/commands/ModifyTransactionSuccessTest.java | 2 +- .../access/commands/ReadTransactionRequestTest.java | 2 +- .../commands/ReadTransactionSuccessNoDataTest.java | 2 +- .../access/commands/ReadTransactionSuccessTest.java | 11 ++++++----- .../access/commands/SkipTransactionsRequestTest.java | 2 +- .../access/commands/SkipTransactionsResponseTest.java | 2 +- .../access/commands/TransactionAbortRequestTest.java | 2 +- .../access/commands/TransactionAbortSuccessTest.java | 2 +- .../commands/TransactionCanCommitSuccessTest.java | 2 +- .../access/commands/TransactionCommitSuccessTest.java | 2 +- .../commands/TransactionDoCommitRequestTest.java | 2 +- .../access/commands/TransactionFailureTest.java | 2 +- .../commands/TransactionPreCommitRequestTest.java | 2 +- .../commands/TransactionPreCommitSuccessTest.java | 2 +- .../access/commands/TransactionPurgeRequestTest.java | 2 +- .../access/commands/TransactionPurgeResponseTest.java | 2 +- .../cluster/access/concepts/AbstractRequestTest.java | 9 +++++++-- 34 files changed, 62 insertions(+), 47 deletions(-) diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbortLocalTransactionRequestTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbortLocalTransactionRequestTest.java index 2235e0e3326..5fa55d8062e 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbortLocalTransactionRequestTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbortLocalTransactionRequestTest.java @@ -27,7 +27,7 @@ public class AbortLocalTransactionRequestTest private static final AbortLocalTransactionRequest OBJECT = new AbortLocalTransactionRequest(TRANSACTION, ACTOR_REF); public AbortLocalTransactionRequestTest() { - super(OBJECT, 0); + super(OBJECT, 0, 0); } @Override 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 77e975e8e6f..c4e5a243d63 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 @@ -20,8 +20,8 @@ public abstract class AbstractLocalTransactionRequestTest> extends AbstractTransactionRequestTest { - protected AbstractLocalTransactionRequestTest(final T object, final int baseSize) { - super(object, baseSize); + protected AbstractLocalTransactionRequestTest(final T object, final int baseSize, final int legacySize) { + super(object, baseSize, legacySize); } @Test diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractReadTransactionRequestTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractReadTransactionRequestTest.java index df8407b3f0e..78d7fabdf7a 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractReadTransactionRequestTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractReadTransactionRequestTest.java @@ -20,8 +20,8 @@ public abstract class AbstractReadTransactionRequestTest> private final T object; private final int expectedSize; + private final int legacySize; - protected AbstractRequestFailureTest(final T object, final int baseSize) { + protected AbstractRequestFailureTest(final T object, final int baseSize, final int legacySize) { this.object = requireNonNull(object); this.expectedSize = baseSize + CAUSE_SIZE; + this.legacySize = legacySize + CAUSE_SIZE; } @Test @@ -55,7 +58,8 @@ public void isHardFailureTest() { @Test public void serializationTest() { final var bytes = SerializationUtils.serialize(object); - assertEquals(expectedSize, bytes.length); + assertEquals(legacySize, bytes.length); + assertEquals(expectedSize, SerializationUtils.serialize(object.toVersion(ABIVersion.CHLORINE_SR2)).length); @SuppressWarnings("unchecked") final var deserialize = (T) SerializationUtils.deserialize(bytes); diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractRequestSuccessTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractRequestSuccessTest.java index a13fbbc00dc..f4ff5eca0db 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractRequestSuccessTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractRequestSuccessTest.java @@ -13,6 +13,7 @@ import org.apache.commons.lang.SerializationUtils; import org.eclipse.jdt.annotation.NonNull; import org.junit.Test; +import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier; import org.opendaylight.controller.cluster.access.concepts.FrontendIdentifier; import org.opendaylight.controller.cluster.access.concepts.FrontendType; @@ -28,16 +29,19 @@ public abstract class AbstractRequestSuccessTest> private final @NonNull T object; private final int expectedSize; + private final int legacySize; - protected AbstractRequestSuccessTest(final T object, final int expectedSize) { + protected AbstractRequestSuccessTest(final T object, final int expectedSize, final int legacySize) { this.object = requireNonNull(object); this.expectedSize = expectedSize; + this.legacySize = legacySize; } @Test public void serializationTest() { final var bytes = SerializationUtils.serialize(object); - assertEquals(expectedSize, bytes.length); + assertEquals(legacySize, bytes.length); + assertEquals(expectedSize, SerializationUtils.serialize(object.toVersion(ABIVersion.CHLORINE_SR2)).length); @SuppressWarnings("unchecked") final var deserialize = (T) SerializationUtils.deserialize(bytes); diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractTransactionRequestTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractTransactionRequestTest.java index f276ac39377..b07bee69f5a 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractTransactionRequestTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractTransactionRequestTest.java @@ -29,8 +29,8 @@ public abstract class AbstractTransactionRequestTest ALTERNATES = ImmutableList.of(ACTOR_SELECTION); private static final int MAX_MESSAGES = 10; - private static final ConnectClientSuccess OBJECT = new ConnectClientSuccess( - CLIENT_IDENTIFIER, 0, ACTOR_REF, ALTERNATES, TREE, MAX_MESSAGES); + private static final ConnectClientSuccess OBJECT = new ConnectClientSuccess(CLIENT_IDENTIFIER, 0, ACTOR_REF, + ALTERNATES, TREE, MAX_MESSAGES); public ConnectClientSuccessTest() { - super(OBJECT, 432 + ACTOR_REF.path().toSerializationFormat().length()); + super(OBJECT, 146 + ACTOR_REF_SIZE, 432 + ACTOR_REF_SIZE); } @Before diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionRequestTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionRequestTest.java index 63254354fca..7f5bc7ac6ef 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionRequestTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionRequestTest.java @@ -17,7 +17,7 @@ public class ExistsTransactionRequestTest extends AbstractReadTransactionRequest ACTOR_REF, PATH, SNAPSHOT_ONLY); public ExistsTransactionRequestTest() { - super(OBJECT, 620); + super(OBJECT, 108, 620); } @Test diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionSuccessTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionSuccessTest.java index 9713794ef5e..3275ac3c412 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionSuccessTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ExistsTransactionSuccessTest.java @@ -22,7 +22,7 @@ public class ExistsTransactionSuccessTest extends AbstractTransactionSuccessTest EXISTS); public ExistsTransactionSuccessTest() { - super(OBJECT, 487); + super(OBJECT, 99, 487); } @Test diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryFailureTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryFailureTest.java index ecec96df148..70f32749509 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryFailureTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryFailureTest.java @@ -16,7 +16,7 @@ public class LocalHistoryFailureTest extends AbstractRequestFailureTest { - private static final ContainerNode NODE = Builders.containerBuilder().withNodeIdentifier( - NodeIdentifier.create(QName.create("namespace", "localName"))).build(); + private static final ContainerNode NODE = Builders.containerBuilder() + .withNodeIdentifier(NodeIdentifier.create(QName.create("namespace", "localName"))) + .build(); - private static final ReadTransactionSuccess OBJECT = new ReadTransactionSuccess( - TRANSACTION_IDENTIFIER, 0, Optional.of(NODE)); + private static final ReadTransactionSuccess OBJECT = new ReadTransactionSuccess(TRANSACTION_IDENTIFIER, 0, + Optional.of(NODE)); public ReadTransactionSuccessTest() { - super(OBJECT, 515); + super(OBJECT, 129, 515); } @Test diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsRequestTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsRequestTest.java index 92bc3578140..166edf57984 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsRequestTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsRequestTest.java @@ -19,7 +19,7 @@ public class SkipTransactionsRequestTest extends AbstractTransactionRequestTest< TRANSACTION_IDENTIFIER, 0, ACTOR_REF, List.of(UnsignedLong.ONE)); public SkipTransactionsRequestTest() { - super(OBJECT, 403); + super(OBJECT, 109, 403); } @Test 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 67048c1c8d0..e0f1700a9f7 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 @@ -16,7 +16,7 @@ public class SkipTransactionsResponseTest extends AbstractTransactionSuccessTest private static final SkipTransactionsResponse OBJECT = new SkipTransactionsResponse(TRANSACTION_IDENTIFIER, 0); public SkipTransactionsResponseTest() { - super(OBJECT, 486); + super(OBJECT, 98, 486); } @Test 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 f5aefd7d6b1..a262135b486 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 @@ -17,7 +17,7 @@ public class TransactionAbortRequestTest extends AbstractTransactionRequestTest< ACTOR_REF); public TransactionAbortRequestTest() { - super(OBJECT, 400); + super(OBJECT, 101, 400); } @Test 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 eace872e18f..8755eee95ff 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 @@ -16,7 +16,7 @@ public class TransactionAbortSuccessTest extends AbstractTransactionSuccessTest< private static final TransactionAbortSuccess OBJECT = new TransactionAbortSuccess(TRANSACTION_IDENTIFIER, 0); public TransactionAbortSuccessTest() { - super(OBJECT, 485); + super(OBJECT, 98, 485); } @Test 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 1ffe0c0bbee..9927edd1e55 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 @@ -17,7 +17,7 @@ public class TransactionCanCommitSuccessTest extends AbstractTransactionSuccessT 0); public TransactionCanCommitSuccessTest() { - super(OBJECT, 489); + super(OBJECT, 99, 489); } @Test 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 de5719f815b..fa72ae0b0c8 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 @@ -16,7 +16,7 @@ public class TransactionCommitSuccessTest extends AbstractTransactionSuccessTest private static final TransactionCommitSuccess OBJECT = new TransactionCommitSuccess(TRANSACTION_IDENTIFIER, 0); public TransactionCommitSuccessTest() { - super(OBJECT, 486); + super(OBJECT, 98, 486); } @Test 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 122ce4ce109..f6f7036cb2c 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 @@ -17,7 +17,7 @@ public class TransactionDoCommitRequestTest extends AbstractTransactionRequestTe ACTOR_REF); public TransactionDoCommitRequestTest() { - super(OBJECT, 403); + super(OBJECT, 102, 403); } @Test 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 893883e2d70..ac5f7647073 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 @@ -16,7 +16,7 @@ public class TransactionFailureTest extends AbstractRequestFailureTest> { private static final ActorSystem SYSTEM = ActorSystem.create("test"); @@ -29,10 +30,12 @@ public abstract class AbstractRequestTest> { private final T object; private final int expectedSize; + private final int legacySize; - protected AbstractRequestTest(final T object, final int baseSize) { + protected AbstractRequestTest(final T object, final int baseSize, final int legacySize) { this.object = requireNonNull(object); this.expectedSize = baseSize + ACTOR_REF_SIZE; + this.legacySize = legacySize + ACTOR_REF_SIZE; } protected final T object() { @@ -57,8 +60,10 @@ public void addToStringAttributesCommonTest() { @Test public void serializationTest() { + assertEquals(expectedSize, SerializationUtils.serialize(object.cloneAsVersion(ABIVersion.CHLORINE_SR2)).length); + final byte[] bytes = SerializationUtils.serialize(object); - assertEquals(expectedSize, bytes.length); + assertEquals(legacySize, bytes.length); @SuppressWarnings("unchecked") final T deserialize = (T) SerializationUtils.deserialize(bytes); From 51d39ed80e64a501f3ecadfdea22389b6edd8cca Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Thu, 1 Dec 2022 14:50:52 +0100 Subject: [PATCH 13/69] Deprecate ABIVersion.{BORON,NEON_SR2,SODIUM_SR1} These versions are ancient and should not be used. They will be removed in version 7.0.0. JIRA: CONTROLLER-2059 Change-Id: I1e4584f0771d3e40eee1fcf9ada6e564a9bb2475 Signed-off-by: Robert Varga (cherry picked from commit edfd0bcb062ade225d26b74d4f289ee98f15a79d) --- .../controller/cluster/access/ABIVersion.java | 9 +++++++++ 1 file changed, 9 insertions(+) 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 b4278f7d790..79123a13001 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 @@ -38,8 +38,11 @@ public NormalizedNodeStreamVersion getStreamVersion() { /** * 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() { @@ -49,7 +52,10 @@ public NormalizedNodeStreamVersion getStreamVersion() { /** * 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() { @@ -59,7 +65,10 @@ public NormalizedNodeStreamVersion getStreamVersion() { /** * 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() { From 71a011bda9cefd9b1a3b10c375baa2e85d41fb98 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 2 Dec 2022 07:55:33 +0100 Subject: [PATCH 14/69] Add sal-akka-raft serialization assertions We need to be in control of serialized payload size. This patch adds the assertions on sizes. Change-Id: Ic73724d0acc51d7d7f28acb392fe569f719762c9 Signed-off-by: Robert Varga (cherry picked from commit 0096ccec7c45aa0d22cf56250b06517881ca2300) --- .../raft/base/messages/TimeoutNowTest.java | 6 ++-- .../behaviors/FollowerIdentifierTest.java | 7 ++-- .../raft/client/messages/ShutdownTest.java | 6 ++-- .../raft/messages/AppendEntriesReplyTest.java | 19 +++++++---- .../raft/messages/AppendEntriesTest.java | 32 +++++++++++-------- .../messages/InstallSnapshotReplyTest.java | 7 ++-- .../raft/messages/InstallSnapshotTest.java | 10 ++++-- .../raft/messages/RequestVoteReplyTest.java | 7 ++-- .../raft/messages/RequestVoteTest.java | 7 ++-- .../persisted/ApplyJournalEntriesTest.java | 7 ++-- .../raft/persisted/DeleteEntriesTest.java | 7 ++-- .../raft/persisted/EmptyStateTest.java | 6 ++-- .../ServerConfigurationPayloadTest.java | 14 ++++---- .../SimpleReplicatedLogEntryTest.java | 8 ++--- .../cluster/raft/persisted/SnapshotTest.java | 20 ++++++------ .../persisted/UpdateElectionTermTest.java | 7 ++-- 16 files changed, 100 insertions(+), 70 deletions(-) diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/base/messages/TimeoutNowTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/base/messages/TimeoutNowTest.java index 26cdb22d8cc..375990e1060 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/base/messages/TimeoutNowTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/base/messages/TimeoutNowTest.java @@ -7,6 +7,7 @@ */ package org.opendaylight.controller.cluster.raft.base.messages; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertSame; import org.apache.commons.lang.SerializationUtils; @@ -18,10 +19,11 @@ * @author Thomas Pantelis */ public class TimeoutNowTest { - @Test public void test() { - TimeoutNow cloned = (TimeoutNow) SerializationUtils.clone(TimeoutNow.INSTANCE); + final var bytes = SerializationUtils.serialize(TimeoutNow.INSTANCE); + assertEquals(187, bytes.length); + final var cloned = SerializationUtils.deserialize(bytes); assertSame("Cloned instance", TimeoutNow.INSTANCE, cloned); } } diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/FollowerIdentifierTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/FollowerIdentifierTest.java index a9305a6862f..e0b7d61f0e4 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/FollowerIdentifierTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/FollowerIdentifierTest.java @@ -18,11 +18,12 @@ * @author Thomas Pantelis */ public class FollowerIdentifierTest { - @Test public void testSerialization() { - FollowerIdentifier expected = new FollowerIdentifier("follower1"); - FollowerIdentifier cloned = (FollowerIdentifier) SerializationUtils.clone(expected); + final var expected = new FollowerIdentifier("follower1"); + final var bytes = SerializationUtils.serialize(expected); + assertEquals(109, bytes.length); + final var cloned = (FollowerIdentifier) SerializationUtils.deserialize(bytes); assertEquals("cloned", expected, cloned); } } diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/client/messages/ShutdownTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/client/messages/ShutdownTest.java index 81b9fbbb860..ea3bd7e4724 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/client/messages/ShutdownTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/client/messages/ShutdownTest.java @@ -7,6 +7,7 @@ */ package org.opendaylight.controller.cluster.raft.client.messages; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertSame; import org.apache.commons.lang.SerializationUtils; @@ -18,10 +19,11 @@ * @author Thomas Pantelis */ public class ShutdownTest { - @Test public void test() { - Shutdown cloned = (Shutdown) SerializationUtils.clone(Shutdown.INSTANCE); + final var bytes = SerializationUtils.serialize(Shutdown.INSTANCE); + assertEquals(187, bytes.length); + final var cloned = SerializationUtils.deserialize(bytes); assertSame("Cloned instance", Shutdown.INSTANCE, cloned); } } diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/AppendEntriesReplyTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/AppendEntriesReplyTest.java index 8452a71c24a..8c09729e101 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/AppendEntriesReplyTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/AppendEntriesReplyTest.java @@ -19,12 +19,14 @@ * @author Thomas Pantelis */ public class AppendEntriesReplyTest { - @Test public void testSerialization() { - AppendEntriesReply expected = new AppendEntriesReply("follower", 5, true, 100, 4, (short)6, true, true, - RaftVersions.CURRENT_VERSION); - AppendEntriesReply cloned = (AppendEntriesReply) SerializationUtils.clone(expected); + final var expected = new AppendEntriesReply("follower", 5, true, 100, 4, (short)6, true, true, + RaftVersions.CURRENT_VERSION); + + final var bytes = SerializationUtils.serialize(expected); + assertEquals(143, bytes.length); + final var cloned = (AppendEntriesReply) SerializationUtils.deserialize(bytes); assertEquals("getTerm", expected.getTerm(), cloned.getTerm()); assertEquals("getFollowerId", expected.getFollowerId(), cloned.getFollowerId()); @@ -39,9 +41,12 @@ public void testSerialization() { @Test @Deprecated public void testPreFluorineSerialization() { - AppendEntriesReply expected = new AppendEntriesReply("follower", 5, true, 100, 4, (short)6, true, true, - RaftVersions.BORON_VERSION); - AppendEntriesReply cloned = (AppendEntriesReply) SerializationUtils.clone(expected); + final var expected = new AppendEntriesReply("follower", 5, true, 100, 4, (short)6, true, true, + RaftVersions.BORON_VERSION); + + final var bytes = SerializationUtils.serialize(expected); + assertEquals(141, bytes.length); + final var cloned = (AppendEntriesReply) SerializationUtils.deserialize(bytes); assertEquals("getTerm", expected.getTerm(), cloned.getTerm()); assertEquals("getFollowerId", expected.getFollowerId(), cloned.getFollowerId()); diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/AppendEntriesTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/AppendEntriesTest.java index a7c3c8b9d5e..bc9c6f1b876 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/AppendEntriesTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/AppendEntriesTest.java @@ -10,8 +10,8 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; -import java.util.Arrays; import java.util.Iterator; +import java.util.List; import org.apache.commons.lang.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.cluster.raft.MockRaftActorContext.MockPayload; @@ -25,7 +25,6 @@ * @author Thomas Pantelis */ public class AppendEntriesTest { - @Test public void testSerialization() { ReplicatedLogEntry entry1 = new SimpleReplicatedLogEntry(1, 2, new MockPayload("payload1")); @@ -36,19 +35,23 @@ public void testSerialization() { // Without leader address - AppendEntries expected = new AppendEntries(5L, "node1", 7L, 8L, Arrays.asList(entry1, entry2), 10L, - -1, payloadVersion, RaftVersions.CURRENT_VERSION, null); + var expected = new AppendEntries(5L, "node1", 7L, 8L, List.of(entry1, entry2), 10L, -1, payloadVersion, + RaftVersions.CURRENT_VERSION, null); - AppendEntries cloned = (AppendEntries) SerializationUtils.clone(expected); + var bytes = SerializationUtils.serialize(expected); + assertEquals(355, bytes.length); + var cloned = (AppendEntries) SerializationUtils.deserialize(bytes); verifyAppendEntries(expected, cloned, RaftVersions.CURRENT_VERSION); // With leader address - expected = new AppendEntries(5L, "node1", 7L, 8L, Arrays.asList(entry1, entry2), 10L, - -1, payloadVersion, RaftVersions.CURRENT_VERSION, "leader address"); + expected = new AppendEntries(5L, "node1", 7L, 8L, List.of(entry1, entry2), 10L, -1, payloadVersion, + RaftVersions.CURRENT_VERSION, "leader address"); - cloned = (AppendEntries) SerializationUtils.clone(expected); + bytes = SerializationUtils.serialize(expected); + assertEquals(371, bytes.length); + cloned = (AppendEntries) SerializationUtils.deserialize(bytes); verifyAppendEntries(expected, cloned, RaftVersions.CURRENT_VERSION); } @@ -62,15 +65,18 @@ public void testPreFluorineSerialization() { short payloadVersion = 5; - AppendEntries expected = new AppendEntries(5L, "node1", 7L, 8L, Arrays.asList(entry1, entry2), 10L, - -1, payloadVersion, RaftVersions.BORON_VERSION, "leader address"); + final var expected = new AppendEntries(5L, "node1", 7L, 8L, List.of(entry1, entry2), 10L, -1, + payloadVersion, RaftVersions.BORON_VERSION, "leader address"); - AppendEntries cloned = (AppendEntries) SerializationUtils.clone(expected); + final var bytes = SerializationUtils.serialize(expected); + assertEquals(350, bytes.length); + final var cloned = (AppendEntries) SerializationUtils.deserialize(bytes); verifyAppendEntries(expected, cloned, RaftVersions.BORON_VERSION); } - private static void verifyAppendEntries(AppendEntries expected, AppendEntries actual, short recipientRaftVersion) { + private static void verifyAppendEntries(final AppendEntries expected, final AppendEntries actual, + final short recipientRaftVersion) { assertEquals("getLeaderId", expected.getLeaderId(), actual.getLeaderId()); assertEquals("getTerm", expected.getTerm(), actual.getTerm()); assertEquals("getLeaderCommit", expected.getLeaderCommit(), actual.getLeaderCommit()); @@ -94,7 +100,7 @@ private static void verifyAppendEntries(AppendEntries expected, AppendEntries ac } } - private static void verifyReplicatedLogEntry(ReplicatedLogEntry expected, ReplicatedLogEntry actual) { + private static void verifyReplicatedLogEntry(final ReplicatedLogEntry expected, final ReplicatedLogEntry actual) { assertEquals("getIndex", expected.getIndex(), actual.getIndex()); assertEquals("getTerm", expected.getTerm(), actual.getTerm()); assertEquals("getData", expected.getData().toString(), actual.getData().toString()); diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshotReplyTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshotReplyTest.java index 2841d989cf6..7ea8fb72000 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshotReplyTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshotReplyTest.java @@ -18,11 +18,12 @@ * @author Thomas Pantelis */ public class InstallSnapshotReplyTest { - @Test public void testSerialization() { - InstallSnapshotReply expected = new InstallSnapshotReply(5L, "follower", 1, true); - InstallSnapshotReply cloned = (InstallSnapshotReply) SerializationUtils.clone(expected); + final var expected = new InstallSnapshotReply(5L, "follower", 1, true); + final var bytes = SerializationUtils.serialize(expected); + assertEquals(126, bytes.length); + final var cloned = (InstallSnapshotReply) SerializationUtils.deserialize(bytes); assertEquals("getTerm", expected.getTerm(), cloned.getTerm()); assertEquals("getFollowerId", expected.getFollowerId(), cloned.getFollowerId()); diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshotTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshotTest.java index c7fad2a1910..b371ade4853 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshotTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshotTest.java @@ -45,12 +45,16 @@ public void testSerialization() { Object serialized = expected.toSerializable(RaftVersions.CURRENT_VERSION); assertEquals("Serialized type", InstallSnapshot.class, serialized.getClass()); - InstallSnapshot actual = (InstallSnapshot) SerializationUtils.clone((Serializable) serialized); + var bytes = SerializationUtils.serialize((Serializable) serialized); + assertEquals(1302, bytes.length); + var actual = (InstallSnapshot) SerializationUtils.deserialize(bytes); + verifyInstallSnapshot(expected, actual); expected = new InstallSnapshot(3L, "leaderId", 11L, 2L, data, 5, 6); - actual = (InstallSnapshot) SerializationUtils.clone((Serializable) expected.toSerializable( - RaftVersions.CURRENT_VERSION)); + bytes = SerializationUtils.serialize((Serializable) expected.toSerializable(RaftVersions.CURRENT_VERSION)); + assertEquals(1165, bytes.length); + actual = (InstallSnapshot) SerializationUtils.deserialize(bytes); verifyInstallSnapshot(expected, actual); } diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/RequestVoteReplyTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/RequestVoteReplyTest.java index fa1bb5f1527..440c35f100b 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/RequestVoteReplyTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/RequestVoteReplyTest.java @@ -18,11 +18,12 @@ * @author Thomas Pantelis */ public class RequestVoteReplyTest { - @Test public void testSerialization() { - RequestVoteReply expected = new RequestVoteReply(5, true); - RequestVoteReply cloned = (RequestVoteReply) SerializationUtils.clone(expected); + final var expected = new RequestVoteReply(5, true); + final var bytes = SerializationUtils.serialize(expected); + assertEquals(105, bytes.length); + final var cloned = (RequestVoteReply) SerializationUtils.deserialize(bytes); assertEquals("getTerm", expected.getTerm(), cloned.getTerm()); assertEquals("isVoteGranted", expected.isVoteGranted(), cloned.isVoteGranted()); diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/RequestVoteTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/RequestVoteTest.java index 6cb9179dedd..e710685056c 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/RequestVoteTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/RequestVoteTest.java @@ -18,11 +18,12 @@ * @author Thomas Pantelis */ public class RequestVoteTest { - @Test public void testSerialization() { - RequestVote expected = new RequestVote(4, "candidateId", 3, 2); - RequestVote cloned = (RequestVote) SerializationUtils.clone(expected); + final var expected = new RequestVote(4, "candidateId", 3, 2); + final var bytes = SerializationUtils.serialize(expected); + assertEquals(131, bytes.length); + final var cloned = (RequestVote) SerializationUtils.deserialize(bytes); assertEquals("getTerm", expected.getTerm(), cloned.getTerm()); assertEquals("getCandidateId", expected.getCandidateId(), cloned.getCandidateId()); diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/ApplyJournalEntriesTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/ApplyJournalEntriesTest.java index b7f152574bc..2d9e7e3391a 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/ApplyJournalEntriesTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/ApplyJournalEntriesTest.java @@ -18,11 +18,12 @@ * @author Thomas Pantelis */ public class ApplyJournalEntriesTest { - @Test public void testSerialization() { - ApplyJournalEntries expected = new ApplyJournalEntries(5); - ApplyJournalEntries cloned = (ApplyJournalEntries) SerializationUtils.clone(expected); + final var expected = new ApplyJournalEntries(5); + final var bytes = SerializationUtils.serialize(expected); + assertEquals(108, bytes.length); + final var cloned = (ApplyJournalEntries) SerializationUtils.deserialize(bytes); assertEquals("getFromIndex", expected.getToIndex(), cloned.getToIndex()); } diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/DeleteEntriesTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/DeleteEntriesTest.java index 8334296ead1..3254c899e61 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/DeleteEntriesTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/DeleteEntriesTest.java @@ -18,11 +18,12 @@ * @author Thomas Pantelis */ public class DeleteEntriesTest { - @Test public void testSerialization() { - DeleteEntries expected = new DeleteEntries(5); - DeleteEntries cloned = (DeleteEntries) SerializationUtils.clone(expected); + final var expected = new DeleteEntries(5); + final var bytes = SerializationUtils.serialize(expected); + assertEquals(102, bytes.length); + final var cloned = (DeleteEntries) SerializationUtils.deserialize(bytes); assertEquals("getFromIndex", expected.getFromIndex(), cloned.getFromIndex()); } diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/EmptyStateTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/EmptyStateTest.java index 963580cde4b..184b43b3c3e 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/EmptyStateTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/EmptyStateTest.java @@ -7,6 +7,7 @@ */ package org.opendaylight.controller.cluster.raft.persisted; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertSame; import org.apache.commons.lang.SerializationUtils; @@ -19,10 +20,11 @@ * */ public class EmptyStateTest { - @Test public void testSerialization() { - EmptyState cloned = (EmptyState) SerializationUtils.clone(EmptyState.INSTANCE); + final var bytes = SerializationUtils.serialize(EmptyState.INSTANCE); + assertEquals(82, bytes.length); + final var cloned = SerializationUtils.deserialize(bytes); assertSame("cloned", EmptyState.INSTANCE, cloned); } } diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/ServerConfigurationPayloadTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/ServerConfigurationPayloadTest.java index aa2fe908845..82e7f8dbe4a 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/ServerConfigurationPayloadTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/ServerConfigurationPayloadTest.java @@ -10,7 +10,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; -import java.util.Arrays; +import java.util.List; import org.apache.commons.lang.SerializationUtils; import org.junit.Test; @@ -20,19 +20,21 @@ * @author Thomas Pantelis */ public class ServerConfigurationPayloadTest { - @Test public void testSerialization() { - ServerConfigurationPayload expected = new ServerConfigurationPayload(Arrays.asList(new ServerInfo("1", true), - new ServerInfo("2", false))); - ServerConfigurationPayload cloned = (ServerConfigurationPayload) SerializationUtils.clone(expected); + final var expected = new ServerConfigurationPayload(List.of(new ServerInfo("1", true), + new ServerInfo("2", false))); + + final var bytes = SerializationUtils.serialize(expected); + assertEquals(125, bytes.length); + final var cloned = (ServerConfigurationPayload) SerializationUtils.deserialize(bytes); assertEquals("getServerConfig", expected.getServerConfig(), cloned.getServerConfig()); } @Test public void testSize() { - ServerConfigurationPayload expected = new ServerConfigurationPayload(Arrays.asList(new ServerInfo("1", true))); + final var expected = new ServerConfigurationPayload(List.of(new ServerInfo("1", true))); assertTrue(expected.size() > 0); } } diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/SimpleReplicatedLogEntryTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/SimpleReplicatedLogEntryTest.java index ec4a3689b2a..9c0e8907dcb 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/SimpleReplicatedLogEntryTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/SimpleReplicatedLogEntryTest.java @@ -19,12 +19,12 @@ * @author Thomas Pantelis */ public class SimpleReplicatedLogEntryTest { - @Test public void testSerialization() { - SimpleReplicatedLogEntry expected = new SimpleReplicatedLogEntry(0, 1, - new MockRaftActorContext.MockPayload("A")); - SimpleReplicatedLogEntry cloned = (SimpleReplicatedLogEntry) SerializationUtils.clone(expected); + final var expected = new SimpleReplicatedLogEntry(0, 1, new MockRaftActorContext.MockPayload("A")); + final var bytes = SerializationUtils.serialize(expected); + assertEquals(260, bytes.length); + final var cloned = (SimpleReplicatedLogEntry) SerializationUtils.deserialize(bytes); assertEquals("getTerm", expected.getTerm(), cloned.getTerm()); assertEquals("getIndex", expected.getIndex(), cloned.getIndex()); diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/SnapshotTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/SnapshotTest.java index 9f1f924252d..55d9d47376d 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/SnapshotTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/SnapshotTest.java @@ -9,8 +9,6 @@ import static org.junit.Assert.assertEquals; -import java.util.Arrays; -import java.util.Collections; import java.util.List; import org.apache.commons.lang.SerializationUtils; import org.junit.Test; @@ -23,27 +21,29 @@ * @author Thomas Pantelis */ public class SnapshotTest { - @Test public void testSerialization() { - testSerialization(new byte[]{1, 2, 3, 4, 5, 6, 7}, Arrays.asList( - new SimpleReplicatedLogEntry(6, 2, new MockPayload("payload")))); - testSerialization(new byte[]{1, 2, 3, 4, 5, 6, 7, 8, 9}, Collections.emptyList()); + testSerialization(new byte[]{1, 2, 3, 4, 5, 6, 7}, List.of( + new SimpleReplicatedLogEntry(6, 2, new MockPayload("payload"))), 548); + testSerialization(new byte[]{1, 2, 3, 4, 5, 6, 7, 8, 9}, List.of(), 389); } - private static void testSerialization(final byte[] state, final List unapplied) { + private static void testSerialization(final byte[] state, final List unapplied, + final int expectedSize) { long lastIndex = 6; long lastTerm = 2; long lastAppliedIndex = 5; long lastAppliedTerm = 1; long electionTerm = 3; String electionVotedFor = "member-1"; - ServerConfigurationPayload serverConfig = new ServerConfigurationPayload(Arrays.asList( + ServerConfigurationPayload serverConfig = new ServerConfigurationPayload(List.of( new ServerInfo("1", true), new ServerInfo("2", false))); - Snapshot expected = Snapshot.create(ByteState.of(state), unapplied, lastIndex, lastTerm, lastAppliedIndex, + final var expected = Snapshot.create(ByteState.of(state), unapplied, lastIndex, lastTerm, lastAppliedIndex, lastAppliedTerm, electionTerm, electionVotedFor, serverConfig); - Snapshot cloned = (Snapshot) SerializationUtils.clone(expected); + final var bytes = SerializationUtils.serialize(expected); + assertEquals(expectedSize, bytes.length); + final var cloned = (Snapshot) SerializationUtils.deserialize(bytes); assertEquals("lastIndex", expected.getLastIndex(), cloned.getLastIndex()); assertEquals("lastTerm", expected.getLastTerm(), cloned.getLastTerm()); diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/UpdateElectionTermTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/UpdateElectionTermTest.java index de951259664..f783c64be79 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/UpdateElectionTermTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/UpdateElectionTermTest.java @@ -18,11 +18,12 @@ * @author Thomas Pantelis */ public class UpdateElectionTermTest { - @Test public void testSerialization() { - UpdateElectionTerm expected = new UpdateElectionTerm(5, "leader"); - UpdateElectionTerm cloned = (UpdateElectionTerm) SerializationUtils.clone(expected); + final var expected = new UpdateElectionTerm(5, "leader"); + final var bytes = SerializationUtils.serialize(expected); + assertEquals(116, bytes.length); + final var cloned = (UpdateElectionTerm) SerializationUtils.deserialize(bytes); assertEquals("getCurrentTerm", expected.getCurrentTerm(), cloned.getCurrentTerm()); assertEquals("getVotedFor", expected.getVotedFor(), cloned.getVotedFor()); From d5970f9f6dc56594869912d2a6c7a43162d1daf2 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 2 Dec 2022 11:33:42 +0100 Subject: [PATCH 15/69] Use instanceof patterns in Follower We can reduce casts and improve logic a bit with instanceof patterns. Change-Id: Ife036c99cba938b79c35fb042f642e96b6a769a3 Signed-off-by: Robert Varga (cherry picked from commit b8de4ba085d8d165a7bb48511dc374ed278fa8bd) --- .../controller/cluster/raft/behaviors/Follower.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/Follower.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/Follower.java index f115db1c797..fa28cbf7187 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/Follower.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/Follower.java @@ -328,8 +328,8 @@ private boolean processNewEntries(final AppendEntries appendEntries, final Actor shouldCaptureSnapshot.compareAndSet(false, context.getReplicatedLog().shouldCaptureSnapshot(entry.getIndex())); - if (entry.getData() instanceof ServerConfigurationPayload) { - context.updatePeerIds((ServerConfigurationPayload)entry.getData()); + if (entry.getData() instanceof ServerConfigurationPayload serverConfiguration) { + context.updatePeerIds(serverConfiguration); } } @@ -456,12 +456,11 @@ public RaftActorBehavior handleMessage(final ActorRef sender, final Object messa return this; } - if (!(message instanceof RaftRPC)) { + if (!(message instanceof RaftRPC rpc)) { // The rest of the processing requires the message to be a RaftRPC return null; } - final RaftRPC rpc = (RaftRPC) message; // If RPC request or response contains term T > currentTerm: // set currentTerm = T, convert to follower (§5.1) // This applies to all RPC messages and responses @@ -472,14 +471,14 @@ public RaftActorBehavior handleMessage(final ActorRef sender, final Object messa context.getTermInformation().updateAndPersist(rpc.getTerm(), null); } - if (rpc instanceof InstallSnapshot) { - handleInstallSnapshot(sender, (InstallSnapshot) rpc); + if (rpc instanceof InstallSnapshot installSnapshot) { + handleInstallSnapshot(sender, installSnapshot); restartLastLeaderMessageTimer(); scheduleElection(electionDuration()); return this; } - if (!(rpc instanceof RequestVote) || canGrantVote((RequestVote) rpc)) { + if (!(rpc instanceof RequestVote requestVote) || canGrantVote(requestVote)) { restartLastLeaderMessageTimer(); scheduleElection(electionDuration()); } From a796a637bb7272ca10777b206e7a68080beb32f3 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 2 Dec 2022 09:00:40 +0100 Subject: [PATCH 16/69] Define RaftVersions.ARGON_VERSION Our serialization proxies result in a unnecessarity-big footprint. Define their replacements for forward compatibility with Argon raft version. JIRA: CONTROLLER-2058 Change-Id: I545485c6abdf16f6d81a48672b36eb83613013e1 Signed-off-by: Robert Varga (cherry picked from commit 9a091425d16dadf09a5be4e764785707f5253013) --- .../controller/cluster/raft/RaftVersions.java | 1 + .../raft/base/messages/TimeoutNow.java | 9 ++ .../raft/behaviors/AbstractLeader.java | 4 +- .../controller/cluster/raft/behaviors/FI.java | 49 ++++++++ .../raft/client/messages/Shutdown.java | 9 ++ .../controller/cluster/raft/messages/AE.java | 96 ++++++++++++++++ .../controller/cluster/raft/messages/AR.java | 95 ++++++++++++++++ .../cluster/raft/messages/AppendEntries.java | 7 +- .../raft/messages/AppendEntriesReply.java | 7 +- .../controller/cluster/raft/messages/IR.java | 63 +++++++++++ .../controller/cluster/raft/messages/IS.java | 107 ++++++++++++++++++ .../raft/messages/InstallSnapshot.java | 20 ++-- .../controller/cluster/raft/messages/RV.java | 59 ++++++++++ .../controller/cluster/raft/messages/VR.java | 56 +++++++++ .../cluster/raft/persisted/AJE.java | 51 +++++++++ .../controller/cluster/raft/persisted/DE.java | 51 +++++++++ .../controller/cluster/raft/persisted/LE.java | 57 ++++++++++ .../controller/cluster/raft/persisted/NP.java | 25 ++++ .../controller/cluster/raft/persisted/SS.java | 91 +++++++++++++++ .../controller/cluster/raft/persisted/UT.java | 52 +++++++++ .../raft/messages/InstallSnapshotTest.java | 30 ++--- .../raft/persisted/NoopPayloadTest.java | 23 ++++ 22 files changed, 929 insertions(+), 33 deletions(-) create mode 100644 opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/FI.java create mode 100644 opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/AE.java create mode 100644 opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/AR.java create mode 100644 opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/IR.java create mode 100644 opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/IS.java create mode 100644 opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/RV.java create mode 100644 opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/VR.java create mode 100644 opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/AJE.java create mode 100644 opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/DE.java create mode 100644 opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/LE.java create mode 100644 opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/NP.java create mode 100644 opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/SS.java create mode 100644 opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/UT.java create mode 100644 opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/NoopPayloadTest.java diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftVersions.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftVersions.java index 7876ea7cf5c..eeeee431c01 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftVersions.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftVersions.java @@ -17,6 +17,7 @@ public final class RaftVersions { public static final short LITHIUM_VERSION = 1; public static final short BORON_VERSION = 3; public static final short FLUORINE_VERSION = 4; + public static final short ARGON_VERSION = 5; public static final short CURRENT_VERSION = FLUORINE_VERSION; private RaftVersions() { diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/base/messages/TimeoutNow.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/base/messages/TimeoutNow.java index b212250dd49..780487b6ab7 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/base/messages/TimeoutNow.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/base/messages/TimeoutNow.java @@ -16,18 +16,27 @@ * @author Thomas Pantelis */ public final class TimeoutNow implements Serializable, ControlMessage { + @java.io.Serial private static final long serialVersionUID = 1L; + public static final TimeoutNow INSTANCE = new TimeoutNow(); private TimeoutNow() { // Hidden on purpose } + @java.io.Serial + private Object readResolve() { + return INSTANCE; + } + + @java.io.Serial private Object writeReplace() { return new Proxy(); } private static class Proxy extends EmptyExternalizableProxy { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant which really doesn't make sense since it clearly isn't diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractLeader.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractLeader.java index 0188a6df1ac..6bccde0d622 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractLeader.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractLeader.java @@ -999,8 +999,8 @@ private void sendSnapshotChunk(final ActorSelection followerActor, final Followe chunkIndex, installSnapshotState.getTotalChunks(), OptionalInt.of(installSnapshotState.getLastChunkHashCode()), - serverConfig - ).toSerializable(followerLogInfo.getRaftVersion()), + serverConfig, + followerLogInfo.getRaftVersion()), actor() ); } diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/FI.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/FI.java new file mode 100644 index 00000000000..79c605a5280 --- /dev/null +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/FI.java @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.raft.behaviors; + +import static java.util.Objects.requireNonNull; + +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; + +/** + * Serialization proxy for {@link FollowerIdentifier}. + */ +final class FI implements Externalizable { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private String value; + + @SuppressWarnings("checkstyle:RedundantModifier") + public FI() { + // For Externalizable + } + + FI(final String value) { + this.value = requireNonNull(value); + } + + @Override + public void writeExternal(final ObjectOutput out) throws IOException { + out.writeObject(value); + } + + @Override + public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { + value = (String) in.readObject(); + } + + @java.io.Serial + private Object readResolve() { + return new FollowerIdentifier(value); + } +} diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/client/messages/Shutdown.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/client/messages/Shutdown.java index b670243b42f..29f291f5cf5 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/client/messages/Shutdown.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/client/messages/Shutdown.java @@ -19,18 +19,27 @@ * @author Thomas Pantelis */ public final class Shutdown implements Serializable, ControlMessage { + @java.io.Serial private static final long serialVersionUID = 1L; + public static final Shutdown INSTANCE = new Shutdown(); private Shutdown() { // Hidden on purpose } + @java.io.Serial + private Object readResolve() { + return INSTANCE; + } + + @java.io.Serial private Object writeReplace() { return new Proxy(); } private static class Proxy extends EmptyExternalizableProxy { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant which really doesn't make sense since it clearly isn't diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/AE.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/AE.java new file mode 100644 index 00000000000..402cb72df6a --- /dev/null +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/AE.java @@ -0,0 +1,96 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.raft.messages; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import java.util.ArrayList; +import org.opendaylight.controller.cluster.raft.RaftVersions; +import org.opendaylight.controller.cluster.raft.ReplicatedLogEntry; +import org.opendaylight.controller.cluster.raft.persisted.SimpleReplicatedLogEntry; +import org.opendaylight.yangtools.concepts.WritableObjects; + +/** + * Argon serialization proxy for {@link AppendEntries}. + */ +final class AE implements Externalizable { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private AppendEntries appendEntries; + + @SuppressWarnings("checkstyle:RedundantModifier") + public AE() { + // For Externalizable + } + + AE(final AppendEntries appendEntries) { + this.appendEntries = requireNonNull(appendEntries); + } + + @Override + public void writeExternal(final ObjectOutput out) throws IOException { + out.writeShort(appendEntries.getLeaderRaftVersion()); + WritableObjects.writeLong(out, appendEntries.getTerm()); + out.writeObject(appendEntries.getLeaderId()); + + WritableObjects.writeLongs(out, appendEntries.getPrevLogTerm(), appendEntries.getPrevLogIndex()); + WritableObjects.writeLongs(out, appendEntries.getLeaderCommit(), appendEntries.getReplicatedToAllIndex()); + + out.writeShort(appendEntries.getPayloadVersion()); + + final var entries = appendEntries.getEntries(); + out.writeInt(entries.size()); + for (var e : entries) { + WritableObjects.writeLongs(out, e.getIndex(), e.getTerm()); + out.writeObject(e.getData()); + } + + out.writeObject(appendEntries.getLeaderAddress().orElse(null)); + } + + @Override + public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { + short leaderRaftVersion = in.readShort(); + long term = WritableObjects.readLong(in); + String leaderId = (String) in.readObject(); + + byte hdr = WritableObjects.readLongHeader(in); + long prevLogTerm = WritableObjects.readFirstLong(in, hdr); + long prevLogIndex = WritableObjects.readSecondLong(in, hdr); + + hdr = WritableObjects.readLongHeader(in); + long leaderCommit = WritableObjects.readFirstLong(in, hdr); + long replicatedToAllIndex = WritableObjects.readSecondLong(in, hdr); + short payloadVersion = in.readShort(); + + int size = in.readInt(); + var entries = new ArrayList(size); + for (int i = 0; i < size; i++) { + hdr = WritableObjects.readLongHeader(in); + entries.add(new SimpleReplicatedLogEntry(WritableObjects.readFirstLong(in, hdr), + WritableObjects.readSecondLong(in, hdr), (Payload) in.readObject())); + } + + String leaderAddress = (String)in.readObject(); + + appendEntries = new AppendEntries(term, leaderId, prevLogIndex, prevLogTerm, entries, leaderCommit, + replicatedToAllIndex, payloadVersion, RaftVersions.CURRENT_VERSION, leaderRaftVersion, + leaderAddress); + } + + @java.io.Serial + private Object readResolve() { + return verifyNotNull(appendEntries); + } +} diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/AR.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/AR.java new file mode 100644 index 00000000000..6aa2ed8636a --- /dev/null +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/AR.java @@ -0,0 +1,95 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.raft.messages; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import org.opendaylight.controller.cluster.raft.RaftVersions; +import org.opendaylight.yangtools.concepts.WritableObjects; + +/** + * Serialization proxy for {@link AppendEntriesReply}. + */ +final class AR implements Externalizable { + @java.io.Serial + private static final long serialVersionUID = 1L; + + // Flag bits + private static final int SUCCESS = 0x10; + private static final int FORCE_INSTALL_SNAPSHOT = 0x20; + private static final int NEEDS_LEADER_ADDRESS = 0x40; + + private AppendEntriesReply appendEntriesReply; + + @SuppressWarnings("checkstyle:RedundantModifier") + public AR() { + // For Externalizable + } + + AR(final AppendEntriesReply appendEntriesReply) { + this.appendEntriesReply = requireNonNull(appendEntriesReply); + } + + @Override + public void writeExternal(final ObjectOutput out) throws IOException { + out.writeShort(appendEntriesReply.getRaftVersion()); + + int flags = 0; + if (appendEntriesReply.isSuccess()) { + flags |= SUCCESS; + } + if (appendEntriesReply.isForceInstallSnapshot()) { + flags |= FORCE_INSTALL_SNAPSHOT; + } + if (appendEntriesReply.isNeedsLeaderAddress()) { + flags |= NEEDS_LEADER_ADDRESS; + } + WritableObjects.writeLong(out, appendEntriesReply.getTerm(), flags); + + out.writeObject(appendEntriesReply.getFollowerId()); + + WritableObjects.writeLongs(out, appendEntriesReply.getLogLastIndex(), appendEntriesReply.getLogLastTerm()); + + out.writeShort(appendEntriesReply.getPayloadVersion()); + } + + @Override + public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { + short raftVersion = in.readShort(); + + byte hdr = WritableObjects.readLongHeader(in); + final int flags = WritableObjects.longHeaderFlags(hdr); + + long term = WritableObjects.readLongBody(in, hdr); + String followerId = (String) in.readObject(); + + hdr = WritableObjects.readLongHeader(in); + long logLastIndex = WritableObjects.readFirstLong(in, hdr); + long logLastTerm = WritableObjects.readSecondLong(in, hdr); + + short payloadVersion = in.readShort(); + + appendEntriesReply = new AppendEntriesReply(followerId, term, getFlag(flags, SUCCESS), logLastIndex, + logLastTerm, payloadVersion, getFlag(flags, FORCE_INSTALL_SNAPSHOT), getFlag(flags, NEEDS_LEADER_ADDRESS), + raftVersion, RaftVersions.CURRENT_VERSION); + } + + @java.io.Serial + private Object readResolve() { + return verifyNotNull(appendEntriesReply); + } + + private static boolean getFlag(final int flags, final int bit) { + return (flags & bit) != 0; + } +} diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/AppendEntries.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/AppendEntries.java index 95965d560f4..cf46a1f948b 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/AppendEntries.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/AppendEntries.java @@ -55,7 +55,7 @@ public final class AppendEntries extends AbstractRaftRPC { private final String leaderAddress; - private AppendEntries(final long term, @NonNull final String leaderId, final long prevLogIndex, + AppendEntries(final long term, @NonNull final String leaderId, final long prevLogIndex, final long prevLogTerm, @NonNull final List entries, final long leaderCommit, final long replicatedToAllIndex, final short payloadVersion, final short recipientRaftVersion, final short leaderRaftVersion, @Nullable final String leaderAddress) { @@ -140,7 +140,10 @@ public String toString() { @Override Object writeReplace() { - return recipientRaftVersion >= RaftVersions.FLUORINE_VERSION ? new ProxyV2(this) : new Proxy(this); + if (recipientRaftVersion <= RaftVersions.BORON_VERSION) { + return new Proxy(this); + } + return recipientRaftVersion == RaftVersions.FLUORINE_VERSION ? new ProxyV2(this) : new AE(this); } /** diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/AppendEntriesReply.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/AppendEntriesReply.java index ef2469790b0..80bcb70d9af 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/AppendEntriesReply.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/AppendEntriesReply.java @@ -59,7 +59,7 @@ public AppendEntriesReply(final String followerId, final long term, final boolea needsLeaderAddress, RaftVersions.CURRENT_VERSION, recipientRaftVersion); } - private AppendEntriesReply(final String followerId, final long term, final boolean success, final long logLastIndex, + AppendEntriesReply(final String followerId, final long term, final boolean success, final long logLastIndex, final long logLastTerm, final short payloadVersion, final boolean forceInstallSnapshot, final boolean needsLeaderAddress, final short raftVersion, final short recipientRaftVersion) { super(term); @@ -117,7 +117,10 @@ public String toString() { @Override Object writeReplace() { - return recipientRaftVersion >= RaftVersions.FLUORINE_VERSION ? new Proxy2(this) : new Proxy(this); + if (recipientRaftVersion <= RaftVersions.BORON_VERSION) { + return new Proxy(this); + } + return recipientRaftVersion == RaftVersions.FLUORINE_VERSION ? new Proxy2(this) : new AR(this); } /** diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/IR.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/IR.java new file mode 100644 index 00000000000..e9d95d84e7d --- /dev/null +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/IR.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.raft.messages; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import org.opendaylight.yangtools.concepts.WritableObjects; + +/** + * Serialization proxy for {@link InstallSnapshotReply}. + */ +final class IR implements Externalizable { + @java.io.Serial + private static final long serialVersionUID = 1L; + + // Flags + private static final int SUCCESS = 0x10; + + private InstallSnapshotReply installSnapshotReply; + + @SuppressWarnings("checkstyle:RedundantModifier") + public IR() { + // For Externalizable + } + + IR(final InstallSnapshotReply installSnapshotReply) { + this.installSnapshotReply = requireNonNull(installSnapshotReply); + } + + @Override + public void writeExternal(final ObjectOutput out) throws IOException { + WritableObjects.writeLong(out, installSnapshotReply.getTerm(), installSnapshotReply.isSuccess() ? SUCCESS : 0); + out.writeObject(installSnapshotReply.getFollowerId()); + out.writeInt(installSnapshotReply.getChunkIndex()); + } + + @Override + public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { + final byte hdr = WritableObjects.readLongHeader(in); + final int flags = WritableObjects.longHeaderFlags(hdr); + + long term = WritableObjects.readLongBody(in, hdr); + String followerId = (String) in.readObject(); + int chunkIndex = in.readInt(); + + installSnapshotReply = new InstallSnapshotReply(term, followerId, chunkIndex, (flags & SUCCESS) != 0); + } + + @java.io.Serial + private Object readResolve() { + return verifyNotNull(installSnapshotReply); + } +} diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/IS.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/IS.java new file mode 100644 index 00000000000..df9884aaaad --- /dev/null +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/IS.java @@ -0,0 +1,107 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.raft.messages; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import java.util.Optional; +import java.util.OptionalInt; +import org.opendaylight.controller.cluster.raft.RaftVersions; +import org.opendaylight.controller.cluster.raft.persisted.ServerConfigurationPayload; +import org.opendaylight.yangtools.concepts.WritableObjects; + +/** + * Serialization proxy for {@link InstallSnapshot}. + */ +final class IS implements Externalizable { + @java.io.Serial + private static final long serialVersionUID = 1L; + + // Flags + private static final int LAST_CHUNK_HASHCODE = 0x10; + private static final int SERVER_CONFIG = 0x20; + + private InstallSnapshot installSnapshot; + + @SuppressWarnings("checkstyle:RedundantModifier") + public IS() { + // For Externalizable + } + + IS(final InstallSnapshot installSnapshot) { + this.installSnapshot = requireNonNull(installSnapshot); + } + + @Override + public void writeExternal(final ObjectOutput out) throws IOException { + int flags = 0; + final var lastChunkHashCode = installSnapshot.getLastChunkHashCode(); + if (lastChunkHashCode.isPresent()) { + flags |= LAST_CHUNK_HASHCODE; + } + final var serverConfig = installSnapshot.getServerConfig(); + if (serverConfig.isPresent()) { + flags |= SERVER_CONFIG; + } + + WritableObjects.writeLong(out, installSnapshot.getTerm(), flags); + out.writeObject(installSnapshot.getLeaderId()); + WritableObjects.writeLongs(out, installSnapshot.getLastIncludedIndex(), installSnapshot.getLastIncludedTerm()); + out.writeInt(installSnapshot.getChunkIndex()); + out.writeInt(installSnapshot.getTotalChunks()); + + if (lastChunkHashCode.isPresent()) { + out.writeInt(lastChunkHashCode.getAsInt()); + } + if (serverConfig.isPresent()) { + out.writeObject(serverConfig.get()); + } + + out.writeObject(installSnapshot.getData()); + } + + @Override + public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { + byte hdr = WritableObjects.readLongHeader(in); + final int flags = WritableObjects.longHeaderFlags(hdr); + + long term = WritableObjects.readLongBody(in, hdr); + String leaderId = (String) in.readObject(); + + hdr = WritableObjects.readLongHeader(in); + long lastIncludedIndex = WritableObjects.readFirstLong(in, hdr); + long lastIncludedTerm = WritableObjects.readSecondLong(in, hdr); + int chunkIndex = in.readInt(); + int totalChunks = in.readInt(); + + OptionalInt lastChunkHashCode = getFlag(flags, LAST_CHUNK_HASHCODE) ? OptionalInt.of(in.readInt()) + : OptionalInt.empty(); + Optional serverConfig = getFlag(flags, SERVER_CONFIG) + ? Optional.of((ServerConfigurationPayload)in.readObject()) : Optional.empty(); + + byte[] data = (byte[])in.readObject(); + + installSnapshot = new InstallSnapshot(term, leaderId, lastIncludedIndex, lastIncludedTerm, data, + chunkIndex, totalChunks, lastChunkHashCode, serverConfig, RaftVersions.CURRENT_VERSION); + } + + @java.io.Serial + private Object readResolve() { + return verifyNotNull(installSnapshot); + } + + private static boolean getFlag(final int flags, final int bit) { + return (flags & bit) != 0; + } +} + diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshot.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshot.java index 60c54f7fd01..e3e587f7912 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshot.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshot.java @@ -7,6 +7,7 @@ */ package org.opendaylight.controller.cluster.raft.messages; +import com.google.common.annotations.VisibleForTesting; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.Externalizable; import java.io.IOException; @@ -14,6 +15,7 @@ import java.io.ObjectOutput; import java.util.Optional; import java.util.OptionalInt; +import org.opendaylight.controller.cluster.raft.RaftVersions; import org.opendaylight.controller.cluster.raft.persisted.ServerConfigurationPayload; /** @@ -32,13 +34,15 @@ public final class InstallSnapshot extends AbstractRaftRPC { private final OptionalInt lastChunkHashCode; @SuppressFBWarnings(value = "SE_BAD_FIELD", justification = "Handled via writeReplace()") private final Optional serverConfig; + private final short recipientRaftVersion; @SuppressFBWarnings(value = "EI_EXPOSE_REP2", justification = "Stores a reference to an externally mutable byte[] " + "object but this is OK since this class is merely a DTO and does not process byte[] internally. " + "Also it would be inefficient to create a copy as the byte[] could be large.") public InstallSnapshot(final long term, final String leaderId, final long lastIncludedIndex, final long lastIncludedTerm, final byte[] data, final int chunkIndex, final int totalChunks, - final OptionalInt lastChunkHashCode, final Optional serverConfig) { + final OptionalInt lastChunkHashCode, final Optional serverConfig, + final short recipientRaftVersion) { super(term); this.leaderId = leaderId; this.lastIncludedIndex = lastIncludedIndex; @@ -48,13 +52,15 @@ public InstallSnapshot(final long term, final String leaderId, final long lastIn this.totalChunks = totalChunks; this.lastChunkHashCode = lastChunkHashCode; this.serverConfig = serverConfig; + this.recipientRaftVersion = recipientRaftVersion; } + @VisibleForTesting public InstallSnapshot(final long term, final String leaderId, final long lastIncludedIndex, final long lastIncludedTerm, final byte[] data, final int chunkIndex, final int totalChunks) { this(term, leaderId, lastIncludedIndex, lastIncludedTerm, data, chunkIndex, totalChunks, OptionalInt.empty(), - Optional.empty()); + Optional.empty(), RaftVersions.CURRENT_VERSION); } public String getLeaderId() { @@ -92,10 +98,6 @@ public Optional getServerConfig() { return serverConfig; } - public Object toSerializable(final short version) { - return this; - } - @Override public String toString() { return "InstallSnapshot [term=" + getTerm() + ", leaderId=" + leaderId + ", lastIncludedIndex=" @@ -106,10 +108,11 @@ public String toString() { @Override Object writeReplace() { - return new Proxy(this); + return recipientRaftVersion <= RaftVersions.FLUORINE_VERSION ? new Proxy(this) : new IS(this); } private static class Proxy implements Externalizable { + @java.io.Serial private static final long serialVersionUID = 1L; private InstallSnapshot installSnapshot; @@ -162,9 +165,10 @@ public void readExternal(final ObjectInput in) throws IOException, ClassNotFound byte[] data = (byte[])in.readObject(); installSnapshot = new InstallSnapshot(term, leaderId, lastIncludedIndex, lastIncludedTerm, data, - chunkIndex, totalChunks, lastChunkHashCode, serverConfig); + chunkIndex, totalChunks, lastChunkHashCode, serverConfig, RaftVersions.CURRENT_VERSION); } + @java.io.Serial private Object readResolve() { return installSnapshot; } diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/RV.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/RV.java new file mode 100644 index 00000000000..b75f1b7dabd --- /dev/null +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/RV.java @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.raft.messages; + +import static java.util.Objects.requireNonNull; + +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import org.opendaylight.yangtools.concepts.WritableObjects; + +/** + * Serialization proxy for {@link RequestVote}. + */ +final class RV implements Externalizable { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private RequestVote requestVote; + + @SuppressWarnings("checkstyle:RedundantModifier") + public RV() { + // For Externalizable + } + + RV(final RequestVote requestVote) { + this.requestVote = requireNonNull(requestVote); + } + + @Override + public void writeExternal(final ObjectOutput out) throws IOException { + WritableObjects.writeLong(out, requestVote.getTerm()); + out.writeObject(requestVote.getCandidateId()); + WritableObjects.writeLongs(out, requestVote.getLastLogIndex(), requestVote.getLastLogTerm()); + } + + @Override + public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { + long term = WritableObjects.readLong(in); + String candidateId = (String) in.readObject(); + + final byte hdr = WritableObjects.readLongHeader(in); + long lastLogIndex = WritableObjects.readFirstLong(in, hdr); + long lastLogTerm = WritableObjects.readSecondLong(in, hdr); + + requestVote = new RequestVote(term, candidateId, lastLogIndex, lastLogTerm); + } + + @java.io.Serial + private Object readResolve() { + return requestVote; + } +} diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/VR.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/VR.java new file mode 100644 index 00000000000..d5a489bd97c --- /dev/null +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/VR.java @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.raft.messages; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import org.opendaylight.yangtools.concepts.WritableObjects; + +/** + * Serialization proxy for {@link RequestVoteReply}. + */ +final class VR implements Externalizable { + @java.io.Serial + private static final long serialVersionUID = 1L; + + // Flags + private static final int VOTE_GRANTED = 0x10; + + private RequestVoteReply requestVoteReply; + + @SuppressWarnings("checkstyle:RedundantModifier") + public VR() { + // For Externalizable + } + + VR(final RequestVoteReply requestVoteReply) { + this.requestVoteReply = requireNonNull(requestVoteReply); + } + + @Override + public void writeExternal(final ObjectOutput out) throws IOException { + WritableObjects.writeLong(out, requestVoteReply.getTerm(), requestVoteReply.isVoteGranted() ? VOTE_GRANTED : 0); + } + + @Override + public void readExternal(final ObjectInput in) throws IOException { + final byte hdr = WritableObjects.readLongHeader(in); + requestVoteReply = new RequestVoteReply(WritableObjects.readLongBody(in, hdr), + (WritableObjects.longHeaderFlags(hdr) & VOTE_GRANTED) != 0); + } + + @java.io.Serial + private Object readResolve() { + return verifyNotNull(requestVoteReply); + } +} diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/AJE.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/AJE.java new file mode 100644 index 00000000000..4e39e9884c2 --- /dev/null +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/AJE.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.raft.persisted; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import org.opendaylight.yangtools.concepts.WritableObjects; + +/** + * Serialization proxy for {@link ApplyJournalEntries}. + */ +final class AJE implements Externalizable { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private ApplyJournalEntries applyEntries; + + @SuppressWarnings("checkstyle:RedundantModifier") + public AJE() { + // For Externalizable + } + + AJE(final ApplyJournalEntries applyEntries) { + this.applyEntries = requireNonNull(applyEntries); + } + + @Override + public void writeExternal(final ObjectOutput out) throws IOException { + WritableObjects.writeLong(out, applyEntries.getToIndex()); + } + + @Override + public void readExternal(final ObjectInput in) throws IOException { + applyEntries = new ApplyJournalEntries(WritableObjects.readLong(in)); + } + + @java.io.Serial + private Object readResolve() { + return verifyNotNull(applyEntries); + } +} diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/DE.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/DE.java new file mode 100644 index 00000000000..6bd34c25ca2 --- /dev/null +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/DE.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.raft.persisted; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import org.opendaylight.yangtools.concepts.WritableObjects; + +/** + * Serialization proxy for {@link DeleteEntries}. + */ +final class DE implements Externalizable { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private DeleteEntries deleteEntries; + + @SuppressWarnings("checkstyle:RedundantModifier") + public DE() { + // For Externalizable + } + + DE(final DeleteEntries deleteEntries) { + this.deleteEntries = requireNonNull(deleteEntries); + } + + @Override + public void writeExternal(final ObjectOutput out) throws IOException { + WritableObjects.writeLong(out, deleteEntries.getFromIndex()); + } + + @Override + public void readExternal(final ObjectInput in) throws IOException { + deleteEntries = new DeleteEntries(WritableObjects.readLong(in)); + } + + @java.io.Serial + private Object readResolve() { + return verifyNotNull(deleteEntries); + } +} diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/LE.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/LE.java new file mode 100644 index 00000000000..950cdc589b9 --- /dev/null +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/LE.java @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.raft.persisted; + +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import org.opendaylight.controller.cluster.raft.messages.Payload; +import org.opendaylight.yangtools.concepts.WritableObjects; + +/** + * Serialization proxy for {@link SimpleReplicatedLogEntry}. + */ +final class LE implements Externalizable { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private long index; + private long term; + private Payload data; + + @SuppressWarnings("checkstyle:RedundantModifier") + public LE() { + // For Externalizable + } + + LE(final SimpleReplicatedLogEntry logEntry) { + index = logEntry.getIndex(); + term = logEntry.getTerm(); + data = logEntry.getData(); + } + + @Override + public void writeExternal(final ObjectOutput out) throws IOException { + WritableObjects.writeLongs(out, index, term); + out.writeObject(data); + } + + @Override + public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { + final byte hdr = WritableObjects.readLongHeader(in); + index = WritableObjects.readFirstLong(in, hdr); + term = WritableObjects.readSecondLong(in, hdr); + data = (Payload) in.readObject(); + } + + @java.io.Serial + private Object readResolve() { + return new SimpleReplicatedLogEntry(index, term, data); + } +} diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/NP.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/NP.java new file mode 100644 index 00000000000..a041f2f571c --- /dev/null +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/NP.java @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.raft.persisted; + +import java.io.Serializable; + +/** + * Serialization proxy for {@link NoopPayload}. + */ +// There is no need for Externalizable +final class NP implements Serializable { + @java.io.Serial + private static final long serialVersionUID = 1L; + + @java.io.Serial + private Object readResolve() { + return NoopPayload.INSTANCE; + } +} + diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/SS.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/SS.java new file mode 100644 index 00000000000..4f1c6f3076c --- /dev/null +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/SS.java @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.raft.persisted; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import java.util.ArrayList; +import org.opendaylight.controller.cluster.raft.ReplicatedLogEntry; +import org.opendaylight.controller.cluster.raft.messages.Payload; +import org.opendaylight.controller.cluster.raft.persisted.Snapshot.State; +import org.opendaylight.yangtools.concepts.WritableObjects; + +/** + * Externalizable proxy for {@link Snapshot}. + */ +final class SS implements Externalizable { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private Snapshot snapshot; + + @SuppressWarnings("checkstyle:RedundantModifier") + public SS() { + // For Externalizable + } + + SS(final Snapshot snapshot) { + this.snapshot = requireNonNull(snapshot); + } + + @Override + public void writeExternal(final ObjectOutput out) throws IOException { + WritableObjects.writeLongs(out, snapshot.getLastIndex(), snapshot.getLastTerm()); + WritableObjects.writeLongs(out, snapshot.getLastAppliedIndex(), snapshot.getLastAppliedTerm()); + WritableObjects.writeLong(out, snapshot.getElectionTerm()); + out.writeObject(snapshot.getElectionVotedFor()); + out.writeObject(snapshot.getServerConfiguration()); + + final var unAppliedEntries = snapshot.getUnAppliedEntries(); + out.writeInt(unAppliedEntries.size()); + for (var e : unAppliedEntries) { + WritableObjects.writeLongs(out, e.getIndex(), e.getTerm()); + out.writeObject(e.getData()); + } + + out.writeObject(snapshot.getState()); + } + + @Override + public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { + byte hdr = WritableObjects.readLongHeader(in); + long lastIndex = WritableObjects.readFirstLong(in, hdr); + long lastTerm = WritableObjects.readSecondLong(in, hdr); + + hdr = WritableObjects.readLongHeader(in); + long lastAppliedIndex = WritableObjects.readFirstLong(in, hdr); + long lastAppliedTerm = WritableObjects.readSecondLong(in, hdr); + long electionTerm = WritableObjects.readLong(in); + String electionVotedFor = (String) in.readObject(); + ServerConfigurationPayload serverConfig = (ServerConfigurationPayload) in.readObject(); + + int size = in.readInt(); + var unAppliedEntries = new ArrayList(size); + for (int i = 0; i < size; i++) { + hdr = WritableObjects.readLongHeader(in); + unAppliedEntries.add(new SimpleReplicatedLogEntry( + WritableObjects.readFirstLong(in, hdr), WritableObjects.readSecondLong(in, hdr), + (Payload) in.readObject())); + } + + State state = (State) in.readObject(); + + snapshot = Snapshot.create(state, unAppliedEntries, lastIndex, lastTerm, lastAppliedIndex, lastAppliedTerm, + electionTerm, electionVotedFor, serverConfig); + } + + @java.io.Serial + private Object readResolve() { + return verifyNotNull(snapshot); + } +} diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/UT.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/UT.java new file mode 100644 index 00000000000..0fc6f6d618b --- /dev/null +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/UT.java @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.raft.persisted; + +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import org.opendaylight.yangtools.concepts.WritableObjects; + +/** + * Serialization proxy for {@link UpdateElectionTerm}. + */ +final class UT implements Externalizable { + @java.io.Serial + private static final long serialVersionUID = 1L; + + private UpdateElectionTerm updateElectionTerm; + + @SuppressWarnings("checkstyle:RedundantModifier") + public UT() { + // For Externalizable + } + + UT(final UpdateElectionTerm updateElectionTerm) { + this.updateElectionTerm = requireNonNull(updateElectionTerm); + } + + @Override + public void writeExternal(final ObjectOutput out) throws IOException { + WritableObjects.writeLong(out, updateElectionTerm.getCurrentTerm()); + out.writeObject(updateElectionTerm.getVotedFor()); + } + + @Override + public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { + updateElectionTerm = new UpdateElectionTerm(WritableObjects.readLong(in), (String) in.readObject()); + } + + @java.io.Serial + private Object readResolve() { + return verifyNotNull(updateElectionTerm); + } +} diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshotTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshotTest.java index b371ade4853..a3da9594169 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshotTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshotTest.java @@ -10,8 +10,7 @@ import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; -import java.io.Serializable; -import java.util.Arrays; +import java.util.List; import java.util.Optional; import java.util.OptionalInt; import org.apache.commons.lang.SerializationUtils; @@ -26,7 +25,6 @@ * @author Thomas Pantelis */ public class InstallSnapshotTest { - @Test public void testSerialization() { byte[] data = new byte[1000]; @@ -37,25 +35,19 @@ public void testSerialization() { } } - ServerConfigurationPayload serverConfig = new ServerConfigurationPayload(Arrays.asList( + ServerConfigurationPayload serverConfig = new ServerConfigurationPayload(List.of( new ServerInfo("leader", true), new ServerInfo("follower", false))); - InstallSnapshot expected = new InstallSnapshot(3L, "leaderId", 11L, 2L, data, 5, 6, OptionalInt.of(54321), - Optional.of(serverConfig)); - - Object serialized = expected.toSerializable(RaftVersions.CURRENT_VERSION); - assertEquals("Serialized type", InstallSnapshot.class, serialized.getClass()); + assertInstallSnapshot(1302, new InstallSnapshot(3L, "leaderId", 11L, 2L, data, 5, 6, OptionalInt.of(54321), + Optional.of(serverConfig), RaftVersions.CURRENT_VERSION)); - var bytes = SerializationUtils.serialize((Serializable) serialized); - assertEquals(1302, bytes.length); - var actual = (InstallSnapshot) SerializationUtils.deserialize(bytes); - - verifyInstallSnapshot(expected, actual); + assertInstallSnapshot(1165, new InstallSnapshot(3L, "leaderId", 11L, 2L, data, 5, 6, OptionalInt.empty(), + Optional.empty(), RaftVersions.CURRENT_VERSION)); + } - expected = new InstallSnapshot(3L, "leaderId", 11L, 2L, data, 5, 6); - bytes = SerializationUtils.serialize((Serializable) expected.toSerializable(RaftVersions.CURRENT_VERSION)); - assertEquals(1165, bytes.length); - actual = (InstallSnapshot) SerializationUtils.deserialize(bytes); - verifyInstallSnapshot(expected, actual); + private static void assertInstallSnapshot(final int expectedSize, final InstallSnapshot expected) { + final var bytes = SerializationUtils.serialize(expected); + assertEquals(expectedSize, bytes.length); + verifyInstallSnapshot(expected, (InstallSnapshot) SerializationUtils.deserialize(bytes)); } private static void verifyInstallSnapshot(final InstallSnapshot expected, final InstallSnapshot actual) { diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/NoopPayloadTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/NoopPayloadTest.java new file mode 100644 index 00000000000..cfeafbb1738 --- /dev/null +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/NoopPayloadTest.java @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.raft.persisted; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertSame; + +import org.apache.commons.lang3.SerializationUtils; +import org.junit.Test; + +public class NoopPayloadTest { + @Test + public void testSerialization() { + final var bytes = SerializationUtils.serialize(NoopPayload.INSTANCE); + assertEquals(89, bytes.length); + assertSame(NoopPayload.INSTANCE, SerializationUtils.deserialize(bytes)); + } +} From 82a043a7553d79cdf0d0f44b7da0e50a489cd803 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 2 Dec 2022 16:21:00 +0100 Subject: [PATCH 17/69] Bump versions to 6.0.5-SNAPSHOT This starts the next development iteration. Change-Id: I7cefea6119e14ce5e1b07686b3d827f1d834c248 Signed-off-by: Robert Varga --- akka/pom.xml | 2 +- akka/repackaged-akka-jar/pom.xml | 2 +- akka/repackaged-akka/pom.xml | 2 +- artifacts/pom.xml | 12 ++++++------ benchmark/api/pom.xml | 2 +- benchmark/dsbenchmark/pom.xml | 2 +- benchmark/ntfbenchmark/pom.xml | 2 +- benchmark/pom.xml | 2 +- benchmark/rpcbenchmark/pom.xml | 2 +- bundle-parent/pom.xml | 4 ++-- docs/pom.xml | 2 +- features/features-controller-experimental/pom.xml | 2 +- features/features-controller-testing/pom.xml | 2 +- features/features-controller/pom.xml | 2 +- features/odl-clustering-test-app/pom.xml | 2 +- features/odl-controller-akka/pom.xml | 2 +- features/odl-controller-blueprint/pom.xml | 2 +- features/odl-controller-broker-local/pom.xml | 2 +- features/odl-controller-exp-netty-config/pom.xml | 2 +- features/odl-controller-mdsal-common/pom.xml | 2 +- features/odl-controller-scala/pom.xml | 2 +- features/odl-jolokia/pom.xml | 2 +- features/odl-mdsal-benchmark/pom.xml | 2 +- features/odl-mdsal-broker/pom.xml | 2 +- features/odl-mdsal-clustering-commons/pom.xml | 2 +- features/odl-mdsal-distributed-datastore/pom.xml | 2 +- features/odl-mdsal-remoterpc-connector/pom.xml | 2 +- features/odl-toaster/pom.xml | 2 +- features/pom.xml | 2 +- features/single-feature-parent/pom.xml | 4 ++-- jolokia/pom.xml | 2 +- karaf/pom.xml | 2 +- opendaylight/blueprint/pom.xml | 2 +- .../config/netty-event-executor-config/pom.xml | 2 +- opendaylight/config/netty-threadgroup-config/pom.xml | 2 +- opendaylight/config/netty-timer-config/pom.xml | 2 +- opendaylight/config/pom.xml | 2 +- opendaylight/config/threadpool-config-api/pom.xml | 2 +- opendaylight/config/threadpool-config-impl/pom.xml | 4 ++-- opendaylight/md-sal/cds-access-api/pom.xml | 2 +- opendaylight/md-sal/cds-access-client/pom.xml | 2 +- opendaylight/md-sal/cds-dom-api/pom.xml | 2 +- opendaylight/md-sal/cds-mgmt-api/pom.xml | 2 +- opendaylight/md-sal/eos-dom-akka/pom.xml | 2 +- opendaylight/md-sal/mdsal-it-base/pom.xml | 2 +- opendaylight/md-sal/mdsal-it-parent/pom.xml | 4 ++-- opendaylight/md-sal/parent/pom.xml | 4 ++-- opendaylight/md-sal/pom.xml | 2 +- opendaylight/md-sal/sal-akka-raft-example/pom.xml | 2 +- opendaylight/md-sal/sal-akka-raft/pom.xml | 2 +- .../md-sal/sal-akka-segmented-journal/pom.xml | 2 +- opendaylight/md-sal/sal-binding-it/pom.xml | 2 +- opendaylight/md-sal/sal-cluster-admin-api/pom.xml | 2 +- opendaylight/md-sal/sal-cluster-admin-impl/pom.xml | 2 +- .../md-sal/sal-cluster-admin-karaf-cli/pom.xml | 2 +- opendaylight/md-sal/sal-clustering-commons/pom.xml | 2 +- opendaylight/md-sal/sal-clustering-config/pom.xml | 2 +- opendaylight/md-sal/sal-common-util/pom.xml | 2 +- .../md-sal/sal-distributed-datastore/pom.xml | 2 +- .../md-sal/sal-dummy-distributed-datastore/pom.xml | 2 +- opendaylight/md-sal/sal-remoterpc-connector/pom.xml | 2 +- opendaylight/md-sal/sal-test-model/pom.xml | 2 +- .../clustering-test-app/configuration/pom.xml | 2 +- .../samples/clustering-test-app/karaf-cli/pom.xml | 2 +- .../md-sal/samples/clustering-test-app/model/pom.xml | 2 +- .../md-sal/samples/clustering-test-app/pom.xml | 2 +- .../samples/clustering-test-app/provider/pom.xml | 2 +- opendaylight/md-sal/samples/pom.xml | 2 +- opendaylight/md-sal/samples/toaster-consumer/pom.xml | 2 +- opendaylight/md-sal/samples/toaster-it/pom.xml | 2 +- opendaylight/md-sal/samples/toaster-provider/pom.xml | 2 +- opendaylight/md-sal/samples/toaster/pom.xml | 2 +- pom.xml | 2 +- 73 files changed, 83 insertions(+), 83 deletions(-) diff --git a/akka/pom.xml b/akka/pom.xml index 5c227443a07..d369d6424ec 100644 --- a/akka/pom.xml +++ b/akka/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller akka-aggregator - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT pom diff --git a/akka/repackaged-akka-jar/pom.xml b/akka/repackaged-akka-jar/pom.xml index 5283c4759c6..94a2b48fa0b 100644 --- a/akka/repackaged-akka-jar/pom.xml +++ b/akka/repackaged-akka-jar/pom.xml @@ -20,7 +20,7 @@ org.opendaylight.controller repackaged-akka-jar jar - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ${project.artifactId} diff --git a/akka/repackaged-akka/pom.xml b/akka/repackaged-akka/pom.xml index b76daa13953..d1d606db832 100644 --- a/akka/repackaged-akka/pom.xml +++ b/akka/repackaged-akka/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.controller bundle-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../../bundle-parent diff --git a/artifacts/pom.xml b/artifacts/pom.xml index fa39a5da8de..5325f319f76 100644 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -20,7 +20,7 @@ org.opendaylight.controller controller-artifacts - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT pom @@ -395,27 +395,27 @@ ${project.groupId} netty-event-executor-config - 0.17.4-SNAPSHOT + 0.17.5-SNAPSHOT ${project.groupId} netty-threadgroup-config - 0.17.4-SNAPSHOT + 0.17.5-SNAPSHOT ${project.groupId} netty-timer-config - 0.17.4-SNAPSHOT + 0.17.5-SNAPSHOT ${project.groupId} threadpool-config-api - 0.17.4-SNAPSHOT + 0.17.5-SNAPSHOT ${project.groupId} threadpool-config-impl - 0.17.4-SNAPSHOT + 0.17.5-SNAPSHOT ${project.groupId} diff --git a/benchmark/api/pom.xml b/benchmark/api/pom.xml index a3489b56ff0..d385978a646 100644 --- a/benchmark/api/pom.xml +++ b/benchmark/api/pom.xml @@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/benchmark/dsbenchmark/pom.xml b/benchmark/dsbenchmark/pom.xml index fb67a9c7f35..021d80b1c3f 100644 --- a/benchmark/dsbenchmark/pom.xml +++ b/benchmark/dsbenchmark/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/benchmark/ntfbenchmark/pom.xml b/benchmark/ntfbenchmark/pom.xml index 4ffb72e27b5..62670c222f8 100644 --- a/benchmark/ntfbenchmark/pom.xml +++ b/benchmark/ntfbenchmark/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 406c91af483..aa3f14cd99d 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -16,7 +16,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller benchmark-aggregator - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT pom diff --git a/benchmark/rpcbenchmark/pom.xml b/benchmark/rpcbenchmark/pom.xml index ffb147b5256..98b5d4fc722 100644 --- a/benchmark/rpcbenchmark/pom.xml +++ b/benchmark/rpcbenchmark/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/bundle-parent/pom.xml b/bundle-parent/pom.xml index a847825c164..a81f42186d3 100644 --- a/bundle-parent/pom.xml +++ b/bundle-parent/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller bundle-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT pom @@ -25,7 +25,7 @@ org.opendaylight.controller controller-artifacts - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT pom import diff --git a/docs/pom.xml b/docs/pom.xml index 981cc90c039..498a038bb80 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -19,7 +19,7 @@ org.opendaylight.controller controller-docs jar - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ${project.artifactId} Controller documentation diff --git a/features/features-controller-experimental/pom.xml b/features/features-controller-experimental/pom.xml index a2cd31e439b..59eeb76bf65 100644 --- a/features/features-controller-experimental/pom.xml +++ b/features/features-controller-experimental/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-controller-experimental - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT feature OpenDaylight :: Controller :: Experimental Features Controller Experimental Features diff --git a/features/features-controller-testing/pom.xml b/features/features-controller-testing/pom.xml index 4ec5b5c79f5..0795fcfcb60 100644 --- a/features/features-controller-testing/pom.xml +++ b/features/features-controller-testing/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-controller-testing - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT feature OpenDaylight :: Controller :: Features to support CSIT testing Controller CSIT Features diff --git a/features/features-controller/pom.xml b/features/features-controller/pom.xml index 5334e56ee3a..76a4eeb5913 100644 --- a/features/features-controller/pom.xml +++ b/features/features-controller/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-controller - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT feature OpenDaylight :: Controller :: Features Controller Production Features diff --git a/features/odl-clustering-test-app/pom.xml b/features/odl-clustering-test-app/pom.xml index d7a55d879c1..58c5f3d30b9 100644 --- a/features/odl-clustering-test-app/pom.xml +++ b/features/odl-clustering-test-app/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-akka/pom.xml b/features/odl-controller-akka/pom.xml index 5443b43141d..0c6a41464a9 100644 --- a/features/odl-controller-akka/pom.xml +++ b/features/odl-controller-akka/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.controller single-feature-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-blueprint/pom.xml b/features/odl-controller-blueprint/pom.xml index 81d3638ee72..016a6401d1a 100644 --- a/features/odl-controller-blueprint/pom.xml +++ b/features/odl-controller-blueprint/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.controller single-feature-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-broker-local/pom.xml b/features/odl-controller-broker-local/pom.xml index 0508dc8959a..3c5729ee579 100644 --- a/features/odl-controller-broker-local/pom.xml +++ b/features/odl-controller-broker-local/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-exp-netty-config/pom.xml b/features/odl-controller-exp-netty-config/pom.xml index 911f22f14a2..438014dd524 100644 --- a/features/odl-controller-exp-netty-config/pom.xml +++ b/features/odl-controller-exp-netty-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-mdsal-common/pom.xml b/features/odl-controller-mdsal-common/pom.xml index b7fe464124f..a52e83cc289 100644 --- a/features/odl-controller-mdsal-common/pom.xml +++ b/features/odl-controller-mdsal-common/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-scala/pom.xml b/features/odl-controller-scala/pom.xml index 3b5bf05928f..817b86c2bbf 100644 --- a/features/odl-controller-scala/pom.xml +++ b/features/odl-controller-scala/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.controller single-feature-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../single-feature-parent diff --git a/features/odl-jolokia/pom.xml b/features/odl-jolokia/pom.xml index 1a7cfeef53c..274de30bc47 100644 --- a/features/odl-jolokia/pom.xml +++ b/features/odl-jolokia/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-benchmark/pom.xml b/features/odl-mdsal-benchmark/pom.xml index 408f3de21a2..02c4622c755 100644 --- a/features/odl-mdsal-benchmark/pom.xml +++ b/features/odl-mdsal-benchmark/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-broker/pom.xml b/features/odl-mdsal-broker/pom.xml index 4aec28f7722..03d8425683c 100644 --- a/features/odl-mdsal-broker/pom.xml +++ b/features/odl-mdsal-broker/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-clustering-commons/pom.xml b/features/odl-mdsal-clustering-commons/pom.xml index bac59a02c8c..5f6483ac8cc 100644 --- a/features/odl-mdsal-clustering-commons/pom.xml +++ b/features/odl-mdsal-clustering-commons/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-distributed-datastore/pom.xml b/features/odl-mdsal-distributed-datastore/pom.xml index 0e8701e0180..decb0b7fe9b 100644 --- a/features/odl-mdsal-distributed-datastore/pom.xml +++ b/features/odl-mdsal-distributed-datastore/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-remoterpc-connector/pom.xml b/features/odl-mdsal-remoterpc-connector/pom.xml index cc9a3e0e9e4..824c73cc3f6 100644 --- a/features/odl-mdsal-remoterpc-connector/pom.xml +++ b/features/odl-mdsal-remoterpc-connector/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../single-feature-parent diff --git a/features/odl-toaster/pom.xml b/features/odl-toaster/pom.xml index 41dc2b5a79e..26dd751df19 100644 --- a/features/odl-toaster/pom.xml +++ b/features/odl-toaster/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../single-feature-parent diff --git a/features/pom.xml b/features/pom.xml index b3db46680fe..492fbf5c77a 100644 --- a/features/pom.xml +++ b/features/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-aggregator - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT pom diff --git a/features/single-feature-parent/pom.xml b/features/single-feature-parent/pom.xml index bad6e3113f0..b281e2abfa1 100644 --- a/features/single-feature-parent/pom.xml +++ b/features/single-feature-parent/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller single-feature-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT pom @@ -25,7 +25,7 @@ org.opendaylight.controller bundle-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT pom import diff --git a/jolokia/pom.xml b/jolokia/pom.xml index d5ed008aa75..e3a08d58210 100644 --- a/jolokia/pom.xml +++ b/jolokia/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller odl-jolokia-osgi - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT jar diff --git a/karaf/pom.xml b/karaf/pom.xml index a0728264ef8..b88fdd7ec05 100644 --- a/karaf/pom.xml +++ b/karaf/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller controller-test-karaf - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT pom diff --git a/opendaylight/blueprint/pom.xml b/opendaylight/blueprint/pom.xml index 3d5ec70b371..8b9681ee504 100644 --- a/opendaylight/blueprint/pom.xml +++ b/opendaylight/blueprint/pom.xml @@ -20,7 +20,7 @@ blueprint bundle ${project.artifactId} - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT diff --git a/opendaylight/config/netty-event-executor-config/pom.xml b/opendaylight/config/netty-event-executor-config/pom.xml index 5ce6ba710c4..b2649639502 100644 --- a/opendaylight/config/netty-event-executor-config/pom.xml +++ b/opendaylight/config/netty-event-executor-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller netty-event-executor-config - 0.17.4-SNAPSHOT + 0.17.5-SNAPSHOT bundle ${project.artifactId} Configuration Wrapper around netty's event executor diff --git a/opendaylight/config/netty-threadgroup-config/pom.xml b/opendaylight/config/netty-threadgroup-config/pom.xml index 5a0d5fef1fb..a0dd1a124d2 100644 --- a/opendaylight/config/netty-threadgroup-config/pom.xml +++ b/opendaylight/config/netty-threadgroup-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller netty-threadgroup-config - 0.17.4-SNAPSHOT + 0.17.5-SNAPSHOT bundle ${project.artifactId} Configuration Wrapper around netty's event group diff --git a/opendaylight/config/netty-timer-config/pom.xml b/opendaylight/config/netty-timer-config/pom.xml index 485d1de4c03..782764bc873 100644 --- a/opendaylight/config/netty-timer-config/pom.xml +++ b/opendaylight/config/netty-timer-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller netty-timer-config - 0.17.4-SNAPSHOT + 0.17.5-SNAPSHOT bundle ${project.artifactId} Configuration Wrapper around netty's timer diff --git a/opendaylight/config/pom.xml b/opendaylight/config/pom.xml index 279fa4925eb..a274e195cd2 100644 --- a/opendaylight/config/pom.xml +++ b/opendaylight/config/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller config-aggregator - 0.17.4-SNAPSHOT + 0.17.5-SNAPSHOT pom diff --git a/opendaylight/config/threadpool-config-api/pom.xml b/opendaylight/config/threadpool-config-api/pom.xml index cef62c3b81d..549fd12e740 100644 --- a/opendaylight/config/threadpool-config-api/pom.xml +++ b/opendaylight/config/threadpool-config-api/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller threadpool-config-api - 0.17.4-SNAPSHOT + 0.17.5-SNAPSHOT bundle ${project.artifactId} diff --git a/opendaylight/config/threadpool-config-impl/pom.xml b/opendaylight/config/threadpool-config-impl/pom.xml index 9a1f9608524..441652ad069 100644 --- a/opendaylight/config/threadpool-config-impl/pom.xml +++ b/opendaylight/config/threadpool-config-impl/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller threadpool-config-impl - 0.17.4-SNAPSHOT + 0.17.5-SNAPSHOT bundle ${project.artifactId} @@ -20,7 +20,7 @@ org.opendaylight.controller controller-artifacts - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT pom import diff --git a/opendaylight/md-sal/cds-access-api/pom.xml b/opendaylight/md-sal/cds-access-api/pom.xml index 4e8b25c6d90..b6bdd8a19e8 100644 --- a/opendaylight/md-sal/cds-access-api/pom.xml +++ b/opendaylight/md-sal/cds-access-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/cds-access-client/pom.xml b/opendaylight/md-sal/cds-access-client/pom.xml index de8e609d2db..488d59a2ddd 100644 --- a/opendaylight/md-sal/cds-access-client/pom.xml +++ b/opendaylight/md-sal/cds-access-client/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/cds-dom-api/pom.xml b/opendaylight/md-sal/cds-dom-api/pom.xml index 5c4c92ca8ea..69e63f334ff 100644 --- a/opendaylight/md-sal/cds-dom-api/pom.xml +++ b/opendaylight/md-sal/cds-dom-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/cds-mgmt-api/pom.xml b/opendaylight/md-sal/cds-mgmt-api/pom.xml index cf44f0bea22..6345235cdd6 100644 --- a/opendaylight/md-sal/cds-mgmt-api/pom.xml +++ b/opendaylight/md-sal/cds-mgmt-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/eos-dom-akka/pom.xml b/opendaylight/md-sal/eos-dom-akka/pom.xml index cc695cd843e..f49305ee8cc 100644 --- a/opendaylight/md-sal/eos-dom-akka/pom.xml +++ b/opendaylight/md-sal/eos-dom-akka/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.controller mdsal-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/mdsal-it-base/pom.xml b/opendaylight/md-sal/mdsal-it-base/pom.xml index b78f4337218..2e57c4c5b8f 100644 --- a/opendaylight/md-sal/mdsal-it-base/pom.xml +++ b/opendaylight/md-sal/mdsal-it-base/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-it-base - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT bundle diff --git a/opendaylight/md-sal/mdsal-it-parent/pom.xml b/opendaylight/md-sal/mdsal-it-parent/pom.xml index 9e3a6db0389..c5a531dda25 100644 --- a/opendaylight/md-sal/mdsal-it-parent/pom.xml +++ b/opendaylight/md-sal/mdsal-it-parent/pom.xml @@ -19,7 +19,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-it-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT pom @@ -37,7 +37,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller controller-artifacts - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT pom import diff --git a/opendaylight/md-sal/parent/pom.xml b/opendaylight/md-sal/parent/pom.xml index bd5907e67b0..cad20589844 100644 --- a/opendaylight/md-sal/parent/pom.xml +++ b/opendaylight/md-sal/parent/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller mdsal-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT pom @@ -25,7 +25,7 @@ org.opendaylight.controller bundle-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT pom import diff --git a/opendaylight/md-sal/pom.xml b/opendaylight/md-sal/pom.xml index 3fd295863a3..d5f8b565901 100644 --- a/opendaylight/md-sal/pom.xml +++ b/opendaylight/md-sal/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller mdsal-aggregator - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT pom diff --git a/opendaylight/md-sal/sal-akka-raft-example/pom.xml b/opendaylight/md-sal/sal-akka-raft-example/pom.xml index d32ae9ba0f0..ec3d9b8c6ab 100644 --- a/opendaylight/md-sal/sal-akka-raft-example/pom.xml +++ b/opendaylight/md-sal/sal-akka-raft-example/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller mdsal-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-akka-raft/pom.xml b/opendaylight/md-sal/sal-akka-raft/pom.xml index 0c56b06f0f6..a895800622c 100644 --- a/opendaylight/md-sal/sal-akka-raft/pom.xml +++ b/opendaylight/md-sal/sal-akka-raft/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml b/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml index b935566132f..651ac72e33e 100644 --- a/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml +++ b/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-binding-it/pom.xml b/opendaylight/md-sal/sal-binding-it/pom.xml index f6769dfcc5f..42537b2905f 100644 --- a/opendaylight/md-sal/sal-binding-it/pom.xml +++ b/opendaylight/md-sal/sal-binding-it/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-it-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../mdsal-it-parent sal-binding-it diff --git a/opendaylight/md-sal/sal-cluster-admin-api/pom.xml b/opendaylight/md-sal/sal-cluster-admin-api/pom.xml index 7188d5d7c94..213bdb02b17 100644 --- a/opendaylight/md-sal/sal-cluster-admin-api/pom.xml +++ b/opendaylight/md-sal/sal-cluster-admin-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml b/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml index 109bab5f34f..d313fcaddf5 100644 --- a/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml +++ b/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml b/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml index 34329164253..b44dbacb5be 100644 --- a/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml +++ b/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml @@ -5,7 +5,7 @@ mdsal-parent org.opendaylight.controller - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../parent/pom.xml 4.0.0 diff --git a/opendaylight/md-sal/sal-clustering-commons/pom.xml b/opendaylight/md-sal/sal-clustering-commons/pom.xml index b4117c7028d..49b093b1dab 100644 --- a/opendaylight/md-sal/sal-clustering-commons/pom.xml +++ b/opendaylight/md-sal/sal-clustering-commons/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-clustering-config/pom.xml b/opendaylight/md-sal/sal-clustering-config/pom.xml index ecb841c7644..c31255e39f4 100644 --- a/opendaylight/md-sal/sal-clustering-config/pom.xml +++ b/opendaylight/md-sal/sal-clustering-config/pom.xml @@ -18,7 +18,7 @@ org.opendaylight.controller sal-clustering-config - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT jar Configuration files for md-sal clustering diff --git a/opendaylight/md-sal/sal-common-util/pom.xml b/opendaylight/md-sal/sal-common-util/pom.xml index 0a092ca72aa..893a065e893 100644 --- a/opendaylight/md-sal/sal-common-util/pom.xml +++ b/opendaylight/md-sal/sal-common-util/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-distributed-datastore/pom.xml b/opendaylight/md-sal/sal-distributed-datastore/pom.xml index e36967cc9fc..164e47f3cd6 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/pom.xml +++ b/opendaylight/md-sal/sal-distributed-datastore/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml b/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml index 79aa617e9c1..e72d7ef0ce6 100644 --- a/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml +++ b/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-remoterpc-connector/pom.xml b/opendaylight/md-sal/sal-remoterpc-connector/pom.xml index 80a3d432028..d7f6dabd5f2 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/pom.xml +++ b/opendaylight/md-sal/sal-remoterpc-connector/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-test-model/pom.xml b/opendaylight/md-sal/sal-test-model/pom.xml index 56e73eeddf4..bebe269aeca 100644 --- a/opendaylight/md-sal/sal-test-model/pom.xml +++ b/opendaylight/md-sal/sal-test-model/pom.xml @@ -6,7 +6,7 @@ org.opendaylight.controller mdsal-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml index 8b578a47931..303c8c31068 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller.samples clustering-it-config - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT jar diff --git a/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml index 68d57ea8aed..9ef37a9ff78 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml @@ -12,7 +12,7 @@ mdsal-parent org.opendaylight.controller - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../../../parent/pom.xml 4.0.0 diff --git a/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml index 76857dedbd9..3091bb75782 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.controller mdsal-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../../../parent diff --git a/opendaylight/md-sal/samples/clustering-test-app/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/pom.xml index defac9af946..7d464e1c45b 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller.samples clustering-test-app - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT pom diff --git a/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml index d173a9d956f..3f39ace2a4d 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../../../parent diff --git a/opendaylight/md-sal/samples/pom.xml b/opendaylight/md-sal/samples/pom.xml index f2efcf542c9..410e290f4cd 100644 --- a/opendaylight/md-sal/samples/pom.xml +++ b/opendaylight/md-sal/samples/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller.samples samples-aggregator - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT pom diff --git a/opendaylight/md-sal/samples/toaster-consumer/pom.xml b/opendaylight/md-sal/samples/toaster-consumer/pom.xml index 3895ad6f1f1..8baf774e93f 100644 --- a/opendaylight/md-sal/samples/toaster-consumer/pom.xml +++ b/opendaylight/md-sal/samples/toaster-consumer/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../../parent diff --git a/opendaylight/md-sal/samples/toaster-it/pom.xml b/opendaylight/md-sal/samples/toaster-it/pom.xml index b45acc7f47c..11107ef3f91 100644 --- a/opendaylight/md-sal/samples/toaster-it/pom.xml +++ b/opendaylight/md-sal/samples/toaster-it/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.controller mdsal-it-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../../mdsal-it-parent sample-toaster-it diff --git a/opendaylight/md-sal/samples/toaster-provider/pom.xml b/opendaylight/md-sal/samples/toaster-provider/pom.xml index 13912a65f17..59fcd69e7ee 100644 --- a/opendaylight/md-sal/samples/toaster-provider/pom.xml +++ b/opendaylight/md-sal/samples/toaster-provider/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../../parent diff --git a/opendaylight/md-sal/samples/toaster/pom.xml b/opendaylight/md-sal/samples/toaster/pom.xml index abde945efbd..89d25743437 100644 --- a/opendaylight/md-sal/samples/toaster/pom.xml +++ b/opendaylight/md-sal/samples/toaster/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.controller mdsal-parent - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT ../../parent diff --git a/pom.xml b/pom.xml index e9806023b2e..7315175263d 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller releasepom - 6.0.4-SNAPSHOT + 6.0.5-SNAPSHOT pom controller From 3169015514221cfdb9d9a3aa9c53098ecdf9f40f Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 2 Dec 2022 17:17:54 +0100 Subject: [PATCH 18/69] Modernize sal-akka-raft Use instanceof and switch expressions to improve code flows. Also shortcut handleRequestVote(), as we can have the instance casted in AbstractLeader. Change-Id: Ib726c79fbcc667335a3749f528b3836dc3896e73 Signed-off-by: Robert Varga (cherry picked from commit 67d8d3684dda352f957990c80c8e628dabcd0ca6) --- .../controller/cluster/raft/RaftActor.java | 40 ++++++++--------- ...ActorDelegatingPersistentDataProvider.java | 35 +++++---------- .../RaftActorLeadershipTransferCohort.java | 4 +- .../raft/RaftActorRecoverySupport.java | 25 +++++------ .../RaftActorServerConfigurationSupport.java | 29 ++++++------ .../raft/RaftActorSnapshotMessageSupport.java | 20 ++++----- .../raft/behaviors/AbstractLeader.java | 16 +++---- .../behaviors/AbstractRaftActorBehavior.java | 44 ++++++++----------- .../cluster/raft/persisted/ServerInfo.java | 16 ++----- .../SimpleReplicatedLogEntrySerializer.java | 10 ++--- 10 files changed, 101 insertions(+), 138 deletions(-) diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActor.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActor.java index 67fc8b5b45c..a1e94bd8362 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActor.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActor.java @@ -228,9 +228,7 @@ protected void handleCommand(final Object message) { if (snapshotSupport.handleSnapshotMessage(message, getSender())) { return; } - if (message instanceof ApplyState) { - ApplyState applyState = (ApplyState) message; - + if (message instanceof ApplyState applyState) { if (!hasFollowers()) { // for single node, the capture should happen after the apply state // as we delete messages from the persistent journal which have made it to the snapshot @@ -242,8 +240,7 @@ protected void handleCommand(final Object message) { } possiblyHandleBehaviorMessage(message); - } else if (message instanceof ApplyJournalEntries) { - ApplyJournalEntries applyEntries = (ApplyJournalEntries) message; + } else if (message instanceof ApplyJournalEntries applyEntries) { LOG.debug("{}: Persisting ApplyJournalEntries with index={}", persistenceId(), applyEntries.getToIndex()); persistence().persistAsync(applyEntries, NoopProcedure.instance()); @@ -253,24 +250,24 @@ protected void handleCommand(final Object message) { onGetOnDemandRaftStats(); } else if (message instanceof InitiateCaptureSnapshot) { captureSnapshot(); - } else if (message instanceof SwitchBehavior) { - switchBehavior((SwitchBehavior) message); - } else if (message instanceof LeaderTransitioning) { - onLeaderTransitioning((LeaderTransitioning)message); + } else if (message instanceof SwitchBehavior switchBehavior) { + switchBehavior(switchBehavior); + } else if (message instanceof LeaderTransitioning leaderTransitioning) { + onLeaderTransitioning(leaderTransitioning); } else if (message instanceof Shutdown) { onShutDown(); - } else if (message instanceof Runnable) { - ((Runnable)message).run(); - } else if (message instanceof NoopPayload) { - persistData(null, null, (NoopPayload) message, false); - } else if (message instanceof RequestLeadership) { - onRequestLeadership((RequestLeadership) message); + } else if (message instanceof Runnable runnable) { + runnable.run(); + } else if (message instanceof NoopPayload noopPayload) { + persistData(null, null, noopPayload, false); + } else if (message instanceof RequestLeadership requestLeadership) { + onRequestLeadership(requestLeadership); } else if (!possiblyHandleBehaviorMessage(message)) { - if (message instanceof JournalProtocol.Response - && delegatingPersistenceProvider.handleJournalResponse((JournalProtocol.Response) message)) { + if (message instanceof JournalProtocol.Response response + && delegatingPersistenceProvider.handleJournalResponse(response)) { LOG.debug("{}: handled a journal response", persistenceId()); - } else if (message instanceof SnapshotProtocol.Response - && delegatingPersistenceProvider.handleSnapshotResponse((SnapshotProtocol.Response) message)) { + } else if (message instanceof SnapshotProtocol.Response response + && delegatingPersistenceProvider.handleSnapshotResponse(response)) { LOG.debug("{}: handled a snapshot response", persistenceId()); } else { handleNonRaftCommand(message); @@ -484,11 +481,10 @@ private void onGetOnDemandRaftStats() { builder.lastLogTerm(lastLogEntry.getTerm()); } - if (getCurrentBehavior() instanceof AbstractLeader) { - AbstractLeader leader = (AbstractLeader)getCurrentBehavior(); + if (getCurrentBehavior() instanceof AbstractLeader leader) { Collection followerIds = leader.getFollowerIds(); List followerInfoList = new ArrayList<>(followerIds.size()); - for (String id: followerIds) { + for (String id : followerIds) { final FollowerLogInformation info = leader.getFollower(id); followerInfoList.add(new FollowerInfo(id, info.getNextIndex(), info.getMatchIndex(), info.isFollowerActive(), DurationFormatUtils.formatDurationHMS( diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorDelegatingPersistentDataProvider.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorDelegatingPersistentDataProvider.java index 2b9217e8282..846ef22bb08 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorDelegatingPersistentDataProvider.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorDelegatingPersistentDataProvider.java @@ -13,7 +13,6 @@ import org.opendaylight.controller.cluster.DataPersistenceProvider; import org.opendaylight.controller.cluster.DelegatingPersistentDataProvider; import org.opendaylight.controller.cluster.PersistentDataProvider; -import org.opendaylight.controller.cluster.raft.messages.Payload; import org.opendaylight.controller.cluster.raft.messages.PersistentPayload; /** @@ -42,33 +41,19 @@ public void persistAsync(final T entry, final Procedure procedure) { } private void doPersist(final T entry, final Procedure procedure, final boolean async) { - if (getDelegate().isRecoveryApplicable()) { - persistSuper(entry, procedure, async); - } else { - if (entry instanceof ReplicatedLogEntry) { - Payload payload = ((ReplicatedLogEntry)entry).getData(); - if (payload instanceof PersistentPayload) { - // We persist the Payload but not the ReplicatedLogEntry to avoid gaps in the journal indexes - // on recovery if data persistence is later enabled. - if (async) { - persistentProvider.persistAsync(payload, p -> procedure.apply(entry)); - } else { - persistentProvider.persist(payload, p -> procedure.apply(entry)); - } - } else { - persistSuper(entry, procedure, async); - } + if (!getDelegate().isRecoveryApplicable() && entry instanceof ReplicatedLogEntry replicatedLogEntry + && replicatedLogEntry.getData() instanceof PersistentPayload payload) { + // We persist the Payload but not the ReplicatedLogEntry to avoid gaps in the journal indexes on recovery + // if data persistence is later enabled. + if (async) { + persistentProvider.persistAsync(payload, p -> procedure.apply(entry)); } else { - persistSuper(entry, procedure, async); + persistentProvider.persist(payload, p -> procedure.apply(entry)); } - } - } - - private void persistSuper(final T object, final Procedure procedure, final boolean async) { - if (async) { - super.persistAsync(object, procedure); + } else if (async) { + super.persistAsync(entry, procedure); } else { - super.persist(object, procedure); + super.persist(entry, procedure); } } } diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorLeadershipTransferCohort.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorLeadershipTransferCohort.java index c3d5af55cd4..018155f4bea 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorLeadershipTransferCohort.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorLeadershipTransferCohort.java @@ -122,9 +122,9 @@ protected void doCancel() { void doTransfer() { RaftActorBehavior behavior = raftActor.getCurrentBehavior(); // Sanity check... - if (behavior instanceof Leader) { + if (behavior instanceof Leader leader) { isTransferring = true; - ((Leader)behavior).transferLeadership(this); + leader.transferLeadership(this); } else { LOG.debug("{}: No longer the leader - skipping transfer", raftActor.persistenceId()); finish(true); diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorRecoverySupport.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorRecoverySupport.java index 2eb343f6919..389e8dfd8ff 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorRecoverySupport.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorRecoverySupport.java @@ -59,19 +59,18 @@ boolean handleRecoveryMessage(final Object message, final PersistentDataProvider } boolean recoveryComplete = false; - if (message instanceof UpdateElectionTerm) { - context.getTermInformation().update(((UpdateElectionTerm) message).getCurrentTerm(), - ((UpdateElectionTerm) message).getVotedFor()); - } else if (message instanceof SnapshotOffer) { - onRecoveredSnapshot((SnapshotOffer) message); - } else if (message instanceof ReplicatedLogEntry) { - onRecoveredJournalLogEntry((ReplicatedLogEntry) message); - } else if (message instanceof ApplyJournalEntries) { - onRecoveredApplyLogEntries(((ApplyJournalEntries) message).getToIndex()); - } else if (message instanceof DeleteEntries) { - onDeleteEntries((DeleteEntries) message); - } else if (message instanceof ServerConfigurationPayload) { - context.updatePeerIds((ServerConfigurationPayload)message); + if (message instanceof UpdateElectionTerm updateElectionTerm) { + context.getTermInformation().update(updateElectionTerm.getCurrentTerm(), updateElectionTerm.getVotedFor()); + } else if (message instanceof SnapshotOffer snapshotOffer) { + onRecoveredSnapshot(snapshotOffer); + } else if (message instanceof ReplicatedLogEntry replicatedLogEntry) { + onRecoveredJournalLogEntry(replicatedLogEntry); + } else if (message instanceof ApplyJournalEntries applyJournalEntries) { + onRecoveredApplyLogEntries(applyJournalEntries.getToIndex()); + } else if (message instanceof DeleteEntries deleteEntries) { + onDeleteEntries(deleteEntries); + } else if (message instanceof ServerConfigurationPayload serverConfigurationPayload) { + context.updatePeerIds(serverConfigurationPayload); } else if (message instanceof RecoveryCompleted) { recoveryComplete = true; onRecoveryCompletedMessage(persistentProvider); diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorServerConfigurationSupport.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorServerConfigurationSupport.java index 004272192c3..e663e36bdbe 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorServerConfigurationSupport.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorServerConfigurationSupport.java @@ -64,27 +64,27 @@ class RaftActorServerConfigurationSupport { RaftActorServerConfigurationSupport(final RaftActor raftActor) { this.raftActor = raftActor; - this.raftContext = raftActor.getRaftActorContext(); + raftContext = raftActor.getRaftActorContext(); } boolean handleMessage(final Object message, final ActorRef sender) { - if (message instanceof AddServer) { - onAddServer((AddServer) message, sender); + if (message instanceof AddServer addServer) { + onAddServer(addServer, sender); return true; - } else if (message instanceof RemoveServer) { - onRemoveServer((RemoveServer) message, sender); + } else if (message instanceof RemoveServer removeServer) { + onRemoveServer(removeServer, sender); return true; - } else if (message instanceof ChangeServersVotingStatus) { - onChangeServersVotingStatus((ChangeServersVotingStatus) message, sender); + } else if (message instanceof ChangeServersVotingStatus changeServersVotingStatus) { + onChangeServersVotingStatus(changeServersVotingStatus, sender); return true; - } else if (message instanceof ServerOperationTimeout) { - currentOperationState.onServerOperationTimeout((ServerOperationTimeout) message); + } else if (message instanceof ServerOperationTimeout serverOperationTimeout) { + currentOperationState.onServerOperationTimeout(serverOperationTimeout); return true; - } else if (message instanceof UnInitializedFollowerSnapshotReply) { - currentOperationState.onUnInitializedFollowerSnapshotReply((UnInitializedFollowerSnapshotReply) message); + } else if (message instanceof UnInitializedFollowerSnapshotReply uninitFollowerSnapshotReply) { + currentOperationState.onUnInitializedFollowerSnapshotReply(uninitFollowerSnapshotReply); return true; - } else if (message instanceof ApplyState) { - return onApplyState((ApplyState) message); + } else if (message instanceof ApplyState applyState) { + return onApplyState(applyState); } else if (message instanceof SnapshotComplete) { currentOperationState.onSnapshotComplete(); return false; @@ -765,8 +765,7 @@ private boolean updateLocalPeerInfo() { } raftContext.updatePeerIds(new ServerConfigurationPayload(newServerInfoList)); - if (raftActor.getCurrentBehavior() instanceof AbstractLeader) { - AbstractLeader leader = (AbstractLeader) raftActor.getCurrentBehavior(); + if (raftActor.getCurrentBehavior() instanceof AbstractLeader leader) { leader.updateMinReplicaCount(); } diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorSnapshotMessageSupport.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorSnapshotMessageSupport.java index bc96713dc46..e7344d9b4f1 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorSnapshotMessageSupport.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorSnapshotMessageSupport.java @@ -60,18 +60,18 @@ RaftActorSnapshotCohort getSnapshotCohort() { } boolean handleSnapshotMessage(final Object message, final ActorRef sender) { - if (message instanceof ApplySnapshot) { - onApplySnapshot((ApplySnapshot) message); - } else if (message instanceof SaveSnapshotSuccess) { - onSaveSnapshotSuccess((SaveSnapshotSuccess) message); - } else if (message instanceof SaveSnapshotFailure) { - onSaveSnapshotFailure((SaveSnapshotFailure) message); - } else if (message instanceof CaptureSnapshotReply) { - onCaptureSnapshotReply((CaptureSnapshotReply) message); + if (message instanceof ApplySnapshot applySnapshot) { + onApplySnapshot(applySnapshot); + } else if (message instanceof SaveSnapshotSuccess saveSnapshotSuccess) { + onSaveSnapshotSuccess(saveSnapshotSuccess); + } else if (message instanceof SaveSnapshotFailure saveSnapshotFailure) { + onSaveSnapshotFailure(saveSnapshotFailure); + } else if (message instanceof CaptureSnapshotReply captureSnapshotReply) { + onCaptureSnapshotReply(captureSnapshotReply); } else if (COMMIT_SNAPSHOT.equals(message)) { context.getSnapshotManager().commit(-1, -1); - } else if (message instanceof GetSnapshot) { - onGetSnapshot(sender, (GetSnapshot) message); + } else if (message instanceof GetSnapshot getSnapshot) { + onGetSnapshot(sender, getSnapshot); } else if (message instanceof SnapshotComplete) { log.debug("{}: SnapshotComplete received", context.getId()); } else { diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractLeader.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractLeader.java index 6bccde0d622..bdd3262e0ac 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractLeader.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractLeader.java @@ -469,8 +469,8 @@ final ApplyState getApplyStateFor(final ReplicatedLogEntry entry) { // and became the leader again,. We still want to apply this as a local modification because // we have resumed leadership with that log entry having been committed. final Payload payload = entry.getData(); - if (payload instanceof IdentifiablePayload) { - return new ApplyState(null, ((IdentifiablePayload) payload).getIdentifier(), entry); + if (payload instanceof IdentifiablePayload identifiable) { + return new ApplyState(null, identifiable.getIdentifier(), entry); } return new ApplyState(null, null, entry); @@ -511,9 +511,9 @@ public RaftActorBehavior handleMessage(final ActorRef sender, final Object messa // start a new election due to lack of responses. This case would only occur if there isn't a majority // of other nodes available that can elect the requesting candidate. Since we're transferring // leadership, we should make every effort to get the requesting node elected. - if (rpc instanceof RequestVote && context.getRaftActorLeadershipTransferCohort() != null) { + if (rpc instanceof RequestVote requestVote && context.getRaftActorLeadershipTransferCohort() != null) { log.debug("{}: Leadership transfer in progress - processing RequestVote", logName()); - super.handleMessage(sender, rpc); + requestVote(sender, requestVote); } return internalSwitchBehavior(RaftState.Follower); @@ -528,10 +528,10 @@ public RaftActorBehavior handleMessage(final ActorRef sender, final Object messa setSnapshotHolder(new SnapshotHolder(sendInstallSnapshot.getSnapshot(), sendInstallSnapshot.getSnapshotBytes())); sendInstallSnapshot(); - } else if (message instanceof Replicate) { - replicate((Replicate) message); - } else if (message instanceof InstallSnapshotReply) { - handleInstallSnapshotReply((InstallSnapshotReply) message); + } else if (message instanceof Replicate replicate) { + replicate(replicate); + } else if (message instanceof InstallSnapshotReply installSnapshotReply) { + handleInstallSnapshotReply(installSnapshotReply); } else if (message instanceof CheckConsensusReached) { possiblyUpdateCommitIndex(); } else { diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractRaftActorBehavior.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractRaftActorBehavior.java index e714fddb749..d2a73b249d1 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractRaftActorBehavior.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractRaftActorBehavior.java @@ -76,20 +76,13 @@ public abstract class AbstractRaftActorBehavior implements RaftActorBehavior { } public static RaftActorBehavior createBehavior(final RaftActorContext context, final RaftState state) { - switch (state) { - case Candidate: - return new Candidate(context); - case Follower: - return new Follower(context); - case IsolatedLeader: - return new IsolatedLeader(context); - case Leader: - return new Leader(context); - case PreLeader: - return new PreLeader(context); - default: - throw new IllegalArgumentException("Unhandled state " + state); - } + return switch (state) { + case Candidate -> new Candidate(context); + case Follower -> new Follower(context); + case IsolatedLeader -> new IsolatedLeader(context); + case Leader -> new Leader(context); + case PreLeader -> new PreLeader(context); + }; } @Override @@ -418,14 +411,14 @@ protected void applyLogToStateMachine(final long index) { @Override public RaftActorBehavior handleMessage(final ActorRef sender, final Object message) { - if (message instanceof AppendEntries) { - return appendEntries(sender, (AppendEntries) message); - } else if (message instanceof AppendEntriesReply) { - return handleAppendEntriesReply(sender, (AppendEntriesReply) message); - } else if (message instanceof RequestVote) { - return requestVote(sender, (RequestVote) message); - } else if (message instanceof RequestVoteReply) { - return handleRequestVoteReply(sender, (RequestVoteReply) message); + if (message instanceof AppendEntries appendEntries) { + return appendEntries(sender, appendEntries); + } else if (message instanceof AppendEntriesReply appendEntriesReply) { + return handleAppendEntriesReply(sender, appendEntriesReply); + } else if (message instanceof RequestVote requestVote) { + return requestVote(sender, requestVote); + } else if (message instanceof RequestVoteReply requestVoteReply) { + return handleRequestVoteReply(sender, requestVoteReply); } else { return null; } @@ -446,12 +439,12 @@ protected RaftActorBehavior internalSwitchBehavior(final RaftActorBehavior newBe return this; } - log.info("{} :- Switching from behavior {} to {}, election term: {}", logName(), this.state(), + log.info("{} :- Switching from behavior {} to {}, election term: {}", logName(), state(), newBehavior.state(), context.getTermInformation().getCurrentTerm()); try { close(); } catch (RuntimeException e) { - log.error("{}: Failed to close behavior : {}", logName(), this.state(), e); + log.error("{}: Failed to close behavior : {}", logName(), state(), e); } return newBehavior; } @@ -502,11 +495,10 @@ protected final String getId() { // Check whether we should update the term. In case of half-connected nodes, we want to ignore RequestVote // messages, as the candidate is not able to receive our response. protected boolean shouldUpdateTerm(final RaftRPC rpc) { - if (!(rpc instanceof RequestVote)) { + if (!(rpc instanceof RequestVote requestVote)) { return true; } - final RequestVote requestVote = (RequestVote) rpc; log.debug("{}: Found higher term in RequestVote rpc, verifying whether it's safe to update term.", logName()); final Optional maybeCluster = context.getCluster(); if (!maybeCluster.isPresent()) { diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/ServerInfo.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/ServerInfo.java index 6e1ca82f77d..f5a2d085fe8 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/ServerInfo.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/ServerInfo.java @@ -18,10 +18,10 @@ * @author Thomas Pantelis */ public final class ServerInfo { - private final String id; + private final @NonNull String id; private final boolean isVoting; - public ServerInfo(@NonNull String id, boolean isVoting) { + public ServerInfo(final @NonNull String id, final boolean isVoting) { this.id = requireNonNull(id); this.isVoting = isVoting; } @@ -44,16 +44,8 @@ public int hashCode() { } @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (!(obj instanceof ServerInfo)) { - return false; - } - - final ServerInfo other = (ServerInfo) obj; - return isVoting == other.isVoting && id.equals(other.id); + public boolean equals(final Object obj) { + return this == obj || obj instanceof ServerInfo other && isVoting == other.isVoting && id.equals(other.id); } @Override diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/SimpleReplicatedLogEntrySerializer.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/SimpleReplicatedLogEntrySerializer.java index f1c2fea4a60..250551a780d 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/SimpleReplicatedLogEntrySerializer.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/SimpleReplicatedLogEntrySerializer.java @@ -7,7 +7,6 @@ */ package org.opendaylight.controller.cluster.raft.persisted; -import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; import akka.actor.ExtendedActorSystem; @@ -45,10 +44,11 @@ public boolean includeManifest() { } @Override - public byte[] toBinary(Object obj) { - checkArgument(obj instanceof SimpleReplicatedLogEntry, "Unsupported object type %s", obj.getClass()); + public byte[] toBinary(final Object obj) { + if (!(obj instanceof SimpleReplicatedLogEntry replicatedLogEntry)) { + throw new IllegalArgumentException("Unsupported object type " + obj.getClass()); + } - SimpleReplicatedLogEntry replicatedLogEntry = (SimpleReplicatedLogEntry)obj; final int estimatedSerializedSize = replicatedLogEntry.serializedSize(); final ByteArrayOutputStream bos = new ByteArrayOutputStream(estimatedSerializedSize); @@ -62,7 +62,7 @@ public byte[] toBinary(Object obj) { } @Override - public Object fromBinaryJava(byte[] bytes, Class manifest) { + public Object fromBinaryJava(final byte[] bytes, final Class manifest) { try (ClassLoaderObjectInputStream is = new ClassLoaderObjectInputStream(system.dynamicAccess().classLoader(), new ByteArrayInputStream(bytes))) { return is.readObject(); From f7643993a17a2b853f24e987deb6b7f599437472 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sat, 3 Dec 2022 20:43:59 +0100 Subject: [PATCH 19/69] Bump yangtools/mdsal Adopt yangtools-9.0.5 and mdsal-10.0.5. Change-Id: Ifef09234c94a94647c2dc607ab5624c52f00a0ba Signed-off-by: Robert Varga --- bundle-parent/pom.xml | 2 +- docs/pom.xml | 4 ++-- opendaylight/blueprint/pom.xml | 4 ++-- opendaylight/md-sal/mdsal-it-base/pom.xml | 2 +- opendaylight/md-sal/parent/pom.xml | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/bundle-parent/pom.xml b/bundle-parent/pom.xml index a81f42186d3..eb33455d1d7 100644 --- a/bundle-parent/pom.xml +++ b/bundle-parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.mdsal dom-parent - 10.0.4 + 10.0.5 diff --git a/docs/pom.xml b/docs/pom.xml index 498a038bb80..24340be9a2d 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -230,8 +230,8 @@ https://commons.apache.org/proper/commons-lang/javadocs/api-release/ https://www.javadoc.io/doc/org.opendaylight.odlparent/odlparent-docs/11.0.3/ - https://www.javadoc.io/doc/org.opendaylight.yangtools/yangtools-docs/9.0.4/ - https://www.javadoc.io/doc/org.opendaylight.mdsal/mdsal-docs/10.0.4/ + https://www.javadoc.io/doc/org.opendaylight.yangtools/yangtools-docs/9.0.5/ + https://www.javadoc.io/doc/org.opendaylight.mdsal/mdsal-docs/10.0.5/ diff --git a/opendaylight/blueprint/pom.xml b/opendaylight/blueprint/pom.xml index 8b9681ee504..6e9254e7c03 100644 --- a/opendaylight/blueprint/pom.xml +++ b/opendaylight/blueprint/pom.xml @@ -27,14 +27,14 @@ org.opendaylight.yangtools yangtools-artifacts - 9.0.4 + 9.0.5 pom import org.opendaylight.mdsal mdsal-artifacts - 10.0.4 + 10.0.5 pom import diff --git a/opendaylight/md-sal/mdsal-it-base/pom.xml b/opendaylight/md-sal/mdsal-it-base/pom.xml index 2e57c4c5b8f..aaf66e9628b 100644 --- a/opendaylight/md-sal/mdsal-it-base/pom.xml +++ b/opendaylight/md-sal/mdsal-it-base/pom.xml @@ -26,7 +26,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.mdsal mdsal-artifacts - 10.0.4 + 10.0.5 pom import diff --git a/opendaylight/md-sal/parent/pom.xml b/opendaylight/md-sal/parent/pom.xml index cad20589844..8af0e2dd687 100644 --- a/opendaylight/md-sal/parent/pom.xml +++ b/opendaylight/md-sal/parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.mdsal binding-parent - 10.0.4 + 10.0.5 From eabd0372867b6277ec8fafbe9a0ef42fda4d5da4 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sat, 3 Dec 2022 20:44:36 +0100 Subject: [PATCH 20/69] Bump versions to 6.0.6-SNAPSHOT This starts the next development iteration. Change-Id: If88e64e55a796eb8224ff9f20ac83a5b1c502ca8 Signed-off-by: Robert Varga --- akka/pom.xml | 2 +- akka/repackaged-akka-jar/pom.xml | 2 +- akka/repackaged-akka/pom.xml | 2 +- artifacts/pom.xml | 12 ++++++------ benchmark/api/pom.xml | 2 +- benchmark/dsbenchmark/pom.xml | 2 +- benchmark/ntfbenchmark/pom.xml | 2 +- benchmark/pom.xml | 2 +- benchmark/rpcbenchmark/pom.xml | 2 +- bundle-parent/pom.xml | 4 ++-- docs/pom.xml | 2 +- features/features-controller-experimental/pom.xml | 2 +- features/features-controller-testing/pom.xml | 2 +- features/features-controller/pom.xml | 2 +- features/odl-clustering-test-app/pom.xml | 2 +- features/odl-controller-akka/pom.xml | 2 +- features/odl-controller-blueprint/pom.xml | 2 +- features/odl-controller-broker-local/pom.xml | 2 +- features/odl-controller-exp-netty-config/pom.xml | 2 +- features/odl-controller-mdsal-common/pom.xml | 2 +- features/odl-controller-scala/pom.xml | 2 +- features/odl-jolokia/pom.xml | 2 +- features/odl-mdsal-benchmark/pom.xml | 2 +- features/odl-mdsal-broker/pom.xml | 2 +- features/odl-mdsal-clustering-commons/pom.xml | 2 +- features/odl-mdsal-distributed-datastore/pom.xml | 2 +- features/odl-mdsal-remoterpc-connector/pom.xml | 2 +- features/odl-toaster/pom.xml | 2 +- features/pom.xml | 2 +- features/single-feature-parent/pom.xml | 4 ++-- jolokia/pom.xml | 2 +- karaf/pom.xml | 2 +- opendaylight/blueprint/pom.xml | 2 +- .../config/netty-event-executor-config/pom.xml | 2 +- opendaylight/config/netty-threadgroup-config/pom.xml | 2 +- opendaylight/config/netty-timer-config/pom.xml | 2 +- opendaylight/config/pom.xml | 2 +- opendaylight/config/threadpool-config-api/pom.xml | 2 +- opendaylight/config/threadpool-config-impl/pom.xml | 4 ++-- opendaylight/md-sal/cds-access-api/pom.xml | 2 +- opendaylight/md-sal/cds-access-client/pom.xml | 2 +- opendaylight/md-sal/cds-dom-api/pom.xml | 2 +- opendaylight/md-sal/cds-mgmt-api/pom.xml | 2 +- opendaylight/md-sal/eos-dom-akka/pom.xml | 2 +- opendaylight/md-sal/mdsal-it-base/pom.xml | 2 +- opendaylight/md-sal/mdsal-it-parent/pom.xml | 4 ++-- opendaylight/md-sal/parent/pom.xml | 4 ++-- opendaylight/md-sal/pom.xml | 2 +- opendaylight/md-sal/sal-akka-raft-example/pom.xml | 2 +- opendaylight/md-sal/sal-akka-raft/pom.xml | 2 +- .../md-sal/sal-akka-segmented-journal/pom.xml | 2 +- opendaylight/md-sal/sal-binding-it/pom.xml | 2 +- opendaylight/md-sal/sal-cluster-admin-api/pom.xml | 2 +- opendaylight/md-sal/sal-cluster-admin-impl/pom.xml | 2 +- .../md-sal/sal-cluster-admin-karaf-cli/pom.xml | 2 +- opendaylight/md-sal/sal-clustering-commons/pom.xml | 2 +- opendaylight/md-sal/sal-clustering-config/pom.xml | 2 +- opendaylight/md-sal/sal-common-util/pom.xml | 2 +- .../md-sal/sal-distributed-datastore/pom.xml | 2 +- .../md-sal/sal-dummy-distributed-datastore/pom.xml | 2 +- opendaylight/md-sal/sal-remoterpc-connector/pom.xml | 2 +- opendaylight/md-sal/sal-test-model/pom.xml | 2 +- .../clustering-test-app/configuration/pom.xml | 2 +- .../samples/clustering-test-app/karaf-cli/pom.xml | 2 +- .../md-sal/samples/clustering-test-app/model/pom.xml | 2 +- .../md-sal/samples/clustering-test-app/pom.xml | 2 +- .../samples/clustering-test-app/provider/pom.xml | 2 +- opendaylight/md-sal/samples/pom.xml | 2 +- opendaylight/md-sal/samples/toaster-consumer/pom.xml | 2 +- opendaylight/md-sal/samples/toaster-it/pom.xml | 2 +- opendaylight/md-sal/samples/toaster-provider/pom.xml | 2 +- opendaylight/md-sal/samples/toaster/pom.xml | 2 +- pom.xml | 2 +- 73 files changed, 83 insertions(+), 83 deletions(-) diff --git a/akka/pom.xml b/akka/pom.xml index d369d6424ec..a700fdaaf94 100644 --- a/akka/pom.xml +++ b/akka/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller akka-aggregator - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT pom diff --git a/akka/repackaged-akka-jar/pom.xml b/akka/repackaged-akka-jar/pom.xml index 94a2b48fa0b..c380207c629 100644 --- a/akka/repackaged-akka-jar/pom.xml +++ b/akka/repackaged-akka-jar/pom.xml @@ -20,7 +20,7 @@ org.opendaylight.controller repackaged-akka-jar jar - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ${project.artifactId} diff --git a/akka/repackaged-akka/pom.xml b/akka/repackaged-akka/pom.xml index d1d606db832..5f41b6d9f43 100644 --- a/akka/repackaged-akka/pom.xml +++ b/akka/repackaged-akka/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.controller bundle-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../../bundle-parent diff --git a/artifacts/pom.xml b/artifacts/pom.xml index 5325f319f76..fcfff268cf3 100644 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -20,7 +20,7 @@ org.opendaylight.controller controller-artifacts - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT pom @@ -395,27 +395,27 @@ ${project.groupId} netty-event-executor-config - 0.17.5-SNAPSHOT + 0.17.6-SNAPSHOT ${project.groupId} netty-threadgroup-config - 0.17.5-SNAPSHOT + 0.17.6-SNAPSHOT ${project.groupId} netty-timer-config - 0.17.5-SNAPSHOT + 0.17.6-SNAPSHOT ${project.groupId} threadpool-config-api - 0.17.5-SNAPSHOT + 0.17.6-SNAPSHOT ${project.groupId} threadpool-config-impl - 0.17.5-SNAPSHOT + 0.17.6-SNAPSHOT ${project.groupId} diff --git a/benchmark/api/pom.xml b/benchmark/api/pom.xml index d385978a646..2d2e0486139 100644 --- a/benchmark/api/pom.xml +++ b/benchmark/api/pom.xml @@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/benchmark/dsbenchmark/pom.xml b/benchmark/dsbenchmark/pom.xml index 021d80b1c3f..db3366cb5b1 100644 --- a/benchmark/dsbenchmark/pom.xml +++ b/benchmark/dsbenchmark/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/benchmark/ntfbenchmark/pom.xml b/benchmark/ntfbenchmark/pom.xml index 62670c222f8..97b147e2ac2 100644 --- a/benchmark/ntfbenchmark/pom.xml +++ b/benchmark/ntfbenchmark/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/benchmark/pom.xml b/benchmark/pom.xml index aa3f14cd99d..aa474cde431 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -16,7 +16,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller benchmark-aggregator - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT pom diff --git a/benchmark/rpcbenchmark/pom.xml b/benchmark/rpcbenchmark/pom.xml index 98b5d4fc722..304109abfbf 100644 --- a/benchmark/rpcbenchmark/pom.xml +++ b/benchmark/rpcbenchmark/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/bundle-parent/pom.xml b/bundle-parent/pom.xml index eb33455d1d7..3ecad46bfdd 100644 --- a/bundle-parent/pom.xml +++ b/bundle-parent/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller bundle-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT pom @@ -25,7 +25,7 @@ org.opendaylight.controller controller-artifacts - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT pom import diff --git a/docs/pom.xml b/docs/pom.xml index 24340be9a2d..c68eb84362c 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -19,7 +19,7 @@ org.opendaylight.controller controller-docs jar - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ${project.artifactId} Controller documentation diff --git a/features/features-controller-experimental/pom.xml b/features/features-controller-experimental/pom.xml index 59eeb76bf65..eb360129b4c 100644 --- a/features/features-controller-experimental/pom.xml +++ b/features/features-controller-experimental/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-controller-experimental - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT feature OpenDaylight :: Controller :: Experimental Features Controller Experimental Features diff --git a/features/features-controller-testing/pom.xml b/features/features-controller-testing/pom.xml index 0795fcfcb60..5d3cbf72046 100644 --- a/features/features-controller-testing/pom.xml +++ b/features/features-controller-testing/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-controller-testing - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT feature OpenDaylight :: Controller :: Features to support CSIT testing Controller CSIT Features diff --git a/features/features-controller/pom.xml b/features/features-controller/pom.xml index 76a4eeb5913..9bfa6117b2f 100644 --- a/features/features-controller/pom.xml +++ b/features/features-controller/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-controller - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT feature OpenDaylight :: Controller :: Features Controller Production Features diff --git a/features/odl-clustering-test-app/pom.xml b/features/odl-clustering-test-app/pom.xml index 58c5f3d30b9..37623cc1ca9 100644 --- a/features/odl-clustering-test-app/pom.xml +++ b/features/odl-clustering-test-app/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-akka/pom.xml b/features/odl-controller-akka/pom.xml index 0c6a41464a9..52e8b77a218 100644 --- a/features/odl-controller-akka/pom.xml +++ b/features/odl-controller-akka/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.controller single-feature-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-blueprint/pom.xml b/features/odl-controller-blueprint/pom.xml index 016a6401d1a..4b48181de52 100644 --- a/features/odl-controller-blueprint/pom.xml +++ b/features/odl-controller-blueprint/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.controller single-feature-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-broker-local/pom.xml b/features/odl-controller-broker-local/pom.xml index 3c5729ee579..dfd33716e2c 100644 --- a/features/odl-controller-broker-local/pom.xml +++ b/features/odl-controller-broker-local/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-exp-netty-config/pom.xml b/features/odl-controller-exp-netty-config/pom.xml index 438014dd524..d6995d06542 100644 --- a/features/odl-controller-exp-netty-config/pom.xml +++ b/features/odl-controller-exp-netty-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-mdsal-common/pom.xml b/features/odl-controller-mdsal-common/pom.xml index a52e83cc289..5922279a9d3 100644 --- a/features/odl-controller-mdsal-common/pom.xml +++ b/features/odl-controller-mdsal-common/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-scala/pom.xml b/features/odl-controller-scala/pom.xml index 817b86c2bbf..eb1640cb611 100644 --- a/features/odl-controller-scala/pom.xml +++ b/features/odl-controller-scala/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.controller single-feature-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../single-feature-parent diff --git a/features/odl-jolokia/pom.xml b/features/odl-jolokia/pom.xml index 274de30bc47..bf373c26ca6 100644 --- a/features/odl-jolokia/pom.xml +++ b/features/odl-jolokia/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-benchmark/pom.xml b/features/odl-mdsal-benchmark/pom.xml index 02c4622c755..9388eea26e6 100644 --- a/features/odl-mdsal-benchmark/pom.xml +++ b/features/odl-mdsal-benchmark/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-broker/pom.xml b/features/odl-mdsal-broker/pom.xml index 03d8425683c..ceba6421260 100644 --- a/features/odl-mdsal-broker/pom.xml +++ b/features/odl-mdsal-broker/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-clustering-commons/pom.xml b/features/odl-mdsal-clustering-commons/pom.xml index 5f6483ac8cc..533b0f4ea96 100644 --- a/features/odl-mdsal-clustering-commons/pom.xml +++ b/features/odl-mdsal-clustering-commons/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-distributed-datastore/pom.xml b/features/odl-mdsal-distributed-datastore/pom.xml index decb0b7fe9b..d17d2ee072c 100644 --- a/features/odl-mdsal-distributed-datastore/pom.xml +++ b/features/odl-mdsal-distributed-datastore/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-remoterpc-connector/pom.xml b/features/odl-mdsal-remoterpc-connector/pom.xml index 824c73cc3f6..98c58a37216 100644 --- a/features/odl-mdsal-remoterpc-connector/pom.xml +++ b/features/odl-mdsal-remoterpc-connector/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../single-feature-parent diff --git a/features/odl-toaster/pom.xml b/features/odl-toaster/pom.xml index 26dd751df19..b06b5776285 100644 --- a/features/odl-toaster/pom.xml +++ b/features/odl-toaster/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../single-feature-parent diff --git a/features/pom.xml b/features/pom.xml index 492fbf5c77a..6502ea527d2 100644 --- a/features/pom.xml +++ b/features/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-aggregator - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT pom diff --git a/features/single-feature-parent/pom.xml b/features/single-feature-parent/pom.xml index b281e2abfa1..17a51f27bcb 100644 --- a/features/single-feature-parent/pom.xml +++ b/features/single-feature-parent/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller single-feature-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT pom @@ -25,7 +25,7 @@ org.opendaylight.controller bundle-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT pom import diff --git a/jolokia/pom.xml b/jolokia/pom.xml index e3a08d58210..f88e9aa0332 100644 --- a/jolokia/pom.xml +++ b/jolokia/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller odl-jolokia-osgi - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT jar diff --git a/karaf/pom.xml b/karaf/pom.xml index b88fdd7ec05..ac2cb797b41 100644 --- a/karaf/pom.xml +++ b/karaf/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller controller-test-karaf - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT pom diff --git a/opendaylight/blueprint/pom.xml b/opendaylight/blueprint/pom.xml index 6e9254e7c03..1dc9e40f9ec 100644 --- a/opendaylight/blueprint/pom.xml +++ b/opendaylight/blueprint/pom.xml @@ -20,7 +20,7 @@ blueprint bundle ${project.artifactId} - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT diff --git a/opendaylight/config/netty-event-executor-config/pom.xml b/opendaylight/config/netty-event-executor-config/pom.xml index b2649639502..47437461f62 100644 --- a/opendaylight/config/netty-event-executor-config/pom.xml +++ b/opendaylight/config/netty-event-executor-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller netty-event-executor-config - 0.17.5-SNAPSHOT + 0.17.6-SNAPSHOT bundle ${project.artifactId} Configuration Wrapper around netty's event executor diff --git a/opendaylight/config/netty-threadgroup-config/pom.xml b/opendaylight/config/netty-threadgroup-config/pom.xml index a0dd1a124d2..3f6d347c607 100644 --- a/opendaylight/config/netty-threadgroup-config/pom.xml +++ b/opendaylight/config/netty-threadgroup-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller netty-threadgroup-config - 0.17.5-SNAPSHOT + 0.17.6-SNAPSHOT bundle ${project.artifactId} Configuration Wrapper around netty's event group diff --git a/opendaylight/config/netty-timer-config/pom.xml b/opendaylight/config/netty-timer-config/pom.xml index 782764bc873..5fb997b9c54 100644 --- a/opendaylight/config/netty-timer-config/pom.xml +++ b/opendaylight/config/netty-timer-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller netty-timer-config - 0.17.5-SNAPSHOT + 0.17.6-SNAPSHOT bundle ${project.artifactId} Configuration Wrapper around netty's timer diff --git a/opendaylight/config/pom.xml b/opendaylight/config/pom.xml index a274e195cd2..fb5041823e6 100644 --- a/opendaylight/config/pom.xml +++ b/opendaylight/config/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller config-aggregator - 0.17.5-SNAPSHOT + 0.17.6-SNAPSHOT pom diff --git a/opendaylight/config/threadpool-config-api/pom.xml b/opendaylight/config/threadpool-config-api/pom.xml index 549fd12e740..856df124b7f 100644 --- a/opendaylight/config/threadpool-config-api/pom.xml +++ b/opendaylight/config/threadpool-config-api/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller threadpool-config-api - 0.17.5-SNAPSHOT + 0.17.6-SNAPSHOT bundle ${project.artifactId} diff --git a/opendaylight/config/threadpool-config-impl/pom.xml b/opendaylight/config/threadpool-config-impl/pom.xml index 441652ad069..df7514094b0 100644 --- a/opendaylight/config/threadpool-config-impl/pom.xml +++ b/opendaylight/config/threadpool-config-impl/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller threadpool-config-impl - 0.17.5-SNAPSHOT + 0.17.6-SNAPSHOT bundle ${project.artifactId} @@ -20,7 +20,7 @@ org.opendaylight.controller controller-artifacts - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT pom import diff --git a/opendaylight/md-sal/cds-access-api/pom.xml b/opendaylight/md-sal/cds-access-api/pom.xml index b6bdd8a19e8..367a1e6fa32 100644 --- a/opendaylight/md-sal/cds-access-api/pom.xml +++ b/opendaylight/md-sal/cds-access-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/cds-access-client/pom.xml b/opendaylight/md-sal/cds-access-client/pom.xml index 488d59a2ddd..c04211b1e38 100644 --- a/opendaylight/md-sal/cds-access-client/pom.xml +++ b/opendaylight/md-sal/cds-access-client/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/cds-dom-api/pom.xml b/opendaylight/md-sal/cds-dom-api/pom.xml index 69e63f334ff..b94f711bf5e 100644 --- a/opendaylight/md-sal/cds-dom-api/pom.xml +++ b/opendaylight/md-sal/cds-dom-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/cds-mgmt-api/pom.xml b/opendaylight/md-sal/cds-mgmt-api/pom.xml index 6345235cdd6..b6ca61496ee 100644 --- a/opendaylight/md-sal/cds-mgmt-api/pom.xml +++ b/opendaylight/md-sal/cds-mgmt-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/eos-dom-akka/pom.xml b/opendaylight/md-sal/eos-dom-akka/pom.xml index f49305ee8cc..2b8ab33c879 100644 --- a/opendaylight/md-sal/eos-dom-akka/pom.xml +++ b/opendaylight/md-sal/eos-dom-akka/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.controller mdsal-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/mdsal-it-base/pom.xml b/opendaylight/md-sal/mdsal-it-base/pom.xml index aaf66e9628b..cd9bbd7527f 100644 --- a/opendaylight/md-sal/mdsal-it-base/pom.xml +++ b/opendaylight/md-sal/mdsal-it-base/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-it-base - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT bundle diff --git a/opendaylight/md-sal/mdsal-it-parent/pom.xml b/opendaylight/md-sal/mdsal-it-parent/pom.xml index c5a531dda25..70563c20ce3 100644 --- a/opendaylight/md-sal/mdsal-it-parent/pom.xml +++ b/opendaylight/md-sal/mdsal-it-parent/pom.xml @@ -19,7 +19,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-it-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT pom @@ -37,7 +37,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller controller-artifacts - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT pom import diff --git a/opendaylight/md-sal/parent/pom.xml b/opendaylight/md-sal/parent/pom.xml index 8af0e2dd687..b6cd580093f 100644 --- a/opendaylight/md-sal/parent/pom.xml +++ b/opendaylight/md-sal/parent/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller mdsal-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT pom @@ -25,7 +25,7 @@ org.opendaylight.controller bundle-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT pom import diff --git a/opendaylight/md-sal/pom.xml b/opendaylight/md-sal/pom.xml index d5f8b565901..db386b18c92 100644 --- a/opendaylight/md-sal/pom.xml +++ b/opendaylight/md-sal/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller mdsal-aggregator - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT pom diff --git a/opendaylight/md-sal/sal-akka-raft-example/pom.xml b/opendaylight/md-sal/sal-akka-raft-example/pom.xml index ec3d9b8c6ab..3add8c59fe0 100644 --- a/opendaylight/md-sal/sal-akka-raft-example/pom.xml +++ b/opendaylight/md-sal/sal-akka-raft-example/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller mdsal-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-akka-raft/pom.xml b/opendaylight/md-sal/sal-akka-raft/pom.xml index a895800622c..86db631b324 100644 --- a/opendaylight/md-sal/sal-akka-raft/pom.xml +++ b/opendaylight/md-sal/sal-akka-raft/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml b/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml index 651ac72e33e..c20da308118 100644 --- a/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml +++ b/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-binding-it/pom.xml b/opendaylight/md-sal/sal-binding-it/pom.xml index 42537b2905f..724aed8c8bf 100644 --- a/opendaylight/md-sal/sal-binding-it/pom.xml +++ b/opendaylight/md-sal/sal-binding-it/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-it-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../mdsal-it-parent sal-binding-it diff --git a/opendaylight/md-sal/sal-cluster-admin-api/pom.xml b/opendaylight/md-sal/sal-cluster-admin-api/pom.xml index 213bdb02b17..b84976f8d06 100644 --- a/opendaylight/md-sal/sal-cluster-admin-api/pom.xml +++ b/opendaylight/md-sal/sal-cluster-admin-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml b/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml index d313fcaddf5..0658c28281b 100644 --- a/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml +++ b/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml b/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml index b44dbacb5be..3ead3c269d7 100644 --- a/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml +++ b/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml @@ -5,7 +5,7 @@ mdsal-parent org.opendaylight.controller - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../parent/pom.xml 4.0.0 diff --git a/opendaylight/md-sal/sal-clustering-commons/pom.xml b/opendaylight/md-sal/sal-clustering-commons/pom.xml index 49b093b1dab..c2c9bbb1653 100644 --- a/opendaylight/md-sal/sal-clustering-commons/pom.xml +++ b/opendaylight/md-sal/sal-clustering-commons/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-clustering-config/pom.xml b/opendaylight/md-sal/sal-clustering-config/pom.xml index c31255e39f4..edc6f4e9b89 100644 --- a/opendaylight/md-sal/sal-clustering-config/pom.xml +++ b/opendaylight/md-sal/sal-clustering-config/pom.xml @@ -18,7 +18,7 @@ org.opendaylight.controller sal-clustering-config - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT jar Configuration files for md-sal clustering diff --git a/opendaylight/md-sal/sal-common-util/pom.xml b/opendaylight/md-sal/sal-common-util/pom.xml index 893a065e893..edcc90f5e57 100644 --- a/opendaylight/md-sal/sal-common-util/pom.xml +++ b/opendaylight/md-sal/sal-common-util/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-distributed-datastore/pom.xml b/opendaylight/md-sal/sal-distributed-datastore/pom.xml index 164e47f3cd6..478fbf8578d 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/pom.xml +++ b/opendaylight/md-sal/sal-distributed-datastore/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml b/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml index e72d7ef0ce6..5c1ed985014 100644 --- a/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml +++ b/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-remoterpc-connector/pom.xml b/opendaylight/md-sal/sal-remoterpc-connector/pom.xml index d7f6dabd5f2..8695da5562e 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/pom.xml +++ b/opendaylight/md-sal/sal-remoterpc-connector/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-test-model/pom.xml b/opendaylight/md-sal/sal-test-model/pom.xml index bebe269aeca..168ca15ca7a 100644 --- a/opendaylight/md-sal/sal-test-model/pom.xml +++ b/opendaylight/md-sal/sal-test-model/pom.xml @@ -6,7 +6,7 @@ org.opendaylight.controller mdsal-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml index 303c8c31068..2b0b09f245f 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller.samples clustering-it-config - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT jar diff --git a/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml index 9ef37a9ff78..ae7f662fabe 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml @@ -12,7 +12,7 @@ mdsal-parent org.opendaylight.controller - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../../../parent/pom.xml 4.0.0 diff --git a/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml index 3091bb75782..ff9ea5f6389 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.controller mdsal-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../../../parent diff --git a/opendaylight/md-sal/samples/clustering-test-app/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/pom.xml index 7d464e1c45b..f3b6ee8f887 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller.samples clustering-test-app - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT pom diff --git a/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml index 3f39ace2a4d..7e5e39f5b96 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../../../parent diff --git a/opendaylight/md-sal/samples/pom.xml b/opendaylight/md-sal/samples/pom.xml index 410e290f4cd..a99dce20f13 100644 --- a/opendaylight/md-sal/samples/pom.xml +++ b/opendaylight/md-sal/samples/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller.samples samples-aggregator - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT pom diff --git a/opendaylight/md-sal/samples/toaster-consumer/pom.xml b/opendaylight/md-sal/samples/toaster-consumer/pom.xml index 8baf774e93f..480d59a05a8 100644 --- a/opendaylight/md-sal/samples/toaster-consumer/pom.xml +++ b/opendaylight/md-sal/samples/toaster-consumer/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../../parent diff --git a/opendaylight/md-sal/samples/toaster-it/pom.xml b/opendaylight/md-sal/samples/toaster-it/pom.xml index 11107ef3f91..7eee9f5f556 100644 --- a/opendaylight/md-sal/samples/toaster-it/pom.xml +++ b/opendaylight/md-sal/samples/toaster-it/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.controller mdsal-it-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../../mdsal-it-parent sample-toaster-it diff --git a/opendaylight/md-sal/samples/toaster-provider/pom.xml b/opendaylight/md-sal/samples/toaster-provider/pom.xml index 59fcd69e7ee..f6103242fce 100644 --- a/opendaylight/md-sal/samples/toaster-provider/pom.xml +++ b/opendaylight/md-sal/samples/toaster-provider/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../../parent diff --git a/opendaylight/md-sal/samples/toaster/pom.xml b/opendaylight/md-sal/samples/toaster/pom.xml index 89d25743437..2edce297c52 100644 --- a/opendaylight/md-sal/samples/toaster/pom.xml +++ b/opendaylight/md-sal/samples/toaster/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.controller mdsal-parent - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT ../../parent diff --git a/pom.xml b/pom.xml index 7315175263d..8bea5fed5e2 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller releasepom - 6.0.5-SNAPSHOT + 6.0.6-SNAPSHOT pom controller From 0875001fa5c27015f44bd8afc802d148bc475775 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sun, 1 Jan 2023 19:03:45 +0100 Subject: [PATCH 21/69] Bump upstreams Adopt: - odlparent-11.0.4 - yangtools-9.0.6 - mdsal-10.0.6 Change-Id: Iad6e08c2fbaa66fd4499464e690a392b0e2c1786 Signed-off-by: Robert Varga --- akka/pom.xml | 2 +- akka/repackaged-akka-jar/pom.xml | 2 +- artifacts/pom.xml | 2 +- benchmark/pom.xml | 2 +- bundle-parent/pom.xml | 2 +- docs/pom.xml | 8 ++++---- features/features-controller-experimental/pom.xml | 2 +- features/features-controller-testing/pom.xml | 2 +- features/features-controller/pom.xml | 2 +- features/pom.xml | 2 +- features/single-feature-parent/pom.xml | 2 +- jolokia/pom.xml | 2 +- karaf/pom.xml | 2 +- opendaylight/blueprint/pom.xml | 6 +++--- opendaylight/config/netty-event-executor-config/pom.xml | 2 +- opendaylight/config/netty-threadgroup-config/pom.xml | 2 +- opendaylight/config/netty-timer-config/pom.xml | 2 +- opendaylight/config/pom.xml | 2 +- opendaylight/config/threadpool-config-api/pom.xml | 2 +- opendaylight/config/threadpool-config-impl/pom.xml | 2 +- opendaylight/md-sal/cds-access-client/pom.xml | 1 + opendaylight/md-sal/mdsal-it-base/pom.xml | 4 ++-- opendaylight/md-sal/mdsal-it-parent/pom.xml | 2 +- opendaylight/md-sal/parent/pom.xml | 2 +- opendaylight/md-sal/pom.xml | 2 +- opendaylight/md-sal/sal-clustering-config/pom.xml | 2 +- .../samples/clustering-test-app/configuration/pom.xml | 2 +- opendaylight/md-sal/samples/clustering-test-app/pom.xml | 2 +- opendaylight/md-sal/samples/pom.xml | 2 +- pom.xml | 2 +- 30 files changed, 36 insertions(+), 35 deletions(-) diff --git a/akka/pom.xml b/akka/pom.xml index a700fdaaf94..ab09ea07e5d 100644 --- a/akka/pom.xml +++ b/akka/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.3 + 11.0.4 diff --git a/akka/repackaged-akka-jar/pom.xml b/akka/repackaged-akka-jar/pom.xml index c380207c629..b50a9fa91cb 100644 --- a/akka/repackaged-akka-jar/pom.xml +++ b/akka/repackaged-akka-jar/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent - 11.0.3 + 11.0.4 diff --git a/artifacts/pom.xml b/artifacts/pom.xml index fcfff268cf3..86ba7321484 100644 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.3 + 11.0.4 diff --git a/benchmark/pom.xml b/benchmark/pom.xml index aa474cde431..cdf275979ce 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -10,7 +10,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent odlparent-lite - 11.0.3 + 11.0.4 diff --git a/bundle-parent/pom.xml b/bundle-parent/pom.xml index 3ecad46bfdd..00ff308d025 100644 --- a/bundle-parent/pom.xml +++ b/bundle-parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.mdsal dom-parent - 10.0.5 + 10.0.6 diff --git a/docs/pom.xml b/docs/pom.xml index c68eb84362c..56e2ab3fcb4 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent - 11.0.3 + 11.0.4 @@ -229,9 +229,9 @@ http://netty.io/4.1/api/ https://commons.apache.org/proper/commons-lang/javadocs/api-release/ - https://www.javadoc.io/doc/org.opendaylight.odlparent/odlparent-docs/11.0.3/ - https://www.javadoc.io/doc/org.opendaylight.yangtools/yangtools-docs/9.0.5/ - https://www.javadoc.io/doc/org.opendaylight.mdsal/mdsal-docs/10.0.5/ + https://www.javadoc.io/doc/org.opendaylight.odlparent/odlparent-docs/11.0.4/ + https://www.javadoc.io/doc/org.opendaylight.yangtools/yangtools-docs/9.0.6/ + https://www.javadoc.io/doc/org.opendaylight.mdsal/mdsal-docs/10.0.6/ diff --git a/features/features-controller-experimental/pom.xml b/features/features-controller-experimental/pom.xml index eb360129b4c..438522980e2 100644 --- a/features/features-controller-experimental/pom.xml +++ b/features/features-controller-experimental/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent feature-repo-parent - 11.0.3 + 11.0.4 diff --git a/features/features-controller-testing/pom.xml b/features/features-controller-testing/pom.xml index 5d3cbf72046..7d929a98bc9 100644 --- a/features/features-controller-testing/pom.xml +++ b/features/features-controller-testing/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent feature-repo-parent - 11.0.3 + 11.0.4 diff --git a/features/features-controller/pom.xml b/features/features-controller/pom.xml index 9bfa6117b2f..e63737098c3 100644 --- a/features/features-controller/pom.xml +++ b/features/features-controller/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent feature-repo-parent - 11.0.3 + 11.0.4 diff --git a/features/pom.xml b/features/pom.xml index 6502ea527d2..18784c5f6e3 100644 --- a/features/pom.xml +++ b/features/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.3 + 11.0.4 diff --git a/features/single-feature-parent/pom.xml b/features/single-feature-parent/pom.xml index 17a51f27bcb..c6cef6af086 100644 --- a/features/single-feature-parent/pom.xml +++ b/features/single-feature-parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent single-feature-parent - 11.0.3 + 11.0.4 diff --git a/jolokia/pom.xml b/jolokia/pom.xml index f88e9aa0332..330f372a989 100644 --- a/jolokia/pom.xml +++ b/jolokia/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent - 11.0.3 + 11.0.4 diff --git a/karaf/pom.xml b/karaf/pom.xml index ac2cb797b41..4721fa707e8 100644 --- a/karaf/pom.xml +++ b/karaf/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent karaf4-parent - 11.0.3 + 11.0.4 diff --git a/opendaylight/blueprint/pom.xml b/opendaylight/blueprint/pom.xml index 1dc9e40f9ec..d1ca5613eba 100644 --- a/opendaylight/blueprint/pom.xml +++ b/opendaylight/blueprint/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.3 + 11.0.4 @@ -27,14 +27,14 @@ org.opendaylight.yangtools yangtools-artifacts - 9.0.5 + 9.0.6 pom import org.opendaylight.mdsal mdsal-artifacts - 10.0.5 + 10.0.6 pom import diff --git a/opendaylight/config/netty-event-executor-config/pom.xml b/opendaylight/config/netty-event-executor-config/pom.xml index 47437461f62..fa543f76ff2 100644 --- a/opendaylight/config/netty-event-executor-config/pom.xml +++ b/opendaylight/config/netty-event-executor-config/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.3 + 11.0.4 diff --git a/opendaylight/config/netty-threadgroup-config/pom.xml b/opendaylight/config/netty-threadgroup-config/pom.xml index 3f6d347c607..919b8fa160a 100644 --- a/opendaylight/config/netty-threadgroup-config/pom.xml +++ b/opendaylight/config/netty-threadgroup-config/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.3 + 11.0.4 diff --git a/opendaylight/config/netty-timer-config/pom.xml b/opendaylight/config/netty-timer-config/pom.xml index 5fb997b9c54..9a5a28c7286 100644 --- a/opendaylight/config/netty-timer-config/pom.xml +++ b/opendaylight/config/netty-timer-config/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.3 + 11.0.4 diff --git a/opendaylight/config/pom.xml b/opendaylight/config/pom.xml index fb5041823e6..0bcc9f9a9ee 100644 --- a/opendaylight/config/pom.xml +++ b/opendaylight/config/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.3 + 11.0.4 diff --git a/opendaylight/config/threadpool-config-api/pom.xml b/opendaylight/config/threadpool-config-api/pom.xml index 856df124b7f..d6b81ce45cf 100644 --- a/opendaylight/config/threadpool-config-api/pom.xml +++ b/opendaylight/config/threadpool-config-api/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.3 + 11.0.4 diff --git a/opendaylight/config/threadpool-config-impl/pom.xml b/opendaylight/config/threadpool-config-impl/pom.xml index df7514094b0..1af6f3203c1 100644 --- a/opendaylight/config/threadpool-config-impl/pom.xml +++ b/opendaylight/config/threadpool-config-impl/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.3 + 11.0.4 diff --git a/opendaylight/md-sal/cds-access-client/pom.xml b/opendaylight/md-sal/cds-access-client/pom.xml index c04211b1e38..d53b7f0c8e2 100644 --- a/opendaylight/md-sal/cds-access-client/pom.xml +++ b/opendaylight/md-sal/cds-access-client/pom.xml @@ -44,6 +44,7 @@ org.mockito mockito-core + test com.typesafe.akka diff --git a/opendaylight/md-sal/mdsal-it-base/pom.xml b/opendaylight/md-sal/mdsal-it-base/pom.xml index cd9bbd7527f..0e45be62c8c 100644 --- a/opendaylight/md-sal/mdsal-it-base/pom.xml +++ b/opendaylight/md-sal/mdsal-it-base/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent bundle-parent - 11.0.3 + 11.0.4 @@ -26,7 +26,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.mdsal mdsal-artifacts - 10.0.5 + 10.0.6 pom import diff --git a/opendaylight/md-sal/mdsal-it-parent/pom.xml b/opendaylight/md-sal/mdsal-it-parent/pom.xml index 70563c20ce3..2e87bafbcce 100644 --- a/opendaylight/md-sal/mdsal-it-parent/pom.xml +++ b/opendaylight/md-sal/mdsal-it-parent/pom.xml @@ -13,7 +13,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent bundle-parent - 11.0.3 + 11.0.4 diff --git a/opendaylight/md-sal/parent/pom.xml b/opendaylight/md-sal/parent/pom.xml index b6cd580093f..e1dc21ae5f6 100644 --- a/opendaylight/md-sal/parent/pom.xml +++ b/opendaylight/md-sal/parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.mdsal binding-parent - 10.0.5 + 10.0.6 diff --git a/opendaylight/md-sal/pom.xml b/opendaylight/md-sal/pom.xml index db386b18c92..aecd5d8b78c 100644 --- a/opendaylight/md-sal/pom.xml +++ b/opendaylight/md-sal/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.3 + 11.0.4 diff --git a/opendaylight/md-sal/sal-clustering-config/pom.xml b/opendaylight/md-sal/sal-clustering-config/pom.xml index edc6f4e9b89..cdbb41330bf 100644 --- a/opendaylight/md-sal/sal-clustering-config/pom.xml +++ b/opendaylight/md-sal/sal-clustering-config/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.3 + 11.0.4 diff --git a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml index 2b0b09f245f..b465682e994 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.3 + 11.0.4 diff --git a/opendaylight/md-sal/samples/clustering-test-app/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/pom.xml index f3b6ee8f887..921686b221b 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.3 + 11.0.4 diff --git a/opendaylight/md-sal/samples/pom.xml b/opendaylight/md-sal/samples/pom.xml index a99dce20f13..fba9ed0f87d 100644 --- a/opendaylight/md-sal/samples/pom.xml +++ b/opendaylight/md-sal/samples/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.3 + 11.0.4 diff --git a/pom.xml b/pom.xml index 8bea5fed5e2..afde092dd3b 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.3 + 11.0.4 From d4293f65b471ad8476f88d61bf9b7af7cdbc7ac0 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 29 Nov 2022 20:00:38 +0100 Subject: [PATCH 22/69] Define PayloadVersion.CHLORINE_SR2 Add the definition of PayloadVersion.CHLORINE_SR2. This is backwards compatiblein most senses. JIRA: CONTROLLER-2056 Change-Id: Ia39ccf117ec1a0eb0edf909fbaea903f13c185f3 Signed-off-by: Robert Varga (cherry picked from commit 058765d3385b98d6e6bfc9d5aab1d0a2d6769dd6) --- .../AbstractVersionedShardDataTreeSnapshot.java | 2 ++ .../datastore/persisted/PayloadVersion.java | 14 +++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractVersionedShardDataTreeSnapshot.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractVersionedShardDataTreeSnapshot.java index 5e85434e4aa..be38f29b449 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractVersionedShardDataTreeSnapshot.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractVersionedShardDataTreeSnapshot.java @@ -34,6 +34,7 @@ abstract class AbstractVersionedShardDataTreeSnapshot extends ShardDataTreeSnaps case SODIUM_SR1: return new ShardSnapshotState(readSnapshot(in), true); case MAGNESIUM: + case CHLORINE_SR2: return new ShardSnapshotState(readSnapshot(in), false); case TEST_FUTURE_VERSION: case TEST_PAST_VERSION: @@ -77,6 +78,7 @@ private void versionedSerialize(final ObjectOutput out, final PayloadVersion ver switch (version) { case SODIUM_SR1: case MAGNESIUM: + case CHLORINE_SR2: // Sodium and Magnesium snapshots use Java Serialization, but differ in stream format out.writeObject(this); return; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PayloadVersion.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PayloadVersion.java index 516f2592627..c3382f99d6c 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PayloadVersion.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PayloadVersion.java @@ -71,6 +71,17 @@ public NormalizedNodeStreamVersion getStreamVersion() { } }, + /** + * ABI version shipped enabled {@code 2022.09 Chlorine SR2}. This version revises the serialization format of + * payloads proxies to reduce their size. Otherwise this format is equivalent to {@link #MAGNESIUM}. + */ + CHLORINE_SR2(9) { + @Override + public NormalizedNodeStreamVersion getStreamVersion() { + return NormalizedNodeStreamVersion.MAGNESIUM; + } + }, + /** * Version which is newer than any other version. This version exists purely for testing purposes. */ @@ -130,7 +141,8 @@ public short shortValue() { case 0, 1, 2, 3, 4, 5, 6 -> throw new PastVersionException(version, SODIUM_SR1); case 7 -> SODIUM_SR1; case 8 -> MAGNESIUM; - default -> throw new FutureVersionException(version, MAGNESIUM); + case 9 -> CHLORINE_SR2; + default -> throw new FutureVersionException(version, CHLORINE_SR2); }; } From d9b8d885d01e9a9b1742b0bc1ae8ce1f28c67db9 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 2 Jan 2023 13:24:53 +0100 Subject: [PATCH 23/69] Revert "Bump upstreams" This reverts commit 0875001fa5c27015f44bd8afc802d148bc475775, as we need to issue a release without this bump. Change-Id: I9652e8dbfd0ff401c7b3c8f3b9a253a60acfa078 Signed-off-by: Robert Varga --- akka/pom.xml | 2 +- akka/repackaged-akka-jar/pom.xml | 2 +- artifacts/pom.xml | 2 +- benchmark/pom.xml | 2 +- bundle-parent/pom.xml | 2 +- docs/pom.xml | 8 ++++---- features/features-controller-experimental/pom.xml | 2 +- features/features-controller-testing/pom.xml | 2 +- features/features-controller/pom.xml | 2 +- features/pom.xml | 2 +- features/single-feature-parent/pom.xml | 2 +- jolokia/pom.xml | 2 +- karaf/pom.xml | 2 +- opendaylight/blueprint/pom.xml | 6 +++--- opendaylight/config/netty-event-executor-config/pom.xml | 2 +- opendaylight/config/netty-threadgroup-config/pom.xml | 2 +- opendaylight/config/netty-timer-config/pom.xml | 2 +- opendaylight/config/pom.xml | 2 +- opendaylight/config/threadpool-config-api/pom.xml | 2 +- opendaylight/config/threadpool-config-impl/pom.xml | 2 +- opendaylight/md-sal/cds-access-client/pom.xml | 1 - opendaylight/md-sal/mdsal-it-base/pom.xml | 4 ++-- opendaylight/md-sal/mdsal-it-parent/pom.xml | 2 +- opendaylight/md-sal/parent/pom.xml | 2 +- opendaylight/md-sal/pom.xml | 2 +- opendaylight/md-sal/sal-clustering-config/pom.xml | 2 +- .../samples/clustering-test-app/configuration/pom.xml | 2 +- opendaylight/md-sal/samples/clustering-test-app/pom.xml | 2 +- opendaylight/md-sal/samples/pom.xml | 2 +- pom.xml | 2 +- 30 files changed, 35 insertions(+), 36 deletions(-) diff --git a/akka/pom.xml b/akka/pom.xml index ab09ea07e5d..a700fdaaf94 100644 --- a/akka/pom.xml +++ b/akka/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.4 + 11.0.3 diff --git a/akka/repackaged-akka-jar/pom.xml b/akka/repackaged-akka-jar/pom.xml index b50a9fa91cb..c380207c629 100644 --- a/akka/repackaged-akka-jar/pom.xml +++ b/akka/repackaged-akka-jar/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent - 11.0.4 + 11.0.3 diff --git a/artifacts/pom.xml b/artifacts/pom.xml index 86ba7321484..fcfff268cf3 100644 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.4 + 11.0.3 diff --git a/benchmark/pom.xml b/benchmark/pom.xml index cdf275979ce..aa474cde431 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -10,7 +10,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent odlparent-lite - 11.0.4 + 11.0.3 diff --git a/bundle-parent/pom.xml b/bundle-parent/pom.xml index 00ff308d025..3ecad46bfdd 100644 --- a/bundle-parent/pom.xml +++ b/bundle-parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.mdsal dom-parent - 10.0.6 + 10.0.5 diff --git a/docs/pom.xml b/docs/pom.xml index 56e2ab3fcb4..c68eb84362c 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent - 11.0.4 + 11.0.3 @@ -229,9 +229,9 @@ http://netty.io/4.1/api/ https://commons.apache.org/proper/commons-lang/javadocs/api-release/ - https://www.javadoc.io/doc/org.opendaylight.odlparent/odlparent-docs/11.0.4/ - https://www.javadoc.io/doc/org.opendaylight.yangtools/yangtools-docs/9.0.6/ - https://www.javadoc.io/doc/org.opendaylight.mdsal/mdsal-docs/10.0.6/ + https://www.javadoc.io/doc/org.opendaylight.odlparent/odlparent-docs/11.0.3/ + https://www.javadoc.io/doc/org.opendaylight.yangtools/yangtools-docs/9.0.5/ + https://www.javadoc.io/doc/org.opendaylight.mdsal/mdsal-docs/10.0.5/ diff --git a/features/features-controller-experimental/pom.xml b/features/features-controller-experimental/pom.xml index 438522980e2..eb360129b4c 100644 --- a/features/features-controller-experimental/pom.xml +++ b/features/features-controller-experimental/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent feature-repo-parent - 11.0.4 + 11.0.3 diff --git a/features/features-controller-testing/pom.xml b/features/features-controller-testing/pom.xml index 7d929a98bc9..5d3cbf72046 100644 --- a/features/features-controller-testing/pom.xml +++ b/features/features-controller-testing/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent feature-repo-parent - 11.0.4 + 11.0.3 diff --git a/features/features-controller/pom.xml b/features/features-controller/pom.xml index e63737098c3..9bfa6117b2f 100644 --- a/features/features-controller/pom.xml +++ b/features/features-controller/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent feature-repo-parent - 11.0.4 + 11.0.3 diff --git a/features/pom.xml b/features/pom.xml index 18784c5f6e3..6502ea527d2 100644 --- a/features/pom.xml +++ b/features/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.4 + 11.0.3 diff --git a/features/single-feature-parent/pom.xml b/features/single-feature-parent/pom.xml index c6cef6af086..17a51f27bcb 100644 --- a/features/single-feature-parent/pom.xml +++ b/features/single-feature-parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent single-feature-parent - 11.0.4 + 11.0.3 diff --git a/jolokia/pom.xml b/jolokia/pom.xml index 330f372a989..f88e9aa0332 100644 --- a/jolokia/pom.xml +++ b/jolokia/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent - 11.0.4 + 11.0.3 diff --git a/karaf/pom.xml b/karaf/pom.xml index 4721fa707e8..ac2cb797b41 100644 --- a/karaf/pom.xml +++ b/karaf/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent karaf4-parent - 11.0.4 + 11.0.3 diff --git a/opendaylight/blueprint/pom.xml b/opendaylight/blueprint/pom.xml index d1ca5613eba..1dc9e40f9ec 100644 --- a/opendaylight/blueprint/pom.xml +++ b/opendaylight/blueprint/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.4 + 11.0.3 @@ -27,14 +27,14 @@ org.opendaylight.yangtools yangtools-artifacts - 9.0.6 + 9.0.5 pom import org.opendaylight.mdsal mdsal-artifacts - 10.0.6 + 10.0.5 pom import diff --git a/opendaylight/config/netty-event-executor-config/pom.xml b/opendaylight/config/netty-event-executor-config/pom.xml index fa543f76ff2..47437461f62 100644 --- a/opendaylight/config/netty-event-executor-config/pom.xml +++ b/opendaylight/config/netty-event-executor-config/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.4 + 11.0.3 diff --git a/opendaylight/config/netty-threadgroup-config/pom.xml b/opendaylight/config/netty-threadgroup-config/pom.xml index 919b8fa160a..3f6d347c607 100644 --- a/opendaylight/config/netty-threadgroup-config/pom.xml +++ b/opendaylight/config/netty-threadgroup-config/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.4 + 11.0.3 diff --git a/opendaylight/config/netty-timer-config/pom.xml b/opendaylight/config/netty-timer-config/pom.xml index 9a5a28c7286..5fb997b9c54 100644 --- a/opendaylight/config/netty-timer-config/pom.xml +++ b/opendaylight/config/netty-timer-config/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.4 + 11.0.3 diff --git a/opendaylight/config/pom.xml b/opendaylight/config/pom.xml index 0bcc9f9a9ee..fb5041823e6 100644 --- a/opendaylight/config/pom.xml +++ b/opendaylight/config/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.4 + 11.0.3 diff --git a/opendaylight/config/threadpool-config-api/pom.xml b/opendaylight/config/threadpool-config-api/pom.xml index d6b81ce45cf..856df124b7f 100644 --- a/opendaylight/config/threadpool-config-api/pom.xml +++ b/opendaylight/config/threadpool-config-api/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.4 + 11.0.3 diff --git a/opendaylight/config/threadpool-config-impl/pom.xml b/opendaylight/config/threadpool-config-impl/pom.xml index 1af6f3203c1..df7514094b0 100644 --- a/opendaylight/config/threadpool-config-impl/pom.xml +++ b/opendaylight/config/threadpool-config-impl/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.4 + 11.0.3 diff --git a/opendaylight/md-sal/cds-access-client/pom.xml b/opendaylight/md-sal/cds-access-client/pom.xml index d53b7f0c8e2..c04211b1e38 100644 --- a/opendaylight/md-sal/cds-access-client/pom.xml +++ b/opendaylight/md-sal/cds-access-client/pom.xml @@ -44,7 +44,6 @@ org.mockito mockito-core - test com.typesafe.akka diff --git a/opendaylight/md-sal/mdsal-it-base/pom.xml b/opendaylight/md-sal/mdsal-it-base/pom.xml index 0e45be62c8c..cd9bbd7527f 100644 --- a/opendaylight/md-sal/mdsal-it-base/pom.xml +++ b/opendaylight/md-sal/mdsal-it-base/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent bundle-parent - 11.0.4 + 11.0.3 @@ -26,7 +26,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.mdsal mdsal-artifacts - 10.0.6 + 10.0.5 pom import diff --git a/opendaylight/md-sal/mdsal-it-parent/pom.xml b/opendaylight/md-sal/mdsal-it-parent/pom.xml index 2e87bafbcce..70563c20ce3 100644 --- a/opendaylight/md-sal/mdsal-it-parent/pom.xml +++ b/opendaylight/md-sal/mdsal-it-parent/pom.xml @@ -13,7 +13,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent bundle-parent - 11.0.4 + 11.0.3 diff --git a/opendaylight/md-sal/parent/pom.xml b/opendaylight/md-sal/parent/pom.xml index e1dc21ae5f6..b6cd580093f 100644 --- a/opendaylight/md-sal/parent/pom.xml +++ b/opendaylight/md-sal/parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.mdsal binding-parent - 10.0.6 + 10.0.5 diff --git a/opendaylight/md-sal/pom.xml b/opendaylight/md-sal/pom.xml index aecd5d8b78c..db386b18c92 100644 --- a/opendaylight/md-sal/pom.xml +++ b/opendaylight/md-sal/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.4 + 11.0.3 diff --git a/opendaylight/md-sal/sal-clustering-config/pom.xml b/opendaylight/md-sal/sal-clustering-config/pom.xml index cdbb41330bf..edc6f4e9b89 100644 --- a/opendaylight/md-sal/sal-clustering-config/pom.xml +++ b/opendaylight/md-sal/sal-clustering-config/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.4 + 11.0.3 diff --git a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml index b465682e994..2b0b09f245f 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.4 + 11.0.3 diff --git a/opendaylight/md-sal/samples/clustering-test-app/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/pom.xml index 921686b221b..f3b6ee8f887 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.4 + 11.0.3 diff --git a/opendaylight/md-sal/samples/pom.xml b/opendaylight/md-sal/samples/pom.xml index fba9ed0f87d..a99dce20f13 100644 --- a/opendaylight/md-sal/samples/pom.xml +++ b/opendaylight/md-sal/samples/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.4 + 11.0.3 diff --git a/pom.xml b/pom.xml index afde092dd3b..8bea5fed5e2 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.4 + 11.0.3 From e99d72fef8fe091d7a89db7f4938b27be1a2cb0e Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 2 Jan 2023 13:26:14 +0100 Subject: [PATCH 24/69] Bump versions to 6.0.7-SNAPSHOT This starts the next development iteration. Change-Id: I3b3a8620b02ae32796d8cfec6b6662541a564b2a Signed-off-by: Robert Varga --- akka/pom.xml | 2 +- akka/repackaged-akka-jar/pom.xml | 2 +- akka/repackaged-akka/pom.xml | 2 +- artifacts/pom.xml | 12 ++++++------ benchmark/api/pom.xml | 2 +- benchmark/dsbenchmark/pom.xml | 2 +- benchmark/ntfbenchmark/pom.xml | 2 +- benchmark/pom.xml | 2 +- benchmark/rpcbenchmark/pom.xml | 2 +- bundle-parent/pom.xml | 4 ++-- docs/pom.xml | 2 +- features/features-controller-experimental/pom.xml | 2 +- features/features-controller-testing/pom.xml | 2 +- features/features-controller/pom.xml | 2 +- features/odl-clustering-test-app/pom.xml | 2 +- features/odl-controller-akka/pom.xml | 2 +- features/odl-controller-blueprint/pom.xml | 2 +- features/odl-controller-broker-local/pom.xml | 2 +- features/odl-controller-exp-netty-config/pom.xml | 2 +- features/odl-controller-mdsal-common/pom.xml | 2 +- features/odl-controller-scala/pom.xml | 2 +- features/odl-jolokia/pom.xml | 2 +- features/odl-mdsal-benchmark/pom.xml | 2 +- features/odl-mdsal-broker/pom.xml | 2 +- features/odl-mdsal-clustering-commons/pom.xml | 2 +- features/odl-mdsal-distributed-datastore/pom.xml | 2 +- features/odl-mdsal-remoterpc-connector/pom.xml | 2 +- features/odl-toaster/pom.xml | 2 +- features/pom.xml | 2 +- features/single-feature-parent/pom.xml | 4 ++-- jolokia/pom.xml | 2 +- karaf/pom.xml | 2 +- opendaylight/blueprint/pom.xml | 2 +- .../config/netty-event-executor-config/pom.xml | 2 +- opendaylight/config/netty-threadgroup-config/pom.xml | 2 +- opendaylight/config/netty-timer-config/pom.xml | 2 +- opendaylight/config/pom.xml | 2 +- opendaylight/config/threadpool-config-api/pom.xml | 2 +- opendaylight/config/threadpool-config-impl/pom.xml | 4 ++-- opendaylight/md-sal/cds-access-api/pom.xml | 2 +- opendaylight/md-sal/cds-access-client/pom.xml | 2 +- opendaylight/md-sal/cds-dom-api/pom.xml | 2 +- opendaylight/md-sal/cds-mgmt-api/pom.xml | 2 +- opendaylight/md-sal/eos-dom-akka/pom.xml | 2 +- opendaylight/md-sal/mdsal-it-base/pom.xml | 2 +- opendaylight/md-sal/mdsal-it-parent/pom.xml | 4 ++-- opendaylight/md-sal/parent/pom.xml | 4 ++-- opendaylight/md-sal/pom.xml | 2 +- opendaylight/md-sal/sal-akka-raft-example/pom.xml | 2 +- opendaylight/md-sal/sal-akka-raft/pom.xml | 2 +- .../md-sal/sal-akka-segmented-journal/pom.xml | 2 +- opendaylight/md-sal/sal-binding-it/pom.xml | 2 +- opendaylight/md-sal/sal-cluster-admin-api/pom.xml | 2 +- opendaylight/md-sal/sal-cluster-admin-impl/pom.xml | 2 +- .../md-sal/sal-cluster-admin-karaf-cli/pom.xml | 2 +- opendaylight/md-sal/sal-clustering-commons/pom.xml | 2 +- opendaylight/md-sal/sal-clustering-config/pom.xml | 2 +- opendaylight/md-sal/sal-common-util/pom.xml | 2 +- .../md-sal/sal-distributed-datastore/pom.xml | 2 +- .../md-sal/sal-dummy-distributed-datastore/pom.xml | 2 +- opendaylight/md-sal/sal-remoterpc-connector/pom.xml | 2 +- opendaylight/md-sal/sal-test-model/pom.xml | 2 +- .../clustering-test-app/configuration/pom.xml | 2 +- .../samples/clustering-test-app/karaf-cli/pom.xml | 2 +- .../md-sal/samples/clustering-test-app/model/pom.xml | 2 +- .../md-sal/samples/clustering-test-app/pom.xml | 2 +- .../samples/clustering-test-app/provider/pom.xml | 2 +- opendaylight/md-sal/samples/pom.xml | 2 +- opendaylight/md-sal/samples/toaster-consumer/pom.xml | 2 +- opendaylight/md-sal/samples/toaster-it/pom.xml | 2 +- opendaylight/md-sal/samples/toaster-provider/pom.xml | 2 +- opendaylight/md-sal/samples/toaster/pom.xml | 2 +- pom.xml | 2 +- 73 files changed, 83 insertions(+), 83 deletions(-) diff --git a/akka/pom.xml b/akka/pom.xml index a700fdaaf94..6bf84c581b9 100644 --- a/akka/pom.xml +++ b/akka/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller akka-aggregator - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT pom diff --git a/akka/repackaged-akka-jar/pom.xml b/akka/repackaged-akka-jar/pom.xml index c380207c629..0ffe901114d 100644 --- a/akka/repackaged-akka-jar/pom.xml +++ b/akka/repackaged-akka-jar/pom.xml @@ -20,7 +20,7 @@ org.opendaylight.controller repackaged-akka-jar jar - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ${project.artifactId} diff --git a/akka/repackaged-akka/pom.xml b/akka/repackaged-akka/pom.xml index 5f41b6d9f43..5615214ff23 100644 --- a/akka/repackaged-akka/pom.xml +++ b/akka/repackaged-akka/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.controller bundle-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../../bundle-parent diff --git a/artifacts/pom.xml b/artifacts/pom.xml index fcfff268cf3..e7f3a6fca07 100644 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -20,7 +20,7 @@ org.opendaylight.controller controller-artifacts - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT pom @@ -395,27 +395,27 @@ ${project.groupId} netty-event-executor-config - 0.17.6-SNAPSHOT + 0.17.7-SNAPSHOT ${project.groupId} netty-threadgroup-config - 0.17.6-SNAPSHOT + 0.17.7-SNAPSHOT ${project.groupId} netty-timer-config - 0.17.6-SNAPSHOT + 0.17.7-SNAPSHOT ${project.groupId} threadpool-config-api - 0.17.6-SNAPSHOT + 0.17.7-SNAPSHOT ${project.groupId} threadpool-config-impl - 0.17.6-SNAPSHOT + 0.17.7-SNAPSHOT ${project.groupId} diff --git a/benchmark/api/pom.xml b/benchmark/api/pom.xml index 2d2e0486139..c12b14e6386 100644 --- a/benchmark/api/pom.xml +++ b/benchmark/api/pom.xml @@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/benchmark/dsbenchmark/pom.xml b/benchmark/dsbenchmark/pom.xml index db3366cb5b1..cbfccbcac09 100644 --- a/benchmark/dsbenchmark/pom.xml +++ b/benchmark/dsbenchmark/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/benchmark/ntfbenchmark/pom.xml b/benchmark/ntfbenchmark/pom.xml index 97b147e2ac2..d9c009b6f85 100644 --- a/benchmark/ntfbenchmark/pom.xml +++ b/benchmark/ntfbenchmark/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/benchmark/pom.xml b/benchmark/pom.xml index aa474cde431..02e2b529d3f 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -16,7 +16,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller benchmark-aggregator - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT pom diff --git a/benchmark/rpcbenchmark/pom.xml b/benchmark/rpcbenchmark/pom.xml index 304109abfbf..ef8affb600e 100644 --- a/benchmark/rpcbenchmark/pom.xml +++ b/benchmark/rpcbenchmark/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/bundle-parent/pom.xml b/bundle-parent/pom.xml index 3ecad46bfdd..17e7153e591 100644 --- a/bundle-parent/pom.xml +++ b/bundle-parent/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller bundle-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT pom @@ -25,7 +25,7 @@ org.opendaylight.controller controller-artifacts - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT pom import diff --git a/docs/pom.xml b/docs/pom.xml index c68eb84362c..3d1a78edb40 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -19,7 +19,7 @@ org.opendaylight.controller controller-docs jar - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ${project.artifactId} Controller documentation diff --git a/features/features-controller-experimental/pom.xml b/features/features-controller-experimental/pom.xml index eb360129b4c..005ea9da5ad 100644 --- a/features/features-controller-experimental/pom.xml +++ b/features/features-controller-experimental/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-controller-experimental - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT feature OpenDaylight :: Controller :: Experimental Features Controller Experimental Features diff --git a/features/features-controller-testing/pom.xml b/features/features-controller-testing/pom.xml index 5d3cbf72046..5523bfcd709 100644 --- a/features/features-controller-testing/pom.xml +++ b/features/features-controller-testing/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-controller-testing - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT feature OpenDaylight :: Controller :: Features to support CSIT testing Controller CSIT Features diff --git a/features/features-controller/pom.xml b/features/features-controller/pom.xml index 9bfa6117b2f..d6422c5888e 100644 --- a/features/features-controller/pom.xml +++ b/features/features-controller/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-controller - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT feature OpenDaylight :: Controller :: Features Controller Production Features diff --git a/features/odl-clustering-test-app/pom.xml b/features/odl-clustering-test-app/pom.xml index 37623cc1ca9..dd88b122643 100644 --- a/features/odl-clustering-test-app/pom.xml +++ b/features/odl-clustering-test-app/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-akka/pom.xml b/features/odl-controller-akka/pom.xml index 52e8b77a218..edebb4c84fc 100644 --- a/features/odl-controller-akka/pom.xml +++ b/features/odl-controller-akka/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.controller single-feature-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-blueprint/pom.xml b/features/odl-controller-blueprint/pom.xml index 4b48181de52..c60a8a16709 100644 --- a/features/odl-controller-blueprint/pom.xml +++ b/features/odl-controller-blueprint/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.controller single-feature-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-broker-local/pom.xml b/features/odl-controller-broker-local/pom.xml index dfd33716e2c..e2f38df5957 100644 --- a/features/odl-controller-broker-local/pom.xml +++ b/features/odl-controller-broker-local/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-exp-netty-config/pom.xml b/features/odl-controller-exp-netty-config/pom.xml index d6995d06542..7edb280c0e7 100644 --- a/features/odl-controller-exp-netty-config/pom.xml +++ b/features/odl-controller-exp-netty-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-mdsal-common/pom.xml b/features/odl-controller-mdsal-common/pom.xml index 5922279a9d3..47b81f8e0f2 100644 --- a/features/odl-controller-mdsal-common/pom.xml +++ b/features/odl-controller-mdsal-common/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-scala/pom.xml b/features/odl-controller-scala/pom.xml index eb1640cb611..f6b1a1ea56e 100644 --- a/features/odl-controller-scala/pom.xml +++ b/features/odl-controller-scala/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.controller single-feature-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../single-feature-parent diff --git a/features/odl-jolokia/pom.xml b/features/odl-jolokia/pom.xml index bf373c26ca6..389d228ab54 100644 --- a/features/odl-jolokia/pom.xml +++ b/features/odl-jolokia/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-benchmark/pom.xml b/features/odl-mdsal-benchmark/pom.xml index 9388eea26e6..0451f9cd71a 100644 --- a/features/odl-mdsal-benchmark/pom.xml +++ b/features/odl-mdsal-benchmark/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-broker/pom.xml b/features/odl-mdsal-broker/pom.xml index ceba6421260..0955b2ed87c 100644 --- a/features/odl-mdsal-broker/pom.xml +++ b/features/odl-mdsal-broker/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-clustering-commons/pom.xml b/features/odl-mdsal-clustering-commons/pom.xml index 533b0f4ea96..f2b28d17ebd 100644 --- a/features/odl-mdsal-clustering-commons/pom.xml +++ b/features/odl-mdsal-clustering-commons/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-distributed-datastore/pom.xml b/features/odl-mdsal-distributed-datastore/pom.xml index d17d2ee072c..6897e7ba753 100644 --- a/features/odl-mdsal-distributed-datastore/pom.xml +++ b/features/odl-mdsal-distributed-datastore/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-remoterpc-connector/pom.xml b/features/odl-mdsal-remoterpc-connector/pom.xml index 98c58a37216..c19bc6a42e7 100644 --- a/features/odl-mdsal-remoterpc-connector/pom.xml +++ b/features/odl-mdsal-remoterpc-connector/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../single-feature-parent diff --git a/features/odl-toaster/pom.xml b/features/odl-toaster/pom.xml index b06b5776285..23ddb35cc4a 100644 --- a/features/odl-toaster/pom.xml +++ b/features/odl-toaster/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../single-feature-parent diff --git a/features/pom.xml b/features/pom.xml index 6502ea527d2..c29076c42fe 100644 --- a/features/pom.xml +++ b/features/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-aggregator - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT pom diff --git a/features/single-feature-parent/pom.xml b/features/single-feature-parent/pom.xml index 17a51f27bcb..cf16740e818 100644 --- a/features/single-feature-parent/pom.xml +++ b/features/single-feature-parent/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller single-feature-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT pom @@ -25,7 +25,7 @@ org.opendaylight.controller bundle-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT pom import diff --git a/jolokia/pom.xml b/jolokia/pom.xml index f88e9aa0332..21cc435c985 100644 --- a/jolokia/pom.xml +++ b/jolokia/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller odl-jolokia-osgi - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT jar diff --git a/karaf/pom.xml b/karaf/pom.xml index ac2cb797b41..9a843bd0687 100644 --- a/karaf/pom.xml +++ b/karaf/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller controller-test-karaf - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT pom diff --git a/opendaylight/blueprint/pom.xml b/opendaylight/blueprint/pom.xml index 1dc9e40f9ec..2539db3fd27 100644 --- a/opendaylight/blueprint/pom.xml +++ b/opendaylight/blueprint/pom.xml @@ -20,7 +20,7 @@ blueprint bundle ${project.artifactId} - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT diff --git a/opendaylight/config/netty-event-executor-config/pom.xml b/opendaylight/config/netty-event-executor-config/pom.xml index 47437461f62..f8103f050cb 100644 --- a/opendaylight/config/netty-event-executor-config/pom.xml +++ b/opendaylight/config/netty-event-executor-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller netty-event-executor-config - 0.17.6-SNAPSHOT + 0.17.7-SNAPSHOT bundle ${project.artifactId} Configuration Wrapper around netty's event executor diff --git a/opendaylight/config/netty-threadgroup-config/pom.xml b/opendaylight/config/netty-threadgroup-config/pom.xml index 3f6d347c607..2c6943defb2 100644 --- a/opendaylight/config/netty-threadgroup-config/pom.xml +++ b/opendaylight/config/netty-threadgroup-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller netty-threadgroup-config - 0.17.6-SNAPSHOT + 0.17.7-SNAPSHOT bundle ${project.artifactId} Configuration Wrapper around netty's event group diff --git a/opendaylight/config/netty-timer-config/pom.xml b/opendaylight/config/netty-timer-config/pom.xml index 5fb997b9c54..782c2899d7e 100644 --- a/opendaylight/config/netty-timer-config/pom.xml +++ b/opendaylight/config/netty-timer-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller netty-timer-config - 0.17.6-SNAPSHOT + 0.17.7-SNAPSHOT bundle ${project.artifactId} Configuration Wrapper around netty's timer diff --git a/opendaylight/config/pom.xml b/opendaylight/config/pom.xml index fb5041823e6..3f3f95e5fb4 100644 --- a/opendaylight/config/pom.xml +++ b/opendaylight/config/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller config-aggregator - 0.17.6-SNAPSHOT + 0.17.7-SNAPSHOT pom diff --git a/opendaylight/config/threadpool-config-api/pom.xml b/opendaylight/config/threadpool-config-api/pom.xml index 856df124b7f..81b06cd0818 100644 --- a/opendaylight/config/threadpool-config-api/pom.xml +++ b/opendaylight/config/threadpool-config-api/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller threadpool-config-api - 0.17.6-SNAPSHOT + 0.17.7-SNAPSHOT bundle ${project.artifactId} diff --git a/opendaylight/config/threadpool-config-impl/pom.xml b/opendaylight/config/threadpool-config-impl/pom.xml index df7514094b0..28dccf0e92f 100644 --- a/opendaylight/config/threadpool-config-impl/pom.xml +++ b/opendaylight/config/threadpool-config-impl/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller threadpool-config-impl - 0.17.6-SNAPSHOT + 0.17.7-SNAPSHOT bundle ${project.artifactId} @@ -20,7 +20,7 @@ org.opendaylight.controller controller-artifacts - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT pom import diff --git a/opendaylight/md-sal/cds-access-api/pom.xml b/opendaylight/md-sal/cds-access-api/pom.xml index 367a1e6fa32..2e9b1f3a546 100644 --- a/opendaylight/md-sal/cds-access-api/pom.xml +++ b/opendaylight/md-sal/cds-access-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/cds-access-client/pom.xml b/opendaylight/md-sal/cds-access-client/pom.xml index c04211b1e38..7b17cbb412b 100644 --- a/opendaylight/md-sal/cds-access-client/pom.xml +++ b/opendaylight/md-sal/cds-access-client/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/cds-dom-api/pom.xml b/opendaylight/md-sal/cds-dom-api/pom.xml index b94f711bf5e..28365c793bf 100644 --- a/opendaylight/md-sal/cds-dom-api/pom.xml +++ b/opendaylight/md-sal/cds-dom-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/cds-mgmt-api/pom.xml b/opendaylight/md-sal/cds-mgmt-api/pom.xml index b6ca61496ee..64ed127c187 100644 --- a/opendaylight/md-sal/cds-mgmt-api/pom.xml +++ b/opendaylight/md-sal/cds-mgmt-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/eos-dom-akka/pom.xml b/opendaylight/md-sal/eos-dom-akka/pom.xml index 2b8ab33c879..34fb89ff570 100644 --- a/opendaylight/md-sal/eos-dom-akka/pom.xml +++ b/opendaylight/md-sal/eos-dom-akka/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.controller mdsal-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/mdsal-it-base/pom.xml b/opendaylight/md-sal/mdsal-it-base/pom.xml index cd9bbd7527f..1956fa4b7ae 100644 --- a/opendaylight/md-sal/mdsal-it-base/pom.xml +++ b/opendaylight/md-sal/mdsal-it-base/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-it-base - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT bundle diff --git a/opendaylight/md-sal/mdsal-it-parent/pom.xml b/opendaylight/md-sal/mdsal-it-parent/pom.xml index 70563c20ce3..1ed8b66d614 100644 --- a/opendaylight/md-sal/mdsal-it-parent/pom.xml +++ b/opendaylight/md-sal/mdsal-it-parent/pom.xml @@ -19,7 +19,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-it-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT pom @@ -37,7 +37,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller controller-artifacts - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT pom import diff --git a/opendaylight/md-sal/parent/pom.xml b/opendaylight/md-sal/parent/pom.xml index b6cd580093f..23af9b01d1f 100644 --- a/opendaylight/md-sal/parent/pom.xml +++ b/opendaylight/md-sal/parent/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller mdsal-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT pom @@ -25,7 +25,7 @@ org.opendaylight.controller bundle-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT pom import diff --git a/opendaylight/md-sal/pom.xml b/opendaylight/md-sal/pom.xml index db386b18c92..e28894beb7e 100644 --- a/opendaylight/md-sal/pom.xml +++ b/opendaylight/md-sal/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller mdsal-aggregator - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT pom diff --git a/opendaylight/md-sal/sal-akka-raft-example/pom.xml b/opendaylight/md-sal/sal-akka-raft-example/pom.xml index 3add8c59fe0..3f44508919c 100644 --- a/opendaylight/md-sal/sal-akka-raft-example/pom.xml +++ b/opendaylight/md-sal/sal-akka-raft-example/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller mdsal-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-akka-raft/pom.xml b/opendaylight/md-sal/sal-akka-raft/pom.xml index 86db631b324..956a52fdcdf 100644 --- a/opendaylight/md-sal/sal-akka-raft/pom.xml +++ b/opendaylight/md-sal/sal-akka-raft/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml b/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml index c20da308118..44316693fbe 100644 --- a/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml +++ b/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-binding-it/pom.xml b/opendaylight/md-sal/sal-binding-it/pom.xml index 724aed8c8bf..0b727e94fb5 100644 --- a/opendaylight/md-sal/sal-binding-it/pom.xml +++ b/opendaylight/md-sal/sal-binding-it/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-it-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../mdsal-it-parent sal-binding-it diff --git a/opendaylight/md-sal/sal-cluster-admin-api/pom.xml b/opendaylight/md-sal/sal-cluster-admin-api/pom.xml index b84976f8d06..09e076bc60d 100644 --- a/opendaylight/md-sal/sal-cluster-admin-api/pom.xml +++ b/opendaylight/md-sal/sal-cluster-admin-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml b/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml index 0658c28281b..62e6edd2859 100644 --- a/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml +++ b/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml b/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml index 3ead3c269d7..330d57e9b91 100644 --- a/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml +++ b/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml @@ -5,7 +5,7 @@ mdsal-parent org.opendaylight.controller - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../parent/pom.xml 4.0.0 diff --git a/opendaylight/md-sal/sal-clustering-commons/pom.xml b/opendaylight/md-sal/sal-clustering-commons/pom.xml index c2c9bbb1653..ee8491ef67d 100644 --- a/opendaylight/md-sal/sal-clustering-commons/pom.xml +++ b/opendaylight/md-sal/sal-clustering-commons/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-clustering-config/pom.xml b/opendaylight/md-sal/sal-clustering-config/pom.xml index edc6f4e9b89..c7599c0d6b7 100644 --- a/opendaylight/md-sal/sal-clustering-config/pom.xml +++ b/opendaylight/md-sal/sal-clustering-config/pom.xml @@ -18,7 +18,7 @@ org.opendaylight.controller sal-clustering-config - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT jar Configuration files for md-sal clustering diff --git a/opendaylight/md-sal/sal-common-util/pom.xml b/opendaylight/md-sal/sal-common-util/pom.xml index edcc90f5e57..6171cc70ca1 100644 --- a/opendaylight/md-sal/sal-common-util/pom.xml +++ b/opendaylight/md-sal/sal-common-util/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-distributed-datastore/pom.xml b/opendaylight/md-sal/sal-distributed-datastore/pom.xml index 478fbf8578d..be350fcf419 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/pom.xml +++ b/opendaylight/md-sal/sal-distributed-datastore/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml b/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml index 5c1ed985014..055dd454477 100644 --- a/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml +++ b/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-remoterpc-connector/pom.xml b/opendaylight/md-sal/sal-remoterpc-connector/pom.xml index 8695da5562e..022756adaca 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/pom.xml +++ b/opendaylight/md-sal/sal-remoterpc-connector/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-test-model/pom.xml b/opendaylight/md-sal/sal-test-model/pom.xml index 168ca15ca7a..2b582e16fb4 100644 --- a/opendaylight/md-sal/sal-test-model/pom.xml +++ b/opendaylight/md-sal/sal-test-model/pom.xml @@ -6,7 +6,7 @@ org.opendaylight.controller mdsal-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml index 2b0b09f245f..7b3c262657e 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller.samples clustering-it-config - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT jar diff --git a/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml index ae7f662fabe..db932114e34 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml @@ -12,7 +12,7 @@ mdsal-parent org.opendaylight.controller - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../../../parent/pom.xml 4.0.0 diff --git a/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml index ff9ea5f6389..2ec22af42e3 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.controller mdsal-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../../../parent diff --git a/opendaylight/md-sal/samples/clustering-test-app/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/pom.xml index f3b6ee8f887..2d6363010cd 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller.samples clustering-test-app - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT pom diff --git a/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml index 7e5e39f5b96..49ed2e7c50f 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../../../parent diff --git a/opendaylight/md-sal/samples/pom.xml b/opendaylight/md-sal/samples/pom.xml index a99dce20f13..47dfae18a6e 100644 --- a/opendaylight/md-sal/samples/pom.xml +++ b/opendaylight/md-sal/samples/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller.samples samples-aggregator - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT pom diff --git a/opendaylight/md-sal/samples/toaster-consumer/pom.xml b/opendaylight/md-sal/samples/toaster-consumer/pom.xml index 480d59a05a8..5c6007add72 100644 --- a/opendaylight/md-sal/samples/toaster-consumer/pom.xml +++ b/opendaylight/md-sal/samples/toaster-consumer/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../../parent diff --git a/opendaylight/md-sal/samples/toaster-it/pom.xml b/opendaylight/md-sal/samples/toaster-it/pom.xml index 7eee9f5f556..adabf548c25 100644 --- a/opendaylight/md-sal/samples/toaster-it/pom.xml +++ b/opendaylight/md-sal/samples/toaster-it/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.controller mdsal-it-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../../mdsal-it-parent sample-toaster-it diff --git a/opendaylight/md-sal/samples/toaster-provider/pom.xml b/opendaylight/md-sal/samples/toaster-provider/pom.xml index f6103242fce..e83405112d2 100644 --- a/opendaylight/md-sal/samples/toaster-provider/pom.xml +++ b/opendaylight/md-sal/samples/toaster-provider/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../../parent diff --git a/opendaylight/md-sal/samples/toaster/pom.xml b/opendaylight/md-sal/samples/toaster/pom.xml index 2edce297c52..15da02aee72 100644 --- a/opendaylight/md-sal/samples/toaster/pom.xml +++ b/opendaylight/md-sal/samples/toaster/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.controller mdsal-parent - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT ../../parent diff --git a/pom.xml b/pom.xml index 8bea5fed5e2..3ec4b550765 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller releasepom - 6.0.6-SNAPSHOT + 6.0.7-SNAPSHOT pom controller From ab36eee631efd0464733483da211f75b4e204892 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 2 Jan 2023 13:25:17 +0100 Subject: [PATCH 25/69] Revert "Revert "Bump upstreams"" This reverts commit 9053d501fd2c8327e5e94c6458705047df39e1e9, reinstating 0875001fa5c27015f44bd8afc802d148bc475775. Change-Id: I5731f64e992e3a92508f8e91d8a96a4f73483ffe Signed-off-by: Robert Varga --- akka/pom.xml | 2 +- akka/repackaged-akka-jar/pom.xml | 2 +- artifacts/pom.xml | 2 +- benchmark/pom.xml | 2 +- bundle-parent/pom.xml | 2 +- docs/pom.xml | 8 ++++---- features/features-controller-experimental/pom.xml | 2 +- features/features-controller-testing/pom.xml | 2 +- features/features-controller/pom.xml | 2 +- features/pom.xml | 2 +- features/single-feature-parent/pom.xml | 2 +- jolokia/pom.xml | 2 +- karaf/pom.xml | 2 +- opendaylight/blueprint/pom.xml | 6 +++--- opendaylight/config/netty-event-executor-config/pom.xml | 2 +- opendaylight/config/netty-threadgroup-config/pom.xml | 2 +- opendaylight/config/netty-timer-config/pom.xml | 2 +- opendaylight/config/pom.xml | 2 +- opendaylight/config/threadpool-config-api/pom.xml | 2 +- opendaylight/config/threadpool-config-impl/pom.xml | 2 +- opendaylight/md-sal/cds-access-client/pom.xml | 1 + opendaylight/md-sal/mdsal-it-base/pom.xml | 4 ++-- opendaylight/md-sal/mdsal-it-parent/pom.xml | 2 +- opendaylight/md-sal/parent/pom.xml | 2 +- opendaylight/md-sal/pom.xml | 2 +- opendaylight/md-sal/sal-clustering-config/pom.xml | 2 +- .../samples/clustering-test-app/configuration/pom.xml | 2 +- opendaylight/md-sal/samples/clustering-test-app/pom.xml | 2 +- opendaylight/md-sal/samples/pom.xml | 2 +- pom.xml | 2 +- 30 files changed, 36 insertions(+), 35 deletions(-) diff --git a/akka/pom.xml b/akka/pom.xml index 6bf84c581b9..9c269b9b448 100644 --- a/akka/pom.xml +++ b/akka/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.3 + 11.0.4 diff --git a/akka/repackaged-akka-jar/pom.xml b/akka/repackaged-akka-jar/pom.xml index 0ffe901114d..9489afe79eb 100644 --- a/akka/repackaged-akka-jar/pom.xml +++ b/akka/repackaged-akka-jar/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent - 11.0.3 + 11.0.4 diff --git a/artifacts/pom.xml b/artifacts/pom.xml index e7f3a6fca07..0636bf8257a 100644 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.3 + 11.0.4 diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 02e2b529d3f..fe53b15fc71 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -10,7 +10,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent odlparent-lite - 11.0.3 + 11.0.4 diff --git a/bundle-parent/pom.xml b/bundle-parent/pom.xml index 17e7153e591..e7d21b7ef28 100644 --- a/bundle-parent/pom.xml +++ b/bundle-parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.mdsal dom-parent - 10.0.5 + 10.0.6 diff --git a/docs/pom.xml b/docs/pom.xml index 3d1a78edb40..5beabba02b7 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent - 11.0.3 + 11.0.4 @@ -229,9 +229,9 @@ http://netty.io/4.1/api/ https://commons.apache.org/proper/commons-lang/javadocs/api-release/ - https://www.javadoc.io/doc/org.opendaylight.odlparent/odlparent-docs/11.0.3/ - https://www.javadoc.io/doc/org.opendaylight.yangtools/yangtools-docs/9.0.5/ - https://www.javadoc.io/doc/org.opendaylight.mdsal/mdsal-docs/10.0.5/ + https://www.javadoc.io/doc/org.opendaylight.odlparent/odlparent-docs/11.0.4/ + https://www.javadoc.io/doc/org.opendaylight.yangtools/yangtools-docs/9.0.6/ + https://www.javadoc.io/doc/org.opendaylight.mdsal/mdsal-docs/10.0.6/ diff --git a/features/features-controller-experimental/pom.xml b/features/features-controller-experimental/pom.xml index 005ea9da5ad..d8c26c1ac19 100644 --- a/features/features-controller-experimental/pom.xml +++ b/features/features-controller-experimental/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent feature-repo-parent - 11.0.3 + 11.0.4 diff --git a/features/features-controller-testing/pom.xml b/features/features-controller-testing/pom.xml index 5523bfcd709..843ae2a7019 100644 --- a/features/features-controller-testing/pom.xml +++ b/features/features-controller-testing/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent feature-repo-parent - 11.0.3 + 11.0.4 diff --git a/features/features-controller/pom.xml b/features/features-controller/pom.xml index d6422c5888e..3dde6399c55 100644 --- a/features/features-controller/pom.xml +++ b/features/features-controller/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent feature-repo-parent - 11.0.3 + 11.0.4 diff --git a/features/pom.xml b/features/pom.xml index c29076c42fe..72fc0710858 100644 --- a/features/pom.xml +++ b/features/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.3 + 11.0.4 diff --git a/features/single-feature-parent/pom.xml b/features/single-feature-parent/pom.xml index cf16740e818..a91b8cbc8c7 100644 --- a/features/single-feature-parent/pom.xml +++ b/features/single-feature-parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent single-feature-parent - 11.0.3 + 11.0.4 diff --git a/jolokia/pom.xml b/jolokia/pom.xml index 21cc435c985..c66d29a5491 100644 --- a/jolokia/pom.xml +++ b/jolokia/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent - 11.0.3 + 11.0.4 diff --git a/karaf/pom.xml b/karaf/pom.xml index 9a843bd0687..bb788d57f42 100644 --- a/karaf/pom.xml +++ b/karaf/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent karaf4-parent - 11.0.3 + 11.0.4 diff --git a/opendaylight/blueprint/pom.xml b/opendaylight/blueprint/pom.xml index 2539db3fd27..96c1d7d1e7e 100644 --- a/opendaylight/blueprint/pom.xml +++ b/opendaylight/blueprint/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.3 + 11.0.4 @@ -27,14 +27,14 @@ org.opendaylight.yangtools yangtools-artifacts - 9.0.5 + 9.0.6 pom import org.opendaylight.mdsal mdsal-artifacts - 10.0.5 + 10.0.6 pom import diff --git a/opendaylight/config/netty-event-executor-config/pom.xml b/opendaylight/config/netty-event-executor-config/pom.xml index f8103f050cb..7443e6fd8bc 100644 --- a/opendaylight/config/netty-event-executor-config/pom.xml +++ b/opendaylight/config/netty-event-executor-config/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.3 + 11.0.4 diff --git a/opendaylight/config/netty-threadgroup-config/pom.xml b/opendaylight/config/netty-threadgroup-config/pom.xml index 2c6943defb2..ccbd6c3e5a6 100644 --- a/opendaylight/config/netty-threadgroup-config/pom.xml +++ b/opendaylight/config/netty-threadgroup-config/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.3 + 11.0.4 diff --git a/opendaylight/config/netty-timer-config/pom.xml b/opendaylight/config/netty-timer-config/pom.xml index 782c2899d7e..c72230c3c2c 100644 --- a/opendaylight/config/netty-timer-config/pom.xml +++ b/opendaylight/config/netty-timer-config/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.3 + 11.0.4 diff --git a/opendaylight/config/pom.xml b/opendaylight/config/pom.xml index 3f3f95e5fb4..5b2710e0489 100644 --- a/opendaylight/config/pom.xml +++ b/opendaylight/config/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.3 + 11.0.4 diff --git a/opendaylight/config/threadpool-config-api/pom.xml b/opendaylight/config/threadpool-config-api/pom.xml index 81b06cd0818..ad718aaba96 100644 --- a/opendaylight/config/threadpool-config-api/pom.xml +++ b/opendaylight/config/threadpool-config-api/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.3 + 11.0.4 diff --git a/opendaylight/config/threadpool-config-impl/pom.xml b/opendaylight/config/threadpool-config-impl/pom.xml index 28dccf0e92f..f7327aa226e 100644 --- a/opendaylight/config/threadpool-config-impl/pom.xml +++ b/opendaylight/config/threadpool-config-impl/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.3 + 11.0.4 diff --git a/opendaylight/md-sal/cds-access-client/pom.xml b/opendaylight/md-sal/cds-access-client/pom.xml index 7b17cbb412b..9943fe2d708 100644 --- a/opendaylight/md-sal/cds-access-client/pom.xml +++ b/opendaylight/md-sal/cds-access-client/pom.xml @@ -44,6 +44,7 @@ org.mockito mockito-core + test com.typesafe.akka diff --git a/opendaylight/md-sal/mdsal-it-base/pom.xml b/opendaylight/md-sal/mdsal-it-base/pom.xml index 1956fa4b7ae..0a050b5009c 100644 --- a/opendaylight/md-sal/mdsal-it-base/pom.xml +++ b/opendaylight/md-sal/mdsal-it-base/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent bundle-parent - 11.0.3 + 11.0.4 @@ -26,7 +26,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.mdsal mdsal-artifacts - 10.0.5 + 10.0.6 pom import diff --git a/opendaylight/md-sal/mdsal-it-parent/pom.xml b/opendaylight/md-sal/mdsal-it-parent/pom.xml index 1ed8b66d614..9f68bf82e01 100644 --- a/opendaylight/md-sal/mdsal-it-parent/pom.xml +++ b/opendaylight/md-sal/mdsal-it-parent/pom.xml @@ -13,7 +13,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent bundle-parent - 11.0.3 + 11.0.4 diff --git a/opendaylight/md-sal/parent/pom.xml b/opendaylight/md-sal/parent/pom.xml index 23af9b01d1f..ae10ee5dd3a 100644 --- a/opendaylight/md-sal/parent/pom.xml +++ b/opendaylight/md-sal/parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.mdsal binding-parent - 10.0.5 + 10.0.6 diff --git a/opendaylight/md-sal/pom.xml b/opendaylight/md-sal/pom.xml index e28894beb7e..3c4e4da1f4e 100644 --- a/opendaylight/md-sal/pom.xml +++ b/opendaylight/md-sal/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.3 + 11.0.4 diff --git a/opendaylight/md-sal/sal-clustering-config/pom.xml b/opendaylight/md-sal/sal-clustering-config/pom.xml index c7599c0d6b7..854941777ef 100644 --- a/opendaylight/md-sal/sal-clustering-config/pom.xml +++ b/opendaylight/md-sal/sal-clustering-config/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.3 + 11.0.4 diff --git a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml index 7b3c262657e..95717bf99c4 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.3 + 11.0.4 diff --git a/opendaylight/md-sal/samples/clustering-test-app/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/pom.xml index 2d6363010cd..70986a72d3c 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.3 + 11.0.4 diff --git a/opendaylight/md-sal/samples/pom.xml b/opendaylight/md-sal/samples/pom.xml index 47dfae18a6e..c737cbeedc3 100644 --- a/opendaylight/md-sal/samples/pom.xml +++ b/opendaylight/md-sal/samples/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.3 + 11.0.4 diff --git a/pom.xml b/pom.xml index 3ec4b550765..aba952958f6 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.3 + 11.0.4 From c780f7e1d5eb9450c1b6a1d8bf9fbf814e4425fd Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 2 Dec 2022 13:05:36 +0100 Subject: [PATCH 26/69] Switch to use PayloadVersion.CHLORINE_SR2 PayloadVersion.CHLORINE_SR2 is more efficient format, switch to using it and deprecate old versions for removal. JIRA: CONTROLLER-2056 Change-Id: Id05a34a28e4d3e817fc6ff783669493ee80af3b7 Signed-off-by: Robert Varga (cherry picked from commit 0f88bd70a92ec2b536b0633a6ba4e6733cee475d) --- .../raft/persisted/LegacySerializable.java | 22 ++++++++++ .../cluster/datastore/persisted/AT.java | 1 + .../persisted/AbortTransactionPayload.java | 28 ++++++++----- .../AbstractIdentifiablePayload.java | 9 +++-- ...bstractVersionedShardDataTreeSnapshot.java | 2 +- .../cluster/datastore/persisted/CH.java | 1 + .../cluster/datastore/persisted/CT.java | 1 + .../persisted/CloseLocalHistoryPayload.java | 28 ++++++++----- .../persisted/CommitTransactionPayload.java | 40 +++++++++++++++---- .../persisted/CreateLocalHistoryPayload.java | 28 ++++++++----- .../cluster/datastore/persisted/DH.java | 1 + .../cluster/datastore/persisted/DS.java | 1 + .../cluster/datastore/persisted/DSS.java | 1 + .../cluster/datastore/persisted/DT.java | 1 + .../persisted/DisableTrackingPayload.java | 27 ++++++++----- .../cluster/datastore/persisted/FM.java | 2 + .../cluster/datastore/persisted/MS.java | 2 + .../cluster/datastore/persisted/PH.java | 1 + .../cluster/datastore/persisted/PT.java | 1 + .../datastore/persisted/PayloadVersion.java | 4 +- .../persisted/PurgeLocalHistoryPayload.java | 28 ++++++++----- .../persisted/PurgeTransactionPayload.java | 28 ++++++++----- .../cluster/datastore/persisted/SM.java | 2 +- .../cluster/datastore/persisted/SS.java | 1 + .../cluster/datastore/persisted/ST.java | 1 + .../persisted/ShardManagerSnapshot.java | 39 ++++++++++++------ .../persisted/ShardSnapshotState.java | 10 ++--- .../persisted/SkipTransactionsPayload.java | 28 ++++++++----- .../AbortTransactionPayloadTest.java | 2 +- .../CloseLocalHistoryPayloadTest.java | 2 +- .../CommitTransactionPayloadTest.java | 2 +- .../CreateLocalHistoryPayloadTest.java | 2 +- .../PurgeLocalHistoryPayloadTest.java | 2 +- .../PurgeTransactionPayloadTest.java | 2 +- .../SkipTransactionsPayloadTest.java | 2 +- 35 files changed, 252 insertions(+), 100 deletions(-) create mode 100644 opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/LegacySerializable.java diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/LegacySerializable.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/LegacySerializable.java new file mode 100644 index 00000000000..0e75d88fff8 --- /dev/null +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/LegacySerializable.java @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.raft.persisted; + +/** + * Marker interface for serializable objects which have been migrated. It implements {@link MigratedSerializable} and + * always returns {@code true} from {@link #isMigrated()}. This interface is marked as deprecated , as any of its users + * should also be marked as deprecated. + */ +@Deprecated +public interface LegacySerializable extends MigratedSerializable { + @Override + @Deprecated(forRemoval = true) + default boolean isMigrated() { + return true; + } +} diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AT.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AT.java index ddb9dc93e0f..8002815c4ad 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AT.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AT.java @@ -19,6 +19,7 @@ * Serialization proxy for {@link AbortTransactionPayload}. */ final class AT implements SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; private TransactionIdentifier identifier; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbortTransactionPayload.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbortTransactionPayload.java index 793f2ea0628..5f398853fe7 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbortTransactionPayload.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbortTransactionPayload.java @@ -12,6 +12,7 @@ import java.io.DataInput; import java.io.IOException; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; +import org.opendaylight.controller.cluster.raft.persisted.LegacySerializable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -20,8 +21,20 @@ * * @author Robert Varga */ -public final class AbortTransactionPayload extends AbstractIdentifiablePayload { +public sealed class AbortTransactionPayload extends AbstractIdentifiablePayload { + @Deprecated(since = "7.0.0", forRemoval = true) + private static final class Magnesium extends AbortTransactionPayload implements LegacySerializable { + @java.io.Serial + private static final long serialVersionUID = 1L; + + Magnesium(final TransactionIdentifier transactionId, final byte[] serialized) { + super(transactionId, serialized); + } + } + + @Deprecated(since = "7.0.0", forRemoval = true) private static final class Proxy extends AbstractProxy { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant which really doesn't make sense since it clearly isn't @@ -31,10 +44,6 @@ public Proxy() { // For Externalizable } - Proxy(final byte[] serialized) { - super(serialized); - } - @Override protected TransactionIdentifier readIdentifier(final DataInput in) throws IOException { return TransactionIdentifier.readFrom(in); @@ -43,13 +52,14 @@ protected TransactionIdentifier readIdentifier(final DataInput in) throws IOExce @Override protected AbortTransactionPayload createObject(final TransactionIdentifier identifier, final byte[] serialized) { - return new AbortTransactionPayload(identifier, serialized); + return new Magnesium(identifier, serialized); } } private static final Logger LOG = LoggerFactory.getLogger(AbortTransactionPayload.class); + @java.io.Serial private static final long serialVersionUID = 1L; - private static final int PROXY_SIZE = externalizableProxySize(Proxy::new); + private static final int PROXY_SIZE = externalizableProxySize(AT::new); AbortTransactionPayload(final TransactionIdentifier transactionId, final byte[] serialized) { super(transactionId, serialized); @@ -69,8 +79,8 @@ public static AbortTransactionPayload create(final TransactionIdentifier transac } @Override - protected Proxy externalizableProxy(final byte[] serialized) { - return new Proxy(serialized); + protected AT externalizableProxy(final byte[] serialized) { + return new AT(serialized); } @Override diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractIdentifiablePayload.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractIdentifiablePayload.java index 9bc5a319da2..3f142f569e3 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractIdentifiablePayload.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractIdentifiablePayload.java @@ -50,6 +50,7 @@ protected interface SerialForm extends Externalizable { * * @return A payload. */ + @java.io.Serial Object readResolve(); /** @@ -87,7 +88,9 @@ default void writeExternal(final ObjectOutput out) throws IOException { } } + @Deprecated(since = "7.0.0", forRemoval = true) protected abstract static class AbstractProxy implements SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; private byte[] serialized; @@ -162,15 +165,15 @@ public final String toString() { } @Override - protected final Object writeReplace() { + public final Object writeReplace() { return verifyNotNull(externalizableProxy(serialized)); } - protected abstract @NonNull AbstractProxy externalizableProxy(byte @NonNull[] serialized); + protected abstract @NonNull SerialForm externalizableProxy(byte @NonNull[] serialized); protected abstract int externalizableProxySize(); - protected static final int externalizableProxySize(final Function> constructor) { + protected static final int externalizableProxySize(final Function constructor) { return SerializationUtils.serialize(constructor.apply(new byte[0])).length; } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractVersionedShardDataTreeSnapshot.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractVersionedShardDataTreeSnapshot.java index be38f29b449..2d36ead7272 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractVersionedShardDataTreeSnapshot.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractVersionedShardDataTreeSnapshot.java @@ -32,8 +32,8 @@ abstract class AbstractVersionedShardDataTreeSnapshot extends ShardDataTreeSnaps final PayloadVersion version = PayloadVersion.readFrom(in); switch (version) { case SODIUM_SR1: - return new ShardSnapshotState(readSnapshot(in), true); case MAGNESIUM: + return new ShardSnapshotState(readSnapshot(in), true); case CHLORINE_SR2: return new ShardSnapshotState(readSnapshot(in), false); case TEST_FUTURE_VERSION: diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CH.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CH.java index b4e827b4030..a0af84139aa 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CH.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CH.java @@ -19,6 +19,7 @@ * Serialization proxy for {@link CreateLocalHistoryPayload}. */ final class CH implements SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; private LocalHistoryIdentifier identifier; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CT.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CT.java index 98c2562f0b6..972ba1d0675 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CT.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CT.java @@ -23,6 +23,7 @@ * Serialization proxy for {@link CommitTransactionPayload}. */ final class CT implements Externalizable { + @java.io.Serial private static final long serialVersionUID = 1L; private CommitTransactionPayload payload; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CloseLocalHistoryPayload.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CloseLocalHistoryPayload.java index c5925136737..ada468f3144 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CloseLocalHistoryPayload.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CloseLocalHistoryPayload.java @@ -12,6 +12,7 @@ import java.io.DataInput; import java.io.IOException; import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; +import org.opendaylight.controller.cluster.raft.persisted.LegacySerializable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -20,8 +21,20 @@ * * @author Robert Varga */ -public final class CloseLocalHistoryPayload extends AbstractIdentifiablePayload { +public sealed class CloseLocalHistoryPayload extends AbstractIdentifiablePayload { + @Deprecated(since = "7.0.0", forRemoval = true) + private static final class Magnesium extends CloseLocalHistoryPayload implements LegacySerializable { + @java.io.Serial + private static final long serialVersionUID = 1L; + + Magnesium(final LocalHistoryIdentifier historyId, final byte[] serialized) { + super(historyId, serialized); + } + } + + @Deprecated(since = "7.0.0", forRemoval = true) private static final class Proxy extends AbstractProxy { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant which really doesn't make sense since it clearly isn't @@ -31,10 +44,6 @@ public Proxy() { // For Externalizable } - Proxy(final byte[] serialized) { - super(serialized); - } - @Override protected LocalHistoryIdentifier readIdentifier(final DataInput in) throws IOException { return LocalHistoryIdentifier.readFrom(in); @@ -43,13 +52,14 @@ protected LocalHistoryIdentifier readIdentifier(final DataInput in) throws IOExc @Override protected CloseLocalHistoryPayload createObject(final LocalHistoryIdentifier identifier, final byte[] serialized) { - return new CloseLocalHistoryPayload(identifier, serialized); + return new Magnesium(identifier, serialized); } } private static final Logger LOG = LoggerFactory.getLogger(CloseLocalHistoryPayload.class); + @java.io.Serial private static final long serialVersionUID = 1L; - private static final int PROXY_SIZE = externalizableProxySize(Proxy::new); + private static final int PROXY_SIZE = externalizableProxySize(CH::new); CloseLocalHistoryPayload(final LocalHistoryIdentifier historyId, final byte[] serialized) { super(historyId, serialized); @@ -69,8 +79,8 @@ public static CloseLocalHistoryPayload create(final LocalHistoryIdentifier histo } @Override - protected Proxy externalizableProxy(final byte[] serialized) { - return new Proxy(serialized); + protected DH externalizableProxy(final byte[] serialized) { + return new DH(serialized); } @Override diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayload.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayload.java index 7da1b97e7bb..e400579deb8 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayload.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayload.java @@ -34,6 +34,7 @@ import org.opendaylight.controller.cluster.io.ChunkedByteArray; import org.opendaylight.controller.cluster.io.ChunkedOutputStream; import org.opendaylight.controller.cluster.raft.messages.IdentifiablePayload; +import org.opendaylight.controller.cluster.raft.persisted.LegacySerializable; import org.opendaylight.yangtools.concepts.Either; import org.opendaylight.yangtools.yang.data.api.schema.stream.ReusableStreamReceiver; import org.opendaylight.yangtools.yang.data.impl.schema.ReusableImmutableNormalizedNodeStreamWriter; @@ -149,11 +150,12 @@ public final String toString() { abstract DataInput newDataInput(); @Override - protected final Object writeReplace() { - return new Proxy(this); + public final Object writeReplace() { + return new CT(this); } - static final class Simple extends CommitTransactionPayload { + static sealed class Simple extends CommitTransactionPayload { + @java.io.Serial private static final long serialVersionUID = 1L; private final byte[] serialized; @@ -178,7 +180,8 @@ void writeBytes(final ObjectOutput out) throws IOException { } } - static final class Chunked extends CommitTransactionPayload { + static sealed class Chunked extends CommitTransactionPayload { + @java.io.Serial private static final long serialVersionUID = 1L; @SuppressFBWarnings(value = "SE_BAD_FIELD", justification = "Handled via serialization proxy") @@ -206,14 +209,36 @@ DataInput newDataInput() { // Exists to break initialization dependency between CommitTransactionPayload/Simple/Proxy private static final class ProxySizeHolder { - static final int PROXY_SIZE = SerializationUtils.serialize(new Proxy(new Simple(new byte[0]))).length; + static final int PROXY_SIZE = SerializationUtils.serialize(new CT(new Simple(new byte[0]))).length; private ProxySizeHolder() { // Hidden on purpose } } + @Deprecated(since = "7.0.0", forRemoval = true) + private static final class SimpleMagnesium extends Simple implements LegacySerializable { + @java.io.Serial + private static final long serialVersionUID = 1L; + + SimpleMagnesium(final byte[] serialized) { + super(serialized); + } + } + + @Deprecated(since = "7.0.0", forRemoval = true) + private static final class ChunkedMagnesium extends Chunked implements LegacySerializable { + @java.io.Serial + private static final long serialVersionUID = 1L; + + ChunkedMagnesium(final ChunkedByteArray source) { + super(source); + } + } + + @Deprecated(since = "7.0.0", forRemoval = true) private static final class Proxy implements Externalizable { + @java.io.Serial private static final long serialVersionUID = 1L; private CommitTransactionPayload payload; @@ -243,12 +268,13 @@ public void readExternal(final ObjectInput in) throws IOException { } else if (length < MAX_ARRAY_SIZE) { final byte[] serialized = new byte[length]; in.readFully(serialized); - payload = new Simple(serialized); + payload = new SimpleMagnesium(serialized); } else { - payload = new Chunked(ChunkedByteArray.readFrom(in, length, MAX_ARRAY_SIZE)); + payload = new ChunkedMagnesium(ChunkedByteArray.readFrom(in, length, MAX_ARRAY_SIZE)); } } + @java.io.Serial private Object readResolve() { return verifyNotNull(payload); } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CreateLocalHistoryPayload.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CreateLocalHistoryPayload.java index 65f0e5d0983..c0be9464085 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CreateLocalHistoryPayload.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CreateLocalHistoryPayload.java @@ -12,6 +12,7 @@ import java.io.DataInput; import java.io.IOException; import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; +import org.opendaylight.controller.cluster.raft.persisted.LegacySerializable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -20,8 +21,20 @@ * * @author Robert Varga */ -public final class CreateLocalHistoryPayload extends AbstractIdentifiablePayload { +public sealed class CreateLocalHistoryPayload extends AbstractIdentifiablePayload { + @Deprecated(since = "7.0.0", forRemoval = true) + private static final class Magnesium extends CreateLocalHistoryPayload implements LegacySerializable { + @java.io.Serial + private static final long serialVersionUID = 1L; + + Magnesium(final LocalHistoryIdentifier historyId, final byte[] serialized) { + super(historyId, serialized); + } + } + + @Deprecated(since = "7.0.0", forRemoval = true) private static final class Proxy extends AbstractProxy { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant which really doesn't make sense since it clearly isn't @@ -31,10 +44,6 @@ public Proxy() { // For Externalizable } - Proxy(final byte[] serialized) { - super(serialized); - } - @Override protected LocalHistoryIdentifier readIdentifier(final DataInput in) throws IOException { return LocalHistoryIdentifier.readFrom(in); @@ -43,13 +52,14 @@ protected LocalHistoryIdentifier readIdentifier(final DataInput in) throws IOExc @Override protected CreateLocalHistoryPayload createObject(final LocalHistoryIdentifier identifier, final byte[] serialized) { - return new CreateLocalHistoryPayload(identifier, serialized); + return new Magnesium(identifier, serialized); } } private static final Logger LOG = LoggerFactory.getLogger(CreateLocalHistoryPayload.class); + @java.io.Serial private static final long serialVersionUID = 1L; - private static final int PROXY_SIZE = externalizableProxySize(Proxy::new); + private static final int PROXY_SIZE = externalizableProxySize(CH::new); CreateLocalHistoryPayload(final LocalHistoryIdentifier historyId, final byte[] serialized) { super(historyId, serialized); @@ -69,8 +79,8 @@ public static CreateLocalHistoryPayload create(final LocalHistoryIdentifier hist } @Override - protected Proxy externalizableProxy(final byte[] serialized) { - return new Proxy(serialized); + protected CH externalizableProxy(final byte[] serialized) { + return new CH(serialized); } @Override diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DH.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DH.java index a9c6c634919..4ce29b10421 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DH.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DH.java @@ -19,6 +19,7 @@ * Serialization proxy for {@link CloseLocalHistoryPayload}. */ final class DH implements SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; private LocalHistoryIdentifier identifier; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DS.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DS.java index 5dc365483b8..894600adf15 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DS.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DS.java @@ -14,6 +14,7 @@ * Serialization proxy for {@link DatastoreSnapshot}. */ final class DS implements DatastoreSnapshot.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; private DatastoreSnapshot datastoreSnapshot; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DSS.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DSS.java index 074706b1ff3..5d6ea922cc4 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DSS.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DSS.java @@ -17,6 +17,7 @@ * Serialization proxy for {@link ShardDataTreeSnapshot}. */ final class DSS implements ShardSnapshot.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; private ShardSnapshot shardSnapshot; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DT.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DT.java index 8a619f64fa6..cc1a9487efd 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DT.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DT.java @@ -19,6 +19,7 @@ * Serialization proxy for {@link DisableTrackingPayload}. */ final class DT implements SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; private ClientIdentifier identifier; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DisableTrackingPayload.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DisableTrackingPayload.java index 318df05d92f..b531174576c 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DisableTrackingPayload.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DisableTrackingPayload.java @@ -12,10 +12,22 @@ import java.io.DataInput; import java.io.IOException; import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier; +import org.opendaylight.controller.cluster.raft.persisted.LegacySerializable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public final class DisableTrackingPayload extends AbstractIdentifiablePayload { +public sealed class DisableTrackingPayload extends AbstractIdentifiablePayload { + @Deprecated(since = "7.0.0", forRemoval = true) + private static final class Magnesium extends DisableTrackingPayload implements LegacySerializable { + @java.io.Serial + private static final long serialVersionUID = 1L; + + Magnesium(final ClientIdentifier clientId, final byte[] serialized) { + super(clientId, serialized); + } + } + + @Deprecated(since = "7.0.0", forRemoval = true) private static final class Proxy extends AbstractProxy { @java.io.Serial private static final long serialVersionUID = -5490519942445085251L; @@ -25,10 +37,6 @@ public Proxy() { // For Externalizable } - Proxy(final byte[] serialized) { - super(serialized); - } - @Override protected ClientIdentifier readIdentifier(final DataInput in) throws IOException { return ClientIdentifier.readFrom(in); @@ -37,13 +45,14 @@ protected ClientIdentifier readIdentifier(final DataInput in) throws IOException @Override protected DisableTrackingPayload createObject(final ClientIdentifier identifier, final byte[] serialized) { - return new DisableTrackingPayload(identifier, serialized); + return new Magnesium(identifier, serialized); } } private static final Logger LOG = LoggerFactory.getLogger(DisableTrackingPayload.class); + @java.io.Serial private static final long serialVersionUID = 1L; - private static final int PROXY_SIZE = externalizableProxySize(Proxy::new); + private static final int PROXY_SIZE = externalizableProxySize(DT::new); DisableTrackingPayload(final ClientIdentifier clientId, final byte[] serialized) { super(clientId, serialized); @@ -63,8 +72,8 @@ public static DisableTrackingPayload create(final ClientIdentifier clientId, } @Override - protected Proxy externalizableProxy(final byte[] serialized) { - return new Proxy(serialized); + protected DT externalizableProxy(final byte[] serialized) { + return new DT(serialized); } @Override diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/FM.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/FM.java index 5a432cc8ad0..827a0cf965d 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/FM.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/FM.java @@ -18,6 +18,7 @@ * Externalizable proxy for {@link FrontendShardDataTreeSnapshotMetadata}. */ final class FM implements Externalizable { + @java.io.Serial private static final long serialVersionUID = 1L; private List clients; @@ -49,6 +50,7 @@ public void readExternal(final ObjectInput in) throws IOException { clients = builder.build(); } + @java.io.Serial private Object readResolve() { return new FrontendShardDataTreeSnapshotMetadata(clients); } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/MS.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/MS.java index 7246e503db6..94cd695c5c0 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/MS.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/MS.java @@ -26,6 +26,7 @@ */ final class MS implements Externalizable { private static final Logger LOG = LoggerFactory.getLogger(MS.class); + @java.io.Serial private static final long serialVersionUID = 1L; private Map>, ShardDataTreeSnapshotMetadata> metadata; @@ -77,6 +78,7 @@ public void readExternal(final ObjectInput in) throws IOException, ClassNotFound rootNode = stream.readNormalizedNode(); } + @java.io.Serial private Object readResolve() { return new MetadataShardDataTreeSnapshot(rootNode, metadata); } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PH.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PH.java index 028d1508dac..dc95e31a4e4 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PH.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PH.java @@ -19,6 +19,7 @@ * Serialization proxy for {@link PurgeLocalHistoryPayload}. */ final class PH implements SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; private LocalHistoryIdentifier identifier; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PT.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PT.java index 23bd12b1fa3..8ea773fb487 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PT.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PT.java @@ -19,6 +19,7 @@ * Serialization proxy for {@link PurgeTransactionPayload}. */ final class PT implements SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; private TransactionIdentifier identifier; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PayloadVersion.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PayloadVersion.java index c3382f99d6c..3cdc5a79d42 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PayloadVersion.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PayloadVersion.java @@ -53,6 +53,7 @@ public NormalizedNodeStreamVersion getStreamVersion() { * ABI version as shipped in Sodium SR1 Simultaneous Release. QName-bearing messages are using * {@link NormalizedNodeStreamVersion#SODIUM_SR1}, which improves encoding. */ + @Deprecated(since = "7.0.0", forRemoval = true) SODIUM_SR1(7) { @Override public NormalizedNodeStreamVersion getStreamVersion() { @@ -64,6 +65,7 @@ public NormalizedNodeStreamVersion getStreamVersion() { * Revised payload version. Payloads remain the same as {@link #SODIUM_SR1}, but messages bearing QNames in any * shape are using {@link NormalizedNodeStreamVersion#MAGNESIUM}, which improves encoding. */ + @Deprecated(since = "7.0.0", forRemoval = true) MAGNESIUM(8) { @Override public NormalizedNodeStreamVersion getStreamVersion() { @@ -123,7 +125,7 @@ public short shortValue() { * @return Current {@link PayloadVersion} */ public static @NonNull PayloadVersion current() { - return MAGNESIUM; + return CHLORINE_SR2; } /** diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PurgeLocalHistoryPayload.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PurgeLocalHistoryPayload.java index d440910943d..a9e4557eced 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PurgeLocalHistoryPayload.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PurgeLocalHistoryPayload.java @@ -12,6 +12,7 @@ import java.io.DataInput; import java.io.IOException; import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; +import org.opendaylight.controller.cluster.raft.persisted.LegacySerializable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -21,8 +22,20 @@ * * @author Robert Varga */ -public final class PurgeLocalHistoryPayload extends AbstractIdentifiablePayload { +public sealed class PurgeLocalHistoryPayload extends AbstractIdentifiablePayload { + @Deprecated(since = "7.0.0", forRemoval = true) + private static final class Magnesium extends PurgeLocalHistoryPayload implements LegacySerializable { + @java.io.Serial + private static final long serialVersionUID = 1L; + + Magnesium(final LocalHistoryIdentifier historyId, final byte[] serialized) { + super(historyId, serialized); + } + } + + @Deprecated(since = "7.0.0", forRemoval = true) private static final class Proxy extends AbstractProxy { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant which really doesn't make sense since it clearly isn't @@ -32,10 +45,6 @@ public Proxy() { // For Externalizable } - Proxy(final byte[] serialized) { - super(serialized); - } - @Override protected LocalHistoryIdentifier readIdentifier(final DataInput in) throws IOException { return LocalHistoryIdentifier.readFrom(in); @@ -44,13 +53,14 @@ protected LocalHistoryIdentifier readIdentifier(final DataInput in) throws IOExc @Override protected PurgeLocalHistoryPayload createObject(final LocalHistoryIdentifier identifier, final byte[] serialized) { - return new PurgeLocalHistoryPayload(identifier, serialized); + return new Magnesium(identifier, serialized); } } private static final Logger LOG = LoggerFactory.getLogger(PurgeLocalHistoryPayload.class); + @java.io.Serial private static final long serialVersionUID = 1L; - private static final int PROXY_SIZE = externalizableProxySize(Proxy::new); + private static final int PROXY_SIZE = externalizableProxySize(PH::new); PurgeLocalHistoryPayload(final LocalHistoryIdentifier historyId, final byte[] serialized) { super(historyId, serialized); @@ -70,8 +80,8 @@ public static PurgeLocalHistoryPayload create(final LocalHistoryIdentifier histo } @Override - protected Proxy externalizableProxy(final byte[] serialized) { - return new Proxy(serialized); + protected PH externalizableProxy(final byte[] serialized) { + return new PH(serialized); } @Override diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PurgeTransactionPayload.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PurgeTransactionPayload.java index f3c094c0ddb..4d5d2d742c3 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PurgeTransactionPayload.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PurgeTransactionPayload.java @@ -12,6 +12,7 @@ import java.io.DataInput; import java.io.IOException; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; +import org.opendaylight.controller.cluster.raft.persisted.LegacySerializable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -20,8 +21,20 @@ * * @author Robert Varga */ -public final class PurgeTransactionPayload extends AbstractIdentifiablePayload { +public sealed class PurgeTransactionPayload extends AbstractIdentifiablePayload { + @Deprecated(since = "7.0.0", forRemoval = true) + private static final class Magnesium extends PurgeTransactionPayload implements LegacySerializable { + @java.io.Serial + private static final long serialVersionUID = 1L; + + Magnesium(final TransactionIdentifier transactionId, final byte[] serialized) { + super(transactionId, serialized); + } + } + + @Deprecated(since = "7.0.0", forRemoval = true) private static final class Proxy extends AbstractProxy { + @java.io.Serial private static final long serialVersionUID = 1L; // checkstyle flags the public modifier as redundant which really doesn't make sense since it clearly isn't @@ -31,10 +44,6 @@ public Proxy() { // For Externalizable } - Proxy(final byte[] serialized) { - super(serialized); - } - @Override protected TransactionIdentifier readIdentifier(final DataInput in) throws IOException { return TransactionIdentifier.readFrom(in); @@ -43,13 +52,14 @@ protected TransactionIdentifier readIdentifier(final DataInput in) throws IOExce @Override protected PurgeTransactionPayload createObject(final TransactionIdentifier identifier, final byte[] serialized) { - return new PurgeTransactionPayload(identifier, serialized); + return new Magnesium(identifier, serialized); } } private static final Logger LOG = LoggerFactory.getLogger(PurgeTransactionPayload.class); + @java.io.Serial private static final long serialVersionUID = 1L; - private static final int PROXY_SIZE = externalizableProxySize(Proxy::new); + private static final int PROXY_SIZE = externalizableProxySize(PT::new); PurgeTransactionPayload(final TransactionIdentifier transactionId, final byte[] serialized) { super(transactionId, serialized); @@ -69,8 +79,8 @@ public static PurgeTransactionPayload create(final TransactionIdentifier transac } @Override - protected Proxy externalizableProxy(final byte[] serialized) { - return new Proxy(serialized); + protected PT externalizableProxy(final byte[] serialized) { + return new PT(serialized); } @Override diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/SM.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/SM.java index 1e2cdc8da12..07c33086bf3 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/SM.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/SM.java @@ -16,6 +16,7 @@ * Serialization proxy for {@link ShardManagerSnapshot}. */ final class SM implements ShardManagerSnapshot.SerializedForm { + @java.io.Serial private static final long serialVersionUID = 1L; private ShardManagerSnapshot snapshot; @@ -43,5 +44,4 @@ public void resolveTo(final ShardManagerSnapshot newSnapshot) { public Object readResolve() { return verifyNotNull(snapshot); } - } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/SS.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/SS.java index 13a8ac64fbd..f816002c9a3 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/SS.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/SS.java @@ -14,6 +14,7 @@ * Serialization proxy for {@link ShardSnapshotState}. */ final class SS implements ShardSnapshotState.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; private ShardSnapshotState snapshotState; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ST.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ST.java index 756a20bcd2a..ef082c72a06 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ST.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ST.java @@ -20,6 +20,7 @@ * Serialization proxy for {@link SkipTransactionsPayload}. */ final class ST implements SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; private ImmutableUnsignedLongSet transactionIds; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardManagerSnapshot.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardManagerSnapshot.java index d792b9b8a6b..b211d1a54f7 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardManagerSnapshot.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardManagerSnapshot.java @@ -7,7 +7,6 @@ */ package org.opendaylight.controller.cluster.datastore.persisted; -import static com.google.common.base.Verify.verifyNotNull; import static java.util.Objects.requireNonNull; import com.google.common.collect.ImmutableList; @@ -19,13 +18,14 @@ import java.util.ArrayList; import java.util.List; import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.controller.cluster.raft.persisted.MigratedSerializable; /** * Represents the persisted snapshot state for the ShardManager. * * @author Thomas Pantelis */ -public class ShardManagerSnapshot implements Serializable { +public sealed class ShardManagerSnapshot implements Serializable { interface SerializedForm extends Externalizable { /** * Return the serial form of this object contents, corresponding to {@link ShardManagerSnapshot#shardList}. @@ -69,10 +69,27 @@ default void writeExternal(final ObjectOutput out) throws IOException { } } + @Deprecated(since = "7.0.0", forRemoval = true) + private static final class Magnesium extends ShardManagerSnapshot implements MigratedSerializable { + @java.io.Serial + private static final long serialVersionUID = 1L; + + Magnesium(final List shardList) { + super(shardList); + } + + @Override + public boolean isMigrated() { + return true; + } + } + + @Deprecated(since = "7.0.0", forRemoval = true) private static final class Proxy implements SerializedForm { + @java.io.Serial private static final long serialVersionUID = 1L; - private ShardManagerSnapshot snapshot; + private ShardManagerSnapshot snapshot = null; // checkstyle flags the public modifier as redundant which really doesn't make sense since it clearly isn't // redundant. It is explicitly needed for Java serialization to be able to create instances via reflection. @@ -81,10 +98,6 @@ public Proxy() { // For Externalizable } - Proxy(final ShardManagerSnapshot snapshot) { - this.snapshot = snapshot; - } - @Override public List shardNames() { return snapshot.getShardList(); @@ -97,10 +110,11 @@ public void resolveTo(final ShardManagerSnapshot newSnapshot) { @Override public Object readResolve() { - return verifyNotNull(snapshot); + return new Magnesium(snapshot.getShardList()); } } + @java.io.Serial private static final long serialVersionUID = 1L; private final List shardList; @@ -109,16 +123,17 @@ public ShardManagerSnapshot(final @NonNull List shardList) { this.shardList = ImmutableList.copyOf(shardList); } - public List getShardList() { + public final List getShardList() { return shardList; } - private Object writeReplace() { - return new Proxy(this); + @java.io.Serial + public final Object writeReplace() { + return new SM(this); } @Override - public String toString() { + public final String toString() { return "ShardManagerSnapshot [ShardList = " + shardList + " ]"; } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardSnapshotState.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardSnapshotState.java index e496eec831b..4fc630dcfe8 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardSnapshotState.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardSnapshotState.java @@ -44,7 +44,9 @@ default void writeExternal(final ObjectOutput out) throws IOException { } } + @Deprecated(since = "7.0.0", forRemoval = true) private static final class Proxy implements SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; private ShardSnapshotState snapshotState; @@ -56,10 +58,6 @@ public Proxy() { // For Externalizable } - Proxy(final ShardSnapshotState snapshotState) { - this.snapshotState = snapshotState; - } - @Override public ShardSnapshotState snapshotState() { return snapshotState; @@ -76,6 +74,7 @@ public Object readResolve() { } } + @java.io.Serial private static final long serialVersionUID = 1L; @SuppressFBWarnings(value = "SE_BAD_FIELD", justification = "This field is not Serializable but this class " @@ -103,7 +102,8 @@ public boolean needsMigration() { return migrated; } + @java.io.Serial private Object writeReplace() { - return new Proxy(this); + return new SS(this); } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/SkipTransactionsPayload.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/SkipTransactionsPayload.java index a3f7af99f04..085774592b7 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/SkipTransactionsPayload.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/SkipTransactionsPayload.java @@ -17,6 +17,7 @@ import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; import org.opendaylight.controller.cluster.datastore.utils.ImmutableUnsignedLongSet; +import org.opendaylight.controller.cluster.raft.persisted.LegacySerializable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -25,8 +26,20 @@ * for other purposes. It contains a {@link LocalHistoryIdentifier} and a list of transaction identifiers within that * local history. */ -public final class SkipTransactionsPayload extends AbstractIdentifiablePayload { +public sealed class SkipTransactionsPayload extends AbstractIdentifiablePayload { + private static final class Magnesium extends SkipTransactionsPayload implements LegacySerializable { + @java.io.Serial + private static final long serialVersionUID = 1L; + + Magnesium(final LocalHistoryIdentifier historyId, final byte[] serialized, + final ImmutableUnsignedLongSet transactionIds) { + super(historyId, serialized, transactionIds); + } + } + + @Deprecated(since = "7.0.0", forRemoval = true) private static final class Proxy extends AbstractProxy { + @java.io.Serial private static final long serialVersionUID = 1L; private ImmutableUnsignedLongSet transactionIds; @@ -38,10 +51,6 @@ public Proxy() { // For Externalizable } - Proxy(final byte[] serialized) { - super(serialized); - } - @Override protected LocalHistoryIdentifier readIdentifier(final DataInput in) throws IOException { final var id = LocalHistoryIdentifier.readFrom(in); @@ -52,13 +61,14 @@ protected LocalHistoryIdentifier readIdentifier(final DataInput in) throws IOExc @Override protected SkipTransactionsPayload createObject(final LocalHistoryIdentifier identifier, final byte[] serialized) { - return new SkipTransactionsPayload(identifier, serialized, verifyNotNull(transactionIds)); + return new Magnesium(identifier, serialized, verifyNotNull(transactionIds)); } } private static final Logger LOG = LoggerFactory.getLogger(SkipTransactionsPayload.class); + @java.io.Serial private static final long serialVersionUID = 1L; - private static final int PROXY_SIZE = externalizableProxySize(Proxy::new); + private static final int PROXY_SIZE = externalizableProxySize(ST::new); @SuppressFBWarnings(value = "SE_BAD_FIELD", justification = "Handled via externalizable proxy") private final @NonNull ImmutableUnsignedLongSet transactionIds; @@ -89,8 +99,8 @@ protected SkipTransactionsPayload createObject(final LocalHistoryIdentifier iden } @Override - protected Proxy externalizableProxy(final byte[] serialized) { - return new Proxy(serialized); + protected ST externalizableProxy(final byte[] serialized) { + return new ST(serialized); } @Override diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/AbortTransactionPayloadTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/AbortTransactionPayloadTest.java index 895f458a34a..62ec2d0c8a0 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/AbortTransactionPayloadTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/AbortTransactionPayloadTest.java @@ -9,6 +9,6 @@ public class AbortTransactionPayloadTest extends AbstractIdentifiablePayloadTest { public AbortTransactionPayloadTest() { - super(AbortTransactionPayload.create(newTransactionId(0), 512), 264); + super(AbortTransactionPayload.create(newTransactionId(0), 512), 125); } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CloseLocalHistoryPayloadTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CloseLocalHistoryPayloadTest.java index d8169790887..071914bfc90 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CloseLocalHistoryPayloadTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CloseLocalHistoryPayloadTest.java @@ -9,6 +9,6 @@ public class CloseLocalHistoryPayloadTest extends AbstractIdentifiablePayloadTest { public CloseLocalHistoryPayloadTest() { - super(CloseLocalHistoryPayload.create(newHistoryId(0), 512), 264); + super(CloseLocalHistoryPayload.create(newHistoryId(0), 512), 124); } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayloadTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayloadTest.java index c5b8bab0685..6b2367458f6 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayloadTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayloadTest.java @@ -108,7 +108,7 @@ public void setUp() { public void testCandidateSerialization() throws IOException { final CommitTransactionPayload payload = CommitTransactionPayload.create(nextTransactionId(), candidate); assertEquals("payload size", 156, payload.size()); - assertEquals("serialized size", 270, SerializationUtils.serialize(payload).length); + assertEquals("serialized size", 242, SerializationUtils.serialize(payload).length); } @Test diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CreateLocalHistoryPayloadTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CreateLocalHistoryPayloadTest.java index 7c0891e6f5c..83941812294 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CreateLocalHistoryPayloadTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CreateLocalHistoryPayloadTest.java @@ -9,6 +9,6 @@ public class CreateLocalHistoryPayloadTest extends AbstractIdentifiablePayloadTest { public CreateLocalHistoryPayloadTest() { - super(CreateLocalHistoryPayload.create(newHistoryId(0), 512), 265); + super(CreateLocalHistoryPayload.create(newHistoryId(0), 512), 124); } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/PurgeLocalHistoryPayloadTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/PurgeLocalHistoryPayloadTest.java index 99c188ddd88..cca22204133 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/PurgeLocalHistoryPayloadTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/PurgeLocalHistoryPayloadTest.java @@ -9,6 +9,6 @@ public class PurgeLocalHistoryPayloadTest extends AbstractIdentifiablePayloadTest { public PurgeLocalHistoryPayloadTest() { - super(PurgeLocalHistoryPayload.create(newHistoryId(0), 512), 264); + super(PurgeLocalHistoryPayload.create(newHistoryId(0), 512), 124); } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/PurgeTransactionPayloadTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/PurgeTransactionPayloadTest.java index fad6205e166..cfae3418295 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/PurgeTransactionPayloadTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/PurgeTransactionPayloadTest.java @@ -9,6 +9,6 @@ public class PurgeTransactionPayloadTest extends AbstractIdentifiablePayloadTest { public PurgeTransactionPayloadTest() { - super(PurgeTransactionPayload.create(newTransactionId(0), 512), 264); + super(PurgeTransactionPayload.create(newTransactionId(0), 512), 125); } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/SkipTransactionsPayloadTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/SkipTransactionsPayloadTest.java index 39df133c8a2..818c18908dd 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/SkipTransactionsPayloadTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/SkipTransactionsPayloadTest.java @@ -11,6 +11,6 @@ public class SkipTransactionsPayloadTest extends AbstractIdentifiablePayloadTest { public SkipTransactionsPayloadTest() { - super(SkipTransactionsPayload.create(newHistoryId(0), MutableUnsignedLongSet.of(42).immutableCopy(), 512), 270); + super(SkipTransactionsPayload.create(newHistoryId(0), MutableUnsignedLongSet.of(42).immutableCopy(), 512), 131); } } From 514819f8eaed9a76d9e128255413434b80eda5f8 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 2 Jan 2023 14:08:57 +0100 Subject: [PATCH 27/69] Bump versions to 6.0.8-SNAPSHOT This starts the next development iteration. Change-Id: I2664b22c7e8565dcad3aa46b9a6264f226db4ee9 Signed-off-by: Robert Varga --- akka/pom.xml | 2 +- akka/repackaged-akka-jar/pom.xml | 2 +- akka/repackaged-akka/pom.xml | 2 +- artifacts/pom.xml | 12 ++++++------ benchmark/api/pom.xml | 2 +- benchmark/dsbenchmark/pom.xml | 2 +- benchmark/ntfbenchmark/pom.xml | 2 +- benchmark/pom.xml | 2 +- benchmark/rpcbenchmark/pom.xml | 2 +- bundle-parent/pom.xml | 4 ++-- docs/pom.xml | 2 +- features/features-controller-experimental/pom.xml | 2 +- features/features-controller-testing/pom.xml | 2 +- features/features-controller/pom.xml | 2 +- features/odl-clustering-test-app/pom.xml | 2 +- features/odl-controller-akka/pom.xml | 2 +- features/odl-controller-blueprint/pom.xml | 2 +- features/odl-controller-broker-local/pom.xml | 2 +- features/odl-controller-exp-netty-config/pom.xml | 2 +- features/odl-controller-mdsal-common/pom.xml | 2 +- features/odl-controller-scala/pom.xml | 2 +- features/odl-jolokia/pom.xml | 2 +- features/odl-mdsal-benchmark/pom.xml | 2 +- features/odl-mdsal-broker/pom.xml | 2 +- features/odl-mdsal-clustering-commons/pom.xml | 2 +- features/odl-mdsal-distributed-datastore/pom.xml | 2 +- features/odl-mdsal-remoterpc-connector/pom.xml | 2 +- features/odl-toaster/pom.xml | 2 +- features/pom.xml | 2 +- features/single-feature-parent/pom.xml | 4 ++-- jolokia/pom.xml | 2 +- karaf/pom.xml | 2 +- opendaylight/blueprint/pom.xml | 2 +- .../config/netty-event-executor-config/pom.xml | 2 +- opendaylight/config/netty-threadgroup-config/pom.xml | 2 +- opendaylight/config/netty-timer-config/pom.xml | 2 +- opendaylight/config/pom.xml | 2 +- opendaylight/config/threadpool-config-api/pom.xml | 2 +- opendaylight/config/threadpool-config-impl/pom.xml | 4 ++-- opendaylight/md-sal/cds-access-api/pom.xml | 2 +- opendaylight/md-sal/cds-access-client/pom.xml | 2 +- opendaylight/md-sal/cds-dom-api/pom.xml | 2 +- opendaylight/md-sal/cds-mgmt-api/pom.xml | 2 +- opendaylight/md-sal/eos-dom-akka/pom.xml | 2 +- opendaylight/md-sal/mdsal-it-base/pom.xml | 2 +- opendaylight/md-sal/mdsal-it-parent/pom.xml | 4 ++-- opendaylight/md-sal/parent/pom.xml | 4 ++-- opendaylight/md-sal/pom.xml | 2 +- opendaylight/md-sal/sal-akka-raft-example/pom.xml | 2 +- opendaylight/md-sal/sal-akka-raft/pom.xml | 2 +- .../md-sal/sal-akka-segmented-journal/pom.xml | 2 +- opendaylight/md-sal/sal-binding-it/pom.xml | 2 +- opendaylight/md-sal/sal-cluster-admin-api/pom.xml | 2 +- opendaylight/md-sal/sal-cluster-admin-impl/pom.xml | 2 +- .../md-sal/sal-cluster-admin-karaf-cli/pom.xml | 2 +- opendaylight/md-sal/sal-clustering-commons/pom.xml | 2 +- opendaylight/md-sal/sal-clustering-config/pom.xml | 2 +- opendaylight/md-sal/sal-common-util/pom.xml | 2 +- .../md-sal/sal-distributed-datastore/pom.xml | 2 +- .../md-sal/sal-dummy-distributed-datastore/pom.xml | 2 +- opendaylight/md-sal/sal-remoterpc-connector/pom.xml | 2 +- opendaylight/md-sal/sal-test-model/pom.xml | 2 +- .../clustering-test-app/configuration/pom.xml | 2 +- .../samples/clustering-test-app/karaf-cli/pom.xml | 2 +- .../md-sal/samples/clustering-test-app/model/pom.xml | 2 +- .../md-sal/samples/clustering-test-app/pom.xml | 2 +- .../samples/clustering-test-app/provider/pom.xml | 2 +- opendaylight/md-sal/samples/pom.xml | 2 +- opendaylight/md-sal/samples/toaster-consumer/pom.xml | 2 +- opendaylight/md-sal/samples/toaster-it/pom.xml | 2 +- opendaylight/md-sal/samples/toaster-provider/pom.xml | 2 +- opendaylight/md-sal/samples/toaster/pom.xml | 2 +- pom.xml | 2 +- 73 files changed, 83 insertions(+), 83 deletions(-) diff --git a/akka/pom.xml b/akka/pom.xml index 9c269b9b448..8561a2f48d0 100644 --- a/akka/pom.xml +++ b/akka/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller akka-aggregator - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT pom diff --git a/akka/repackaged-akka-jar/pom.xml b/akka/repackaged-akka-jar/pom.xml index 9489afe79eb..0e07fde4ad6 100644 --- a/akka/repackaged-akka-jar/pom.xml +++ b/akka/repackaged-akka-jar/pom.xml @@ -20,7 +20,7 @@ org.opendaylight.controller repackaged-akka-jar jar - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ${project.artifactId} diff --git a/akka/repackaged-akka/pom.xml b/akka/repackaged-akka/pom.xml index 5615214ff23..7cdd5d732e9 100644 --- a/akka/repackaged-akka/pom.xml +++ b/akka/repackaged-akka/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.controller bundle-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../../bundle-parent diff --git a/artifacts/pom.xml b/artifacts/pom.xml index 0636bf8257a..a6486378ac1 100644 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -20,7 +20,7 @@ org.opendaylight.controller controller-artifacts - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT pom @@ -395,27 +395,27 @@ ${project.groupId} netty-event-executor-config - 0.17.7-SNAPSHOT + 0.17.8-SNAPSHOT ${project.groupId} netty-threadgroup-config - 0.17.7-SNAPSHOT + 0.17.8-SNAPSHOT ${project.groupId} netty-timer-config - 0.17.7-SNAPSHOT + 0.17.8-SNAPSHOT ${project.groupId} threadpool-config-api - 0.17.7-SNAPSHOT + 0.17.8-SNAPSHOT ${project.groupId} threadpool-config-impl - 0.17.7-SNAPSHOT + 0.17.8-SNAPSHOT ${project.groupId} diff --git a/benchmark/api/pom.xml b/benchmark/api/pom.xml index c12b14e6386..b2562e961e0 100644 --- a/benchmark/api/pom.xml +++ b/benchmark/api/pom.xml @@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/benchmark/dsbenchmark/pom.xml b/benchmark/dsbenchmark/pom.xml index cbfccbcac09..11a2ef007c2 100644 --- a/benchmark/dsbenchmark/pom.xml +++ b/benchmark/dsbenchmark/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/benchmark/ntfbenchmark/pom.xml b/benchmark/ntfbenchmark/pom.xml index d9c009b6f85..531a64e35fa 100644 --- a/benchmark/ntfbenchmark/pom.xml +++ b/benchmark/ntfbenchmark/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/benchmark/pom.xml b/benchmark/pom.xml index fe53b15fc71..587dc2b4ba4 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -16,7 +16,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller benchmark-aggregator - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT pom diff --git a/benchmark/rpcbenchmark/pom.xml b/benchmark/rpcbenchmark/pom.xml index ef8affb600e..f4638a6e9f4 100644 --- a/benchmark/rpcbenchmark/pom.xml +++ b/benchmark/rpcbenchmark/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/bundle-parent/pom.xml b/bundle-parent/pom.xml index e7d21b7ef28..351945d9953 100644 --- a/bundle-parent/pom.xml +++ b/bundle-parent/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller bundle-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT pom @@ -25,7 +25,7 @@ org.opendaylight.controller controller-artifacts - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT pom import diff --git a/docs/pom.xml b/docs/pom.xml index 5beabba02b7..a107d1d7533 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -19,7 +19,7 @@ org.opendaylight.controller controller-docs jar - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ${project.artifactId} Controller documentation diff --git a/features/features-controller-experimental/pom.xml b/features/features-controller-experimental/pom.xml index d8c26c1ac19..633715bc522 100644 --- a/features/features-controller-experimental/pom.xml +++ b/features/features-controller-experimental/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-controller-experimental - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT feature OpenDaylight :: Controller :: Experimental Features Controller Experimental Features diff --git a/features/features-controller-testing/pom.xml b/features/features-controller-testing/pom.xml index 843ae2a7019..1f85ea7ddae 100644 --- a/features/features-controller-testing/pom.xml +++ b/features/features-controller-testing/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-controller-testing - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT feature OpenDaylight :: Controller :: Features to support CSIT testing Controller CSIT Features diff --git a/features/features-controller/pom.xml b/features/features-controller/pom.xml index 3dde6399c55..03e8b3ce023 100644 --- a/features/features-controller/pom.xml +++ b/features/features-controller/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-controller - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT feature OpenDaylight :: Controller :: Features Controller Production Features diff --git a/features/odl-clustering-test-app/pom.xml b/features/odl-clustering-test-app/pom.xml index dd88b122643..1105698db6c 100644 --- a/features/odl-clustering-test-app/pom.xml +++ b/features/odl-clustering-test-app/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-akka/pom.xml b/features/odl-controller-akka/pom.xml index edebb4c84fc..5295d1266b6 100644 --- a/features/odl-controller-akka/pom.xml +++ b/features/odl-controller-akka/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.controller single-feature-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-blueprint/pom.xml b/features/odl-controller-blueprint/pom.xml index c60a8a16709..14ecb32c10a 100644 --- a/features/odl-controller-blueprint/pom.xml +++ b/features/odl-controller-blueprint/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.controller single-feature-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-broker-local/pom.xml b/features/odl-controller-broker-local/pom.xml index e2f38df5957..ab8d1254c03 100644 --- a/features/odl-controller-broker-local/pom.xml +++ b/features/odl-controller-broker-local/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-exp-netty-config/pom.xml b/features/odl-controller-exp-netty-config/pom.xml index 7edb280c0e7..7e3ca47fb8e 100644 --- a/features/odl-controller-exp-netty-config/pom.xml +++ b/features/odl-controller-exp-netty-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-mdsal-common/pom.xml b/features/odl-controller-mdsal-common/pom.xml index 47b81f8e0f2..b0b9ca23cf7 100644 --- a/features/odl-controller-mdsal-common/pom.xml +++ b/features/odl-controller-mdsal-common/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-scala/pom.xml b/features/odl-controller-scala/pom.xml index f6b1a1ea56e..19d425d3137 100644 --- a/features/odl-controller-scala/pom.xml +++ b/features/odl-controller-scala/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.controller single-feature-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../single-feature-parent diff --git a/features/odl-jolokia/pom.xml b/features/odl-jolokia/pom.xml index 389d228ab54..6bedfb75029 100644 --- a/features/odl-jolokia/pom.xml +++ b/features/odl-jolokia/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-benchmark/pom.xml b/features/odl-mdsal-benchmark/pom.xml index 0451f9cd71a..da28ff08d3b 100644 --- a/features/odl-mdsal-benchmark/pom.xml +++ b/features/odl-mdsal-benchmark/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-broker/pom.xml b/features/odl-mdsal-broker/pom.xml index 0955b2ed87c..2a660837c49 100644 --- a/features/odl-mdsal-broker/pom.xml +++ b/features/odl-mdsal-broker/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-clustering-commons/pom.xml b/features/odl-mdsal-clustering-commons/pom.xml index f2b28d17ebd..ebedd1a7bed 100644 --- a/features/odl-mdsal-clustering-commons/pom.xml +++ b/features/odl-mdsal-clustering-commons/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-distributed-datastore/pom.xml b/features/odl-mdsal-distributed-datastore/pom.xml index 6897e7ba753..bc9ad4fb39a 100644 --- a/features/odl-mdsal-distributed-datastore/pom.xml +++ b/features/odl-mdsal-distributed-datastore/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-remoterpc-connector/pom.xml b/features/odl-mdsal-remoterpc-connector/pom.xml index c19bc6a42e7..4ab8a4978ab 100644 --- a/features/odl-mdsal-remoterpc-connector/pom.xml +++ b/features/odl-mdsal-remoterpc-connector/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../single-feature-parent diff --git a/features/odl-toaster/pom.xml b/features/odl-toaster/pom.xml index 23ddb35cc4a..7b76400ef7e 100644 --- a/features/odl-toaster/pom.xml +++ b/features/odl-toaster/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../single-feature-parent diff --git a/features/pom.xml b/features/pom.xml index 72fc0710858..4512081c9b0 100644 --- a/features/pom.xml +++ b/features/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-aggregator - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT pom diff --git a/features/single-feature-parent/pom.xml b/features/single-feature-parent/pom.xml index a91b8cbc8c7..7461ee019b6 100644 --- a/features/single-feature-parent/pom.xml +++ b/features/single-feature-parent/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller single-feature-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT pom @@ -25,7 +25,7 @@ org.opendaylight.controller bundle-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT pom import diff --git a/jolokia/pom.xml b/jolokia/pom.xml index c66d29a5491..e75d62b84d8 100644 --- a/jolokia/pom.xml +++ b/jolokia/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller odl-jolokia-osgi - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT jar diff --git a/karaf/pom.xml b/karaf/pom.xml index bb788d57f42..40d589ff7f6 100644 --- a/karaf/pom.xml +++ b/karaf/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller controller-test-karaf - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT pom diff --git a/opendaylight/blueprint/pom.xml b/opendaylight/blueprint/pom.xml index 96c1d7d1e7e..0a61774ebea 100644 --- a/opendaylight/blueprint/pom.xml +++ b/opendaylight/blueprint/pom.xml @@ -20,7 +20,7 @@ blueprint bundle ${project.artifactId} - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT diff --git a/opendaylight/config/netty-event-executor-config/pom.xml b/opendaylight/config/netty-event-executor-config/pom.xml index 7443e6fd8bc..68ad1e9b1ab 100644 --- a/opendaylight/config/netty-event-executor-config/pom.xml +++ b/opendaylight/config/netty-event-executor-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller netty-event-executor-config - 0.17.7-SNAPSHOT + 0.17.8-SNAPSHOT bundle ${project.artifactId} Configuration Wrapper around netty's event executor diff --git a/opendaylight/config/netty-threadgroup-config/pom.xml b/opendaylight/config/netty-threadgroup-config/pom.xml index ccbd6c3e5a6..66dc53ed742 100644 --- a/opendaylight/config/netty-threadgroup-config/pom.xml +++ b/opendaylight/config/netty-threadgroup-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller netty-threadgroup-config - 0.17.7-SNAPSHOT + 0.17.8-SNAPSHOT bundle ${project.artifactId} Configuration Wrapper around netty's event group diff --git a/opendaylight/config/netty-timer-config/pom.xml b/opendaylight/config/netty-timer-config/pom.xml index c72230c3c2c..a078bfde474 100644 --- a/opendaylight/config/netty-timer-config/pom.xml +++ b/opendaylight/config/netty-timer-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller netty-timer-config - 0.17.7-SNAPSHOT + 0.17.8-SNAPSHOT bundle ${project.artifactId} Configuration Wrapper around netty's timer diff --git a/opendaylight/config/pom.xml b/opendaylight/config/pom.xml index 5b2710e0489..9c498d123d2 100644 --- a/opendaylight/config/pom.xml +++ b/opendaylight/config/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller config-aggregator - 0.17.7-SNAPSHOT + 0.17.8-SNAPSHOT pom diff --git a/opendaylight/config/threadpool-config-api/pom.xml b/opendaylight/config/threadpool-config-api/pom.xml index ad718aaba96..4f3f3cb3122 100644 --- a/opendaylight/config/threadpool-config-api/pom.xml +++ b/opendaylight/config/threadpool-config-api/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller threadpool-config-api - 0.17.7-SNAPSHOT + 0.17.8-SNAPSHOT bundle ${project.artifactId} diff --git a/opendaylight/config/threadpool-config-impl/pom.xml b/opendaylight/config/threadpool-config-impl/pom.xml index f7327aa226e..6319bf17362 100644 --- a/opendaylight/config/threadpool-config-impl/pom.xml +++ b/opendaylight/config/threadpool-config-impl/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller threadpool-config-impl - 0.17.7-SNAPSHOT + 0.17.8-SNAPSHOT bundle ${project.artifactId} @@ -20,7 +20,7 @@ org.opendaylight.controller controller-artifacts - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT pom import diff --git a/opendaylight/md-sal/cds-access-api/pom.xml b/opendaylight/md-sal/cds-access-api/pom.xml index 2e9b1f3a546..0478d28dc83 100644 --- a/opendaylight/md-sal/cds-access-api/pom.xml +++ b/opendaylight/md-sal/cds-access-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/cds-access-client/pom.xml b/opendaylight/md-sal/cds-access-client/pom.xml index 9943fe2d708..57f592dd816 100644 --- a/opendaylight/md-sal/cds-access-client/pom.xml +++ b/opendaylight/md-sal/cds-access-client/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/cds-dom-api/pom.xml b/opendaylight/md-sal/cds-dom-api/pom.xml index 28365c793bf..79c8821450f 100644 --- a/opendaylight/md-sal/cds-dom-api/pom.xml +++ b/opendaylight/md-sal/cds-dom-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/cds-mgmt-api/pom.xml b/opendaylight/md-sal/cds-mgmt-api/pom.xml index 64ed127c187..87f328dab7d 100644 --- a/opendaylight/md-sal/cds-mgmt-api/pom.xml +++ b/opendaylight/md-sal/cds-mgmt-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/eos-dom-akka/pom.xml b/opendaylight/md-sal/eos-dom-akka/pom.xml index 34fb89ff570..a8006dd48ac 100644 --- a/opendaylight/md-sal/eos-dom-akka/pom.xml +++ b/opendaylight/md-sal/eos-dom-akka/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.controller mdsal-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/mdsal-it-base/pom.xml b/opendaylight/md-sal/mdsal-it-base/pom.xml index 0a050b5009c..72e7befce9a 100644 --- a/opendaylight/md-sal/mdsal-it-base/pom.xml +++ b/opendaylight/md-sal/mdsal-it-base/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-it-base - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT bundle diff --git a/opendaylight/md-sal/mdsal-it-parent/pom.xml b/opendaylight/md-sal/mdsal-it-parent/pom.xml index 9f68bf82e01..58025fc1e35 100644 --- a/opendaylight/md-sal/mdsal-it-parent/pom.xml +++ b/opendaylight/md-sal/mdsal-it-parent/pom.xml @@ -19,7 +19,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-it-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT pom @@ -37,7 +37,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller controller-artifacts - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT pom import diff --git a/opendaylight/md-sal/parent/pom.xml b/opendaylight/md-sal/parent/pom.xml index ae10ee5dd3a..7116d0b4551 100644 --- a/opendaylight/md-sal/parent/pom.xml +++ b/opendaylight/md-sal/parent/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller mdsal-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT pom @@ -25,7 +25,7 @@ org.opendaylight.controller bundle-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT pom import diff --git a/opendaylight/md-sal/pom.xml b/opendaylight/md-sal/pom.xml index 3c4e4da1f4e..eefe5ac8fd3 100644 --- a/opendaylight/md-sal/pom.xml +++ b/opendaylight/md-sal/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller mdsal-aggregator - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT pom diff --git a/opendaylight/md-sal/sal-akka-raft-example/pom.xml b/opendaylight/md-sal/sal-akka-raft-example/pom.xml index 3f44508919c..95b18bd0cb8 100644 --- a/opendaylight/md-sal/sal-akka-raft-example/pom.xml +++ b/opendaylight/md-sal/sal-akka-raft-example/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller mdsal-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-akka-raft/pom.xml b/opendaylight/md-sal/sal-akka-raft/pom.xml index 956a52fdcdf..acaa3af0c4a 100644 --- a/opendaylight/md-sal/sal-akka-raft/pom.xml +++ b/opendaylight/md-sal/sal-akka-raft/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml b/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml index 44316693fbe..ec3ca3c44f7 100644 --- a/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml +++ b/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-binding-it/pom.xml b/opendaylight/md-sal/sal-binding-it/pom.xml index 0b727e94fb5..e4b77f4c7c7 100644 --- a/opendaylight/md-sal/sal-binding-it/pom.xml +++ b/opendaylight/md-sal/sal-binding-it/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-it-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../mdsal-it-parent sal-binding-it diff --git a/opendaylight/md-sal/sal-cluster-admin-api/pom.xml b/opendaylight/md-sal/sal-cluster-admin-api/pom.xml index 09e076bc60d..c77daee7b0a 100644 --- a/opendaylight/md-sal/sal-cluster-admin-api/pom.xml +++ b/opendaylight/md-sal/sal-cluster-admin-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml b/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml index 62e6edd2859..199e1c20b76 100644 --- a/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml +++ b/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml b/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml index 330d57e9b91..2488a84f76a 100644 --- a/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml +++ b/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml @@ -5,7 +5,7 @@ mdsal-parent org.opendaylight.controller - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../parent/pom.xml 4.0.0 diff --git a/opendaylight/md-sal/sal-clustering-commons/pom.xml b/opendaylight/md-sal/sal-clustering-commons/pom.xml index ee8491ef67d..d7b8869afe6 100644 --- a/opendaylight/md-sal/sal-clustering-commons/pom.xml +++ b/opendaylight/md-sal/sal-clustering-commons/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-clustering-config/pom.xml b/opendaylight/md-sal/sal-clustering-config/pom.xml index 854941777ef..910009e1fa5 100644 --- a/opendaylight/md-sal/sal-clustering-config/pom.xml +++ b/opendaylight/md-sal/sal-clustering-config/pom.xml @@ -18,7 +18,7 @@ org.opendaylight.controller sal-clustering-config - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT jar Configuration files for md-sal clustering diff --git a/opendaylight/md-sal/sal-common-util/pom.xml b/opendaylight/md-sal/sal-common-util/pom.xml index 6171cc70ca1..e747316a116 100644 --- a/opendaylight/md-sal/sal-common-util/pom.xml +++ b/opendaylight/md-sal/sal-common-util/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-distributed-datastore/pom.xml b/opendaylight/md-sal/sal-distributed-datastore/pom.xml index be350fcf419..a362910d215 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/pom.xml +++ b/opendaylight/md-sal/sal-distributed-datastore/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml b/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml index 055dd454477..eeaca15599f 100644 --- a/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml +++ b/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-remoterpc-connector/pom.xml b/opendaylight/md-sal/sal-remoterpc-connector/pom.xml index 022756adaca..eca8bdc7af6 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/pom.xml +++ b/opendaylight/md-sal/sal-remoterpc-connector/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-test-model/pom.xml b/opendaylight/md-sal/sal-test-model/pom.xml index 2b582e16fb4..a260c52c08c 100644 --- a/opendaylight/md-sal/sal-test-model/pom.xml +++ b/opendaylight/md-sal/sal-test-model/pom.xml @@ -6,7 +6,7 @@ org.opendaylight.controller mdsal-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml index 95717bf99c4..a54354de301 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller.samples clustering-it-config - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT jar diff --git a/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml index db932114e34..ccedcc0abbe 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml @@ -12,7 +12,7 @@ mdsal-parent org.opendaylight.controller - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../../../parent/pom.xml 4.0.0 diff --git a/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml index 2ec22af42e3..023cf36dab6 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.controller mdsal-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../../../parent diff --git a/opendaylight/md-sal/samples/clustering-test-app/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/pom.xml index 70986a72d3c..fc349e7c346 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller.samples clustering-test-app - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT pom diff --git a/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml index 49ed2e7c50f..ab9b408a104 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../../../parent diff --git a/opendaylight/md-sal/samples/pom.xml b/opendaylight/md-sal/samples/pom.xml index c737cbeedc3..185511fca87 100644 --- a/opendaylight/md-sal/samples/pom.xml +++ b/opendaylight/md-sal/samples/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller.samples samples-aggregator - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT pom diff --git a/opendaylight/md-sal/samples/toaster-consumer/pom.xml b/opendaylight/md-sal/samples/toaster-consumer/pom.xml index 5c6007add72..e8137c867b0 100644 --- a/opendaylight/md-sal/samples/toaster-consumer/pom.xml +++ b/opendaylight/md-sal/samples/toaster-consumer/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../../parent diff --git a/opendaylight/md-sal/samples/toaster-it/pom.xml b/opendaylight/md-sal/samples/toaster-it/pom.xml index adabf548c25..ad61615326a 100644 --- a/opendaylight/md-sal/samples/toaster-it/pom.xml +++ b/opendaylight/md-sal/samples/toaster-it/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.controller mdsal-it-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../../mdsal-it-parent sample-toaster-it diff --git a/opendaylight/md-sal/samples/toaster-provider/pom.xml b/opendaylight/md-sal/samples/toaster-provider/pom.xml index e83405112d2..de4d0f2dfb5 100644 --- a/opendaylight/md-sal/samples/toaster-provider/pom.xml +++ b/opendaylight/md-sal/samples/toaster-provider/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../../parent diff --git a/opendaylight/md-sal/samples/toaster/pom.xml b/opendaylight/md-sal/samples/toaster/pom.xml index 15da02aee72..a44069ade0a 100644 --- a/opendaylight/md-sal/samples/toaster/pom.xml +++ b/opendaylight/md-sal/samples/toaster/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.controller mdsal-parent - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT ../../parent diff --git a/pom.xml b/pom.xml index aba952958f6..684c50b1f22 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller releasepom - 6.0.7-SNAPSHOT + 6.0.8-SNAPSHOT pom controller From 23c7e3316e1e14334b90237510ce3ec147279fb0 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 27 Mar 2023 13:58:44 +0200 Subject: [PATCH 28/69] Upgrade reflectasm to 1.11.9 https://github.com/EsotericSoftware/reflectasm/issues/68, removing the need to override ASM version. Change-Id: I489f75a63f9649518493291fe0f36362d4011242 Signed-off-by: Robert Varga --- opendaylight/md-sal/sal-akka-segmented-journal/pom.xml | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml b/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml index ec3ca3c44f7..84107585680 100644 --- a/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml +++ b/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml @@ -80,13 +80,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html com.esotericsoftware reflectasm - 1.11.8 - provided - - - org.ow2.asm - asm - 5.2 + 1.11.9 provided @@ -128,7 +122,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html *;inline=true;groupId=io.atomix, *;inline=true;groupId=com.esotericsoftware, *;inline=true;groupId=org.objenesis, - *;inline=true;groupId=org.ow2.asm, From dfe47972e9f04c073de7620667347e1e93e33f5b Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 27 Mar 2023 11:34:52 +0200 Subject: [PATCH 29/69] Dump DTCL changes on trace Reduce memory usage by not dumping all changes at once, but rather each of them separately and only when trace is enabled. Change-Id: I954dd4576d2625a862b254532379974c19bc1c60 Signed-off-by: Robert Varga (cherry picked from commit f8208948eb67a26207343ca60b5b19286f5e4410) --- .../datastore/DataTreeChangeListenerActor.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerActor.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerActor.java index 9384a84e382..6f88d3ea986 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerActor.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerActor.java @@ -60,9 +60,9 @@ void onInitialData(final OnInitialData message) { LOG.debug("{}: Notifying onInitialData to listener {}", logContext, listener); try { - this.listener.onInitialData(); + listener.onInitialData(); } catch (Exception e) { - LOG.error("{}: Error notifying listener {}", logContext, this.listener, e); + LOG.error("{}: Error notifying listener {}", logContext, listener, e); } } @@ -75,15 +75,21 @@ void dataTreeChanged(final DataTreeChanged message) { return; } - LOG.debug("{}: Sending {} change notification(s) {} to listener {}", logContext, message.getChanges().size(), - message.getChanges(), listener); + final var changes = message.getChanges(); + LOG.debug("{}: Sending {} change notification(s) to listener {}", logContext, changes.size(), listener); + if (LOG.isTraceEnabled() && !changes.isEmpty()) { + LOG.trace("{}: detailed change follow", logContext); + for (int i = 0, size = changes.size(); i < size; ++i) { + LOG.trace("{}: change {}: {}", logContext, i, changes.get(i)); + } + } notificationCount++; try { - this.listener.onDataTreeChanged(message.getChanges()); + listener.onDataTreeChanged(changes); } catch (Exception e) { - LOG.error("{}: Error notifying listener {}", logContext, this.listener, e); + LOG.error("{}: Error notifying listener {}", logContext, listener, e); } // TODO: do we really need this? From 0b812fba3f5761351c6b3364ac79041ca57a95e0 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 3 Apr 2023 14:03:34 +0200 Subject: [PATCH 30/69] Clean up RpcErrorsException Fix whitespace and use local variable type inference to improve sizing. Change-Id: I344305a59e3b0078d942636c339d1686c006e4a3 Signed-off-by: Robert Varga (cherry picked from commit fc3cdd82fa019e010afc624e1a0f1d56609c0a59) --- .../controller/remote/rpc/RpcErrorsException.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/RpcErrorsException.java b/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/RpcErrorsException.java index 51fa0ce398e..d75805c3fe3 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/RpcErrorsException.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/RpcErrorsException.java @@ -5,7 +5,6 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.controller.remote.rpc; import java.io.Serializable; @@ -25,10 +24,11 @@ * @author Thomas Pantelis */ public class RpcErrorsException extends DOMRpcException { - + @java.io.Serial private static final long serialVersionUID = 1L; private static class RpcErrorData implements Serializable { + @java.io.Serial private static final long serialVersionUID = 1L; final ErrorSeverity severity; @@ -56,7 +56,7 @@ private static class RpcErrorData implements Serializable { public RpcErrorsException(final String message, final Iterable rpcErrors) { super(message); - for (final RpcError rpcError: rpcErrors) { + for (var rpcError : rpcErrors) { rpcErrorDataList.add(new RpcErrorData(rpcError.getSeverity(), rpcError.getErrorType(), rpcError.getTag(), rpcError.getApplicationTag(), rpcError.getMessage(), rpcError.getInfo(), rpcError.getCause())); @@ -64,8 +64,8 @@ public RpcErrorsException(final String message, final Iterable getRpcErrors() { - final Collection rpcErrors = new ArrayList<>(); - for (final RpcErrorData ed: rpcErrorDataList) { + final var rpcErrors = new ArrayList(); + for (var ed : rpcErrorDataList) { final RpcError rpcError = ed.severity == ErrorSeverity.ERROR ? RpcResultBuilder.newError(ed.errorType, ed.tag, ed.message, ed.applicationTag, ed.info, ed.cause) : From a7c2de9d5c248e431600d52a32896faad0bc90c4 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 3 Apr 2023 14:08:53 +0200 Subject: [PATCH 31/69] Clean up sal-clustering-commons Clean up argument finality and whitespace in for(:) constructs. Change-Id: If22f693e6c499aafc8fe0a606b2abb40a9f67cfc Signed-off-by: Robert Varga (cherry picked from commit 5608c84a27437ec16ea732c76cf4fd176342a605) --- .../notifications/RoleChangeNotifier.java | 2 +- .../cluster/io/ChunkedOutputStreamTest.java | 4 +-- .../io/FileBackedOutputStreamTest.java | 27 +++++++++---------- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/notifications/RoleChangeNotifier.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/notifications/RoleChangeNotifier.java index bb4ad65f161..78df8e92fde 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/notifications/RoleChangeNotifier.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/notifications/RoleChangeNotifier.java @@ -83,7 +83,7 @@ protected void handleReceive(final Object message) { new RoleChangeNotification(roleChanged.getMemberId(), roleChanged.getOldRole(), roleChanged.getNewRole()); - for (ActorRef listener: registeredListeners.values()) { + for (ActorRef listener : registeredListeners.values()) { listener.tell(latestRoleChangeNotification, getSelf()); } } else if (message instanceof LeaderStateChanged) { diff --git a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/io/ChunkedOutputStreamTest.java b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/io/ChunkedOutputStreamTest.java index 56c78f1c702..a93b6a8baaf 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/io/ChunkedOutputStreamTest.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/io/ChunkedOutputStreamTest.java @@ -70,8 +70,8 @@ public void testTwoChunksWrite() throws IOException { } int counter = 0; - for (byte[] chunk: assertFinishedStream(size, 2)) { - for (byte actual: chunk) { + for (byte[] chunk : assertFinishedStream(size, 2)) { + for (byte actual : chunk) { assertEquals((byte) counter++, actual); } } diff --git a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/io/FileBackedOutputStreamTest.java b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/io/FileBackedOutputStreamTest.java index ff5d61b41d6..da5c5b6763b 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/io/FileBackedOutputStreamTest.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/io/FileBackedOutputStreamTest.java @@ -18,7 +18,6 @@ import com.google.common.util.concurrent.Uninterruptibles; import java.io.File; import java.io.IOException; -import java.io.InputStream; import java.util.Arrays; import java.util.concurrent.TimeUnit; import org.junit.After; @@ -98,16 +97,14 @@ public void testFileThresholdReachedWithWriteBytes() throws IOException { assertEquals("Temp file", tempFileName, findTempFileName(TEMP_DIR)); assertEquals("Size", bytes.length, fbos.asByteSource().size()); - InputStream inputStream = fbos.asByteSource().openStream(); + try (var inputStream = fbos.asByteSource().openStream()) { + assertArrayEquals("Read bytes", bytes, fbos.asByteSource().read()); - assertArrayEquals("Read bytes", bytes, fbos.asByteSource().read()); - - byte[] inBytes = new byte[bytes.length]; - assertEquals("# bytes read", bytes.length, inputStream.read(inBytes)); - assertArrayEquals("Read InputStream", bytes, inBytes); - assertEquals("End of stream", -1, inputStream.read()); - - inputStream.close(); + byte[] inBytes = new byte[bytes.length]; + assertEquals("# bytes read", bytes.length, inputStream.read(inBytes)); + assertArrayEquals("Read InputStream", bytes, inBytes); + assertEquals("End of stream", -1, inputStream.read()); + } fbos.cleanup(); @@ -182,27 +179,27 @@ public void testTempFileDeletedOnGC() throws IOException { fail("Temp file was not deleted"); } - static String findTempFileName(String dirPath) { + static String findTempFileName(final String dirPath) { String[] files = new File(dirPath).list(); assertNotNull(files); assertTrue("Found more than one temp file: " + Arrays.toString(files), files.length < 2); return files.length == 1 ? files[0] : null; } - static boolean deleteFile(String file) { + static boolean deleteFile(final String file) { return new File(file).delete(); } - static void deleteTempFiles(String path) { + static void deleteTempFiles(final String path) { String[] files = new File(path).list(); if (files != null) { - for (String file: files) { + for (String file : files) { deleteFile(path + File.separator + file); } } } - static void createDir(String path) { + static void createDir(final String path) { File dir = new File(path); if (!dir.exists() && !dir.mkdirs()) { throw new RuntimeException("Failed to create temp dir " + path); From 23596d4f45a5bc673b81f6145f78ae7c4601a0cb Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 3 Apr 2023 12:55:44 +0200 Subject: [PATCH 32/69] Improve Candidate.votingPeers Use ImmutableList to ensure the list is never modified. This also improves overhead/performance slightly. Change-Id: Iad491da0e446da0a07e96067846c2c57c0dcfb9a Signed-off-by: Robert Varga (cherry picked from commit e44f00950d144590e0d30ef892e7b8e800dcbb06) --- .../cluster/raft/behaviors/Candidate.java | 22 +++++++------------ 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/Candidate.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/Candidate.java index 569f6b3d245..77f7a06c49d 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/Candidate.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/Candidate.java @@ -9,8 +9,7 @@ import akka.actor.ActorRef; import akka.actor.ActorSelection; -import java.util.ArrayList; -import java.util.Collection; +import com.google.common.collect.ImmutableList; import org.opendaylight.controller.cluster.raft.PeerInfo; import org.opendaylight.controller.cluster.raft.RaftActorContext; import org.opendaylight.controller.cluster.raft.RaftState; @@ -44,21 +43,18 @@ * */ public final class Candidate extends AbstractRaftActorBehavior { - - private int voteCount; - + private final ImmutableList votingPeers; private final int votesRequired; - private final Collection votingPeers = new ArrayList<>(); + private int voteCount; public Candidate(final RaftActorContext context) { super(context, RaftState.Candidate); - for (PeerInfo peer: context.getPeers()) { - if (peer.isVoting()) { - votingPeers.add(peer.getId()); - } - } + votingPeers = context.getPeers().stream() + .filter(PeerInfo::isVoting) + .map(PeerInfo::getId) + .collect(ImmutableList.toImmutableList()); log.debug("{}: Election: Candidate has following voting peers: {}", logName(), votingPeers); @@ -157,9 +153,7 @@ public RaftActorBehavior handleMessage(final ActorRef sender, final Object messa return this; } - if (message instanceof RaftRPC) { - - RaftRPC rpc = (RaftRPC) message; + if (message instanceof RaftRPC rpc) { log.debug("{}: RaftRPC message received {}, my term is {}", logName(), rpc, context.getTermInformation().getCurrentTerm()); From c9cb45644cc247478b94376617d9563f1cc7dfde Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 3 Apr 2023 12:57:54 +0200 Subject: [PATCH 33/69] Improve Follower's Snapshot Use List.of() to communicate empty lists. Change-Id: I5cebcde9e92b11a82be0bddf3645eeb8bc909895 Signed-off-by: Robert Varga (cherry picked from commit 703c260bebba0a8f7efa85edef4ad4d359c59cda) --- .../controller/cluster/raft/behaviors/Follower.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/Follower.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/Follower.java index fa28cbf7187..4f7a47314f7 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/Follower.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/Follower.java @@ -18,7 +18,6 @@ import com.google.common.base.Stopwatch; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; -import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Optional; @@ -641,7 +640,7 @@ private void handleInstallSnapshot(final ActorRef sender, final InstallSnapshot Snapshot snapshot = Snapshot.create( context.getSnapshotManager().convertSnapshot(snapshotTracker.getSnapshotBytes()), - new ArrayList<>(), + List.of(), installSnapshot.getLastIncludedIndex(), installSnapshot.getLastIncludedTerm(), installSnapshot.getLastIncludedIndex(), From e705e883299cfc5235b60e14bf0a71137104c634 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 3 Apr 2023 15:31:18 +0200 Subject: [PATCH 34/69] Mark readResolve() with @Serial This method is related to serialization, mark it as such. Change-Id: I65fc80e73a7a6775e8f535f85ba8c5af7ab6677b Signed-off-by: Robert Varga (cherry picked from commit 537c44438b1e8854b719903ac2a4a0d5e12d6606) --- .../cluster/raft/persisted/ServerConfigurationPayload.java | 1 + 1 file changed, 1 insertion(+) diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/ServerConfigurationPayload.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/ServerConfigurationPayload.java index 68a5945b9f8..8c1ee8bfcd8 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/ServerConfigurationPayload.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/ServerConfigurationPayload.java @@ -65,6 +65,7 @@ public void readExternal(final ObjectInput in) throws IOException, ClassNotFound } } + @java.io.Serial private Object readResolve() { return new ServerConfigurationPayload(serverConfig); } From 008a1cc34f4445769ce7a9336c2ff020e9874f20 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 3 Apr 2023 15:37:19 +0200 Subject: [PATCH 35/69] Mark Payloads with java.io.Serial We have a number of fields/methods which should be marked with @Serial, add another pass on them. Change-Id: Ie08d6e718980e4e3acb148226760ad75ef82566e Signed-off-by: Robert Varga (cherry picked from commit c1bae57105d04c2d13fcf6c0ca654177743b51f8) --- .../controller/cluster/raft/messages/IdentifiablePayload.java | 2 +- .../opendaylight/controller/cluster/raft/messages/Payload.java | 2 ++ .../raft/RaftActorDelegatingPersistentDataProviderTest.java | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/IdentifiablePayload.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/IdentifiablePayload.java index dad696deb12..a6034c55cc5 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/IdentifiablePayload.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/IdentifiablePayload.java @@ -11,6 +11,6 @@ import org.opendaylight.yangtools.concepts.Identifier; public abstract class IdentifiablePayload extends Payload implements Identifiable { + @java.io.Serial private static final long serialVersionUID = 1L; - } diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/Payload.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/Payload.java index bda1d1e22ca..c75385ab1ea 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/Payload.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/Payload.java @@ -17,6 +17,7 @@ * Similarly when state needs to be applied to the derived RaftActor it will be passed an instance of the Payload class. */ public abstract class Payload implements Serializable { + @java.io.Serial private static final long serialVersionUID = 1L; /** @@ -40,5 +41,6 @@ public abstract class Payload implements Serializable { * * @return Serialization proxy */ + @java.io.Serial protected abstract Object writeReplace(); } diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorDelegatingPersistentDataProviderTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorDelegatingPersistentDataProviderTest.java index 9dedc67e687..22369d78870 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorDelegatingPersistentDataProviderTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorDelegatingPersistentDataProviderTest.java @@ -98,6 +98,7 @@ public void testPersistWithPersistenceDisabled() throws Exception { } static class TestNonPersistentPayload extends Payload { + @java.io.Serial private static final long serialVersionUID = 1L; @Override @@ -118,7 +119,7 @@ protected Object writeReplace() { } static class TestPersistentPayload extends TestNonPersistentPayload implements PersistentPayload { + @java.io.Serial private static final long serialVersionUID = 1L; - } } From 35ae19ea02ca4e55ff2c7b60391f19e2447583fc Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 3 Apr 2023 15:43:58 +0200 Subject: [PATCH 36/69] Add java.io.Serial to EmptyState Annotate members related to serialization. Change-Id: I46b486244cd4f34dbae47c459c353411eccdf675 Signed-off-by: Robert Varga (cherry picked from commit ef9927802a079c374db971f94b33b030fd355943) --- .../controller/cluster/raft/persisted/EmptyState.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/EmptyState.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/EmptyState.java index aee90ace41e..9939e2f2b09 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/EmptyState.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/EmptyState.java @@ -13,13 +13,16 @@ * @author Thomas Pantelis */ public final class EmptyState implements Snapshot.State { + @java.io.Serial private static final long serialVersionUID = 1L; public static final EmptyState INSTANCE = new EmptyState(); private EmptyState() { + // Hidden on purpose } + @java.io.Serial @SuppressWarnings("static-method") private Object readResolve() { return INSTANCE; From 9ec56b57c582c050e40b2bae1883cfd3f02cee83 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 3 Apr 2023 16:59:40 +0200 Subject: [PATCH 37/69] Fix DistributedDataStoreRemotingIntegrationTest typos MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We have a few typos in comments, fix them up. Change-Id: I574849a397f6dea62e928026609c8a191451d701 Signed-off-by: Šimon Ukuš Signed-off-by: Robert Varga (cherry picked from commit 1c7ddb7ffc8a78636c731ca589945636f28007a2) --- ...DistributedDataStoreRemotingIntegrationTest.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DistributedDataStoreRemotingIntegrationTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DistributedDataStoreRemotingIntegrationTest.java index 1cdca5aae07..4795cb2ae46 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DistributedDataStoreRemotingIntegrationTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DistributedDataStoreRemotingIntegrationTest.java @@ -937,9 +937,8 @@ public void testTransactionForwardedToLeaderAfterRetry() throws Exception { final DOMStoreThreePhaseCommitCohort writeTx2Cohort = writeTx2.ready(); // Prepare another WO that writes to a single shard and thus will be directly committed on ready. This - // tx writes 5 cars so 2 BatchedModidifications messages will be sent initially and cached in the - // leader shard (with shardBatchedModificationCount set to 2). The 3rd BatchedModidifications will be - // sent on ready. + // tx writes 5 cars so 2 BatchedModifications messages will be sent initially and cached in the leader shard + // (with shardBatchedModificationCount set to 2). The 3rd BatchedModifications will be sent on ready. final DOMStoreWriteTransaction writeTx3 = followerDistributedDataStore.newWriteOnlyTransaction(); for (int i = 1; i <= 5; i++, carIndex++) { @@ -947,16 +946,16 @@ public void testTransactionForwardedToLeaderAfterRetry() throws Exception { writeTx3.write(CarsModel.newCarPath("car" + carIndex), cars.getLast()); } - // Prepare another WO that writes to a single shard. This will send a single BatchedModidifications - // message on ready. + // Prepare another WO that writes to a single shard. This will send a single BatchedModifications message + // on ready. final DOMStoreWriteTransaction writeTx4 = followerDistributedDataStore.newWriteOnlyTransaction(); cars.add(CarsModel.newCarEntry("car" + carIndex, Uint64.valueOf(carIndex))); writeTx4.write(CarsModel.newCarPath("car" + carIndex), cars.getLast()); carIndex++; - // Prepare a RW tx that will create a tx actor and send a ForwardedReadyTransaciton message to the - // leader shard on ready. + // Prepare a RW tx that will create a tx actor and send a ForwardedReadyTransaction message to the leader shard + // on ready. final DOMStoreReadWriteTransaction readWriteTx = followerDistributedDataStore.newReadWriteTransaction(); cars.add(CarsModel.newCarEntry("car" + carIndex, Uint64.valueOf(carIndex))); From e533f3bc16b49034decf6ab31e77f300f8db07f5 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 3 Apr 2023 17:07:21 +0200 Subject: [PATCH 38/69] Use instanceof pattern in AbstractFrontendHistory Reduce the number of casts by using instanceof patterns. Change-Id: I0ce1ca0229b1e55a5b4745584b679a7872953297 Signed-off-by: Robert Varga (cherry picked from commit 7314a4f99840d76cd0c167d22a588d98faa362a4) --- .../datastore/AbstractFrontendHistory.java | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractFrontendHistory.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractFrontendHistory.java index 31bf000ac21..3b2a107aa03 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractFrontendHistory.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractFrontendHistory.java @@ -79,10 +79,10 @@ final long readTime() { final @Nullable TransactionSuccess handleTransactionRequest(final TransactionRequest request, final RequestEnvelope envelope, final long now) throws RequestException { - if (request instanceof TransactionPurgeRequest) { - return handleTransactionPurgeRequest((TransactionPurgeRequest) request, envelope, now); - } else if (request instanceof SkipTransactionsRequest) { - return handleSkipTransactionsRequest((SkipTransactionsRequest) request, envelope, now); + if (request instanceof TransactionPurgeRequest purgeRequest) { + return handleTransactionPurgeRequest(purgeRequest, envelope, now); + } else if (request instanceof SkipTransactionsRequest skipRequest) { + return handleSkipTransactionsRequest(skipRequest, envelope, now); } final TransactionIdentifier id = request.getTarget(); @@ -224,13 +224,12 @@ final void retire() { } private FrontendTransaction createTransaction(final TransactionRequest request, final TransactionIdentifier id) { - if (request instanceof CommitLocalTransactionRequest) { + if (request instanceof CommitLocalTransactionRequest commitLocalRequest) { LOG.debug("{}: allocating new ready transaction {}", persistenceId(), id); tree.getStats().incrementReadWriteTransactionCount(); - return createReadyTransaction(id, ((CommitLocalTransactionRequest) request).getModification()); + return createReadyTransaction(id, commitLocalRequest.getModification()); } - if (request instanceof AbstractReadTransactionRequest - && ((AbstractReadTransactionRequest) request).isSnapshotOnly()) { + if (request instanceof AbstractReadTransactionRequest readTxRequest && readTxRequest.isSnapshotOnly()) { LOG.debug("{}: allocating new open snapshot {}", persistenceId(), id); tree.getStats().incrementReadOnlyTransactionCount(); return createOpenSnapshot(id); From b126cf0693c3586f86fda93180cb9175e7363950 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 3 Apr 2023 17:26:04 +0200 Subject: [PATCH 39/69] Access historyId only once This is a simple improvement, improving access a bit. Change-Id: I42dbd91a0a8d5ce75cd99b36d786d446eac69501 Signed-off-by: Robert Varga (cherry picked from commit c45dbeced41db0fa006d12648f6c56e0a4be8f87) --- .../cluster/datastore/ShardDataTree.java | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java index 65511017ae6..7ad721fc905 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java @@ -621,22 +621,21 @@ final ShardDataTreeTransactionChain ensureTransactionChain(final LocalHistoryIde final ReadOnlyShardDataTreeTransaction newReadOnlyTransaction(final TransactionIdentifier txId) { shard.getShardMBean().incrementReadOnlyTransactionCount(); - if (txId.getHistoryId().getHistoryId() == 0) { + final var historyId = txId.getHistoryId(); + if (historyId.getHistoryId() == 0) { return new ReadOnlyShardDataTreeTransaction(this, txId, dataTree.takeSnapshot()); } - - return ensureTransactionChain(txId.getHistoryId(), null).newReadOnlyTransaction(txId); + return ensureTransactionChain(historyId, null).newReadOnlyTransaction(txId); } final ReadWriteShardDataTreeTransaction newReadWriteTransaction(final TransactionIdentifier txId) { shard.getShardMBean().incrementReadWriteTransactionCount(); - if (txId.getHistoryId().getHistoryId() == 0) { - return new ReadWriteShardDataTreeTransaction(ShardDataTree.this, txId, dataTree.takeSnapshot() - .newModification()); + final var historyId = txId.getHistoryId(); + if (historyId.getHistoryId() == 0) { + return new ReadWriteShardDataTreeTransaction(this, txId, dataTree.takeSnapshot().newModification()); } - - return ensureTransactionChain(txId.getHistoryId(), null).newReadWriteTransaction(txId); + return ensureTransactionChain(historyId, null).newReadWriteTransaction(txId); } @VisibleForTesting @@ -1184,11 +1183,11 @@ final ShardDataTreeCohort createReadyCohort(final TransactionIdentifier txId, fi // the newReadWriteTransaction() final ShardDataTreeCohort newReadyCohort(final TransactionIdentifier txId, final DataTreeModification mod, final Optional> participatingShardNames) { - if (txId.getHistoryId().getHistoryId() == 0) { + final var historyId = txId.getHistoryId(); + if (historyId.getHistoryId() == 0) { return createReadyCohort(txId, mod, participatingShardNames); } - - return ensureTransactionChain(txId.getHistoryId(), null).createReadyCohort(txId, mod, participatingShardNames); + return ensureTransactionChain(historyId, null).createReadyCohort(txId, mod, participatingShardNames); } @SuppressFBWarnings(value = "DB_DUPLICATE_SWITCH_CLAUSES", justification = "See inline comments below.") From 7262158a72c4c2547f8fb892f857275ae1fdbbd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0imon=20Uku=C5=A1?= Date: Fri, 17 Mar 2023 09:58:40 +0100 Subject: [PATCH 40/69] Fix StandaloneFrontendHistory accounting MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit testTransactionForwardedToLeaderAfterRetry() is exposing a scheduling difference between the two implementations -- with tell-based protocol we are holding off sending modifications until there is a significant event needing them to be flushed to the backend. Fixing this up exposes a bug in StandaloneFrontendHistory transaction accounting, as circles back to ShardDataTree, where its transactions are accounted for again -- fix that mistake by allocating transactions directly in StandaloneFrontendHistory. JIRA: CONTROLLER-2017 Change-Id: Ied00910f55bd3c63f99ae187396c1a193e5ece20 Signed-off-by: Šimon Ukuš Signed-off-by: Robert Varga (cherry picked from commit f70fb5eaee514ffa5963049ac12286c2dee4ff80) --- .../datastore/StandaloneFrontendHistory.java | 6 ++-- ...butedDataStoreRemotingIntegrationTest.java | 33 ++++++++++++++++--- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/StandaloneFrontendHistory.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/StandaloneFrontendHistory.java index d26b23e9dc2..df13cd13682 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/StandaloneFrontendHistory.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/StandaloneFrontendHistory.java @@ -60,12 +60,14 @@ public LocalHistoryIdentifier getIdentifier() { @Override FrontendTransaction createOpenSnapshot(final TransactionIdentifier id) { - return FrontendReadOnlyTransaction.create(this, tree.newReadOnlyTransaction(id)); + return FrontendReadOnlyTransaction.create(this, + new ReadOnlyShardDataTreeTransaction(tree, id, tree.takeSnapshot())); } @Override FrontendTransaction createOpenTransaction(final TransactionIdentifier id) { - return FrontendReadWriteTransaction.createOpen(this, tree.newReadWriteTransaction(id)); + return FrontendReadWriteTransaction.createOpen(this, + new ReadWriteShardDataTreeTransaction(tree, id, tree.takeSnapshot().newModification())); } @Override diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DistributedDataStoreRemotingIntegrationTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DistributedDataStoreRemotingIntegrationTest.java index 4795cb2ae46..e5f3c958354 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DistributedDataStoreRemotingIntegrationTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DistributedDataStoreRemotingIntegrationTest.java @@ -897,6 +897,12 @@ public void testTransactionForwardedToLeaderAfterRetry() throws Exception { leaderDatastoreContextBuilder.shardBatchedModificationCount(2); initDatastoresWithCarsAndPeople("testTransactionForwardedToLeaderAfterRetry"); + // Verify backend statistics on start + IntegrationTestKit.verifyShardStats(leaderDistributedDataStore, "cars", + stats -> assertEquals("getReadWriteTransactionCount", 0, stats.getReadWriteTransactionCount())); + IntegrationTestKit.verifyShardStats(followerDistributedDataStore, "cars", + stats -> assertEquals("getReadWriteTransactionCount", 0, stats.getReadWriteTransactionCount())); + // Do an initial write to get the primary shard info cached. final DOMStoreWriteTransaction initialWriteTx = followerDistributedDataStore.newWriteOnlyTransaction(); @@ -936,6 +942,12 @@ public void testTransactionForwardedToLeaderAfterRetry() throws Exception { writeTx2.write(PeopleModel.PERSON_LIST_PATH, people); final DOMStoreThreePhaseCommitCohort writeTx2Cohort = writeTx2.ready(); + // At this point only leader should see the transactions + IntegrationTestKit.verifyShardStats(leaderDistributedDataStore, "cars", + stats -> assertEquals("getReadWriteTransactionCount", 2, stats.getReadWriteTransactionCount())); + IntegrationTestKit.verifyShardStats(followerDistributedDataStore, "cars", + stats -> assertEquals("getReadWriteTransactionCount", 0, stats.getReadWriteTransactionCount())); + // Prepare another WO that writes to a single shard and thus will be directly committed on ready. This // tx writes 5 cars so 2 BatchedModifications messages will be sent initially and cached in the leader shard // (with shardBatchedModificationCount set to 2). The 3rd BatchedModifications will be sent on ready. @@ -959,12 +971,16 @@ public void testTransactionForwardedToLeaderAfterRetry() throws Exception { final DOMStoreReadWriteTransaction readWriteTx = followerDistributedDataStore.newReadWriteTransaction(); cars.add(CarsModel.newCarEntry("car" + carIndex, Uint64.valueOf(carIndex))); - readWriteTx.write(CarsModel.newCarPath("car" + carIndex), cars.getLast()); - - // FIXME: CONTROLLER-2017: ClientBackedDataStore reports only 4 transactions - assumeTrue(DistributedDataStore.class.isAssignableFrom(testParameter)); + final YangInstanceIdentifier carPath = CarsModel.newCarPath("car" + carIndex); + readWriteTx.write(carPath, cars.getLast()); + + // There is a difference here between implementations: tell-based protocol will postpone write operations until + // either a read is made or the transaction is submitted. Here we flush out the last transaction, so we see + // three transactions, not just the ones we have started committing + assertTrue(readWriteTx.exists(carPath).get(2, TimeUnit.SECONDS)); + final int earlyTxCount = DistributedDataStore.class.isAssignableFrom(testParameter) ? 5 : 3; IntegrationTestKit.verifyShardStats(leaderDistributedDataStore, "cars", - stats -> assertEquals("getReadWriteTransactionCount", 5, stats.getReadWriteTransactionCount())); + stats -> assertEquals("getReadWriteTransactionCount", earlyTxCount, stats.getReadWriteTransactionCount())); // Disable elections on the leader so it switches to follower. @@ -997,6 +1013,13 @@ public void testTransactionForwardedToLeaderAfterRetry() throws Exception { followerTestKit.doCommit(writeTx4Cohort); followerTestKit.doCommit(rwTxCohort); + // At this point everything is committed and the follower datastore should see 5 transactions, but leader should + // only see the initial transactions + IntegrationTestKit.verifyShardStats(leaderDistributedDataStore, "cars", + stats -> assertEquals("getReadWriteTransactionCount", earlyTxCount, stats.getReadWriteTransactionCount())); + IntegrationTestKit.verifyShardStats(followerDistributedDataStore, "cars", + stats -> assertEquals("getReadWriteTransactionCount", 5, stats.getReadWriteTransactionCount())); + DOMStoreReadTransaction readTx = leaderDistributedDataStore.newReadOnlyTransaction(); verifyCars(readTx, cars.toArray(new MapEntryNode[cars.size()])); verifyNode(readTx, PeopleModel.PERSON_LIST_PATH, people); From 3e7c12d4dee28071d24d38ac089cc2153a8bea2c Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 3 Apr 2023 17:17:03 +0200 Subject: [PATCH 41/69] Use instanceof pattern in FrontendReadWriteTransaction Improve cast safety by combining the check and cast into a instanceof pattern, Change-Id: I987f78de9df8ca1f3ccbb98fd807938bb0743855 Signed-off-by: Robert Varga (cherry picked from commit 9939de5ae72370f3d27f0b789b2ee9e3f6f14fcc) --- .../FrontendReadWriteTransaction.java | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadWriteTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadWriteTransaction.java index dfe06322449..95930dba6b8 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadWriteTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadWriteTransaction.java @@ -187,20 +187,20 @@ static FrontendReadWriteTransaction createReady(final AbstractFrontendHistory hi @Override TransactionSuccess doHandleRequest(final TransactionRequest request, final RequestEnvelope envelope, final long now) throws RequestException { - if (request instanceof ModifyTransactionRequest) { - return handleModifyTransaction((ModifyTransactionRequest) request, envelope, now); - } else if (request instanceof CommitLocalTransactionRequest) { - handleCommitLocalTransaction((CommitLocalTransactionRequest) request, envelope, now); + if (request instanceof ModifyTransactionRequest modifyRequest) { + return handleModifyTransaction(modifyRequest, envelope, now); + } else if (request instanceof CommitLocalTransactionRequest commitLocalRequest) { + handleCommitLocalTransaction(commitLocalRequest, envelope, now); return null; - } else if (request instanceof ExistsTransactionRequest) { - return handleExistsTransaction((ExistsTransactionRequest) request); - } else if (request instanceof ReadTransactionRequest) { - return handleReadTransaction((ReadTransactionRequest) request); - } else if (request instanceof TransactionPreCommitRequest) { - handleTransactionPreCommit((TransactionPreCommitRequest) request, envelope, now); + } else if (request instanceof ExistsTransactionRequest existsRequest) { + return handleExistsTransaction(existsRequest); + } else if (request instanceof ReadTransactionRequest readRequest) { + return handleReadTransaction(readRequest); + } else if (request instanceof TransactionPreCommitRequest preCommitRequest) { + handleTransactionPreCommit(preCommitRequest, envelope, now); return null; - } else if (request instanceof TransactionDoCommitRequest) { - handleTransactionDoCommit((TransactionDoCommitRequest) request, envelope, now); + } else if (request instanceof TransactionDoCommitRequest doCommitRequest) { + handleTransactionDoCommit(doCommitRequest, envelope, now); return null; } else if (request instanceof TransactionAbortRequest) { return handleTransactionAbort(request.getSequence(), envelope, now); @@ -546,10 +546,10 @@ private void applyModifications(final Collection modifi for (TransactionModification m : modifications) { if (m instanceof TransactionDelete) { modification.delete(m.getPath()); - } else if (m instanceof TransactionWrite) { - modification.write(m.getPath(), ((TransactionWrite) m).getData()); - } else if (m instanceof TransactionMerge) { - modification.merge(m.getPath(), ((TransactionMerge) m).getData()); + } else if (m instanceof TransactionWrite write) { + modification.write(m.getPath(), write.getData()); + } else if (m instanceof TransactionMerge merge) { + modification.merge(m.getPath(), merge.getData()); } else { LOG.warn("{}: ignoring unhandled modification {}", persistenceId(), m); } From d8f02387f324138b3f89f29bdf8ac55e6854348a Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 3 Apr 2023 21:10:24 +0200 Subject: [PATCH 42/69] Centralize DataTree operations Centralize taking the snapshot and creating a modifications to the extent possible. Change-Id: Ifd2632f583230046686c97cd1b07fefd06266451 Signed-off-by: Robert Varga (cherry picked from commit 7708d30b155169f6226b09973d6ff457214ec75e) --- .../ReadOnlyShardDataTreeTransaction.java | 2 +- .../ReadWriteShardDataTreeTransaction.java | 8 ++-- .../cluster/datastore/ShardDataTree.java | 41 +++++++++++-------- .../ShardDataTreeTransactionChain.java | 10 +++-- .../datastore/StandaloneFrontendHistory.java | 6 +-- 5 files changed, 36 insertions(+), 31 deletions(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ReadOnlyShardDataTreeTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ReadOnlyShardDataTreeTransaction.java index 0906995fcac..28042ecc3dc 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ReadOnlyShardDataTreeTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ReadOnlyShardDataTreeTransaction.java @@ -12,7 +12,7 @@ final class ReadOnlyShardDataTreeTransaction extends AbstractShardDataTreeTransaction { ReadOnlyShardDataTreeTransaction(final ShardDataTreeTransactionParent parent, final TransactionIdentifier id, - final DataTreeSnapshot snapshot) { + final DataTreeSnapshot snapshot) { super(parent, id, snapshot); } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ReadWriteShardDataTreeTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ReadWriteShardDataTreeTransaction.java index 7d0cbb0cd63..b55d24ac8b2 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ReadWriteShardDataTreeTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ReadWriteShardDataTreeTransaction.java @@ -7,21 +7,21 @@ */ package org.opendaylight.controller.cluster.datastore; -import com.google.common.base.Preconditions; +import static com.google.common.base.Preconditions.checkState; + import java.util.Optional; import java.util.SortedSet; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; public final class ReadWriteShardDataTreeTransaction extends AbstractShardDataTreeTransaction { - ReadWriteShardDataTreeTransaction(final ShardDataTreeTransactionParent parent, final TransactionIdentifier id, - final DataTreeModification modification) { + final DataTreeModification modification) { super(parent, id, modification); } ShardDataTreeCohort ready(final Optional> participatingShardNames) { - Preconditions.checkState(close(), "Transaction is already closed"); + checkState(close(), "Transaction is already closed"); return getParent().finishTransaction(this, participatingShardNames); } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java index 7ad721fc905..c4bbe5b4118 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java @@ -237,7 +237,7 @@ final void resetTransactionBatch() { * @return A state snapshot */ @NonNull ShardDataTreeSnapshot takeStateSnapshot() { - final NormalizedNode rootNode = dataTree.takeSnapshot().readNode(YangInstanceIdentifier.empty()).get(); + final NormalizedNode rootNode = takeSnapshot().readNode(YangInstanceIdentifier.empty()).get(); final Builder>, ShardDataTreeSnapshotMetadata> metaBuilder = ImmutableMap.builder(); @@ -279,7 +279,7 @@ private void applySnapshot(final @NonNull ShardDataTreeSnapshot snapshot, } } - final DataTreeModification unwrapped = dataTree.takeSnapshot().newModification(); + final DataTreeModification unwrapped = newModification(); final DataTreeModification mod = wrapper.apply(unwrapped); // delete everything first mod.delete(YangInstanceIdentifier.empty()); @@ -335,7 +335,7 @@ final void applyRecoverySnapshot(final @NonNull ShardSnapshotState snapshot) thr @SuppressWarnings("checkstyle:IllegalCatch") private void applyRecoveryCandidate(final CommitTransactionPayload payload) throws IOException { final Entry entry = payload.acquireCandidate(); - final DataTreeModification unwrapped = dataTree.takeSnapshot().newModification(); + final DataTreeModification unwrapped = newModification(); final PruningDataTreeModification mod = createPruningModification(unwrapped, NormalizedNodeStreamVersion.MAGNESIUM.compareTo(entry.getValue().getVersion()) > 0); @@ -401,7 +401,7 @@ private void applyReplicatedCandidate(final CommitTransactionPayload payload) final TransactionIdentifier identifier = entry.getKey(); LOG.debug("{}: Applying foreign transaction {}", logContext, identifier); - final DataTreeModification mod = dataTree.takeSnapshot().newModification(); + final DataTreeModification mod = newModification(); // TODO: check version here, which will enable us to perform forward-compatibility transformations DataTreeCandidates.applyToModification(mod, entry.getValue().getCandidate()); mod.ready(); @@ -618,24 +618,29 @@ final ShardDataTreeTransactionChain ensureTransactionChain(final LocalHistoryIde return chain; } - final ReadOnlyShardDataTreeTransaction newReadOnlyTransaction(final TransactionIdentifier txId) { + final @NonNull ReadOnlyShardDataTreeTransaction newReadOnlyTransaction(final TransactionIdentifier txId) { shard.getShardMBean().incrementReadOnlyTransactionCount(); final var historyId = txId.getHistoryId(); - if (historyId.getHistoryId() == 0) { - return new ReadOnlyShardDataTreeTransaction(this, txId, dataTree.takeSnapshot()); - } - return ensureTransactionChain(historyId, null).newReadOnlyTransaction(txId); + return historyId.getHistoryId() == 0 ? newStandaloneReadOnlyTransaction(txId) + : ensureTransactionChain(historyId, null).newReadOnlyTransaction(txId); + } + + final @NonNull ReadOnlyShardDataTreeTransaction newStandaloneReadOnlyTransaction(final TransactionIdentifier txId) { + return new ReadOnlyShardDataTreeTransaction(this, txId, takeSnapshot()); } - final ReadWriteShardDataTreeTransaction newReadWriteTransaction(final TransactionIdentifier txId) { + final @NonNull ReadWriteShardDataTreeTransaction newReadWriteTransaction(final TransactionIdentifier txId) { shard.getShardMBean().incrementReadWriteTransactionCount(); final var historyId = txId.getHistoryId(); - if (historyId.getHistoryId() == 0) { - return new ReadWriteShardDataTreeTransaction(this, txId, dataTree.takeSnapshot().newModification()); - } - return ensureTransactionChain(historyId, null).newReadWriteTransaction(txId); + return historyId.getHistoryId() == 0 ? newStandaloneReadWriteTransaction(txId) + : ensureTransactionChain(historyId, null).newReadWriteTransaction(txId); + } + + final @NonNull ReadWriteShardDataTreeTransaction newStandaloneReadWriteTransaction( + final TransactionIdentifier txId) { + return new ReadWriteShardDataTreeTransaction(this, txId, newModification()); } @VisibleForTesting @@ -728,8 +733,8 @@ final void skipTransactions(final LocalHistoryIdentifier id, final ImmutableUnsi } final Optional readCurrentData() { - return dataTree.takeSnapshot().readNode(YangInstanceIdentifier.empty()) - .map(state -> DataTreeCandidates.fromNormalizedNode(YangInstanceIdentifier.empty(), state)); + return readNode(YangInstanceIdentifier.empty()) + .map(state -> DataTreeCandidates.fromNormalizedNode(YangInstanceIdentifier.empty(), state)); } final void registerTreeChangeListener(final YangInstanceIdentifier path, final DOMDataTreeChangeListener listener, @@ -775,7 +780,7 @@ final void purgeTransaction(final TransactionIdentifier id, final Runnable callb @VisibleForTesting public final Optional readNode(final YangInstanceIdentifier path) { - return dataTree.takeSnapshot().readNode(path); + return takeSnapshot().readNode(path); } final DataTreeSnapshot takeSnapshot() { @@ -784,7 +789,7 @@ final DataTreeSnapshot takeSnapshot() { @VisibleForTesting final DataTreeModification newModification() { - return dataTree.takeSnapshot().newModification(); + return takeSnapshot().newModification(); } final Collection getAndClearPendingTransactions() { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeTransactionChain.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeTransactionChain.java index 72f700c7443..6be13ae1295 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeTransactionChain.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeTransactionChain.java @@ -13,6 +13,7 @@ import com.google.common.base.MoreObjects; import java.util.Optional; import java.util.SortedSet; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.yangtools.concepts.Identifiable; @@ -53,19 +54,20 @@ private DataTreeSnapshot getSnapshot() { return previousTx.getSnapshot(); } - ReadOnlyShardDataTreeTransaction newReadOnlyTransaction(final TransactionIdentifier txId) { + @NonNull ReadOnlyShardDataTreeTransaction newReadOnlyTransaction(final TransactionIdentifier txId) { final DataTreeSnapshot snapshot = getSnapshot(); LOG.debug("Allocated read-only transaction {} snapshot {}", txId, snapshot); return new ReadOnlyShardDataTreeTransaction(this, txId, snapshot); } - ReadWriteShardDataTreeTransaction newReadWriteTransaction(final TransactionIdentifier txId) { + @NonNull ReadWriteShardDataTreeTransaction newReadWriteTransaction(final TransactionIdentifier txId) { final DataTreeSnapshot snapshot = getSnapshot(); LOG.debug("Allocated read-write transaction {} snapshot {}", txId, snapshot); - openTransaction = new ReadWriteShardDataTreeTransaction(this, txId, snapshot.newModification()); - return openTransaction; + final var ret = new ReadWriteShardDataTreeTransaction(this, txId, snapshot.newModification()); + openTransaction = ret; + return ret; } void close() { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/StandaloneFrontendHistory.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/StandaloneFrontendHistory.java index df13cd13682..57c680da2a6 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/StandaloneFrontendHistory.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/StandaloneFrontendHistory.java @@ -60,14 +60,12 @@ public LocalHistoryIdentifier getIdentifier() { @Override FrontendTransaction createOpenSnapshot(final TransactionIdentifier id) { - return FrontendReadOnlyTransaction.create(this, - new ReadOnlyShardDataTreeTransaction(tree, id, tree.takeSnapshot())); + return FrontendReadOnlyTransaction.create(this, tree.newStandaloneReadOnlyTransaction(id)); } @Override FrontendTransaction createOpenTransaction(final TransactionIdentifier id) { - return FrontendReadWriteTransaction.createOpen(this, - new ReadWriteShardDataTreeTransaction(tree, id, tree.takeSnapshot().newModification())); + return FrontendReadWriteTransaction.createOpen(this, tree.newStandaloneReadWriteTransaction(id)); } @Override From 40b9dbdc9a6fdd4785d31f617faa3b11e9373700 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 3 Apr 2023 20:09:07 +0200 Subject: [PATCH 43/69] Use instanceof patterns in RemoteProxyTransaction Remove explicit casts with instanceof patterns, which are safer. Also use Optional.orElseThrow(). Change-Id: If52285168a2ec6791ca86ba095f0e944fae8d3f7 Signed-off-by: Robert Varga (cherry picked from commit e4673e2f5f64daaed0ce44680f425fb1171b1fee) --- .../actors/dds/RemoteProxyTransaction.java | 51 +++++++++---------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/RemoteProxyTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/RemoteProxyTransaction.java index dc0ff82c134..0f75c747f02 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/RemoteProxyTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/RemoteProxyTransaction.java @@ -205,8 +205,8 @@ private void completeModify(final TransactionRequest request, final Response< private Exception recordFailedResponse(final Response response) { final Exception failure; - if (response instanceof RequestFailure) { - final RequestException cause = ((RequestFailure) response).getCause(); + if (response instanceof RequestFailure requestFailure) { + final RequestException cause = requestFailure.getCause(); failure = cause instanceof RequestTimeoutException ? new DataStoreUnavailableException(cause.getMessage(), cause) : cause; } else { @@ -230,8 +230,8 @@ private void completeExists(final YangInstanceIdentifier path, final SettableFut final Response response) { LOG.debug("Exists request for {} completed with {}", path, response); - if (response instanceof ExistsTransactionSuccess) { - future.set(((ExistsTransactionSuccess) response).getExists()); + if (response instanceof ExistsTransactionSuccess success) { + future.set(success.getExists()); } else { failReadFuture(future, "Error executing exists request for path " + path, response); } @@ -243,8 +243,8 @@ private void completeRead(final YangInstanceIdentifier path, final SettableFutur final Response response) { LOG.debug("Read request for {} completed with {}", path, response); - if (response instanceof ReadTransactionSuccess) { - future.set(((ReadTransactionSuccess) response).getData()); + if (response instanceof ReadTransactionSuccess success) { + future.set(success.getData()); } else { failReadFuture(future, "Error reading data for path " + path, response); } @@ -303,19 +303,19 @@ void forwardToRemote(final RemoteProxyTransaction successor, final TransactionRe } void handleForwardedRequest(final TransactionRequest request, final Consumer> callback) { - if (request instanceof ModifyTransactionRequest) { - handleForwardedModifyTransactionRequest(callback, (ModifyTransactionRequest) request); - } else if (request instanceof ReadTransactionRequest) { + if (request instanceof ModifyTransactionRequest modifyRequest) { + handleForwardedModifyTransactionRequest(callback, modifyRequest); + } else if (request instanceof ReadTransactionRequest readRequest) { ensureFlushedBuider(); sendRequest(new ReadTransactionRequest(getIdentifier(), nextSequence(), localActor(), - ((ReadTransactionRequest) request).getPath(), isSnapshotOnly()), resp -> { + readRequest.getPath(), isSnapshotOnly()), resp -> { recordFinishedRequest(resp); callback.accept(resp); }); - } else if (request instanceof ExistsTransactionRequest) { + } else if (request instanceof ExistsTransactionRequest existsRequest) { ensureFlushedBuider(); sendRequest(new ExistsTransactionRequest(getIdentifier(), nextSequence(), localActor(), - ((ExistsTransactionRequest) request).getPath(), isSnapshotOnly()), resp -> { + existsRequest.getPath(), isSnapshotOnly()), resp -> { recordFinishedRequest(resp); callback.accept(resp); }); @@ -355,7 +355,7 @@ private void handleForwardedModifyTransactionRequest(final Consumer tmp; - switch (maybeProto.get()) { + switch (maybeProto.orElseThrow()) { case ABORT: tmp = abortRequest(); sendRequest(tmp, resp -> { @@ -385,7 +385,7 @@ private void handleForwardedModifyTransactionRequest(final Consumer request, final Consumer> callback, final long enqueuedTicks) { - if (request instanceof CommitLocalTransactionRequest) { - replayLocalCommitRequest((CommitLocalTransactionRequest) request, callback, enqueuedTicks); + if (request instanceof CommitLocalTransactionRequest commitRequest) { + replayLocalCommitRequest(commitRequest, callback, enqueuedTicks); } else if (request instanceof AbortLocalTransactionRequest) { enqueueRequest(abortRequest(), callback, enqueuedTicks); } else { @@ -439,19 +439,19 @@ void handleReplayedRemoteRequest(final TransactionRequest request, final Cons final Consumer> cb = callback != null ? callback : resp -> { /* NOOP */ }; final OptionalLong optTicks = OptionalLong.of(enqueuedTicks); - if (request instanceof ModifyTransactionRequest) { - handleReplayedModifyTransactionRequest(enqueuedTicks, cb, (ModifyTransactionRequest) request); - } else if (request instanceof ReadTransactionRequest) { + if (request instanceof ModifyTransactionRequest modifyRequest) { + handleReplayedModifyTransactionRequest(enqueuedTicks, cb, modifyRequest); + } else if (request instanceof ReadTransactionRequest readRequest) { ensureFlushedBuider(optTicks); enqueueRequest(new ReadTransactionRequest(getIdentifier(), nextSequence(), localActor(), - ((ReadTransactionRequest) request).getPath(), isSnapshotOnly()), resp -> { + readRequest.getPath(), isSnapshotOnly()), resp -> { recordFinishedRequest(resp); cb.accept(resp); }, enqueuedTicks); - } else if (request instanceof ExistsTransactionRequest) { + } else if (request instanceof ExistsTransactionRequest existsRequest) { ensureFlushedBuider(optTicks); enqueueRequest(new ExistsTransactionRequest(getIdentifier(), nextSequence(), localActor(), - ((ExistsTransactionRequest) request).getPath(), isSnapshotOnly()), resp -> { + existsRequest.getPath(), isSnapshotOnly()), resp -> { recordFinishedRequest(resp); cb.accept(resp); }, enqueuedTicks); @@ -472,8 +472,7 @@ void handleReplayedRemoteRequest(final TransactionRequest request, final Cons enqueueDoAbort(callback, enqueuedTicks); } else if (request instanceof TransactionPurgeRequest) { enqueuePurge(callback, enqueuedTicks); - } else if (request instanceof IncrementTransactionSequenceRequest) { - final IncrementTransactionSequenceRequest req = (IncrementTransactionSequenceRequest) request; + } else if (request instanceof IncrementTransactionSequenceRequest req) { ensureFlushedBuider(optTicks); enqueueRequest(new IncrementTransactionSequenceRequest(getIdentifier(), nextSequence(), localActor(), snapshotOnly, req.getIncrement()), callback, enqueuedTicks); @@ -496,7 +495,7 @@ private void handleReplayedModifyTransactionRequest(final long enqueuedTicks, fi } final TransactionRequest tmp; - switch (maybeProto.get()) { + switch (maybeProto.orElseThrow()) { case ABORT: tmp = abortRequest(); enqueueRequest(tmp, resp -> { @@ -526,7 +525,7 @@ private void handleReplayedModifyTransactionRequest(final long enqueuedTicks, fi }, enqueuedTicks); break; default: - throw new IllegalArgumentException("Unhandled protocol " + maybeProto.get()); + throw new IllegalArgumentException("Unhandled protocol " + maybeProto.orElseThrow()); } } } From 83806b8018a716d28fc7b27b0ccac4588901071f Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 3 Apr 2023 20:14:47 +0200 Subject: [PATCH 44/69] Honor shard-batched-modification-count RemoteProxyTransaction should honor not use a hard-coded limit, but rather pick it up from DatastoreContext configuration. JIRA: CONTROLLER-2075 Change-Id: I5cf6491f76c05582b2c59e918d8af9521c01d98f Signed-off-by: Robert Varga (cherry picked from commit ba5f7cb9866163cffbae48d50355bc48cb3d0604) --- .../actors/dds/AbstractClientHistory.java | 3 +- .../actors/dds/RemoteProxyTransaction.java | 7 ++-- .../actors/dds/AbstractClientHistoryTest.java | 8 ++++- .../AbstractDataStoreClientBehaviorTest.java | 10 ++++-- .../dds/AbstractProxyTransactionTest.java | 20 +++++++++++ .../ClientTransactionCommitCohortTest.java | 17 +++++++-- .../DirectTransactionCommitCohortTest.java | 13 ++++++- .../dds/RemoteProxyTransactionTest.java | 2 +- ...butedDataStoreRemotingIntegrationTest.java | 35 +++++++++---------- 9 files changed, 84 insertions(+), 31 deletions(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractClientHistory.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractClientHistory.java index 796c23614e2..bcfd6cf1b3e 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractClientHistory.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractClientHistory.java @@ -123,7 +123,8 @@ final Stream resolveAllShards() { return client.resolveAllShards(); } - final ActorUtils actorUtils() { + // Non-final for testing + ActorUtils actorUtils() { return client.actorUtils(); } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/RemoteProxyTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/RemoteProxyTransaction.java index 0f75c747f02..6288a2f8ba0 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/RemoteProxyTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/RemoteProxyTransaction.java @@ -70,12 +70,10 @@ final class RemoteProxyTransaction extends AbstractProxyTransaction { private static final Logger LOG = LoggerFactory.getLogger(RemoteProxyTransaction.class); - // FIXME: make this tuneable - private static final int REQUEST_MAX_MODIFICATIONS = 1000; - private final ModifyTransactionRequestBuilder builder; private final boolean sendReadyOnSeal; private final boolean snapshotOnly; + private final int maxModifications; private boolean builderBusy; @@ -87,6 +85,7 @@ final class RemoteProxyTransaction extends AbstractProxyTransaction { this.snapshotOnly = snapshotOnly; this.sendReadyOnSeal = sendReadyOnSeal; builder = new ModifyTransactionRequestBuilder(identifier, localActor()); + maxModifications = parent.parent().actorUtils().getDatastoreContext().getShardBatchedModificationCount(); } @Override @@ -184,7 +183,7 @@ private void appendModification(final TransactionModification modification, fina ensureInitializedBuilder(); builder.addModification(modification); - if (builder.size() >= REQUEST_MAX_MODIFICATIONS) { + if (builder.size() >= maxModifications) { flushBuilder(enqueuedTicks); } } else { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractClientHistoryTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractClientHistoryTest.java index 05531cddd98..3d9b3fd3365 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractClientHistoryTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractClientHistoryTest.java @@ -28,6 +28,7 @@ import org.opendaylight.controller.cluster.access.client.ClientActorContext; import org.opendaylight.controller.cluster.access.client.ConnectedClientConnection; import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; +import org.opendaylight.controller.cluster.datastore.DatastoreContext; import org.opendaylight.controller.cluster.datastore.messages.PrimaryShardInfo; import org.opendaylight.controller.cluster.datastore.utils.ActorUtils; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; @@ -42,6 +43,8 @@ public abstract class AbstractClientHistoryTest @Mock private DataTree tree; + @Mock + private DatastoreContext datastoreContext; protected abstract T object(); @@ -176,13 +179,16 @@ public void testStartReconnectMissingOldProxy() { assertNull(reconnectCohort); } - protected static ActorUtils createActorUtilsMock(final ActorSystem system, final ActorRef actor) { + protected final ActorUtils createActorUtilsMock(final ActorSystem system, final ActorRef actor) { final ActorUtils mock = mock(ActorUtils.class); final Promise promise = new DefaultPromise<>(); final ActorSelection selection = system.actorSelection(actor.path()); final PrimaryShardInfo shardInfo = new PrimaryShardInfo(selection, (short) 0); promise.success(shardInfo); doReturn(promise.future()).when(mock).findPrimaryShardAsync(any()); + doReturn(1000).when(datastoreContext).getShardBatchedModificationCount(); + doReturn(datastoreContext).when(mock).getDatastoreContext(); + return mock; } } \ No newline at end of file diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractDataStoreClientBehaviorTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractDataStoreClientBehaviorTest.java index 14a29c51013..ed7bdaca141 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractDataStoreClientBehaviorTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractDataStoreClientBehaviorTest.java @@ -32,6 +32,7 @@ import org.opendaylight.controller.cluster.access.client.InternalCommand; import org.opendaylight.controller.cluster.access.commands.ConnectClientRequest; import org.opendaylight.controller.cluster.access.commands.ConnectClientSuccess; +import org.opendaylight.controller.cluster.datastore.DatastoreContext; import org.opendaylight.controller.cluster.datastore.messages.PrimaryShardInfo; import org.opendaylight.controller.cluster.datastore.utils.ActorUtils; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; @@ -50,16 +51,17 @@ public abstract class AbstractDataStoreClientBehaviorTest { private TestProbe clientActorProbe; private TestProbe actorContextProbe; private AbstractDataStoreClientBehavior behavior; + private ActorUtils util; @Before public void setUp() { system = ActorSystem.apply(); clientActorProbe = new TestProbe(system, "client"); actorContextProbe = new TestProbe(system, "actor-context"); - final ActorUtils context = createActorContextMock(system, actorContextProbe.ref()); + util = createActorContextMock(system, actorContextProbe.ref()); clientContext = AccessClientUtil.createClientActorContext(system, clientActorProbe.ref(), CLIENT_ID, PERSISTENCE_ID); - behavior = createBehavior(clientContext, context); + behavior = createBehavior(clientContext, util); } @SuppressWarnings("checkstyle:hiddenField") @@ -132,6 +134,10 @@ public void testGetIdentifier() { @Test public void testGetConnection() { + final var datastoreContext = mock(DatastoreContext.class); + doReturn(1000).when(datastoreContext).getShardBatchedModificationCount(); + doReturn(datastoreContext).when(util).getDatastoreContext(); + //set up data tree mock final CursorAwareDataTreeModification modification = mock(CursorAwareDataTreeModification.class); doReturn(Optional.empty()).when(modification).readNode(YangInstanceIdentifier.empty()); diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractProxyTransactionTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractProxyTransactionTest.java index c01d84e7f8d..5c1b9c0a095 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractProxyTransactionTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractProxyTransactionTest.java @@ -14,6 +14,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -60,6 +61,8 @@ import org.opendaylight.controller.cluster.access.concepts.RequestEnvelope; import org.opendaylight.controller.cluster.access.concepts.Response; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; +import org.opendaylight.controller.cluster.datastore.DatastoreContext; +import org.opendaylight.controller.cluster.datastore.utils.ActorUtils; import org.opendaylight.yangtools.yang.common.Empty; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; @@ -95,6 +98,11 @@ public abstract class AbstractProxyTransactionTest connection = AccessClientUtil.createConnectedConnection(context, 0L, backend); + final ProxyHistory parent = ProxyHistory.createClient(history, connection, HISTORY_ID); transaction = createTransaction(parent, TestUtils.TRANSACTION_ID, snapshot); tester = new TransactionTester<>(transaction, connection, backendProbe); } + protected final void mockForRemote() { + doReturn(1000).when(datastoreContext).getShardBatchedModificationCount(); + doReturn(datastoreContext).when(actorUtils).getDatastoreContext(); + doReturn(actorUtils).when(history).actorUtils(); + } + @SuppressWarnings("checkstyle:hiddenField") protected abstract T createTransaction(ProxyHistory parent, TransactionIdentifier id, DataTreeSnapshot snapshot); @@ -322,6 +337,10 @@ protected TransactionTester createRemoteProxyTransaction final TestProbe clientContextProbe = new TestProbe(system, "remoteClientContext"); final TestProbe backendProbe = new TestProbe(system, "remoteBackend"); final AbstractClientHistory history = mock(AbstractClientHistory.class); + doReturn(1000).when(datastoreContext).getShardBatchedModificationCount(); + doReturn(datastoreContext).when(actorUtils).getDatastoreContext(); + doReturn(actorUtils).when(history).actorUtils(); + final ClientActorContext context = AccessClientUtil.createClientActorContext(system, clientContextProbe.ref(), CLIENT_ID, PERSISTENCE_ID); final ShardBackendInfo backend = new ShardBackendInfo(backendProbe.ref(), 0L, ABIVersion.BORON, @@ -329,6 +348,7 @@ protected TransactionTester createRemoteProxyTransaction final AbstractClientConnection connection = AccessClientUtil.createConnectedConnection(context, 0L, backend); final ProxyHistory proxyHistory = ProxyHistory.createClient(history, connection, HISTORY_ID); + final RemoteProxyTransaction transaction = new RemoteProxyTransaction(proxyHistory, TRANSACTION_ID, false, false, false); return new TransactionTester<>(transaction, connection, backendProbe); diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/ClientTransactionCommitCohortTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/ClientTransactionCommitCohortTest.java index 409dcb58a1e..1c59c4315f5 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/ClientTransactionCommitCohortTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/ClientTransactionCommitCohortTest.java @@ -8,6 +8,7 @@ package org.opendaylight.controller.cluster.databroker.actors.dds; import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.doReturn; import static org.opendaylight.controller.cluster.databroker.actors.dds.TestUtils.CLIENT_ID; import static org.opendaylight.controller.cluster.databroker.actors.dds.TestUtils.HISTORY_ID; import static org.opendaylight.controller.cluster.databroker.actors.dds.TestUtils.TRANSACTION_ID; @@ -48,19 +49,26 @@ import org.opendaylight.controller.cluster.access.commands.TransactionPreCommitSuccess; import org.opendaylight.controller.cluster.access.concepts.RequestSuccess; import org.opendaylight.controller.cluster.access.concepts.RuntimeRequestException; +import org.opendaylight.controller.cluster.datastore.DatastoreContext; +import org.opendaylight.controller.cluster.datastore.utils.ActorUtils; import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.yangtools.yang.common.Empty; @RunWith(MockitoJUnitRunner.StrictStubs.class) public class ClientTransactionCommitCohortTest { - private static final String PERSISTENCE_ID = "per-1"; private static final int TRANSACTIONS = 3; + private final List> transactions = new ArrayList<>(); + @Mock private AbstractClientHistory history; + @Mock + private DatastoreContext datastoreContext; + @Mock + private ActorUtils actorUtils; + private ActorSystem system; - private List> transactions; private ClientTransactionCommitCohort cohort; @Before @@ -69,7 +77,10 @@ public void setUp() { final TestProbe clientContextProbe = new TestProbe(system, "clientContext"); final ClientActorContext context = AccessClientUtil.createClientActorContext(system, clientContextProbe.ref(), CLIENT_ID, PERSISTENCE_ID); - transactions = new ArrayList<>(); + doReturn(1000).when(datastoreContext).getShardBatchedModificationCount(); + doReturn(datastoreContext).when(actorUtils).getDatastoreContext(); + doReturn(actorUtils).when(history).actorUtils(); + for (int i = 0; i < TRANSACTIONS; i++) { transactions.add(createTransactionTester(new TestProbe(system, "backend" + i), context, history)); } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/DirectTransactionCommitCohortTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/DirectTransactionCommitCohortTest.java index 6599dc166ed..74b7f22d5ea 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/DirectTransactionCommitCohortTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/DirectTransactionCommitCohortTest.java @@ -10,6 +10,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.verify; import static org.opendaylight.controller.cluster.databroker.actors.dds.TestUtils.CLIENT_ID; import static org.opendaylight.controller.cluster.databroker.actors.dds.TestUtils.HISTORY_ID; @@ -36,14 +37,20 @@ import org.opendaylight.controller.cluster.access.commands.PersistenceProtocol; import org.opendaylight.controller.cluster.access.commands.TransactionCommitSuccess; import org.opendaylight.controller.cluster.access.concepts.RequestSuccess; +import org.opendaylight.controller.cluster.datastore.DatastoreContext; +import org.opendaylight.controller.cluster.datastore.utils.ActorUtils; @RunWith(MockitoJUnitRunner.StrictStubs.class) public class DirectTransactionCommitCohortTest { - private static final String PERSISTENCE_ID = "per-1"; @Mock private AbstractClientHistory history; + @Mock + private DatastoreContext datastoreContext; + @Mock + private ActorUtils actorUtils; + private ActorSystem system; private TransactionTester transaction; private DirectTransactionCommitCohort cohort; @@ -54,6 +61,10 @@ public void setUp() { final TestProbe clientContextProbe = new TestProbe(system, "clientContext"); final ClientActorContext context = AccessClientUtil.createClientActorContext(system, clientContextProbe.ref(), CLIENT_ID, PERSISTENCE_ID); + doReturn(1000).when(datastoreContext).getShardBatchedModificationCount(); + doReturn(datastoreContext).when(actorUtils).getDatastoreContext(); + doReturn(actorUtils).when(history).actorUtils(); + transaction = createTransactionTester(new TestProbe(system, "backend"), context, history); final AbstractProxyTransaction proxy = transaction.getTransaction(); proxy.seal(); diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/RemoteProxyTransactionTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/RemoteProxyTransactionTest.java index 97c4b3126f6..c9324702e67 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/RemoteProxyTransactionTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/RemoteProxyTransactionTest.java @@ -44,10 +44,10 @@ import org.opendaylight.yangtools.yang.data.tree.api.DataTreeSnapshot; public class RemoteProxyTransactionTest extends AbstractProxyTransactionTest { - @Override protected RemoteProxyTransaction createTransaction(final ProxyHistory parent, final TransactionIdentifier id, final DataTreeSnapshot snapshot) { + mockForRemote(); return new RemoteProxyTransaction(parent, TRANSACTION_ID, false, false, false); } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DistributedDataStoreRemotingIntegrationTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DistributedDataStoreRemotingIntegrationTest.java index e5f3c958354..6868ddcf161 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DistributedDataStoreRemotingIntegrationTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DistributedDataStoreRemotingIntegrationTest.java @@ -898,10 +898,8 @@ public void testTransactionForwardedToLeaderAfterRetry() throws Exception { initDatastoresWithCarsAndPeople("testTransactionForwardedToLeaderAfterRetry"); // Verify backend statistics on start - IntegrationTestKit.verifyShardStats(leaderDistributedDataStore, "cars", - stats -> assertEquals("getReadWriteTransactionCount", 0, stats.getReadWriteTransactionCount())); - IntegrationTestKit.verifyShardStats(followerDistributedDataStore, "cars", - stats -> assertEquals("getReadWriteTransactionCount", 0, stats.getReadWriteTransactionCount())); + verifyCarsReadWriteTransactions(leaderDistributedDataStore, 0); + verifyCarsReadWriteTransactions(followerDistributedDataStore, 0); // Do an initial write to get the primary shard info cached. @@ -943,10 +941,8 @@ public void testTransactionForwardedToLeaderAfterRetry() throws Exception { final DOMStoreThreePhaseCommitCohort writeTx2Cohort = writeTx2.ready(); // At this point only leader should see the transactions - IntegrationTestKit.verifyShardStats(leaderDistributedDataStore, "cars", - stats -> assertEquals("getReadWriteTransactionCount", 2, stats.getReadWriteTransactionCount())); - IntegrationTestKit.verifyShardStats(followerDistributedDataStore, "cars", - stats -> assertEquals("getReadWriteTransactionCount", 0, stats.getReadWriteTransactionCount())); + verifyCarsReadWriteTransactions(leaderDistributedDataStore, 2); + verifyCarsReadWriteTransactions(followerDistributedDataStore, 0); // Prepare another WO that writes to a single shard and thus will be directly committed on ready. This // tx writes 5 cars so 2 BatchedModifications messages will be sent initially and cached in the leader shard @@ -974,13 +970,12 @@ public void testTransactionForwardedToLeaderAfterRetry() throws Exception { final YangInstanceIdentifier carPath = CarsModel.newCarPath("car" + carIndex); readWriteTx.write(carPath, cars.getLast()); - // There is a difference here between implementations: tell-based protocol will postpone write operations until - // either a read is made or the transaction is submitted. Here we flush out the last transaction, so we see - // three transactions, not just the ones we have started committing - assertTrue(readWriteTx.exists(carPath).get(2, TimeUnit.SECONDS)); + // There is a difference here between implementations: tell-based protocol enforces batching on per-transaction + // level whereas ask-based protocol has a global limit towards a shard -- and hence flushes out last two + // transactions eagerly. final int earlyTxCount = DistributedDataStore.class.isAssignableFrom(testParameter) ? 5 : 3; - IntegrationTestKit.verifyShardStats(leaderDistributedDataStore, "cars", - stats -> assertEquals("getReadWriteTransactionCount", earlyTxCount, stats.getReadWriteTransactionCount())); + verifyCarsReadWriteTransactions(leaderDistributedDataStore, earlyTxCount); + verifyCarsReadWriteTransactions(followerDistributedDataStore, 0); // Disable elections on the leader so it switches to follower. @@ -1015,16 +1010,20 @@ public void testTransactionForwardedToLeaderAfterRetry() throws Exception { // At this point everything is committed and the follower datastore should see 5 transactions, but leader should // only see the initial transactions - IntegrationTestKit.verifyShardStats(leaderDistributedDataStore, "cars", - stats -> assertEquals("getReadWriteTransactionCount", earlyTxCount, stats.getReadWriteTransactionCount())); - IntegrationTestKit.verifyShardStats(followerDistributedDataStore, "cars", - stats -> assertEquals("getReadWriteTransactionCount", 5, stats.getReadWriteTransactionCount())); + verifyCarsReadWriteTransactions(leaderDistributedDataStore, earlyTxCount); + verifyCarsReadWriteTransactions(followerDistributedDataStore, 5); DOMStoreReadTransaction readTx = leaderDistributedDataStore.newReadOnlyTransaction(); verifyCars(readTx, cars.toArray(new MapEntryNode[cars.size()])); verifyNode(readTx, PeopleModel.PERSON_LIST_PATH, people); } + private static void verifyCarsReadWriteTransactions(final AbstractDataStore datastore, final int expected) + throws Exception { + IntegrationTestKit.verifyShardStats(datastore, "cars", + stats -> assertEquals("getReadWriteTransactionCount", expected, stats.getReadWriteTransactionCount())); + } + @Test public void testLeadershipTransferOnShutdown() throws Exception { leaderDatastoreContextBuilder.shardBatchedModificationCount(1); From ce5dfebaec30e447bca3810bbb1a47c367ab6430 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Thu, 23 Feb 2023 19:20:37 +0100 Subject: [PATCH 45/69] Fixup sal-cluster-admin-impl dependencies The dependencies here are rather baroque, clean them up to the point of confusigng maven-dependency-plugin. Change-Id: Ifbc3e605217b0ece2ea7691d96eea28ec7bef3fe Signed-off-by: Robert Varga (cherry picked from commit a104ab1562db179590eaa5bd742d9e00073d4053) --- .../md-sal/sal-cluster-admin-impl/pom.xml | 104 ++++++++++-------- 1 file changed, 61 insertions(+), 43 deletions(-) diff --git a/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml b/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml index 199e1c20b76..0bee5b50237 100644 --- a/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml +++ b/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml @@ -13,90 +13,108 @@ - org.opendaylight.controller - sal-cluster-admin-api + com.google.guava + guava - - - org.slf4j - slf4j-simple - test + org.apache.commons + commons-lang3 + + + org.opendaylight.yangtools + concepts + + + org.opendaylight.yangtools + yang-common + + + org.opendaylight.mdsal + mdsal-binding-api + + + org.opendaylight.mdsal + mdsal-binding-dom-codec-api + + + org.opendaylight.mdsal + mdsal-dom-spi org.opendaylight.controller - sal-akka-raft - test-jar - test + eos-dom-akka org.opendaylight.controller - sal-distributed-datastore - test-jar - ${project.version} - test + cds-access-api - org.opendaylight.yangtools - yang-test-util + org.opendaylight.controller + repackaged-akka - org.opendaylight.controller.samples - clustering-it-model - test + org.opendaylight.controller + sal-akka-raft - commons-lang - commons-lang - test + org.opendaylight.controller + sal-cluster-admin-api - - - com.typesafe.akka - akka-testkit_2.13 + org.opendaylight.controller + sal-distributed-datastore + + + org.osgi + org.osgi.service.component.annotations - - org.scala-lang scala-library - - - org.opendaylight.controller - eos-dom-akka - + - org.opendaylight.mdsal - mdsal-binding-api + com.typesafe.akka + akka-testkit_2.13 org.opendaylight.controller sal-akka-raft + test-jar + test org.opendaylight.controller sal-distributed-datastore + test-jar + ${project.version} + test - org.opendaylight.mdsal - yang-binding + org.opendaylight.yangtools + yang-data-api + test org.opendaylight.yangtools - yang-common + yang-test-util - org.apache.commons - commons-lang3 + org.opendaylight.controller.samples + clustering-it-model + test - org.osgi - org.osgi.service.component.annotations + org.slf4j + slf4j-simple + test + + + commons-lang + commons-lang + test - From c401ae10a73bc637ac350cd115f05dada077fe55 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Thu, 23 Feb 2023 19:39:44 +0100 Subject: [PATCH 46/69] Remove commons-lang dependencies Use commons-lang3 instead, as it provides better interface anyway. Change-Id: I8574166cf77f8f40c9a2ada4b06cc0d8b14244a9 Signed-off-by: Robert Varga (cherry picked from commit 9d54b1eee0fad545f720eebbbf6634bdab14bd80) --- opendaylight/md-sal/cds-access-api/pom.xml | 10 +++++----- .../commands/AbstractLocalTransactionRequestTest.java | 2 +- .../access/commands/AbstractRequestFailureTest.java | 2 +- .../access/commands/AbstractRequestSuccessTest.java | 2 +- .../cluster/access/concepts/AbstractEnvelopeTest.java | 2 +- .../cluster/access/concepts/AbstractRequestTest.java | 2 +- .../cluster/access/concepts/FailureEnvelopeTest.java | 2 +- opendaylight/md-sal/sal-akka-raft/pom.xml | 5 ----- .../cluster/raft/base/messages/TimeoutNowTest.java | 2 +- .../cluster/raft/behaviors/FollowerIdentifierTest.java | 2 +- .../cluster/raft/client/messages/ShutdownTest.java | 2 +- .../cluster/raft/messages/AppendEntriesReplyTest.java | 2 +- .../cluster/raft/messages/AppendEntriesTest.java | 2 +- .../raft/messages/InstallSnapshotReplyTest.java | 2 +- .../cluster/raft/messages/InstallSnapshotTest.java | 2 +- .../cluster/raft/messages/RequestVoteReplyTest.java | 2 +- .../cluster/raft/messages/RequestVoteTest.java | 2 +- .../raft/persisted/ApplyJournalEntriesTest.java | 2 +- .../cluster/raft/persisted/DeleteEntriesTest.java | 2 +- .../cluster/raft/persisted/EmptyStateTest.java | 2 +- .../raft/persisted/ServerConfigurationPayloadTest.java | 2 +- .../raft/persisted/SimpleReplicatedLogEntryTest.java | 2 +- .../cluster/raft/persisted/SnapshotTest.java | 2 +- .../cluster/raft/persisted/UpdateElectionTermTest.java | 2 +- .../controller/cluster/raft/utils/InMemoryJournal.java | 4 ++-- opendaylight/md-sal/sal-cluster-admin-impl/pom.xml | 5 ----- opendaylight/md-sal/sal-clustering-commons/pom.xml | 5 ----- .../controller/cluster/messaging/AbortSlicingTest.java | 4 ++-- .../cluster/messaging/MessageSliceIdentifierTest.java | 4 ++-- .../cluster/messaging/MessageSliceReplyTest.java | 6 +++--- .../controller/cluster/messaging/MessageSliceTest.java | 6 +++--- .../cluster/persistence/LocalSnapshotStoreTest.java | 2 +- opendaylight/md-sal/sal-distributed-datastore/pom.xml | 5 ----- .../datastore/messages/AbortTransactionReplyTest.java | 2 +- .../datastore/messages/AbortTransactionTest.java | 2 +- .../datastore/messages/BatchedModificationsTest.java | 2 +- .../messages/CanCommitTransactionReplyTest.java | 4 ++-- .../datastore/messages/CanCommitTransactionTest.java | 2 +- .../datastore/messages/CloseTransactionChainTest.java | 2 +- .../datastore/messages/CloseTransactionTest.java | 2 +- .../datastore/messages/CommitTransactionReplyTest.java | 2 +- .../datastore/messages/CommitTransactionTest.java | 2 +- .../datastore/messages/CreateTransactionReplyTest.java | 2 +- .../datastore/messages/CreateTransactionTest.java | 2 +- .../datastore/messages/DataExistsReplyTest.java | 2 +- .../cluster/datastore/messages/DataExistsTest.java | 2 +- .../cluster/datastore/messages/ReadDataReplyTest.java | 2 +- .../cluster/datastore/messages/ReadDataTest.java | 2 +- .../datastore/messages/ReadyTransactionReplyTest.java | 2 +- .../datastore/modification/DeleteModificationTest.java | 4 ++-- .../datastore/modification/MergeModificationTest.java | 4 ++-- .../modification/MutableCompositeModificationTest.java | 2 +- .../datastore/modification/WriteModificationTest.java | 4 ++-- .../datastore/persisted/ShardManagerSnapshotTest.java | 4 ++-- .../datastore/persisted/ShardSnapshotStateTest.java | 4 ++-- opendaylight/md-sal/sal-remoterpc-connector/pom.xml | 5 ----- .../controller/remote/rpc/messages/ExecuteOpsTest.java | 4 ++-- .../remote/rpc/messages/OpsResponseTest.java | 6 +++--- 58 files changed, 73 insertions(+), 98 deletions(-) diff --git a/opendaylight/md-sal/cds-access-api/pom.xml b/opendaylight/md-sal/cds-access-api/pom.xml index 0478d28dc83..07b1a8d54cc 100644 --- a/opendaylight/md-sal/cds-access-api/pom.xml +++ b/opendaylight/md-sal/cds-access-api/pom.xml @@ -47,6 +47,11 @@ + + org.apache.commons + commons-lang3 + test + org.opendaylight.yangtools mockito-configuration @@ -60,11 +65,6 @@ com.typesafe.akka akka-testkit_2.13 - - commons-lang - commons-lang - 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 c4e5a243d63..9aa6d1a3f7d 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 @@ -14,7 +14,7 @@ import static org.junit.Assert.assertSame; import static org.junit.Assert.assertThrows; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractRequestFailureTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractRequestFailureTest.java index 805c0dd528e..62618b383a0 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractRequestFailureTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractRequestFailureTest.java @@ -11,7 +11,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier; diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractRequestSuccessTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractRequestSuccessTest.java index f4ff5eca0db..15730cf181f 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractRequestSuccessTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/AbstractRequestSuccessTest.java @@ -10,7 +10,7 @@ import static java.util.Objects.requireNonNull; import static org.junit.Assert.assertEquals; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.eclipse.jdt.annotation.NonNull; import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/AbstractEnvelopeTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/AbstractEnvelopeTest.java index d4a0fc9de3b..fc34fc39787 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/AbstractEnvelopeTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/AbstractEnvelopeTest.java @@ -10,7 +10,7 @@ import static java.util.Objects.requireNonNull; import static org.junit.jupiter.api.Assertions.assertEquals; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Before; import org.junit.Test; diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/AbstractRequestTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/AbstractRequestTest.java index 99e72f456a9..975329023e6 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/AbstractRequestTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/AbstractRequestTest.java @@ -18,7 +18,7 @@ import akka.serialization.JavaSerializer; import akka.testkit.TestProbe; import com.google.common.base.MoreObjects; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Before; import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/FailureEnvelopeTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/FailureEnvelopeTest.java index 97015e9aff9..dc9a0d8b6c4 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/FailureEnvelopeTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/concepts/FailureEnvelopeTest.java @@ -11,7 +11,7 @@ import java.io.DataInput; import java.io.IOException; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.yangtools.concepts.WritableIdentifier; diff --git a/opendaylight/md-sal/sal-akka-raft/pom.xml b/opendaylight/md-sal/sal-akka-raft/pom.xml index acaa3af0c4a..c960371e951 100644 --- a/opendaylight/md-sal/sal-akka-raft/pom.xml +++ b/opendaylight/md-sal/sal-akka-raft/pom.xml @@ -53,11 +53,6 @@ commons-io test - - commons-lang - commons-lang - test - diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/base/messages/TimeoutNowTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/base/messages/TimeoutNowTest.java index 375990e1060..ffcece751ec 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/base/messages/TimeoutNowTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/base/messages/TimeoutNowTest.java @@ -10,7 +10,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertSame; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; /** diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/FollowerIdentifierTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/FollowerIdentifierTest.java index e0b7d61f0e4..ca4699eb385 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/FollowerIdentifierTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/FollowerIdentifierTest.java @@ -9,7 +9,7 @@ import static org.junit.Assert.assertEquals; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; /** diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/client/messages/ShutdownTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/client/messages/ShutdownTest.java index ea3bd7e4724..56bf0fad83d 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/client/messages/ShutdownTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/client/messages/ShutdownTest.java @@ -10,7 +10,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertSame; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; /** diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/AppendEntriesReplyTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/AppendEntriesReplyTest.java index 8c09729e101..a82c4b1fd65 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/AppendEntriesReplyTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/AppendEntriesReplyTest.java @@ -9,7 +9,7 @@ import static org.junit.Assert.assertEquals; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.cluster.raft.RaftVersions; diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/AppendEntriesTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/AppendEntriesTest.java index bc9c6f1b876..7f6df554b66 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/AppendEntriesTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/AppendEntriesTest.java @@ -12,7 +12,7 @@ import java.util.Iterator; import java.util.List; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.cluster.raft.MockRaftActorContext.MockPayload; import org.opendaylight.controller.cluster.raft.RaftVersions; diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshotReplyTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshotReplyTest.java index 7ea8fb72000..c357de23786 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshotReplyTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshotReplyTest.java @@ -9,7 +9,7 @@ import static org.junit.Assert.assertEquals; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; /** diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshotTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshotTest.java index a3da9594169..504e87b3362 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshotTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshotTest.java @@ -13,7 +13,7 @@ import java.util.List; import java.util.Optional; import java.util.OptionalInt; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.cluster.raft.RaftVersions; import org.opendaylight.controller.cluster.raft.persisted.ServerConfigurationPayload; diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/RequestVoteReplyTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/RequestVoteReplyTest.java index 440c35f100b..10ddecf939e 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/RequestVoteReplyTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/RequestVoteReplyTest.java @@ -9,7 +9,7 @@ import static org.junit.Assert.assertEquals; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; /** diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/RequestVoteTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/RequestVoteTest.java index e710685056c..f1d2111376c 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/RequestVoteTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/RequestVoteTest.java @@ -9,7 +9,7 @@ import static org.junit.Assert.assertEquals; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; /** diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/ApplyJournalEntriesTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/ApplyJournalEntriesTest.java index 2d9e7e3391a..f5c40689bfe 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/ApplyJournalEntriesTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/ApplyJournalEntriesTest.java @@ -9,7 +9,7 @@ import static org.junit.Assert.assertEquals; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; /** diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/DeleteEntriesTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/DeleteEntriesTest.java index 3254c899e61..2fb5a334917 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/DeleteEntriesTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/DeleteEntriesTest.java @@ -9,7 +9,7 @@ import static org.junit.Assert.assertEquals; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; /** diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/EmptyStateTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/EmptyStateTest.java index 184b43b3c3e..18fa2d7719b 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/EmptyStateTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/EmptyStateTest.java @@ -10,7 +10,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertSame; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; /** diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/ServerConfigurationPayloadTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/ServerConfigurationPayloadTest.java index 82e7f8dbe4a..d686e946e72 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/ServerConfigurationPayloadTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/ServerConfigurationPayloadTest.java @@ -11,7 +11,7 @@ import static org.junit.Assert.assertTrue; import java.util.List; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; /** diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/SimpleReplicatedLogEntryTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/SimpleReplicatedLogEntryTest.java index 9c0e8907dcb..c8f59ee2fc1 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/SimpleReplicatedLogEntryTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/SimpleReplicatedLogEntryTest.java @@ -9,7 +9,7 @@ import static org.junit.Assert.assertEquals; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.cluster.raft.MockRaftActorContext; diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/SnapshotTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/SnapshotTest.java index 55d9d47376d..7d66c79155c 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/SnapshotTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/SnapshotTest.java @@ -10,7 +10,7 @@ import static org.junit.Assert.assertEquals; import java.util.List; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.cluster.raft.MockRaftActorContext.MockPayload; import org.opendaylight.controller.cluster.raft.ReplicatedLogEntry; diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/UpdateElectionTermTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/UpdateElectionTermTest.java index f783c64be79..c6128d36f2f 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/UpdateElectionTermTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/persisted/UpdateElectionTermTest.java @@ -9,7 +9,7 @@ import static org.junit.Assert.assertEquals; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; /** diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/utils/InMemoryJournal.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/utils/InMemoryJournal.java index a9eea07387b..21bf4bfa57a 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/utils/InMemoryJournal.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/utils/InMemoryJournal.java @@ -24,7 +24,7 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import java.util.function.Consumer; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import scala.Option; @@ -43,7 +43,7 @@ private static class WriteMessagesComplete { final Class ofType; WriteMessagesComplete(final int count, final Class ofType) { - this.latch = new CountDownLatch(count); + latch = new CountDownLatch(count); this.ofType = ofType; } } diff --git a/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml b/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml index 0bee5b50237..6245feb93c1 100644 --- a/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml +++ b/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml @@ -110,11 +110,6 @@ slf4j-simple test - - commons-lang - commons-lang - test - diff --git a/opendaylight/md-sal/sal-clustering-commons/pom.xml b/opendaylight/md-sal/sal-clustering-commons/pom.xml index d7b8869afe6..1a199af62e8 100644 --- a/opendaylight/md-sal/sal-clustering-commons/pom.xml +++ b/opendaylight/md-sal/sal-clustering-commons/pom.xml @@ -29,11 +29,6 @@ - - commons-lang - commons-lang - test - commons-io commons-io diff --git a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/messaging/AbortSlicingTest.java b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/messaging/AbortSlicingTest.java index 4441857f39c..af0027bdfec 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/messaging/AbortSlicingTest.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/messaging/AbortSlicingTest.java @@ -9,7 +9,7 @@ import static org.junit.Assert.assertEquals; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; /** @@ -22,7 +22,7 @@ public class AbortSlicingTest { @Test public void testSerialization() { AbortSlicing expected = new AbortSlicing(new StringIdentifier("test")); - AbortSlicing cloned = (AbortSlicing) SerializationUtils.clone(expected); + AbortSlicing cloned = SerializationUtils.clone(expected); assertEquals("getIdentifier", expected.getIdentifier(), cloned.getIdentifier()); } } diff --git a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/messaging/MessageSliceIdentifierTest.java b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/messaging/MessageSliceIdentifierTest.java index 9c80033b920..c5dbcdd13cd 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/messaging/MessageSliceIdentifierTest.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/messaging/MessageSliceIdentifierTest.java @@ -9,7 +9,7 @@ import static org.junit.Assert.assertEquals; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; /** @@ -22,7 +22,7 @@ public class MessageSliceIdentifierTest { @Test public void testSerialization() { MessageSliceIdentifier expected = new MessageSliceIdentifier(new StringIdentifier("test"), 123L); - MessageSliceIdentifier cloned = (MessageSliceIdentifier) SerializationUtils.clone(expected); + MessageSliceIdentifier cloned = SerializationUtils.clone(expected); assertEquals("cloned", expected, cloned); assertEquals("getClientIdentifier", expected.getClientIdentifier(), cloned.getClientIdentifier()); assertEquals("getSlicerId", expected.getSlicerId(), cloned.getSlicerId()); diff --git a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/messaging/MessageSliceReplyTest.java b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/messaging/MessageSliceReplyTest.java index 51c4479119f..a54552425a1 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/messaging/MessageSliceReplyTest.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/messaging/MessageSliceReplyTest.java @@ -16,7 +16,7 @@ import akka.serialization.JavaSerializer; import akka.testkit.TestProbe; import akka.testkit.javadsl.TestKit; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -48,7 +48,7 @@ public void testSerialization() { private void testSuccess() { MessageSliceReply expected = MessageSliceReply.success(new StringIdentifier("test"), 3, TestProbe.apply(actorSystem).ref()); - MessageSliceReply cloned = (MessageSliceReply) SerializationUtils.clone(expected); + MessageSliceReply cloned = SerializationUtils.clone(expected); assertEquals("getIdentifier", expected.getIdentifier(), cloned.getIdentifier()); assertEquals("getSliceIndex", expected.getSliceIndex(), cloned.getSliceIndex()); @@ -59,7 +59,7 @@ private void testSuccess() { private void testFailure() { MessageSliceReply expected = MessageSliceReply.failed(new StringIdentifier("test"), new MessageSliceException("mock", true), TestProbe.apply(actorSystem).ref()); - MessageSliceReply cloned = (MessageSliceReply) SerializationUtils.clone(expected); + MessageSliceReply cloned = SerializationUtils.clone(expected); assertEquals("getIdentifier", expected.getIdentifier(), cloned.getIdentifier()); assertEquals("getSliceIndex", expected.getSliceIndex(), cloned.getSliceIndex()); diff --git a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/messaging/MessageSliceTest.java b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/messaging/MessageSliceTest.java index dc2e6de9d75..afb764091ca 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/messaging/MessageSliceTest.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/messaging/MessageSliceTest.java @@ -15,7 +15,7 @@ import akka.serialization.JavaSerializer; import akka.testkit.TestProbe; import akka.testkit.javadsl.TestKit; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -35,7 +35,7 @@ public void setUp() { @After public void tearDown() { - TestKit.shutdownActorSystem(actorSystem, Boolean.TRUE); + TestKit.shutdownActorSystem(actorSystem, true); } @Test @@ -50,7 +50,7 @@ public void testSerialization() { MessageSlice expected = new MessageSlice(new StringIdentifier("test"), data, 2, 3, 54321, TestProbe.apply(actorSystem).ref()); - MessageSlice cloned = (MessageSlice) SerializationUtils.clone(expected); + MessageSlice cloned = SerializationUtils.clone(expected); assertEquals("getIdentifier", expected.getIdentifier(), cloned.getIdentifier()); assertEquals("getSliceIndex", expected.getSliceIndex(), cloned.getSliceIndex()); diff --git a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/persistence/LocalSnapshotStoreTest.java b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/persistence/LocalSnapshotStoreTest.java index d45042567d9..c9ab83e7629 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/persistence/LocalSnapshotStoreTest.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/persistence/LocalSnapshotStoreTest.java @@ -35,7 +35,7 @@ import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import org.apache.commons.io.FileUtils; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; diff --git a/opendaylight/md-sal/sal-distributed-datastore/pom.xml b/opendaylight/md-sal/sal-distributed-datastore/pom.xml index a362910d215..5529df224f9 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/pom.xml +++ b/opendaylight/md-sal/sal-distributed-datastore/pom.xml @@ -223,11 +223,6 @@ commons-io test - - commons-lang - commons-lang - test - org.opendaylight.yangtools yang-test-util diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/AbortTransactionReplyTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/AbortTransactionReplyTest.java index 49d33921636..a869ab6ff8f 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/AbortTransactionReplyTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/AbortTransactionReplyTest.java @@ -12,7 +12,7 @@ import static org.junit.Assert.assertTrue; import java.io.Serializable; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.cluster.datastore.DataStoreVersions; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/AbortTransactionTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/AbortTransactionTest.java index dd1d2be95b7..d4fb0e10e47 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/AbortTransactionTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/AbortTransactionTest.java @@ -12,7 +12,7 @@ import static org.junit.Assert.assertTrue; import java.io.Serializable; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.cluster.datastore.DataStoreVersions; import org.opendaylight.controller.cluster.datastore.MockIdentifiers; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/BatchedModificationsTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/BatchedModificationsTest.java index fe4941a197c..64520722424 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/BatchedModificationsTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/BatchedModificationsTest.java @@ -15,7 +15,7 @@ import java.io.Serializable; import java.util.Optional; import java.util.SortedSet; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.controller.cluster.datastore.AbstractTest; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CanCommitTransactionReplyTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CanCommitTransactionReplyTest.java index 21c4d2f673d..0a91ebb870d 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CanCommitTransactionReplyTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CanCommitTransactionReplyTest.java @@ -12,7 +12,7 @@ import static org.junit.Assert.assertTrue; import java.io.Serializable; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.cluster.datastore.DataStoreVersions; @@ -31,7 +31,7 @@ public void testSerialization() { CanCommitTransactionReply.class); } - private static void testSerialization(CanCommitTransactionReply expected, Class expSerialized) { + private static void testSerialization(final CanCommitTransactionReply expected, final Class expSerialized) { Object serialized = expected.toSerializable(); assertEquals("Serialized type", expSerialized, serialized.getClass()); diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CanCommitTransactionTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CanCommitTransactionTest.java index 8950c50518b..f28385c6228 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CanCommitTransactionTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CanCommitTransactionTest.java @@ -12,7 +12,7 @@ import static org.junit.Assert.assertTrue; import java.io.Serializable; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.cluster.datastore.AbstractTest; import org.opendaylight.controller.cluster.datastore.DataStoreVersions; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CloseTransactionChainTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CloseTransactionChainTest.java index fcb4d0d29ba..1ac6c82ad00 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CloseTransactionChainTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CloseTransactionChainTest.java @@ -12,7 +12,7 @@ import static org.junit.Assert.assertTrue; import java.io.Serializable; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.cluster.datastore.AbstractTest; import org.opendaylight.controller.cluster.datastore.DataStoreVersions; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CloseTransactionTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CloseTransactionTest.java index 8c35babbdae..4b9af413d2e 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CloseTransactionTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CloseTransactionTest.java @@ -10,7 +10,7 @@ import static org.junit.Assert.assertEquals; import java.io.Serializable; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.cluster.datastore.DataStoreVersions; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CommitTransactionReplyTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CommitTransactionReplyTest.java index 423411d8213..a726e4b9090 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CommitTransactionReplyTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CommitTransactionReplyTest.java @@ -12,7 +12,7 @@ import static org.junit.Assert.assertTrue; import java.io.Serializable; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.cluster.datastore.DataStoreVersions; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CommitTransactionTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CommitTransactionTest.java index 1fccfbdeae9..db16412f016 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CommitTransactionTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CommitTransactionTest.java @@ -12,7 +12,7 @@ import static org.junit.Assert.assertTrue; import java.io.Serializable; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.cluster.datastore.AbstractTest; import org.opendaylight.controller.cluster.datastore.DataStoreVersions; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CreateTransactionReplyTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CreateTransactionReplyTest.java index a44e71a1654..541126a91f1 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CreateTransactionReplyTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CreateTransactionReplyTest.java @@ -12,7 +12,7 @@ import static org.junit.Assert.assertTrue; import java.io.Serializable; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.cluster.datastore.AbstractTest; import org.opendaylight.controller.cluster.datastore.DataStoreVersions; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CreateTransactionTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CreateTransactionTest.java index 2e83a33e0ab..b25644b76d6 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CreateTransactionTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/CreateTransactionTest.java @@ -12,7 +12,7 @@ import static org.junit.Assert.assertTrue; import java.io.Serializable; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.cluster.datastore.AbstractTest; import org.opendaylight.controller.cluster.datastore.DataStoreVersions; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/DataExistsReplyTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/DataExistsReplyTest.java index 8f337732101..ad58fc0fa6e 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/DataExistsReplyTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/DataExistsReplyTest.java @@ -12,7 +12,7 @@ import static org.junit.Assert.assertTrue; import java.io.Serializable; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.cluster.datastore.DataStoreVersions; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/DataExistsTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/DataExistsTest.java index b55b3effd33..8e9af95f447 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/DataExistsTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/DataExistsTest.java @@ -12,7 +12,7 @@ import static org.junit.Assert.assertTrue; import java.io.Serializable; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.cluster.datastore.DataStoreVersions; import org.opendaylight.controller.md.cluster.datastore.model.TestModel; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/ReadDataReplyTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/ReadDataReplyTest.java index d805e6afac6..8af294e1caf 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/ReadDataReplyTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/ReadDataReplyTest.java @@ -12,7 +12,7 @@ import static org.junit.Assert.assertTrue; import java.io.Serializable; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.cluster.datastore.DataStoreVersions; import org.opendaylight.controller.md.cluster.datastore.model.TestModel; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/ReadDataTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/ReadDataTest.java index 5e06a60217b..6ef4bef0314 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/ReadDataTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/ReadDataTest.java @@ -12,7 +12,7 @@ import static org.junit.Assert.assertTrue; import java.io.Serializable; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.cluster.datastore.DataStoreVersions; import org.opendaylight.controller.md.cluster.datastore.model.TestModel; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/ReadyTransactionReplyTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/ReadyTransactionReplyTest.java index 049c17cb437..bb5f04b787a 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/ReadyTransactionReplyTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/ReadyTransactionReplyTest.java @@ -10,7 +10,7 @@ import static org.junit.Assert.assertEquals; import java.io.Serializable; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.cluster.datastore.DataStoreVersions; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/modification/DeleteModificationTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/modification/DeleteModificationTest.java index c8b2c48ebb2..546d900c8cb 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/modification/DeleteModificationTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/modification/DeleteModificationTest.java @@ -10,7 +10,7 @@ import static org.junit.Assert.assertEquals; import java.util.Optional; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.md.cluster.datastore.model.TestModel; import org.opendaylight.mdsal.dom.spi.store.DOMStoreReadWriteTransaction; @@ -44,7 +44,7 @@ public void testSerialization() { DeleteModification expected = new DeleteModification(path); - DeleteModification clone = (DeleteModification) SerializationUtils.clone(expected); + DeleteModification clone = SerializationUtils.clone(expected); assertEquals("getPath", expected.getPath(), clone.getPath()); } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/modification/MergeModificationTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/modification/MergeModificationTest.java index 31e06b80546..20fc9468906 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/modification/MergeModificationTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/modification/MergeModificationTest.java @@ -10,7 +10,7 @@ import static org.junit.Assert.assertEquals; import java.util.Optional; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.md.cluster.datastore.model.TestModel; import org.opendaylight.mdsal.dom.spi.store.DOMStoreReadWriteTransaction; @@ -41,7 +41,7 @@ public void testSerialization() { .withChild(ImmutableNodes.leafNode(TestModel.DESC_QNAME, "foo")) .build()); - MergeModification clone = (MergeModification) SerializationUtils.clone(expected); + MergeModification clone = SerializationUtils.clone(expected); assertEquals("getPath", expected.getPath(), clone.getPath()); assertEquals("getData", expected.getData(), clone.getData()); } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/modification/MutableCompositeModificationTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/modification/MutableCompositeModificationTest.java index 2d7258e9e84..c4f2695589d 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/modification/MutableCompositeModificationTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/modification/MutableCompositeModificationTest.java @@ -9,7 +9,7 @@ import static org.junit.Assert.assertEquals; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.cluster.datastore.DataStoreVersions; import org.opendaylight.controller.md.cluster.datastore.model.TestModel; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/modification/WriteModificationTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/modification/WriteModificationTest.java index 20409999d80..e8d37f866e1 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/modification/WriteModificationTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/modification/WriteModificationTest.java @@ -10,7 +10,7 @@ import static org.junit.Assert.assertEquals; import java.util.Optional; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.md.cluster.datastore.model.TestModel; import org.opendaylight.mdsal.dom.spi.store.DOMStoreReadWriteTransaction; @@ -38,7 +38,7 @@ public void testSerialization() { .withChild(ImmutableNodes.leafNode(TestModel.DESC_QNAME, "foo")) .build()); - WriteModification clone = (WriteModification) SerializationUtils.clone(expected); + WriteModification clone = SerializationUtils.clone(expected); assertEquals("getPath", expected.getPath(), clone.getPath()); assertEquals("getData", expected.getData(), clone.getData()); } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/ShardManagerSnapshotTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/ShardManagerSnapshotTest.java index 998a85f8dab..c1c09afa10b 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/ShardManagerSnapshotTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/ShardManagerSnapshotTest.java @@ -10,7 +10,7 @@ import static org.junit.Assert.assertEquals; import java.util.Arrays; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; /** @@ -24,7 +24,7 @@ public class ShardManagerSnapshotTest { public void testSerialization() { ShardManagerSnapshot expected = new ShardManagerSnapshot(Arrays.asList("shard1", "shard2")); - ShardManagerSnapshot cloned = (ShardManagerSnapshot) SerializationUtils.clone(expected); + ShardManagerSnapshot cloned = SerializationUtils.clone(expected); assertEquals("getShardList", expected.getShardList(), cloned.getShardList()); } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/ShardSnapshotStateTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/ShardSnapshotStateTest.java index ec7b74bedfd..662ed498fa2 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/ShardSnapshotStateTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/ShardSnapshotStateTest.java @@ -10,7 +10,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.md.cluster.datastore.model.TestModel; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; @@ -32,7 +32,7 @@ public void testSerialization() { .build(); ShardSnapshotState expected = new ShardSnapshotState(new MetadataShardDataTreeSnapshot(expectedNode)); - ShardSnapshotState cloned = (ShardSnapshotState) SerializationUtils.clone(expected); + ShardSnapshotState cloned = SerializationUtils.clone(expected); assertNotNull("getSnapshot is null", cloned.getSnapshot()); assertEquals("getSnapshot type", MetadataShardDataTreeSnapshot.class, cloned.getSnapshot().getClass()); diff --git a/opendaylight/md-sal/sal-remoterpc-connector/pom.xml b/opendaylight/md-sal/sal-remoterpc-connector/pom.xml index eca8bdc7af6..474e6a72e82 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/pom.xml +++ b/opendaylight/md-sal/sal-remoterpc-connector/pom.xml @@ -88,11 +88,6 @@ test-jar test - - commons-lang - commons-lang - test - diff --git a/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/messages/ExecuteOpsTest.java b/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/messages/ExecuteOpsTest.java index eafbd0de0ba..189ca170077 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/messages/ExecuteOpsTest.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/messages/ExecuteOpsTest.java @@ -9,7 +9,7 @@ import static org.junit.Assert.assertEquals; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.remote.rpc.AbstractOpsTest; @@ -20,7 +20,7 @@ public void testOpsSerialization() { ExecuteRpc expected = ExecuteRpc.from(AbstractOpsTest.TEST_RPC_ID, AbstractOpsTest.makeRPCInput("serialization-test")); - ExecuteRpc actual = (ExecuteRpc) SerializationUtils.clone(expected); + ExecuteRpc actual = SerializationUtils.clone(expected); assertEquals("getName", expected.getType(), actual.getType()); assertEquals("getInputNormalizedNode", expected.getInput(), actual.getInput()); diff --git a/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/messages/OpsResponseTest.java b/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/messages/OpsResponseTest.java index 938f1480422..495707557fd 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/messages/OpsResponseTest.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/messages/OpsResponseTest.java @@ -11,7 +11,7 @@ import java.util.Collections; import java.util.Optional; -import org.apache.commons.lang.SerializationUtils; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.remote.rpc.AbstractOpsTest; @@ -29,9 +29,9 @@ public void testSerialization() { ActionResponse expectedAction = new ActionResponse( Optional.of(AbstractOpsTest.makeRPCOutput("serialization-test")), Collections.emptyList()); - RpcResponse actualRpc = (RpcResponse) SerializationUtils.clone(expectedRpc); + RpcResponse actualRpc = SerializationUtils.clone(expectedRpc); - ActionResponse actualAction = (ActionResponse) SerializationUtils.clone(expectedAction); + ActionResponse actualAction = SerializationUtils.clone(expectedAction); assertEquals("getResultNormalizedNode", expectedRpc.getOutput(), actualRpc.getOutput()); From 99c6f512433950303cd7c7b26708f4adb1229b4c Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 12 Apr 2023 03:12:33 +0200 Subject: [PATCH 47/69] Bump upstreams Adopt: - odlparent-11.0.5 - yangtools-9.0.7 - mdsal-10.0.7 Change-Id: Id719d3ec6e1cde33b6cec006e13144783255d17d Signed-off-by: Robert Varga --- akka/pom.xml | 2 +- akka/repackaged-akka-jar/pom.xml | 2 +- artifacts/pom.xml | 2 +- benchmark/pom.xml | 2 +- bundle-parent/pom.xml | 2 +- docs/pom.xml | 8 ++++---- features/features-controller-experimental/pom.xml | 2 +- features/features-controller-testing/pom.xml | 2 +- features/features-controller/pom.xml | 2 +- features/pom.xml | 2 +- features/single-feature-parent/pom.xml | 2 +- jolokia/pom.xml | 2 +- karaf/pom.xml | 2 +- opendaylight/blueprint/pom.xml | 6 +++--- opendaylight/config/netty-event-executor-config/pom.xml | 2 +- opendaylight/config/netty-threadgroup-config/pom.xml | 2 +- opendaylight/config/netty-timer-config/pom.xml | 2 +- opendaylight/config/pom.xml | 2 +- opendaylight/config/threadpool-config-api/pom.xml | 2 +- opendaylight/config/threadpool-config-impl/pom.xml | 2 +- opendaylight/md-sal/cds-access-client/pom.xml | 2 ++ opendaylight/md-sal/mdsal-it-base/pom.xml | 4 ++-- opendaylight/md-sal/mdsal-it-parent/pom.xml | 6 +++--- opendaylight/md-sal/parent/pom.xml | 2 +- opendaylight/md-sal/pom.xml | 2 +- opendaylight/md-sal/sal-clustering-config/pom.xml | 2 +- .../samples/clustering-test-app/configuration/pom.xml | 2 +- opendaylight/md-sal/samples/clustering-test-app/pom.xml | 2 +- opendaylight/md-sal/samples/pom.xml | 2 +- pom.xml | 2 +- 30 files changed, 39 insertions(+), 37 deletions(-) diff --git a/akka/pom.xml b/akka/pom.xml index 8561a2f48d0..870a7f58781 100644 --- a/akka/pom.xml +++ b/akka/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.4 + 11.0.5 diff --git a/akka/repackaged-akka-jar/pom.xml b/akka/repackaged-akka-jar/pom.xml index 0e07fde4ad6..d2affc0ab0d 100644 --- a/akka/repackaged-akka-jar/pom.xml +++ b/akka/repackaged-akka-jar/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent - 11.0.4 + 11.0.5 diff --git a/artifacts/pom.xml b/artifacts/pom.xml index a6486378ac1..8ba65783e58 100644 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.4 + 11.0.5 diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 587dc2b4ba4..3fa3021bc52 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -10,7 +10,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent odlparent-lite - 11.0.4 + 11.0.5 diff --git a/bundle-parent/pom.xml b/bundle-parent/pom.xml index 351945d9953..07554cf5f94 100644 --- a/bundle-parent/pom.xml +++ b/bundle-parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.mdsal dom-parent - 10.0.6 + 10.0.7 diff --git a/docs/pom.xml b/docs/pom.xml index a107d1d7533..79e7e212658 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent - 11.0.4 + 11.0.5 @@ -229,9 +229,9 @@ http://netty.io/4.1/api/ https://commons.apache.org/proper/commons-lang/javadocs/api-release/ - https://www.javadoc.io/doc/org.opendaylight.odlparent/odlparent-docs/11.0.4/ - https://www.javadoc.io/doc/org.opendaylight.yangtools/yangtools-docs/9.0.6/ - https://www.javadoc.io/doc/org.opendaylight.mdsal/mdsal-docs/10.0.6/ + https://www.javadoc.io/doc/org.opendaylight.odlparent/odlparent-docs/11.0.5/ + https://www.javadoc.io/doc/org.opendaylight.yangtools/yangtools-docs/9.0.7/ + https://www.javadoc.io/doc/org.opendaylight.mdsal/mdsal-docs/10.0.7/ diff --git a/features/features-controller-experimental/pom.xml b/features/features-controller-experimental/pom.xml index 633715bc522..ff8182cad47 100644 --- a/features/features-controller-experimental/pom.xml +++ b/features/features-controller-experimental/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent feature-repo-parent - 11.0.4 + 11.0.5 diff --git a/features/features-controller-testing/pom.xml b/features/features-controller-testing/pom.xml index 1f85ea7ddae..f1862e99095 100644 --- a/features/features-controller-testing/pom.xml +++ b/features/features-controller-testing/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent feature-repo-parent - 11.0.4 + 11.0.5 diff --git a/features/features-controller/pom.xml b/features/features-controller/pom.xml index 03e8b3ce023..4e237bf48eb 100644 --- a/features/features-controller/pom.xml +++ b/features/features-controller/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent feature-repo-parent - 11.0.4 + 11.0.5 diff --git a/features/pom.xml b/features/pom.xml index 4512081c9b0..baa9819887d 100644 --- a/features/pom.xml +++ b/features/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.4 + 11.0.5 diff --git a/features/single-feature-parent/pom.xml b/features/single-feature-parent/pom.xml index 7461ee019b6..e24da90e997 100644 --- a/features/single-feature-parent/pom.xml +++ b/features/single-feature-parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent single-feature-parent - 11.0.4 + 11.0.5 diff --git a/jolokia/pom.xml b/jolokia/pom.xml index e75d62b84d8..5fb3075ebc6 100644 --- a/jolokia/pom.xml +++ b/jolokia/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent - 11.0.4 + 11.0.5 diff --git a/karaf/pom.xml b/karaf/pom.xml index 40d589ff7f6..4a5e8cd0252 100644 --- a/karaf/pom.xml +++ b/karaf/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent karaf4-parent - 11.0.4 + 11.0.5 diff --git a/opendaylight/blueprint/pom.xml b/opendaylight/blueprint/pom.xml index 0a61774ebea..721083af44a 100644 --- a/opendaylight/blueprint/pom.xml +++ b/opendaylight/blueprint/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.4 + 11.0.5 @@ -27,14 +27,14 @@ org.opendaylight.yangtools yangtools-artifacts - 9.0.6 + 9.0.7 pom import org.opendaylight.mdsal mdsal-artifacts - 10.0.6 + 10.0.7 pom import diff --git a/opendaylight/config/netty-event-executor-config/pom.xml b/opendaylight/config/netty-event-executor-config/pom.xml index 68ad1e9b1ab..024abe3dcfd 100644 --- a/opendaylight/config/netty-event-executor-config/pom.xml +++ b/opendaylight/config/netty-event-executor-config/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.4 + 11.0.5 diff --git a/opendaylight/config/netty-threadgroup-config/pom.xml b/opendaylight/config/netty-threadgroup-config/pom.xml index 66dc53ed742..6fca433e263 100644 --- a/opendaylight/config/netty-threadgroup-config/pom.xml +++ b/opendaylight/config/netty-threadgroup-config/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.4 + 11.0.5 diff --git a/opendaylight/config/netty-timer-config/pom.xml b/opendaylight/config/netty-timer-config/pom.xml index a078bfde474..75afe9a97d5 100644 --- a/opendaylight/config/netty-timer-config/pom.xml +++ b/opendaylight/config/netty-timer-config/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.4 + 11.0.5 diff --git a/opendaylight/config/pom.xml b/opendaylight/config/pom.xml index 9c498d123d2..2d45f2acce6 100644 --- a/opendaylight/config/pom.xml +++ b/opendaylight/config/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.4 + 11.0.5 diff --git a/opendaylight/config/threadpool-config-api/pom.xml b/opendaylight/config/threadpool-config-api/pom.xml index 4f3f3cb3122..5763fd7c1ac 100644 --- a/opendaylight/config/threadpool-config-api/pom.xml +++ b/opendaylight/config/threadpool-config-api/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.4 + 11.0.5 diff --git a/opendaylight/config/threadpool-config-impl/pom.xml b/opendaylight/config/threadpool-config-impl/pom.xml index 6319bf17362..8b0ebccbdd7 100644 --- a/opendaylight/config/threadpool-config-impl/pom.xml +++ b/opendaylight/config/threadpool-config-impl/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.4 + 11.0.5 diff --git a/opendaylight/md-sal/cds-access-client/pom.xml b/opendaylight/md-sal/cds-access-client/pom.xml index 57f592dd816..40d6585f37c 100644 --- a/opendaylight/md-sal/cds-access-client/pom.xml +++ b/opendaylight/md-sal/cds-access-client/pom.xml @@ -41,9 +41,11 @@ yang-data-api + org.mockito mockito-core + 4.11.0 test diff --git a/opendaylight/md-sal/mdsal-it-base/pom.xml b/opendaylight/md-sal/mdsal-it-base/pom.xml index 72e7befce9a..e06d8b6f4ae 100644 --- a/opendaylight/md-sal/mdsal-it-base/pom.xml +++ b/opendaylight/md-sal/mdsal-it-base/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent bundle-parent - 11.0.4 + 11.0.5 @@ -26,7 +26,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.mdsal mdsal-artifacts - 10.0.6 + 10.0.7 pom import diff --git a/opendaylight/md-sal/mdsal-it-parent/pom.xml b/opendaylight/md-sal/mdsal-it-parent/pom.xml index 58025fc1e35..fc76f8d3d1e 100644 --- a/opendaylight/md-sal/mdsal-it-parent/pom.xml +++ b/opendaylight/md-sal/mdsal-it-parent/pom.xml @@ -13,7 +13,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent bundle-parent - 11.0.4 + 11.0.5 @@ -102,6 +102,8 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.mockito mockito-core + + 4.11.0 test @@ -109,8 +111,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html maven-surefire-plugin - - 3.0.0-M5 diff --git a/opendaylight/md-sal/parent/pom.xml b/opendaylight/md-sal/parent/pom.xml index 7116d0b4551..1fe76005cd0 100644 --- a/opendaylight/md-sal/parent/pom.xml +++ b/opendaylight/md-sal/parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.mdsal binding-parent - 10.0.6 + 10.0.7 diff --git a/opendaylight/md-sal/pom.xml b/opendaylight/md-sal/pom.xml index eefe5ac8fd3..a32c699573a 100644 --- a/opendaylight/md-sal/pom.xml +++ b/opendaylight/md-sal/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.4 + 11.0.5 diff --git a/opendaylight/md-sal/sal-clustering-config/pom.xml b/opendaylight/md-sal/sal-clustering-config/pom.xml index 910009e1fa5..9a35b974b74 100644 --- a/opendaylight/md-sal/sal-clustering-config/pom.xml +++ b/opendaylight/md-sal/sal-clustering-config/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.4 + 11.0.5 diff --git a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml index a54354de301..8c0b4c23b30 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.4 + 11.0.5 diff --git a/opendaylight/md-sal/samples/clustering-test-app/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/pom.xml index fc349e7c346..109abf9777b 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.4 + 11.0.5 diff --git a/opendaylight/md-sal/samples/pom.xml b/opendaylight/md-sal/samples/pom.xml index 185511fca87..ae55b769c81 100644 --- a/opendaylight/md-sal/samples/pom.xml +++ b/opendaylight/md-sal/samples/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.4 + 11.0.5 diff --git a/pom.xml b/pom.xml index 684c50b1f22..e7b2ebdd23c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.4 + 11.0.5 From 60717e5459a6f10755170363a231a2b08ece735e Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Thu, 23 Feb 2023 16:14:33 +0100 Subject: [PATCH 48/69] Reduce mockito workaround Use mockito-inline and upgraded mockito. Change-Id: Ibc3ff9afbef0d586ed186c08de5364420c795fce Signed-off-by: Robert Varga (cherry picked from commit 793af237fdd742b0bf925a6bc9897a38804c5bdc) --- opendaylight/md-sal/cds-access-client/pom.xml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/opendaylight/md-sal/cds-access-client/pom.xml b/opendaylight/md-sal/cds-access-client/pom.xml index 40d6585f37c..7053ed9ecbb 100644 --- a/opendaylight/md-sal/cds-access-client/pom.xml +++ b/opendaylight/md-sal/cds-access-client/pom.xml @@ -41,11 +41,10 @@ yang-data-api - + org.mockito - mockito-core - 4.11.0 + mockito-subclass test From 733dc4b3fb2dcd98991a11440e982ec507f794a5 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Thu, 23 Feb 2023 16:22:04 +0100 Subject: [PATCH 49/69] Clean up cds-access-client dependencies Update dependencies to match what we are actually using. Change-Id: I8c6e17cfe853e6e7105fdc497315aaf008cf4c7e Signed-off-by: Robert Varga (cherry picked from commit 3d5859ae84a722c9481071f506b84acd8f6c5ae6) --- opendaylight/md-sal/cds-access-client/pom.xml | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/opendaylight/md-sal/cds-access-client/pom.xml b/opendaylight/md-sal/cds-access-client/pom.xml index 7053ed9ecbb..0d21f135564 100644 --- a/opendaylight/md-sal/cds-access-client/pom.xml +++ b/opendaylight/md-sal/cds-access-client/pom.xml @@ -33,12 +33,13 @@ concepts - org.opendaylight.yangtools - yang-common + org.scala-lang + scala-library - org.opendaylight.yangtools - yang-data-api + org.checkerframework + checker-qual + true @@ -47,6 +48,11 @@ mockito-subclass test + + com.typesafe + config + test + com.typesafe.akka akka-testkit_2.13 @@ -55,6 +61,21 @@ com.google.guava guava-testlib + + org.opendaylight.yangtools + yang-common + test + + + org.opendaylight.yangtools + yang-data-api + test + + + org.opendaylight.yangtools + yang-data-impl + test + org.opendaylight.controller sal-clustering-commons From 27a0a2e129ba6ee45835593a88af1a60c082441b Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Thu, 23 Feb 2023 17:33:16 +0100 Subject: [PATCH 50/69] Diagnose mockito downgrade better Mockito is doing a very weird thing to get the inline MockMaker work, which is known to not work with OSGi. Clean up the way we are approaching byte-buddy and provide a pointer to the issue. Change-Id: I87420710c5b6859e984fb72204826b91c7e4863a Signed-off-by: Robert Varga (cherry picked from commit 17a018384a969e748b79c1146b982f3b924c178d) --- opendaylight/md-sal/mdsal-it-parent/pom.xml | 39 +++++++++---------- .../test/sal/binding/it/AbstractIT.java | 1 - 2 files changed, 19 insertions(+), 21 deletions(-) diff --git a/opendaylight/md-sal/mdsal-it-parent/pom.xml b/opendaylight/md-sal/mdsal-it-parent/pom.xml index fc76f8d3d1e..005b019cd4b 100644 --- a/opendaylight/md-sal/mdsal-it-parent/pom.xml +++ b/opendaylight/md-sal/mdsal-it-parent/pom.xml @@ -93,20 +93,19 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.osgi org.osgi.framework - - junit - junit - - + org.mockito mockito-core - - 4.11.0 + 4.11.0 test + @@ -177,20 +176,20 @@ and is available at http://www.eclipse.org/legal/epl-v10.html maven-dependency-plugin - unpack-karaf-resources - - unpack-dependencies - - process-test-resources - - ${project.build.directory}/test-classes - org.opendaylight.controller - mockito-core,objenesis,mdsal-it-base - META-INF\/** - false - + unpack-karaf-resources + + unpack-dependencies + + process-test-resources + + ${project.build.directory}/test-classes + org.opendaylight.controller + mockito-core,byte-buddy,objenesis,mdsal-it-base + META-INF\/** + false + - + diff --git a/opendaylight/md-sal/sal-binding-it/src/test/java/org/opendaylight/controller/test/sal/binding/it/AbstractIT.java b/opendaylight/md-sal/sal-binding-it/src/test/java/org/opendaylight/controller/test/sal/binding/it/AbstractIT.java index 60b4865ee2a..0996dae3b93 100644 --- a/opendaylight/md-sal/sal-binding-it/src/test/java/org/opendaylight/controller/test/sal/binding/it/AbstractIT.java +++ b/opendaylight/md-sal/sal-binding-it/src/test/java/org/opendaylight/controller/test/sal/binding/it/AbstractIT.java @@ -33,7 +33,6 @@ public String getFeatureName() { protected Option[] getAdditionalOptions() { return new Option[] { mavenBundle("org.opendaylight.controller", "sal-test-model").versionAsInProject(), - mavenBundle("net.bytebuddy", "byte-buddy").versionAsInProject(), }; } } From 1b2e198e1764122831a9e3b11abafca5973dad7f Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 4 Apr 2023 09:07:34 +0200 Subject: [PATCH 51/69] Eliminate unneeded else branch Eclipse is right to point out we can just ditch the else branch. Change-Id: I816dd9a34b6fd8e1272ad1b8b93c2c5b3120ed4b Signed-off-by: Robert Varga (cherry picked from commit 1a9684ec6ce9dae26b3292028f6a2b3fa5d61cc4) --- .../controller/cluster/datastore/ShardDataTree.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java index c4bbe5b4118..226dd0c8698 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java @@ -1336,9 +1336,9 @@ boolean startAbort(final SimpleShardDataTreeCohort cohort) { } return true; - } else { - newTip = requireNonNullElse(e.cohort.getCandidate(), newTip); } + + newTip = requireNonNullElse(e.cohort.getCandidate(), newTip); } LOG.debug("{}: aborted transaction {} not found in the queue", logContext, cohort.getIdentifier()); From e2425b502c161d608e58fc143caa04f702b25309 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 4 Apr 2023 08:58:49 +0200 Subject: [PATCH 52/69] Use ArgumentMatchers.anyCollection() Instead of using any(Collection.class) use better anyCollection() method. Change-Id: Icff803dd6379dc15dfca1d2ab1bf89319f583e22 Signed-off-by: Robert Varga (cherry picked from commit 55ac0d700c4b20f145924b169b938321dc10a476) --- .../datastore/DataTreeCohortActorTest.java | 10 ++++------ .../DataTreeCohortIntegrationTest.java | 19 +++++++++---------- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortActorTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortActorTest.java index 16c567c9e0e..aaf02600278 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortActorTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortActorTest.java @@ -10,6 +10,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyCollection; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.reset; @@ -108,13 +109,12 @@ public void testMultipleThreePhaseCommits() throws Exception { askAndAwait(cohortActor, new Commit(txId2)); } - @SuppressWarnings("unchecked") @Test public void testAsyncCohort() throws Exception { ListeningExecutorService executor = MoreExecutors.listeningDecorator(Executors.newSingleThreadExecutor()); doReturn(executeWithDelay(executor, mockPostCanCommit)) - .when(mockCohort).canCommit(any(Object.class), any(SchemaContext.class), any(Collection.class)); + .when(mockCohort).canCommit(any(Object.class), any(SchemaContext.class), anyCollection()); doReturn(executor.submit(() -> mockPostPreCommit)).when(mockPostCanCommit).preCommit(); @@ -135,13 +135,12 @@ public void testAsyncCohort() throws Exception { executor.shutdownNow(); } - @SuppressWarnings("unchecked") @Test public void testFailureOnCanCommit() throws Exception { DataValidationFailedException failure = new DataValidationFailedException(YangInstanceIdentifier.empty(), "mock"); doReturn(FluentFutures.immediateFailedFluentFuture(failure)).when(mockCohort).canCommit(any(Object.class), - any(SchemaContext.class), any(Collection.class)); + any(SchemaContext.class), anyCollection()); ActorRef cohortActor = newCohortActor("testFailureOnCanCommit"); @@ -199,13 +198,12 @@ private ActorRef newCohortActor(final String name) { return actorFactory.createActor(DataTreeCohortActor.props(mockCohort, YangInstanceIdentifier.empty()), name); } - @SuppressWarnings("unchecked") private void resetMockCohort() { reset(mockCohort); doReturn(ThreePhaseCommitStep.NOOP_ABORT_FUTURE).when(mockPostCanCommit).abort(); doReturn(Futures.immediateFuture(mockPostPreCommit)).when(mockPostCanCommit).preCommit(); doReturn(FluentFutures.immediateFluentFuture(mockPostCanCommit)).when(mockCohort).canCommit(any(Object.class), - any(SchemaContext.class), any(Collection.class)); + any(SchemaContext.class), anyCollection()); doReturn(ThreePhaseCommitStep.NOOP_ABORT_FUTURE).when(mockPostPreCommit).abort(); doReturn(Futures.immediateFuture(null)).when(mockPostPreCommit).commit(); diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortIntegrationTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortIntegrationTest.java index 4ec8bc36657..8fafe96cb32 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortIntegrationTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortIntegrationTest.java @@ -12,6 +12,7 @@ import static org.junit.Assert.assertSame; import static org.junit.Assert.fail; import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyCollection; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.reset; @@ -95,7 +96,7 @@ protected ActorSystem getSystem() { public void testSuccessfulCanCommitWithNoopPostStep() throws Exception { final DOMDataTreeCommitCohort cohort = mock(DOMDataTreeCommitCohort.class); doReturn(PostCanCommitStep.NOOP_SUCCESSFUL_FUTURE).when(cohort).canCommit(any(Object.class), - any(SchemaContext.class), any(Collection.class)); + any(SchemaContext.class), anyCollection()); ArgumentCaptor candidateCapt = ArgumentCaptor.forClass(Collection.class); IntegrationTestKit kit = new IntegrationTestKit(getSystem(), datastoreContextBuilder); @@ -116,13 +117,13 @@ public void testSuccessfulCanCommitWithNoopPostStep() throws Exception { reset(cohort); doReturn(PostCanCommitStep.NOOP_SUCCESSFUL_FUTURE).when(cohort).canCommit(any(Object.class), - any(SchemaContext.class), any(Collection.class)); + any(SchemaContext.class), anyCollection()); kit.testWriteTransaction(dataStore, TestModel.OUTER_LIST_PATH, ImmutableNodes.mapNodeBuilder(TestModel.OUTER_LIST_QNAME) .withChild(ImmutableNodes.mapEntry(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 42)) .build()); - verify(cohort).canCommit(any(Object.class), any(SchemaContext.class), any(Collection.class)); + verify(cohort).canCommit(any(Object.class), any(SchemaContext.class), anyCollection()); cohortReg.close(); @@ -134,13 +135,12 @@ public void testSuccessfulCanCommitWithNoopPostStep() throws Exception { } } - @SuppressWarnings("unchecked") @Test public void testFailedCanCommit() throws Exception { final DOMDataTreeCommitCohort failedCohort = mock(DOMDataTreeCommitCohort.class); doReturn(FAILED_CAN_COMMIT_FUTURE).when(failedCohort).canCommit(any(Object.class), - any(SchemaContext.class), any(Collection.class)); + any(SchemaContext.class), anyCollection()); IntegrationTestKit kit = new IntegrationTestKit(getSystem(), datastoreContextBuilder); try (AbstractDataStore dataStore = kit.setupAbstractDataStore( @@ -167,7 +167,7 @@ public void testFailedCanCommit() throws Exception { public void testCanCommitWithListEntries() throws Exception { final DOMDataTreeCommitCohort cohort = mock(DOMDataTreeCommitCohort.class); doReturn(PostCanCommitStep.NOOP_SUCCESSFUL_FUTURE).when(cohort).canCommit(any(Object.class), - any(SchemaContext.class), any(Collection.class)); + any(SchemaContext.class), anyCollection()); IntegrationTestKit kit = new IntegrationTestKit(getSystem(), datastoreContextBuilder); try (AbstractDataStore dataStore = kit.setupAbstractDataStore( @@ -208,7 +208,7 @@ public void testCanCommitWithListEntries() throws Exception { reset(cohort); doReturn(PostCanCommitStep.NOOP_SUCCESSFUL_FUTURE).when(cohort).canCommit(any(Object.class), - any(SchemaContext.class), any(Collection.class)); + any(SchemaContext.class), anyCollection()); writeTx = dataStore.newWriteOnlyTransaction(); final YangInstanceIdentifier sportagePath = CarsModel.newCarPath("sportage"); @@ -237,7 +237,7 @@ public void testCanCommitWithListEntries() throws Exception { reset(cohort); doReturn(PostCanCommitStep.NOOP_SUCCESSFUL_FUTURE).when(cohort).canCommit(any(Object.class), - any(SchemaContext.class), any(Collection.class)); + any(SchemaContext.class), anyCollection()); writeTx = dataStore.newWriteOnlyTransaction(); writeTx.delete(CarsModel.BASE_PATH); @@ -275,7 +275,6 @@ private static DOMDataTreeCandidate findCandidate(final ArgumentCaptor Date: Mon, 3 Apr 2023 16:09:52 +0200 Subject: [PATCH 53/69] Remove explicit Serializable All Payloads are serializable, hence AbstractIdentifiablePayload is as well. Change-Id: I4153cad6f800746162d5e2cebb7f80f655d6ec32 Signed-off-by: Robert Varga (cherry picked from commit 79790f2c144d1b7d9275b1c8bd70983de8b929e8) --- .../datastore/persisted/AbstractIdentifiablePayload.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractIdentifiablePayload.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractIdentifiablePayload.java index 3f142f569e3..c835f7088a2 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractIdentifiablePayload.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractIdentifiablePayload.java @@ -17,7 +17,6 @@ import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; -import java.io.Serializable; import java.util.function.Function; import org.apache.commons.lang3.SerializationUtils; import org.eclipse.jdt.annotation.NonNull; @@ -27,11 +26,8 @@ /** * Abstract base class for {@link IdentifiablePayload}s which hold a single {@link Identifier}. - * - * @author Robert Varga */ -public abstract class AbstractIdentifiablePayload extends IdentifiablePayload - implements Serializable { +public abstract class AbstractIdentifiablePayload extends IdentifiablePayload { /** * An {@link Externalizable} with default implementations we expect our implementations to comply with. On-wire * serialization format is defined by {@link #bytes()}. From d7184a285f65425600728c745b427b0a9c7dd7a8 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 12 Apr 2023 13:46:49 +0200 Subject: [PATCH 54/69] Bump versions to 6.0.9-SNAPSHOT This starts the next development iteration. Change-Id: I1ab1e8f5d25e615920475c74de15f5f81294a926 Signed-off-by: Robert Varga --- akka/pom.xml | 2 +- akka/repackaged-akka-jar/pom.xml | 2 +- akka/repackaged-akka/pom.xml | 2 +- artifacts/pom.xml | 12 ++++++------ benchmark/api/pom.xml | 2 +- benchmark/dsbenchmark/pom.xml | 2 +- benchmark/ntfbenchmark/pom.xml | 2 +- benchmark/pom.xml | 2 +- benchmark/rpcbenchmark/pom.xml | 2 +- bundle-parent/pom.xml | 4 ++-- docs/pom.xml | 2 +- features/features-controller-experimental/pom.xml | 2 +- features/features-controller-testing/pom.xml | 2 +- features/features-controller/pom.xml | 2 +- features/odl-clustering-test-app/pom.xml | 2 +- features/odl-controller-akka/pom.xml | 2 +- features/odl-controller-blueprint/pom.xml | 2 +- features/odl-controller-broker-local/pom.xml | 2 +- features/odl-controller-exp-netty-config/pom.xml | 2 +- features/odl-controller-mdsal-common/pom.xml | 2 +- features/odl-controller-scala/pom.xml | 2 +- features/odl-jolokia/pom.xml | 2 +- features/odl-mdsal-benchmark/pom.xml | 2 +- features/odl-mdsal-broker/pom.xml | 2 +- features/odl-mdsal-clustering-commons/pom.xml | 2 +- features/odl-mdsal-distributed-datastore/pom.xml | 2 +- features/odl-mdsal-remoterpc-connector/pom.xml | 2 +- features/odl-toaster/pom.xml | 2 +- features/pom.xml | 2 +- features/single-feature-parent/pom.xml | 4 ++-- jolokia/pom.xml | 2 +- karaf/pom.xml | 2 +- opendaylight/blueprint/pom.xml | 2 +- .../config/netty-event-executor-config/pom.xml | 2 +- opendaylight/config/netty-threadgroup-config/pom.xml | 2 +- opendaylight/config/netty-timer-config/pom.xml | 2 +- opendaylight/config/pom.xml | 2 +- opendaylight/config/threadpool-config-api/pom.xml | 2 +- opendaylight/config/threadpool-config-impl/pom.xml | 4 ++-- opendaylight/md-sal/cds-access-api/pom.xml | 2 +- opendaylight/md-sal/cds-access-client/pom.xml | 2 +- opendaylight/md-sal/cds-dom-api/pom.xml | 2 +- opendaylight/md-sal/cds-mgmt-api/pom.xml | 2 +- opendaylight/md-sal/eos-dom-akka/pom.xml | 2 +- opendaylight/md-sal/mdsal-it-base/pom.xml | 2 +- opendaylight/md-sal/mdsal-it-parent/pom.xml | 4 ++-- opendaylight/md-sal/parent/pom.xml | 4 ++-- opendaylight/md-sal/pom.xml | 2 +- opendaylight/md-sal/sal-akka-raft-example/pom.xml | 2 +- opendaylight/md-sal/sal-akka-raft/pom.xml | 2 +- .../md-sal/sal-akka-segmented-journal/pom.xml | 2 +- opendaylight/md-sal/sal-binding-it/pom.xml | 2 +- opendaylight/md-sal/sal-cluster-admin-api/pom.xml | 2 +- opendaylight/md-sal/sal-cluster-admin-impl/pom.xml | 2 +- .../md-sal/sal-cluster-admin-karaf-cli/pom.xml | 2 +- opendaylight/md-sal/sal-clustering-commons/pom.xml | 2 +- opendaylight/md-sal/sal-clustering-config/pom.xml | 2 +- opendaylight/md-sal/sal-common-util/pom.xml | 2 +- .../md-sal/sal-distributed-datastore/pom.xml | 2 +- .../md-sal/sal-dummy-distributed-datastore/pom.xml | 2 +- opendaylight/md-sal/sal-remoterpc-connector/pom.xml | 2 +- opendaylight/md-sal/sal-test-model/pom.xml | 2 +- .../clustering-test-app/configuration/pom.xml | 2 +- .../samples/clustering-test-app/karaf-cli/pom.xml | 2 +- .../md-sal/samples/clustering-test-app/model/pom.xml | 2 +- .../md-sal/samples/clustering-test-app/pom.xml | 2 +- .../samples/clustering-test-app/provider/pom.xml | 2 +- opendaylight/md-sal/samples/pom.xml | 2 +- opendaylight/md-sal/samples/toaster-consumer/pom.xml | 2 +- opendaylight/md-sal/samples/toaster-it/pom.xml | 2 +- opendaylight/md-sal/samples/toaster-provider/pom.xml | 2 +- opendaylight/md-sal/samples/toaster/pom.xml | 2 +- pom.xml | 2 +- 73 files changed, 83 insertions(+), 83 deletions(-) diff --git a/akka/pom.xml b/akka/pom.xml index 870a7f58781..27e2ae682ef 100644 --- a/akka/pom.xml +++ b/akka/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller akka-aggregator - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT pom diff --git a/akka/repackaged-akka-jar/pom.xml b/akka/repackaged-akka-jar/pom.xml index d2affc0ab0d..1df259d9d35 100644 --- a/akka/repackaged-akka-jar/pom.xml +++ b/akka/repackaged-akka-jar/pom.xml @@ -20,7 +20,7 @@ org.opendaylight.controller repackaged-akka-jar jar - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ${project.artifactId} diff --git a/akka/repackaged-akka/pom.xml b/akka/repackaged-akka/pom.xml index 7cdd5d732e9..87b77a39372 100644 --- a/akka/repackaged-akka/pom.xml +++ b/akka/repackaged-akka/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.controller bundle-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../../bundle-parent diff --git a/artifacts/pom.xml b/artifacts/pom.xml index 8ba65783e58..5b2df231aaa 100644 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -20,7 +20,7 @@ org.opendaylight.controller controller-artifacts - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT pom @@ -395,27 +395,27 @@ ${project.groupId} netty-event-executor-config - 0.17.8-SNAPSHOT + 0.17.9-SNAPSHOT ${project.groupId} netty-threadgroup-config - 0.17.8-SNAPSHOT + 0.17.9-SNAPSHOT ${project.groupId} netty-timer-config - 0.17.8-SNAPSHOT + 0.17.9-SNAPSHOT ${project.groupId} threadpool-config-api - 0.17.8-SNAPSHOT + 0.17.9-SNAPSHOT ${project.groupId} threadpool-config-impl - 0.17.8-SNAPSHOT + 0.17.9-SNAPSHOT ${project.groupId} diff --git a/benchmark/api/pom.xml b/benchmark/api/pom.xml index b2562e961e0..4da9b0a1206 100644 --- a/benchmark/api/pom.xml +++ b/benchmark/api/pom.xml @@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/benchmark/dsbenchmark/pom.xml b/benchmark/dsbenchmark/pom.xml index 11a2ef007c2..cb31e17f60e 100644 --- a/benchmark/dsbenchmark/pom.xml +++ b/benchmark/dsbenchmark/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/benchmark/ntfbenchmark/pom.xml b/benchmark/ntfbenchmark/pom.xml index 531a64e35fa..d38d16611c1 100644 --- a/benchmark/ntfbenchmark/pom.xml +++ b/benchmark/ntfbenchmark/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 3fa3021bc52..8b1095e498c 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -16,7 +16,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller benchmark-aggregator - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT pom diff --git a/benchmark/rpcbenchmark/pom.xml b/benchmark/rpcbenchmark/pom.xml index f4638a6e9f4..2b1f7a91556 100644 --- a/benchmark/rpcbenchmark/pom.xml +++ b/benchmark/rpcbenchmark/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/bundle-parent/pom.xml b/bundle-parent/pom.xml index 07554cf5f94..38e301cbaf9 100644 --- a/bundle-parent/pom.xml +++ b/bundle-parent/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller bundle-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT pom @@ -25,7 +25,7 @@ org.opendaylight.controller controller-artifacts - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT pom import diff --git a/docs/pom.xml b/docs/pom.xml index 79e7e212658..8acabb408d3 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -19,7 +19,7 @@ org.opendaylight.controller controller-docs jar - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ${project.artifactId} Controller documentation diff --git a/features/features-controller-experimental/pom.xml b/features/features-controller-experimental/pom.xml index ff8182cad47..9e065c5de8f 100644 --- a/features/features-controller-experimental/pom.xml +++ b/features/features-controller-experimental/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-controller-experimental - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT feature OpenDaylight :: Controller :: Experimental Features Controller Experimental Features diff --git a/features/features-controller-testing/pom.xml b/features/features-controller-testing/pom.xml index f1862e99095..09909f736f6 100644 --- a/features/features-controller-testing/pom.xml +++ b/features/features-controller-testing/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-controller-testing - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT feature OpenDaylight :: Controller :: Features to support CSIT testing Controller CSIT Features diff --git a/features/features-controller/pom.xml b/features/features-controller/pom.xml index 4e237bf48eb..901099d0f6b 100644 --- a/features/features-controller/pom.xml +++ b/features/features-controller/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-controller - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT feature OpenDaylight :: Controller :: Features Controller Production Features diff --git a/features/odl-clustering-test-app/pom.xml b/features/odl-clustering-test-app/pom.xml index 1105698db6c..b1bee401cee 100644 --- a/features/odl-clustering-test-app/pom.xml +++ b/features/odl-clustering-test-app/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-akka/pom.xml b/features/odl-controller-akka/pom.xml index 5295d1266b6..84121d8841b 100644 --- a/features/odl-controller-akka/pom.xml +++ b/features/odl-controller-akka/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.controller single-feature-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-blueprint/pom.xml b/features/odl-controller-blueprint/pom.xml index 14ecb32c10a..80eb031d2ef 100644 --- a/features/odl-controller-blueprint/pom.xml +++ b/features/odl-controller-blueprint/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.controller single-feature-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-broker-local/pom.xml b/features/odl-controller-broker-local/pom.xml index ab8d1254c03..176452d1d03 100644 --- a/features/odl-controller-broker-local/pom.xml +++ b/features/odl-controller-broker-local/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-exp-netty-config/pom.xml b/features/odl-controller-exp-netty-config/pom.xml index 7e3ca47fb8e..6273f2d46c5 100644 --- a/features/odl-controller-exp-netty-config/pom.xml +++ b/features/odl-controller-exp-netty-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-mdsal-common/pom.xml b/features/odl-controller-mdsal-common/pom.xml index b0b9ca23cf7..a0d048ffd92 100644 --- a/features/odl-controller-mdsal-common/pom.xml +++ b/features/odl-controller-mdsal-common/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-scala/pom.xml b/features/odl-controller-scala/pom.xml index 19d425d3137..1f6d9ae6d24 100644 --- a/features/odl-controller-scala/pom.xml +++ b/features/odl-controller-scala/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.controller single-feature-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../single-feature-parent diff --git a/features/odl-jolokia/pom.xml b/features/odl-jolokia/pom.xml index 6bedfb75029..c0d0e8ce0c0 100644 --- a/features/odl-jolokia/pom.xml +++ b/features/odl-jolokia/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-benchmark/pom.xml b/features/odl-mdsal-benchmark/pom.xml index da28ff08d3b..c4b75d8e044 100644 --- a/features/odl-mdsal-benchmark/pom.xml +++ b/features/odl-mdsal-benchmark/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-broker/pom.xml b/features/odl-mdsal-broker/pom.xml index 2a660837c49..ec368e18b31 100644 --- a/features/odl-mdsal-broker/pom.xml +++ b/features/odl-mdsal-broker/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-clustering-commons/pom.xml b/features/odl-mdsal-clustering-commons/pom.xml index ebedd1a7bed..945ddf31be6 100644 --- a/features/odl-mdsal-clustering-commons/pom.xml +++ b/features/odl-mdsal-clustering-commons/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-distributed-datastore/pom.xml b/features/odl-mdsal-distributed-datastore/pom.xml index bc9ad4fb39a..3f4b3308d24 100644 --- a/features/odl-mdsal-distributed-datastore/pom.xml +++ b/features/odl-mdsal-distributed-datastore/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-remoterpc-connector/pom.xml b/features/odl-mdsal-remoterpc-connector/pom.xml index 4ab8a4978ab..7dc9f855113 100644 --- a/features/odl-mdsal-remoterpc-connector/pom.xml +++ b/features/odl-mdsal-remoterpc-connector/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../single-feature-parent diff --git a/features/odl-toaster/pom.xml b/features/odl-toaster/pom.xml index 7b76400ef7e..964c3a32a65 100644 --- a/features/odl-toaster/pom.xml +++ b/features/odl-toaster/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../single-feature-parent diff --git a/features/pom.xml b/features/pom.xml index baa9819887d..69646363063 100644 --- a/features/pom.xml +++ b/features/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-aggregator - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT pom diff --git a/features/single-feature-parent/pom.xml b/features/single-feature-parent/pom.xml index e24da90e997..f3d9c9a0e8f 100644 --- a/features/single-feature-parent/pom.xml +++ b/features/single-feature-parent/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller single-feature-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT pom @@ -25,7 +25,7 @@ org.opendaylight.controller bundle-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT pom import diff --git a/jolokia/pom.xml b/jolokia/pom.xml index 5fb3075ebc6..1c94a3de77a 100644 --- a/jolokia/pom.xml +++ b/jolokia/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller odl-jolokia-osgi - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT jar diff --git a/karaf/pom.xml b/karaf/pom.xml index 4a5e8cd0252..dffe8ffbd34 100644 --- a/karaf/pom.xml +++ b/karaf/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller controller-test-karaf - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT pom diff --git a/opendaylight/blueprint/pom.xml b/opendaylight/blueprint/pom.xml index 721083af44a..e5eb0c82875 100644 --- a/opendaylight/blueprint/pom.xml +++ b/opendaylight/blueprint/pom.xml @@ -20,7 +20,7 @@ blueprint bundle ${project.artifactId} - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT diff --git a/opendaylight/config/netty-event-executor-config/pom.xml b/opendaylight/config/netty-event-executor-config/pom.xml index 024abe3dcfd..790dd342c1e 100644 --- a/opendaylight/config/netty-event-executor-config/pom.xml +++ b/opendaylight/config/netty-event-executor-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller netty-event-executor-config - 0.17.8-SNAPSHOT + 0.17.9-SNAPSHOT bundle ${project.artifactId} Configuration Wrapper around netty's event executor diff --git a/opendaylight/config/netty-threadgroup-config/pom.xml b/opendaylight/config/netty-threadgroup-config/pom.xml index 6fca433e263..a95b639f629 100644 --- a/opendaylight/config/netty-threadgroup-config/pom.xml +++ b/opendaylight/config/netty-threadgroup-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller netty-threadgroup-config - 0.17.8-SNAPSHOT + 0.17.9-SNAPSHOT bundle ${project.artifactId} Configuration Wrapper around netty's event group diff --git a/opendaylight/config/netty-timer-config/pom.xml b/opendaylight/config/netty-timer-config/pom.xml index 75afe9a97d5..350c85049d3 100644 --- a/opendaylight/config/netty-timer-config/pom.xml +++ b/opendaylight/config/netty-timer-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller netty-timer-config - 0.17.8-SNAPSHOT + 0.17.9-SNAPSHOT bundle ${project.artifactId} Configuration Wrapper around netty's timer diff --git a/opendaylight/config/pom.xml b/opendaylight/config/pom.xml index 2d45f2acce6..8d31829453b 100644 --- a/opendaylight/config/pom.xml +++ b/opendaylight/config/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller config-aggregator - 0.17.8-SNAPSHOT + 0.17.9-SNAPSHOT pom diff --git a/opendaylight/config/threadpool-config-api/pom.xml b/opendaylight/config/threadpool-config-api/pom.xml index 5763fd7c1ac..92b248918b1 100644 --- a/opendaylight/config/threadpool-config-api/pom.xml +++ b/opendaylight/config/threadpool-config-api/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller threadpool-config-api - 0.17.8-SNAPSHOT + 0.17.9-SNAPSHOT bundle ${project.artifactId} diff --git a/opendaylight/config/threadpool-config-impl/pom.xml b/opendaylight/config/threadpool-config-impl/pom.xml index 8b0ebccbdd7..84d0cc6a13d 100644 --- a/opendaylight/config/threadpool-config-impl/pom.xml +++ b/opendaylight/config/threadpool-config-impl/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller threadpool-config-impl - 0.17.8-SNAPSHOT + 0.17.9-SNAPSHOT bundle ${project.artifactId} @@ -20,7 +20,7 @@ org.opendaylight.controller controller-artifacts - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT pom import diff --git a/opendaylight/md-sal/cds-access-api/pom.xml b/opendaylight/md-sal/cds-access-api/pom.xml index 07b1a8d54cc..0581afd2c61 100644 --- a/opendaylight/md-sal/cds-access-api/pom.xml +++ b/opendaylight/md-sal/cds-access-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/cds-access-client/pom.xml b/opendaylight/md-sal/cds-access-client/pom.xml index 0d21f135564..b2c5cb44534 100644 --- a/opendaylight/md-sal/cds-access-client/pom.xml +++ b/opendaylight/md-sal/cds-access-client/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/cds-dom-api/pom.xml b/opendaylight/md-sal/cds-dom-api/pom.xml index 79c8821450f..2d0a0cdfad6 100644 --- a/opendaylight/md-sal/cds-dom-api/pom.xml +++ b/opendaylight/md-sal/cds-dom-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/cds-mgmt-api/pom.xml b/opendaylight/md-sal/cds-mgmt-api/pom.xml index 87f328dab7d..c8b8ef1a507 100644 --- a/opendaylight/md-sal/cds-mgmt-api/pom.xml +++ b/opendaylight/md-sal/cds-mgmt-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/eos-dom-akka/pom.xml b/opendaylight/md-sal/eos-dom-akka/pom.xml index a8006dd48ac..bc4d66e7427 100644 --- a/opendaylight/md-sal/eos-dom-akka/pom.xml +++ b/opendaylight/md-sal/eos-dom-akka/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.controller mdsal-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/mdsal-it-base/pom.xml b/opendaylight/md-sal/mdsal-it-base/pom.xml index e06d8b6f4ae..3d772fba68d 100644 --- a/opendaylight/md-sal/mdsal-it-base/pom.xml +++ b/opendaylight/md-sal/mdsal-it-base/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-it-base - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT bundle diff --git a/opendaylight/md-sal/mdsal-it-parent/pom.xml b/opendaylight/md-sal/mdsal-it-parent/pom.xml index 005b019cd4b..d6e0d45f1ae 100644 --- a/opendaylight/md-sal/mdsal-it-parent/pom.xml +++ b/opendaylight/md-sal/mdsal-it-parent/pom.xml @@ -19,7 +19,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-it-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT pom @@ -37,7 +37,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller controller-artifacts - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT pom import diff --git a/opendaylight/md-sal/parent/pom.xml b/opendaylight/md-sal/parent/pom.xml index 1fe76005cd0..80d53095e45 100644 --- a/opendaylight/md-sal/parent/pom.xml +++ b/opendaylight/md-sal/parent/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller mdsal-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT pom @@ -25,7 +25,7 @@ org.opendaylight.controller bundle-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT pom import diff --git a/opendaylight/md-sal/pom.xml b/opendaylight/md-sal/pom.xml index a32c699573a..24f9ee388d0 100644 --- a/opendaylight/md-sal/pom.xml +++ b/opendaylight/md-sal/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller mdsal-aggregator - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT pom diff --git a/opendaylight/md-sal/sal-akka-raft-example/pom.xml b/opendaylight/md-sal/sal-akka-raft-example/pom.xml index 95b18bd0cb8..35cba31020d 100644 --- a/opendaylight/md-sal/sal-akka-raft-example/pom.xml +++ b/opendaylight/md-sal/sal-akka-raft-example/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller mdsal-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-akka-raft/pom.xml b/opendaylight/md-sal/sal-akka-raft/pom.xml index c960371e951..147df9e8673 100644 --- a/opendaylight/md-sal/sal-akka-raft/pom.xml +++ b/opendaylight/md-sal/sal-akka-raft/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml b/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml index 84107585680..d500625bf5d 100644 --- a/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml +++ b/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-binding-it/pom.xml b/opendaylight/md-sal/sal-binding-it/pom.xml index e4b77f4c7c7..81131058f1b 100644 --- a/opendaylight/md-sal/sal-binding-it/pom.xml +++ b/opendaylight/md-sal/sal-binding-it/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-it-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../mdsal-it-parent sal-binding-it diff --git a/opendaylight/md-sal/sal-cluster-admin-api/pom.xml b/opendaylight/md-sal/sal-cluster-admin-api/pom.xml index c77daee7b0a..d273f2d46ac 100644 --- a/opendaylight/md-sal/sal-cluster-admin-api/pom.xml +++ b/opendaylight/md-sal/sal-cluster-admin-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml b/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml index 6245feb93c1..b56a8b90283 100644 --- a/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml +++ b/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml b/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml index 2488a84f76a..f03e730c1c9 100644 --- a/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml +++ b/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml @@ -5,7 +5,7 @@ mdsal-parent org.opendaylight.controller - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../parent/pom.xml 4.0.0 diff --git a/opendaylight/md-sal/sal-clustering-commons/pom.xml b/opendaylight/md-sal/sal-clustering-commons/pom.xml index 1a199af62e8..a6ab3c20b01 100644 --- a/opendaylight/md-sal/sal-clustering-commons/pom.xml +++ b/opendaylight/md-sal/sal-clustering-commons/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-clustering-config/pom.xml b/opendaylight/md-sal/sal-clustering-config/pom.xml index 9a35b974b74..8db7141c149 100644 --- a/opendaylight/md-sal/sal-clustering-config/pom.xml +++ b/opendaylight/md-sal/sal-clustering-config/pom.xml @@ -18,7 +18,7 @@ org.opendaylight.controller sal-clustering-config - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT jar Configuration files for md-sal clustering diff --git a/opendaylight/md-sal/sal-common-util/pom.xml b/opendaylight/md-sal/sal-common-util/pom.xml index e747316a116..ee3c0e2de46 100644 --- a/opendaylight/md-sal/sal-common-util/pom.xml +++ b/opendaylight/md-sal/sal-common-util/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-distributed-datastore/pom.xml b/opendaylight/md-sal/sal-distributed-datastore/pom.xml index 5529df224f9..4b5579200c2 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/pom.xml +++ b/opendaylight/md-sal/sal-distributed-datastore/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml b/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml index eeaca15599f..a2bced352a8 100644 --- a/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml +++ b/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-remoterpc-connector/pom.xml b/opendaylight/md-sal/sal-remoterpc-connector/pom.xml index 474e6a72e82..3d54f000ed9 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/pom.xml +++ b/opendaylight/md-sal/sal-remoterpc-connector/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-test-model/pom.xml b/opendaylight/md-sal/sal-test-model/pom.xml index a260c52c08c..8b20f8d715e 100644 --- a/opendaylight/md-sal/sal-test-model/pom.xml +++ b/opendaylight/md-sal/sal-test-model/pom.xml @@ -6,7 +6,7 @@ org.opendaylight.controller mdsal-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml index 8c0b4c23b30..f13b01f9f68 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller.samples clustering-it-config - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT jar diff --git a/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml index ccedcc0abbe..1d88e73a0a6 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml @@ -12,7 +12,7 @@ mdsal-parent org.opendaylight.controller - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../../../parent/pom.xml 4.0.0 diff --git a/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml index 023cf36dab6..b33a55fda6a 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.controller mdsal-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../../../parent diff --git a/opendaylight/md-sal/samples/clustering-test-app/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/pom.xml index 109abf9777b..cdce41bd7ae 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller.samples clustering-test-app - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT pom diff --git a/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml index ab9b408a104..9efdfa3b0ff 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../../../parent diff --git a/opendaylight/md-sal/samples/pom.xml b/opendaylight/md-sal/samples/pom.xml index ae55b769c81..d6b0ea3e9ff 100644 --- a/opendaylight/md-sal/samples/pom.xml +++ b/opendaylight/md-sal/samples/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller.samples samples-aggregator - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT pom diff --git a/opendaylight/md-sal/samples/toaster-consumer/pom.xml b/opendaylight/md-sal/samples/toaster-consumer/pom.xml index e8137c867b0..574c137a1ee 100644 --- a/opendaylight/md-sal/samples/toaster-consumer/pom.xml +++ b/opendaylight/md-sal/samples/toaster-consumer/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../../parent diff --git a/opendaylight/md-sal/samples/toaster-it/pom.xml b/opendaylight/md-sal/samples/toaster-it/pom.xml index ad61615326a..e931455e917 100644 --- a/opendaylight/md-sal/samples/toaster-it/pom.xml +++ b/opendaylight/md-sal/samples/toaster-it/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.controller mdsal-it-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../../mdsal-it-parent sample-toaster-it diff --git a/opendaylight/md-sal/samples/toaster-provider/pom.xml b/opendaylight/md-sal/samples/toaster-provider/pom.xml index de4d0f2dfb5..4d4a4124610 100644 --- a/opendaylight/md-sal/samples/toaster-provider/pom.xml +++ b/opendaylight/md-sal/samples/toaster-provider/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../../parent diff --git a/opendaylight/md-sal/samples/toaster/pom.xml b/opendaylight/md-sal/samples/toaster/pom.xml index a44069ade0a..3af03ea00f0 100644 --- a/opendaylight/md-sal/samples/toaster/pom.xml +++ b/opendaylight/md-sal/samples/toaster/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.controller mdsal-parent - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT ../../parent diff --git a/pom.xml b/pom.xml index e7b2ebdd23c..488169a307c 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller releasepom - 6.0.8-SNAPSHOT + 6.0.9-SNAPSHOT pom controller From e12ce867d77d3171bd7e1e734acfdc7851434a39 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 30 May 2023 10:36:21 +0200 Subject: [PATCH 55/69] Bump upstreams Adopt: - odlparent-11.0.6 - yangtools-9.0.8 - mdsal-10.0.8 Change-Id: Ieb9e3fa72eed3bac725069eb93ded0f9226d4475 Signed-off-by: Robert Varga --- akka/pom.xml | 2 +- akka/repackaged-akka-jar/pom.xml | 9 ++++++++- artifacts/pom.xml | 2 +- benchmark/pom.xml | 2 +- bundle-parent/pom.xml | 2 +- docs/pom.xml | 8 ++++---- features/features-controller-experimental/pom.xml | 2 +- features/features-controller-testing/pom.xml | 2 +- features/features-controller/pom.xml | 2 +- features/pom.xml | 2 +- features/single-feature-parent/pom.xml | 2 +- jolokia/pom.xml | 2 +- karaf/pom.xml | 2 +- opendaylight/blueprint/pom.xml | 6 +++--- opendaylight/config/netty-event-executor-config/pom.xml | 2 +- opendaylight/config/netty-threadgroup-config/pom.xml | 2 +- opendaylight/config/netty-timer-config/pom.xml | 2 +- opendaylight/config/pom.xml | 2 +- opendaylight/config/threadpool-config-api/pom.xml | 2 +- opendaylight/config/threadpool-config-impl/pom.xml | 2 +- opendaylight/md-sal/mdsal-it-base/pom.xml | 4 ++-- opendaylight/md-sal/mdsal-it-parent/pom.xml | 2 +- opendaylight/md-sal/parent/pom.xml | 2 +- opendaylight/md-sal/pom.xml | 2 +- opendaylight/md-sal/sal-clustering-config/pom.xml | 2 +- .../samples/clustering-test-app/configuration/pom.xml | 2 +- opendaylight/md-sal/samples/clustering-test-app/pom.xml | 2 +- opendaylight/md-sal/samples/pom.xml | 2 +- pom.xml | 2 +- 29 files changed, 42 insertions(+), 35 deletions(-) diff --git a/akka/pom.xml b/akka/pom.xml index 27e2ae682ef..b224118c819 100644 --- a/akka/pom.xml +++ b/akka/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.5 + 11.0.6 diff --git a/akka/repackaged-akka-jar/pom.xml b/akka/repackaged-akka-jar/pom.xml index 1df259d9d35..f6ad1fbedd5 100644 --- a/akka/repackaged-akka-jar/pom.xml +++ b/akka/repackaged-akka-jar/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent - 11.0.5 + 11.0.6 @@ -127,6 +127,13 @@ + + maven-source-plugin + + + true + + diff --git a/artifacts/pom.xml b/artifacts/pom.xml index 5b2df231aaa..a4051119769 100644 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.5 + 11.0.6 diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 8b1095e498c..66cffa65851 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -10,7 +10,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent odlparent-lite - 11.0.5 + 11.0.6 diff --git a/bundle-parent/pom.xml b/bundle-parent/pom.xml index 38e301cbaf9..7b20013580e 100644 --- a/bundle-parent/pom.xml +++ b/bundle-parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.mdsal dom-parent - 10.0.7 + 10.0.8 diff --git a/docs/pom.xml b/docs/pom.xml index 8acabb408d3..83dbe64b2f6 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent - 11.0.5 + 11.0.6 @@ -229,9 +229,9 @@ http://netty.io/4.1/api/ https://commons.apache.org/proper/commons-lang/javadocs/api-release/ - https://www.javadoc.io/doc/org.opendaylight.odlparent/odlparent-docs/11.0.5/ - https://www.javadoc.io/doc/org.opendaylight.yangtools/yangtools-docs/9.0.7/ - https://www.javadoc.io/doc/org.opendaylight.mdsal/mdsal-docs/10.0.7/ + https://www.javadoc.io/doc/org.opendaylight.odlparent/odlparent-docs/11.0.6/ + https://www.javadoc.io/doc/org.opendaylight.yangtools/yangtools-docs/9.0.8/ + https://www.javadoc.io/doc/org.opendaylight.mdsal/mdsal-docs/10.0.8/ diff --git a/features/features-controller-experimental/pom.xml b/features/features-controller-experimental/pom.xml index 9e065c5de8f..0e01336faf4 100644 --- a/features/features-controller-experimental/pom.xml +++ b/features/features-controller-experimental/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent feature-repo-parent - 11.0.5 + 11.0.6 diff --git a/features/features-controller-testing/pom.xml b/features/features-controller-testing/pom.xml index 09909f736f6..882b0e8d5c8 100644 --- a/features/features-controller-testing/pom.xml +++ b/features/features-controller-testing/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent feature-repo-parent - 11.0.5 + 11.0.6 diff --git a/features/features-controller/pom.xml b/features/features-controller/pom.xml index 901099d0f6b..16c7629ec6b 100644 --- a/features/features-controller/pom.xml +++ b/features/features-controller/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent feature-repo-parent - 11.0.5 + 11.0.6 diff --git a/features/pom.xml b/features/pom.xml index 69646363063..05c78600d8e 100644 --- a/features/pom.xml +++ b/features/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.5 + 11.0.6 diff --git a/features/single-feature-parent/pom.xml b/features/single-feature-parent/pom.xml index f3d9c9a0e8f..70387e5289a 100644 --- a/features/single-feature-parent/pom.xml +++ b/features/single-feature-parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent single-feature-parent - 11.0.5 + 11.0.6 diff --git a/jolokia/pom.xml b/jolokia/pom.xml index 1c94a3de77a..a1167124321 100644 --- a/jolokia/pom.xml +++ b/jolokia/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent - 11.0.5 + 11.0.6 diff --git a/karaf/pom.xml b/karaf/pom.xml index dffe8ffbd34..9f1e9a30bfc 100644 --- a/karaf/pom.xml +++ b/karaf/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent karaf4-parent - 11.0.5 + 11.0.6 diff --git a/opendaylight/blueprint/pom.xml b/opendaylight/blueprint/pom.xml index e5eb0c82875..8e85e1b2779 100644 --- a/opendaylight/blueprint/pom.xml +++ b/opendaylight/blueprint/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.5 + 11.0.6 @@ -27,14 +27,14 @@ org.opendaylight.yangtools yangtools-artifacts - 9.0.7 + 9.0.8 pom import org.opendaylight.mdsal mdsal-artifacts - 10.0.7 + 10.0.8 pom import diff --git a/opendaylight/config/netty-event-executor-config/pom.xml b/opendaylight/config/netty-event-executor-config/pom.xml index 790dd342c1e..1afab35d35a 100644 --- a/opendaylight/config/netty-event-executor-config/pom.xml +++ b/opendaylight/config/netty-event-executor-config/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.5 + 11.0.6 diff --git a/opendaylight/config/netty-threadgroup-config/pom.xml b/opendaylight/config/netty-threadgroup-config/pom.xml index a95b639f629..0e33fba7ee6 100644 --- a/opendaylight/config/netty-threadgroup-config/pom.xml +++ b/opendaylight/config/netty-threadgroup-config/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.5 + 11.0.6 diff --git a/opendaylight/config/netty-timer-config/pom.xml b/opendaylight/config/netty-timer-config/pom.xml index 350c85049d3..3fd8f1e1eb6 100644 --- a/opendaylight/config/netty-timer-config/pom.xml +++ b/opendaylight/config/netty-timer-config/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.5 + 11.0.6 diff --git a/opendaylight/config/pom.xml b/opendaylight/config/pom.xml index 8d31829453b..3c789dcd732 100644 --- a/opendaylight/config/pom.xml +++ b/opendaylight/config/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.5 + 11.0.6 diff --git a/opendaylight/config/threadpool-config-api/pom.xml b/opendaylight/config/threadpool-config-api/pom.xml index 92b248918b1..18d2c87a712 100644 --- a/opendaylight/config/threadpool-config-api/pom.xml +++ b/opendaylight/config/threadpool-config-api/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.5 + 11.0.6 diff --git a/opendaylight/config/threadpool-config-impl/pom.xml b/opendaylight/config/threadpool-config-impl/pom.xml index 84d0cc6a13d..55247d5be84 100644 --- a/opendaylight/config/threadpool-config-impl/pom.xml +++ b/opendaylight/config/threadpool-config-impl/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.5 + 11.0.6 diff --git a/opendaylight/md-sal/mdsal-it-base/pom.xml b/opendaylight/md-sal/mdsal-it-base/pom.xml index 3d772fba68d..9dda975ea89 100644 --- a/opendaylight/md-sal/mdsal-it-base/pom.xml +++ b/opendaylight/md-sal/mdsal-it-base/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent bundle-parent - 11.0.5 + 11.0.6 @@ -26,7 +26,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.mdsal mdsal-artifacts - 10.0.7 + 10.0.8 pom import diff --git a/opendaylight/md-sal/mdsal-it-parent/pom.xml b/opendaylight/md-sal/mdsal-it-parent/pom.xml index d6e0d45f1ae..b45e12dca14 100644 --- a/opendaylight/md-sal/mdsal-it-parent/pom.xml +++ b/opendaylight/md-sal/mdsal-it-parent/pom.xml @@ -13,7 +13,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent bundle-parent - 11.0.5 + 11.0.6 diff --git a/opendaylight/md-sal/parent/pom.xml b/opendaylight/md-sal/parent/pom.xml index 80d53095e45..56f3b879817 100644 --- a/opendaylight/md-sal/parent/pom.xml +++ b/opendaylight/md-sal/parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.mdsal binding-parent - 10.0.7 + 10.0.8 diff --git a/opendaylight/md-sal/pom.xml b/opendaylight/md-sal/pom.xml index 24f9ee388d0..f4a5fe56a95 100644 --- a/opendaylight/md-sal/pom.xml +++ b/opendaylight/md-sal/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.5 + 11.0.6 diff --git a/opendaylight/md-sal/sal-clustering-config/pom.xml b/opendaylight/md-sal/sal-clustering-config/pom.xml index 8db7141c149..92f1ce0daa5 100644 --- a/opendaylight/md-sal/sal-clustering-config/pom.xml +++ b/opendaylight/md-sal/sal-clustering-config/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.5 + 11.0.6 diff --git a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml index f13b01f9f68..99f73bac082 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.5 + 11.0.6 diff --git a/opendaylight/md-sal/samples/clustering-test-app/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/pom.xml index cdce41bd7ae..51c707c3d27 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.5 + 11.0.6 diff --git a/opendaylight/md-sal/samples/pom.xml b/opendaylight/md-sal/samples/pom.xml index d6b0ea3e9ff..cb683f35387 100644 --- a/opendaylight/md-sal/samples/pom.xml +++ b/opendaylight/md-sal/samples/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.5 + 11.0.6 diff --git a/pom.xml b/pom.xml index 488169a307c..4cb845f1ec6 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.5 + 11.0.6 From 28652664b8be10f63ee9d8ba53fe748b300ce59c Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 30 May 2023 13:51:29 +0200 Subject: [PATCH 56/69] Bump versions to 6.0.10-SNAPSHOT This starts the next development iteration. Change-Id: If5c969a849cba665e2ebde9d994693c0e3903c93 Signed-off-by: Robert Varga --- akka/pom.xml | 2 +- akka/repackaged-akka-jar/pom.xml | 2 +- akka/repackaged-akka/pom.xml | 2 +- artifacts/pom.xml | 12 ++++++------ benchmark/api/pom.xml | 2 +- benchmark/dsbenchmark/pom.xml | 2 +- benchmark/ntfbenchmark/pom.xml | 2 +- benchmark/pom.xml | 2 +- benchmark/rpcbenchmark/pom.xml | 2 +- bundle-parent/pom.xml | 4 ++-- docs/pom.xml | 2 +- features/features-controller-experimental/pom.xml | 2 +- features/features-controller-testing/pom.xml | 2 +- features/features-controller/pom.xml | 2 +- features/odl-clustering-test-app/pom.xml | 2 +- features/odl-controller-akka/pom.xml | 2 +- features/odl-controller-blueprint/pom.xml | 2 +- features/odl-controller-broker-local/pom.xml | 2 +- features/odl-controller-exp-netty-config/pom.xml | 2 +- features/odl-controller-mdsal-common/pom.xml | 2 +- features/odl-controller-scala/pom.xml | 2 +- features/odl-jolokia/pom.xml | 2 +- features/odl-mdsal-benchmark/pom.xml | 2 +- features/odl-mdsal-broker/pom.xml | 2 +- features/odl-mdsal-clustering-commons/pom.xml | 2 +- features/odl-mdsal-distributed-datastore/pom.xml | 2 +- features/odl-mdsal-remoterpc-connector/pom.xml | 2 +- features/odl-toaster/pom.xml | 2 +- features/pom.xml | 2 +- features/single-feature-parent/pom.xml | 4 ++-- jolokia/pom.xml | 2 +- karaf/pom.xml | 2 +- opendaylight/blueprint/pom.xml | 2 +- .../config/netty-event-executor-config/pom.xml | 2 +- opendaylight/config/netty-threadgroup-config/pom.xml | 2 +- opendaylight/config/netty-timer-config/pom.xml | 2 +- opendaylight/config/pom.xml | 2 +- opendaylight/config/threadpool-config-api/pom.xml | 2 +- opendaylight/config/threadpool-config-impl/pom.xml | 4 ++-- opendaylight/md-sal/cds-access-api/pom.xml | 2 +- opendaylight/md-sal/cds-access-client/pom.xml | 2 +- opendaylight/md-sal/cds-dom-api/pom.xml | 2 +- opendaylight/md-sal/cds-mgmt-api/pom.xml | 2 +- opendaylight/md-sal/eos-dom-akka/pom.xml | 2 +- opendaylight/md-sal/mdsal-it-base/pom.xml | 2 +- opendaylight/md-sal/mdsal-it-parent/pom.xml | 4 ++-- opendaylight/md-sal/parent/pom.xml | 4 ++-- opendaylight/md-sal/pom.xml | 2 +- opendaylight/md-sal/sal-akka-raft-example/pom.xml | 2 +- opendaylight/md-sal/sal-akka-raft/pom.xml | 2 +- .../md-sal/sal-akka-segmented-journal/pom.xml | 2 +- opendaylight/md-sal/sal-binding-it/pom.xml | 2 +- opendaylight/md-sal/sal-cluster-admin-api/pom.xml | 2 +- opendaylight/md-sal/sal-cluster-admin-impl/pom.xml | 2 +- .../md-sal/sal-cluster-admin-karaf-cli/pom.xml | 2 +- opendaylight/md-sal/sal-clustering-commons/pom.xml | 2 +- opendaylight/md-sal/sal-clustering-config/pom.xml | 2 +- opendaylight/md-sal/sal-common-util/pom.xml | 2 +- .../md-sal/sal-distributed-datastore/pom.xml | 2 +- .../md-sal/sal-dummy-distributed-datastore/pom.xml | 2 +- opendaylight/md-sal/sal-remoterpc-connector/pom.xml | 2 +- opendaylight/md-sal/sal-test-model/pom.xml | 2 +- .../clustering-test-app/configuration/pom.xml | 2 +- .../samples/clustering-test-app/karaf-cli/pom.xml | 2 +- .../md-sal/samples/clustering-test-app/model/pom.xml | 2 +- .../md-sal/samples/clustering-test-app/pom.xml | 2 +- .../samples/clustering-test-app/provider/pom.xml | 2 +- opendaylight/md-sal/samples/pom.xml | 2 +- opendaylight/md-sal/samples/toaster-consumer/pom.xml | 2 +- opendaylight/md-sal/samples/toaster-it/pom.xml | 2 +- opendaylight/md-sal/samples/toaster-provider/pom.xml | 2 +- opendaylight/md-sal/samples/toaster/pom.xml | 2 +- pom.xml | 2 +- 73 files changed, 83 insertions(+), 83 deletions(-) diff --git a/akka/pom.xml b/akka/pom.xml index b224118c819..2933cc47847 100644 --- a/akka/pom.xml +++ b/akka/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller akka-aggregator - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT pom diff --git a/akka/repackaged-akka-jar/pom.xml b/akka/repackaged-akka-jar/pom.xml index f6ad1fbedd5..8bad5e7bd31 100644 --- a/akka/repackaged-akka-jar/pom.xml +++ b/akka/repackaged-akka-jar/pom.xml @@ -20,7 +20,7 @@ org.opendaylight.controller repackaged-akka-jar jar - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ${project.artifactId} diff --git a/akka/repackaged-akka/pom.xml b/akka/repackaged-akka/pom.xml index 87b77a39372..7da85b8e590 100644 --- a/akka/repackaged-akka/pom.xml +++ b/akka/repackaged-akka/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.controller bundle-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../../bundle-parent diff --git a/artifacts/pom.xml b/artifacts/pom.xml index a4051119769..0efee9424c2 100644 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -20,7 +20,7 @@ org.opendaylight.controller controller-artifacts - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT pom @@ -395,27 +395,27 @@ ${project.groupId} netty-event-executor-config - 0.17.9-SNAPSHOT + 0.17.10-SNAPSHOT ${project.groupId} netty-threadgroup-config - 0.17.9-SNAPSHOT + 0.17.10-SNAPSHOT ${project.groupId} netty-timer-config - 0.17.9-SNAPSHOT + 0.17.10-SNAPSHOT ${project.groupId} threadpool-config-api - 0.17.9-SNAPSHOT + 0.17.10-SNAPSHOT ${project.groupId} threadpool-config-impl - 0.17.9-SNAPSHOT + 0.17.10-SNAPSHOT ${project.groupId} diff --git a/benchmark/api/pom.xml b/benchmark/api/pom.xml index 4da9b0a1206..c510effa677 100644 --- a/benchmark/api/pom.xml +++ b/benchmark/api/pom.xml @@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/benchmark/dsbenchmark/pom.xml b/benchmark/dsbenchmark/pom.xml index cb31e17f60e..230771ddfb1 100644 --- a/benchmark/dsbenchmark/pom.xml +++ b/benchmark/dsbenchmark/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/benchmark/ntfbenchmark/pom.xml b/benchmark/ntfbenchmark/pom.xml index d38d16611c1..10ee3a52f3d 100644 --- a/benchmark/ntfbenchmark/pom.xml +++ b/benchmark/ntfbenchmark/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 66cffa65851..db975dca305 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -16,7 +16,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller benchmark-aggregator - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT pom diff --git a/benchmark/rpcbenchmark/pom.xml b/benchmark/rpcbenchmark/pom.xml index 2b1f7a91556..d3f6ad9207a 100644 --- a/benchmark/rpcbenchmark/pom.xml +++ b/benchmark/rpcbenchmark/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/bundle-parent/pom.xml b/bundle-parent/pom.xml index 7b20013580e..9fdc6092a6a 100644 --- a/bundle-parent/pom.xml +++ b/bundle-parent/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller bundle-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT pom @@ -25,7 +25,7 @@ org.opendaylight.controller controller-artifacts - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT pom import diff --git a/docs/pom.xml b/docs/pom.xml index 83dbe64b2f6..f7b8a9197a5 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -19,7 +19,7 @@ org.opendaylight.controller controller-docs jar - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ${project.artifactId} Controller documentation diff --git a/features/features-controller-experimental/pom.xml b/features/features-controller-experimental/pom.xml index 0e01336faf4..7ffab04f61a 100644 --- a/features/features-controller-experimental/pom.xml +++ b/features/features-controller-experimental/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-controller-experimental - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT feature OpenDaylight :: Controller :: Experimental Features Controller Experimental Features diff --git a/features/features-controller-testing/pom.xml b/features/features-controller-testing/pom.xml index 882b0e8d5c8..9aaa040c369 100644 --- a/features/features-controller-testing/pom.xml +++ b/features/features-controller-testing/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-controller-testing - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT feature OpenDaylight :: Controller :: Features to support CSIT testing Controller CSIT Features diff --git a/features/features-controller/pom.xml b/features/features-controller/pom.xml index 16c7629ec6b..d1271a334d7 100644 --- a/features/features-controller/pom.xml +++ b/features/features-controller/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-controller - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT feature OpenDaylight :: Controller :: Features Controller Production Features diff --git a/features/odl-clustering-test-app/pom.xml b/features/odl-clustering-test-app/pom.xml index b1bee401cee..5fb1a3a108c 100644 --- a/features/odl-clustering-test-app/pom.xml +++ b/features/odl-clustering-test-app/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-akka/pom.xml b/features/odl-controller-akka/pom.xml index 84121d8841b..40f855006f9 100644 --- a/features/odl-controller-akka/pom.xml +++ b/features/odl-controller-akka/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.controller single-feature-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-blueprint/pom.xml b/features/odl-controller-blueprint/pom.xml index 80eb031d2ef..86764706d58 100644 --- a/features/odl-controller-blueprint/pom.xml +++ b/features/odl-controller-blueprint/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.controller single-feature-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-broker-local/pom.xml b/features/odl-controller-broker-local/pom.xml index 176452d1d03..5858ab37b72 100644 --- a/features/odl-controller-broker-local/pom.xml +++ b/features/odl-controller-broker-local/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-exp-netty-config/pom.xml b/features/odl-controller-exp-netty-config/pom.xml index 6273f2d46c5..1fa2ae3cc84 100644 --- a/features/odl-controller-exp-netty-config/pom.xml +++ b/features/odl-controller-exp-netty-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-mdsal-common/pom.xml b/features/odl-controller-mdsal-common/pom.xml index a0d048ffd92..c160d6360be 100644 --- a/features/odl-controller-mdsal-common/pom.xml +++ b/features/odl-controller-mdsal-common/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-scala/pom.xml b/features/odl-controller-scala/pom.xml index 1f6d9ae6d24..ff8af71893f 100644 --- a/features/odl-controller-scala/pom.xml +++ b/features/odl-controller-scala/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.controller single-feature-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../single-feature-parent diff --git a/features/odl-jolokia/pom.xml b/features/odl-jolokia/pom.xml index c0d0e8ce0c0..1a3c9642493 100644 --- a/features/odl-jolokia/pom.xml +++ b/features/odl-jolokia/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-benchmark/pom.xml b/features/odl-mdsal-benchmark/pom.xml index c4b75d8e044..21b1724e3fa 100644 --- a/features/odl-mdsal-benchmark/pom.xml +++ b/features/odl-mdsal-benchmark/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-broker/pom.xml b/features/odl-mdsal-broker/pom.xml index ec368e18b31..1108421ca99 100644 --- a/features/odl-mdsal-broker/pom.xml +++ b/features/odl-mdsal-broker/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-clustering-commons/pom.xml b/features/odl-mdsal-clustering-commons/pom.xml index 945ddf31be6..af201e97389 100644 --- a/features/odl-mdsal-clustering-commons/pom.xml +++ b/features/odl-mdsal-clustering-commons/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-distributed-datastore/pom.xml b/features/odl-mdsal-distributed-datastore/pom.xml index 3f4b3308d24..e25b38bca08 100644 --- a/features/odl-mdsal-distributed-datastore/pom.xml +++ b/features/odl-mdsal-distributed-datastore/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-remoterpc-connector/pom.xml b/features/odl-mdsal-remoterpc-connector/pom.xml index 7dc9f855113..7b7a45ab80e 100644 --- a/features/odl-mdsal-remoterpc-connector/pom.xml +++ b/features/odl-mdsal-remoterpc-connector/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../single-feature-parent diff --git a/features/odl-toaster/pom.xml b/features/odl-toaster/pom.xml index 964c3a32a65..226a6c4f16b 100644 --- a/features/odl-toaster/pom.xml +++ b/features/odl-toaster/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../single-feature-parent diff --git a/features/pom.xml b/features/pom.xml index 05c78600d8e..ccb37c7cd32 100644 --- a/features/pom.xml +++ b/features/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-aggregator - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT pom diff --git a/features/single-feature-parent/pom.xml b/features/single-feature-parent/pom.xml index 70387e5289a..870eca8f5d5 100644 --- a/features/single-feature-parent/pom.xml +++ b/features/single-feature-parent/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller single-feature-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT pom @@ -25,7 +25,7 @@ org.opendaylight.controller bundle-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT pom import diff --git a/jolokia/pom.xml b/jolokia/pom.xml index a1167124321..612359dc533 100644 --- a/jolokia/pom.xml +++ b/jolokia/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller odl-jolokia-osgi - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT jar diff --git a/karaf/pom.xml b/karaf/pom.xml index 9f1e9a30bfc..c3504735699 100644 --- a/karaf/pom.xml +++ b/karaf/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller controller-test-karaf - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT pom diff --git a/opendaylight/blueprint/pom.xml b/opendaylight/blueprint/pom.xml index 8e85e1b2779..a4ff9802c53 100644 --- a/opendaylight/blueprint/pom.xml +++ b/opendaylight/blueprint/pom.xml @@ -20,7 +20,7 @@ blueprint bundle ${project.artifactId} - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT diff --git a/opendaylight/config/netty-event-executor-config/pom.xml b/opendaylight/config/netty-event-executor-config/pom.xml index 1afab35d35a..b3b7113d929 100644 --- a/opendaylight/config/netty-event-executor-config/pom.xml +++ b/opendaylight/config/netty-event-executor-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller netty-event-executor-config - 0.17.9-SNAPSHOT + 0.17.10-SNAPSHOT bundle ${project.artifactId} Configuration Wrapper around netty's event executor diff --git a/opendaylight/config/netty-threadgroup-config/pom.xml b/opendaylight/config/netty-threadgroup-config/pom.xml index 0e33fba7ee6..a1865d6f92c 100644 --- a/opendaylight/config/netty-threadgroup-config/pom.xml +++ b/opendaylight/config/netty-threadgroup-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller netty-threadgroup-config - 0.17.9-SNAPSHOT + 0.17.10-SNAPSHOT bundle ${project.artifactId} Configuration Wrapper around netty's event group diff --git a/opendaylight/config/netty-timer-config/pom.xml b/opendaylight/config/netty-timer-config/pom.xml index 3fd8f1e1eb6..b6d58232974 100644 --- a/opendaylight/config/netty-timer-config/pom.xml +++ b/opendaylight/config/netty-timer-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller netty-timer-config - 0.17.9-SNAPSHOT + 0.17.10-SNAPSHOT bundle ${project.artifactId} Configuration Wrapper around netty's timer diff --git a/opendaylight/config/pom.xml b/opendaylight/config/pom.xml index 3c789dcd732..a6f46942b6a 100644 --- a/opendaylight/config/pom.xml +++ b/opendaylight/config/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller config-aggregator - 0.17.9-SNAPSHOT + 0.17.10-SNAPSHOT pom diff --git a/opendaylight/config/threadpool-config-api/pom.xml b/opendaylight/config/threadpool-config-api/pom.xml index 18d2c87a712..3087247dc13 100644 --- a/opendaylight/config/threadpool-config-api/pom.xml +++ b/opendaylight/config/threadpool-config-api/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller threadpool-config-api - 0.17.9-SNAPSHOT + 0.17.10-SNAPSHOT bundle ${project.artifactId} diff --git a/opendaylight/config/threadpool-config-impl/pom.xml b/opendaylight/config/threadpool-config-impl/pom.xml index 55247d5be84..42537877f23 100644 --- a/opendaylight/config/threadpool-config-impl/pom.xml +++ b/opendaylight/config/threadpool-config-impl/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller threadpool-config-impl - 0.17.9-SNAPSHOT + 0.17.10-SNAPSHOT bundle ${project.artifactId} @@ -20,7 +20,7 @@ org.opendaylight.controller controller-artifacts - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT pom import diff --git a/opendaylight/md-sal/cds-access-api/pom.xml b/opendaylight/md-sal/cds-access-api/pom.xml index 0581afd2c61..8a309bbc46d 100644 --- a/opendaylight/md-sal/cds-access-api/pom.xml +++ b/opendaylight/md-sal/cds-access-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/cds-access-client/pom.xml b/opendaylight/md-sal/cds-access-client/pom.xml index b2c5cb44534..c07bc338b27 100644 --- a/opendaylight/md-sal/cds-access-client/pom.xml +++ b/opendaylight/md-sal/cds-access-client/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/cds-dom-api/pom.xml b/opendaylight/md-sal/cds-dom-api/pom.xml index 2d0a0cdfad6..cc1fb8cb889 100644 --- a/opendaylight/md-sal/cds-dom-api/pom.xml +++ b/opendaylight/md-sal/cds-dom-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/cds-mgmt-api/pom.xml b/opendaylight/md-sal/cds-mgmt-api/pom.xml index c8b8ef1a507..772dce9ccc9 100644 --- a/opendaylight/md-sal/cds-mgmt-api/pom.xml +++ b/opendaylight/md-sal/cds-mgmt-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/eos-dom-akka/pom.xml b/opendaylight/md-sal/eos-dom-akka/pom.xml index bc4d66e7427..2756a3cb08d 100644 --- a/opendaylight/md-sal/eos-dom-akka/pom.xml +++ b/opendaylight/md-sal/eos-dom-akka/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.controller mdsal-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/mdsal-it-base/pom.xml b/opendaylight/md-sal/mdsal-it-base/pom.xml index 9dda975ea89..2a02702a065 100644 --- a/opendaylight/md-sal/mdsal-it-base/pom.xml +++ b/opendaylight/md-sal/mdsal-it-base/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-it-base - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT bundle diff --git a/opendaylight/md-sal/mdsal-it-parent/pom.xml b/opendaylight/md-sal/mdsal-it-parent/pom.xml index b45e12dca14..e9d0560f9b6 100644 --- a/opendaylight/md-sal/mdsal-it-parent/pom.xml +++ b/opendaylight/md-sal/mdsal-it-parent/pom.xml @@ -19,7 +19,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-it-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT pom @@ -37,7 +37,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller controller-artifacts - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT pom import diff --git a/opendaylight/md-sal/parent/pom.xml b/opendaylight/md-sal/parent/pom.xml index 56f3b879817..0e8b9d8ef2b 100644 --- a/opendaylight/md-sal/parent/pom.xml +++ b/opendaylight/md-sal/parent/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller mdsal-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT pom @@ -25,7 +25,7 @@ org.opendaylight.controller bundle-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT pom import diff --git a/opendaylight/md-sal/pom.xml b/opendaylight/md-sal/pom.xml index f4a5fe56a95..ddc79b1a15a 100644 --- a/opendaylight/md-sal/pom.xml +++ b/opendaylight/md-sal/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller mdsal-aggregator - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT pom diff --git a/opendaylight/md-sal/sal-akka-raft-example/pom.xml b/opendaylight/md-sal/sal-akka-raft-example/pom.xml index 35cba31020d..b36e2bc67dc 100644 --- a/opendaylight/md-sal/sal-akka-raft-example/pom.xml +++ b/opendaylight/md-sal/sal-akka-raft-example/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller mdsal-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-akka-raft/pom.xml b/opendaylight/md-sal/sal-akka-raft/pom.xml index 147df9e8673..d0c5cfe6d7a 100644 --- a/opendaylight/md-sal/sal-akka-raft/pom.xml +++ b/opendaylight/md-sal/sal-akka-raft/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml b/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml index d500625bf5d..03c3f89d751 100644 --- a/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml +++ b/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-binding-it/pom.xml b/opendaylight/md-sal/sal-binding-it/pom.xml index 81131058f1b..47c0ee44fbe 100644 --- a/opendaylight/md-sal/sal-binding-it/pom.xml +++ b/opendaylight/md-sal/sal-binding-it/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-it-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../mdsal-it-parent sal-binding-it diff --git a/opendaylight/md-sal/sal-cluster-admin-api/pom.xml b/opendaylight/md-sal/sal-cluster-admin-api/pom.xml index d273f2d46ac..eab5d17d1f1 100644 --- a/opendaylight/md-sal/sal-cluster-admin-api/pom.xml +++ b/opendaylight/md-sal/sal-cluster-admin-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml b/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml index b56a8b90283..e9e6fddc095 100644 --- a/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml +++ b/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml b/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml index f03e730c1c9..f5149e5f229 100644 --- a/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml +++ b/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml @@ -5,7 +5,7 @@ mdsal-parent org.opendaylight.controller - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../parent/pom.xml 4.0.0 diff --git a/opendaylight/md-sal/sal-clustering-commons/pom.xml b/opendaylight/md-sal/sal-clustering-commons/pom.xml index a6ab3c20b01..89a2407f6c6 100644 --- a/opendaylight/md-sal/sal-clustering-commons/pom.xml +++ b/opendaylight/md-sal/sal-clustering-commons/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-clustering-config/pom.xml b/opendaylight/md-sal/sal-clustering-config/pom.xml index 92f1ce0daa5..c6d94c3e228 100644 --- a/opendaylight/md-sal/sal-clustering-config/pom.xml +++ b/opendaylight/md-sal/sal-clustering-config/pom.xml @@ -18,7 +18,7 @@ org.opendaylight.controller sal-clustering-config - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT jar Configuration files for md-sal clustering diff --git a/opendaylight/md-sal/sal-common-util/pom.xml b/opendaylight/md-sal/sal-common-util/pom.xml index ee3c0e2de46..00077978854 100644 --- a/opendaylight/md-sal/sal-common-util/pom.xml +++ b/opendaylight/md-sal/sal-common-util/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-distributed-datastore/pom.xml b/opendaylight/md-sal/sal-distributed-datastore/pom.xml index 4b5579200c2..ee19bbe6830 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/pom.xml +++ b/opendaylight/md-sal/sal-distributed-datastore/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml b/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml index a2bced352a8..77326006f05 100644 --- a/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml +++ b/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-remoterpc-connector/pom.xml b/opendaylight/md-sal/sal-remoterpc-connector/pom.xml index 3d54f000ed9..719a9de81c3 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/pom.xml +++ b/opendaylight/md-sal/sal-remoterpc-connector/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-test-model/pom.xml b/opendaylight/md-sal/sal-test-model/pom.xml index 8b20f8d715e..49bc4ed7f87 100644 --- a/opendaylight/md-sal/sal-test-model/pom.xml +++ b/opendaylight/md-sal/sal-test-model/pom.xml @@ -6,7 +6,7 @@ org.opendaylight.controller mdsal-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml index 99f73bac082..35eb7d6d1f5 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller.samples clustering-it-config - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT jar diff --git a/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml index 1d88e73a0a6..88076a78b05 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml @@ -12,7 +12,7 @@ mdsal-parent org.opendaylight.controller - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../../../parent/pom.xml 4.0.0 diff --git a/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml index b33a55fda6a..ba537eb7f45 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.controller mdsal-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../../../parent diff --git a/opendaylight/md-sal/samples/clustering-test-app/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/pom.xml index 51c707c3d27..c3f55acd4b5 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller.samples clustering-test-app - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT pom diff --git a/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml index 9efdfa3b0ff..0f435051ea4 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../../../parent diff --git a/opendaylight/md-sal/samples/pom.xml b/opendaylight/md-sal/samples/pom.xml index cb683f35387..6e3b5a63524 100644 --- a/opendaylight/md-sal/samples/pom.xml +++ b/opendaylight/md-sal/samples/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller.samples samples-aggregator - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT pom diff --git a/opendaylight/md-sal/samples/toaster-consumer/pom.xml b/opendaylight/md-sal/samples/toaster-consumer/pom.xml index 574c137a1ee..c312b3de0c0 100644 --- a/opendaylight/md-sal/samples/toaster-consumer/pom.xml +++ b/opendaylight/md-sal/samples/toaster-consumer/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../../parent diff --git a/opendaylight/md-sal/samples/toaster-it/pom.xml b/opendaylight/md-sal/samples/toaster-it/pom.xml index e931455e917..9ac56add781 100644 --- a/opendaylight/md-sal/samples/toaster-it/pom.xml +++ b/opendaylight/md-sal/samples/toaster-it/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.controller mdsal-it-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../../mdsal-it-parent sample-toaster-it diff --git a/opendaylight/md-sal/samples/toaster-provider/pom.xml b/opendaylight/md-sal/samples/toaster-provider/pom.xml index 4d4a4124610..699f209b71b 100644 --- a/opendaylight/md-sal/samples/toaster-provider/pom.xml +++ b/opendaylight/md-sal/samples/toaster-provider/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../../parent diff --git a/opendaylight/md-sal/samples/toaster/pom.xml b/opendaylight/md-sal/samples/toaster/pom.xml index 3af03ea00f0..fb8a9cffa36 100644 --- a/opendaylight/md-sal/samples/toaster/pom.xml +++ b/opendaylight/md-sal/samples/toaster/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.controller mdsal-parent - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT ../../parent diff --git a/pom.xml b/pom.xml index 4cb845f1ec6..9efe8bb472b 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller releasepom - 6.0.9-SNAPSHOT + 6.0.10-SNAPSHOT pom controller From be461b8cd8425e0a7732d84be4a447d63f9b2d7d Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Thu, 8 Jun 2023 08:50:46 +0200 Subject: [PATCH 57/69] Bump Scala to 2.13.11 https://github.com/scala/scala/releases/tag/v2.13.11 Change-Id: I9bc86788da00c1d46eadb298db1c55fe19bbca5f Signed-off-by: Robert Varga --- bundle-parent/pom.xml | 4 ++-- .../odl-controller-scala/src/main/history/dependencies.xml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bundle-parent/pom.xml b/bundle-parent/pom.xml index 9fdc6092a6a..34aa4288d52 100644 --- a/bundle-parent/pom.xml +++ b/bundle-parent/pom.xml @@ -34,12 +34,12 @@ org.scala-lang scala-library - 2.13.10 + 2.13.11 org.scala-lang scala-reflect - 2.13.10 + 2.13.11 org.scala-lang.modules diff --git a/features/odl-controller-scala/src/main/history/dependencies.xml b/features/odl-controller-scala/src/main/history/dependencies.xml index f511b5ca685..6b14e70defd 100644 --- a/features/odl-controller-scala/src/main/history/dependencies.xml +++ b/features/odl-controller-scala/src/main/history/dependencies.xml @@ -3,7 +3,7 @@ mvn:org.scala-lang.modules/scala-java8-compat_2.13/1.0.2 mvn:org.scala-lang.modules/scala-parser-combinators_2.13/1.1.2 - mvn:org.scala-lang/scala-library/2.13.10 - mvn:org.scala-lang/scala-reflect/2.13.10 + mvn:org.scala-lang/scala-library/2.13.11 + mvn:org.scala-lang/scala-reflect/2.13.11 From a0889c30c573da3928c7a62134000ca5850bddd1 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 21 Jun 2023 14:47:27 +0200 Subject: [PATCH 58/69] Bump akka to 2.6.21 https://github.com/akka/akka/releases/tag/v2.6.21 Change-Id: I79d5d143ac6e8e35661568c439fa07acdf34f64b Signed-off-by: Robert Varga (cherry picked from commit ebdf7aac3fe5bb9db1d3512c8228b5b715488e86) --- akka/repackaged-akka-jar/pom.xml | 20 ++++++++++---------- bundle-parent/pom.xml | 6 +++--- docs/pom.xml | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/akka/repackaged-akka-jar/pom.xml b/akka/repackaged-akka-jar/pom.xml index 8bad5e7bd31..e7310529ae1 100644 --- a/akka/repackaged-akka-jar/pom.xml +++ b/akka/repackaged-akka-jar/pom.xml @@ -33,52 +33,52 @@ com.typesafe.akka akka-actor_2.13 - 2.6.20 + 2.6.21 com.typesafe.akka akka-actor-typed_2.13 - 2.6.20 + 2.6.21 com.typesafe.akka akka-cluster_2.13 - 2.6.20 + 2.6.21 com.typesafe.akka akka-cluster-typed_2.13 - 2.6.20 + 2.6.21 com.typesafe.akka akka-osgi_2.13 - 2.6.20 + 2.6.21 com.typesafe.akka akka-persistence_2.13 - 2.6.20 + 2.6.21 com.typesafe.akka akka-protobuf_2.13 - 2.6.20 + 2.6.21 com.typesafe.akka akka-remote_2.13 - 2.6.20 + 2.6.21 com.typesafe.akka akka-slf4j_2.13 - 2.6.20 + 2.6.21 com.typesafe.akka akka-stream_2.13 - 2.6.20 + 2.6.21 diff --git a/bundle-parent/pom.xml b/bundle-parent/pom.xml index 34aa4288d52..6888c975501 100644 --- a/bundle-parent/pom.xml +++ b/bundle-parent/pom.xml @@ -75,7 +75,7 @@ com.typesafe.akka akka-testkit_2.13 - 2.6.20 + 2.6.21 test @@ -87,7 +87,7 @@ com.typesafe.akka akka-actor-testkit-typed_2.13 - 2.6.20 + 2.6.21 test @@ -103,7 +103,7 @@ com.typesafe.akka akka-persistence-tck_2.13 - 2.6.20 + 2.6.21 test diff --git a/docs/pom.xml b/docs/pom.xml index f7b8a9197a5..2f3a50c55dc 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -225,7 +225,7 @@ http://hamcrest.org/JavaHamcrest/javadoc/2.2/ http://www.slf4j.org/apidocs/ https://google.github.io/guava/releases/31.1-jre/api/docs/ - http://doc.akka.io/japi/akka/2.6.20/ + http://doc.akka.io/japi/akka/2.6.21/ http://netty.io/4.1/api/ https://commons.apache.org/proper/commons-lang/javadocs/api-release/ From 251659ef62fd0bc5ebf36e5a463675d6e5f27dbe Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 11 Sep 2023 14:39:50 +0200 Subject: [PATCH 59/69] Bump Scala to 2.13.12 https://github.com/scala/scala/releases/tag/v2.13.12 Change-Id: Ic406869380c4b639508d05ef0e40ca9c2a09cb75 Signed-off-by: Robert Varga (cherry picked from commit c1b9e960d0888cc42f58268f61fd0db75b4c77b9) --- bundle-parent/pom.xml | 4 ++-- .../odl-controller-scala/src/main/history/dependencies.xml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bundle-parent/pom.xml b/bundle-parent/pom.xml index 6888c975501..9e5332b96b8 100644 --- a/bundle-parent/pom.xml +++ b/bundle-parent/pom.xml @@ -34,12 +34,12 @@ org.scala-lang scala-library - 2.13.11 + 2.13.12 org.scala-lang scala-reflect - 2.13.11 + 2.13.12 org.scala-lang.modules diff --git a/features/odl-controller-scala/src/main/history/dependencies.xml b/features/odl-controller-scala/src/main/history/dependencies.xml index 6b14e70defd..f6527721573 100644 --- a/features/odl-controller-scala/src/main/history/dependencies.xml +++ b/features/odl-controller-scala/src/main/history/dependencies.xml @@ -3,7 +3,7 @@ mvn:org.scala-lang.modules/scala-java8-compat_2.13/1.0.2 mvn:org.scala-lang.modules/scala-parser-combinators_2.13/1.1.2 - mvn:org.scala-lang/scala-library/2.13.11 - mvn:org.scala-lang/scala-reflect/2.13.11 + mvn:org.scala-lang/scala-library/2.13.12 + mvn:org.scala-lang/scala-reflect/2.13.12 From 1bfb768caf976a59a2f3ace6633be8b8a3ebc9bd Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 30 Aug 2023 16:48:38 +0200 Subject: [PATCH 60/69] Make MemoryOutputStream final This is a checkstyle violation with upgraded checkstyle. Fix that. Change-Id: I370b50baa146a710632e501f1ce7acad913166c2 Signed-off-by: Robert Varga (cherry picked from commit 2209dcefbf9cf3b980ea0c0efab1ca29aed6cccc) --- .../cluster/io/FileBackedOutputStream.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/io/FileBackedOutputStream.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/io/FileBackedOutputStream.java index 029464a82b0..b00e4bee4e3 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/io/FileBackedOutputStream.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/io/FileBackedOutputStream.java @@ -91,7 +91,7 @@ public InputStream openStream() throws IOException { if (file != null) { return Files.newInputStream(file.toPath()); } else { - return new ByteArrayInputStream(memory.getBuffer(), 0, memory.getCount()); + return new ByteArrayInputStream(memory.buf(), 0, memory.count()); } } } @@ -178,20 +178,20 @@ private void possiblySwitchToFile(final int len) throws IOException { throw new IOException("Stream already closed"); } - if (file == null && memory.getCount() + len > fileThreshold) { + if (file == null && memory.count() + len > fileThreshold) { final File temp = File.createTempFile("FileBackedOutputStream", null, fileDirectory == null ? null : new File(fileDirectory)); temp.deleteOnExit(); final Cleaner.Cleanable cleanup = FILE_CLEANER.register(this, () -> deleteFile(temp)); - LOG.debug("Byte count {} has exceeded threshold {} - switching to file: {}", memory.getCount() + len, + LOG.debug("Byte count {} has exceeded threshold {} - switching to file: {}", memory.count() + len, fileThreshold, temp); final OutputStream transfer; try { transfer = Files.newOutputStream(temp.toPath()); try { - transfer.write(memory.getBuffer(), 0, memory.getCount()); + transfer.write(memory.buf(), 0, memory.count()); transfer.flush(); } catch (IOException e) { try { @@ -224,12 +224,12 @@ private static void deleteFile(final File file) { /** * ByteArrayOutputStream that exposes its internals for efficiency. */ - private static class MemoryOutputStream extends ByteArrayOutputStream { - byte[] getBuffer() { + private static final class MemoryOutputStream extends ByteArrayOutputStream { + byte[] buf() { return buf; } - int getCount() { + int count() { return count; } } From 8e72d8187982ad1124e5e3682198ec461d31b08d Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 30 Aug 2023 16:50:22 +0200 Subject: [PATCH 61/69] Fix FlexibleThreadPoolWrapper checkstyle Nested static classes are detected as checkstyle violations if they are not final. Fix that. Change-Id: Ifa5878890cabe845ecf8d98d46f2fc8015a78770 Signed-off-by: Robert Varga (cherry picked from commit 771bcd1a76b7f40f2338c047eced3e34794c33a1) --- .../config/threadpool/util/FlexibleThreadPoolWrapper.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/FlexibleThreadPoolWrapper.java b/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/FlexibleThreadPoolWrapper.java index 9949e36d371..cfa9597f8d3 100644 --- a/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/FlexibleThreadPoolWrapper.java +++ b/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/FlexibleThreadPoolWrapper.java @@ -103,7 +103,7 @@ public void close() { /** * if the max threads are met, then it will raise a rejectedExecution. We then push to the queue. */ - private static class FlexibleRejectionHandler implements RejectedExecutionHandler { + private static final class FlexibleRejectionHandler implements RejectedExecutionHandler { @Override @SuppressWarnings("checkstyle:parameterName") public void rejectedExecution(final Runnable r, final ThreadPoolExecutor executor) { @@ -115,7 +115,7 @@ public void rejectedExecution(final Runnable r, final ThreadPoolExecutor executo } } - private static class ForwardingBlockingQueue + private static final class ForwardingBlockingQueue extends com.google.common.util.concurrent.ForwardingBlockingQueue { private final BlockingQueue delegate; From fea07c2f660116ac86abc40ef1410ea3d8031dbb Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 30 Aug 2023 16:54:21 +0200 Subject: [PATCH 62/69] Clean up SnapshotManager nested classes Upgraded checkstyle is detecting a number of these as 'should be final'. Fix those findings. Change-Id: I171c046616a0b0c30f5cd46de0d3486e9943e757 Signed-off-by: Robert Varga (cherry picked from commit 44bd251909ae479ccf452f6d4f4ca36d9e478d6d) --- .../controller/cluster/raft/SnapshotManager.java | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/SnapshotManager.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/SnapshotManager.java index 8037fb8d73c..7d6de9533a2 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/SnapshotManager.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/SnapshotManager.java @@ -195,7 +195,7 @@ public CaptureSnapshot newCaptureSnapshot(final ReplicatedLogEntry lastLogEntry, newReplicatedToAllIndex, newReplicatedToAllTerm, unAppliedEntries, mandatoryTrim); } - private class AbstractSnapshotState implements SnapshotState { + private abstract class AbstractSnapshotState implements SnapshotState { @Override public boolean isCapturing() { @@ -282,8 +282,7 @@ protected long doTrimLog(final long desiredTrimIndex) { } } - private class Idle extends AbstractSnapshotState { - + private final class Idle extends AbstractSnapshotState { @Override public boolean isCapturing() { return false; @@ -360,8 +359,7 @@ public long trimLog(final long desiredTrimIndex) { } } - private class Creating extends AbstractSnapshotState { - + private final class Creating extends AbstractSnapshotState { @Override public void persist(final Snapshot.State snapshotState, final Optional installSnapshotStream, final long totalMemory) { @@ -463,8 +461,7 @@ public String toString() { } - private class Persisting extends AbstractSnapshotState { - + private final class Persisting extends AbstractSnapshotState { @Override @SuppressWarnings("checkstyle:IllegalCatch") public void commit(final long sequenceNumber, final long timeStamp) { @@ -543,7 +540,7 @@ private interface TermInformationReader { long getTerm(); } - static class LastAppliedTermInformationReader implements TermInformationReader { + static final class LastAppliedTermInformationReader implements TermInformationReader { private long index; private long term; @@ -580,7 +577,7 @@ public long getTerm() { } } - private static class ReplicatedToAllTermInformationReader implements TermInformationReader { + private static final class ReplicatedToAllTermInformationReader implements TermInformationReader { private long index; private long term; From 34693fbeda348ef0fb120ffdaeb178547aba3115 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 30 Aug 2023 17:01:38 +0200 Subject: [PATCH 63/69] Fix sal-remoterpc-connector checkstyle Upgraded checkstyle is flagging a few nested classes as potentially final, fix that up. Change-Id: Ie3835769d50e3a692644fc0dbed480e6c4d5f2de Signed-off-by: Robert Varga (cherry picked from commit 8ed828bb0f5cbc52ae6d217e71d3eba844222ee2) --- .../remote/rpc/registry/gossip/BucketStoreTest.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/registry/gossip/BucketStoreTest.java b/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/registry/gossip/BucketStoreTest.java index ed6d12c34d6..fc364015986 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/registry/gossip/BucketStoreTest.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/registry/gossip/BucketStoreTest.java @@ -26,14 +26,12 @@ import org.opendaylight.controller.remote.rpc.TerminationMonitor; public class BucketStoreTest { - /** * Dummy class to eliminate rawtype warnings. * * @author gwu - * */ - private static class T implements BucketData { + private static final class T implements BucketData { @Override public Optional getWatchActor() { return Optional.empty(); From 4297dd5ac7fe9fcad9a5b5d0bfaf28bb236f16b5 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 30 Aug 2023 17:01:08 +0200 Subject: [PATCH 64/69] Fix sal-distributed-datastore checkstyle Upgraded checkstyle is flagging a few nested classes as potentially final, fix that up. Change-Id: I8f5370fb700a76f6f71ad186d78cbb50e595a8a2 Signed-off-by: Robert Varga (cherry picked from commit 91143d29e61cd262543f0ec2d0b85461c2898b23) --- .../DatastoreContextContextPropertiesUpdaterTest.java | 3 +-- .../controller/cluster/datastore/utils/ActorUtilsTest.java | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DatastoreContextContextPropertiesUpdaterTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DatastoreContextContextPropertiesUpdaterTest.java index a113856627e..244df9c0bc0 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DatastoreContextContextPropertiesUpdaterTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DatastoreContextContextPropertiesUpdaterTest.java @@ -88,8 +88,7 @@ private static Object resolveField(final String name, final Object obj) throws E return currProps.get(obj); } - private class DummyListenerImpl implements Listener { - + private static final class DummyListenerImpl implements Listener { private DatastoreContextFactory contextFactory; @Override diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/ActorUtilsTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/ActorUtilsTest.java index e40939b55ba..dba5b8fd8a5 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/ActorUtilsTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/ActorUtilsTest.java @@ -67,10 +67,10 @@ import scala.concurrent.duration.FiniteDuration; public class ActorUtilsTest extends AbstractActorTest { - static final Logger LOG = LoggerFactory.getLogger(ActorUtilsTest.class); - private static class TestMessage { + private static final class TestMessage { + } private static final class MockShardManager extends UntypedAbstractActor { From 536161e49a71eb3b38418f8fc1e3beb76285dee7 Mon Sep 17 00:00:00 2001 From: "tibor.kral" Date: Tue, 3 Oct 2023 10:53:08 +0200 Subject: [PATCH 65/69] Make snapshot offset long to prevent overflow The current implementation uses integer which can easily overflow if the Snapshot grows over 2.14GB JIRA: CONTROLLER-2086 Change-Id: Ibbe3d3e1667cf59137e057b31141033a826142e4 Signed-off-by: tibor.kral Signed-off-by: Samuel Schneider Signed-off-by: Robert Varga (cherry picked from commit 2528d0289abab04cac5cbdf973f1bb4cff6c4864) --- .../behaviors/LeaderInstallSnapshotState.java | 16 +-- .../LeaderInstallSnapshotStateTest.java | 100 ++++++++++++++++++ 2 files changed, 108 insertions(+), 8 deletions(-) create mode 100644 opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/LeaderInstallSnapshotStateTest.java diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/LeaderInstallSnapshotState.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/LeaderInstallSnapshotState.java index e7c76bacbea..49e898c95a9 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/LeaderInstallSnapshotState.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/LeaderInstallSnapshotState.java @@ -38,9 +38,9 @@ public final class LeaderInstallSnapshotState implements AutoCloseable { private final int snapshotChunkSize; private final String logName; private ByteSource snapshotBytes; - private int offset = INITIAL_OFFSET; + private long offset = INITIAL_OFFSET; // the next snapshot chunk is sent only if the replyReceivedForOffset matches offset - private int replyReceivedForOffset = -1; + private long replyReceivedForOffset = -1; // if replyStatus is false, the previous chunk is attempted private boolean replyStatus = false; private int chunkIndex = FIRST_CHUNK_INDEX; @@ -75,8 +75,8 @@ void setSnapshotBytes(final ByteSource snapshotBytes) throws IOException { chunkIndex = FIRST_CHUNK_INDEX; } - int incrementOffset() { - // if offset is -1 doesnt matter whether it was the initial value or reset, move the offset to 0 to begin with + private long incrementOffset() { + // if offset is -1 doesn't matter whether it was the initial value or reset, move the offset to 0 to begin with if (offset == INITIAL_OFFSET) { offset = 0; } else { @@ -139,7 +139,7 @@ void markSendStatus(final boolean success) { byte[] getNextChunk() throws IOException { // increment offset to indicate next chunk is in flight, canSendNextChunk() wont let us hit this again until, // markSendStatus() is called with either success or failure - int start = incrementOffset(); + final var start = incrementOffset(); if (replyStatus || currentChunk == null) { int size = snapshotChunkSize; if (snapshotChunkSize > snapshotSize) { @@ -149,11 +149,11 @@ byte[] getNextChunk() throws IOException { } currentChunk = new byte[size]; - int numRead = snapshotInputStream.read(currentChunk); + final var numRead = snapshotInputStream.read(currentChunk); if (numRead != size) { throw new IOException(String.format( - "The # of bytes read from the input stream, %d," - + "does not match the expected # %d", numRead, size)); + "The # of bytes read from the input stream, %d, does not match the expected # %d", + numRead, size)); } nextChunkHashCode = Arrays.hashCode(currentChunk); diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/LeaderInstallSnapshotStateTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/LeaderInstallSnapshotStateTest.java new file mode 100644 index 00000000000..aa071817113 --- /dev/null +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/LeaderInstallSnapshotStateTest.java @@ -0,0 +1,100 @@ +/* + * Copyright (c) 2023 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.cluster.raft.behaviors; + +import static org.junit.Assert.assertEquals; + +import com.google.common.io.ByteSource; +import java.io.IOException; +import java.io.InputStream; +import java.util.Arrays; +import java.util.Objects; +import org.junit.Test; + +public class LeaderInstallSnapshotStateTest { + // Prime number on purpose + private static final int CHUNK_SIZE = 9_999_991; + // More than Integer.MAX_VALUE + private static final long SIZE = 4_294_967_294L; + + @Test + public void testSnapshotLongerThanInteger() throws IOException { + try (var fts = new LeaderInstallSnapshotState(CHUNK_SIZE, "test")) { + fts.setSnapshotBytes(new MockByteSource(SIZE)); + + int chunkIndex = 0; + long offset = 0; + long expectedChunkSize = CHUNK_SIZE; + while (offset < SIZE) { + offset = offset + CHUNK_SIZE; + if (offset > SIZE) { + // We reached last chunk + expectedChunkSize = CHUNK_SIZE - (offset - SIZE); + offset = SIZE; + } + chunkIndex ++; + final byte[] chunk = fts.getNextChunk(); + assertEquals("byte size not matching for chunk:", expectedChunkSize, chunk.length); + assertEquals("chunk index not matching", chunkIndex, fts.getChunkIndex()); + fts.markSendStatus(true); + if (!fts.isLastChunk(chunkIndex)) { + fts.incrementChunkIndex(); + } + } + + assertEquals("totalChunks not matching", chunkIndex, fts.getTotalChunks()); + } + } + + private static final class MockByteSource extends ByteSource { + private final long size; + + private MockByteSource(final long size) { + this.size = size; + } + + @Override + public long size() { + return size; + } + + @Override + public InputStream openStream() { + return new MockInputStream(size); + } + } + + private static final class MockInputStream extends InputStream { + private long remaining; + + MockInputStream(final long size) { + remaining = size; + } + + @Override + public int read() { + if (remaining > 0) { + remaining--; + return 0; + } + return -1; + } + + @Override + public int read(final byte[] bytes, final int off, final int len) { + Objects.checkFromIndexSize(off, len, bytes.length); + if (remaining <= 0) { + return -1; + } + final int count = len <= remaining ? len : (int) remaining; + Arrays.fill(bytes, off, off + count, (byte) 0); + remaining -= count; + return count; + } + } +} From 35753ddb090165267527be2f3573cd132d961435 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0imon=20Uku=C5=A1?= Date: Thu, 15 Jun 2023 13:47:28 +0200 Subject: [PATCH 66/69] Refactor RaftActorTest to avoid test failures MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The "doReturn(value).when(mockObj).coolMethod(same(arg))" way of mocking the return values for "coolMethod()" calls resulted in UnfinishedStubbingException, even though there seems to be no reason for such error. This change introduces "the other" way of such mocking: "when(mockObj.coolMethod(same(arg)).thenReturn()". JIRA: CONTROLLER-2080 Change-Id: I58b9c08780c27b43ad5eff4e21c921b9260fc236 Signed-off-by: Šimon Ukuš Signed-off-by: Samuel Schneider (cherry picked from commit 1f3e1e45b2a4805fca97a375893c96103a48c175) --- .../controller/cluster/raft/RaftActorTest.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorTest.java index 96e04df15a8..7f23b0d6667 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorTest.java @@ -23,6 +23,7 @@ import static org.mockito.Mockito.reset; import static org.mockito.Mockito.timeout; import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import akka.actor.ActorRef; import akka.actor.PoisonPill; @@ -337,27 +338,27 @@ public void testRaftActorForwardsToRaftActorSnapshotMessageSupport() { mockRaftActor.waitForRecoveryComplete(); ApplySnapshot applySnapshot = new ApplySnapshot(mock(Snapshot.class)); - doReturn(true).when(mockSupport).handleSnapshotMessage(same(applySnapshot), any(ActorRef.class)); + when(mockSupport.handleSnapshotMessage(same(applySnapshot), any(ActorRef.class))).thenReturn(true); mockRaftActor.handleCommand(applySnapshot); CaptureSnapshotReply captureSnapshotReply = new CaptureSnapshotReply(ByteState.empty(), Optional.empty()); - doReturn(true).when(mockSupport).handleSnapshotMessage(same(captureSnapshotReply), any(ActorRef.class)); + when(mockSupport.handleSnapshotMessage(same(captureSnapshotReply), any(ActorRef.class))).thenReturn(true); mockRaftActor.handleCommand(captureSnapshotReply); SaveSnapshotSuccess saveSnapshotSuccess = new SaveSnapshotSuccess(new SnapshotMetadata("", 0L, 0L)); - doReturn(true).when(mockSupport).handleSnapshotMessage(same(saveSnapshotSuccess), any(ActorRef.class)); + when(mockSupport.handleSnapshotMessage(same(saveSnapshotSuccess), any(ActorRef.class))).thenReturn(true); mockRaftActor.handleCommand(saveSnapshotSuccess); SaveSnapshotFailure saveSnapshotFailure = new SaveSnapshotFailure(new SnapshotMetadata("", 0L, 0L), new Throwable()); - doReturn(true).when(mockSupport).handleSnapshotMessage(same(saveSnapshotFailure), any(ActorRef.class)); + when(mockSupport.handleSnapshotMessage(same(saveSnapshotFailure), any(ActorRef.class))).thenReturn(true); mockRaftActor.handleCommand(saveSnapshotFailure); - doReturn(true).when(mockSupport).handleSnapshotMessage(same(RaftActorSnapshotMessageSupport.COMMIT_SNAPSHOT), - any(ActorRef.class)); + when(mockSupport.handleSnapshotMessage(same(RaftActorSnapshotMessageSupport.COMMIT_SNAPSHOT), + any(ActorRef.class))).thenReturn(true); mockRaftActor.handleCommand(RaftActorSnapshotMessageSupport.COMMIT_SNAPSHOT); - doReturn(true).when(mockSupport).handleSnapshotMessage(same(GetSnapshot.INSTANCE), any(ActorRef.class)); + when(mockSupport.handleSnapshotMessage(same(GetSnapshot.INSTANCE), any(ActorRef.class))).thenReturn(true); mockRaftActor.handleCommand(GetSnapshot.INSTANCE); verify(mockSupport).handleSnapshotMessage(same(applySnapshot), any(ActorRef.class)); From 5561ff063cab7711d67aaa04809302ff44c6594e Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 30 Oct 2023 18:39:46 +0100 Subject: [PATCH 67/69] Bump upstreams Adopt: - odlparent-11.0.7 - yangtools-9.0.10 - mdsal-10.0.9 Change-Id: I5f673ef51b9d6271ce7e0ecc8f9915d3eab6f30d Signed-off-by: Robert Varga --- akka/pom.xml | 2 +- akka/repackaged-akka-jar/pom.xml | 2 +- artifacts/pom.xml | 2 +- benchmark/pom.xml | 2 +- bundle-parent/pom.xml | 2 +- docs/pom.xml | 8 ++++---- features/features-controller-experimental/pom.xml | 2 +- features/features-controller-testing/pom.xml | 2 +- features/features-controller/pom.xml | 2 +- features/pom.xml | 2 +- features/single-feature-parent/pom.xml | 2 +- jolokia/pom.xml | 2 +- karaf/pom.xml | 2 +- opendaylight/blueprint/pom.xml | 6 +++--- opendaylight/config/netty-event-executor-config/pom.xml | 2 +- opendaylight/config/netty-threadgroup-config/pom.xml | 2 +- opendaylight/config/netty-timer-config/pom.xml | 2 +- opendaylight/config/pom.xml | 2 +- opendaylight/config/threadpool-config-api/pom.xml | 2 +- opendaylight/config/threadpool-config-impl/pom.xml | 2 +- opendaylight/md-sal/mdsal-it-base/pom.xml | 4 ++-- opendaylight/md-sal/mdsal-it-parent/pom.xml | 2 +- opendaylight/md-sal/parent/pom.xml | 2 +- opendaylight/md-sal/pom.xml | 2 +- opendaylight/md-sal/sal-clustering-config/pom.xml | 2 +- .../samples/clustering-test-app/configuration/pom.xml | 2 +- opendaylight/md-sal/samples/clustering-test-app/pom.xml | 2 +- .../controller/clustering/it/provider/CarProvider.java | 2 +- opendaylight/md-sal/samples/pom.xml | 2 +- pom.xml | 2 +- 30 files changed, 36 insertions(+), 36 deletions(-) diff --git a/akka/pom.xml b/akka/pom.xml index 2933cc47847..c897c527f4b 100644 --- a/akka/pom.xml +++ b/akka/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.6 + 11.0.7 diff --git a/akka/repackaged-akka-jar/pom.xml b/akka/repackaged-akka-jar/pom.xml index e7310529ae1..1be92851af2 100644 --- a/akka/repackaged-akka-jar/pom.xml +++ b/akka/repackaged-akka-jar/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent - 11.0.6 + 11.0.7 diff --git a/artifacts/pom.xml b/artifacts/pom.xml index 0efee9424c2..8a3339734da 100644 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.6 + 11.0.7 diff --git a/benchmark/pom.xml b/benchmark/pom.xml index db975dca305..36ba244c4d8 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -10,7 +10,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent odlparent-lite - 11.0.6 + 11.0.7 diff --git a/bundle-parent/pom.xml b/bundle-parent/pom.xml index 9e5332b96b8..ac084379196 100644 --- a/bundle-parent/pom.xml +++ b/bundle-parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.mdsal dom-parent - 10.0.8 + 10.0.9 diff --git a/docs/pom.xml b/docs/pom.xml index 2f3a50c55dc..3011c5338d3 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent - 11.0.6 + 11.0.7 @@ -229,9 +229,9 @@ http://netty.io/4.1/api/ https://commons.apache.org/proper/commons-lang/javadocs/api-release/ - https://www.javadoc.io/doc/org.opendaylight.odlparent/odlparent-docs/11.0.6/ - https://www.javadoc.io/doc/org.opendaylight.yangtools/yangtools-docs/9.0.8/ - https://www.javadoc.io/doc/org.opendaylight.mdsal/mdsal-docs/10.0.8/ + https://www.javadoc.io/doc/org.opendaylight.odlparent/odlparent-docs/11.0.7/ + https://www.javadoc.io/doc/org.opendaylight.yangtools/yangtools-docs/9.0.10/ + https://www.javadoc.io/doc/org.opendaylight.mdsal/mdsal-docs/10.0.9/ diff --git a/features/features-controller-experimental/pom.xml b/features/features-controller-experimental/pom.xml index 7ffab04f61a..271d8b6888a 100644 --- a/features/features-controller-experimental/pom.xml +++ b/features/features-controller-experimental/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent feature-repo-parent - 11.0.6 + 11.0.7 diff --git a/features/features-controller-testing/pom.xml b/features/features-controller-testing/pom.xml index 9aaa040c369..ed3be0f3487 100644 --- a/features/features-controller-testing/pom.xml +++ b/features/features-controller-testing/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent feature-repo-parent - 11.0.6 + 11.0.7 diff --git a/features/features-controller/pom.xml b/features/features-controller/pom.xml index d1271a334d7..393c3eeb847 100644 --- a/features/features-controller/pom.xml +++ b/features/features-controller/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent feature-repo-parent - 11.0.6 + 11.0.7 diff --git a/features/pom.xml b/features/pom.xml index ccb37c7cd32..3afb08026a6 100644 --- a/features/pom.xml +++ b/features/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.6 + 11.0.7 diff --git a/features/single-feature-parent/pom.xml b/features/single-feature-parent/pom.xml index 870eca8f5d5..245bec33a1c 100644 --- a/features/single-feature-parent/pom.xml +++ b/features/single-feature-parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent single-feature-parent - 11.0.6 + 11.0.7 diff --git a/jolokia/pom.xml b/jolokia/pom.xml index 612359dc533..a4ba83eb3fb 100644 --- a/jolokia/pom.xml +++ b/jolokia/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent - 11.0.6 + 11.0.7 diff --git a/karaf/pom.xml b/karaf/pom.xml index c3504735699..65dbfd01acb 100644 --- a/karaf/pom.xml +++ b/karaf/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent karaf4-parent - 11.0.6 + 11.0.7 diff --git a/opendaylight/blueprint/pom.xml b/opendaylight/blueprint/pom.xml index a4ff9802c53..c299d4849e4 100644 --- a/opendaylight/blueprint/pom.xml +++ b/opendaylight/blueprint/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.6 + 11.0.7 @@ -27,14 +27,14 @@ org.opendaylight.yangtools yangtools-artifacts - 9.0.8 + 9.0.10 pom import org.opendaylight.mdsal mdsal-artifacts - 10.0.8 + 10.0.9 pom import diff --git a/opendaylight/config/netty-event-executor-config/pom.xml b/opendaylight/config/netty-event-executor-config/pom.xml index b3b7113d929..c0588ae8d40 100644 --- a/opendaylight/config/netty-event-executor-config/pom.xml +++ b/opendaylight/config/netty-event-executor-config/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.6 + 11.0.7 diff --git a/opendaylight/config/netty-threadgroup-config/pom.xml b/opendaylight/config/netty-threadgroup-config/pom.xml index a1865d6f92c..2911d4a9130 100644 --- a/opendaylight/config/netty-threadgroup-config/pom.xml +++ b/opendaylight/config/netty-threadgroup-config/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.6 + 11.0.7 diff --git a/opendaylight/config/netty-timer-config/pom.xml b/opendaylight/config/netty-timer-config/pom.xml index b6d58232974..f7359476025 100644 --- a/opendaylight/config/netty-timer-config/pom.xml +++ b/opendaylight/config/netty-timer-config/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.6 + 11.0.7 diff --git a/opendaylight/config/pom.xml b/opendaylight/config/pom.xml index a6f46942b6a..931bc782246 100644 --- a/opendaylight/config/pom.xml +++ b/opendaylight/config/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.6 + 11.0.7 diff --git a/opendaylight/config/threadpool-config-api/pom.xml b/opendaylight/config/threadpool-config-api/pom.xml index 3087247dc13..741958bbc58 100644 --- a/opendaylight/config/threadpool-config-api/pom.xml +++ b/opendaylight/config/threadpool-config-api/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.6 + 11.0.7 diff --git a/opendaylight/config/threadpool-config-impl/pom.xml b/opendaylight/config/threadpool-config-impl/pom.xml index 42537877f23..1f055a65f5b 100644 --- a/opendaylight/config/threadpool-config-impl/pom.xml +++ b/opendaylight/config/threadpool-config-impl/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.6 + 11.0.7 diff --git a/opendaylight/md-sal/mdsal-it-base/pom.xml b/opendaylight/md-sal/mdsal-it-base/pom.xml index 2a02702a065..d546fa5be5f 100644 --- a/opendaylight/md-sal/mdsal-it-base/pom.xml +++ b/opendaylight/md-sal/mdsal-it-base/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent bundle-parent - 11.0.6 + 11.0.7 @@ -26,7 +26,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.mdsal mdsal-artifacts - 10.0.8 + 10.0.9 pom import diff --git a/opendaylight/md-sal/mdsal-it-parent/pom.xml b/opendaylight/md-sal/mdsal-it-parent/pom.xml index e9d0560f9b6..4875e2c5f49 100644 --- a/opendaylight/md-sal/mdsal-it-parent/pom.xml +++ b/opendaylight/md-sal/mdsal-it-parent/pom.xml @@ -13,7 +13,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent bundle-parent - 11.0.6 + 11.0.7 diff --git a/opendaylight/md-sal/parent/pom.xml b/opendaylight/md-sal/parent/pom.xml index 0e8b9d8ef2b..e67e2ad45e2 100644 --- a/opendaylight/md-sal/parent/pom.xml +++ b/opendaylight/md-sal/parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.mdsal binding-parent - 10.0.8 + 10.0.9 diff --git a/opendaylight/md-sal/pom.xml b/opendaylight/md-sal/pom.xml index ddc79b1a15a..4273453277c 100644 --- a/opendaylight/md-sal/pom.xml +++ b/opendaylight/md-sal/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.6 + 11.0.7 diff --git a/opendaylight/md-sal/sal-clustering-config/pom.xml b/opendaylight/md-sal/sal-clustering-config/pom.xml index c6d94c3e228..8f913c467f1 100644 --- a/opendaylight/md-sal/sal-clustering-config/pom.xml +++ b/opendaylight/md-sal/sal-clustering-config/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.6 + 11.0.7 diff --git a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml index 35eb7d6d1f5..e81c5bc3c65 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.6 + 11.0.7 diff --git a/opendaylight/md-sal/samples/clustering-test-app/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/pom.xml index c3f55acd4b5..e1659238899 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.6 + 11.0.7 diff --git a/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/CarProvider.java b/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/CarProvider.java index 9a3bbe9d4a2..b7c407bfb2b 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/CarProvider.java +++ b/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/CarProvider.java @@ -262,7 +262,7 @@ public ListenableFuture> unregisterOwnershi return RpcResultBuilder.success(new UnregisterOwnershipOutputBuilder().build()).buildFuture(); } - private static class CarEntityOwnershipListener implements EntityOwnershipListener { + private static final class CarEntityOwnershipListener implements EntityOwnershipListener { @Override public void ownershipChanged(final EntityOwnershipChange ownershipChange) { LOG_CAR_PROVIDER.info("ownershipChanged: {}", ownershipChange); diff --git a/opendaylight/md-sal/samples/pom.xml b/opendaylight/md-sal/samples/pom.xml index 6e3b5a63524..2af2193784f 100644 --- a/opendaylight/md-sal/samples/pom.xml +++ b/opendaylight/md-sal/samples/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.6 + 11.0.7 diff --git a/pom.xml b/pom.xml index 9efe8bb472b..f95d55433ad 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.6 + 11.0.7 From 5c47c3389682fd8a4cd2e406ef453e5c7a5701e7 Mon Sep 17 00:00:00 2001 From: jenkins-releng Date: Mon, 30 Oct 2023 23:28:13 +0000 Subject: [PATCH 68/69] Release controller --- akka/pom.xml | 2 +- akka/repackaged-akka-jar/pom.xml | 2 +- akka/repackaged-akka/pom.xml | 2 +- artifacts/pom.xml | 12 ++++++------ benchmark/api/pom.xml | 2 +- benchmark/dsbenchmark/pom.xml | 2 +- benchmark/ntfbenchmark/pom.xml | 2 +- benchmark/pom.xml | 2 +- benchmark/rpcbenchmark/pom.xml | 2 +- bundle-parent/pom.xml | 4 ++-- docs/pom.xml | 2 +- features/features-controller-experimental/pom.xml | 2 +- features/features-controller-testing/pom.xml | 2 +- features/features-controller/pom.xml | 2 +- features/odl-clustering-test-app/pom.xml | 2 +- features/odl-controller-akka/pom.xml | 2 +- features/odl-controller-blueprint/pom.xml | 2 +- features/odl-controller-broker-local/pom.xml | 2 +- features/odl-controller-exp-netty-config/pom.xml | 2 +- features/odl-controller-mdsal-common/pom.xml | 2 +- features/odl-controller-scala/pom.xml | 2 +- features/odl-jolokia/pom.xml | 2 +- features/odl-mdsal-benchmark/pom.xml | 2 +- features/odl-mdsal-broker/pom.xml | 2 +- features/odl-mdsal-clustering-commons/pom.xml | 2 +- features/odl-mdsal-distributed-datastore/pom.xml | 2 +- features/odl-mdsal-remoterpc-connector/pom.xml | 2 +- features/odl-toaster/pom.xml | 2 +- features/pom.xml | 2 +- features/single-feature-parent/pom.xml | 4 ++-- jolokia/pom.xml | 2 +- karaf/pom.xml | 2 +- opendaylight/blueprint/pom.xml | 2 +- .../config/netty-event-executor-config/pom.xml | 2 +- opendaylight/config/netty-threadgroup-config/pom.xml | 2 +- opendaylight/config/netty-timer-config/pom.xml | 2 +- opendaylight/config/pom.xml | 2 +- opendaylight/config/threadpool-config-api/pom.xml | 2 +- opendaylight/config/threadpool-config-impl/pom.xml | 4 ++-- opendaylight/md-sal/cds-access-api/pom.xml | 2 +- opendaylight/md-sal/cds-access-client/pom.xml | 2 +- opendaylight/md-sal/cds-dom-api/pom.xml | 2 +- opendaylight/md-sal/cds-mgmt-api/pom.xml | 2 +- opendaylight/md-sal/eos-dom-akka/pom.xml | 2 +- opendaylight/md-sal/mdsal-it-base/pom.xml | 2 +- opendaylight/md-sal/mdsal-it-parent/pom.xml | 4 ++-- opendaylight/md-sal/parent/pom.xml | 4 ++-- opendaylight/md-sal/pom.xml | 2 +- opendaylight/md-sal/sal-akka-raft-example/pom.xml | 2 +- opendaylight/md-sal/sal-akka-raft/pom.xml | 2 +- .../md-sal/sal-akka-segmented-journal/pom.xml | 2 +- opendaylight/md-sal/sal-binding-it/pom.xml | 2 +- opendaylight/md-sal/sal-cluster-admin-api/pom.xml | 2 +- opendaylight/md-sal/sal-cluster-admin-impl/pom.xml | 2 +- .../md-sal/sal-cluster-admin-karaf-cli/pom.xml | 2 +- opendaylight/md-sal/sal-clustering-commons/pom.xml | 2 +- opendaylight/md-sal/sal-clustering-config/pom.xml | 2 +- opendaylight/md-sal/sal-common-util/pom.xml | 2 +- .../md-sal/sal-distributed-datastore/pom.xml | 2 +- .../md-sal/sal-dummy-distributed-datastore/pom.xml | 2 +- opendaylight/md-sal/sal-remoterpc-connector/pom.xml | 2 +- opendaylight/md-sal/sal-test-model/pom.xml | 2 +- .../clustering-test-app/configuration/pom.xml | 2 +- .../samples/clustering-test-app/karaf-cli/pom.xml | 2 +- .../md-sal/samples/clustering-test-app/model/pom.xml | 2 +- .../md-sal/samples/clustering-test-app/pom.xml | 2 +- .../samples/clustering-test-app/provider/pom.xml | 2 +- opendaylight/md-sal/samples/pom.xml | 2 +- opendaylight/md-sal/samples/toaster-consumer/pom.xml | 2 +- opendaylight/md-sal/samples/toaster-it/pom.xml | 2 +- opendaylight/md-sal/samples/toaster-provider/pom.xml | 2 +- opendaylight/md-sal/samples/toaster/pom.xml | 2 +- pom.xml | 2 +- 73 files changed, 83 insertions(+), 83 deletions(-) diff --git a/akka/pom.xml b/akka/pom.xml index c897c527f4b..1fe9fb6ec1a 100644 --- a/akka/pom.xml +++ b/akka/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller akka-aggregator - 6.0.10-SNAPSHOT + 6.0.10 pom diff --git a/akka/repackaged-akka-jar/pom.xml b/akka/repackaged-akka-jar/pom.xml index 1be92851af2..b26cbed14a3 100644 --- a/akka/repackaged-akka-jar/pom.xml +++ b/akka/repackaged-akka-jar/pom.xml @@ -20,7 +20,7 @@ org.opendaylight.controller repackaged-akka-jar jar - 6.0.10-SNAPSHOT + 6.0.10 ${project.artifactId} diff --git a/akka/repackaged-akka/pom.xml b/akka/repackaged-akka/pom.xml index 7da85b8e590..773733a0819 100644 --- a/akka/repackaged-akka/pom.xml +++ b/akka/repackaged-akka/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.controller bundle-parent - 6.0.10-SNAPSHOT + 6.0.10 ../../bundle-parent diff --git a/artifacts/pom.xml b/artifacts/pom.xml index 8a3339734da..61a66d73bb2 100644 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -20,7 +20,7 @@ org.opendaylight.controller controller-artifacts - 6.0.10-SNAPSHOT + 6.0.10 pom @@ -395,27 +395,27 @@ ${project.groupId} netty-event-executor-config - 0.17.10-SNAPSHOT + 0.17.10 ${project.groupId} netty-threadgroup-config - 0.17.10-SNAPSHOT + 0.17.10 ${project.groupId} netty-timer-config - 0.17.10-SNAPSHOT + 0.17.10 ${project.groupId} threadpool-config-api - 0.17.10-SNAPSHOT + 0.17.10 ${project.groupId} threadpool-config-impl - 0.17.10-SNAPSHOT + 0.17.10 ${project.groupId} diff --git a/benchmark/api/pom.xml b/benchmark/api/pom.xml index c510effa677..80c2c9a0d9a 100644 --- a/benchmark/api/pom.xml +++ b/benchmark/api/pom.xml @@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.10-SNAPSHOT + 6.0.10 ../../opendaylight/md-sal/parent diff --git a/benchmark/dsbenchmark/pom.xml b/benchmark/dsbenchmark/pom.xml index 230771ddfb1..6962c70c8f6 100644 --- a/benchmark/dsbenchmark/pom.xml +++ b/benchmark/dsbenchmark/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.10-SNAPSHOT + 6.0.10 ../../opendaylight/md-sal/parent diff --git a/benchmark/ntfbenchmark/pom.xml b/benchmark/ntfbenchmark/pom.xml index 10ee3a52f3d..a5baf3e6b2d 100644 --- a/benchmark/ntfbenchmark/pom.xml +++ b/benchmark/ntfbenchmark/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.10-SNAPSHOT + 6.0.10 ../../opendaylight/md-sal/parent diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 36ba244c4d8..2c5276fc972 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -16,7 +16,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller benchmark-aggregator - 6.0.10-SNAPSHOT + 6.0.10 pom diff --git a/benchmark/rpcbenchmark/pom.xml b/benchmark/rpcbenchmark/pom.xml index d3f6ad9207a..0b712d9bf58 100644 --- a/benchmark/rpcbenchmark/pom.xml +++ b/benchmark/rpcbenchmark/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.10-SNAPSHOT + 6.0.10 ../../opendaylight/md-sal/parent diff --git a/bundle-parent/pom.xml b/bundle-parent/pom.xml index ac084379196..bfd595f0d6f 100644 --- a/bundle-parent/pom.xml +++ b/bundle-parent/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller bundle-parent - 6.0.10-SNAPSHOT + 6.0.10 pom @@ -25,7 +25,7 @@ org.opendaylight.controller controller-artifacts - 6.0.10-SNAPSHOT + 6.0.10 pom import diff --git a/docs/pom.xml b/docs/pom.xml index 3011c5338d3..b3f174bbaae 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -19,7 +19,7 @@ org.opendaylight.controller controller-docs jar - 6.0.10-SNAPSHOT + 6.0.10 ${project.artifactId} Controller documentation diff --git a/features/features-controller-experimental/pom.xml b/features/features-controller-experimental/pom.xml index 271d8b6888a..f846d448759 100644 --- a/features/features-controller-experimental/pom.xml +++ b/features/features-controller-experimental/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-controller-experimental - 6.0.10-SNAPSHOT + 6.0.10 feature OpenDaylight :: Controller :: Experimental Features Controller Experimental Features diff --git a/features/features-controller-testing/pom.xml b/features/features-controller-testing/pom.xml index ed3be0f3487..96684cf6de4 100644 --- a/features/features-controller-testing/pom.xml +++ b/features/features-controller-testing/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-controller-testing - 6.0.10-SNAPSHOT + 6.0.10 feature OpenDaylight :: Controller :: Features to support CSIT testing Controller CSIT Features diff --git a/features/features-controller/pom.xml b/features/features-controller/pom.xml index 393c3eeb847..539b2d9ff8a 100644 --- a/features/features-controller/pom.xml +++ b/features/features-controller/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-controller - 6.0.10-SNAPSHOT + 6.0.10 feature OpenDaylight :: Controller :: Features Controller Production Features diff --git a/features/odl-clustering-test-app/pom.xml b/features/odl-clustering-test-app/pom.xml index 5fb1a3a108c..b8cafa3daeb 100644 --- a/features/odl-clustering-test-app/pom.xml +++ b/features/odl-clustering-test-app/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10-SNAPSHOT + 6.0.10 ../single-feature-parent diff --git a/features/odl-controller-akka/pom.xml b/features/odl-controller-akka/pom.xml index 40f855006f9..e5be5b7bbcf 100644 --- a/features/odl-controller-akka/pom.xml +++ b/features/odl-controller-akka/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10-SNAPSHOT + 6.0.10 ../single-feature-parent diff --git a/features/odl-controller-blueprint/pom.xml b/features/odl-controller-blueprint/pom.xml index 86764706d58..893f43e312f 100644 --- a/features/odl-controller-blueprint/pom.xml +++ b/features/odl-controller-blueprint/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10-SNAPSHOT + 6.0.10 ../single-feature-parent diff --git a/features/odl-controller-broker-local/pom.xml b/features/odl-controller-broker-local/pom.xml index 5858ab37b72..c04871fee80 100644 --- a/features/odl-controller-broker-local/pom.xml +++ b/features/odl-controller-broker-local/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10-SNAPSHOT + 6.0.10 ../single-feature-parent diff --git a/features/odl-controller-exp-netty-config/pom.xml b/features/odl-controller-exp-netty-config/pom.xml index 1fa2ae3cc84..f3b1a1920db 100644 --- a/features/odl-controller-exp-netty-config/pom.xml +++ b/features/odl-controller-exp-netty-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10-SNAPSHOT + 6.0.10 ../single-feature-parent diff --git a/features/odl-controller-mdsal-common/pom.xml b/features/odl-controller-mdsal-common/pom.xml index c160d6360be..edc7685aa4a 100644 --- a/features/odl-controller-mdsal-common/pom.xml +++ b/features/odl-controller-mdsal-common/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10-SNAPSHOT + 6.0.10 ../single-feature-parent diff --git a/features/odl-controller-scala/pom.xml b/features/odl-controller-scala/pom.xml index ff8af71893f..72ce6f74a65 100644 --- a/features/odl-controller-scala/pom.xml +++ b/features/odl-controller-scala/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10-SNAPSHOT + 6.0.10 ../single-feature-parent diff --git a/features/odl-jolokia/pom.xml b/features/odl-jolokia/pom.xml index 1a3c9642493..cc09b267df5 100644 --- a/features/odl-jolokia/pom.xml +++ b/features/odl-jolokia/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10-SNAPSHOT + 6.0.10 ../single-feature-parent diff --git a/features/odl-mdsal-benchmark/pom.xml b/features/odl-mdsal-benchmark/pom.xml index 21b1724e3fa..e6997a2dd9c 100644 --- a/features/odl-mdsal-benchmark/pom.xml +++ b/features/odl-mdsal-benchmark/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10-SNAPSHOT + 6.0.10 ../single-feature-parent diff --git a/features/odl-mdsal-broker/pom.xml b/features/odl-mdsal-broker/pom.xml index 1108421ca99..d252eab32c7 100644 --- a/features/odl-mdsal-broker/pom.xml +++ b/features/odl-mdsal-broker/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10-SNAPSHOT + 6.0.10 ../single-feature-parent diff --git a/features/odl-mdsal-clustering-commons/pom.xml b/features/odl-mdsal-clustering-commons/pom.xml index af201e97389..709dc8b4f1b 100644 --- a/features/odl-mdsal-clustering-commons/pom.xml +++ b/features/odl-mdsal-clustering-commons/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10-SNAPSHOT + 6.0.10 ../single-feature-parent diff --git a/features/odl-mdsal-distributed-datastore/pom.xml b/features/odl-mdsal-distributed-datastore/pom.xml index e25b38bca08..6313968b4eb 100644 --- a/features/odl-mdsal-distributed-datastore/pom.xml +++ b/features/odl-mdsal-distributed-datastore/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10-SNAPSHOT + 6.0.10 ../single-feature-parent diff --git a/features/odl-mdsal-remoterpc-connector/pom.xml b/features/odl-mdsal-remoterpc-connector/pom.xml index 7b7a45ab80e..3eae84ad517 100644 --- a/features/odl-mdsal-remoterpc-connector/pom.xml +++ b/features/odl-mdsal-remoterpc-connector/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10-SNAPSHOT + 6.0.10 ../single-feature-parent diff --git a/features/odl-toaster/pom.xml b/features/odl-toaster/pom.xml index 226a6c4f16b..38be5b70c4a 100644 --- a/features/odl-toaster/pom.xml +++ b/features/odl-toaster/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10-SNAPSHOT + 6.0.10 ../single-feature-parent diff --git a/features/pom.xml b/features/pom.xml index 3afb08026a6..4dff159c615 100644 --- a/features/pom.xml +++ b/features/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-aggregator - 6.0.10-SNAPSHOT + 6.0.10 pom diff --git a/features/single-feature-parent/pom.xml b/features/single-feature-parent/pom.xml index 245bec33a1c..50de4622d74 100644 --- a/features/single-feature-parent/pom.xml +++ b/features/single-feature-parent/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10-SNAPSHOT + 6.0.10 pom @@ -25,7 +25,7 @@ org.opendaylight.controller bundle-parent - 6.0.10-SNAPSHOT + 6.0.10 pom import diff --git a/jolokia/pom.xml b/jolokia/pom.xml index a4ba83eb3fb..77511f290f5 100644 --- a/jolokia/pom.xml +++ b/jolokia/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller odl-jolokia-osgi - 6.0.10-SNAPSHOT + 6.0.10 jar diff --git a/karaf/pom.xml b/karaf/pom.xml index 65dbfd01acb..6458022dead 100644 --- a/karaf/pom.xml +++ b/karaf/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller controller-test-karaf - 6.0.10-SNAPSHOT + 6.0.10 pom diff --git a/opendaylight/blueprint/pom.xml b/opendaylight/blueprint/pom.xml index c299d4849e4..105b41138ee 100644 --- a/opendaylight/blueprint/pom.xml +++ b/opendaylight/blueprint/pom.xml @@ -20,7 +20,7 @@ blueprint bundle ${project.artifactId} - 6.0.10-SNAPSHOT + 6.0.10 diff --git a/opendaylight/config/netty-event-executor-config/pom.xml b/opendaylight/config/netty-event-executor-config/pom.xml index c0588ae8d40..03f5b59ab22 100644 --- a/opendaylight/config/netty-event-executor-config/pom.xml +++ b/opendaylight/config/netty-event-executor-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller netty-event-executor-config - 0.17.10-SNAPSHOT + 0.17.10 bundle ${project.artifactId} Configuration Wrapper around netty's event executor diff --git a/opendaylight/config/netty-threadgroup-config/pom.xml b/opendaylight/config/netty-threadgroup-config/pom.xml index 2911d4a9130..8265ccd2fb3 100644 --- a/opendaylight/config/netty-threadgroup-config/pom.xml +++ b/opendaylight/config/netty-threadgroup-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller netty-threadgroup-config - 0.17.10-SNAPSHOT + 0.17.10 bundle ${project.artifactId} Configuration Wrapper around netty's event group diff --git a/opendaylight/config/netty-timer-config/pom.xml b/opendaylight/config/netty-timer-config/pom.xml index f7359476025..548aa8b87dd 100644 --- a/opendaylight/config/netty-timer-config/pom.xml +++ b/opendaylight/config/netty-timer-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller netty-timer-config - 0.17.10-SNAPSHOT + 0.17.10 bundle ${project.artifactId} Configuration Wrapper around netty's timer diff --git a/opendaylight/config/pom.xml b/opendaylight/config/pom.xml index 931bc782246..aff6d8a46b6 100644 --- a/opendaylight/config/pom.xml +++ b/opendaylight/config/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller config-aggregator - 0.17.10-SNAPSHOT + 0.17.10 pom diff --git a/opendaylight/config/threadpool-config-api/pom.xml b/opendaylight/config/threadpool-config-api/pom.xml index 741958bbc58..db601bff720 100644 --- a/opendaylight/config/threadpool-config-api/pom.xml +++ b/opendaylight/config/threadpool-config-api/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller threadpool-config-api - 0.17.10-SNAPSHOT + 0.17.10 bundle ${project.artifactId} diff --git a/opendaylight/config/threadpool-config-impl/pom.xml b/opendaylight/config/threadpool-config-impl/pom.xml index 1f055a65f5b..f0100e47d08 100644 --- a/opendaylight/config/threadpool-config-impl/pom.xml +++ b/opendaylight/config/threadpool-config-impl/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller threadpool-config-impl - 0.17.10-SNAPSHOT + 0.17.10 bundle ${project.artifactId} @@ -20,7 +20,7 @@ org.opendaylight.controller controller-artifacts - 6.0.10-SNAPSHOT + 6.0.10 pom import diff --git a/opendaylight/md-sal/cds-access-api/pom.xml b/opendaylight/md-sal/cds-access-api/pom.xml index 8a309bbc46d..8ba4c85dbef 100644 --- a/opendaylight/md-sal/cds-access-api/pom.xml +++ b/opendaylight/md-sal/cds-access-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10-SNAPSHOT + 6.0.10 ../parent diff --git a/opendaylight/md-sal/cds-access-client/pom.xml b/opendaylight/md-sal/cds-access-client/pom.xml index c07bc338b27..0264dad2d4b 100644 --- a/opendaylight/md-sal/cds-access-client/pom.xml +++ b/opendaylight/md-sal/cds-access-client/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10-SNAPSHOT + 6.0.10 ../parent diff --git a/opendaylight/md-sal/cds-dom-api/pom.xml b/opendaylight/md-sal/cds-dom-api/pom.xml index cc1fb8cb889..f6f70c0c2fa 100644 --- a/opendaylight/md-sal/cds-dom-api/pom.xml +++ b/opendaylight/md-sal/cds-dom-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10-SNAPSHOT + 6.0.10 ../parent diff --git a/opendaylight/md-sal/cds-mgmt-api/pom.xml b/opendaylight/md-sal/cds-mgmt-api/pom.xml index 772dce9ccc9..9061d8296f4 100644 --- a/opendaylight/md-sal/cds-mgmt-api/pom.xml +++ b/opendaylight/md-sal/cds-mgmt-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10-SNAPSHOT + 6.0.10 ../parent diff --git a/opendaylight/md-sal/eos-dom-akka/pom.xml b/opendaylight/md-sal/eos-dom-akka/pom.xml index 2756a3cb08d..fd74b185051 100644 --- a/opendaylight/md-sal/eos-dom-akka/pom.xml +++ b/opendaylight/md-sal/eos-dom-akka/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10-SNAPSHOT + 6.0.10 ../parent diff --git a/opendaylight/md-sal/mdsal-it-base/pom.xml b/opendaylight/md-sal/mdsal-it-base/pom.xml index d546fa5be5f..4bcd8f2e2da 100644 --- a/opendaylight/md-sal/mdsal-it-base/pom.xml +++ b/opendaylight/md-sal/mdsal-it-base/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-it-base - 6.0.10-SNAPSHOT + 6.0.10 bundle diff --git a/opendaylight/md-sal/mdsal-it-parent/pom.xml b/opendaylight/md-sal/mdsal-it-parent/pom.xml index 4875e2c5f49..ac249d56eaa 100644 --- a/opendaylight/md-sal/mdsal-it-parent/pom.xml +++ b/opendaylight/md-sal/mdsal-it-parent/pom.xml @@ -19,7 +19,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-it-parent - 6.0.10-SNAPSHOT + 6.0.10 pom @@ -37,7 +37,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller controller-artifacts - 6.0.10-SNAPSHOT + 6.0.10 pom import diff --git a/opendaylight/md-sal/parent/pom.xml b/opendaylight/md-sal/parent/pom.xml index e67e2ad45e2..9dcc135a029 100644 --- a/opendaylight/md-sal/parent/pom.xml +++ b/opendaylight/md-sal/parent/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10-SNAPSHOT + 6.0.10 pom @@ -25,7 +25,7 @@ org.opendaylight.controller bundle-parent - 6.0.10-SNAPSHOT + 6.0.10 pom import diff --git a/opendaylight/md-sal/pom.xml b/opendaylight/md-sal/pom.xml index 4273453277c..01422fb3b6b 100644 --- a/opendaylight/md-sal/pom.xml +++ b/opendaylight/md-sal/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller mdsal-aggregator - 6.0.10-SNAPSHOT + 6.0.10 pom diff --git a/opendaylight/md-sal/sal-akka-raft-example/pom.xml b/opendaylight/md-sal/sal-akka-raft-example/pom.xml index b36e2bc67dc..5bd0e895367 100644 --- a/opendaylight/md-sal/sal-akka-raft-example/pom.xml +++ b/opendaylight/md-sal/sal-akka-raft-example/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10-SNAPSHOT + 6.0.10 ../parent diff --git a/opendaylight/md-sal/sal-akka-raft/pom.xml b/opendaylight/md-sal/sal-akka-raft/pom.xml index d0c5cfe6d7a..8b786ede017 100644 --- a/opendaylight/md-sal/sal-akka-raft/pom.xml +++ b/opendaylight/md-sal/sal-akka-raft/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10-SNAPSHOT + 6.0.10 ../parent diff --git a/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml b/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml index 03c3f89d751..9f98b5bec76 100644 --- a/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml +++ b/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.10-SNAPSHOT + 6.0.10 ../parent diff --git a/opendaylight/md-sal/sal-binding-it/pom.xml b/opendaylight/md-sal/sal-binding-it/pom.xml index 47c0ee44fbe..3b23d809332 100644 --- a/opendaylight/md-sal/sal-binding-it/pom.xml +++ b/opendaylight/md-sal/sal-binding-it/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-it-parent - 6.0.10-SNAPSHOT + 6.0.10 ../mdsal-it-parent sal-binding-it diff --git a/opendaylight/md-sal/sal-cluster-admin-api/pom.xml b/opendaylight/md-sal/sal-cluster-admin-api/pom.xml index eab5d17d1f1..fd939194759 100644 --- a/opendaylight/md-sal/sal-cluster-admin-api/pom.xml +++ b/opendaylight/md-sal/sal-cluster-admin-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10-SNAPSHOT + 6.0.10 ../parent diff --git a/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml b/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml index e9e6fddc095..176e83c0b7f 100644 --- a/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml +++ b/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10-SNAPSHOT + 6.0.10 ../parent diff --git a/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml b/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml index f5149e5f229..316429bd518 100644 --- a/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml +++ b/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml @@ -5,7 +5,7 @@ mdsal-parent org.opendaylight.controller - 6.0.10-SNAPSHOT + 6.0.10 ../parent/pom.xml 4.0.0 diff --git a/opendaylight/md-sal/sal-clustering-commons/pom.xml b/opendaylight/md-sal/sal-clustering-commons/pom.xml index 89a2407f6c6..209b1659bce 100644 --- a/opendaylight/md-sal/sal-clustering-commons/pom.xml +++ b/opendaylight/md-sal/sal-clustering-commons/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10-SNAPSHOT + 6.0.10 ../parent diff --git a/opendaylight/md-sal/sal-clustering-config/pom.xml b/opendaylight/md-sal/sal-clustering-config/pom.xml index 8f913c467f1..fb423d9778e 100644 --- a/opendaylight/md-sal/sal-clustering-config/pom.xml +++ b/opendaylight/md-sal/sal-clustering-config/pom.xml @@ -18,7 +18,7 @@ org.opendaylight.controller sal-clustering-config - 6.0.10-SNAPSHOT + 6.0.10 jar Configuration files for md-sal clustering diff --git a/opendaylight/md-sal/sal-common-util/pom.xml b/opendaylight/md-sal/sal-common-util/pom.xml index 00077978854..d6fc821aee6 100644 --- a/opendaylight/md-sal/sal-common-util/pom.xml +++ b/opendaylight/md-sal/sal-common-util/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10-SNAPSHOT + 6.0.10 ../parent diff --git a/opendaylight/md-sal/sal-distributed-datastore/pom.xml b/opendaylight/md-sal/sal-distributed-datastore/pom.xml index ee19bbe6830..afec611fa91 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/pom.xml +++ b/opendaylight/md-sal/sal-distributed-datastore/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10-SNAPSHOT + 6.0.10 ../parent diff --git a/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml b/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml index 77326006f05..3ebffbe6498 100644 --- a/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml +++ b/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10-SNAPSHOT + 6.0.10 ../parent diff --git a/opendaylight/md-sal/sal-remoterpc-connector/pom.xml b/opendaylight/md-sal/sal-remoterpc-connector/pom.xml index 719a9de81c3..41fa24881e1 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/pom.xml +++ b/opendaylight/md-sal/sal-remoterpc-connector/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10-SNAPSHOT + 6.0.10 ../parent diff --git a/opendaylight/md-sal/sal-test-model/pom.xml b/opendaylight/md-sal/sal-test-model/pom.xml index 49bc4ed7f87..8ebd2aeec4d 100644 --- a/opendaylight/md-sal/sal-test-model/pom.xml +++ b/opendaylight/md-sal/sal-test-model/pom.xml @@ -6,7 +6,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10-SNAPSHOT + 6.0.10 ../parent diff --git a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml index e81c5bc3c65..a97a13c875a 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller.samples clustering-it-config - 6.0.10-SNAPSHOT + 6.0.10 jar diff --git a/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml index 88076a78b05..1afa8de3293 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml @@ -12,7 +12,7 @@ mdsal-parent org.opendaylight.controller - 6.0.10-SNAPSHOT + 6.0.10 ../../../parent/pom.xml 4.0.0 diff --git a/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml index ba537eb7f45..8c05b8dce77 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10-SNAPSHOT + 6.0.10 ../../../parent diff --git a/opendaylight/md-sal/samples/clustering-test-app/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/pom.xml index e1659238899..9088c7c76b1 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller.samples clustering-test-app - 6.0.10-SNAPSHOT + 6.0.10 pom diff --git a/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml index 0f435051ea4..0f55934be98 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10-SNAPSHOT + 6.0.10 ../../../parent diff --git a/opendaylight/md-sal/samples/pom.xml b/opendaylight/md-sal/samples/pom.xml index 2af2193784f..a46ef92799d 100644 --- a/opendaylight/md-sal/samples/pom.xml +++ b/opendaylight/md-sal/samples/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller.samples samples-aggregator - 6.0.10-SNAPSHOT + 6.0.10 pom diff --git a/opendaylight/md-sal/samples/toaster-consumer/pom.xml b/opendaylight/md-sal/samples/toaster-consumer/pom.xml index c312b3de0c0..f5487eee028 100644 --- a/opendaylight/md-sal/samples/toaster-consumer/pom.xml +++ b/opendaylight/md-sal/samples/toaster-consumer/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10-SNAPSHOT + 6.0.10 ../../parent diff --git a/opendaylight/md-sal/samples/toaster-it/pom.xml b/opendaylight/md-sal/samples/toaster-it/pom.xml index 9ac56add781..87a24d6caee 100644 --- a/opendaylight/md-sal/samples/toaster-it/pom.xml +++ b/opendaylight/md-sal/samples/toaster-it/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.controller mdsal-it-parent - 6.0.10-SNAPSHOT + 6.0.10 ../../mdsal-it-parent sample-toaster-it diff --git a/opendaylight/md-sal/samples/toaster-provider/pom.xml b/opendaylight/md-sal/samples/toaster-provider/pom.xml index 699f209b71b..c42582f83a8 100644 --- a/opendaylight/md-sal/samples/toaster-provider/pom.xml +++ b/opendaylight/md-sal/samples/toaster-provider/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10-SNAPSHOT + 6.0.10 ../../parent diff --git a/opendaylight/md-sal/samples/toaster/pom.xml b/opendaylight/md-sal/samples/toaster/pom.xml index fb8a9cffa36..227f1c4b539 100644 --- a/opendaylight/md-sal/samples/toaster/pom.xml +++ b/opendaylight/md-sal/samples/toaster/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10-SNAPSHOT + 6.0.10 ../../parent diff --git a/pom.xml b/pom.xml index f95d55433ad..fe2002d15cd 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller releasepom - 6.0.10-SNAPSHOT + 6.0.10 pom controller From af9ddf6185d97cfafda739ddd0f89d7b205f691e Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 31 Oct 2023 09:34:14 +0100 Subject: [PATCH 69/69] Bump versions to 6.0.11-SNAPSHOT This starts the next development iteration. Change-Id: I27b9ec2e053b70f91fad2d5046f6ee1f13668287 Signed-off-by: Robert Varga --- akka/pom.xml | 2 +- akka/repackaged-akka-jar/pom.xml | 2 +- akka/repackaged-akka/pom.xml | 2 +- artifacts/pom.xml | 12 ++++++------ benchmark/api/pom.xml | 2 +- benchmark/dsbenchmark/pom.xml | 2 +- benchmark/ntfbenchmark/pom.xml | 2 +- benchmark/pom.xml | 2 +- benchmark/rpcbenchmark/pom.xml | 2 +- bundle-parent/pom.xml | 4 ++-- docs/pom.xml | 2 +- features/features-controller-experimental/pom.xml | 2 +- features/features-controller-testing/pom.xml | 2 +- features/features-controller/pom.xml | 2 +- features/odl-clustering-test-app/pom.xml | 2 +- features/odl-controller-akka/pom.xml | 2 +- features/odl-controller-blueprint/pom.xml | 2 +- features/odl-controller-broker-local/pom.xml | 2 +- features/odl-controller-exp-netty-config/pom.xml | 2 +- features/odl-controller-mdsal-common/pom.xml | 2 +- features/odl-controller-scala/pom.xml | 2 +- features/odl-jolokia/pom.xml | 2 +- features/odl-mdsal-benchmark/pom.xml | 2 +- features/odl-mdsal-broker/pom.xml | 2 +- features/odl-mdsal-clustering-commons/pom.xml | 2 +- features/odl-mdsal-distributed-datastore/pom.xml | 2 +- features/odl-mdsal-remoterpc-connector/pom.xml | 2 +- features/odl-toaster/pom.xml | 2 +- features/pom.xml | 2 +- features/single-feature-parent/pom.xml | 4 ++-- jolokia/pom.xml | 2 +- karaf/pom.xml | 2 +- opendaylight/blueprint/pom.xml | 2 +- .../config/netty-event-executor-config/pom.xml | 2 +- opendaylight/config/netty-threadgroup-config/pom.xml | 2 +- opendaylight/config/netty-timer-config/pom.xml | 2 +- opendaylight/config/pom.xml | 2 +- opendaylight/config/threadpool-config-api/pom.xml | 2 +- opendaylight/config/threadpool-config-impl/pom.xml | 4 ++-- opendaylight/md-sal/cds-access-api/pom.xml | 2 +- opendaylight/md-sal/cds-access-client/pom.xml | 2 +- opendaylight/md-sal/cds-dom-api/pom.xml | 2 +- opendaylight/md-sal/cds-mgmt-api/pom.xml | 2 +- opendaylight/md-sal/eos-dom-akka/pom.xml | 2 +- opendaylight/md-sal/mdsal-it-base/pom.xml | 2 +- opendaylight/md-sal/mdsal-it-parent/pom.xml | 4 ++-- opendaylight/md-sal/parent/pom.xml | 4 ++-- opendaylight/md-sal/pom.xml | 2 +- opendaylight/md-sal/sal-akka-raft-example/pom.xml | 2 +- opendaylight/md-sal/sal-akka-raft/pom.xml | 2 +- .../md-sal/sal-akka-segmented-journal/pom.xml | 2 +- opendaylight/md-sal/sal-binding-it/pom.xml | 2 +- opendaylight/md-sal/sal-cluster-admin-api/pom.xml | 2 +- opendaylight/md-sal/sal-cluster-admin-impl/pom.xml | 2 +- .../md-sal/sal-cluster-admin-karaf-cli/pom.xml | 2 +- opendaylight/md-sal/sal-clustering-commons/pom.xml | 2 +- opendaylight/md-sal/sal-clustering-config/pom.xml | 2 +- opendaylight/md-sal/sal-common-util/pom.xml | 2 +- .../md-sal/sal-distributed-datastore/pom.xml | 2 +- .../md-sal/sal-dummy-distributed-datastore/pom.xml | 2 +- opendaylight/md-sal/sal-remoterpc-connector/pom.xml | 2 +- opendaylight/md-sal/sal-test-model/pom.xml | 2 +- .../clustering-test-app/configuration/pom.xml | 2 +- .../samples/clustering-test-app/karaf-cli/pom.xml | 2 +- .../md-sal/samples/clustering-test-app/model/pom.xml | 2 +- .../md-sal/samples/clustering-test-app/pom.xml | 2 +- .../samples/clustering-test-app/provider/pom.xml | 2 +- opendaylight/md-sal/samples/pom.xml | 2 +- opendaylight/md-sal/samples/toaster-consumer/pom.xml | 2 +- opendaylight/md-sal/samples/toaster-it/pom.xml | 2 +- opendaylight/md-sal/samples/toaster-provider/pom.xml | 2 +- opendaylight/md-sal/samples/toaster/pom.xml | 2 +- pom.xml | 2 +- 73 files changed, 83 insertions(+), 83 deletions(-) diff --git a/akka/pom.xml b/akka/pom.xml index 1fe9fb6ec1a..44e07463bc1 100644 --- a/akka/pom.xml +++ b/akka/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller akka-aggregator - 6.0.10 + 6.0.11-SNAPSHOT pom diff --git a/akka/repackaged-akka-jar/pom.xml b/akka/repackaged-akka-jar/pom.xml index b26cbed14a3..c54aa51f147 100644 --- a/akka/repackaged-akka-jar/pom.xml +++ b/akka/repackaged-akka-jar/pom.xml @@ -20,7 +20,7 @@ org.opendaylight.controller repackaged-akka-jar jar - 6.0.10 + 6.0.11-SNAPSHOT ${project.artifactId} diff --git a/akka/repackaged-akka/pom.xml b/akka/repackaged-akka/pom.xml index 773733a0819..2c114dd64ab 100644 --- a/akka/repackaged-akka/pom.xml +++ b/akka/repackaged-akka/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.controller bundle-parent - 6.0.10 + 6.0.11-SNAPSHOT ../../bundle-parent diff --git a/artifacts/pom.xml b/artifacts/pom.xml index 61a66d73bb2..f3bc1cba790 100644 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -20,7 +20,7 @@ org.opendaylight.controller controller-artifacts - 6.0.10 + 6.0.11-SNAPSHOT pom @@ -395,27 +395,27 @@ ${project.groupId} netty-event-executor-config - 0.17.10 + 0.17.11-SNAPSHOT ${project.groupId} netty-threadgroup-config - 0.17.10 + 0.17.11-SNAPSHOT ${project.groupId} netty-timer-config - 0.17.10 + 0.17.11-SNAPSHOT ${project.groupId} threadpool-config-api - 0.17.10 + 0.17.11-SNAPSHOT ${project.groupId} threadpool-config-impl - 0.17.10 + 0.17.11-SNAPSHOT ${project.groupId} diff --git a/benchmark/api/pom.xml b/benchmark/api/pom.xml index 80c2c9a0d9a..c0326594535 100644 --- a/benchmark/api/pom.xml +++ b/benchmark/api/pom.xml @@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.10 + 6.0.11-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/benchmark/dsbenchmark/pom.xml b/benchmark/dsbenchmark/pom.xml index 6962c70c8f6..2aaf92f6a10 100644 --- a/benchmark/dsbenchmark/pom.xml +++ b/benchmark/dsbenchmark/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.10 + 6.0.11-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/benchmark/ntfbenchmark/pom.xml b/benchmark/ntfbenchmark/pom.xml index a5baf3e6b2d..db254528354 100644 --- a/benchmark/ntfbenchmark/pom.xml +++ b/benchmark/ntfbenchmark/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.10 + 6.0.11-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 2c5276fc972..9e7c2458e1d 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -16,7 +16,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller benchmark-aggregator - 6.0.10 + 6.0.11-SNAPSHOT pom diff --git a/benchmark/rpcbenchmark/pom.xml b/benchmark/rpcbenchmark/pom.xml index 0b712d9bf58..9e382ab3dab 100644 --- a/benchmark/rpcbenchmark/pom.xml +++ b/benchmark/rpcbenchmark/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.10 + 6.0.11-SNAPSHOT ../../opendaylight/md-sal/parent diff --git a/bundle-parent/pom.xml b/bundle-parent/pom.xml index bfd595f0d6f..c043ecfd88f 100644 --- a/bundle-parent/pom.xml +++ b/bundle-parent/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller bundle-parent - 6.0.10 + 6.0.11-SNAPSHOT pom @@ -25,7 +25,7 @@ org.opendaylight.controller controller-artifacts - 6.0.10 + 6.0.11-SNAPSHOT pom import diff --git a/docs/pom.xml b/docs/pom.xml index b3f174bbaae..32aaf065c97 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -19,7 +19,7 @@ org.opendaylight.controller controller-docs jar - 6.0.10 + 6.0.11-SNAPSHOT ${project.artifactId} Controller documentation diff --git a/features/features-controller-experimental/pom.xml b/features/features-controller-experimental/pom.xml index f846d448759..f3f6e0f11f6 100644 --- a/features/features-controller-experimental/pom.xml +++ b/features/features-controller-experimental/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-controller-experimental - 6.0.10 + 6.0.11-SNAPSHOT feature OpenDaylight :: Controller :: Experimental Features Controller Experimental Features diff --git a/features/features-controller-testing/pom.xml b/features/features-controller-testing/pom.xml index 96684cf6de4..b12fc3dafd8 100644 --- a/features/features-controller-testing/pom.xml +++ b/features/features-controller-testing/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-controller-testing - 6.0.10 + 6.0.11-SNAPSHOT feature OpenDaylight :: Controller :: Features to support CSIT testing Controller CSIT Features diff --git a/features/features-controller/pom.xml b/features/features-controller/pom.xml index 539b2d9ff8a..c8fd11b2409 100644 --- a/features/features-controller/pom.xml +++ b/features/features-controller/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-controller - 6.0.10 + 6.0.11-SNAPSHOT feature OpenDaylight :: Controller :: Features Controller Production Features diff --git a/features/odl-clustering-test-app/pom.xml b/features/odl-clustering-test-app/pom.xml index b8cafa3daeb..73b6544346b 100644 --- a/features/odl-clustering-test-app/pom.xml +++ b/features/odl-clustering-test-app/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10 + 6.0.11-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-akka/pom.xml b/features/odl-controller-akka/pom.xml index e5be5b7bbcf..275ea97628a 100644 --- a/features/odl-controller-akka/pom.xml +++ b/features/odl-controller-akka/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10 + 6.0.11-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-blueprint/pom.xml b/features/odl-controller-blueprint/pom.xml index 893f43e312f..cc6e11fc731 100644 --- a/features/odl-controller-blueprint/pom.xml +++ b/features/odl-controller-blueprint/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10 + 6.0.11-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-broker-local/pom.xml b/features/odl-controller-broker-local/pom.xml index c04871fee80..85974f01758 100644 --- a/features/odl-controller-broker-local/pom.xml +++ b/features/odl-controller-broker-local/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10 + 6.0.11-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-exp-netty-config/pom.xml b/features/odl-controller-exp-netty-config/pom.xml index f3b1a1920db..0ab1af729f0 100644 --- a/features/odl-controller-exp-netty-config/pom.xml +++ b/features/odl-controller-exp-netty-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10 + 6.0.11-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-mdsal-common/pom.xml b/features/odl-controller-mdsal-common/pom.xml index edc7685aa4a..0858a1255bb 100644 --- a/features/odl-controller-mdsal-common/pom.xml +++ b/features/odl-controller-mdsal-common/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10 + 6.0.11-SNAPSHOT ../single-feature-parent diff --git a/features/odl-controller-scala/pom.xml b/features/odl-controller-scala/pom.xml index 72ce6f74a65..dbb88a284f2 100644 --- a/features/odl-controller-scala/pom.xml +++ b/features/odl-controller-scala/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10 + 6.0.11-SNAPSHOT ../single-feature-parent diff --git a/features/odl-jolokia/pom.xml b/features/odl-jolokia/pom.xml index cc09b267df5..fbbb8b22293 100644 --- a/features/odl-jolokia/pom.xml +++ b/features/odl-jolokia/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10 + 6.0.11-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-benchmark/pom.xml b/features/odl-mdsal-benchmark/pom.xml index e6997a2dd9c..d219ecdfdef 100644 --- a/features/odl-mdsal-benchmark/pom.xml +++ b/features/odl-mdsal-benchmark/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10 + 6.0.11-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-broker/pom.xml b/features/odl-mdsal-broker/pom.xml index d252eab32c7..c754790498d 100644 --- a/features/odl-mdsal-broker/pom.xml +++ b/features/odl-mdsal-broker/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10 + 6.0.11-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-clustering-commons/pom.xml b/features/odl-mdsal-clustering-commons/pom.xml index 709dc8b4f1b..824a7af6f91 100644 --- a/features/odl-mdsal-clustering-commons/pom.xml +++ b/features/odl-mdsal-clustering-commons/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10 + 6.0.11-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-distributed-datastore/pom.xml b/features/odl-mdsal-distributed-datastore/pom.xml index 6313968b4eb..73ac8de366f 100644 --- a/features/odl-mdsal-distributed-datastore/pom.xml +++ b/features/odl-mdsal-distributed-datastore/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10 + 6.0.11-SNAPSHOT ../single-feature-parent diff --git a/features/odl-mdsal-remoterpc-connector/pom.xml b/features/odl-mdsal-remoterpc-connector/pom.xml index 3eae84ad517..3156be233d7 100644 --- a/features/odl-mdsal-remoterpc-connector/pom.xml +++ b/features/odl-mdsal-remoterpc-connector/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10 + 6.0.11-SNAPSHOT ../single-feature-parent diff --git a/features/odl-toaster/pom.xml b/features/odl-toaster/pom.xml index 38be5b70c4a..dd362562e78 100644 --- a/features/odl-toaster/pom.xml +++ b/features/odl-toaster/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10 + 6.0.11-SNAPSHOT ../single-feature-parent diff --git a/features/pom.xml b/features/pom.xml index 4dff159c615..9f62d68f152 100644 --- a/features/pom.xml +++ b/features/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller features-aggregator - 6.0.10 + 6.0.11-SNAPSHOT pom diff --git a/features/single-feature-parent/pom.xml b/features/single-feature-parent/pom.xml index 50de4622d74..99c8e57596b 100644 --- a/features/single-feature-parent/pom.xml +++ b/features/single-feature-parent/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller single-feature-parent - 6.0.10 + 6.0.11-SNAPSHOT pom @@ -25,7 +25,7 @@ org.opendaylight.controller bundle-parent - 6.0.10 + 6.0.11-SNAPSHOT pom import diff --git a/jolokia/pom.xml b/jolokia/pom.xml index 77511f290f5..c70c67f5cde 100644 --- a/jolokia/pom.xml +++ b/jolokia/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller odl-jolokia-osgi - 6.0.10 + 6.0.11-SNAPSHOT jar diff --git a/karaf/pom.xml b/karaf/pom.xml index 6458022dead..8cbb5b8c4d6 100644 --- a/karaf/pom.xml +++ b/karaf/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller controller-test-karaf - 6.0.10 + 6.0.11-SNAPSHOT pom diff --git a/opendaylight/blueprint/pom.xml b/opendaylight/blueprint/pom.xml index 105b41138ee..931e3631e81 100644 --- a/opendaylight/blueprint/pom.xml +++ b/opendaylight/blueprint/pom.xml @@ -20,7 +20,7 @@ blueprint bundle ${project.artifactId} - 6.0.10 + 6.0.11-SNAPSHOT diff --git a/opendaylight/config/netty-event-executor-config/pom.xml b/opendaylight/config/netty-event-executor-config/pom.xml index 03f5b59ab22..927be1c5a8d 100644 --- a/opendaylight/config/netty-event-executor-config/pom.xml +++ b/opendaylight/config/netty-event-executor-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller netty-event-executor-config - 0.17.10 + 0.17.11-SNAPSHOT bundle ${project.artifactId} Configuration Wrapper around netty's event executor diff --git a/opendaylight/config/netty-threadgroup-config/pom.xml b/opendaylight/config/netty-threadgroup-config/pom.xml index 8265ccd2fb3..f4b213650b7 100644 --- a/opendaylight/config/netty-threadgroup-config/pom.xml +++ b/opendaylight/config/netty-threadgroup-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller netty-threadgroup-config - 0.17.10 + 0.17.11-SNAPSHOT bundle ${project.artifactId} Configuration Wrapper around netty's event group diff --git a/opendaylight/config/netty-timer-config/pom.xml b/opendaylight/config/netty-timer-config/pom.xml index 548aa8b87dd..c97b8b70a82 100644 --- a/opendaylight/config/netty-timer-config/pom.xml +++ b/opendaylight/config/netty-timer-config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller netty-timer-config - 0.17.10 + 0.17.11-SNAPSHOT bundle ${project.artifactId} Configuration Wrapper around netty's timer diff --git a/opendaylight/config/pom.xml b/opendaylight/config/pom.xml index aff6d8a46b6..9c533ab9e57 100644 --- a/opendaylight/config/pom.xml +++ b/opendaylight/config/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller config-aggregator - 0.17.10 + 0.17.11-SNAPSHOT pom diff --git a/opendaylight/config/threadpool-config-api/pom.xml b/opendaylight/config/threadpool-config-api/pom.xml index db601bff720..cb8d9fcf646 100644 --- a/opendaylight/config/threadpool-config-api/pom.xml +++ b/opendaylight/config/threadpool-config-api/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller threadpool-config-api - 0.17.10 + 0.17.11-SNAPSHOT bundle ${project.artifactId} diff --git a/opendaylight/config/threadpool-config-impl/pom.xml b/opendaylight/config/threadpool-config-impl/pom.xml index f0100e47d08..1ac8703663b 100644 --- a/opendaylight/config/threadpool-config-impl/pom.xml +++ b/opendaylight/config/threadpool-config-impl/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller threadpool-config-impl - 0.17.10 + 0.17.11-SNAPSHOT bundle ${project.artifactId} @@ -20,7 +20,7 @@ org.opendaylight.controller controller-artifacts - 6.0.10 + 6.0.11-SNAPSHOT pom import diff --git a/opendaylight/md-sal/cds-access-api/pom.xml b/opendaylight/md-sal/cds-access-api/pom.xml index 8ba4c85dbef..41a43aa2ff6 100644 --- a/opendaylight/md-sal/cds-access-api/pom.xml +++ b/opendaylight/md-sal/cds-access-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10 + 6.0.11-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/cds-access-client/pom.xml b/opendaylight/md-sal/cds-access-client/pom.xml index 0264dad2d4b..d5eb5dbc608 100644 --- a/opendaylight/md-sal/cds-access-client/pom.xml +++ b/opendaylight/md-sal/cds-access-client/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10 + 6.0.11-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/cds-dom-api/pom.xml b/opendaylight/md-sal/cds-dom-api/pom.xml index f6f70c0c2fa..0b5098f9030 100644 --- a/opendaylight/md-sal/cds-dom-api/pom.xml +++ b/opendaylight/md-sal/cds-dom-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10 + 6.0.11-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/cds-mgmt-api/pom.xml b/opendaylight/md-sal/cds-mgmt-api/pom.xml index 9061d8296f4..9cf308acaad 100644 --- a/opendaylight/md-sal/cds-mgmt-api/pom.xml +++ b/opendaylight/md-sal/cds-mgmt-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10 + 6.0.11-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/eos-dom-akka/pom.xml b/opendaylight/md-sal/eos-dom-akka/pom.xml index fd74b185051..def2d7132d5 100644 --- a/opendaylight/md-sal/eos-dom-akka/pom.xml +++ b/opendaylight/md-sal/eos-dom-akka/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10 + 6.0.11-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/mdsal-it-base/pom.xml b/opendaylight/md-sal/mdsal-it-base/pom.xml index 4bcd8f2e2da..c700e069871 100644 --- a/opendaylight/md-sal/mdsal-it-base/pom.xml +++ b/opendaylight/md-sal/mdsal-it-base/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-it-base - 6.0.10 + 6.0.11-SNAPSHOT bundle diff --git a/opendaylight/md-sal/mdsal-it-parent/pom.xml b/opendaylight/md-sal/mdsal-it-parent/pom.xml index ac249d56eaa..528dcf8d050 100644 --- a/opendaylight/md-sal/mdsal-it-parent/pom.xml +++ b/opendaylight/md-sal/mdsal-it-parent/pom.xml @@ -19,7 +19,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-it-parent - 6.0.10 + 6.0.11-SNAPSHOT pom @@ -37,7 +37,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller controller-artifacts - 6.0.10 + 6.0.11-SNAPSHOT pom import diff --git a/opendaylight/md-sal/parent/pom.xml b/opendaylight/md-sal/parent/pom.xml index 9dcc135a029..99093960655 100644 --- a/opendaylight/md-sal/parent/pom.xml +++ b/opendaylight/md-sal/parent/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10 + 6.0.11-SNAPSHOT pom @@ -25,7 +25,7 @@ org.opendaylight.controller bundle-parent - 6.0.10 + 6.0.11-SNAPSHOT pom import diff --git a/opendaylight/md-sal/pom.xml b/opendaylight/md-sal/pom.xml index 01422fb3b6b..76c183c82a1 100644 --- a/opendaylight/md-sal/pom.xml +++ b/opendaylight/md-sal/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller mdsal-aggregator - 6.0.10 + 6.0.11-SNAPSHOT pom diff --git a/opendaylight/md-sal/sal-akka-raft-example/pom.xml b/opendaylight/md-sal/sal-akka-raft-example/pom.xml index 5bd0e895367..abc7811ac95 100644 --- a/opendaylight/md-sal/sal-akka-raft-example/pom.xml +++ b/opendaylight/md-sal/sal-akka-raft-example/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10 + 6.0.11-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-akka-raft/pom.xml b/opendaylight/md-sal/sal-akka-raft/pom.xml index 8b786ede017..b4e7780905b 100644 --- a/opendaylight/md-sal/sal-akka-raft/pom.xml +++ b/opendaylight/md-sal/sal-akka-raft/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10 + 6.0.11-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml b/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml index 9f98b5bec76..add066f12d6 100644 --- a/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml +++ b/opendaylight/md-sal/sal-akka-segmented-journal/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-parent - 6.0.10 + 6.0.11-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-binding-it/pom.xml b/opendaylight/md-sal/sal-binding-it/pom.xml index 3b23d809332..60947a0cc45 100644 --- a/opendaylight/md-sal/sal-binding-it/pom.xml +++ b/opendaylight/md-sal/sal-binding-it/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-it-parent - 6.0.10 + 6.0.11-SNAPSHOT ../mdsal-it-parent sal-binding-it diff --git a/opendaylight/md-sal/sal-cluster-admin-api/pom.xml b/opendaylight/md-sal/sal-cluster-admin-api/pom.xml index fd939194759..eb5b7fe0023 100644 --- a/opendaylight/md-sal/sal-cluster-admin-api/pom.xml +++ b/opendaylight/md-sal/sal-cluster-admin-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10 + 6.0.11-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml b/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml index 176e83c0b7f..3fdc6a372a9 100644 --- a/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml +++ b/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10 + 6.0.11-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml b/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml index 316429bd518..405e93cce6e 100644 --- a/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml +++ b/opendaylight/md-sal/sal-cluster-admin-karaf-cli/pom.xml @@ -5,7 +5,7 @@ mdsal-parent org.opendaylight.controller - 6.0.10 + 6.0.11-SNAPSHOT ../parent/pom.xml 4.0.0 diff --git a/opendaylight/md-sal/sal-clustering-commons/pom.xml b/opendaylight/md-sal/sal-clustering-commons/pom.xml index 209b1659bce..4509b341cb8 100644 --- a/opendaylight/md-sal/sal-clustering-commons/pom.xml +++ b/opendaylight/md-sal/sal-clustering-commons/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10 + 6.0.11-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-clustering-config/pom.xml b/opendaylight/md-sal/sal-clustering-config/pom.xml index fb423d9778e..6534bcd79bc 100644 --- a/opendaylight/md-sal/sal-clustering-config/pom.xml +++ b/opendaylight/md-sal/sal-clustering-config/pom.xml @@ -18,7 +18,7 @@ org.opendaylight.controller sal-clustering-config - 6.0.10 + 6.0.11-SNAPSHOT jar Configuration files for md-sal clustering diff --git a/opendaylight/md-sal/sal-common-util/pom.xml b/opendaylight/md-sal/sal-common-util/pom.xml index d6fc821aee6..dd8e8a4e7ce 100644 --- a/opendaylight/md-sal/sal-common-util/pom.xml +++ b/opendaylight/md-sal/sal-common-util/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10 + 6.0.11-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-distributed-datastore/pom.xml b/opendaylight/md-sal/sal-distributed-datastore/pom.xml index afec611fa91..7e82ee21a56 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/pom.xml +++ b/opendaylight/md-sal/sal-distributed-datastore/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10 + 6.0.11-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml b/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml index 3ebffbe6498..863d90acb96 100644 --- a/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml +++ b/opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10 + 6.0.11-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-remoterpc-connector/pom.xml b/opendaylight/md-sal/sal-remoterpc-connector/pom.xml index 41fa24881e1..fc6118673f7 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/pom.xml +++ b/opendaylight/md-sal/sal-remoterpc-connector/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10 + 6.0.11-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/sal-test-model/pom.xml b/opendaylight/md-sal/sal-test-model/pom.xml index 8ebd2aeec4d..53e69158f49 100644 --- a/opendaylight/md-sal/sal-test-model/pom.xml +++ b/opendaylight/md-sal/sal-test-model/pom.xml @@ -6,7 +6,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10 + 6.0.11-SNAPSHOT ../parent diff --git a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml index a97a13c875a..00731d8374f 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.controller.samples clustering-it-config - 6.0.10 + 6.0.11-SNAPSHOT jar diff --git a/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml index 1afa8de3293..75f72d3095b 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/karaf-cli/pom.xml @@ -12,7 +12,7 @@ mdsal-parent org.opendaylight.controller - 6.0.10 + 6.0.11-SNAPSHOT ../../../parent/pom.xml 4.0.0 diff --git a/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml index 8c05b8dce77..cfe7c88659f 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/model/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10 + 6.0.11-SNAPSHOT ../../../parent diff --git a/opendaylight/md-sal/samples/clustering-test-app/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/pom.xml index 9088c7c76b1..53675f8f9a5 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller.samples clustering-test-app - 6.0.10 + 6.0.11-SNAPSHOT pom diff --git a/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml index 0f55934be98..8f755ef516b 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/provider/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10 + 6.0.11-SNAPSHOT ../../../parent diff --git a/opendaylight/md-sal/samples/pom.xml b/opendaylight/md-sal/samples/pom.xml index a46ef92799d..586e25c7a47 100644 --- a/opendaylight/md-sal/samples/pom.xml +++ b/opendaylight/md-sal/samples/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller.samples samples-aggregator - 6.0.10 + 6.0.11-SNAPSHOT pom diff --git a/opendaylight/md-sal/samples/toaster-consumer/pom.xml b/opendaylight/md-sal/samples/toaster-consumer/pom.xml index f5487eee028..42d7001f041 100644 --- a/opendaylight/md-sal/samples/toaster-consumer/pom.xml +++ b/opendaylight/md-sal/samples/toaster-consumer/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10 + 6.0.11-SNAPSHOT ../../parent diff --git a/opendaylight/md-sal/samples/toaster-it/pom.xml b/opendaylight/md-sal/samples/toaster-it/pom.xml index 87a24d6caee..7777b3ff160 100644 --- a/opendaylight/md-sal/samples/toaster-it/pom.xml +++ b/opendaylight/md-sal/samples/toaster-it/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.controller mdsal-it-parent - 6.0.10 + 6.0.11-SNAPSHOT ../../mdsal-it-parent sample-toaster-it diff --git a/opendaylight/md-sal/samples/toaster-provider/pom.xml b/opendaylight/md-sal/samples/toaster-provider/pom.xml index c42582f83a8..24f348ff8a1 100644 --- a/opendaylight/md-sal/samples/toaster-provider/pom.xml +++ b/opendaylight/md-sal/samples/toaster-provider/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10 + 6.0.11-SNAPSHOT ../../parent diff --git a/opendaylight/md-sal/samples/toaster/pom.xml b/opendaylight/md-sal/samples/toaster/pom.xml index 227f1c4b539..b70e9249d0f 100644 --- a/opendaylight/md-sal/samples/toaster/pom.xml +++ b/opendaylight/md-sal/samples/toaster/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.controller mdsal-parent - 6.0.10 + 6.0.11-SNAPSHOT ../../parent diff --git a/pom.xml b/pom.xml index fe2002d15cd..58172d4b17b 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.controller releasepom - 6.0.10 + 6.0.11-SNAPSHOT pom controller