Bloomreach Experience Manager V16.0 Release Notes

Highlights for v16.0

We are pleased to announce a new version of Bloomreach Experience Manager (brXM). This major release introduces a number of useful technical stack upgrades and  improvements to the product. In this document we will give a brief overview of the highlights in this release. You can also find these release notes at: https://xmdocumentation.bloomreach.com/about/release-notes/release-notes-overview.html 

Everything mentioned in this document is an integral part of Bloomreach Experience Manager (brXM), unless mentioned otherwise. 

Significant Updates in Version 16

Java 17, Jakarta Namespace, Tomcat 10

The Java 17 update for brXM is now available in BrXM version 16, bringing developers a collection of enhancements tailored to modern development practices. This update improves the development experience with brXM and enhances the platform's customization options, highly regarded by our customers. For more information, please consult the JDK 17 release notes at  https://www.oracle.com/java/technologies/javase/17u-relnotes.html. 

With brXM 16, the shift from javax to jakarta namespace has been implemented, as detailed at  https://jakarta.ee/blogs/javax-jakartaee-namespace-ecosystem-progress/.

As a result, brXM has been updated to include Jakarta Servlet API 6, Spring Boot 3, Spring 6, Apache CXF 4, XML Web Services API 3, XML Binding API 3, RESTful Web Services 3, Annotations API 2, JAXB Runtime 3, and Mail API 2. 

This update necessitates the transition to Tomcat 10 in deployed environments, moving away from Tomcat 9 or 8.5

Wicket 10, Spring and Freemarker Upgrades

The upgrade to Java 17 has enabled the transition to Apache Wicket UI framework version 10.0, which introduces several key improvements.:

  • To support the adoption of JPMS, Apache Wicket 10.0 has introduced a new module, wicket-tester, which houses common classes for unit testing. Consequently, the WicketTester class now requires this module as a test dependency.

  • Apache Wicket has integrated HTTP2 support directly within the wicket core module.

  • Wicket 10 no longer contains jQuery 1 or 2 , only jQuery 3 is in use. 

  • For the full changelog, see the announcement at  https://wicket.apache.org/news/2024/03/11/wicket-10.0.0-released.html

Additionally in v16, Spring Boot is upgraded  to 3.3.0 and taken as leading in version management. Consequently, Spring Web Framework is upgraded to version 6.1.8.. Spring 6 and Spring Boot 3 introduce several new features and improvements aimed at enhancing Java application development:

  • Java 17 Baseline: Sets Java 17 as the minimum supported version, incorporating its latest features and improvements.

  • Jakarta EE 9/10 Transition: Moves from Java EE to Jakarta EE, supporting the latest Jakarta EE 10 APIs for modernized enterprise Java standards.

  • Improved Observability: Enhanced observability with Micrometer and Micrometer Tracing, providing better metrics and tracing capabilities.

Freemarker is also upgraded to the latest version, v2.3.33 which is compliant with the javax.servlet → jakarta.servlet change.  Also it introduces several improvements to enhance the efficiency and usability of Freemarker for developers:

  • Enhanced Java Records Support: Now allows property access in templates using obj.property instead of obj.property().

  • Faster String Comparisons: String comparisons are significantly faster with the new comparison method enabled by the incompatible_improvements setting.

  • Efficient Sequence Concatenation: Improved performance for concatenating and reading large sequences, addressing previous slowdowns and stack overflow issues.

  • Template Processing Tracer: A new feature for monitoring and analyzing template processing performance and coverage.

Other Improvements

For developers

  1. The default Maven Repository IDs have changed from hippo-maven2** to bloomreach-maven2**

  2. All Maven plugins have been upgraded to the latest applicable versions.  

  3. Many 3rd-party libraries have been upgraded to the latest applicable versions.

  4. The com.sun.activation:jakarta.activation library has been replaced with org.eclipse.angus:angus-activation plus jakarta.activation:jakarta.activation-api.
    The com.sun.mail:jakarta.mail library has been replaced with org.eclipse.angus:angus-mail plus jakarta.mail:jakarta.mail-api.
    Eclipse Angus mail and activation are the maintained follow-ups of the Sun mail and activation libraries. 

  5. EHCache is refactored out in favor of the Caffeine library.

  6. In Plain JAX-RS Services, the Swagger version is upgraded from Swagger v2 to Swagger v3.

  7. The Tomcat version used in the local developer environment (Cargo) and in Docker is upgraded to version 10.1.

For end users

  1. The issue that was blocking experiment-related functionalities on a component when initiating an experiment on a component that had previously been utilized by a different user has been resolved.

  2. The issue where the warning for uploading an incompatible file type in the image picker was not appearing has been addressed.

  3. The bug where component parameters defined as "Number" couldn't accept decimal values in the Experience Manager has been fixed; they now accept a decimal point as expected.

Deprecations and Removals

This major release includes deprecations and removal of libraries and features. Below is a list of the important changes, but please refer to the upgrade documentation to assess the impact of these changes:

  • With changes from Swaggerv2 -> Swagger v3 the default bean swaggerBeanConfig is not available anymore.  A new bean for openAPI configuration is implemented. For versions before brxm 16, the default bean name is changed from swaggerBeanConfig to hstOpenApiBeanConfig.

  • We removed ConcurrentLoginFilter and ConcurrentLoginListener.

  • Several deprecated classes are removed from BrXM.

Bloomreach SPA SDK Updates

Bloomreach SPA SDK v23.3.0 was recently released[1]. The ng-sdk now supports Angular 17.

Bloomreach Cloud Updates

Cloudflare Brotli Compression Update

Please note that the option to manually set Cloudflare’s Brotli compression[2] will be discontinued as of August 15, 2024. Post this date, Brotli compression will be automatically applied across all zones. However, Cloudflare’s enterprise clients will have the flexibility to adjust the default compression settings with Compression Rules[3].

Should there be any inquiries or specific adjustments needed concerning the default compression settings, we encourage reaching out to the Bloomreach support team through https://support.bloomreach.com/.

Notices

Important Note for Bloomreach Cloud Customers

BrXM v16 is only compatible with BRC release v23 and above. By the 12th of July, 2024, all BRC stacks will be upgraded to version 23. If you wish to transition to BrXM version 16 prior to this date, kindly contact the Bloomreach support team at https://support.bloomreach.com/ to arrange an earlier update to BRC version 23.

JVM default time zone on Bloomreach Cloud
When running brXM v16.x on Bloomreach Cloud, the JVM default time zone is UTC. Any date/time processing that relies on the JVM default time zone (instead of an explicitly configured one) will therefore use UTC.

Changing the time zone behavior

Major release

v16.0 is a major release, so it is not backward compatible with the previous releases. Also, updating to this version from the latest minor version will take some additional effort. Specific upgrade instructions for this release can be found in our documentation [4] for enterprise customers (requires a login). An overview of all upgrade instructions for minor versions in this major release can be found in our documentation [5] as well.

Supported Technologies

The full system requirements can be found in the online system requirements [6]. This page also includes a detailed table of maintained third-party compatibility.

End-of-life, support and maintained code

Nomenclature refresher

As the terms ‘end-of-life’, ‘supported’, ‘maintained’ are used in various ways in our industry, we clarify the nomenclature we use for this below.

Supported product version

When a product is supported, this means that the customer will receive help from the helpdesk when issues arise as described in the service level agreement (SLA) that the customer has with Bloomreach. There are several service levels available. 

Please note that if a bug is acknowledged in a supported, but not-maintained version, and a fix is needed, this fix will only be applied in the maintained product versions. This means the customer will need to move to a maintained version to receive the fix. 

Maintained product version

When a product is maintained, the product code is updated and security- and bug fixes are made to the code. For maintained products, the system requirements for third party libraries and components are kept updated as well. Please note that we do not provide support for system requirement providers (e.g. databases, java, etc..), but we only support the usage for mentioned certified system requirement providers. 

If a product is non-maintained, this means that the code is not maintained anymore and therefore might contain bugs and/or security vulnerabilities due to newly discovered issues in our code, or the libraries used.

End-of-life product version

Products that are not maintained and not supported are end-of-life. These might be available from our archives but could be removed without notice.

What does this mean for the current release?

Please note that this release changes existing maintenance or support modes. In the table below you can find the support status of your product and when support will end; this is dependent on  the version currently being used and license level. Please note that versions that are not listed are not active and not supported, and therefore end-of-life.

Version

Planned end date of 
Standard Support 

Planned end date of 
Premium Plus Support

Original major version release date

12.6

No Support

No support

July 2017

13.4

No Support

No support

Jan 2019

14.7

December 2024

December 2025

Dec 2019

15.6

December 2025

December 2026

April 2022

16.0 December 2026 December 2027 June 2024

Figure: reference table of planned end of support dates based on current SLA terms. Supported versions may differ depending on contractual agreements.

The versions highlighted in orange are actively maintained and provided with bug fixes and product improvements.

Security notes

This release includes updates for third-party dependencies that have published vulnerabilities. We recommend that customers keep their systems up to date with announced product releases.

Availability

This version of brXM is available as of June 27, 2024 onwards, the release of the open source will be made available after approximately 2 years due to our release policy.

Links

[1] https://github.com/bloomreach/spa-sdk/releases 

[2] https://developers.cloudflare.com/speed/optimization/content/brotli/enable/ 

[3] https://developers.cloudflare.com/rules/compression-rules/ 

[4] https://xmdocumentation.bloomreach.com/library/upgrade-15-to-16/upgrade-to-brxm-16.html 

[5] https://xmdocumentation.bloomreach.com/about/upgrade/introduction.html

[6] https://xmdocumentation.bloomreach.com/library/about/system-requirements.html

Did you find this page helpful?
How could this documentation serve you better?
On this page
    Did you find this page helpful?
    How could this documentation serve you better?