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-android
anddagger-android-support
with anAndroidManifest.xml
- Compile
dagger
anddagger-producers
with-source 1.6 -target 1.6
so they can be used in Android dagger-android-processor
artifact added
Dagger 2.10-rc1
- Release of
dagger.android
classes 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
@BindsInstance
for 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.multibindings
instead.@Produces.type
was 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.dependencies
can no longer include@Module
s.
- All binding methods are now validated, even if they are unused in a particular
Dagger 2.8
- Optimized generated
@Component
s! We now inline many calls to@Inject
constructors and@Provides
methods when we don't need aProvider<T>
. - Some optimizations to the
dagger-compiler
java.util.Optional
support for@BindOptionalOf
- Releaseable References API for handling memory pressure for scoped bindings
- Our first release of the
dagger-android
artifact @Provides.Type
is 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
enum
s, reducing code size for Android users
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