eXo Platform 3.5

## Chapter 1. Introduction in eXoJCR

## JCR (JSR-170) API main concepts

Java Content Repository API as well as other Java language related standards is created within the Java Community Process http://jcp.org/ as a result of collaboration of an expert group and the Java community. It is known as JSR-170 (Java Specification Request).

### Data model

The main purpose of content repository is to maintain the data. The heart of CR is the data model:

- The main data storage abstraction of JCR's data model is a workspace

- Each repository should have one or more workspaces

- The content is stored in a workspace as a hierarchy of items

- Each workspace has its own hierarchy of items

Figure 1.1. Item hierarchy

Node is intended to support the data hierarchy. It is of type using namespaced names which allows the content to be structured in accordance with standardized constraints. A node may be versioned through an associated version graph (optional feature)

Property stored data are values of predefined types (String, Binary, Long, Boolean, Double, Date, Reference, Path).

It is important to note that the data model for the interface (the repository model) is rarely the same as the data models used by the repository's underlying storage subsystems. The repository knows how to make the client's changes persistent because that is part of the repository configuration, rather than part of the application programming task.