This is an automated email from the ASF dual-hosted git repository. tzulitai pushed a commit to branch release-1.9 in repository https://gitbox.apache.org/repos/asf/flink.git
commit 5c09e1c29897e7c098ee55c0d7881c5d2016d94c Author: Tzu-Li (Gordon) Tai <tzuli...@apache.org> AuthorDate: Wed Aug 7 11:43:02 2019 +0200 [FLINK-13159] [tests] Add subclass serialization cases to PojoSerializerSnapshotMigrationTest This closes #9375. --- .../PojoSerializerSnapshotMigrationTest.java | 41 +++++++++++++++++++++ ...nk-1.6-pojo-registered-subclass-serializer-data | Bin 0 -> 350 bytes ....6-pojo-registered-subclass-serializer-snapshot | Bin 0 -> 9236 bytes ...-1.6-pojo-unregistered-subclass-serializer-data | Bin 0 -> 1320 bytes ...-pojo-unregistered-subclass-serializer-snapshot | Bin 0 -> 8890 bytes ...nk-1.7-pojo-registered-subclass-serializer-data | Bin 0 -> 350 bytes ....7-pojo-registered-subclass-serializer-snapshot | Bin 0 -> 12183 bytes ...-1.7-pojo-unregistered-subclass-serializer-data | Bin 0 -> 1320 bytes ...-pojo-unregistered-subclass-serializer-snapshot | Bin 0 -> 11832 bytes 9 files changed, 41 insertions(+) diff --git a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/PojoSerializerSnapshotMigrationTest.java b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/PojoSerializerSnapshotMigrationTest.java index 6dfcb64..fa83f05 100644 --- a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/PojoSerializerSnapshotMigrationTest.java +++ b/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/PojoSerializerSnapshotMigrationTest.java @@ -31,6 +31,7 @@ import org.junit.runners.Parameterized; import java.util.Collection; import static org.apache.flink.api.common.typeutils.TypeSerializerMatchers.hasSameCompatibilityAs; +import static org.apache.flink.api.common.typeutils.TypeSerializerMatchers.isCompatibleWithReconfiguredSerializer; import static org.junit.Assert.assertTrue; /** @@ -84,6 +85,22 @@ public class PojoSerializerSnapshotMigrationTest extends TypeSerializerSnapshotM } } + /** + * Data test files of test specification that used this type + * had the data written using {@code PojoSerializer}s generated + * using the base class {@code TestPojo}. + */ + public static class TestPojoSubclass extends TestPojo { + public String githubId; + + public TestPojoSubclass() {} + + public TestPojoSubclass(int id, String name, int age, String githubId) { + super(id, name, age); + this.githubId = githubId; + } + } + public PojoSerializerSnapshotMigrationTest(TestSpecification<Object> testSpecification) { super(testSpecification); } @@ -107,6 +124,19 @@ public class PojoSerializerSnapshotMigrationTest extends TypeSerializerSnapshotM PojoSerializerSnapshotMigrationTest::testPojoWithNewAndRemovedFieldsSerializerSupplier, hasSameCompatibilityAs(TypeSerializerSchemaCompatibility.compatibleAfterMigration())); + testSpecifications.addWithCompatibilityMatcher( + "pojo-unregistered-subclass-serializer", + PojoSerializer.class, + PojoSerializerSnapshot.class, + PojoSerializerSnapshotMigrationTest::testPojoSerializerSupplier, + isCompatibleWithReconfiguredSerializer()); + + testSpecifications.add( + "pojo-registered-subclass-serializer", + PojoSerializer.class, + PojoSerializerSnapshot.class, + PojoSerializerSnapshotMigrationTest::testPojoSerializerWithSubclassRegisteredSupplier); + return testSpecifications.get(); } @@ -125,4 +155,15 @@ public class PojoSerializerSnapshotMigrationTest extends TypeSerializerSnapshotM assertTrue(serializer instanceof PojoSerializer); return serializer; } + + private static TypeSerializer<TestPojo> testPojoSerializerWithSubclassRegisteredSupplier() { + ExecutionConfig executionConfig = new ExecutionConfig(); + executionConfig.registerPojoType(TestPojoSubclass.class); + + TypeSerializer<TestPojo> serializer = + TypeExtractor.createTypeInfo(TestPojo.class).createSerializer(executionConfig); + + assertTrue(serializer instanceof PojoSerializer); + return serializer; + } } diff --git a/flink-core/src/test/resources/flink-1.6-pojo-registered-subclass-serializer-data b/flink-core/src/test/resources/flink-1.6-pojo-registered-subclass-serializer-data new file mode 100644 index 0000000..ca0b187 Binary files /dev/null and b/flink-core/src/test/resources/flink-1.6-pojo-registered-subclass-serializer-data differ diff --git a/flink-core/src/test/resources/flink-1.6-pojo-registered-subclass-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-pojo-registered-subclass-serializer-snapshot new file mode 100644 index 0000000..4bb2055 Binary files /dev/null and b/flink-core/src/test/resources/flink-1.6-pojo-registered-subclass-serializer-snapshot differ diff --git a/flink-core/src/test/resources/flink-1.6-pojo-unregistered-subclass-serializer-data b/flink-core/src/test/resources/flink-1.6-pojo-unregistered-subclass-serializer-data new file mode 100644 index 0000000..3450dd4 Binary files /dev/null and b/flink-core/src/test/resources/flink-1.6-pojo-unregistered-subclass-serializer-data differ diff --git a/flink-core/src/test/resources/flink-1.6-pojo-unregistered-subclass-serializer-snapshot b/flink-core/src/test/resources/flink-1.6-pojo-unregistered-subclass-serializer-snapshot new file mode 100644 index 0000000..9231146 Binary files /dev/null and b/flink-core/src/test/resources/flink-1.6-pojo-unregistered-subclass-serializer-snapshot differ diff --git a/flink-core/src/test/resources/flink-1.7-pojo-registered-subclass-serializer-data b/flink-core/src/test/resources/flink-1.7-pojo-registered-subclass-serializer-data new file mode 100644 index 0000000..ca0b187 Binary files /dev/null and b/flink-core/src/test/resources/flink-1.7-pojo-registered-subclass-serializer-data differ diff --git a/flink-core/src/test/resources/flink-1.7-pojo-registered-subclass-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-pojo-registered-subclass-serializer-snapshot new file mode 100644 index 0000000..ca6c054 Binary files /dev/null and b/flink-core/src/test/resources/flink-1.7-pojo-registered-subclass-serializer-snapshot differ diff --git a/flink-core/src/test/resources/flink-1.7-pojo-unregistered-subclass-serializer-data b/flink-core/src/test/resources/flink-1.7-pojo-unregistered-subclass-serializer-data new file mode 100644 index 0000000..3450dd4 Binary files /dev/null and b/flink-core/src/test/resources/flink-1.7-pojo-unregistered-subclass-serializer-data differ diff --git a/flink-core/src/test/resources/flink-1.7-pojo-unregistered-subclass-serializer-snapshot b/flink-core/src/test/resources/flink-1.7-pojo-unregistered-subclass-serializer-snapshot new file mode 100644 index 0000000..99a7482 Binary files /dev/null and b/flink-core/src/test/resources/flink-1.7-pojo-unregistered-subclass-serializer-snapshot differ