[ https://issues.apache.org/jira/browse/AVRO-1188?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13498867#comment-13498867 ]
Sharmarke Aden commented on AVRO-1188: -------------------------------------- I have created AVRO-1207 and submitted a patch for it. It adds tests for all the mojos and it also tests schema imports. > External Schema Imports via AVSC Schema > --------------------------------------- > > Key: AVRO-1188 > URL: https://issues.apache.org/jira/browse/AVRO-1188 > Project: Avro > Issue Type: New Feature > Components: java > Reporter: Sharmarke Aden > Assignee: Sharmarke Aden > Fix For: 1.7.3 > > Attachments: Avro-1188.tar.gz, Avro-1188.tar.gz, > vcs-diff1160361655737792386.patch, vcs-diff2916139350460140957.patch, > vcs-diff4277815358664835838.patch, vcs-diff6739872835137179667.patch > > > There is no way for ".avsc" schema files to import types (i.e records, enums, > etc) in external schema files. There's tremendous benefit in being able to do > this as it would allow the sharing of common types between multiple schema > files. Here's a use case that illustrates the typical usecase of this feature > request. > Suppose we have an enum called "Privacy" that we would like to share between > multiple schemas: > {code} > //privacy.avsc > { > "type": "enum", > "name": "Privacy", > "symbols" : ["Public", "Private"] > } > {code} > Now, if this feature was implemented one could import the above type into > other schema files by doing something like this: > {code} > //the post.avsc > { > "type": "record", > "name": "Post", > "imports": ["privacy.avsc"] //you can import one or more schemas > "fields": [{ > "name": "privacy", > "type": [ "null", "Privacy"], //use imported Privacy type > "default": "Private" > } > ] > } > {code} > Here's another schema file that also has a similar privacy concern: > {code} > //the event.avsc is another schema that also imports the privacy type > { > "type": "record", > "name": "Event", > "imports": ["privacy.avsc"] //it also imports the privacy schemas > "fields": [{ > "name": "privacy", > "type": [ "null", "Privacy"], //use imported Privacy type > "default": "Public" > } > ] > } > {code} > IDL files are able to import external schemas and protocols and it would be > very beneficial if schema files could import other schema files. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira