Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Anaylze the peer component to detect errors #1

Open
realityforge opened this issue May 21, 2020 · 0 comments
Open

Anaylze the peer component to detect errors #1

realityforge opened this issue May 21, 2020 · 0 comments
Labels
enhancement New feature or request

Comments

@realityforge
Copy link
Member

The ArezPersist generated sidecar class relies on the Arez component having certain features enabled. These constraints in no particular order are:

  • The @ArezComponenty.requireId should have an effective value of ENABLE so that there is an id present to persist state.
  • The @ArezComponenty.disposeNotifier should have an effective value of ENABLE so that the sidecar will be disposed when the peer is disposed.
  • The component id should have a stable conversion to a string which is used in common storage services.

These have not been implemented as the parameters are often derived and require a deep analysis of the arez component model which is computationally expensive, error-prone, and brittle.

We could "fix" this by emitting a JSON descriptor beside the arez component in the ArezProcessor. The ArezPersist annotation processor would defer processing until the descriptor is available and then use the descriptor emitted by Arez. (Sting uses a similar strategy and process binary descriptors emitted by itself at later stages).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Development

No branches or pull requests

1 participant