avro-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Victor Chau (Created) (JIRA)" <j...@apache.org>
Subject [jira] [Created] (AVRO-971) IDL Import from project classpath
Date Thu, 08 Dec 2011 00:32:40 GMT
IDL Import from project classpath

                 Key: AVRO-971
                 URL: https://issues.apache.org/jira/browse/AVRO-971
             Project: Avro
          Issue Type: Improvement
          Components: java
    Affects Versions: 1.6.1
         Environment: Maven java projects
            Reporter: Victor Chau
            Priority: Minor
         Attachments: ImportFromClassPath.patch

Currently, it looks like the only option to importing another schema in IDL is to place the
file being imported in the same directory as that of the importing avdl.  In a setup where
there are avdl's that are spread among several maven projects that are owned by different
teams, this is logistically difficult to manage.

When using the avro-maven-plugin, I would like to be able to just create a dependency from
my project on another jar that contains the avdl I am want to import and have Avro be smart
enough to look for it in the classpath of the project containing the avdl when compiling my

Attached is a working patch that will:
  1. Change the IDLProtocolMojo class to lookup the current project's classpath and create
a new ClassLoader.
  2. Give the Idl compiler class the ClassLoader before parsing the avdl.
  3. If the Idl class encounters an import that it cannot resolve to the local directory while
parsing, it will try to use the ClassLoader to load up the file being imported.

The patch spans the Java avro, avro-compiler, and avro-maven-plugin projects.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


View raw message