package com.baeldung.flink.schema; import com.baeldung.flink.model.InputMessage; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import org.apache.flink.api.common.serialization.DeserializationSchema; import org.apache.flink.api.common.typeinfo.TypeInformation; import java.io.IOException; public class InputMessageDeserializationSchema implements DeserializationSchema { ObjectMapper objectMapper; @Override public InputMessage deserialize(byte[] bytes) throws IOException { if(objectMapper == null) { objectMapper = new ObjectMapper().registerModule(new JavaTimeModule()); } return objectMapper.readValue(bytes, InputMessage.class); } @Override public boolean isEndOfStream(InputMessage inputMessage) { return false; } @Override public TypeInformation getProducedType() { return TypeInformation.of(InputMessage.class); } }