Due to nature of how failover client works, we don't allow different
listeners to be registered at different client configs.
Since ClientStateListener registers itself to the ClientConfig,
this prevents it to be used via FailoverClient.
The reasoning behind constructor register itself is to force the
user to use this via config rather than registering it after client
starts.
So, sticking with the same decision we introduce another constructor
which accepts ClientFailoverConfig and registers same listener(itself)
to all the client configs.
Also on the ClientStateListener I have ignored CLIENT_CHANGED_CLUSTER.
This is rather a temporal event. We fire CLIENT_CONNECTED than
CLIENT_CHANGED_CLUSTER, in those cases we want the current state to
remain CLIENT_CONNECTED.
[X] Labels (Team:, Type:, Source:, Module:) and Milestone set
[X] Add Add to Release Notes label if changes should be mentioned in release notes or Not Release Notes content if changes are not relevant for release notes
[X] Request reviewers if possible
[X] New public APIs have @Nonnull/@Nullable annotations
[X] New public APIs have @since tags in Javadoc
[ ] Send backports/forwardports if fix needs to be applied to past/future releases
The tracking issue for the Java side PR.
See https://github.com/hazelcast/hazelcast/pull/19090 for details.
Due to nature of how failover client works, we don't allow different listeners to be registered at different client configs.
Since ClientStateListener registers itself to the ClientConfig, this prevents it to be used via FailoverClient.
The reasoning behind constructor register itself is to force the user to use this via config rather than registering it after client starts.
So, sticking with the same decision we introduce another constructor which accepts ClientFailoverConfig and registers same listener(itself) to all the client configs.
Also on the ClientStateListener I have ignored
CLIENT_CHANGED_CLUSTER
. This is rather a temporal event. We fire CLIENT_CONNECTED than CLIENT_CHANGED_CLUSTER, in those cases we want the current state to remain CLIENT_CONNECTED.Fixes https://github.com/hazelcast/hazelcast/issues/18351
EE PR: #NNNN (link to enterprise counterpart PR)
Checklist:
Team:
,Type:
,Source:
,Module:
) and Milestone setAdd to Release Notes
label if changes should be mentioned in release notes orNot Release Notes content
if changes are not relevant for release notes@Nonnull/@Nullable
annotations@since
tags in Javadoc