Jackrabbit Branch Development
In this section I want to summarize the process of the content repository integration.
All development takes place in the jackrabbit branch.
Information about JCR and Jackrabbit
- The Java Content Repository API (JCR) is a standard for content repositories
- Jackrabbit is an implementation of the JCR specification
- Content Repository for Java Technology API Specification (JSR-170)
- Content Repository for Java Technology API Specification (JSR-283)
Motivation - Why we want to integrate Jackrabbit / a JCR Interface in OFBiz
- When we have an external content Repository it's easy to connect third party tools to the repository (i.e. CMS Systems)
- If we have a generic JCR implementation we can simply add different content repositories
- Content Repositories allow easier maintenance of complex content structures, as contents are no longer stored in different tables (Content, Resource, ElectronicText ...).
- Content Repositories can provide revisioning of contents and content modifications
What has been done
- Created a new independent JCR module in the framework
- Start the Jackrabbit Container on ofbiz startup
- Created a Repository Factory
- Created a Jackrabbit - Ofbiz architecture proposal: OfbizJcrClassDiagram_17_04_2011.gif
- (Implementation of the proposal is done and will be committed after review)
Still to be done
Ideas
- Propagate and enforce OfBiz permissions, roles and users to JCR
- Expose the JCR part via WebDAV (and/or some RESTish service)
- JCR contents shall always be revisioned
- Prevent duplication of properties between OfBiz and JCR
- Explore Content Addressable Storage CAS options to prevent duplicate contents
- Use this opportunity to create a simple workflow for OfBiz CMS Contents (or externalize to a CMS that provides a workflow)