Hello Everybody,
I've merged PR155 [1] into master of Hawkular Metrics. The code is in fairly good
shape but will need adjustments since the refactoring is far from done. I wanted to merge
today because the branch was diverging too much from master and was impeding other PRs
from being completed and merged.
My focus was to simplify the public API implementation with two main goals: faster
implementation of additional features and enable additional implementation in the future
(eg. Undertow or Websocket). I've changed very little in the mechanics for storing and
retrieving data from Cassandra.
Here are few principles that I tried to follow:
1) Simplify everything as much as possible
2) No more intermediary mapper classes in the jaxrs module; expose meaningful fields of
domain models via the public API
3) No complicated and individual callbacks in the jaxrs module, prefer specialized data
transforms with generic callbacks
4) The public API implementation should be as uniform and monotone as possible
5) Keep all domain code away from jaxrs module and vice-versa
6) Avoid circular dependencies between models where the children have a reference to the
parent
Here is a list of things to cover in the following weeks:
1) Simplify core-api and core-impl composition; right now there is no clear differentiator
between the two
2) The domain classes are not settled in yet, the composition needs more tweaks to get a
clean domain
3) Add more integration tests, the set in there right now is really minimal
4) Add more swagger documentation
5) Expose schema for each end-point via */schema URL
Next steps for Hawkular integration:
1) Get the current API stable (probably another week)
2) Work with projects that interact and/or consume Hawkular Metrics to adjust the
integration.
All feedback is more than welcomed :)
[1]
https://github.com/hawkular/hawkular-metrics/pull/155
Thank you,
Stefan Negrea
Software Engineer