Releases: google/dagger
Releases · google/dagger
Dagger 2.8
- Optimized generated
@Components! We now inline many calls to@Injectconstructors and@Providesmethods when we don't need aProvider<T>. - Some optimizations to the
dagger-compiler java.util.Optionalsupport for@BindOptionalOf- Releaseable References API for handling memory pressure for scoped bindings
- Our first release of the
dagger-androidartifact @Provides.Typeis officially deprecated - see their javadoc for the appropriate alternatives. As per our Versioning docs, these will be removed in ~6 months- Bug fixes with optional bindings in subcomponents
- Some generated factories are no longer implemented as
enums, reducing code size for Android users
Dagger 2.7
- Adds
@Modules.subcomponents - Adds
@BindsOptionalOffor binding optionals - Fix bug where circular
@Bindsmethods would crash the compiler
Dagger 2.6.1
A few bugfixes
- Create bindings for
@Bindsmethods even when the RHS cannot be resolved- Note: this may result in new duplicate or missing binding errors that were not previously detect.
- Change
ProducerTokento useClass#getCanonicalNameinstead ofClass#toStringto avoid extra string allocations.
Dagger 2.6
@Providesmethods are now allowed in@ProducerModules- New and better multibindings errors
Provider<Lazy<T>>can now be used to break dependency cycles.- Fixes bug where
@Bindsmethods sometimes didn't contribute to multibindings in subcomponents - Fixes bug where generated factories had conflicting parameter names
Dagger 2.5
- Enables
@Bindsusage with multibinding annotations (@IntoSet,@ElementsIntoSet, and@IntoMap) - Adds
@MultibindsAPI to replace@Multibindingsinterfaces @Component.Buildermethods for abstract modules are no longer allowed- Performance improvements for
@IntoSetusage. Provided objects are no longer wrapped in a wastefulCollections.singleton() - Compilation speed improvements for large graphs
@Scopes are no longer allowed on@Producesmethods- Adds state checking to scoped providers to make sure a circular dependency does not create multiple instances
- Producers optimizations: Each
@Producesmethod now generates 1 class instead of 2 - Fix: Requests for Map<K, V> now include both
@Provides @IntoMapand@Produces @IntoMapvalues
Dagger 2.4
- Adds
@BindsAPI for delegating
one binding to another - Adds
@IntoSet,@ElementsIntoSetand@IntoMapto replace@Provides(type = ...)and@Produces(type = ...) - Allow injection of
Provider<Lazy<Foo>> - Report an error if a
@Scopeannotation is applied to an@Injectconstructor - Remove the ability to set the production executor on a component builder.
- Ensure that no binding methods are binding framework types.
- New format of dependency traces in error messages
- Fixed bug: Exception when a binding in a parent that is used only in a subcomponent depends on a binding in the subcomponent
- Update to JavaPoet 1.6.1 and Google Java Format 1.0
- Fixes
NoSuchMethodErrorfrom Issue #356
- Fixes
Dagger 2.3
Dagger 2.2
dagger.mapkeysmoved todagger.multibindingsand all@MapKey
implementations now correctly have@Betaapplied- Better error messages for multibindings
- Compiler bug fixes!
Dagger 2.1
- Correctly handle
@Components that inject generated types - Adds
@ProductionSubcomponentand@ProductionScope - Allow the production
Executorto be bound with@Production - Allow multiple scope annotations on components
- A component's subcomponents’ (and their subcomponents’) simple names no longer need to be unique
- Adds the ability to depend on subcomponent builders
- GWT Integration
- Producers monitoring
- Multibindings for producers
- Add common
@MapKeyannotations todagger.mapkeys. These annotations are
not, but should be marked@Beta(since the@MapKeyitself is beta). - Lots of bug fixes!
Dagger 2.0.2
A patch release, most crucially including:
- A fix to the way processor validation of types is done that permits dagger to play
more nicely with other processors, avoiding over-validating aspects that it doesn't
need, which may yet not have been generated by other processors in a different round
of processing. - Some improved error reporting for edge-cases
- Fix to prevent incompatible versions of Guava on the classpath from blowing up processing
- Support a more robust set of types for map keys in map bindings (primitive types, etc.)