Upgrade 14.5 to 14.6
Overview
This guide describes how to upgrade a Bloomreach Content implementation project from version 14.5.x to 14.6.y.
Significant Changes
-
The Spring Boot framework is now integrated into the CMS application. This integration enables additional monitoring and management features. For details on enabling these features, see (Optional) Enable Spring Boot Actuator.
Note: If your project already uses a Spring application context in the CMS, you may encounter conflicting root contexts. For guidance, see Handle Conflicting Spring Contexts.
-
Version 14.6.0 introduces improved XML parsing and uses new XML parser properties supported since JAXP 1.5. If your project includes an older JAXP implementation, such as Apache Xerces, on the classpath, you may experience issues due to changes in the default XML parsers. See Remove Xerces Dependencies for resolution steps.
-
The Camunda UI is no longer available in 14.6.0. If your project still includes Camunda, follow the instructions in Use Projects without Camunda and Remove Camunda to remove it.
Upgrade Steps
1. Perform Generic Minor Upgrade Steps
Follow the generic instructions for minor upgrades before proceeding with version-specific changes.
2. Remove Xerces Dependencies
brXM 14.6.0 uses enhanced XML parsing and new parser properties from JAXP 1.5. If your project includes an older JAXP implementation (such as Apache Xerces) on the classpath, this can cause compatibility issues.
For instructions on removing Apache Xerces dependencies, see Remove Apache Xerces Dependencies.
3. Update Deprecated #isCmsRequest Usage (14.6.3)
In version 14.6.3, the deprecated method HstRequestContext#isCmsRequest was removed. If your project references this method, typically in Freemarker templates, replace it with #isChannelManagerPreviewRequest. For more information, refer to the 14.0 upgrade guide.
4. Handle Conflicting Spring Contexts
If your project defines a custom Spring application context in the CMS, you may encounter conflicts due to Spring Boot’s own ContextLoaderListener. A conflict occurs if ContextLoaderListener is already defined in web.xml.
To resolve this, configure Spring Boot to load your custom Spring context XML file using a configuration class. Use the exact package name org.bloomreach.xm.cms as shown below:
package org.bloomreach.xm.cms; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.ImportResource; @Configuration @ImportResource({"classpath*:spring/applicationContext-custom.xml"}) public class CustomConfiguration { }
After adding this configuration class, remove the existing ContextLoaderListener definition from your web.xml file:
<!-- should be removed --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
Alternatively, you can remove the Spring Boot libraries (and forgo Spring Boot Actuator functionality) by adding an exclusion to the hippo-package-cms-dependencies POM dependency:
<dependency> <groupId>org.onehippo.cms7</groupId> <artifactId>hippo-package-cms-dependencies</artifactId> <type>pom</type> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot</artifactId> </exclusion> </exclusions> </dependency>
5. (Optional) Enable Spring Boot Actuator
Version 14.6.0 integrates the Spring Boot framework, providing additional monitoring and management features for the CMS application.
For instructions on enabling Spring Boot Actuator in your CMS application, see Enable Spring Boot Actuator.