Verifies the integrety of the projects, as builds are executed immediately after a code change was detected. This plan provides no artifiacts (use a nightly build instead).

Build: #2026 was successful Changes by Guus der Kinderen

Code commits

Openfire (master)

  • Guus der Kinderen

    Guus der Kinderen 75e410c8849e1d36ffeee788b075eaf489300d91

    OF-2060: Additional documentation and TODOs around cluster-related events.

    • xmppserver/src/main/java/org/jivesoftware/openfire/SessionManager.java (version 75e410c8849e1d36ffeee788b075eaf489300d91)
    • xmppserver/src/main/java/org/jivesoftware/openfire/cluster/ClusterEventListener.java (version 75e410c8849e1d36ffeee788b075eaf489300d91)
    • xmppserver/src/main/java/org/jivesoftware/openfire/disco/IQDiscoInfoHandler.java (version 75e410c8849e1d36ffeee788b075eaf489300d91)
    • xmppserver/src/main/java/org/jivesoftware/openfire/disco/IQDiscoItemsHandler.java (version 75e410c8849e1d36ffeee788b075eaf489300d91)
    • xmppserver/src/main/java/org/jivesoftware/openfire/handler/PresenceUpdateHandler.java (version 75e410c8849e1d36ffeee788b075eaf489300d91)
    • xmppserver/src/main/java/org/jivesoftware/openfire/spi/RoutingTableImpl.java (version 75e410c8849e1d36ffeee788b075eaf489300d91)
  • Guus der Kinderen

    Guus der Kinderen 7cd8ad9eaa38fd393b470852147e740eee113d01

    OF-2060: Add references to issues in 'TODO' comments for OF-2066 and OF-2067

    • xmppserver/src/main/java/org/jivesoftware/openfire/spi/RoutingTableImpl.java (version 7cd8ad9eaa38fd393b470852147e740eee113d01)
  • Guus der Kinderen

    Guus der Kinderen bb858323878b96f36491768d70fb2775ae96f33e

    OF-2060: (re)populate clustered caches when switching implementation
    This commit is a follow-up to reverting the changes for OF-974

    When a server joins or leaves a cluster, the implementation that's behind the Cache interface is swapped. When switching _to_ a clustered implementation (_from_ a local/non-clustered implementation), the replacement cache can be used to interact with the cache content that's shared in the cluster. When switching _from_ a clustered implementation (_to_ a local/non-clustered implementation) the cache is replaced with a new (empty) default cache.

    OF-974 (now reverted) introduced a change that caused the content from the old implementation to be copied to the new one during the switch-over. This prevented data to be 'lost'. This approach has a considerable drawbacks: When data exists in both caches under the same key, one of the entries will be lost. Depending on the usage of a cache, different techniques to merge data can be desirable. The solution for OF-974 does not allow for that. Also, OF-974 assumes that it is desirable to retain data from the cluster after the node leaves the cluster. This is questionable. In cases, usage-specific code is needed to 'clean up' caches. This leads to a fragmentation of the responsibility of maintaining the cache content over various places: the utilizing code of the cache, as well as the CacheFactory. This adds code complexity.

    The original stategy (which has been restored by reverting OF-974) was for code to anticipate that, during cluster join and leave action, the data from the local node was missing from the cache. This introduced the various 'restoreCacheContent' method implementations. This has it's own challenges: there's the problem of 'missing data' (which lead to OF-974 in the first place), but also of not having access to the state of the cache prior to the change makes it hard to detect what changes are applied, which in turn makes it difficult to invoke corresponding event listeners, etc). It does, however, allow for far more granual control over the cache content, on a per-usage base. Additionally, cache content control can more easily be implemented in one central place, reducing complexity of the solution.

    This commit restores the original strategy, mainly by restoring notion of 'caches will not contain local data directly after a switchover' and re-introducing various 'restoreCacheContent' implementations, in places that currently inherit from ClusterEventListener.

    • xmppserver/src/main/java/org/jivesoftware/openfire/SessionManager.java (version bb858323878b96f36491768d70fb2775ae96f33e)
    • xmppserver/src/main/java/org/jivesoftware/openfire/component/InternalComponentManager.java (version bb858323878b96f36491768d70fb2775ae96f33e)
    • xmppserver/src/main/java/org/jivesoftware/openfire/disco/IQDiscoInfoHandler.java (version bb858323878b96f36491768d70fb2775ae96f33e)
    • xmppserver/src/main/java/org/jivesoftware/openfire/disco/IQDiscoItemsHandler.java (version bb858323878b96f36491768d70fb2775ae96f33e)
    • xmppserver/src/main/java/org/jivesoftware/openfire/handler/PresenceUpdateHandler.java (version bb858323878b96f36491768d70fb2775ae96f33e)
    • xmppserver/src/main/java/org/jivesoftware/openfire/muc/MultiUserChatManager.java (version bb858323878b96f36491768d70fb2775ae96f33e)
    • xmppserver/src/main/java/org/jivesoftware/openfire/session/ClientSessionInfo.java (version bb858323878b96f36491768d70fb2775ae96f33e)
    • xmppserver/src/main/java/org/jivesoftware/openfire/spi/RoutingTableImpl.java (version bb858323878b96f36491768d70fb2775ae96f33e)
  • Guus der Kinderen

    Guus der Kinderen 3885970b7666de11f21a0f9f359e4ea372664b3e

    OF-2060: Add javadoc explaining cache behavior in cluster

    • xmppserver/src/main/java/org/jivesoftware/util/cache/Cache.java (version 3885970b7666de11f21a0f9f359e4ea372664b3e)
  • Guus der Kinderen

    Guus der Kinderen c366559937f952f6316779c99e17d026f9dfa353

    Revert "OF-974: Migrate cache content"
    This reverts commit 18af4f0b6eea590ba356b88cd1e73823fd49b864.

    • xmppserver/src/main/java/org/jivesoftware/util/cache/CacheFactory.java (version c366559937f952f6316779c99e17d026f9dfa353)