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.MedeiaJacksonApiapiprotected static com.fasterxml.jackson.databind.ObjectMappermapper-
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.ArtifactTypeartifactType()voidconfigure(Map<String,?> configs, boolean isKey)booleanisValidationEnabled()com.worldturner.medeia.schema.validation.SchemaValidatorparseSchema(byte[] rawSchema)SchemaParser<com.worldturner.medeia.schema.validation.SchemaValidator>schemaParser()protected voidserializeData(ParsedSchema<com.worldturner.medeia.schema.validation.SchemaValidator> schema, T data, OutputStream out)protected voidserializeData(org.apache.kafka.common.header.Headers headers, ParsedSchema<com.worldturner.medeia.schema.validation.SchemaValidator> schema, T data, OutputStream out)voidsetValidationEnabled(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:
configurein interfaceorg.apache.kafka.common.serialization.Serializer<T>- Overrides:
configurein 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:
schemaParserin classAbstractKafkaSerDe<com.worldturner.medeia.schema.validation.SchemaValidator,T>- See Also:
AbstractKafkaSerDe.schemaParser()
-
artifactType
public io.apicurio.registry.types.ArtifactType artifactType()
- Specified by:
artifactTypein interfaceSchemaParser<T>- See Also:
SchemaParser.artifactType()
-
parseSchema
public com.worldturner.medeia.schema.validation.SchemaValidator parseSchema(byte[] rawSchema)
- Specified by:
parseSchemain 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:
serializeDatain 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:
serializeDatain 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)
-
-