Apache Sling JCR Base Bundle

Clone this repo:
  1. e8fe5e0 Add info about RepositoryMount and add javadoc by Carsten Ziegeler · 3 months ago master
  2. a5361e9 [maven-release-plugin] prepare for next development iteration by Karl Pauls · 6 months ago
  3. beac20f [maven-release-plugin] prepare release org.apache.sling.jcr.base-3.1.0 by Karl Pauls · 6 months ago org.apache.sling.jcr.base-3.1.0
  4. 884e3d2 Merge pull request #1 from apache/SLING-8411 by Karl Pauls · 7 months ago
  5. 41942a8 Minor code formating by Karl Pauls · 7 months ago SLING-8411

Build Status Test Status Maven Central JavaDocs License jcr

Apache Sling JCR Base Bundle

This module is part of the Apache Sling project.

The JCR base bundle provides JCR utility classes and support for repository mounts.

Repository Mount

Apache Sling provides support for pluggable resource providers. While this allows for a very flexible and efficient integration of custom data providers into Sling, this integration is done on Sling's resource API level. Legacy code which may rely on being able to adapt a resource into a JCR node and continue with JCR API will not work with such a resource provider.

To support legacy code, this bundle provides an SPI interface org.apache.sling.jcr.base.spi.RepositoryMount which extends JackrabbitRepository (and through this javax.jcr.Repository). A service registered as RepositoryMount registers itself with the service registration property RepositoryMount.MOUNT_POINTS_KEY which is a String+ property containing the paths in the JCR tree where the mount takes over the control of the JCR nodes. The RepositoryMount can registered at a single path or multiple.

As RepositoryMount extends JackrabbitRepository the implementation of a mount needs to implement the whole JCR API. This is a lot of work compared to a ResourceProvider, therefore a RepositoryMount should only be used if legacy code using JCR API needs to be supported.