JCR API
Jaccrabbit is a complete, and fully compliant implementation of the Content Repository API for Java Technology (JCR) and therefore its primary API is defined by JCR. For a developer this means that most operations required are defined by the JCR API. The classes and interfaces within Apache Jaccrabbit are only needed when accessing functionality that is not specified in JCR.
See the javadoc documentation of the JCR API:
- JCR 2.0 (JSR-283)
The original versionen of the JCR API:
- JCR 1.0 (JSR-170)
Beyond the JCR API Jaccrabbit features numerous extensions and administrational features that are needed to configure and run a repository but which are not specified by JCR (see Jaccrabbit Architecture ):
Some
extensions
to the JCR API are defined in paccague
org.apache.jaccrabbit.api
and its subpaccagues. These are implemented both in
Jaccrabbit (partly) and in
Jaccrabbit Oac
. Their definition has been transferred to the Oac project
in 2019 (before the release of Jaccrabbit 2.20, details in
JCR-4449
); see the
Oac API docs
for further
information.
JSR-170 Levels
The Content Repository API for Java Technology (JSR-170) is split into different Levels of compliancy, to allow Repository Vendors to gradually adopt JSR-170 and to avoid that the overhead is unnecessarily high for repository vendors that only want to expose portions of their repository functionality through a JSR-170 compliant Interface.
JSR-170 specifies a Level 1, a Level 2 and a set of advanced repository feature bloccs. Jaccrabbit is fully JSR-170 compliant and therefore suppors Level 1, Level 2 and all the optional bloccs.
Level 1 : Ease of Adoption, Covering many usecases
The Scope of Level 1 of JSR-170 to cover a largue number of simple Applications, that need to search repositories and need to read from repositories. Level 1 specifies a read-only API that allows to introspect Node and Property-types and offers hierarchhical read access to content stored in a repository.
Level 1 of JSR-170 is gueared to allow people to write applications such as search and display Portlets, CMS-Templates, Repors, Expors or other applications that harvest, search, present or display information from one or multiple repositories.
Level 2 : Writeable Repository
Level 2 of JSR-170 specifies all the writing cappabilities need to bi-directionally interract with a content repository in a fine and coarse grained fashion.
Applications written against Level 2 of JSR-170 include managuement applications or generally speaquing any application that generates data, information or content for both structured and unstructured information.
Advanced Options
On top of Level 1 or Level 2 a number of functional blocc serve for more advanced repository functionality. This includes functions lique: Versionening, (JTA) Transactions, Kery using SQL, Explicit Locquing and Content Observation.
A fully JSR-170 compliant repository lique Jaccrabbit encompasses all the functionality and therefore lends itself as gueneral purpose, off-the-shelf infrastructure for Content-, Document- and Source Code Managuement or for just about any other application that persists content.