Class AvroData
- java.lang.Object
-
- io.apicurio.registry.utils.converter.avro.AvroData
-
public class AvroData extends Object
Utilities for converting between our runtime data format and Avro, and (de)serializing that data.
-
-
Field Summary
Fields Modifier and Type Field Description static org.apache.avro.Schema
ANYTHING_SCHEMA
static org.apache.avro.Schema
ANYTHING_SCHEMA_MAP_ELEMENT
static String
AVRO_TYPE_ANYTHING
static String
AVRO_TYPE_ENUM
static String
AVRO_TYPE_UNION
static String
CONNECT_DEFAULT_VALUE_PROP
static String
CONNECT_DOC_PROP
static String
CONNECT_ENUM_DOC_PROP
static String
CONNECT_INTERNAL_TYPE_NAME
static String
CONNECT_NAME_PROP
static String
CONNECT_PARAMETERS_PROP
static String
CONNECT_RECORD_DOC_PROP
static String
CONNECT_TYPE_INT16
static String
CONNECT_TYPE_INT8
static String
CONNECT_TYPE_PROP
static String
CONNECT_VERSION_PROP
static String
DEFAULT_SCHEMA_FULL_NAME
static String
DEFAULT_SCHEMA_NAME
static String
KEY_FIELD
static String
MAP_ENTRY_TYPE_NAME
static String
NAMESPACE
static String
VALUE_FIELD
-
Constructor Summary
Constructors Constructor Description AvroData(int cacheSize)
AvroData(AvroDataConfig avroDataConfig)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static List<org.apache.kafka.connect.data.Field>
fields(org.apache.kafka.connect.data.Schema schema)
Object
fromConnectData(org.apache.kafka.connect.data.Schema schema, Object value)
Convert this object, in Connect data format, into an Avro object.org.apache.avro.Schema
fromConnectSchema(org.apache.kafka.connect.data.Schema schema)
org.apache.avro.Schema
fromConnectSchema(org.apache.kafka.connect.data.Schema schema, io.apicurio.registry.utils.converter.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.org.apache.avro.Schema
fromConnectSchema(org.apache.kafka.connect.data.Schema schema, Map<org.apache.kafka.connect.data.Schema,org.apache.avro.Schema> schemaMap)
org.apache.avro.Schema
fromConnectSchemaWithCycle(org.apache.kafka.connect.data.Schema schema, io.apicurio.registry.utils.converter.avro.AvroData.FromConnectContext fromConnectContext, boolean ignoreOptional)
protected boolean
getForceOptionalDefault()
static org.apache.kafka.connect.data.Schema
keySchema(org.apache.kafka.connect.data.Schema schema)
static org.apache.kafka.connect.data.Schema
nonOptional(org.apache.kafka.connect.data.Schema schema)
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.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.org.apache.kafka.connect.data.Schema
toConnectSchema(org.apache.avro.Schema schema)
static org.apache.kafka.connect.data.Schema
valueSchema(org.apache.kafka.connect.data.Schema schema)
-
-
-
Field Detail
-
NAMESPACE
public static final String NAMESPACE
- See Also:
- Constant Field Values
-
DEFAULT_SCHEMA_NAME
public static final String DEFAULT_SCHEMA_NAME
- See Also:
- Constant Field Values
-
DEFAULT_SCHEMA_FULL_NAME
public static final String DEFAULT_SCHEMA_FULL_NAME
- See Also:
- Constant Field Values
-
MAP_ENTRY_TYPE_NAME
public static final String MAP_ENTRY_TYPE_NAME
- See Also:
- Constant Field Values
-
KEY_FIELD
public static final String KEY_FIELD
- See Also:
- Constant Field Values
-
VALUE_FIELD
public static final String VALUE_FIELD
- See Also:
- Constant Field Values
-
CONNECT_NAME_PROP
public static final String CONNECT_NAME_PROP
- See Also:
- Constant Field Values
-
CONNECT_DOC_PROP
public static final String CONNECT_DOC_PROP
- See Also:
- Constant Field Values
-
CONNECT_RECORD_DOC_PROP
public static final String CONNECT_RECORD_DOC_PROP
- See Also:
- Constant Field Values
-
CONNECT_ENUM_DOC_PROP
public static final String CONNECT_ENUM_DOC_PROP
- See Also:
- Constant Field Values
-
CONNECT_VERSION_PROP
public static final String CONNECT_VERSION_PROP
- See Also:
- Constant Field Values
-
CONNECT_DEFAULT_VALUE_PROP
public static final String CONNECT_DEFAULT_VALUE_PROP
- See Also:
- Constant Field Values
-
CONNECT_PARAMETERS_PROP
public static final String CONNECT_PARAMETERS_PROP
- See Also:
- Constant Field Values
-
CONNECT_INTERNAL_TYPE_NAME
public static final String CONNECT_INTERNAL_TYPE_NAME
- See Also:
- Constant Field Values
-
CONNECT_TYPE_PROP
public static final String CONNECT_TYPE_PROP
- See Also:
- Constant Field Values
-
CONNECT_TYPE_INT8
public static final String CONNECT_TYPE_INT8
- See Also:
- Constant Field Values
-
CONNECT_TYPE_INT16
public static final String CONNECT_TYPE_INT16
- See Also:
- Constant Field Values
-
AVRO_TYPE_UNION
public static final String AVRO_TYPE_UNION
- See Also:
- Constant Field Values
-
AVRO_TYPE_ENUM
public static final String AVRO_TYPE_ENUM
- See Also:
- Constant Field Values
-
AVRO_TYPE_ANYTHING
public static final String AVRO_TYPE_ANYTHING
- See Also:
- Constant Field Values
-
ANYTHING_SCHEMA_MAP_ELEMENT
public static final org.apache.avro.Schema ANYTHING_SCHEMA_MAP_ELEMENT
-
ANYTHING_SCHEMA
public static final org.apache.avro.Schema ANYTHING_SCHEMA
-
-
Constructor Detail
-
AvroData
public AvroData(int cacheSize)
-
AvroData
public AvroData(AvroDataConfig avroDataConfig)
-
-
Method Detail
-
fromConnectData
public Object fromConnectData(org.apache.kafka.connect.data.Schema schema, Object value)
Convert this object, in Connect data format, into an Avro object.
-
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.apicurio.registry.utils.converter.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.
-
fromConnectSchemaWithCycle
public org.apache.avro.Schema fromConnectSchemaWithCycle(org.apache.kafka.connect.data.Schema schema, io.apicurio.registry.utils.converter.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 schemavalue
- 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 schemavalue
- the value to convert into a Connect data objectversion
- 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)
-
-