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

[Full Changelog](https://github.com/arez/arez/compare/v0.88...v0.89)

Changes in this release:

* **\[processor\]** Ensure that repositories work with components that contain initializers.
* 💥 **\[component\]** Remove the `preEntryDispose()` and `postEntryDispose()` methods from the
  `arez.component.AbstractContainer` class as they were never used, mis-named and would be
  invoked in an inconsistent order based on whether the contained entity was disposed by the
  `AbstractContainer` subclass or outside the container.
* **\[component\]** Remove the `AbstractRepository.destroy(...)` method and have each repository
  implementation implement destroy method as required. The result is that the destroy method on
  the repository will have a `public` access modifier if the entity type has a public modifier,
  otherwise it will have a `protected` modifier.
* 💥 **\[component\]** Remove the `@Action` annotation on `AbstractContainer.destroy(...)` as it is
  always redefined by repositories if destroy is supported.
* **\[component\]** Fixed invariant failure message that was missing `Arez-XXXX: ` prefix in the
  `AbstractContainer.destroy(...)` method.
* **\[component\]** Add `AbstractContainer.detach(...)` method to support removing an entity from
  a repository without disposing the entity.
* **\[annotations\]** Add a `detach` parameter to the `@Repository` annotation that defines the
  strategies for detaching an entity from a repository. The strategies include; (1) a `destroy(...)`
  method that disposes entity and detaches entity from the repository, (2) a `detach(...)` method that
  detaches entity, and (3) monitoring the entity and only detaching the entity from the repository if
  the entity is disposed.
* **\[component\]** Introduce `ComponentObservable.notObserved(...)` helper method to make it easy to
  use method references and integrate into java streaming API.
* 💥 **\[component\]** Rename `AbstractContainer.registerEntity(...)` method to `AbstractContainer.attach(...)`
  to more accurately reflect intent.
* **\[annotations\]** Add an `attach` parameter to the `@Repository` annotation that defines the
  strategies for attaching an entity to a repository. The strategies include a `create(...)`
  method that creates entity and attaches entity to the repository and/or an `attach(...)` method
  that manually attaches the entity created outside repository.
* **\[processor\]** Fix bug in generated components where id was not set if native components are disabled,
  names are enabled and there is no custom `@ComponentId`. The impact is that the names for these components
  would all include the name with `0` as id.
* **\[annotations\]** Add `observable` parameter to `@ArezComponent` that makes it possible to remove
  the per-component observable that enables `arez.component.ComponentObservable` possible. When this
  functionality is not required, it can be removed to reduce overheads.

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