avro-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sharmarke Aden (JIRA)" <j...@apache.org>
Subject [jira] [Created] (AVRO-1188) External Schema Imports via AVSC Schema
Date Sat, 03 Nov 2012 00:20:13 GMT
Sharmarke Aden created AVRO-1188:
------------------------------------

             Summary: External Schema Imports via AVSC Schema
                 Key: AVRO-1188
                 URL: https://issues.apache.org/jira/browse/AVRO-1188
             Project: Avro
          Issue Type: New Feature
          Components: java
            Reporter: Sharmarke Aden


There is no way for ".avsc" schema files to import types (i.e records, enums, etc) in external
schema files. There's tremendous benefit in being able to do this as it would all for the
sharing of common types between multiple schema files. Here's a use case that illustrates
the typical usecase of this feature request.


Suppose we have an enum called "Privacy" that we would like to share between multiple schemas:

{code}
//privacy.avsc
{ 
  "type": "enum",
  "name": "Privacy",
  "symbols" : ["Public", "Private"]
}
{code}

Now, if this feature was implemented one could import the above type into other schema files
by doing something like this: 

{code}
//the post.avsc 
{
  "type": "record", 
  "name": "Post",
  "imports": ["privacy.avsc"] //you can import one or more schemas
  "fields": [{
              "name": "privacy", 
              "type": [ "null", "Privacy"], //use imported Privacy type
              "default": "Private"
            }
  ]
}
{code}

Here's another schema file that also has a similar privacy concern:

{code}
//the event.avsc is another schema that also imports the privacy type
{
  "type": "record", 
  "name": "Event",
  "imports": ["privacy.avsc"] //it also imports the privacy schemas
  "fields": [{
              "name": "privacy", 
              "type": [ "null", "Privacy"], //use imported Privacy type
              "default": "Public"
            }
  ]
}
{code}


IDL files are able to import external schemas and protocols and it would be very beneficial
if schema files could import other schema files. 


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message