Book Image

Building Websites with OpenCms

Book Image

Building Websites with OpenCms

Overview of this book

This book takes you through the process of creating content-rich websites and applications using OpenCms. Although powerful and flexible, OpenCms can be daunting on first approach, but its advanced features reward the investment in learning. This book exists to ease Java developers into getting the most from OpenCms. OpenCms OpenCms is a professional-level, open source Website Content Management System, with which you can create and manage complex websites. Based on Java and XML technology, it fits into almost any modern IT environment. With hard-won experience of the practical difficulties faced by developers working with OpenCms, this book is the embodiment of the author's expertise, and the perfect way to master the system.
Table of Contents (12 chapters)
Building Websites with OpenCms
About the Author

What Is OpenCms?

OpenCms is an open-source enterprise-grade content management system designed specifically for maintaining websites. It provides a full set of tools for dealing with content creation, editorial workflow, publishing, and versioning.

OpenCms is released under the Lesser GNU Public License (LGPL), which is an Open Source Initiative (OSI) certified open-source license created by the Free Software Foundation. Since OpenCms is released as open source, its source code is available from the OpenCms website.

The LGPL dictates that the source code for OpenCms must be made freely available. The source code for any changes made to it must also be made freely available.

However, external components, such as modules, wrappers, or JSP files, are not restricted by the LGPL, and can use different licenses (including proprietary, 'closed-source' licenses). This gives the application developer the power to decide how many restrictions should be placed on the code.


OpenCms is a web application. It runs on a web server and is accessed and used via a web browser. The following list discusses its features:

  • Browser-based interface: The only tool CMS users need, be they system administrators, authors, editors, or project managers, is a web browser. The OpenCms developers designed OpenCms to behave in a way similar to a normal Windows application, making it easier for the beginner to learn.

  • WYSIWYG editing tool: Authors and editors need not learn HTML to create content. OpenCms uses an ActiveX control to provide a rich graphical user interface (GUI) for composing content (effectively limiting the WYSIWYG editor to IE5+ browsers). Users familiar with word processing should easily acclimate to the OpenCms composer.

  • Role-based workflow: OpenCms has a sophisticated role-based workflow for managing the entire process of content creation.

  • Permissions model: Using a combination of UNIX-like permissions and roles, OpenCms provides methods for setting and restricting assets available to CMS users.

  • Sophisticated publishing: OpenCms provides project and file-based publishing. Additionally, it performs link and dependency checking to ensure that all of the necessary files are published together. Content can be exported from the CMS and deployed on other systems, or OpenCms itself can serve content to the public.

  • System administration: OpenCms administration is also browser-based. Tasks ranging from scheduling tasks to manually flushing caches can be done via the browser.

  • Online help: Open-source projects are often criticized for the lack of documentation. OpenCms, however, does not suffer from that problem. While the help module is optional, it provides context-sensitive help throughout OpenCms. Additionally, there are tutorial modules that can provide developer help and reference within OpenCms.

  • Module-based framework: OpenCms provides a module mechanism for adding functionality to the system. Modules ranging from online documentation (tutorials and references) to advanced content handling (calendars, news, search engines, etc.) are available as add-on software.


Alexander Kandzior began tinkering with content management software in 1994. By 1998, the pieces began to come together into a single content management system. In March 2000, the OpenCms Group, a loose collection of individuals working on the system, released OpenCms under an open-source license.

Under the auspices of the OpenCms Group, a number of companies and individuals contributed to the formation of OpenCms, but by the time OpenCms reached version 5.0 in 2002, some of the original members of the group were ready to move on to new projects. The OpenCms Group was dissolved.

Wanting to continue the development of his code, Alexander Kandzior started a new company, Alkacon Software, which took the reins of the OpenCms project. Alkacon Software now maintains the project, providing the roadmap and release cycle, as well as contributing code to OpenCms. To fund ongoing development of OpenCms, Alkacon provides support contracts, training, and consulting services.

Alexander and the Alkacon team are a visible presence in the community, and Alexander often contributes help and advice on the public OpenCms developer's list.

The OpenCms Community

Like many open-source projects, OpenCms has a lively community of developers and users. Many software developers contribute code directly to OpenCms. Others create add-on modules to provide additional services and features. Many more simply use the product. All three of these groups participate on mailing lists and forums surrounding OpenCms.

With many active contributors, the opencms-dev mailing list is a great resource for help installing, configuring, and developing OpenCms. In addition to providing help, the list is also a useful source of code and new modules.

Also, the 'unofficial' OpenCms forums hosted by Synyx oHG provides an online forum for discussion. The forum has a section for HowTos, and sample code generated by members of the community. Finally, the OpenCms Modules and Tutorials section mentions the website. While hosts completed modules on its website, developers will often release beta modules, modifications of existing modules, and 'semi-formal' documentation on this unofficial OpenCms website.