Class AvroData

java.lang.Object
io.confluent.connect.avro.AvroData

public class AvroData extends Object
Utilities for converting between our runtime data format and Avro, and (de)serializing that data.
  • Field Details

  • Constructor Details

    • AvroData

      public AvroData(int cacheSize)
    • AvroData

      public AvroData(AvroDataConfig avroDataConfig)
  • Method Details

    • fromConnectData

      public Object fromConnectData(org.apache.kafka.connect.data.Schema schema, Object value)
      Convert this object, in Connect data format, into an Avro object.
    • fromConnectData

      protected Object fromConnectData(org.apache.kafka.connect.data.Schema schema, org.apache.avro.Schema avroSchema, Object value)
    • fromConnectSchema

      public org.apache.avro.Schema fromConnectSchema(org.apache.kafka.connect.data.Schema schema)
    • fromConnectSchema

      public org.apache.avro.Schema fromConnectSchema(org.apache.kafka.connect.data.Schema schema, Map<org.apache.kafka.connect.data.Schema,org.apache.avro.Schema> schemaMap)
    • fromConnectSchema

      public org.apache.avro.Schema fromConnectSchema(org.apache.kafka.connect.data.Schema schema, io.confluent.connect.avro.AvroData.FromConnectContext fromConnectContext, boolean ignoreOptional)
      SchemaMap is a map of already resolved internal schemas, this avoids type re-declaration if a type is reused, this actually blows up if you don't do this and have a type used in multiple places.

      Also it only holds reference the non-optional schemas as technically an optional is actually a union of null and the non-opitonal, which if used in multiple places some optional some non-optional will cause error as you redefine type.

      This is different to the global schema cache which is used to hold/cache fully resolved schemas used to avoid re-resolving when presented with the same source schema.

    • doScrubName

      protected static String doScrubName(String name)
    • fromConnectSchemaWithCycle

      public org.apache.avro.Schema fromConnectSchemaWithCycle(org.apache.kafka.connect.data.Schema schema, io.confluent.connect.avro.AvroData.FromConnectContext fromConnectContext, boolean ignoreOptional)
    • toConnectData

      public org.apache.kafka.connect.data.SchemaAndValue toConnectData(org.apache.avro.Schema avroSchema, Object value)
      Convert the given object, in Avro format, into a Connect data object.
      Parameters:
      avroSchema - the Avro schema
      value - the value to convert into a Connect data object
      Returns:
      the Connect schema and value
    • toConnectData

      public org.apache.kafka.connect.data.SchemaAndValue toConnectData(org.apache.avro.Schema avroSchema, Object value, Integer version)
      Convert the given object, in Avro format, into a Connect data object.
      Parameters:
      avroSchema - the Avro schema
      value - the value to convert into a Connect data object
      version - the version to set on the Connect schema if the avroSchema does not have a property named "connect.version", may be null
      Returns:
      the Connect schema and value
    • getForceOptionalDefault

      protected boolean getForceOptionalDefault()
    • toConnectSchema

      public org.apache.kafka.connect.data.Schema toConnectSchema(org.apache.avro.Schema schema)
    • nonOptional

      public static org.apache.kafka.connect.data.Schema nonOptional(org.apache.kafka.connect.data.Schema schema)
    • fields

      public static List<org.apache.kafka.connect.data.Field> fields(org.apache.kafka.connect.data.Schema schema)
    • keySchema

      public static org.apache.kafka.connect.data.Schema keySchema(org.apache.kafka.connect.data.Schema schema)
    • valueSchema

      public static org.apache.kafka.connect.data.Schema valueSchema(org.apache.kafka.connect.data.Schema schema)