Class JsonSchemaKafkaSerializer<T>
- java.lang.Object
-
- io.apicurio.registry.serde.SchemaResolverConfigurer<T,U>
-
- io.apicurio.registry.serde.AbstractKafkaSerDe<T,U>
-
- io.apicurio.registry.serde.AbstractKafkaSerializer<com.worldturner.medeia.schema.validation.SchemaValidator,T>
-
- io.apicurio.registry.serde.jsonschema.JsonSchemaKafkaSerializer<T>
-
- All Implemented Interfaces:
SchemaParser<com.worldturner.medeia.schema.validation.SchemaValidator>
,Closeable
,AutoCloseable
,org.apache.kafka.common.serialization.Serializer<T>
public class JsonSchemaKafkaSerializer<T> extends AbstractKafkaSerializer<com.worldturner.medeia.schema.validation.SchemaValidator,T> implements org.apache.kafka.common.serialization.Serializer<T>, SchemaParser<com.worldturner.medeia.schema.validation.SchemaValidator>
An implementation of the Kafka Serializer for JSON Schema use-cases. This serializer assumes that the user's application needs to serialize a Java Bean to JSON data using Jackson. In addition to standard serialization of the bean, this implementation can also optionally validate it against a JSON schema.- Author:
- eric.wittmann@gmail.com, Ales Justin, Fabian Martinez
-
-
Field Summary
Fields Modifier and Type Field Description protected static com.worldturner.medeia.api.jackson.MedeiaJacksonApi
api
protected static com.fasterxml.jackson.databind.ObjectMapper
mapper
-
Fields inherited from class io.apicurio.registry.serde.AbstractKafkaSerDe
headersHandler, idHandler, key, log, MAGIC_BYTE
-
Fields inherited from class io.apicurio.registry.serde.SchemaResolverConfigurer
schemaResolver
-
-
Constructor Summary
Constructors Constructor Description JsonSchemaKafkaSerializer()
JsonSchemaKafkaSerializer(io.apicurio.registry.rest.client.RegistryClient client)
JsonSchemaKafkaSerializer(io.apicurio.registry.rest.client.RegistryClient client, ArtifactResolverStrategy<com.worldturner.medeia.schema.validation.SchemaValidator> artifactResolverStrategy, SchemaResolver<com.worldturner.medeia.schema.validation.SchemaValidator,T> schemaResolver)
JsonSchemaKafkaSerializer(io.apicurio.registry.rest.client.RegistryClient client, Boolean validationEnabled)
JsonSchemaKafkaSerializer(SchemaResolver<com.worldturner.medeia.schema.validation.SchemaValidator,T> schemaResolver)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description io.apicurio.registry.types.ArtifactType
artifactType()
void
configure(Map<String,?> configs, boolean isKey)
boolean
isValidationEnabled()
com.worldturner.medeia.schema.validation.SchemaValidator
parseSchema(byte[] rawSchema)
SchemaParser<com.worldturner.medeia.schema.validation.SchemaValidator>
schemaParser()
protected void
serializeData(ParsedSchema<com.worldturner.medeia.schema.validation.SchemaValidator> schema, T data, OutputStream out)
protected void
serializeData(org.apache.kafka.common.header.Headers headers, ParsedSchema<com.worldturner.medeia.schema.validation.SchemaValidator> schema, T data, OutputStream out)
void
setValidationEnabled(Boolean validationEnabled)
-
Methods inherited from class io.apicurio.registry.serde.AbstractKafkaSerializer
getSchemaFromData, serialize, serialize
-
Methods inherited from class io.apicurio.registry.serde.AbstractKafkaSerDe
asLegacyId, configure, getByteBuffer, getIdHandler, isKey, reset, setHeadersHandler, setIdHandler
-
Methods inherited from class io.apicurio.registry.serde.SchemaResolverConfigurer
configure, getSchemaResolver, setSchemaResolver
-
-
-
-
Constructor Detail
-
JsonSchemaKafkaSerializer
public JsonSchemaKafkaSerializer()
-
JsonSchemaKafkaSerializer
public JsonSchemaKafkaSerializer(io.apicurio.registry.rest.client.RegistryClient client, ArtifactResolverStrategy<com.worldturner.medeia.schema.validation.SchemaValidator> artifactResolverStrategy, SchemaResolver<com.worldturner.medeia.schema.validation.SchemaValidator,T> schemaResolver)
-
JsonSchemaKafkaSerializer
public JsonSchemaKafkaSerializer(io.apicurio.registry.rest.client.RegistryClient client)
-
JsonSchemaKafkaSerializer
public JsonSchemaKafkaSerializer(SchemaResolver<com.worldturner.medeia.schema.validation.SchemaValidator,T> schemaResolver)
-
JsonSchemaKafkaSerializer
public JsonSchemaKafkaSerializer(io.apicurio.registry.rest.client.RegistryClient client, Boolean validationEnabled)
-
-
Method Detail
-
configure
public void configure(Map<String,?> configs, boolean isKey)
- Specified by:
configure
in interfaceorg.apache.kafka.common.serialization.Serializer<T>
- Overrides:
configure
in classAbstractKafkaSerializer<com.worldturner.medeia.schema.validation.SchemaValidator,T>
- See Also:
AbstractKafkaSerializer.configure(java.util.Map, boolean)
-
isValidationEnabled
public boolean isValidationEnabled()
-
setValidationEnabled
public void setValidationEnabled(Boolean validationEnabled)
- Parameters:
validationEnabled
- the validationEnabled to set
-
schemaParser
public SchemaParser<com.worldturner.medeia.schema.validation.SchemaValidator> schemaParser()
- Specified by:
schemaParser
in classAbstractKafkaSerDe<com.worldturner.medeia.schema.validation.SchemaValidator,T>
- See Also:
AbstractKafkaSerDe.schemaParser()
-
artifactType
public io.apicurio.registry.types.ArtifactType artifactType()
- Specified by:
artifactType
in interfaceSchemaParser<T>
- See Also:
SchemaParser.artifactType()
-
parseSchema
public com.worldturner.medeia.schema.validation.SchemaValidator parseSchema(byte[] rawSchema)
- Specified by:
parseSchema
in interfaceSchemaParser<T>
- See Also:
SchemaParser.parseSchema(byte[])
-
serializeData
protected void serializeData(ParsedSchema<com.worldturner.medeia.schema.validation.SchemaValidator> schema, T data, OutputStream out) throws IOException
- Specified by:
serializeData
in classAbstractKafkaSerializer<com.worldturner.medeia.schema.validation.SchemaValidator,T>
- Throws:
IOException
- See Also:
AbstractKafkaSerializer.serializeData(io.apicurio.registry.serde.ParsedSchema, java.lang.Object, java.io.OutputStream)
-
serializeData
protected void serializeData(org.apache.kafka.common.header.Headers headers, ParsedSchema<com.worldturner.medeia.schema.validation.SchemaValidator> schema, T data, OutputStream out) throws IOException
- Specified by:
serializeData
in classAbstractKafkaSerializer<com.worldturner.medeia.schema.validation.SchemaValidator,T>
- Throws:
IOException
- See Also:
AbstractKafkaSerializer.serializeData(org.apache.kafka.common.header.Headers, io.apicurio.registry.serde.ParsedSchema, java.lang.Object, java.io.OutputStream)
-
-