fix(arvoparser): Support array as root schema type #226
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This commit adds support for array as root schema type for Avro schemas. The AvroSchemaParser now handles cases where the root schema is an array containing a single item. The loadMainSchema function has been updated to coerce the array into a json object with type array and items set to the JSONObject. The resolveLocalReferences function has been updated to handle the case where the root schema is an array and return the resolved schema as an array. Added tests to verify the new functionality.
In an old version of this plugin a few versions ago. We were able to register a subject of array type as simple as
[ foo]. This MR brings it back for arvo parser.The change is a bit hacky because I had to work around the limitation of
org.json. But the good news is it is self contained insideAvroSchemaParserwhich is hopefully not too bad.