Class SchemaBuilderUtil


  • public class SchemaBuilderUtil
    extends Object
    JSON payload SchemaBuilder util for Debezium Outbox Transform Event Router.
    Author:
    Laurent Broudoux ([email protected])
    • Constructor Detail

      • SchemaBuilderUtil

        public SchemaBuilderUtil()
    • Method Detail

      • jsonNodeToSchema

        public static org.apache.kafka.connect.data.Schema jsonNodeToSchema​(com.fasterxml.jackson.databind.JsonNode document)
        Build a new connect Schema inferring structure and types from Json document.
        Parameters:
        document - A Jackson JsonNode to extract schema from
        Returns:
        A new Schema matching this Json node.
      • jsonNodeToSchemaBuilder

        private static org.apache.kafka.connect.data.SchemaBuilder jsonNodeToSchemaBuilder​(com.fasterxml.jackson.databind.JsonNode document)
      • addFieldSchema

        private static void addFieldSchema​(Map.Entry<String,​com.fasterxml.jackson.databind.JsonNode> fieldEntry,
                                           org.apache.kafka.connect.data.SchemaBuilder builder)
      • jsonValueToSchema

        private static org.apache.kafka.connect.data.Schema jsonValueToSchema​(com.fasterxml.jackson.databind.JsonNode node)
      • getFirstArrayElement

        private static com.fasterxml.jackson.databind.JsonNode getFirstArrayElement​(com.fasterxml.jackson.databind.node.ArrayNode array)
                                                                             throws org.apache.kafka.connect.errors.ConnectException
        Throws:
        org.apache.kafka.connect.errors.ConnectException
      • findArrayMemberSchema

        private static org.apache.kafka.connect.data.Schema findArrayMemberSchema​(com.fasterxml.jackson.databind.node.ArrayNode array)
                                                                           throws org.apache.kafka.connect.errors.ConnectException
        Throws:
        org.apache.kafka.connect.errors.ConnectException
      • buildDocumentUnionSchema

        private static org.apache.kafka.connect.data.Schema buildDocumentUnionSchema​(com.fasterxml.jackson.databind.node.ArrayNode array)