Alexey Goncharuk created IGNITE-11676:
-----------------------------------------
Summary: Clean up custom event callbacks
Key: IGNITE-11676
URL: https://issues.apache.org/jira/browse/IGNITE-11676
Project: Ignite
Issue Type: Improvement
Reporter: Alexey Goncharuk
Currently, {{GridDiscoveryManager}} has several ways of notifying Ignite
components of discovery events:
* Line 668: a set of {{instanceof}} statements to invoke specific callbacks
for components (for example, {{ctx.state().onStateChangeMessage(...)}},
{{ctx.cache().onCustomEvent(...)}}
* Later, on line 715: we call a somewhat generic custom event listeners
* Finally, on line 876, if the custom message was of a specific type, we fire
EVT_DISCOVERY_CUSTOM_EVT
Overall, this is a huge abstraction leak, and all non-discovery specifics
should be eliminated from {{GridDiscoveryManager}}. I suggest the following:
1) Change {{CustomEventListener}} to have two methods: one of them should
return {{true}} or {{false}} to determine whether the minor topology version
should be incremented
2) Move all logic to corresponding components
3) Get rid of code on line 876, I see no need in this. Also, consider removing
{{EVT_DISCOVERY_CUSTOM_EVT}}, as this is private API and should now be covered
by the specific listener
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)