Online comparisons of CMS alternatives in Java and other languages:
- CMS Matrix - supports side-by-side CMS comparisons
- Open Source CMS in Java
- 2007 Open Source CMS Award Finalists
CMS, ECM, WCM, DMS, JCR and Portlets
Enterprise Content Management (ECM) platforms cover broader functional and technical scope than basic CMS, but most robust solutions appear to be moving in this direction:
- Document Management
- Collaborative work
- Records Management & Digital Asset Management
- Business Process Management
- Retention Management
- Compliance Management
Other terms encountered in relation to Content Management Systems include Java Content Repository (JCR or JSR-170) and Document Management System (DMS).
Apache Jackrabbit is the leading open source JCR, but others include Alfresco's implementation and Day Software's CRX. The Java Portlet Specification (JSR-168) defines the interface between portlet containers and portlets, and is used in many cases to integrate JCR and a CMS portal.
A DMS is used to track and store electronic documents and works at the document level, and has some overlap with CMS concepts. It is often a component of an ECM, but is not a substitute for management at the discrete content level. The jLibrary DMS project below claims to provide CMS functionality.
Open Source Java CMS
Based on those high-level comparison and the discussions/articles below, I took a closer look at the following CMS-related Java projects.
- A March 2007 discussion mentioning OpenCms, Alfresco and Magnolia
- Posting and commentary on migrating to OpenCms, also referencing Magnolia and Jackrabbit/JCR
Alfresco is an open source ECM with DMS features, built by a core teams from Documentum and Interwoven with 15 years ECM experience and founded by a co-founder of Documentum. Is this a good thing? Initially released in September 2006. There is also a more basic Web Content Management (WCM) package. Downloads can be found here.
It is built using Spring, Hibernate, Lucene, MyFaces, JSR 168, JSR 170 and JSE5. Alfresco's Content Repository is a custom JCR which they claim has the fastest benchmarks. There is an alpha project to integrate with a Jackrabbit JCR.
The GPL'd Community release is freely available, with 2.1 recently released with new Web 2.0 UI and a REST architecture. Information on the different licenses (OEM Program vs Commercial License) is available here.
Alfresco uses JBoss Portal per this screencast which demos the integration and use cases. There is some mention of some initial Seam re-use, but that appears to be limited to jBPM and jPDL. This wiki article discusses surfacing Alfresco content in Facebook.
Apache Jackrabbit (JCR)
Apache Jackrabbit replaced Jakarta Slide and is used by or integrates with jLibrary, Nuxeo 5 and other Java CMS offerings. See my introductory article for more information on Jackrabbit.
Apache Lenya (CMS)
Apache Lenya seemed to have a promising future several years ago, but the long promised 2.0 release was under development for an extended period.
UPDATE: Lenya 2.0 was finally released in January 2008, but is still based on Apache Cocoon with a proprietary content repository and minimal JCR integration.
Hippo CMS (CMS)
Hippo CMS is an open source information centered CMS targeted at medium to large organisations managing content for web sites and intranets. Consists of the Hippo Repository, Hippo CMS and one or more Apache Cocoon instances as outlined here. The Hippo content repository is based on the retired Jakarta Slide retired project. Does not appear to have complete integration for JCR support.
The Jahia Community Edition is advertised as "a powerful Java-based web content management system coupled to a JSR168 compliant Corporate Portal Server" and is available for download here. Referenced by a Nuxeo partner and others attempting to integrate Nuxeo portlets into it.
JBoss Portal (Portal)
JBoss Portal replaced Nukes on JBoss which is also discussed here and here. Documentation is linked here and downloads here. The current Portal release 2.6 is compatible with JBoss 4.2.
Portlets can be implemented using JBoss Seam although its unclear how mature this support is given this recent posting on a tech preview.
Content management is based on JCR with an overview here. It appears to have been introduced in Portal release 2.2, using Jackrabbit. Using CMSPortlet to serve JCR content is described here.
jLibrary is a newer open source DMS. It claims to take a double approach also tackling CMS concerns and making it a unique product for pure open source. With jLibrary, you can classify your documents, videos, or any other media type.
Version 1.1 was released in June 2007 so the project may be immature. Some of the lead developer's comments can be found here and here.
Magnolia bills itself as Simple ECM, with WCM and DMS features. It is billed as the first and still one of the few that uses JCR as a basis, not as an add-on, of its system architecture. This makes it easy to start with the default Jackrabbit repository and switch at any time to a more sophisticated implementation like CRX, should your needs demand it. It supports portal integration in the Enterprise edition. The Community edition only appears to support standards-based templating in JSP and Servlets, with a custom tag library to speed development.
The latest 3.5.2 release was made available in December 2007. This blog posting discusses a recent 3.5 release candidate. The last stable release is 3.0 is over a year old and is compared in the spreadsheet linked above.
The Magnolia Enterprise and Community Editions are available for download here. The Community license was recently transitioned to GPLv3.
This wiki page does a poor job of comparing Magnolia and OpenCms, but serves as a bookmark for further research. This 3.0 release article includes some debate on Magnolia versus Alfresco.
Nuxeo 5 (WCM/ECM)
See my introductory article for more information on Nuxeo 5. It appears that WCM support is pending in the pending 5.2 release.
See my introductory article for more information on OpenCms.