Thanks Doug. That does seem to compile the schema, unfortunately however, I am still unable to read the record.
Exception in thread "main" org.apache.avro.AvroTypeException: Found TUPLE_21, expecting union Have you managed to read the record? On Fri, Oct 11, 2013 at 2:43 PM, Doug Cutting <[email protected]> wrote: > Thanks for the complete example. I can get this to compile by > removing the "package com.company" from Main.java. > > The Java specification says, "It is a compile time error to import a > type from the unnamed package." So you'll only be able to use these > classes from other classes in the unnamed package, which isn't very > useful. > > You can add a namespace to your .avsc file, and alias it to the > non-namespaced version so that it still matches, e,g: > > ..., "name":"com.company.TUPLE_20", "alias":".TUPLE_20", ... > > That gets things to compile for me without removing the package in > your Main.java. > > Doug > > On Fri, Oct 11, 2013 at 1:59 PM, Vitaly Gordon <[email protected]> wrote: > > Hi Doug, > > I've attached a maven project that contains code that shows the problem. > > The code is basically the same one from the Avro guide, but what is > > important to observe is that since the Main class has a package define, > it > > cannot import the classes generated from the namespace-less schema. > > > > just run mvn:compile to get the compilation errors > > > > Thanks, > > Vitaly > > > > > > On Thu, Oct 10, 2013 at 1:58 PM, Doug Cutting <[email protected]> > wrote: > >> > >> I encourage you to please provide a complete test, code that fails. > >> If maven is involved, create a simple, Maven project that illustrates > >> the problem. > >> > >> Thanks, > >> > >> Doug > >> > >> On Wed, Oct 9, 2013 at 11:21 PM, Vitaly Gordon <[email protected]> > wrote: > >> > Hi Doug, > >> > You are right, the code does compile with javac. Apparently it is some > >> > maven > >> > error, where it doesn't like to compile package-less files. > >> > > >> > Having said that, I still have the issue of not being able to use > these > >> > java > >> > files in my code, because there is no way to import them. One thing I > >> > tried > >> > that sometimes work is adding some arbitrary namespace to the avro > >> > schema. > >> > However, when I try to read records using the new (with namespace) > >> > schema, I > >> > get in return a generic record instead of a specific one. This > behavior > >> > can > >> > be observed in the same file I attached by adding an arbitrary > namespace > >> > to > >> > the schema before generating the Java classes from it. > >> > > >> > Is there any way to read specific records when the schema that was > used > >> > to > >> > write them contains no namespace? > >> > > >> > Thanks, > >> > Vitaly > >> > > >> > > >> > On Wed, Oct 9, 2013 at 6:07 PM, Doug Cutting <[email protected]> > wrote: > >> >> > >> >> Using the current trunk of Avro I am able to: > >> >> - extract the schema from the data file you provided (using > >> >> avro-tools schema command) > >> >> - generate Java classes for this schema (using the avro-tools > compile > >> >> command) > >> >> - compile these generated Java classes (using the javac command) > >> >> > >> >> Can you provide a complete case of what fails for you? > >> >> > >> >> Thanks, > >> >> > >> >> Doug > >> >> > >> >> On Wed, Oct 9, 2013 at 4:56 PM, Vitaly Gordon <[email protected]> > >> >> wrote: > >> >> > Does anyone else might have an idea how I can resolve this > >> >> > "namespace-less" > >> >> > Avro schema code generation? > >> >> > > >> >> > Thanks, > >> >> > Vitaly > >> >> > > >> >> > > >> >> > On Mon, Oct 7, 2013 at 2:04 PM, Vitaly Gordon <[email protected]> > >> >> > wrote: > >> >> >> > >> >> >> Hi Sean, > >> >> >> Here is a file that contains a single record that I cannot read > >> >> >> using a > >> >> >> specific reader. > >> >> >> > >> >> >> It's hard for me to add code because the problem is a compilation > >> >> >> problem > >> >> >> with the generated Java files. > >> >> >> > >> >> >> So to recreate the problem: > >> >> >> 1. Extract the schema from the record > >> >> >> 2. Generate the code from the schema > >> >> >> 3. Compile > >> >> >> > >> >> >> Is there another way that I can describe the issue? > >> >> >> > >> >> >> > >> >> >> > >> >> >> On Mon, Oct 7, 2013 at 10:58 AM, Sean Busbey <[email protected] > > > >> >> >> wrote: > >> >> >>> > >> >> >>> Hi Vitay! > >> >> >>> > >> >> >>> Can you give us a minimal schema and test program that > illustrates > >> >> >>> the > >> >> >>> problem you're describing? > >> >> >>> > >> >> >>> -- > >> >> >>> Sean > >> >> >>> > >> >> >>> On Oct 7, 2013 12:27 PM, "Vitaly Gordon" <[email protected]> > wrote: > >> >> >>>> > >> >> >>>> Hi All, > >> >> >>>> I am trying to read Avro data that its schema does not have a > >> >> >>>> namespace. > >> >> >>>> The problem is that I cannot compile the classes, because the > >> >> >>>> generated Java > >> >> >>>> code does not have a package. On the other hand, if I do add > some > >> >> >>>> arbitrary > >> >> >>>> namespace to the schema, the record is resolved as a generic > one, > >> >> >>>> which then > >> >> >>>> fails on ClassCastException to the specific record. > >> >> >>>> > >> >> >>>> Any ideas on how I can resolve this issue? > >> >> >>>> > >> >> >>>> Thanks, > >> >> >>>> Vitay > >> >> >> > >> >> >> > >> >> > > >> > > >> > > > > > >
