igalshilman commented on a change in pull request #7759:
[FLINK-11485][FLINK-10897] POJO state schema evolution / migrate PojoSerializer
to use new compatibility APIs
URL: https://github.com/apache/flink/pull/7759#discussion_r258410039
##########
File path:
flink-core/src/main/java/org/apache/flink/api/common/typeutils/CompositeTypeSerializerUtil.java
##########
@@ -62,4 +65,147 @@ public static void setNestedSerializersSnapshots(
NestedSerializersSnapshotDelegate delegate = new
NestedSerializersSnapshotDelegate(nestedSnapshots);
compositeSnapshot.setNestedSerializersSnapshotDelegate(delegate);
}
+
+ /**
+ * Constructs an {@link IntermediateCompatibilityResult} with the given
array of nested serializers and their
+ * corresponding serializer snapshots.
+ *
+ * <p>This result is considered "intermediate", because the actual
final result is not yet built if it isn't
+ * defined. This is the case if the final result is supposed to be
+ * {@link
TypeSerializerSchemaCompatibility#compatibleWithReconfiguredSerializer(TypeSerializer)},
where
+ * construction of the reconfigured serializer instance should be done
by the caller.
+ *
+ * <p>For other cases, i.e. {@link
TypeSerializerSchemaCompatibility#compatibleAsIs()},
+ * {@link
TypeSerializerSchemaCompatibility#compatibleAfterMigration()}, and
+ * {@link TypeSerializerSchemaCompatibility#incompatible()}, these
results are considered final.
+ *
+ * @param newNestedSerializers the new nested serializers to check for
compatibility.
+ * @param nestedSerializerSnapshots the associated nested serializers'
snapshots.
+ *
+ * @return the intermediate compatibility result of the new nested
serializers.
+ */
+ public static <T> IntermediateCompatibilityResult<T>
constructIntermediateCompatibilityResult(
Review comment:
Do you think it makes senes to add some unit tests for this?
For example few basic cases like:
- StringSerializer and LongSerializer with String and Long snapshots
- StringSerializer and LongSerializer with String and String snapshot (hence
incompatible)
- DummySerializer with a DummySnapshot that we can set in the setup phase of
a test to return whatever compatibility we want.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services