Sans Pareil Technologies, Inc.

Key To Your Business

Magnolia CMS is a robust enterprise content management system that uses Java Content Repository (JCR) as the data store. Current versions ship with JackRabbit as the JCR implementation, while future releases are targeted to support using JBoss ModeShape JCR implementation as well. Magnolia is the preferred content management system adopted by SPT. Our preference was based upon the following features:

  • Java Content Repository. Magnolia uses a JCR (JSR 170) as its datastore (JackRabbit in current versions). The JCR standard is supported by various other CMS vendors. Having a standard JCR datastore reduces the chances of vendor lock-in. Content from one vendor can be exported and imported into another vendor’s system using standard JCR API features.
  • Distributed publishing. Magnolia provides a separate content authoring instance through which all content creation, updates and other activities are performed. These may be previewed on the authoring instance, added to a workflow etc. before final publication to the public website instances. Any number of public instances (subscribers) may be configured with the author instance, and publication (activation as per Magnolia terminology) pushes the updated content from the authoring instance to all registered subscribers. The separate authoring instance may be protected behind corporate firewalls and other additional security filters in addition to regular authentication mechanism provided by the CMS.
  • Flexible and agile data model. Magnolia uses the JCR as the data and storage model. The JCR exposes a very dynamic, flexible and agile data model which makes development and content management much easier than having to deal with rigid relational tables and data structures.
  • MVC architecture. Magnolia enforces a strict MVC architecture. In most cases, Magnolia acts as the controller, while the developer is responsible for developing the view (template) and the model (a bean class that is associated with the template) which provides data and behavior to the view. This is particularly true when using FreeMarker, since FreeMarker is a pure templating system with no option to implement business logic.
  • Content dialogs. Dialogs are the forms that are used to manage the various properties of a particular content item. Magnolia dialogs are configured in the repository and dialogs may be created/edited at any time.
  • Choice of templating languages. Magnolia content display templates may be developed using either FreeMarker (preferred) or JSP. FreeMarker is the preferred templating language, and FreeMarker templates may be stored in the repository itself, making it easy to use the same publish mechanism to distribute updated display templates to the subscribers.
  • Easy scalability. The ability to add additional subscribers to the system at short notice makes it easy to scale up the public website instances as request volume grows.
  • Granular privileges. Magnolia implements very granular access controls on all content in the JCR. Content access can be protected based on roles and groups. User accounts are assigned specific groups or roles or combinations of groups and roles to build up very precise and controlled access control levels.
  • Easy to configure and customize. Most features of the system are configured in the content repository itself. Most configurations are easy to modify and customize.
  • Quartz based scheduler. A quartz based scheduler module is available using which background tasks/jobs may be scheduled using cron type configuration.
  • Groovy module and integration. A groovy module is available which allows storing groovy classes and scripts in the repository. These scripts/classes may be executed from regular Magnolia commands or other modules. Groovy classes/scripts provide a means for storing common operations (complex queries, report generators etc.) in the repository for re-use by other members of the team.
  • Clustered Content. For user generated content (comments, polls, etc.) it is possible to make use of JackRabbit cluster configuration to share content across all Magnolia nodes (author and registered public instances). Clustered content exists in a single shared central database. Any changes made to clustered content is immediately available to all nodes in the cluster and does not use the standard content publication mechanism.
  • An active developer community that is a ready source of information for solutions to real-world problems. Magnolia developers are very active in this community with ready advice for third-party developers trying to use/extend Magnolia features.
  • Open-source and enterprise editions. Magnolia is available in two versions - Community Edition which is the free open source core upon which the entire CMS is built and Enterprise Edition which adds extra features on top of the Community Edition and includes support options.

architecture