Tags: pustike/pustike-inject
Tags
Changes in version 1.5.0 (2018-09-28) * Added module-info.java and so it requires Java 11 or higher. * Moved AnnotationUtils to utils package and this is not exported by the module. * Use AccessibleObject#trySetAccessible instead of isAccessible as this is deprecated. * Changed the build tool from Gradle to Maven
Changes in version 1.4.2 (2018-07-18) * Fields and Methods are scanned for injection points, by sorting them using their name and types. * Fixed: Declaring a binding as Eager Singleton should create the instance when injector is configured. * Other general improvements.
Changes in version 1.4.0 (2018-02-23) * New Feature: Events support to allow publish-subscribe style communication between components, managed by the injector, without requiring them to explicitly register with one another. * Create a SPI (Service Provider Interfaces) package and moved following interfaces from bind package: BindingListener, InjectionListener, InjectionPoint, InjectionPointLoader. * BindingListener is improved to include the `BindingKey` for which a binding has been registered. * InjectionPointLoader changes: - Removed method `createInjectionPoints' which had a cyclic dependency with impl package - A function 'injectionPointCreator' is passed to the method 'getInjectionPoints' * Fixed a regression introduced in v1.3.0, which ignored `defaultScope` applied in the module. * Added check to ensure that, Bindings can be obtained only after the Injector is fully configured. * Change toString() implementation of @nAmed annotation to quote string values when using Java 9.
Changes in version 1.3.0 (2017-12-18) * Added support for optional dependencies using @nullable and Optional<T> * Added new methods to retrieve optional dependencies from injector: injector.getIfPresent(type) and injector.getIfPresent(key) * Fixed the issue in configuring MultiBinder when bindings are added from different modules for the same key.
Changes in version 1.1.0 (2017-06-30) * **Hierarchical Injector** support by creating child injector which delegates all requests for bindings that are not found, to it's parent injector. All bindings in the parent injector are visible to child, but elements of the child injector are not visible to its parent. Following new APIs are introduced: * Injector#createChildInjector(Module...) * Injector#createChildInjector(Iterable) * Injector##getParent() * Added Binder.install(Module) to configure bindings from the given module. * Bind Module methods annotated with @provides to create provider method bindings. * Remove SessionScope from test packages as it belongs to pustike-web module * Update build files to Gradle v4.0 release
Changes in version 1.0.1 (2017-04-30) * Provider Bindings: Inject dependencies into provider instance only once. * Fix Scoped Provider creation issue in a multi-threaded environment by creating it immediately after injector configuration. * Singleton scope: define instance variable as ```volatile``` to avoid issues in a multi-threaded environment (derived from Guice). * Singleton scope: Call provider.get() only once even when it returns the instance as null. * Include Field/Method details in the exception thrown, when failed to inject dependencies. * Make utils\AnnotationUtils package-private as it contains internal utility methods only. * Upgrade build to Gradle v3.5