Skip to content
OpenCms 12
OpenCms 12

Release Notes for OpenCms 12

October 12, 2021: OpenCms 12 features a headless JSON API for REST content access, together with several JavaScript demo applications that show how to use it. The default "Mercury" template has been greatly improved. Template variants allow to completely switch the generated HTML of a website simply by configuration. A greatly improved WebDAV implementation enables mounting the OpenCms virtual file system from any WebDAV client.

Main new features of OpenCms 12

  • Headless API: Access XML contents as JSON objects.
  • Headless API: List all resources in a folder tree as JSON.
  • Headless API: Load the results of a user defined list as JSON.
  • Headless API: Load structure and settings of a container page as JSON.
  • Headless API: React demo applications showcase the use of the new features.
  • Template Variants: Introducing a new container page format (the old format can still be read).
  • Template Variants: Store "formatter keys" instead of UUIDs of configuration files in new container pages.
  • Template Variants: Sitemap attributes allow to display different element settings per variant.
  • Template Variants: Add and remove content types, formatters and / or functions per master configuration.
  • Template Variants: Master configurations can be chained to allow variant specific adjustments of a base variant.
  • Workplace: New "Optimize gallery" dialog for image and download galleries.
  • Workplace: It's now possible to change properties of a folder without locking all resources in the folder.
  • General: Greatly improved WebDAV implementation, allowing to mount the OpenCms virtual file system from any WebDAV client.

Further improvements in OpenCms 12

  • Workplace: "Optimize gallery" dialog allows to find and delete unused images / documents.
  • Workplace: "Optimize gallery" dialog allows editing the properties of several images / documents.
  • Workplace: Changing the availability date released / expired in the explorer will now also update an XML content that contains a mapping to these properties.
  • Workplace: Added a "show password" button on the login dialog.
  • Workplace: Combined the "Versioning" workplace apps into a single app.
  • Workplace: Added an option to clean up the publish history in the "Versioning" app.
  • Workplace: Added "Advanced > Reindex" option in the Explorer context menu to update selected parts of the search index.
  • Workplace: Added support for custom gallery upload actions in the explorer.
  • Editor: Added editing and other context menu actions on the publish dialog "broken links" panel.
  • Editor: Added support for custom gallery upload actions to the gallery dialog and the form editor.
  • Editor: Improved "edit point" icon and menu for functions.
  • Editor: Disabled editing of elements on a page for types disabled in the sitemap configuration.
  • Editor: Preventing session timeout in page editor preview mode.
  • Template API: Added support for external URLs in headinclude links.
  • Template API: Added support for request parameters in headinclude links.
  • Template API: Added "ignore" flex cache directive for dynamic function JSPs.
  • Template API: Extended the XSD widget configuration to allow macros in widget names.
  • Template API: Added tag "cms:setBundle" as substitute for "fmt:setBundle" with additional support for the OpenCms bundle loader mechanism.
  • Template API: Added "isDetailPage?" macro for choosing different element settings depending on whether an element is displayed on a detail page or not.
  • Search: Added a list configuration option to limit the maximal number of search results.
  • Search: Extended the document factory configuration for indexing, allowing to use different document factories for different search indexes.
  • Search: Added an option to configure external SOLR servers per index.
  • General: Added new 404/500 error handler page with "spin" and "snow" CSS animations.
  • General: Expanded the list of default static export suffixes and mime types.
  • General: Added .webp as suffix to detect uploaded files as image resources.
  • General: Enabled XML content correction during import.
  • General: Added "sort by display order" option to the sitemap configuration.
  • General: Use mariadb client instead of mysql connector for MariaDB / MySQL by default.
  • General: Using the default table engine for MariaDB / MySQL instead of forcing MyIsam.
  • Components: Updated GWT libraries to version 2.9.0.
  • Components: Updated Vaadin libraries to version 8.11.2.
  • Components: Updated SOLR libraries to version 8.6.2.
  • Components: Updated HikariCP libraries to version 4.0.2.
  • Components: Updated Xerces libraries to version 2.12.0.
  • Components: Updated Gradle to version 6.4.1.
  • Fixed a number of security issues.
  • Fixed issue #706 wrong list item indentation in editor tooltip.
  • Fixed issue #709 so the publish dialog does not list resources invisible to a user.
  • Fixed issue #711 where using <cms:display> before the first <cms:container> tag caused an NPE in the Offline project.
  • Fixed issue #712 with illegal reflexive operation from GWT-Servlet 2.8.2.
  • Fixed issue #713 where import module disables new content editing.
  • Fixed issue #714 with sorting by title in the gallery dialog.
  • Fixed issue #716 with problems displaying offline content with a future release date.
  • Fixed issue #719 with anyGroups filter in user search API.

General OpenCms features

  • The page editor allows WYSIWYG inline editing of web pages and arrangement of content by drag & drop.
  • The form based editor allows editing of structured content in a well defined form mask.
  • The sitemap editor allows to create new pages and re-arrange the navigation tree by drag & drop.
  • Responsive "Mercury" default template based on Bootstrap 4 with many features.
  • Headless API for accessing content as JSON from external applications.
  • Content creation for mobile devices with preview and device specific content control.
  • Structured contents can be defined using a simple XML schema.
  • Easy to use "Online / Offline" workflow, changes must be approved before they become visible.
  • Link management for all internal resources with broken link detection.
  • Integrated image scaling and cropping.
  • SEO features with automatic sitemap.xml generation and page alias support.
  • Full featured user management that supports the concept of "Organizational Units" (OUs).
  • Allows management of multiple websites within one installation.
  • Contents can be served dynamically or exported to static HTML files.
  • File access to the OpenCms content repository over a shared network / SMB drive.
  • CMIS and WebDAV access to the OpenCms content repository.
  • Integrates Apache SOLR for powerful content searching and noSQL like queries.
  • Full text search for web pages as well as in office documents like PDF, MS Office and Open Office.
  • Extensions can be added through a flexible module system.
  • The "time warp" feature allows to view resources which are expired or not yet released.
  • JSP integration for dynamic functionality in templates, dynamic forms etc.
  • ... and many more

Backward compatibility

OpenCms 12.0 is backward compatible with all 11.0, 10.5 and 10.0 versions. Templates and other OpenCms developed code from these versions should work mostly "out of the box" with version 12.0.

Notice for users of Alkacon OCEE Users of Alkacon OCEE require a new OCEE version for OpenCms 12.0. The update is free for Alkacon customers with a valid OCEE subscription. Please contact Alkacon to receive the new version.

Compatibility with Java versions, servlet containers and databases

OpenCms 12.0 has been written and tested for Java 11 and Java 8. We have tested with ORACLEs JDK as well as OpenJDK. OpenCms should run with all compliant JVMs.

We have tested this release on the Tomcat servlet engine, which we recommend. OpenCms works "out of the box" with Tomcat 9 and 8.5. Others have reported deploying OpenCms successfully on other servlet containers like JBoss, WildFly, WebLogic, WebSphere, GlassFish and Resin.

On the database side, we provide support for MySQL, MariaDB, Oracle, PostgreSQL, MS SQL Server, DB2 and HSQLDB.

Regarding version numbers and build tags

The main OpenCms Git repository is available on Github at

In case you want to get the most current OpenCms sources from Git, please check out branch master. This release is tagged build_12_0_0.

How you can help

Contributions to the OpenCms core development are most welcome. Please send us your pull requests directly on GitHub.

Please report issues found in OpenCms using our GitHub issue tracker.

Thank you for using OpenCms and have fun with OpenCms :-)