Hi, I am trying to get flink schema evolution to work for me using POJO serializer. But I found out that if an enum is present in the POJO then the POJO serializer is not used. Example of my POJO is as follows :
public class Rule { String id;int val; RuleType ruleType;//Newly added field//int val2 = 0; public Rule() {} public Rule(String id, int val, RuleType ruleType) { this.id = id; this.val = val; this.ruleType = ruleType; //this.val2 = val2; } public String getId() { return id; } public void setId(String id) { this.id = id; } public int getVal() { return val; } public void setVal(int val) { this.val = val; } public RuleType getRuleType() { return ruleType; } public void setRuleType(RuleType ruleType) { this.ruleType = ruleType; } //public int getVal2() {// return val2;//} //public void setVal2(int val2) {// this.val2 = val2;//} @Overridepublic boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Rule rule = (Rule) o; return val == rule.val && id.equals(rule.id) && ruleType == rule.ruleType; } @Overridepublic int hashCode() { return Objects.hash(id, val, ruleType); } @Overridepublic String toString() { return "Rule{" + "name='" + id + '\'' + ", val=" + val + ", ruleType=" + ruleType + '}'; } } RuleType is an enum class as follows : public enum RuleType { X, Y, Z } Now for the Rule class the schema evolution (Adding a new field called val2), works only if I write a custom typeFactory for this class. Is there a way that I can write typeFactory for the enum class ? Why does the flink not recognize enum in a POJO class ?