A common pattern identified amongst developers is that they keep to what they know. What do we mean by that is; first the definition of pattern is a repeatable design or actions. Therefore when it comes to choosing a CMS, developers stick what they know, what they have used in the past, even though that might not be the best choice. The purpose of this blog is save time by providing some basic information which can be used to assess new CMS. The article will focus on Open Source CMS which developers can download for a test drive. Content management system in this context is related to building web portals, web apps, blogs, wikis, forums and third party integrations.
The criteria used to build this list is as follow:
- CMS maturity
- Ease of use
- How easy to develop new features or integrate with 3rd party systems
- developer community: including Stack Overflow
There are many Java based CMS out there, we could not test them all. Without further ado, let’s get started.
eXo platform is a portlet based Content Management System. This Java portal is widely used to build website and also integrates with third-party system. The project has been going since 2003 and it is released under the more restrictive LGPL licence. Running a quick search for “exo platform” on Stack Overflow only returned 608 results. Not sure what this means; it either not popular or so easy to use that people do not need any help. Nonetheless, this Java CMS allows you write new modules/ extensions using JSR 168 / 286 portlet standard. JSF can also be used for development of new features. A downside of eXo platform website is they require a registration to their site in order to download the community edition.
It is not easy to find out the licensing options available when trying out Magnolia. The website is geared toward selling you the enterprise license. Magnolia is pure content management system which uses Apache Jackrabbit content repository. The community edition is limited as for example; publishing is limited to only one subscriber. This can be changed by going through the source code. This CMS uses Apache Freemarker as it templating engine. The learning curve here can be quite steep as unlike following a standard implementation such as JSR 168 / 286, Magnolia has implement its own standard. It is important that a system implementing their own standard has a very active development community. A search for “magnolia cms” in Stack Overflow returned 811 results.
OpenCMS is an LGPL open source content management. It has been around since 2000. The CMS has an impressive user interface to build web pages that even a non-techie can use with ease. OpenCMS user interface is based on Bootstrap CSS version 3 (version 4 is still in alpha). Its drag and drop feature makes it easy for designers and marketers to create new web pages in no time. For the more technically incline, new modules can be developed using Spring MVC, JSF and Groovy. The wiki seems to be out of date but it does mentioned that previous version could deploy and use modules also developed in PHP. A simple search for opencms on Stack Overflow returns 2550 results. The OpenCMS website is full of tutorials and documentation to help developers get started.
Alfresco is power document management developed by ex guys from Documentum. The main focus of Alfresco is still around documents but it also provides a good CMS feature. Not sure if there’s any other open source document management system out there who can rival its DM features, hence its popularity helps to move into the content management. Like most commercial open source companies, Alfresco’s website tends to push people toward the commercial editions. The software is also available as a free download, licensed under LGPL. Much of the enterprise features have been removed the free version. Developers can build new modules using JSR 168 / 286, JSF and Spring. Alfresco seems to have an active community. A simple Alfresco search on Stack Overflow returns 14000 results.
The above list is based on Kiktronik client based and past projects. We help organisation implement content management systems and as a Java house, it is natural that we recommend solutions based on our language of choice. When deciding which content management you should implement, consider the cost which includes licensing and development and the community support. There is no point choosing something very exciting but it would take about 4 weeks to get any help from the community. Java CMS cannot be as popular as PHP based ones due to their cheaper hosting prices but they can and sometimes are superior to their PHP counterparts.
Well, we hope that you have found this article useful and let us know if there are any other Java CMS that we should consider in the future.