galenwarren commented on a change in pull request #152:
URL: https://github.com/apache/flink-statefun/pull/152#discussion_r491708474
##########
File path:
statefun-flink/statefun-flink-core/src/main/java/org/apache/flink/statefun/flink/core/message/MessageFactoryKey.java
##########
@@ -0,0 +1,43 @@
+package org.apache.flink.statefun.flink.core.message;
+
+import java.io.Serializable;
+import java.util.Objects;
+
+public class MessageFactoryKey implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ private final MessageFactoryType type;
+ private final String customPayloadSerializerClassName;
+
+ private MessageFactoryKey(MessageFactoryType type, String
customPayloadSerializerClassName) {
+ this.type = type;
+ this.customPayloadSerializerClassName = customPayloadSerializerClassName;
+ }
+
+ public static MessageFactoryKey forType(
+ MessageFactoryType type, String customPayloadSerializerClassName) {
+ return new MessageFactoryKey(type, customPayloadSerializerClassName);
+ }
+
+ public MessageFactoryType getType() {
+ return this.type;
+ }
+
+ public String getCustomPayloadSerializerClassName() {
Review comment:
As it stands now, this method gets called from
MessageTypeSerializer.Snapshot.writeSnapshot, for all types of message
serializers, not just custom ones. For non-custom ones, a null is returned and
this is the value that is written into the snapshot, after the
MesssageFactoryType. So, the version 2 serialized format is always a
MessageFactoryType value and then the custom payload serializer class name
(string, which can be null), for all types of serializers.
The writeSnapshot method could be changed to only call
getCustomPayloadSerializerClassName in the event that the serializer is custom,
and then to either 1) force a null serializer class name to be written to the
snapshot or 2) skip the write of the serializer class name altogether in the
non-custom case. This would make the read/writeSnapshot code and testing a bit
more complicated but would definitely be doable, would one of those options be
better?
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]