dtrott / maven-thrift-plugin

Maven Thrift Plugin that executes the thrift code generator (base on protocol buffers plugin)
119 stars 68 forks source link

Transitive inclusion path should not walk the full directory structure #28

Open anomalizer opened 9 years ago

anomalizer commented 9 years ago

Let us that project A has the following file: src/main/thrift/com/example/a.thrift Assume we have generated a jar using this plugin on project A

Our project (say project B) depends on a.thrift. The way to accomplish this is by declaring the maven artifact of project A as a dependency in our project and then referencing the file as follows:

// contents of com/acme/b.thrift
include "com/example/a.thrift"

Now, when the plugin is invoked, the expected behaviour is as follows:

The curent implementation passes temp/hashcode/com/example/ as an include base directory. The issue with this approach is that the fully qualified reference that exists in b.thrift does not get resolved. The correct approach is to set temp/hashcode/ as the include directory. Note that this change has no effect on dependencies where the IDL files are placed only in the source root i.e. they are not placed inside sub-directories

dtrott commented 9 years ago

Please note a ticket was filed in Apache's JIRA to get the thrift plugin included with the main thrift release. https://issues.apache.org/jira/browse/THRIFT-1536

I am waiting to see how that effort goes before making a decision on continuing maintenance myself.