Java Content Repository (JSR-170)
A JSR-170 content repository implements "content services" such as: versioning, full textual searching, fine grained access control, content categorization and content event monitoring. It is these "content services" that differentiate a Content Repository from a Database.
Java Content Repository / JSR-170 / JCR
Magnolia's core architectural decision has been to use a JSR-170 compliant repository and base Magnolia on top of the JSR-170 API.
The Java Content Repository API provides a standard way to access content bi-directionally on a granular level within a content repository. The JSR-170 API is implementation independent.
Here are some of the services a Java Content Repository provides:
- Granular Read/Write Access: a Java Content Repository provides a way to access-control content with a much finer granularity than typically possible on a database-driven system.
- Versioning: All JSR-170 repositories are able to version all of their content.
- Event Monitoring (Observation): JSR-170 defines a standard way to observe modification within a repository and act upon them.
- Full-text Search: all content within the Java Content Repository can be indexed and found via search. SQL and XPath are the two languages defined in the standard and often booth query languages are supported by a repository implementation.
Because of the above services, a Content Repository is a high-level information management system that is a superset of the functionality found in traditional relational databases.
Terms
Magnolia is based on the Java Content Repository, or more formally, the "Content Repository for Java(TM) technology API". This API is defined in the Java Specification Request 170, or short JSR-170. Finally, the Java Content Repository is often referred to as "JCR". In practice, JSR-170, JCR and Java Content Repository are the terms most often used to refer to the "Content Repository for Java(TM) technology API".
Magnolia CMS