import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.io.Externalizable;
import java.io.IOException;
+import java.io.InvalidObjectException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
-import org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeDataInput;
-import org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeDataOutput;
-import org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeInputOutput;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.mdsal.dom.api.DOMActionInstance;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataInput;
+import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataOutput;
+import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeStreamVersion;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
LOG.debug("serializing ActionRoutingTable.");
out.writeObject(Serialization.serializedActorPath(opsInvoker));
- final NormalizedNodeDataOutput nnout = NormalizedNodeInputOutput.newDataOutput(out);
+ final NormalizedNodeDataOutput nnout = NormalizedNodeStreamVersion.current().newDataOutput(out);
nnout.writeInt(actions.size());
for (DOMActionInstance id : actions) {
- nnout.writeSchemaPath(id.getType());
- YangInstanceIdentifier actionPath = YangInstanceIdentifier.create(
- new YangInstanceIdentifier.NodeIdentifier(id.getType().getLastComponent()));
- nnout.writeYangInstanceIdentifier(actionPath);
+ final Absolute type = id.getType();
+ nnout.writeSchemaNodeIdentifier(type);
+ nnout.writeYangInstanceIdentifier(YangInstanceIdentifier.of(type.lastNodeIdentifier()));
}
}
LOG.debug("deserializing ActionRoutingTable");
opsInvoker = JavaSerializer.currentSystem().value().provider().resolveActorRef((String) in.readObject());
- final NormalizedNodeDataInput nnin = NormalizedNodeInputOutput.newDataInput(in);
+ final NormalizedNodeDataInput nnin = NormalizedNodeDataInput.newDataInput(in);
final int size = nnin.readInt();
actions = new ArrayList<>(size);
for (int i = 0; i < size; ++i) {
- actions.add(DOMActionInstance.of(nnin.readSchemaPath(), LogicalDatastoreType.OPERATIONAL,
+ final SchemaNodeIdentifier sni = nnin.readSchemaNodeIdentifier();
+ if (!(sni instanceof Absolute absolute)) {
+ throw new InvalidObjectException("Non-absolute type " + sni);
+ }
+
+ actions.add(DOMActionInstance.of(absolute, LogicalDatastoreType.OPERATIONAL,
nnin.readYangInstanceIdentifier()));
}
}