Hi, that sounds exactly like what I want. I did use the commandline tools but I’ll try to set up the Maven plugin to automatically generate classes with goal IDL next time I need to edit them.
Thanks for the hint! Thomas > On 05.02.2016, at 02:16, Matheus Santana <edmatheus.sant...@gmail.com> wrote: > > Thomas, > > did you solve your problem already? > > You don't need nothing but the Avro Maven plugin for generating Java classes > from Avro IDL. That is exactly what the idl goal does. Your snippet looks > nice, just configure the idl goal instead of the schema goal. > > On Mon, Feb 1, 2016 at 11:03 AM, tl <t...@rat.io> wrote: > > > On 31.01.2016, at 01:13, Evan McClain <aeroe...@gmail.com> wrote: > > > > I have used IDLs with the avro-maven-plugin and that worked for me. > > Evan > > Maven is black art for me but your answer encouraged me to stare at the > command line output of avro-tools again (since I considered it improbable > that the maven-plugin can invoke things that the CLI can't). "idl2schemata" > does indeed provide a good part of what I want in that it omits the protocol > declarations and only transforms the schema parts. > > I guess that Maven would allow me to set up a process where Java classes > would be generated from the JSON schemata that idl2schemata extracts from the > IDL protocol definition but I’m having trouble figuring out how to configure > the POM. > > Just to prove that I’m not totally useless I googled me the following snippet > that should generate classes from a schema. > > <executions> > <execution> > <phase>generate-sources</phase> > <goals> > <goal>schema</goal> > </goals> > <configuration> > <sourceDirectory> > ${project.basedir}/src/main/avro/ > </sourceDirectory> > <outputDirectory> > ${project.basedir}/src/main/java/ > </outputDirectory> > </configuration> > </execution> > </executions> > > I reckon that a similar instruction, preceding this one, could initiate the > conversion from an IDl to a schema (like the CLI tool does with > "idl2schema"). What should the relevant snippet look like? > > > Thanks! > Thomas > > > > > > > > > > > > > > > > > On Sat, Jan 30, 2016, 8:52 AM tl <t...@rat.io> wrote: > > Hi, > > > > I started working with Avro only recently so maybe I missed something but > > it seems to me that schemas can be defined in JSON as well as in IDL but > > only from JSON schemas can builder classes be autogenerated. This is a pity > > since IDLs are much easier to write and read than the JSON representation. > > I wrote a few IDL schemas, converted them to avpr and tweaked those avpr > > files to become valid avsc schema files from which I autogenerated the > > classes. This is a rather convoluted process. I wouldn’t mind so much if I > > wouldn’t know that I or somebody else will have to update the schemas and > > classes from time to time. This doesn’t look like a robust workflow. > > > > Deleting the IDLs and avpr files and doing updates only in the avsc schemas > > reduces the workflow to 2 steps but I loose the nice properties of IDLs [0]. > > Using only generic mapping would reduce the workflow by one step too but > > I’d loose static type checking. > > > > I’d love to be able to autogenerate the Java classes from the IDLs > > directly. Is there a way? > > > > Regards, > > Thomas > > > > > > [0] Regarding IDLs it would be cool if I could forward reference objects in > > the schema or even write nested schemas but that’s a relatively minor gripe. > > > < he not busy being born is busy dying >