1.2. Architecture

The architecture of eXo Platform is summarized in the following schema:

Service Container

A container is always required to access a service, because the eXo Kernel relies on the dependency injection. This means that the lifecycle of a service (for example, instantiating, opening and closing streams, disposing) is handled by a dependency provider, such as the eXo Container, rather than the consumer. The consumer only needs a reference to an implementation of the requested service. The implementation is configured in an .xml configuration file that comes with every service.


See Container, Kernel Reference for details.


Containers are used to gain access to services. The followings are important characteristics of services:


See service configuration for beginners and in details for further references.

Java Content Repository

All data of eXo Platform are stored in a Java Content Repository (JCR). JCR is the Java specification (JSR-170) for a type of Object Database tailored to the storage, searching, and retrieval of hierarchical data. It is useful for the content management systems, which require storage of objects associated with metadata. The JCR also provides versioning, transactions, observations of changes in data, and import or export of data in XML. The data in JCR are stored hierarchically in a tree of nodes with associated properties.

Also, the JCR is primarily used as an internal storage engine. Accordingly, eXo Platform lets you manipulate JCR data directly in several places.

In Java Content Repository, there are 2 main parts:


See JCR Reference Guide for the full knowledge of JCR.

Copyright ©. All rights reserved. eXo Platform SAS
blog comments powered byDisqus