Class JsonSchemaKafkaDeserializer<T>

  • All Implemented Interfaces:
    io.apicurio.registry.resolver.SchemaParser<com.networknt.schema.JsonSchema,​T>, Closeable, AutoCloseable, org.apache.kafka.common.serialization.Deserializer<T>

    public class JsonSchemaKafkaDeserializer<T>
    extends AbstractKafkaDeserializer<com.networknt.schema.JsonSchema,​T>
    implements org.apache.kafka.common.serialization.Deserializer<T>, io.apicurio.registry.resolver.SchemaParser<com.networknt.schema.JsonSchema,​T>
    Author:
    eric.wittmann@gmail.com, Ales Justin, Fabian Martinez, Carles Arnal
    • Field Detail

      • mapper

        protected static com.fasterxml.jackson.databind.ObjectMapper mapper
    • Constructor Detail

      • JsonSchemaKafkaDeserializer

        public JsonSchemaKafkaDeserializer()
      • JsonSchemaKafkaDeserializer

        public JsonSchemaKafkaDeserializer​(io.apicurio.registry.rest.client.RegistryClient client,
                                           io.apicurio.registry.resolver.SchemaResolver<com.networknt.schema.JsonSchema,​T> schemaResolver)
      • JsonSchemaKafkaDeserializer

        public JsonSchemaKafkaDeserializer​(io.apicurio.registry.rest.client.RegistryClient client)
      • JsonSchemaKafkaDeserializer

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

        public JsonSchemaKafkaDeserializer​(io.apicurio.registry.rest.client.RegistryClient client,
                                           Boolean validationEnabled)
    • Method Detail

      • isValidationEnabled

        public boolean isValidationEnabled()
      • artifactType

        public io.apicurio.registry.types.ArtifactType artifactType()
        Specified by:
        artifactType in interface io.apicurio.registry.resolver.SchemaParser<com.networknt.schema.JsonSchema,​T>
        See Also:
        SchemaParser.artifactType()
      • parseSchema

        public com.networknt.schema.JsonSchema parseSchema​(byte[] rawSchema)
        Specified by:
        parseSchema in interface io.apicurio.registry.resolver.SchemaParser<com.networknt.schema.JsonSchema,​T>
        See Also:
        SchemaParser.parseSchema(byte[])
      • getSchemaFromData

        public io.apicurio.registry.resolver.ParsedSchema<com.networknt.schema.JsonSchema> getSchemaFromData​(io.apicurio.registry.resolver.data.Record<T> data)
        Specified by:
        getSchemaFromData in interface io.apicurio.registry.resolver.SchemaParser<com.networknt.schema.JsonSchema,​T>
        See Also:
        io.apicurio.registry.resolver.SchemaParser#getSchemaFromData(java.lang.Object)
      • supportsExtractSchemaFromData

        public boolean supportsExtractSchemaFromData()
        Specified by:
        supportsExtractSchemaFromData in interface io.apicurio.registry.resolver.SchemaParser<com.networknt.schema.JsonSchema,​T>
        See Also:
        SchemaParser.supportsExtractSchemaFromData()
      • readData

        protected T readData​(io.apicurio.registry.resolver.ParsedSchema<com.networknt.schema.JsonSchema> schema,
                             ByteBuffer buffer,
                             int start,
                             int length)
        Specified by:
        readData in class AbstractKafkaDeserializer<com.networknt.schema.JsonSchema,​T>
        See Also:
        io.apicurio.registry.serde.AbstractKafkaDeserializer#readData(io.apicurio.registry.serde.ParsedSchema, java.nio.ByteBuffer, int, int)
      • readData

        protected T readData​(org.apache.kafka.common.header.Headers headers,
                             io.apicurio.registry.resolver.ParsedSchema<com.networknt.schema.JsonSchema> schema,
                             ByteBuffer buffer,
                             int start,
                             int length)
        Specified by:
        readData in class AbstractKafkaDeserializer<com.networknt.schema.JsonSchema,​T>
        See Also:
        io.apicurio.registry.serde.AbstractKafkaDeserializer#readData(org.apache.kafka.common.header.Headers, io.apicurio.registry.serde.ParsedSchema, java.nio.ByteBuffer, int, int)