That was the compilation error I got with Eclipse too. Thanks for sorting it out.
On 10/17/16, Daniel Kulp <[email protected]> wrote: > Just a follow up based on some discoveries while trying to rebase my branch > on master this morning. > > Eclipse JDT outputs methods/fields into class files in a different order > than Oracle compiler. That’s perfectly acceptable from a “binary > compatibility” standpoint, but it has a side effect of causing potential > problems with AutoValue. If the AutoValue class tries to get it’s values > from an interface, the methods on the interface will come in a different > order than with Oracle and the resulting constructor/fields/etc… will be > different. Based on some experiments and back and forth with Dan H., I > believe the best fix is to explicitly define the properties on the AutoValue > class as if it didn’t pull those via the interface. Thus, the APT > processing gets the attributes in the order intended and generates the right > code. The alternative would be to use the Builder pattern instead of the > constructor, but that requires more code to be written than just defining > the attributes in the right order. However, if you are already defining a > Builder, that might be the best option. > > Anyway, something to be aware of when using the AutoValue things. Once we > get the branch merged, travis should automatically pick this up. > > Dan > > > > >> On Oct 14, 2016, at 11:37 AM, Daniel Kulp <[email protected]> wrote: >> >> >>> On Oct 14, 2016, at 10:06 AM, Jesse Anderson <[email protected]> >>> wrote: >>> >>> Last week I imported Beam with IntelliJ and everything worked. >>> >>> That said, I tried to import the Eclipse project and that doesn't >>> compile >>> anymore. I didn't have time to figure out what happened though. >>> >> >> I have a pull request https://github.com/apache/incubator-beam/pull/1094 >> that fixes the compile issues. It has two LGTM’s, just needs someone to >> merge it. >> >> With eclipse, you need to have all the needed m2e connectors. Some of >> them (find bugs, check style) can be auto-detected and installed when beam >> is first imported. The apt one doesn’t. You need to go to the eclipse >> marketplace, install it, then configure it in the Eclipse properties to >> turn on the “experimental” m2e-apt processing. Once you do that, a >> refresh of the maven projects should result in it building/compiling. >> >> Running tests is another matter. Since eclipse compiles everything in a >> module in one pass (instead of two like maven), one of the apt processors >> doesn’t know where to output files and always dumps the files in /classes >> instead of /test-classes. Thus, any test that relies on a runner will >> likely fail as it results in the “test” versions of various services from >> core being picked up. A simple: >> >> rm sdks/java/core/target/classes/META-INF/services/* >> >> From the command line will fix that. That should also be documented on >> the IDE page until someone can figure out how to work around it. >> >> Dan >> >> >> >>> On Fri, Oct 14, 2016 at 1:21 AM Jean-Baptiste Onofré <[email protected]> >>> wrote: >>> >>>> Hi Christian, >>>> >>>> IntelliJ doesn't need any special config (maybe the code style can be >>>> documented or imported). >>>> >>>> Anyway, agree to add such on website in the contribute directory. I >>>> think it could be part of the contribution-guide as it's first setup >>>> step. >>>> >>>> Regards >>>> JB >>>> >>>> On 10/14/2016 10:17 AM, Christian Schneider wrote: >>>>> Hello all, >>>>> >>>>> I am new to the beam community and currently start making myself >>>>> familiar with the code. I quickly found the contribution guide and >>>>> was >>>>> able to clone the code and build beam using maven. >>>>> >>>>> The first obstacle I faced was getting the code build in eclipse. I >>>>> naively imported as existing maven projects but got lots of compile >>>>> errors. After talking to Dan Kulp we found that this is due to the apt >>>>> annotation processing for auto value types. Dan explained me how I >>>>> need >>>>> to setup eclipse to make it work. >>>>> >>>>> I still got 5 compile errors (Some bound mismatch at Read.bounded, and >>>>> one ambiguous method empty). These errors seem to be present for >>>>> everyone using eclipse and Dan works on it. So I think this is not a >>>>> permanent problem. >>>>> >>>>> To make it easier for new people I would like to write a documentation >>>>> about the IDE setup. I can cover the eclipse part but I think intellij >>>>> should also be described. >>>>> >>>>> I already started with it and placed it in /contribute/ide-setup. Does >>>>> that make sense? >>>>> >>>>> I currently did not link to it from anywhere. I think it should be >>>>> linked in the contribute/index and in the Contribute menu. >>>>> >>>>> Christian >>>>> >>>> >>>> -- >>>> Jean-Baptiste Onofré >>>> [email protected] >>>> http://blog.nanthrax.net >>>> Talend - http://www.talend.com >>>> >> >> -- >> Daniel Kulp >> [email protected] - http://dankulp.com/blog >> Talend Community Coder - http://coders.talend.com >> > > -- > Daniel Kulp > [email protected] - http://dankulp.com/blog > Talend Community Coder - http://coders.talend.com > >
