Home | About | Sematext search-lucene.com search-hadoop.com
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB
 Search Hadoop and all its subprojects:

Switch to Threaded View
Avro >> mail # user >> Unable to compile a namespace-less schema


Copy link to this message
-
Re: Unable to compile a namespace-less schema
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?
>> >> >>>
>
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB