square / dagger

A fast dependency injector for Android and Java.
https://square.github.io/dagger/
Apache License 2.0
7.3k stars 3.07k forks source link

Object Graph validation within Eclipse? #45

Open pyricau opened 12 years ago

pyricau commented 12 years ago

I took the CoffeeModule example and added a random :

@Inject 
String someString;

The FullGraphProcessor reported an error when started from Maven. However, it didn't report any error when started from Eclipse. It actually runs but no error so far.

I'll try to put some breakpoints in it when I have time.

cgruber commented 12 years ago

I'm going to be building an eclipse plugin that pulls the code-gen into a separate phase, as well as things like full graph processor which M2E will be able to properly configure within eclipse. Not there yet.

c.

Pierre-Yves Ricau wrote:

I took the CoffeeModule example and added a random :

@Inject
String someString;

The FullGraphProcessor reported an error when started from Maven. However, it didn't report any error when started from Eclipse. It actually runs but no error so far.

I'll try to put some breakpoints in it when I have time.


Reply to this email directly or view it on GitHub: https://github.com/square/dagger/issues/45

tbroyer commented 12 years ago

m2e-apt works fine for me, though it requires either:

I've used the latter in the example in Sheath, but I'm going to switch to the maven-compiler-plugin as the maven-processor-plugin has no mean of specifying the source compatibility (I'm using OpenJDK 7, so it's implicitly using -source 1.7 which causes warnings with the processors, that declare being compatible with SourceVersion.RELEASE_6 only)

stephenh commented 12 years ago

I'm going to be building an eclipse plugin that pulls the code-gen

Just curious, but is there something specific you'll be getting by building an Eclipse plugin?

I've had fine luck with running processors directly in vanilla Eclipse, and seems like the APT API is nicer/easier to use than a full Eclipse plugin.

cgruber commented 12 years ago

There's not just annotation pre-processing involved, but also other things like a graph validation pass, etc. Maybe these can still all work

Christian.

Stephen Haberman wrote:

I'm going to be building an eclipse plugin that pulls the code-gen

Just curious, but is there something specific you'll be getting by building an Eclipse plugin?

I've had fine luck with running processors directly in vanilla Eclipse, and seems like the APT API is nicer/easier to use than a full Eclipse plugin.


Reply to this email directly or view it on GitHub: https://github.com/square/dagger/issues/45#issuecomment-9210947

stephenh commented 12 years ago

There's not just annotation pre-processing involved, but also other things like a graph validation pass, etc.

Seems like one of the processors I wrote cached data across invocations; so even when Eclipse/javac called it incrementally with "units 1 and 2 changed", it would have cached the info for the other units it had previously generated, so could re-apply program-wide type logic on each incremental pass.

Unfortunately I forget the details...so, sorry, I'm not being very helpful, just musing that it seems possible.

tbroyer commented 11 years ago

Should this issue be closed? We have #110 already (which is fixed BTW, but hasn't been closed yet) which covers error reporting as annotations in the editors, and I think #117 fixed the iterating/incremental build (IIRC, during my manual tests for #110, FullGraphProcessor reporting was OK)

tbroyer commented 11 years ago

I have to take back my above claim. Looks like an Eclipse plugin would help here; see my comment on issue #126 for more info on what's currently missing.

cgruber commented 11 years ago

This has been working for me for quite a while. I'm not sure what's still missing. :/ Not even from your comment in #126, @tbroyer. I get errors in graph validation from chagnes using m2e and m2e-apt.