Remove old payload proxies 24/103424/22
authorRobert Varga <robert.varga@pantheon.tech>
Sat, 26 Nov 2022 10:59:46 +0000 (11:59 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 12 May 2023 17:42:40 +0000 (19:42 +0200)
We no longer need to carry compatibility serialization proxies, remove
them.

JIRA: CONTROLLER-2057
Change-Id: Ib040c0a082c94383b0224d593ad0ebec951b4d31
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
18 files changed:
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbortTransactionPayload.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractIdentifiablePayload.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CloseLocalHistoryPayload.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayload.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CreateLocalHistoryPayload.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DS.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DSS.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DatastoreSnapshot.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DisableTrackingPayload.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/FrontendShardDataTreeSnapshotMetadata.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/MetadataShardDataTreeSnapshot.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PurgeLocalHistoryPayload.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PurgeTransactionPayload.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/SM.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/SS.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardManagerSnapshot.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardSnapshotState.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/SkipTransactionsPayload.java

index 5f398853fe7a5561e2ce69bb8b60f360d8c14377..3c765be6152284aa8f50b17a1d3b3a223fa4fe06 100644 (file)
@@ -9,10 +9,8 @@ package org.opendaylight.controller.cluster.datastore.persisted;
 
 import com.google.common.io.ByteArrayDataOutput;
 import com.google.common.io.ByteStreams;
-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;
 
@@ -21,41 +19,7 @@ import org.slf4j.LoggerFactory;
  *
  * @author Robert Varga
  */
-public sealed class AbortTransactionPayload extends AbstractIdentifiablePayload<TransactionIdentifier> {
-    @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<TransactionIdentifier> {
-        @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
-        // redundant. It is explicitly needed for Java serialization to be able to create instances via reflection.
-        @SuppressWarnings("checkstyle:RedundantModifier")
-        public Proxy() {
-            // For Externalizable
-        }
-
-        @Override
-        protected TransactionIdentifier readIdentifier(final DataInput in) throws IOException {
-            return TransactionIdentifier.readFrom(in);
-        }
-
-        @Override
-        protected AbortTransactionPayload createObject(final TransactionIdentifier identifier,
-                final byte[] serialized) {
-            return new Magnesium(identifier, serialized);
-        }
-    }
-
+public final class AbortTransactionPayload extends AbstractIdentifiablePayload<TransactionIdentifier> {
     private static final Logger LOG = LoggerFactory.getLogger(AbortTransactionPayload.class);
     @java.io.Serial
     private static final long serialVersionUID = 1L;
index c835f7088a2eac55df3d13ee517e39bcbc04561e..885b6c5336dc4999075f33b01bf4e19bfbe1af4a 100644 (file)
@@ -11,8 +11,6 @@ import static com.google.common.base.Verify.verifyNotNull;
 import static java.util.Objects.requireNonNull;
 
 import com.google.common.base.MoreObjects;
-import com.google.common.io.ByteStreams;
-import java.io.DataInput;
 import java.io.Externalizable;
 import java.io.IOException;
 import java.io.ObjectInput;
@@ -21,7 +19,6 @@ import java.util.function.Function;
 import org.apache.commons.lang3.SerializationUtils;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.controller.cluster.raft.messages.IdentifiablePayload;
-import org.opendaylight.yangtools.concepts.Identifiable;
 import org.opendaylight.yangtools.concepts.Identifier;
 
 /**
@@ -84,44 +81,7 @@ public abstract class AbstractIdentifiablePayload<T extends Identifier> extends
         }
     }
 
-    @Deprecated(since = "7.0.0", forRemoval = true)
-    protected abstract static class AbstractProxy<T extends Identifier> implements SerialForm {
-        @java.io.Serial
-        private static final long serialVersionUID = 1L;
-
-        private byte[] serialized;
-        private T identifier;
-
-        public AbstractProxy() {
-            // For Externalizable
-        }
-
-        protected AbstractProxy(final byte[] serialized) {
-            this.serialized = requireNonNull(serialized);
-        }
-
-        @Override
-        public final byte[] bytes() {
-            return serialized;
-        }
-
-        @Override
-        public final void readExternal(final byte[] bytes) throws IOException {
-            serialized = requireNonNull(bytes);
-            identifier = verifyNotNull(readIdentifier(ByteStreams.newDataInput(serialized)));
-        }
-
-        @Override
-        public final Object readResolve() {
-            return verifyNotNull(createObject(identifier, serialized));
-        }
-
-        protected abstract @NonNull T readIdentifier(@NonNull DataInput in) throws IOException;
-
-        @SuppressWarnings("checkstyle:hiddenField")
-        protected abstract @NonNull Identifiable<T> createObject(@NonNull T identifier, byte @NonNull[] serialized);
-    }
-
+    @java.io.Serial
     private static final long serialVersionUID = 1L;
 
     private final byte @NonNull [] serialized;
index ada468f31447936c18275e6f269bb246fccc1a9b..9d6f526616156da4d3def73f9905ac1a7496419c 100644 (file)
@@ -9,10 +9,8 @@ package org.opendaylight.controller.cluster.datastore.persisted;
 
 import com.google.common.io.ByteArrayDataOutput;
 import com.google.common.io.ByteStreams;
-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,41 +19,7 @@ import org.slf4j.LoggerFactory;
  *
  * @author Robert Varga
  */
-public sealed class CloseLocalHistoryPayload extends AbstractIdentifiablePayload<LocalHistoryIdentifier> {
-    @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<LocalHistoryIdentifier> {
-        @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
-        // redundant. It is explicitly needed for Java serialization to be able to create instances via reflection.
-        @SuppressWarnings("checkstyle:RedundantModifier")
-        public Proxy() {
-            // For Externalizable
-        }
-
-        @Override
-        protected LocalHistoryIdentifier readIdentifier(final DataInput in) throws IOException {
-            return LocalHistoryIdentifier.readFrom(in);
-        }
-
-        @Override
-        protected CloseLocalHistoryPayload createObject(final LocalHistoryIdentifier identifier,
-                final byte[] serialized) {
-            return new Magnesium(identifier, serialized);
-        }
-    }
-
+public final class CloseLocalHistoryPayload extends AbstractIdentifiablePayload<LocalHistoryIdentifier> {
     private static final Logger LOG = LoggerFactory.getLogger(CloseLocalHistoryPayload.class);
     @java.io.Serial
     private static final long serialVersionUID = 1L;
index a7643e6799fa65232458586d2875045d8594e602..c8639bbebbf9ab77db2ce445411fee4b53a9e5e5 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.controller.cluster.datastore.persisted;
 
-import static com.google.common.base.Verify.verifyNotNull;
 import static com.google.common.math.IntMath.ceilingPowerOfTwo;
 import static java.util.Objects.requireNonNull;
 
@@ -19,12 +18,9 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.io.DataInput;
 import java.io.DataInputStream;
 import java.io.DataOutputStream;
-import java.io.Externalizable;
 import java.io.IOException;
-import java.io.ObjectInput;
 import java.io.ObjectOutput;
 import java.io.Serializable;
-import java.io.StreamCorruptedException;
 import java.util.AbstractMap.SimpleImmutableEntry;
 import java.util.Map.Entry;
 import org.apache.commons.lang3.SerializationUtils;
@@ -34,7 +30,6 @@ import org.opendaylight.controller.cluster.datastore.persisted.DataTreeCandidate
 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;
@@ -154,7 +149,7 @@ public abstract sealed class CommitTransactionPayload extends IdentifiablePayloa
         return new CT(this);
     }
 
-    static sealed class Simple extends CommitTransactionPayload {
+    static final class Simple extends CommitTransactionPayload {
         @java.io.Serial
         private static final long serialVersionUID = 1L;
 
@@ -180,7 +175,7 @@ public abstract sealed class CommitTransactionPayload extends IdentifiablePayloa
         }
     }
 
-    static sealed class Chunked extends CommitTransactionPayload {
+    static final class Chunked extends CommitTransactionPayload {
         @java.io.Serial
         private static final long serialVersionUID = 1L;
 
@@ -215,63 +210,4 @@ public abstract sealed class CommitTransactionPayload extends IdentifiablePayloa
             // 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;
-
-        // 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
-        }
-
-        @Override
-        public void writeExternal(final ObjectOutput out) {
-            throw new UnsupportedOperationException();
-        }
-
-        @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 < MAX_ARRAY_SIZE) {
-                final byte[] serialized = new byte[length];
-                in.readFully(serialized);
-                payload = new SimpleMagnesium(serialized);
-            } else {
-                payload = new ChunkedMagnesium(ChunkedByteArray.readFrom(in, length, MAX_ARRAY_SIZE));
-            }
-        }
-
-        @java.io.Serial
-        private Object readResolve() {
-            return verifyNotNull(payload);
-        }
-    }
 }
index c0be9464085e2e162341c77f4343f94814161d61..928503a9fc78ce7f62cfd71a1b903800e56cc1a9 100644 (file)
@@ -9,10 +9,8 @@ package org.opendaylight.controller.cluster.datastore.persisted;
 
 import com.google.common.io.ByteArrayDataOutput;
 import com.google.common.io.ByteStreams;
-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,41 +19,7 @@ import org.slf4j.LoggerFactory;
  *
  * @author Robert Varga
  */
-public sealed class CreateLocalHistoryPayload extends AbstractIdentifiablePayload<LocalHistoryIdentifier> {
-    @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<LocalHistoryIdentifier> {
-        @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
-        // redundant. It is explicitly needed for Java serialization to be able to create instances via reflection.
-        @SuppressWarnings("checkstyle:RedundantModifier")
-        public Proxy() {
-            // For Externalizable
-        }
-
-        @Override
-        protected LocalHistoryIdentifier readIdentifier(final DataInput in) throws IOException {
-            return LocalHistoryIdentifier.readFrom(in);
-        }
-
-        @Override
-        protected CreateLocalHistoryPayload createObject(final LocalHistoryIdentifier identifier,
-                final byte[] serialized) {
-            return new Magnesium(identifier, serialized);
-        }
-    }
-
+public final class CreateLocalHistoryPayload extends AbstractIdentifiablePayload<LocalHistoryIdentifier> {
     private static final Logger LOG = LoggerFactory.getLogger(CreateLocalHistoryPayload.class);
     @java.io.Serial
     private static final long serialVersionUID = 1L;
index 894600adf15b7aeade75dbeacdb881268fbfe20e..091eeedbf67d1aee069e0b84d4c2c1a5e7ab52ec 100644 (file)
@@ -10,10 +10,17 @@ 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.util.ArrayList;
+import org.opendaylight.controller.cluster.datastore.persisted.DatastoreSnapshot.ShardSnapshot;
+
 /**
  * Serialization proxy for {@link DatastoreSnapshot}.
  */
-final class DS implements DatastoreSnapshot.SerialForm {
+final class DS implements Externalizable {
     @java.io.Serial
     private static final long serialVersionUID = 1L;
 
@@ -29,17 +36,33 @@ final class DS implements DatastoreSnapshot.SerialForm {
     }
 
     @Override
-    public DatastoreSnapshot datastoreSnapshot() {
-        return datastoreSnapshot;
+    public void readExternal(final 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<ShardSnapshot>(size);
+        for (int i = 0; i < size; i++) {
+            localShardSnapshots.add((ShardSnapshot) in.readObject());
+        }
+
+        datastoreSnapshot = new DatastoreSnapshot(type, snapshot, localShardSnapshots);
     }
 
     @Override
-    public void resolveTo(final DatastoreSnapshot newDatastoreSnapshot) {
-        datastoreSnapshot = requireNonNull(newDatastoreSnapshot);
+    public void writeExternal(final ObjectOutput out) throws IOException {
+        out.writeObject(datastoreSnapshot.getType());
+        out.writeObject(datastoreSnapshot.getShardManagerSnapshot());
+
+        final var shardSnapshots = datastoreSnapshot.getShardSnapshots();
+        out.writeInt(shardSnapshots.size());
+        for (var shardSnapshot : shardSnapshots) {
+            out.writeObject(shardSnapshot);
+        }
     }
 
-    @Override
-    public Object readResolve() {
+    @java.io.Serial
+    private Object readResolve() {
         return verifyNotNull(datastoreSnapshot);
     }
 }
index 5d6ea922cc4a86824043689bc4d8bd482923b370..9edb090f12a78a3ac33ac8b823306701130edfd4 100644 (file)
@@ -10,13 +10,17 @@ 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 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 {
+final class DSS implements Externalizable {
     @java.io.Serial
     private static final long serialVersionUID = 1L;
 
@@ -32,17 +36,18 @@ final class DSS implements ShardSnapshot.SerialForm {
     }
 
     @Override
-    public ShardSnapshot shardSnapshot() {
-        return shardSnapshot;
+    public void writeExternal(final ObjectOutput out) throws IOException {
+        out.writeObject(shardSnapshot.getName());
+        out.writeObject(shardSnapshot.getSnapshot());
     }
 
     @Override
-    public void resolveTo(final String name, final Snapshot snapshot) {
-        shardSnapshot = new ShardSnapshot(name, snapshot);
+    public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException {
+        shardSnapshot = new ShardSnapshot((String) in.readObject(), (Snapshot) in.readObject());
     }
 
-    @Override
-    public Object readResolve() {
+    @java.io.Serial
+    private Object readResolve() {
         return verifyNotNull(shardSnapshot);
     }
 }
index fe9501ffb684e4a912858e1312296f2c75027e77..9c0a3acc72d12c4a406ef4085aca068f5c9ee29b 100644 (file)
@@ -7,16 +7,10 @@
  */
 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;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
 import java.io.Serializable;
-import java.util.ArrayList;
 import java.util.List;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
@@ -28,69 +22,6 @@ import org.opendaylight.controller.cluster.raft.persisted.Snapshot;
  * @author Thomas Pantelis
  */
 public final class DatastoreSnapshot implements Serializable {
-    interface SerialForm extends Externalizable {
-
-        DatastoreSnapshot datastoreSnapshot();
-
-        Object readResolve();
-
-        void resolveTo(@NonNull DatastoreSnapshot newDatastoreSnapshot);
-
-        @Override
-        default void readExternal(final 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<ShardSnapshot>(size);
-            for (int i = 0; i < size; i++) {
-                localShardSnapshots.add((ShardSnapshot) in.readObject());
-            }
-
-            resolveTo(new DatastoreSnapshot(type, snapshot, localShardSnapshots));
-        }
-
-        @Override
-        default void writeExternal(final ObjectOutput out) throws IOException {
-            final var datastoreSnapshot = datastoreSnapshot();
-            out.writeObject(datastoreSnapshot.type);
-            out.writeObject(datastoreSnapshot.shardManagerSnapshot);
-
-            out.writeInt(datastoreSnapshot.shardSnapshots.size());
-            for (ShardSnapshot shardSnapshot: datastoreSnapshot.shardSnapshots) {
-                out.writeObject(shardSnapshot);
-            }
-        }
-    }
-
-    private static final class Proxy implements SerialForm {
-        private static final long serialVersionUID = 1L;
-
-        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
-        }
-
-        @Override
-        public DatastoreSnapshot datastoreSnapshot() {
-            return datastoreSnapshot;
-        }
-
-        @Override
-        public void resolveTo(final DatastoreSnapshot newDatastoreSnapshot) {
-            datastoreSnapshot = requireNonNull(newDatastoreSnapshot);
-        }
-
-        @Override
-        public Object readResolve() {
-            return verifyNotNull(datastoreSnapshot);
-        }
-    }
-
     @java.io.Serial
     private static final long serialVersionUID = 1L;
 
@@ -123,56 +54,6 @@ public final class DatastoreSnapshot implements Serializable {
     }
 
     public static final class ShardSnapshot implements Serializable {
-        interface SerialForm extends Externalizable {
-
-            ShardSnapshot shardSnapshot();
-
-            Object readResolve();
-
-            void resolveTo(String name, Snapshot snapshot);
-
-            @Override
-            default void writeExternal(final ObjectOutput out) throws IOException {
-                final var shardSnapshot = shardSnapshot();
-                out.writeObject(shardSnapshot.name);
-                out.writeObject(shardSnapshot.snapshot);
-            }
-
-            @Override
-            default void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException {
-                resolveTo((String) in.readObject(), (Snapshot) in.readObject());
-            }
-        }
-
-        private static final class Proxy implements SerialForm {
-            @java.io.Serial
-            private static final long serialVersionUID = 1L;
-
-            private ShardSnapshot shardSnapshot;
-
-            // 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
-            }
-
-            @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);
-            }
-        }
-
         @java.io.Serial
         private static final long serialVersionUID = 1L;
 
index b531174576cf9898328977c7de2b316fb7530a2b..293f396a948b3c2a81fadc11554149b6748de9c3 100644 (file)
@@ -9,46 +9,12 @@ package org.opendaylight.controller.cluster.datastore.persisted;
 
 import com.google.common.io.ByteArrayDataOutput;
 import com.google.common.io.ByteStreams;
-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 sealed class DisableTrackingPayload extends AbstractIdentifiablePayload<ClientIdentifier> {
-    @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<ClientIdentifier> {
-        @java.io.Serial
-        private static final long serialVersionUID = -5490519942445085251L;
-
-        @SuppressWarnings("checkstyle:RedundantModifier")
-        public Proxy() {
-            // For Externalizable
-        }
-
-        @Override
-        protected ClientIdentifier readIdentifier(final DataInput in) throws IOException {
-            return ClientIdentifier.readFrom(in);
-        }
-
-        @Override
-        protected DisableTrackingPayload createObject(final ClientIdentifier identifier,
-                final byte[] serialized) {
-            return new Magnesium(identifier, serialized);
-        }
-    }
-
+public final class DisableTrackingPayload extends AbstractIdentifiablePayload<ClientIdentifier> {
     private static final Logger LOG = LoggerFactory.getLogger(DisableTrackingPayload.class);
     @java.io.Serial
     private static final long serialVersionUID = 1L;
index c5eb512c8187ed430842cee6b93cdc6e82bb48df..1d28ccac45ddc7af3858a2086e8005e12c4d8682 100644 (file)
@@ -11,49 +11,11 @@ import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableList;
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
-public final class FrontendShardDataTreeSnapshotMetadata extends
-        ShardDataTreeSnapshotMetadata<FrontendShardDataTreeSnapshotMetadata> {
-    private static final class Proxy implements Externalizable {
-        @java.io.Serial
-        private static final long serialVersionUID = 1L;
-
-        private List<FrontendClientMetadata> clients;
-
-        // 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
-        }
-
-        @Override
-        public void writeExternal(final ObjectOutput out) {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public void readExternal(final ObjectInput in) throws IOException {
-            final int size = in.readInt();
-            final List<FrontendClientMetadata> readedClients = new ArrayList<>(size);
-            for (int i = 0; i < size ; ++i) {
-                readedClients.add(FrontendClientMetadata.readFrom(in));
-            }
-            clients = ImmutableList.copyOf(readedClients);
-        }
-
-        @java.io.Serial
-        private Object readResolve() {
-            return new FrontendShardDataTreeSnapshotMetadata(clients);
-        }
-    }
-
+public final class FrontendShardDataTreeSnapshotMetadata
+        extends ShardDataTreeSnapshotMetadata<FrontendShardDataTreeSnapshotMetadata> {
     @java.io.Serial
     private static final long serialVersionUID = 1L;
 
index a33a650052b3fb543fec886938294947ff2fee36..1c9b5d19b64a17ccd5768f09494618d63c59ec86 100644 (file)
@@ -7,26 +7,15 @@
  */
 package org.opendaylight.controller.cluster.datastore.persisted;
 
-import static com.google.common.base.Preconditions.checkArgument;
 import static java.util.Objects.requireNonNull;
 
 import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableMap.Builder;
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
 import java.io.Serializable;
-import java.io.StreamCorruptedException;
 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;
 
 /**
  * An {@link AbstractVersionedShardDataTreeSnapshot} which contains additional metadata.
@@ -36,60 +25,6 @@ import org.slf4j.LoggerFactory;
 @Beta
 public final class MetadataShardDataTreeSnapshot extends AbstractVersionedShardDataTreeSnapshot
         implements Serializable {
-    private static final class Proxy implements Externalizable {
-        @java.io.Serial
-        private static final long serialVersionUID = 1L;
-        private static final Logger LOG = LoggerFactory.getLogger(MetadataShardDataTreeSnapshot.class);
-
-        private Map<Class<? extends ShardDataTreeSnapshotMetadata<?>>, ShardDataTreeSnapshotMetadata<?>> metadata;
-        private NormalizedNodeStreamVersion version;
-        private NormalizedNode rootNode;
-
-        // 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
-        }
-
-        @Override
-        public void writeExternal(final ObjectOutput out) {
-            throw new UnsupportedOperationException();
-        }
-
-        @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 Builder<Class<? extends ShardDataTreeSnapshotMetadata<?>>, ShardDataTreeSnapshotMetadata<?>>
-                    metaBuilder = ImmutableMap.builder();
-            for (int i = 0; i < metaSize; ++i) {
-                final ShardDataTreeSnapshotMetadata<?> m = (ShardDataTreeSnapshotMetadata<?>) in.readObject();
-                if (m != null) {
-                    metaBuilder.put(m.getType(), m);
-                } else {
-                    LOG.warn("Skipping null metadata");
-                }
-            }
-
-            metadata = metaBuilder.build();
-            final boolean present = in.readBoolean();
-            if (!present) {
-                throw new StreamCorruptedException("Unexpected missing root node");
-            }
-
-            final NormalizedNodeDataInput stream = NormalizedNodeDataInput.newDataInput(in);
-            version = stream.getVersion();
-            rootNode = stream.readNormalizedNode();
-        }
-
-        private Object readResolve() {
-            return new MetadataShardDataTreeSnapshot(rootNode, metadata);
-        }
-    }
-
     @java.io.Serial
     private static final long serialVersionUID = 1L;
 
index a9e4557eced0c010e77a9821c76e7ddd0f1e2e95..3608e7589fea0640616ba72039b98fc3624848aa 100644 (file)
@@ -9,10 +9,8 @@ package org.opendaylight.controller.cluster.datastore.persisted;
 
 import com.google.common.io.ByteArrayDataOutput;
 import com.google.common.io.ByteStreams;
-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;
 
@@ -22,41 +20,7 @@ import org.slf4j.LoggerFactory;
  *
  * @author Robert Varga
  */
-public sealed class PurgeLocalHistoryPayload extends AbstractIdentifiablePayload<LocalHistoryIdentifier> {
-    @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<LocalHistoryIdentifier> {
-        @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
-        // redundant. It is explicitly needed for Java serialization to be able to create instances via reflection.
-        @SuppressWarnings("checkstyle:RedundantModifier")
-        public Proxy() {
-            // For Externalizable
-        }
-
-        @Override
-        protected LocalHistoryIdentifier readIdentifier(final DataInput in) throws IOException {
-            return LocalHistoryIdentifier.readFrom(in);
-        }
-
-        @Override
-        protected PurgeLocalHistoryPayload createObject(final LocalHistoryIdentifier identifier,
-                final byte[] serialized) {
-            return new Magnesium(identifier, serialized);
-        }
-    }
-
+public final class PurgeLocalHistoryPayload extends AbstractIdentifiablePayload<LocalHistoryIdentifier> {
     private static final Logger LOG = LoggerFactory.getLogger(PurgeLocalHistoryPayload.class);
     @java.io.Serial
     private static final long serialVersionUID = 1L;
index 4d5d2d742c3974b3837a7928e9b1b4c8e85d3ab9..e63fa3b72dbbe74ff6a9578b9485029486e763a4 100644 (file)
@@ -9,10 +9,8 @@ package org.opendaylight.controller.cluster.datastore.persisted;
 
 import com.google.common.io.ByteArrayDataOutput;
 import com.google.common.io.ByteStreams;
-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;
 
@@ -21,41 +19,7 @@ import org.slf4j.LoggerFactory;
  *
  * @author Robert Varga
  */
-public sealed class PurgeTransactionPayload extends AbstractIdentifiablePayload<TransactionIdentifier> {
-    @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<TransactionIdentifier> {
-        @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
-        // redundant. It is explicitly needed for Java serialization to be able to create instances via reflection.
-        @SuppressWarnings("checkstyle:RedundantModifier")
-        public Proxy() {
-            // For Externalizable
-        }
-
-        @Override
-        protected TransactionIdentifier readIdentifier(final DataInput in) throws IOException {
-            return TransactionIdentifier.readFrom(in);
-        }
-
-        @Override
-        protected PurgeTransactionPayload createObject(final TransactionIdentifier identifier,
-                final byte[] serialized) {
-            return new Magnesium(identifier, serialized);
-        }
-    }
-
+public final class PurgeTransactionPayload extends AbstractIdentifiablePayload<TransactionIdentifier> {
     private static final Logger LOG = LoggerFactory.getLogger(PurgeTransactionPayload.class);
     @java.io.Serial
     private static final long serialVersionUID = 1L;
index 07c33086bf3f85c59331bbe0ed058f888dd00d31..dc39f5cf58f30a2288709831be7028f7bca91b18 100644 (file)
@@ -10,12 +10,16 @@ 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;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.util.ArrayList;
 
 /**
  * Serialization proxy for {@link ShardManagerSnapshot}.
  */
-final class SM implements ShardManagerSnapshot.SerializedForm {
+final class SM implements Externalizable {
     @java.io.Serial
     private static final long serialVersionUID = 1L;
 
@@ -31,17 +35,26 @@ final class SM implements ShardManagerSnapshot.SerializedForm {
     }
 
     @Override
-    public List<String> shardNames() {
-        return snapshot.getShardList();
+    public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException {
+        final int size = in.readInt();
+        final var shardList = new ArrayList<String>(size);
+        for (int i = 0; i < size; i++) {
+            shardList.add((String) in.readObject());
+        }
+        snapshot = new ShardManagerSnapshot(shardList);
     }
 
     @Override
-    public void resolveTo(final ShardManagerSnapshot newSnapshot) {
-        snapshot = requireNonNull(newSnapshot);
+    public void writeExternal(final ObjectOutput out) throws IOException {
+        final var shardList = snapshot.getShardList();
+        out.writeInt(shardList.size());
+        for (var shardName : shardList) {
+            out.writeObject(shardName);
+        }
     }
 
-    @Override
-    public Object readResolve() {
+    @java.io.Serial
+    private Object readResolve() {
         return verifyNotNull(snapshot);
     }
 }
index f816002c9a3cd42f52e92eb2e21a1383776b8941..f719e1b93ea73cb4e559471d6b919bb05b47ec42 100644 (file)
@@ -10,10 +10,15 @@ 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;
+
 /**
  * Serialization proxy for {@link ShardSnapshotState}.
  */
-final class SS implements ShardSnapshotState.SerialForm {
+final class SS implements Externalizable {
     @java.io.Serial
     private static final long serialVersionUID = 1L;
 
@@ -29,17 +34,17 @@ final class SS implements ShardSnapshotState.SerialForm {
     }
 
     @Override
-    public ShardSnapshotState snapshotState() {
-        return snapshotState;
+    public void readExternal(final ObjectInput in) throws IOException {
+        snapshotState = ShardDataTreeSnapshot.deserialize(in);
     }
 
     @Override
-    public void resolveTo(final ShardSnapshotState newSnapshotState) {
-        snapshotState = requireNonNull(newSnapshotState);
+    public void writeExternal(final ObjectOutput out) throws IOException {
+        snapshotState.getSnapshot().serialize(out);
     }
 
-    @Override
-    public Object readResolve() {
+    @java.io.Serial
+    private Object readResolve() {
         return verifyNotNull(snapshotState);
     }
 }
index b211d1a54f77d95398bcef2d927bc6035ff75762..86d293528a9dab2bdecf7c2b30800dd707b271a7 100644 (file)
  */
 package org.opendaylight.controller.cluster.datastore.persisted;
 
-import static java.util.Objects.requireNonNull;
-
 import com.google.common.collect.ImmutableList;
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
 import java.io.Serializable;
-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 sealed class ShardManagerSnapshot implements Serializable {
-    interface SerializedForm extends Externalizable {
-        /**
-         * Return the serial form of this object contents, corresponding to {@link ShardManagerSnapshot#shardList}.
-         *
-         * @return List of shards names.
-         */
-        List<String> 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();
-
-        /**
-         * 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<String>(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);
-            }
-        }
-    }
-
-    @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<String> 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 = 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.
-        @SuppressWarnings("checkstyle:RedundantModifier")
-        public Proxy() {
-            // For Externalizable
-        }
-
-        @Override
-        public List<String> shardNames() {
-            return snapshot.getShardList();
-        }
-
-        @Override
-        public void resolveTo(final ShardManagerSnapshot newSnapshot) {
-            snapshot = requireNonNull(newSnapshot);
-        }
-
-        @Override
-        public Object readResolve() {
-            return new Magnesium(snapshot.getShardList());
-        }
-    }
-
+public final class ShardManagerSnapshot implements Serializable {
     @java.io.Serial
     private static final long serialVersionUID = 1L;
 
@@ -123,17 +27,17 @@ public sealed class ShardManagerSnapshot implements Serializable {
         this.shardList = ImmutableList.copyOf(shardList);
     }
 
-    public final List<String> getShardList() {
+    public List<String> getShardList() {
         return shardList;
     }
 
     @java.io.Serial
-    public final Object writeReplace() {
+    private Object writeReplace() {
         return new SM(this);
     }
 
     @Override
-    public final String toString() {
+    public String toString() {
         return "ShardManagerSnapshot [ShardList = " + shardList + " ]";
     }
 }
index 90275c19a6ccd721d3ab38263b948d3e96225a09..c06c5cf3189d404d38271ef094eccb4204131481 100644 (file)
@@ -7,15 +7,10 @@
  */
 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;
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.controller.cluster.raft.persisted.Snapshot;
 
@@ -25,55 +20,6 @@ import org.opendaylight.controller.cluster.raft.persisted.Snapshot;
  * @author Thomas Pantelis
  */
 public final class ShardSnapshotState implements Snapshot.State {
-    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);
-        }
-    }
-
-    @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;
-
-        // 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
-        }
-
-        @Override
-        public ShardSnapshotState snapshotState() {
-            return snapshotState;
-        }
-
-        @Override
-        public void resolveTo(final ShardSnapshotState newSnapshotState) {
-            snapshotState = requireNonNull(newSnapshotState);
-        }
-
-        @Override
-        public Object readResolve() {
-            return verifyNotNull(snapshotState);
-        }
-    }
-
     @java.io.Serial
     private static final long serialVersionUID = 1L;
 
index 085774592b72a3d1c1888157a6b8f854e0c74609..a8fb52c4b97d06f1c91b3a28b7c03d7175a6685f 100644 (file)
@@ -7,17 +7,14 @@
  */
 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 edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-import java.io.DataInput;
 import java.io.IOException;
 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;
 
@@ -26,45 +23,7 @@ import org.slf4j.LoggerFactory;
  * for other purposes. It contains a {@link LocalHistoryIdentifier} and a list of transaction identifiers within that
  * local history.
  */
-public sealed class SkipTransactionsPayload extends AbstractIdentifiablePayload<LocalHistoryIdentifier> {
-    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<LocalHistoryIdentifier> {
-        @java.io.Serial
-        private static final long serialVersionUID = 1L;
-
-        private ImmutableUnsignedLongSet transactionIds;
-
-        // 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
-        }
-
-        @Override
-        protected LocalHistoryIdentifier readIdentifier(final DataInput in) throws IOException {
-            final var id = LocalHistoryIdentifier.readFrom(in);
-            transactionIds = ImmutableUnsignedLongSet.readFrom(in);
-            return id;
-        }
-
-        @Override
-        protected SkipTransactionsPayload createObject(final LocalHistoryIdentifier identifier,
-                final byte[] serialized) {
-            return new Magnesium(identifier, serialized, verifyNotNull(transactionIds));
-        }
-    }
-
+public final class SkipTransactionsPayload extends AbstractIdentifiablePayload<LocalHistoryIdentifier> {
     private static final Logger LOG = LoggerFactory.getLogger(SkipTransactionsPayload.class);
     @java.io.Serial
     private static final long serialVersionUID = 1L;