[ 
https://issues.apache.org/jira/browse/IGNITE-11676?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryker Zhang reassigned IGNITE-11676:
------------------------------------

    Assignee: Ryker Zhang

> 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
>            Assignee: Ryker Zhang
>            Priority: Major
>
> 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)

Reply via email to