Releases: google/dagger
Releases · google/dagger
Dagger 2.7
- Adds
@Modules.subcomponents
- Adds
@BindsOptionalOf
for binding optionals - Fix bug where circular
@Binds
methods would crash the compiler
Dagger 2.6.1
A few bugfixes
- Create bindings for
@Binds
methods even when the RHS cannot be resolved- Note: this may result in new duplicate or missing binding errors that were not previously detect.
- Change
ProducerToken
to useClass#getCanonicalName
instead ofClass#toString
to avoid extra string allocations.
Dagger 2.6
@Provides
methods are now allowed in@ProducerModule
s- New and better multibindings errors
Provider<Lazy<T>>
can now be used to break dependency cycles.- Fixes bug where
@Binds
methods sometimes didn't contribute to multibindings in subcomponents - Fixes bug where generated factories had conflicting parameter names
Dagger 2.5
- Enables
@Binds
usage with multibinding annotations (@IntoSet
,@ElementsIntoSet
, and@IntoMap
) - Adds
@Multibinds
API to replace@Multibindings
interfaces @Component.Builder
methods for abstract modules are no longer allowed- Performance improvements for
@IntoSet
usage. Provided objects are no longer wrapped in a wastefulCollections.singleton()
- Compilation speed improvements for large graphs
@Scope
s are no longer allowed on@Produces
methods- Adds state checking to scoped providers to make sure a circular dependency does not create multiple instances
- Producers optimizations: Each
@Produces
method now generates 1 class instead of 2 - Fix: Requests for Map<K, V> now include both
@Provides @IntoMap
and@Produces @IntoMap
values
Dagger 2.4
- Adds
@Binds
API for delegating
one binding to another - Adds
@IntoSet
,@ElementsIntoSet
and@IntoMap
to replace@Provides(type = ...)
and@Produces(type = ...)
- Allow injection of
Provider<Lazy<Foo>>
- Report an error if a
@Scope
annotation is applied to an@Inject
constructor - 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
NoSuchMethodError
from Issue #356
- Fixes
Dagger 2.3
Dagger 2.2
dagger.mapkeys
moved todagger.multibindings
and all@MapKey
implementations now correctly have@Beta
applied- Better error messages for multibindings
- Compiler bug fixes!
Dagger 2.1
- Correctly handle
@Component
s that inject generated types - Adds
@ProductionSubcomponent
and@ProductionScope
- Allow the production
Executor
to 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
@MapKey
annotations todagger.mapkeys
. These annotations are
not, but should be marked@Beta
(since the@MapKey
itself 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.)
Dagger 2.0.1
A maintenance release fixing immediate issues following the Dagger 2.0 release, including:
- Speed up Graph Validation (reduce build times by 10s of seconds on sampled large projects)
- Generate correct code for
@MapKey
annotation types (beta) - Fix to properly emit code for class literal values in
@MapKey
annotations. - Fix for injecting component dependencies
- Fixes to generated code to account for differences in generics handling in ecg vs. javac.
- Subcomponents can now be abstract classes.
- Subcomponents now properly build the object graph in some cases involving explicit bindings
and (sub)components without scope. - Improve runtime performance of SetFactory (set multibindings)
- Other smaller fixes, refactorings, etc.