Release Notes for OpenCms 20
October 14, 2025: OpenCms 20 adds support for "online only" folders, where content is automatically published immediately after any modification. The new link finisher option unifies links to the same page written with different endings (e.g., /folder/ vs. /folder/index.html). The combined disk space used by all resources in a folder is now calculated and displayed. Support has been added for an upload whitelist to configure which file types are allowed in the upload dialog. External links in WYSIWYG fields can now automatically receive a special CSS class. When a detail page is moved to another folder or site, its associated detail containers are now moved as well.
Main new features of OpenCms 20
- Support for "online only" folders
- Link finisher can generate uniform link endings
- Calculate the disk space size of all resources in a folder
- Supports a resource type whitelist in the resource upload dialog
- Option to automatically add a class to external links in WYSIWYG fields
- Move detail containers if a detail page is moved
Further improvements in OpenCms 20
- Page editor: Hide "detail only" containers with a layer when editing a detail page
- Page / Form editor: Display of "Page editor" and "Form editor" when editing pages or resources
- Workplace: Added filter option to the resource dialog in the explorer
- Workplace: Access the list of users in a group directly from the permission dialog
- Workplace: Property dialog keeps "Resource Box" visible when scrolling
- Workplace: Support for folder-based content creation rules
- Workplace: Allow "local content elements" creation in a configured folder
- Image scaler: Improved handling when scaling multiple images simultaneously
- Core API: Using java.nio.* classes for some core operations
- Core API: Minimum supported Servlet version is now 4.0
- Core API: Remove old entries from the CMS_STATICEXPORT_LINKS database table
- Core API: Improved job for deleting historic resource versions
- Core API: Improved support for accessing a website using the IPv6 address without DNS
- Core API: Migrate Maven publish process to use Central Portal
- Core API: Spread z-index for toolbar and dialogs
- Pull request #817 sets the 'Title' property when creating a file after synchronizing it from the RFS
Bug fixes in OpenCms 20
- Fixed issue with setting the "Content-Type" header in JSPs in Jetty
- Fixed issue with setting HTTP headers in JSPs and instances of CmsJspActionElement in Jetty
- Fixed issue with core shell and setup scripts not working in Jetty
- Fixed issue with "Compare locales" where the icon would appear "grayed out" for hidden entries
- Fixed issue with form editor not using the localized title property when inserting an image
- Fixed issue with permission check for role ROOT_ADMIN not seeing all explorer types
- Fixed issue with orphaned relations leading to errors when deleting files
- Fixed issue with FileTable column display for other apps that use the table (not the explorer)
- Fixed issue with I_CmsWorkplaceStylesheetProvider loading CSS files twice
- Fixed issue with text area width in WYSIWYG editor not correctly initialized in case of tabs
- Fixed issue #811 with frequent exceptions from CmsFileTable in the log
- Fixed issue #815 with 'Element Author' role missing the 'Undo' context menu option
- Fixed issue #815 with 'Element Author' role with edit buttons in info dialog not working
- Fixed issue #816 with OpenCms not working on CentOS
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 20 is backward compatible with all OpenCms versions from 10 to 19. Templates and other OpenCms developed code from these versions should work mostly "out of the box" with version 20.
Notice for users of Alkacon OCEE Users of Alkacon OCEE require a new OCEE version for OpenCms 20. 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 20 is compatible with Java 21, 17 and 11.
OpenCms 20 requires a Java Servlet 4.0 compatible web container. We have tested this release using Jetty and Tomcat. It works "out of the box" with Jetty 12 or Tomcat 9. Others have reported deploying OpenCms successfully on other web servlet containers like WildFly, GlassFish, WebLogic, WebSphere and Resin.
On the database side, we provide support for MySQL, MariaDB, Oracle, PostgreSQL, MS SQL Server, DB2 and HSQLDB.