27-04-2022

Patched Jackrabbit in Bloomreach Experience Manager Repository

The content repository, the persistence layer backing Bloomreach Experience Manager, is based on Apache Jackrabbit 2.x. We're using a patched version of Jackrabbit. Although this is not our preferred way of working, and whenever possible we'd like to contribute our improvements back to Jackrabbit, unfortunately there are cases where we have no other options at the time: either because there is a bug and because we can't be as quick to create a new tag of Jackrabbit; and/or an improvement that is specific to Bloomreach Experience Manager's use case, for which at the moment there is no generic solution for Jackrabbit available.

For this purpose we are using a bloomreach/jackrabbit git mirror of the Apache jackrabbit (git) repository: git://git.apache.org/jackrabbit.git

Within this git mirror, which gets automatically updated and from the upstream Apache repository, we maintain our patched version through separate branches, named bloomreach/jackrabbit-<version>-hx, which is based off a specific jackrabbit version release tag.

The branch -hx postfix indicated the first/initial target patched Jackrabbit version maintained in that branch.
New patches will be developed in that branch until we tag a new pached version named jackrabbit-<version>-hx, after which we will continue using the same branch for future -hx+1 versions.

If we need to modify a set of patches for a specific Jackrabbit version however, we'll create a new branch bloomreach/jackrabbit-<version>-hy based off the previous bloomreach/jackrabbit-<version>-hx up to the patch which needs to be modified, and then proceed with the changes in that new branch.

For a new Jackrabbit version we start again from the base Jackrabbit  version tag and replay and rework the existing patches in a new bloomreach/jackrabbit-<new version>-h1 branch. 

Did you find this page helpful?
How could this documentation serve you better?
On this page
    Did you find this page helpful?
    How could this documentation serve you better?

    We rely on cookies

    to optimize our communication and to enhance your customer experience. By clicking on the Accept and Close button, you agree to the collection of cookies. You can also adjust your preferences by clicking on Manage Preferences. For more information please see our Privacy policy.

    Manage cookies
    Accept & close

    Cookies preferences

    Accept & close
    Back