Skip to content

Releases: pustike/pustike-inject

Release version 2.0.0

25 Jan 10:35
b3fa480
Compare
Choose a tag to compare
  • Migrate to Injection API 2.0.0 released as part of Jakarta EE9
  • Make jakarta.inject module a transitive dependency
  • Change toString() implementation of @Named annotation to remove value=
    i.e. @jakarta.inject.Named("foo") instead of @jakarta.inject.Named(value="foo").
  • Updated pustike maven parent version to 0.1.4
  • Other general improvements

Release version 1.5.0

28 Sep 08:49
5fcc99a
Compare
Choose a tag to compare
  • 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

Release version 1.4.2

18 Jul 07:23
9d48f1a
Compare
Choose a tag to compare
  • 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.

Release version 1.4.1

10 Apr 06:14
dbdad79
Compare
Choose a tag to compare

General Improvements and bug fixes.

Release version 1.4.0

24 Feb 02:23
40ef1b6
Compare
Choose a tag to compare
  • 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 Java9

Release version 1.3.0

18 Dec 03:58
2da7971
Compare
Choose a tag to compare
  • 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.

Release version 1.2.0

14 Nov 02:59
Compare
Choose a tag to compare
  • Added MultiBinder support to bind multiple values separately, to later inject them as a complete collection. More details are available in javadocs.
  • Added methods to BindingKey: toListType() and toListProviderType()
  • Renamed BindingKey#createProviderKey() method as toProviderType()
  • Fixed the issue in binding a provider when @Provides annotation is used on a method in the module
  • Scan for methods annotated with @Provides in module's superclasses also
  • Fixed the issue which allowed registering bindings to a key more than once.

Release version 1.1.0

03 Jul 06:59
Compare
Choose a tag to compare
  • 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

Release version 1.0.1

02 May 03:14
Compare
Choose a tag to compare
  • 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

Release version 1.0.0

08 Mar 04:21
Compare
Choose a tag to compare

Initial Public Release