1Change Log
2==========
3
4Dagger 2 (Components)
5---------------------
6
7### Version 2.0.2 *(2015-11-03)*
8
9A patch release, most crucially including:
10
11  * A fix to the way processor validation of types is done that permits dagger to play
12    more nicely with other processors, avoiding over-validating aspects that it doesn't
13    need, which may yet not have been generated by other processors in a different round
14    of processing.
15  * Some improved error reporting for edge-cases
16  * Fix to prevent incompatible versions of Guava on the classpath from blowing up processing
17  * Support a more robust set of types for map keys in map bindings (primitive types, etc.)
18
19### Version 2.0.1 *(2015-05-28)*
20
21A maintenance release fixing immediate issues following the Dagger 2.0 release, including:
22
23  * Speed up Graph Validation (reduce build times by 10s of seconds on sampled large projects)
24  * Generate correct code for @MapKey annotation types (beta)
25  * Fix to properly emit code for class literal values in @MapKey annotations.
26  * Fix for injecting component dependencies
27  * Fixes to generated code to account for differences in generics handling in ecg vs. javac.
28  * Subcomponents can now be abstract classes.
29  * Subcomponents now properly build the object graph in some cases involving explicit bindings
30    and (sub)components without scope.
31  * Improve runtime performance of SetFactory (set multibindings)
32  * Other smaller fixes, refactorings, etc.
33
34### Version 2.0.0 *(2015-04-21)*
35
36The initial release of the 2.0 code-line, supporting:
37
38  * `@Component` interfaces representing a custom API to access a graph of objects
39  * JSR-330 injection automation using `@Inject` signals, `@Qualifiers`
40  * Simple bindings of implementations to interfaces, custom provision of objects, and set-bindings
41  * Compile-time validation of graph structure (cycles, missing bindings, duplicate bindings)
42  * Generation of
43    - backing implementations for components
44    - factories for `@Inject` constructors and modules
45    - members-injectors for `@Inject` methods and fields
46  * Beta support for
47    - Map bindings
48    - [Producers](http://google.github.io/dagger/api/latest/dagger/producers/Producer.html)
49
50==============================================================
51
52Dagger 1 (ObjectGraph)
53----------------------
54
55### Version 1.2.0 *(2013-12-13)*
56
57 * Numerous performance improvements in both the compiler and runtime.
58   * Use more efficient `String` concatenation.
59   * Module adapters are now stateless.
60   * Use read/write locks over global locks.
61   * Reflective constructor invocation is now cached with `Class.newInstance`.
62   * Avoid re-linking all bindings when calling `.plus()`.
63 * Set bindings are now unioned when calling `.plus()`.
64 * Fix: Tolerate missing type information during compilation by deferring writing
65   module adapters.
66
67
68### Version 1.1.0 *(2013-08-05)*
69
70 * Module loading now requires code generation via the 'dagger-compiler' artifact.
71 * Allow multiple contributions to Set binding via `Provides.Type.SET_VALUES`.
72 * Request classloading from the classloader of the requesting object, not the current thread's
73   context classloader.
74 * Cache class loading at the root injector to reduce costs of loading adapters.
75 * Fix: Primitive array types are no longer incorrectly changed to their boxed type.
76 * Update JavaWriter to 2.1.1.
77
78
79### Version 1.0.1 *(2013-06-03)*
80
81 * Explicitly forbid declaring `@Inject` on a class type (e.g., `@Inject class Foo {}`).
82 * Update JavaWriter to 1.0.5.
83
84
85### Version 1.0.0 *(2013-05-07)*
86
87Initial release.
88