Releases: google/dagger
Releases · google/dagger
Dagger 2.10-rc2
Fixes from 2.10-rc1:
- Move
AndroidInjection.inject()before invocationsuper.lifecycleMethod()Fixes #598 - Correctly publish
dagger-androidanddagger-android-supportwith anAndroidManifest.xml - Compile
daggeranddagger-producerswith-source 1.6 -target 1.6so they can be used in Android dagger-android-processorartifact added
Dagger 2.10-rc1
- Release of
dagger.androidclasses to simplify injection of Android core types - By default, stop emitting "Prefer to run the dagger processor" warnings
- Allow component builders' build() methods to return a supertype of the component
This is our first release using bazel instead of mvn. We don't believe there will be any noticeable differences, but if you see anything surprising please report an issue.
Dagger 2.9
- Faster compilation! With google-java-format 1.2, we have helped to fix a few performance bottlenecks which should result in less time in annotation proceessing for Dagger
- Added
@BindsInstancefor component builders to easily bind instances that are constructed outside of the graph - Producers: Added
ProducerMonitor.ready(), which is called when all of a producer's inputs are available - Removed
@Provides(type = ...)usage. Use the annotations indagger.multibindingsinstead.@Produces.typewas also removed - "Prefer to run the dagger processor" warnings are now off by default.
- New Validation
- All binding methods are now validated, even if they are unused in a particular
@Component @Component.dependenciescan no longer include@Modules.
- All binding methods are now validated, even if they are unused in a particular
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