---
title: Arez 0.122 released
author: Arez Project
authorURL: https://github.com/arez
---

[Full Changelog](https://github.com/arez/arez/compare/v0.121...v0.122)

Changes in this release:

* Add the `arez-dom` project into the set of projects that are built and tested during the build and release process.
* **\[core\]** Change the `inject` parameter on the `@ArezComponent` annotation from a `Feature` enum to `InjectMode`.
  The mapping of the enums are as follows:
  - `AUTODETECT` -> `AUTODETECT`
  - `DISABLE` -> `NONE`
  - `ENABLE` -> `PROVIDE`
  A new enum value has also been introduced `CONSUME` that indicates that the component expects to be injected with
  required services but does not expect to be provided to other components. This will influence the type of artifacts
  that are generated by dagger.
* **\[processor\]** Change the way the annotation processor generates supporting infrastructure for injecting
  components so that components with a `@PostConstruct` annotated method always invoke the method after injection
  has occurred. Previously constructor injection worked as expected but if there was ever field based injection or
  method based injection then the component would be missing these injected resources when the `@PostConstruct`
  method was invoked. Even if no `@PostConstruct` method was present, any `@Observe` methods would be scheduled
  and executed when the component is completed which would result in observed methods being invoked prior to the
  component being completely injected. To avoid this it is best to avoid non-constructor based service injection
  but when this is not possible Arez will generate additional infrastructure that will require the application
  developer explicitly invoke methods on the dagger component prior to creating the arez component. See the javadocs
  in the `arez.annotations.InjectMode` class for further details.
* **\[core\]** Introduce a `@PerInstance` annotation that can be applied to constructor parameters to indicate that
  these parameters must be supplied at the time that the component is created. For components where construction
  occurs through a dependency injection framework, this means that a factory is created that accepts parameters
  annotated with the `@PerInstance` annotation when creating the component instance.
* Remove references to `arez-idlestatus` as it has been subsumed by `arez-dom`.
* Add some basic documentation to FAQ about the Incremental project and how it compares to Arez.
* **\[core\]** Fix incorrect invariant failure when maintaining `leastStaleObserverState` on chained
  `ComputableValue` instances.
* **\[core\]** Remove return from `Transaction.processPendingDeactivations()` as it is not used outside of tests.
* Post-process the javadocs so that `@Nonnull` and `@Nullable` annotations are not followed by excessive whitespace.
* **\[processor\]** Fix bug in generated code where any `@PreDispose` or `@PostDispose` method would be invoked twice
  if native components are disabled.

Update site to add news about the 0.122 release
Update site to add news about the 0.122 release
