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.networknt.schema.JsonSchema,T>
io.apicurio.registry.serde.jsonschema.JsonSchemaKafkaSerializer<T>
All Implemented Interfaces:
Closeable, AutoCloseable, org.apache.kafka.common.serialization.Serializer<T>

public class JsonSchemaKafkaSerializer<T> extends AbstractKafkaSerializer<com.networknt.schema.JsonSchema,T> implements org.apache.kafka.common.serialization.Serializer<T>
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, Carles Arnal
  • Constructor Details

    • JsonSchemaKafkaSerializer

      public JsonSchemaKafkaSerializer()
    • JsonSchemaKafkaSerializer

      public JsonSchemaKafkaSerializer(io.apicurio.registry.rest.client.RegistryClient client, io.apicurio.registry.resolver.strategy.ArtifactReferenceResolverStrategy<com.networknt.schema.JsonSchema,T> artifactResolverStrategy, io.apicurio.registry.resolver.SchemaResolver<com.networknt.schema.JsonSchema,T> schemaResolver)
    • JsonSchemaKafkaSerializer

      public JsonSchemaKafkaSerializer(io.apicurio.registry.rest.client.RegistryClient client)
    • JsonSchemaKafkaSerializer

      public JsonSchemaKafkaSerializer(io.apicurio.registry.resolver.SchemaResolver<com.networknt.schema.JsonSchema,T> schemaResolver)
    • JsonSchemaKafkaSerializer

      public JsonSchemaKafkaSerializer(io.apicurio.registry.rest.client.RegistryClient client, Boolean validationEnabled)
  • Method Details

    • configure

      public void configure(Map<String,?> configs, boolean isKey)
      Specified by:
      configure in interface org.apache.kafka.common.serialization.Serializer<T>
      Overrides:
      configure in class AbstractKafkaSerializer<com.networknt.schema.JsonSchema,T>
      See Also:
    • isValidationEnabled

      public boolean isValidationEnabled()
    • setObjectMapper

      public void setObjectMapper(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
    • setValidationEnabled

      public void setValidationEnabled(Boolean validationEnabled)
      Parameters:
      validationEnabled - the validationEnabled to set
    • schemaParser

      public io.apicurio.registry.resolver.SchemaParser<com.networknt.schema.JsonSchema,T> schemaParser()
      Specified by:
      schemaParser in class AbstractKafkaSerDe<com.networknt.schema.JsonSchema,T>
      See Also:
    • serializeData

      protected void serializeData(io.apicurio.registry.resolver.ParsedSchema<com.networknt.schema.JsonSchema> schema, T data, OutputStream out) throws IOException
      Specified by:
      serializeData in class AbstractKafkaSerializer<com.networknt.schema.JsonSchema,T>
      Throws:
      IOException
      See Also:
      • io.apicurio.registry.serde.AbstractKafkaSerializer#serializeData(io.apicurio.registry.serde.ParsedSchema, java.lang.Object, java.io.OutputStream)
    • serializeData

      protected void serializeData(org.apache.kafka.common.header.Headers headers, io.apicurio.registry.resolver.ParsedSchema<com.networknt.schema.JsonSchema> schema, T data, OutputStream out) throws IOException
      Specified by:
      serializeData in class AbstractKafkaSerializer<com.networknt.schema.JsonSchema,T>
      Throws:
      IOException
      See Also:
      • io.apicurio.registry.serde.AbstractKafkaSerializer#serializeData(org.apache.kafka.common.header.Headers, io.apicurio.registry.serde.ParsedSchema, java.lang.Object, java.io.OutputStream)