[
https://issues.apache.org/jira/browse/AVRO-872?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13082750#comment-13082750
]
Bill Graham commented on AVRO-872:
----------------------------------
We'd like to continue to use avsc files because they're easier to read and
author and our developers are already familiar with them. They're also not
experimental and changing like the IDL language. So we'd just use IDL as a
mechanism to combine fragmented avsc files, like the initial problem statement:
{noformat}
@namespace("avro.examples.baseball")
protocol Baseball {
import schema "position.avsc";
import schema "player.avsc";
}
{noformat}
> Allow interdependancies across IDL schema imports
> -------------------------------------------------
>
> Key: AVRO-872
> URL: https://issues.apache.org/jira/browse/AVRO-872
> Project: Avro
> Issue Type: Improvement
> Reporter: Bill Graham
> Assignee: Doug Cutting
> Attachments: AVRO-872.patch, AVRO-872.patch, AVRO-872.patch,
> AVRO-872_4.patch
>
>
> This currently doesn't work because Player depends on Position, but it should:
> {noformat}
> $ cat position.avsc
> {"type":"enum", "name": "Position", "namespace": "avro.examples.baseball",
> "symbols": ["P", "C", "B1", "B2", "B3", "SS", "LF", "CF", "RF", "DH"]
> }
> $ cat player.avsc
> {"type":"record", "name":"Player", "namespace": "avro.examples.baseball",
> "fields": [
> {"name": "number", "type": "int"},
> {"name": "first_name", "type": "string"},
> {"name": "last_name", "type": "string"},
> {"name": "position", "type": {"type": "array", "items":
> "avro.examples.baseball.Position"} }
> ]
> }
> $ cat baseball.avdl
> @namespace("avro.examples.baseball")
> protocol Baseball {
> import schema "position.avsc";
> import schema "player.avsc";
> }
> $ java -jar avro-tools-1.5.1.jar idl baseball.avdl baseball.avpr
> {noformat}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira