import akka.actor.ActorRef;
import akka.serialization.JavaSerializer;
import akka.serialization.Serialization;
-import com.google.common.annotations.Beta;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
-import javax.annotation.Nonnull;
+import java.io.Serial;
+import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.concepts.WritableIdentifier;
/**
* Abstract Externalizable proxy for use with {@link Request} subclasses.
*
- * @author Robert Varga
- *
* @param <T> Target identifier type
*/
-@Beta
public abstract class AbstractRequestProxy<T extends WritableIdentifier, C extends Request<T, C>>
extends AbstractMessageProxy<T, C> {
+ @Serial
private static final long serialVersionUID = 1L;
+
private ActorRef replyTo;
protected AbstractRequestProxy() {
// For Externalizable
}
- protected AbstractRequestProxy(final @Nonnull C request) {
+ 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.writeUTF(Serialization.serializedActorPath(replyTo));
+ out.writeObject(Serialization.serializedActorPath(replyTo));
}
@Override
public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException {
super.readExternal(in);
- replyTo = JavaSerializer.currentSystem().value().provider().resolveActorRef(in.readUTF());
+ replyTo = JavaSerializer.currentSystem().value().provider().resolveActorRef((String) in.readObject());
}
@Override
- protected final C createMessage(final T target, final long sequence, final long retry) {
- return createRequest(target, sequence, retry, replyTo);
+ final C createMessage(final T target, final long sequence) {
+ return createRequest(target, sequence, replyTo);
}
- protected abstract @Nonnull C createRequest(@Nonnull T target, long sequence, long retry, @Nonnull ActorRef replyTo);
-}
\ No newline at end of file
+ protected abstract @NonNull C createRequest(@NonNull T target, long sequence, @NonNull ActorRef replyToActor);
+}