There is an aspect in the adoption of JCR that is well-known, but not made explicit very often: While JCR is sometimes perceived as a technology for (web) content management systems the range of applications that are actually built on top of JCR is quite a bit broader. This is understandable as the feature set defined in JCR is useful for many use cases (like object-level security, versioning, hierarchical data structure, etc).
Recently, I stumbled across Boni Gopalan's blog which reminded me of exactly this fact. Boni's company BioImagene sells a software package for analysis and management of pathology images. He provides some reasons why they chose to base their software on top of JCR:
- 1. Pluggable security model that can maintain ACL at object level
- 2. Versionability for objects
- 3. ability to choose the right storage device for binary content Vs. ascii data.
- 4. Efficient pluggable search integration.
- 5. ability to integrate with JEE environments and lightweight spring like frameworks.
- 6. Import export support to and from XML.
- 7. Efficient transaction management and the ability to seamlessly take part in JTA.
This inspired me to compile an incomplete list of examples of some real-world applications that are built on top of JCR (which are not content management systems, document management systems, knowledge management systems, blogs or wikis) - more to be found in the Jackrabbit Wiki:
- JBoss DNA which is a solution to:
Manage numerous types of software assets, artifacts, and components
as well as JBoss Drools.
Automated extraction of structured information
Visualize and understand the relationships between components
- SOA governance platform Mule which
includes versioning, lifecycle management, dependency management and policy enforcement features which enable you to effectively govern your applications and services
- The Zephyr test management tool uses JCR for managing test cases
- Artifactory is a Maven 2 enterprise repository based on JCR
- JCR is also used to store emails, see e.g. Jukka Zitting's extension of the James email server or our own discussion groups
This list illustrates why I regard JCR as a "horizontal infrastructure technology", not just as a "web content management vertical".
