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