Class SchemaBuilderUtil

java.lang.Object
io.debezium.transforms.outbox.SchemaBuilderUtil

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

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    private static void
    addFieldSchema(Map.Entry<String,com.fasterxml.jackson.databind.JsonNode> fieldEntry, org.apache.kafka.connect.data.SchemaBuilder builder)
     
    private static org.apache.kafka.connect.data.Schema
    buildDocumentUnionSchema(com.fasterxml.jackson.databind.node.ArrayNode array)
     
    private static org.apache.kafka.connect.data.Schema
    findArrayMemberSchema(com.fasterxml.jackson.databind.node.ArrayNode array)
     
    private static com.fasterxml.jackson.databind.JsonNode
    getFirstArrayElement(com.fasterxml.jackson.databind.node.ArrayNode array)
     
    private static boolean
    hasField(org.apache.kafka.connect.data.SchemaBuilder builder, String fieldName)
     
    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.
    private static org.apache.kafka.connect.data.SchemaBuilder
    jsonNodeToSchemaBuilder(com.fasterxml.jackson.databind.JsonNode document)
     
    private static org.apache.kafka.connect.data.Schema
    jsonValueToSchema(com.fasterxml.jackson.databind.JsonNode node)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • SchemaBuilderUtil

      public SchemaBuilderUtil()
  • Method Details

    • 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)
    • hasField

      private static boolean hasField(org.apache.kafka.connect.data.SchemaBuilder builder, String fieldName)