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 >> >> >> >> >> >> >> >> > >> > >> > > >
