This adds the PayloadVersion which uses Magnesium normalized node
stream.
JIRA: CONTROLLER-1919
Change-Id: Ie43e9932a19bd19c92f14890da13646bf56e2f6f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
422ac9fbe65c02f942c1fed41ff4aa96545f4224)
return new ShardSnapshotState(readSnapshot(in), true);
case NEON_SR2:
case SODIUM_SR1:
+ case MAGNESIUM:
return new ShardSnapshotState(readSnapshot(in), false);
case TEST_FUTURE_VERSION:
case TEST_PAST_VERSION:
case BORON:
case NEON_SR2:
case SODIUM_SR1:
- // Boron, NeonSR2 and Sodium snapshots use Java Serialization, but differ in stream format
+ case MAGNESIUM:
+ // Boron, NeonSR2, Sodium and Magnesium snapshots use Java Serialization, but differ in stream format
out.writeObject(this);
return;
case TEST_FUTURE_VERSION:
}
},
+ /**
+ * Revised payload version. Payloads remain the same as {@link #SODIUM_SR1}, but messages bearing QNames in any
+ * shape are using {@link NormalizedNodeStreamVersion#MAGNESIUM}, which improves encoding.
+ */
+ MAGNESIUM(8) {
+ @Override
+ public NormalizedNodeStreamVersion getStreamVersion() {
+ return NormalizedNodeStreamVersion.MAGNESIUM;
+ }
+ },
+
/**
* Version which is newer than any other version. This version exists purely for testing purposes.
*/
return NEON_SR2;
case 7:
return SODIUM_SR1;
+ case 8:
+ return MAGNESIUM;
default:
- throw new FutureVersionException(version, SODIUM_SR1);
+ throw new FutureVersionException(version, MAGNESIUM);
}
}