Upgrading to Magnolia 6.4
Upgrading to Magnolia 6.4 introduces important platform updates, new features, and compatibility changes that require careful planning. This guide helps you through the upgrade process based on your current Magnolia version, highlighting mandatory steps, potential pitfalls, and recommended best practices.
| If you are currently running on Magnolia 6.2 and wish to upgrade to Magnolia 6.4, please follow the instructions on the Upgrading to Magnolia 6.3 page first and then return here. |
-
Update to the latest maintenance release of Magnolia 6.3 first. You can find this at Magnolia 6.3 releases.
-
Read the Magnolia 6.4 Release notes.
-
Read the Magnolia 6.4 Certified stack and confirm that your environment matches.
-
Back up your system.
-
Verify that all custom modules are compatible with 6.4.
Upgrading for the first time? Click to see more guidance.
Required changes
-
Update dependency management to use the
6.4version ofdx-core-bundle-parent -
Update the Extensions BOM if you use Extension modules.
-
Update your environments or Docker images to the latest Tomcat.
-
Update all
javaxdependencies to their Jakarta EE 10 equivalents. This includes any extension versions; you must update everything at the same time before initiating the upgrade. -
Migrate your custom code for Jakarta EE 10 compatibility and Java dependencies.
Update your Magnolia bundle version
Update the Magnolia bundle version in your project’s parent pom.xml:
<properties>
<magnoliaBundleVersion>6.4.0-rc3</magnoliaBundleVersion> (1)
<javaVersion>17</javaVersion> (2)
</properties>
| 1 | Ensure you’re on the latest available 6.4 release.
Currently, this is 6.4.0-rc3. |
| 2 | Java 17 (LTS) is the build base for Magnolia 6.4. |
IP security filter
From Magnolia 6.4 and later, new instances don’t bootstrap the ipConfig configuration for the ipSecurity filter.
If you add the filter configuration without providing the corresponding MicroProfile Config, your instance can become temporarily inaccessible.
If your environment uses IP-based access control, review and update your configuration as part of the upgrade:
-
In the Configuration app, check whether
/server/filters/ipSecurityexists. By default, on fresh 6.4 instances, it isn’t present, and no IP restriction is enforced out of the box. -
If you rely on the
ipSecurityfilter, add the filter configuration and define itsipConfigfor the necessary allow/deny lists via MicroProfile Config. -
Restart your instance to ensure MicroProfile Config values are applied.
-
Verify that access behaves as expected from both allowed and disallowed IP addresses.
For more details, see IP security.
Jakarta EE 10
Magnolia 6.4 is a Jakarta EE 10 web application.
You must:
-
Use the latest supported Tomcat release.
For other servlet containers, see the Certified stack.
-
Update Maven dependencies from
javaxgroup IDs to their Jakarta equivalents.Example dependency changesjavax.inject:javax.inject:1 >> jakarta.inject:jakarta.inject-api:2.0 javax.json:javax.json-api >> jakarta.json:jakarta.json-api:2.0To avoid duplicate classes on the classpath, replace all javaxdependencies with their Jakarta EE 10 equivalents.Versions of these dependencies are provided in Magnolia’s third-party library BOM via the
jakarta.jakartaee-bomimport. For more details, see Certified stack: Maven coordinates.
To upgrade to Vaadin 6.4 with custom code, follow these steps:
-
Add the following to your
pom.xmlunder<build><plugins>to declare therewrite-maven-plugin:<plugin> <groupId>org.openrewrite.maven</groupId> <artifactId>rewrite-maven-plugin</artifactId> <version>6.8.1</version> <dependencies> <dependency> <groupId>org.openrewrite.recipe</groupId> <artifactId>rewrite-migrate-java</artifactId> <version>3.11.0</version> </dependency> </dependencies> </plugin> -
Run the following Maven command to migrate from
javaxtojakarta:mvn org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.activeRecipes=org.openrewrite.java.migrate.jakarta.JavaxMigrationToJakarta -
If your project depends on
vaadin-serverorvaadin-compatibility-server, update theartifactIdby appending-mpr-jakartato ensure compatibility with Jakarta EE.For example:
-
Change
vaadin-servertovaadin-server-mpr-jakarta. -
Change
vaadin-compatibility-servertovaadin-compatibility-server-mpr-jakarta.
-
-
Verify that no non-Jakarta Vaadin dependencies are included by running:
mvn dependency:tree -Dincludes=com.vaadin:vaadin-server,com.vaadin:vaadin-compatibility-server -Dverbose=trueFor additional details on integrating Vaadin MPR with Maven for Vaadin 8, see Vaadin: How to Integrate Vaadin MPR with Maven for Vaadin 8.
New UI Forms
Magnolia 6.4 introduces New UI Forms, a React-based forms UI built for accessibility and consistency. Vaadin-based forms are rendered with New UI Forms only when every field in the form declaration has a New UI Forms counterpart; otherwise, the entire form falls back to Vaadin.
Migration notes
-
If you don’t want to use the New UI Forms yet, add the
$typeproperty to the existing form definition and set it tovaadinForm:... detail: form: $type: vaadinForm properties: ... -
Not all Vaadin fields and properties have New UI Forms equivalents. Expect to update some form definitions.
-
Update custom field implementations to provide New UI counterparts where possible, or replace usages with supported fields.
-
Test complex or decorated forms (subapps, decorated definitions). Decorations can introduce unsupported fields.
-
Use the Definitions app Problems tab as your primary diagnostic tool. Resolve
UNSUPPORTEDfields first to avoid unexpected Vaadin fallbacks; reviewIGNOREDproperties to understand changes in behaviour. -
removePreviouslySelectedis not supported:In 6.4 Switchable fields, setting
removePreviouslySelected=falseis not supported in New UI Forms.If you rely on this property in your templates, see how to migrate
removePreviouslySelected.
For more details, see Migrating to New UI Forms.
Global Search
In Magnolia 6.4, Global Search takes center stage, replacing the Magnolia 6.3 Find Bar. Global Search is the central tool for searching across all content in Magnolia. It’s designed to handle large datasets efficiently and provide relevant results quickly and intuitively.
Global Search is optimized for most use cases, so you typically don’t need to modify the default search settings.
If you need to update the configuration, note it has moved from the Admincentral module to the periscope-core module in 6.4 (now located in /periscope-core/config.yaml).
Deletion action changes
Label and message properties in deletion actions are no longer supported. Deletion actions (mark for deletion, permanently delete, request permanent deletion, and content dependency warnings) are updated to show the new dialogs by default.
For most users, no configuration changes are needed and the existing actions and dialogs are automatically updated. If you have extended default actions, you may have to revalidate behavior.
This automatic replacement doesn’t apply to the following apps: Campaign Publisher, Configuration, Cookies, External DAM, JCR, Security, and Tags.
Click to see details of cases requiring configuration updates
Digital Asset Management (DAM) changes
In Magnolia 6.4, you can decouple asset binary storage to an external system while managing metadata in Magnolia’s native DAM. This reduces the size of the JCR, speeds up publishing, and improves search performance by optimizing metadata storage. See the DAM documentation for details about implementing external binary storage. Migration scripts are provided to move assets from JCR to S3.
|
DAM module 5.0 and DAM module 6.0 provide almost identical functionality and code. The deciding factor for which version to use is the Magnolia version you are running.
|
Upgrade from Hybrid Assets incubator
This step applies only if you used the Hybrid Assets incubator module.
The functionality offered by the incubator module is replaced by DAM 5.0 and later. If you used the incubator module, use the migration scripts to move your assets to the new implementation.
| The DAM module offers out-of-the-box integration with AWS S3. To use other providers, you must write a custom implementation. |
Upgrade from the DAM Focal incubator
This step applies only if you used the DAM Focal incubator module (dam-focal).
In 6.2 and 6.3, DAM Focal was provided as an incubator module.
In 6.4, it is promoted to a DX Core extension with a new module name: image-focal.
The Magnolia 6.4-compatible version of this extension is 2.0.
To upgrade:
-
Uninstall the
dam-focalincubator module. -
Update dependency management to use the
image-focalextension version 2.0.x.
Existing focal point data is preserved when switching modules.