Upgrade 16.8 to 16.9

Goal

Upgrade a Bloomreach Experience Manager implementation project from version 16.8.x to 16.9.y.

Significant Changes

This minor release introduces a number of new features, targeted performance improvements, and security fixes. The most significant updates for developers and users moving from 16.8 to 16.9 include:

  • Folder Document Limits: A configurable item limit per folder is now enforced at workflow level, defaulting to 100. When the limit is reached, editors cannot create additional content in that folder. Subfolders are always permitted. The limit can be set via the system property repository.folderworkflow.item.limit, or via JCR item-limit properties on the relevant workflow configuration nodes. Set to -1 to disable. See Folder Item Limit Configuration.

  • Taxonomy Performance: A new opt-in JSON-based taxonomy storage model significantly improves performance for large category trees. Migration is one-way and cannot be reverted. See JSON Tree Introduction in v16.9 for configuration, migration steps, and important considerations. 

  • MIME Type Resolution Service: A new configurable MIME type resolution service replaces the static MimeTypeMapper utility from 16.8.1. Projects that call MimeTypeMapper directly must migrate to the new service. See MIME Type Resolution Configuration and the Upgrade Steps below.

See the 16.9.0 release notes for a full list.

Upgrade Steps

Perform Generic Minor Upgrade Steps

Follow the generic instructions for minor upgrades.

Migrate Direct MimeTypeMapper Usage (if applicable)

If your project code directly calls org.hippoecm.frontend.plugins.jquery.upload.MimeTypeMapper (introduced in 16.8.1), migrate to the new MimeTypeResolutionService. MimeTypeMapper is deprecated and will be removed in 17.0.

// Before (16.8.1 pattern)

String mimeType = MimeTypeMapper.getMimeType(extension);
// After (16.9.0 pattern)

MimeTypeResolutionService service = HippoServiceRegistry.getService(MimeTypeResolutionService.class);

Set<String> mimeTypes = service.getMimeTypes(extension);

Key differences:

  • The return type changes from a single String to a Set containing all known MIME type variants for the extension

  • The service is obtained from HippoServiceRegistry rather than called statically

  • The service requires the mimetype-resolution module to be running (which it is by default)

If your project does not call MimeTypeMapper directly, no action is needed.

Check Custom Project Code for Incompatibilities With Upgraded Libraries

Because of third party library upgrades that may introduce backward compatibility issues, there's a chance that project code doesn't build or run well any more. In that case, look into the specifics and adjust the project code to use the latest library correctly.

Detailed Release Notes

See also the detailed release notes for more information.

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?