First effort at support for JSR 330.
This checkin supports:
@javax.inject.Inject to mark classes
@javax.inject.Qualifier to identify binding annotations
javax.inject.Provider injections
A new Jsr330 utility class
Still outstanding:
JSR 330 is more strict about where its annotations are applied. These restrictions are not yet enforced.
@Scope
@Singleton
Notable change:
When the user injects a javax.inject.Provider<T>, we canonicalize the dependency, and treat it exactly as if they injected a com.google.inject.Provider<T>. This is slightly weird! For example, these two keys are equal:
Key.get(new TypeLiteral<javax.inject.Provider<String>>() {})
Key.get(new TypeLiteral<com.google.inject.Provider<String>>() {})
This is convenient, particularly for SPI users. And it means we don't need a linked binding between the Providers. But it could be quite surprising. I'm still trying to decide the right long term solution here...
git-svn-id: https://google-guice.googlecode.com/svn/trunk@1077 d779f126-a31b-0410-b53b-1d3aecad763e
12 files changed