in example/src/main/java/org/apache/rocketmq/schema/registry/example/serde/avro/GenericAvroSerdeDemo.java [33:59]
public static void main(String[] args) {
String baseUrl = "http://localhost:8080";
SchemaRegistryClient schemaRegistryClient = SchemaRegistryClientFactory.newClient(baseUrl, null);
Schema schema = new Schema.Parser().parse("{\"type\":\"record\",\"name\":\"Charge\",\"namespace\":\"org.apache.rocketmq.schema.registry.example.serde\",\"fields\":[{\"name\":\"item\",\"type\":\"string\"},{\"name\":\"amount\",\"type\":\"double\"}]}");
GenericRecord record = new GenericRecordBuilder(schema)
.set("item", "generic")
.set("amount", 100.0)
.build();
try (GenericAvroSerde serde = new GenericAvroSerde(schemaRegistryClient)) {
//configure
Map<String, Object> configs = new HashMap<>();
configs.put(AvroSerdeConfig.USE_GENERIC_DATUM_READER, true);
serde.configure(configs);
//serialize
byte[] bytes = serde.serializer().serialize("TopicTest", record);
//deserialize
GenericRecord record1 = serde.deserializer().deserialize("TopicTest", bytes);
System.out.println("the origin object after ser/de is " + record1);
} catch (IOException e) {
System.out.println("serde shutdown failed");
}
}