This article covers a Bloomreach Experience Manager version 12. There's an updated version available that covers our most recent release.

Patched Jackrabbit in Hippo Repository

The current version of Hippo 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 hippo-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 Hippo patched version through separate branches, named hippo/jackrabbit-<version>-hx, which is based off a specific jackrabbit version release tag.

The branch -hx postfix indicated the first/initial target Hippo patched Jackrabbit version maintained in that branch.
New patches will be developed in that branch until we tag a new Hippo 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 hippo/jackrabbit-<version>-hy based off the previous hippo/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 hippo/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?