Interface AvroSchemaServiceManager
- All Known Implementing Classes:
AvroSchemaServiceManagerImpl
public interface AvroSchemaServiceManager
Manage a
Schema
together with its String representation.
Helps to substitute the default implementation of Schema
Generation using Custom Avro schema generator
Provide a custom bean definition of AvroSchemaServiceManager
to override the default implementation.
Migrating this interface from the original Spring Cloud Schema Registry project.- Since:
- 3.2.0
- Author:
- Ish Mahajan, Soby Chacko
-
Method Summary
Modifier and TypeMethodDescriptionorg.apache.avro.io.DatumReader<Object>
getDatumReader
(Class<? extends Object> type, org.apache.avro.Schema schema, org.apache.avro.Schema writerSchema) getDatumReader
.org.apache.avro.io.DatumWriter<Object>
getDatumWriter
(Class<? extends Object> type, org.apache.avro.Schema schema) getDatumWriter
.org.apache.avro.Schema
getSchema
.readData
(Class<? extends Object> targetClass, byte[] payload, org.apache.avro.Schema readerSchema, org.apache.avro.Schema writerSchema) read data from avro type payloadDatumReader
.
-
Method Details
-
getSchema
getSchema
.- Parameters:
clazz
-Class
for which schema generation is required- Returns:
- returns avro schema for given class
-
getDatumWriter
org.apache.avro.io.DatumWriter<Object> getDatumWriter(Class<? extends Object> type, org.apache.avro.Schema schema) getDatumWriter
.- Parameters:
type
-Class
of java object which needs to be serializedschema
-Schema
of object which needs to be serialized- Returns:
- datum writer which can be used to write Avro payload
-
getDatumReader
org.apache.avro.io.DatumReader<Object> getDatumReader(Class<? extends Object> type, org.apache.avro.Schema schema, org.apache.avro.Schema writerSchema) getDatumReader
.- Parameters:
type
-Class
of java object which needs to be serializedschema
-Schema
default schema of object which needs to be de-serializedwriterSchema
-Schema
writerSchema provided at run time- Returns:
- datum reader which can be used to read Avro payload
-
readData
Object readData(Class<? extends Object> targetClass, byte[] payload, org.apache.avro.Schema readerSchema, org.apache.avro.Schema writerSchema) throws IOException read data from avro type payloadDatumReader
.- Parameters:
targetClass
-Class
of java object which needs to be serializedpayload
-byte
serialized payload of object which needs to be de-serializedreaderSchema
-Schema
readerSchema of object which needs to be de-serializedwriterSchema
-Schema
writerSchema used to while serializing payload- Returns:
- java object after reading Avro Payload
- Throws:
IOException
- in case of error
-