Trigger snapshots on legacy persisted entries
[controller.git] / opendaylight / md-sal / sal-akka-raft / src / main / java / org / opendaylight / controller / cluster / raft / persisted / DeleteEntries.java
index 70ad119b5a77872903c6b7526476ba24974af9c3..189ca9c5c83351c5dfe47eb95d73293cdd237ea3 100644 (file)
@@ -18,11 +18,23 @@ import java.io.Serializable;
  *
  * @author Thomas Pantelis
  */
-public class DeleteEntries implements Serializable {
+public sealed class DeleteEntries implements Serializable {
+    @Deprecated(since = "7.0.0", forRemoval = true)
+    private static final class Legacy extends DeleteEntries implements LegacySerializable {
+        @java.io.Serial
+        private static final long serialVersionUID = 1L;
+
+        Legacy(final long fromIndex) {
+            super(fromIndex);
+        }
+    }
+
+    @Deprecated(since = "7.0.0", forRemoval = true)
     private static final class Proxy implements Externalizable {
+        @java.io.Serial
         private static final long serialVersionUID = 1L;
 
-        private DeleteEntries deleteEntries;
+        private DeleteEntries deleteEntries = 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.
@@ -31,25 +43,23 @@ public class DeleteEntries implements Serializable {
             // For Externalizable
         }
 
-        Proxy(final DeleteEntries deleteEntries) {
-            this.deleteEntries = deleteEntries;
-        }
-
         @Override
         public void writeExternal(final ObjectOutput out) throws IOException {
             out.writeLong(deleteEntries.fromIndex);
         }
 
         @Override
-        public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException {
-            deleteEntries = new DeleteEntries(in.readLong());
+        public void readExternal(final ObjectInput in) throws IOException {
+            deleteEntries = new Legacy(in.readLong());
         }
 
+        @java.io.Serial
         private Object readResolve() {
             return deleteEntries;
         }
     }
 
+    @java.io.Serial
     private static final long serialVersionUID = 1L;
 
     private final long fromIndex;
@@ -58,16 +68,17 @@ public class DeleteEntries implements Serializable {
         this.fromIndex = fromIndex;
     }
 
-    public long getFromIndex() {
+    public final long getFromIndex() {
         return fromIndex;
     }
 
-    private Object writeReplace() {
-        return new Proxy(this);
+    @java.io.Serial
+    public final Object writeReplace() {
+        return new DE(this);
     }
 
     @Override
-    public String toString() {
+    public final String toString() {
         return "DeleteEntries [fromIndex=" + fromIndex + "]";
     }
 }