avro-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mika Ristimaki <mika.ristim...@gmail.com>
Subject how to implement inheritance in Avro
Date Tue, 28 May 2013 22:18:42 GMT
Hi all,

I've been struggling to get some sort of inheritance model to work with Avro but I've not
been very successful at it. So maybe someone in hear can give me a pointer. What I've been
trying to do is to define schemas like this


{"namespace": "com.test",
 "type": "record",
 "name": "Shape",
 "fields": [
     {"name": "colour", "type": "string"}
 ]
}

{"namespace": "com.test",
 "type": "record",
 "name": "Circle",
 "fields": [
     {"name": "radius", "type": "int"},
     {"name": "super", "type": "com.test.Shape"}
 ]
}

{"namespace": "com.test",
 "type": "record",
 "name": "Square",
 "fields": [
     {"name": "width", "type": "int"},
     {"name": "super", "type": "com.test.Shape"}
 ]
}

When I try to generate classes from this I get "org.apache.avro.SchemaParseException: "com.test.Shape"
is not a defined name". So what is a defined name and where I define it? I tried to put everything
into the same file but that didn't work. I also tried to play around with unions but couldn't
get the schema syntax right. Any help with this would be greatly appreciated and also other
patterns for implementing inheritance with Avro are interesting.

Thanks for any help!!

-Mika
Mime
View raw message