Integrating OpenCms with Maven

OpenCms Solution Provider Comundus has created an integration of OpenCms and Maven. The project is available on SourceForge. Goal of the project is to optimize the OpenCms build process, not only for the OpenCms core but also for OpenCms project development. The project was initially presented to the OpenCms community at OpenCms Days 2008.

In order to use this Maven integration, currently a non-standard OpenCms distribution that contains several patches to the original OpenCms core has to be used. This non-standard OpenCms distribution is based on OpenCms 7.0.3.

In this Sprint, we checked how to modify the code of the OpenCms core and the Maven plugin so that in the future, the Maven plugin can be used with the standard OpenCms core distribution.

Roadmap

  • Some of the changes to the OpenCms core by Comundus are just bug fixes; these have been given to Alkacon during the Sprint as a patch relative to 7.0.5 code (patch available here: bugfixes.patch.txt). These fixes will be integrated in future OpenCms release versions.
  • A requirement with the checking of existing OUs not existing yet when doing a Maven build on group creation has been fixed with a patch to the OpenCms core doing the checks only when the OpenCms runlevel is "servlet mode" (patch available here: ou.maven.patch.txt).
  • One problem with configurable LinkRelations is that the type "defined in content" can't be set via configuration; some API in that area must be extended in the core (patch available here: relationtype.defincontent.patch.txt).
  • The class implementing the OpenCms synchronization method must be made pluggable, since the Maven plugin requires different functionality for this. It was agreed that this should be configured in opencms-importexport.xml with a new "synchronizationhandler". For this handler a simple interface needs to be defined.
  • Code for use by the Maven VFS Plugin will go into a separate JAR file for a beginning; might be integrated to the core later on
  • If there is a way to eliminate the need for the special "CmOpenCmsShell" class of the Maven plugin, it should be done.
  • Besides it would be helpful to include a possibility to actually configure and use custom CommandObject classes with the CmsShell. This functionality should already be available in the core but either it does not work as expected or it has not been used correctly in the Maven Plugin. This needs further investigation.
  • Currently the Maven VFS Plugin code copies quite some code from original OpenCms; this code should go into one or more extra classes that are used by OpenCms core as well as Maven VFS Plugin code; thus eliminating duplicated code; and changes to that code done by Alcacon get integrated into the function of the Maven VFS Plugin automatically.

Latest News

  • OpenCms 16 available

    Oct 2, 2023 - OpenCms 16 brings the new app "Unused contents" that allows to find and delete content that is not actively used on any container page. It is now possible to select between several individual detail pages in the same website based on categories of the detail content. It can now be enforced that all content managers must set a new password after the next login. The default Mercury template brings several new features, e.g. the "Image tile display" formatter for the "Tabs / accordion" element.

  • OpenCms 16 Release Notes

    Oct 2, 2023 - The OpenCms 16 release notes contain detailed information about the new features and fixes in this version.

  • Alkacon OCEE 16

    Oct 2, 2023 - Alkacon OCEE 16 is the latest OCEE release for OpenCms 16. This version fixes an issue where deleting a user/group didn't flush the ACL cache.

  • OpenCms 15 available

    Apr 25, 2023 - OpenCms 15 provides role-based control to restrict who is allowed to update the sitemap configuration, including an editor for modifying selected sitemap attributes by any content manager. The new launchpad app "Person data search" reveals personal user data stored in the VFS. The Mercury template adds more than 1800 optional icons from the Bootstrap collection and numerous further enhancements.