Fork me on GitHub

Object Content Mapping

The Jackrabbit OCM documentation is still in progress. We advise you also to review the unit tests to get an overview on current OCM features.

Jackrabbit OCM is a framework used to persist java objects (pojos) in a JCR repository including association, inheritance, polymorphism, composition, and the Java collections framework. It offers also features like version support, object locking and express queries with Java-based criteria, as well as with JCR query languages.

In order to easily support the JCR specification, any content application managing an high level object model can use this framework. For example, a classic Forum application contains objects like “Forum”, “Topic” and “Post”. Now, the data objects (pojo) can be managed by our JCR mapping tools in order to persist them into a JCR compliant repository.

Why an ocm?

The object content mapping framework was created for the following different reasons:

  • Sometimes it is very convenient to be able to just access the JCR nodes and properties directly from your presentation-layer for very simple things (mostly generic display). When a lot of “business logic” are involved, the JCR API can be too low level and real business objects (pojo) are more appreciate in such cases.
  • The OCM framework provides more abstraction on the technologies used to persist your content. The different application layers are less dependent on the JCR API.
  • ORM tools like OJB or Hibernate are not appropriate for content oriented application.


Before using this OCM framework, you should review the JCR specification and implementations like Apache Jackrabbit.