-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/25652/
-----------------------------------------------------------
Review request for Ambari, Mahadev Konar and Nate Cole.
Bugs: AMBARI-7316
https://issues.apache.org/jira/browse/AMBARI-7316
Repository: ambari
Description
-------
Created the foundation for an event framework to handle alert events in the
system and then hooked up various listeners to handle:
- incoming alerts (insertion into the database for history/current)
- state changes (insertion of alert notices into the DB)
Discussed with mahadev and ncole about using Spring events vs Guava/Guice and
it was decided to use the latter. Although Spring seems to be able to autowire
things more seamlessly, using the eager singleton in Guice only caused some
minor coupling between the subscribers and the publishers.
Alerts can create a lot of incoming events (especially in large clusters). For
this reason, I decided to use an AsyncEventBus that was private only for
alerting events. Ambari as an application can one day create its own publisher
(or just bind EventBus to a specific instance for @Inject) but it seems like
separation here was a good idea.
Diffs
-----
ambari-server/src/main/java/org/apache/ambari/server/agent/HeartBeatHandler.java
492d83247d0c2d4e957da96f855292aac4aa8421
ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java
c395df628097037c17cf6b1848099a8a19b843a7
ambari-server/src/main/java/org/apache/ambari/server/events/AlertEvent.java
PRE-CREATION
ambari-server/src/main/java/org/apache/ambari/server/events/AlertReceivedEvent.java
PRE-CREATION
ambari-server/src/main/java/org/apache/ambari/server/events/AlertStateChangeEvent.java
PRE-CREATION
ambari-server/src/main/java/org/apache/ambari/server/events/listeners/AlertReceivedListener.java
PRE-CREATION
ambari-server/src/main/java/org/apache/ambari/server/events/listeners/AlertStateChangedListener.java
PRE-CREATION
ambari-server/src/main/java/org/apache/ambari/server/events/publishers/AlertEventPublisher.java
PRE-CREATION
ambari-server/src/main/java/org/apache/ambari/server/orm/dao/AlertDispatchDAO.java
e08c948c3ff4aee343076ce0277d67ebfad5c4e1
ambari-server/src/main/java/org/apache/ambari/server/orm/entities/AlertGroupEntity.java
f97a0eb3de4197fa595872e80fd92fb2a69c4f3e
ambari-server/src/main/java/org/apache/ambari/server/state/Alert.java
7b8aabd2b6e1e440b570110a4f29359f08335454
ambari-server/src/main/java/org/apache/ambari/server/state/cluster/AlertDataManager.java
4a65d5acf136b7d7d653414d7e81d332556998c6
ambari-server/src/test/java/org/apache/ambari/server/orm/dao/AlertDispatchDAOTest.java
8451c9b9be3f72e8509a6d0ac989ac2680dacda7
ambari-server/src/test/java/org/apache/ambari/server/state/cluster/AlertDataManagerTest.java
eae1de6362758f1ffe66cf54ce8440dc98883b94
Diff: https://reviews.apache.org/r/25652/diff/
Testing
-------
mvn clean test
Thanks,
Jonathan Hurley