I've got a building version with Chris Wilkes' changes. I'd be happy to include this in an Avro distribution. Should I just open a JIRA to that effect and point to this github project?
On Fri, Sep 2, 2011 at 5:28 PM, Chris Wilkes <[email protected]> wrote: > Oh and I'm the one that did the pull request. I changed the name of > the avro class to "MyPair" as I was confused when reading it with > avro's own "Pair" class. > > What I usually do is put all of my avro schemas into a separate > project with nothing else in it. Then I have all my other projects > depend on that one, in this case AvroExample.java would be a in a > separate project from MyPair.avsc. This gets around weirdness with > mvn install vs Eclipse seeing the updated files, etc. > > On Fri, Sep 2, 2011 at 5:20 PM, W.P. McNeill <[email protected]> wrote: > > Still having trouble with this. > > The name change was part of merging the pull request on github. My last > > email details where I'm at right now. The pull request code looks > correct; > > I'm just trying to get it to build in my Maven environment. > > > > On Fri, Sep 2, 2011 at 5:19 PM, Scott Carey <[email protected]> > wrote: > >> > >> Are you still having trouble with this? I noticed that the code has > >> changed and you are using MyPair instead of Pair. Was there a naming > >> conflict bug with Avro's Pair.java? > >> -Scott > >> On 9/2/11 3:46 PM, "W.P. McNeill" <[email protected]> wrote: > >> > >> I made changes that got rid of all the deprecated calls. I think I am > >> using the 1.5 interface correctly. However, I get a runtime error when > I > >> try to deserialize into a class using a SpecificDataumReader. The > problem > >> starts at line 62 of AvroExample.java. The code looks like this: > >> DatumReader<Pair> reader = new > >> SpecificDatumReader<Pair>(Pair.class); > >> BinaryDecoder decoder = > >> DecoderFactory.get().binaryDecoder(out.toByteArray(), null); > >> Pair result = reader.read(null, decoder); > >> System.out.printf("Left: %s, Right: %s\n", result.left, > >> result.right); > >> Where Pair is an object I have SpecificRecord that I have in this > project. > >> When I deserialize with reader.read() I get the following runtime error: > >> Exception in thread "main" java.lang.ClassCastException: > >> org.apache.avro.generic.GenericData$Record cannot be cast to wpmcn.Pair > >> at wpmcn.AvroExample.serializeSpecific(AvroExample.java:64) > >> at wpmcn.AvroExample.main(AvroExample.java:73) > >> When I step into the debugger I see that the GenericDatumReader.read() > >> function has type D as GenericData. > >> Presumably I'm calling something wrong but I can't figure out what. > >> On Fri, Sep 2, 2011 at 3:02 PM, Philip Zeyliger <[email protected]> > >> wrote: > >>> > >>> EncoderFactory.get().binaryEncoder(...). > >>> I encourage you to file a JIRA and submit a patch to AVRO. Having > >>> example code in the code base seems like a win to me. > >>> -- Philip > >>> > >>> On Fri, Sep 2, 2011 at 2:41 PM, W.P. McNeill <[email protected]> > wrote: > >>>> > >>>> I'm new to Avro. Since I'm having trouble finding simple examples > online > >>>> I'm writing one of my own that I'm putting on github. > >>>> https://github.com/wpm/AvroExample > >>>> Hopefully, this will be of help to people like me who are also having > >>>> trouble finding simple code examples. > >>>> I want to get this compiling without of hitch in Maven. I had it > running > >>>> with a 1.4 version of Avro, but when I changed that to 1.5, some of > the code > >>>> no longer works. Specifically, BinaryEncoder can no longer be > instantiated > >>>> directly because it is now an abstract class (AvroExample.java: line > 33) and > >>>> DecoderFactory.defaultFactory is deprecated (AvroExample.java: line > 41). > >>>> How should I modify this code so that it works with the latest and > >>>> greatest version of Avro? I looked through the Release Notes, but the > >>>> answers weren't obvious. > >>>> Thanks. > >>> > >> > > > > >
