This is an automated email from the ASF dual-hosted git repository.

tzulitai pushed a commit to branch release-1.8
in repository https://gitbox.apache.org/repos/asf/flink.git

commit 0130b863d959de2bec5f0e9c6176a26ef85cb96d
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

Reply via email to