Создание схемы Avro из определенного объекта Java

Apache Avro обеспечивает компактный, быстрый, двоичный формат данных, богатую структуру данных для сериализации. Однако для этого требуется, чтобы пользователь определял схему (в JSON) для объекта, который должен быть сериализован.

В некоторых случаях это невозможно (например: класс этого Java-объекта имеет некоторые члены, типы которых являются внешними классами Java во внешних библиотеках). Поэтому мне интересно, есть ли инструмент, который может получить информацию из файла .class объекта и создать схему Avro для этого объекта (например, Gson использовать объект .class для преобразования определенного объекта в строку JSON).

Ответ 2

Здесь как Сгенерировать схему Avro из определения POJO

ObjectMapper mapper = new ObjectMapper(new AvroFactory());
AvroSchemaGenerator gen = new AvroSchemaGenerator();
mapper.acceptJsonFormatVisitor(RootType.class, gen);
AvroSchema schemaWrapper = gen.getGeneratedSchema();
org.apache.avro.Schema avroSchema = schemaWrapper.getAvroSchema();
String asJson = avroSchema.toString(true);