Magnolia is a Java based system. This means that the core architecture of Magnolia is based on Java concepts, possibly the most important is the idea that all content in Magnolia is ultimately stored in the Java Content Repository. How the content is stored, affects how you interact and work with Magnolia as a developer.
Java Content Repository
Where does Magnolia store content?
All content (web pages, images, documents, configuration, data) in Magnolia is stored in a content repository called
magnolia repository. This is a JackRabbit implementation of Java Content Repository (JCR).
What is the data structure of JCR?
With JCR data is stored in a hierarchical data structure that is comparable to a file system - folders and files. Folder is comparable to a Node. File is comparable to a Property. Traversing down the hierarchy is done similarly to a file system using the tree path: /A/B/property. We look at properties in the next unit: 2.2.3 Nodes and properties.
What content services does JCR implement?
- Author based versioning
- Full textual searching
- Fine-grained access control
- Content categorization
- Content event monitoring
We saw earlier that the top level of JCR is the
repository. This is further divided into
- A workspace consists a root node '/.
- Unique IDs (uuid) are unique within one workspace.
- A JCR session is always bound to one workspace.
Some of the core workspaces are:
Where can I see a complete list of workspaces for the Edition I am working with?
The complete list of core workspace folders can viewed in the following application folders:
When do I need to create a new workspace?
A classic example of when you need to create a new workspace is when creating a new app. The repository and workspace are specified in the module descriptor:
We look at the role of a module descriptor in: 6.2.1 Project structure.
Can I use another database to feed data to Magnolia?
For a list of compatible database types see our application stack: http://documentation.magnolia-cms.com/administration/certified-stack.html
A simple exercise on deleting a workspace at file system level.