JCR (Content Repository API for Java) is a Java specification, defined by JSR 170 and JSR 283, for accessing content repositories in a uniform way, supporting hierarchical storage, versioning, full-text search, and access control.
JCR
JCR, the Content Repository API for Java, is a specification for interacting with content repositories through a single, uniform Java API. Defined first as JSR 170 and extended by JSR 283, it models content as a hierarchy of nodes and properties and adds capabilities like versioning, full-text search, observation, and access control on top. It underpins content management systems where structured and unstructured content need consistent, programmatic access.
- Hierarchical model - Content is organized as a tree of typed nodes and properties.
- Versioning and observation - Built-in history and event notification for changes to content.
- Search and access control - Full-text query support and fine-grained permissions.
- Reference implementation - Apache Jackrabbit provides the canonical open-source implementation.
In API operations, JCR sits behind content-heavy platforms and CMS products where content is later exposed through REST or GraphQL APIs to web and mobile clients. Teams that run JCR-backed systems typically layer HTTP APIs over the repository, so governing that surface means documenting those endpoints with OpenAPI and folding content APIs into the same discoverable, governed catalogs as the rest of the estate. Knowing a system is JCR-based helps explain its content model when mapping it for agents and integration tooling.