X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fcds-access-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Faccess%2Fconcepts%2FMN.java;fp=opendaylight%2Fmd-sal%2Fcds-access-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Faccess%2Fconcepts%2FMN.java;h=37b9fb837fda5e906d5fa3fbedf469f2878cd462;hp=83ef1e59ba0298866046db1c1e26c2dcc79a9600;hb=cd05b148126134dc5ed4f037f203ff260c1afa1a;hpb=a8345412733be4e36c37ce6fa508559f99e09593 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 index 83ef1e59ba..37b9fb837f 100644 --- 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 @@ -7,39 +7,47 @@ */ package org.opendaylight.controller.cluster.access.concepts; -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.nio.charset.StandardCharsets; + /** * Serialization proxy for {@link MemberName}. */ -final class MN implements MemberName.SerialForm { +final class MN implements Externalizable { @java.io.Serial private static final long serialVersionUID = 1L; - private MemberName name; + private byte[] serialized; @SuppressWarnings("checkstyle:RedundantModifier") public MN() { // for Externalizable } - MN(final MemberName name) { - this.name = requireNonNull(name); + MN(final byte[] serialized) { + this.serialized = requireNonNull(serialized); } @Override - public MemberName name() { - return verifyNotNull(name); + public void writeExternal(final ObjectOutput out) throws IOException { + out.writeInt(serialized.length); + out.write(serialized); } @Override - public void setName(final MemberName name) { - this.name = requireNonNull(name); + public void readExternal(final ObjectInput in) throws IOException { + serialized = new byte[in.readInt()]; + in.readFully(serialized); } - @Override - public Object readResolve() { - return name(); + @java.io.Serial + private Object readResolve() { + // TODO: consider caching instances here + return new MemberName(new String(serialized, StandardCharsets.UTF_8), serialized); } }