I'm currently working around the issue of inter-dependencies between Avro schema files in my Gradle Avro plugin. It uses a similar approach to what the command-line compiler does, making the previously parsed types available to later parsing operations. What it does differently is recognizing failures due to unrecognized types, and re-trying them later. This isn't the most efficient way to do it, but it allows compiling the schemas without manually specifying what order to process them.
https://github.com/commercehub-oss/gradle-avro-plugin On Fri, Nov 8, 2013 at 3:48 PM, Lewis John Mcgibbney < [email protected]> wrote: > Hi Doug, > Thanks for getting back to me. > Of course I read it all through, but its the last part of your comment > that has grabbed my attention. > > On Fri, Nov 8, 2013 at 8:36 PM, Doug Cutting <[email protected]> wrote: > >> >> Nesting would certainly work, but may make things harder to maintain >> if you reference the type in several different .avsc files. >> > > +1. I realized this 5 mins after I sent the mail you replied to :) > >> >> But, from what I can tell, the Gora >> compiler does not currently support this (although it would not be >> hard to add). >> > > ... we've not needed it yet. :) However, yeah that doesn't mean it won't > happen int he future. > > >> >> Avro IDL does support imports, so you might use Avro's IDL compiler to >> convert .avdl files to .avsc files that expand nested types, then use >> the Gora compiler to compile these. >> >> > This sounds like just the ticket... AND you guys wrote the > avro-maven-plugin. How good is that ;) > Thanks for feedback. > Lewis > -- David M. Carr [email protected]
