Decathlon / Decathlon/tzatziki
Can't read avro schemas as an array
- Dominant language
- Java
- Stars
- 87
- Forks
- 42
- Avg merge
- 4d 7h
- Merged PRs (30d)
- 32
Description
The current method 'an_avro_schema()' automatically cast the result as a Map.
We could improve this by allowing either Map or List.
Going from :
`Map asMap = Mapper.read(objects.resolve(content));
String name = (String) asMap.get("name");
assertThat(name).isNotNull();
Schema schema = new Schema.Parser().parse(Mapper.toJson(asMap));
objects.add("_kafka.schemas." + name.toLowerCase(ROOT), schema);
`
to :
`var avro = Mapper.read(objects.resolve(content));
if (avro == null) {
return;
}
if (avro instanceof Map asMap) {
String name = (String) asMap.get("name");
assertThat(name).isNotNull();
Schema schema = new Schema.Parser().parse(Mapper.toJson(asMap));
objects.add("_kafka.schemas." + name.toLowerCase(ROOT), schema);
}
if (avro instanceof List asList) {
asList.forEach(( obj) -> {
var asMap = (Map) obj;
String name = (String) asMap.get("name");
assertThat(name).isNotNull();
Schema schema = new Schema.Parser().parse(Mapper.toJson(asMap));
objects.add("_kafka.schemas." + name.toLowerCase(ROOT), schema);
});
}`
Note here that as the library it built with SDK17, I could not make use of pattern matching.
Contributor guide
Assessment
This issue has not been assessed yet.