Add diagnostics for RoutingTableImpl-maintained user and anonuser route state
Whenever a clustered cache is used, two supporting data structures are typically needed:
- one that can be used to 'repopulate' the cache after it flips between clustered and non-clustered, that holds local data.
- one that is used after a cluster breakage, that holds non-local data.
These three data structures (cache, local, non-local) have some degree of data duplication between them. It is therefor important that these data structures remain consistent.
This commit introduces a method that checks for consistency, reporting its detailed findings as text. A JSP page (that isn't linked in a menu, you need to know its URL) is also added, to easily look at the data in a running server.
There's much to be improved here (I should've used a better data structure for this reporting), and much to be added (basically, all other caches in Openfire), but this is a start, based on which I've already been able to squash some bugs.
Emiel van der Herberg <emiel.van.der.herberg@marviq.com>
2982df530f44f35a16cae1fef7301dc547c8ef97
Refactored the not-triggering of cache entry events on the local node to event listener registration. Removes code duplication in listener implementations.
OF-2280: Prevent more than one cluster node from establishing outgoing S2S to same domain
Openfire was designed (perhaps needlessly) to not have more than one cluster node establish a connection to any particular remote domain. This commit helps ensure that this is the case, by causing an exception to be thrown when a second registration is attempted.
Emiel van der Herberg <emiel.van.der.herberg@marviq.com>
c84a7b04ba362c6492a72ffae737548cb7686fe2
Register MUCService with cluster manager to get updates on cluster status.
Emiel van der Herberg <emiel.van.der.herberg@marviq.com>
5ee60c8683b8d0df14e7cf8639c71a42ed1b1b94
Migrated cleanup handling of client session info cache from hazelcast plugin ClusterListener to openfire core SessionManager.