Add new cds-access-api proxies
[controller.git] / opendaylight / md-sal / cds-access-api / src / main / java / org / opendaylight / controller / cluster / access / commands / ConnectClientSuccessProxyV1.java
index ed04f031974c6915b323ac73ad009985d3b7aab0..ec898b016c1305439254ec1b590a993ba592e402 100644 (file)
@@ -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 @@ import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier;
  *
  * @author Robert Varga
  */
-final class ConnectClientSuccessProxyV1 extends AbstractSuccessProxy<ClientIdentifier, ConnectClientSuccess> {
-    @Serial
+final class ConnectClientSuccessProxyV1 extends AbstractSuccessProxy<ClientIdentifier, ConnectClientSuccess>
+        implements ConnectClientSuccess.SerialForm {
+    @java.io.Serial
     private static final long serialVersionUID = 1L;
 
-    private List<ActorSelection> 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 @@ final class ConnectClientSuccessProxyV1 extends AbstractSuccessProxy<ClientIdent
 
     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);
     }
 }