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).
OF-3212: Add defensive (re)create of PEP root collection node if it's missing
Openfire expects each PEP service to have a root collection node. However, there are various code paths where a service can be created without one.
In this commit, the initialization of the service has been made more robust to always (re)create a root collection node in case one is missing.
OF-3123: Initialize PEPService before adding to cache
Reorder PEPService initialization to occur before the service is placed in the cache. Previously, services were cached before initialize() completed, creating a race window where other threads could access uninitialized services. Now initialization happens in both getPEPService() and create() methods before caching, ensuring all cached services are fully initialized. This is still protected by existing per-JID locking and has zero performance impact.
OF-3123: Save root node of new PEPService afer adding to cache
The root node of a (new) PEPService instance typically must be persisted in a database. Prior to this change, this happened in-line to the `PEPService#initialize()` invocation.
Saving to the database requires the PEPService to be registered with the cache of PEPServices. The prior commit's purpose was to ensure that an uninitialized service was _not_ registered with that cache, breaking the persistence of the root node.
In this commit, the root node is no longer stored in the database in the `initialize` method. Instead, it is persisted only after the new service is stored in the cache.