Upgrading to Magnolia 6.3
This page has information about upgrading to Magnolia 6.3 from earlier and currently supported versions. Before starting the upgrade process, we recommend you:
-
Update to the latest maintenance release of Magnolia
6.2
first. -
Read the release notes for the version you are upgrading to as well as for all intermediate versions.
-
Read the certified stack.
If you are upgrading from a Magnolia release that has already reached its EoL (End of life), contact us for migration support.
You must update your helm chart to the latest version. For more, see Magnolia 6.3 Helm version.
Summary
-
You must not:
Override (hotfix) JCR resources in the Resource Files app before upgrading to Magnolia 6.3.
-
You must:
-
As always, update dependency management in your project. Use the
6.3
version of thedx-core-bundle-parent
.-
If you use extensions, import the new extensions BOM.
-
-
Update the publishing receivers configuration.
-
-
You might also have to:
-
Convert select JCR definitions to YAML. YAML can no longer inherit from JCR-based definitions.
-
Migrate CKEditor4 customizations.
-
Obtain your new 6.3 license and set it in your instances before updating your 6.3 bundle.
If you’ve already obtained the license but forgot to set it, you can set it using a Groovy script. -
Review your site/multisite configurations as they may need some adjustment to work properly on 6.3.
-
SSO module
-
Remove the outdated SSO Login Extension incubator. The functionality is incorporated in version
4.0.0
of the SSO module. -
If you use SSO 3.1.x and upgrade to 4.0.0, you must change your configuration.
-
-
Migrate Content Editor
v2
and multi-language stories. -
Revalidate your
6.2
user group and role assignments for use in6.3
. Access control to JCR workspaces, URIs and apps has been updated to newer roles that your editors may not have. Make use of the new default groups in the product:editors
,publishers
, anddevelopers
. -
Check that your REST endpoint definitions work as intended. There are a few changes to optionality of REST properties in 6.3 that may have impact on the functionality of REST delivery in your webapps.
-
If you’ve built advanced custom configuration sources or registries, adjust to reworked configuration sources in Magnolia 6.3.
-
If you rely on MySQL, update the MySQL repository configuration.
-
Adapt module app definitions to match the new App Launcher design.
-
Update any decorations that overwrite or enhance the
confirmDeletion
action in the Pages or Assets app. -
Add new superusers to the
publishers
group if they need to publish. -
Update H2 from version
2.1.x
to2.3.x
. For more details about the migration, see H2 database.
-
Platform updates
Jakarta EE 8
To keep the updating process from 6.2
straightforward, Magnolia 6.3
remains on the Jakarta EE 8 baseline.
However, in preparation for the upcoming breaking update to Jakarta EE 9+, we have updated the Maven coordinates of the EE 8 API specifications.
javax.inject:javax.inject:1 >> jakarta.inject:jakarta.inject-api:1.0
javax.json:javax.json-api >> jakarta.json:jakarta.json-api
To avoid duplicate (yet identical) classes on the classpath, we recommend you do the same by replacing your Maven dependencies with javax
group id, with their Jakarta EE 8 equivalents under the jakarta
group id.
Versions of these dependencies are already provided in the Magnolia third-party library BOM, through the jakarta.jakartaee-bom
import.
See also Certified stack: Maven coordinates. |
MicroProfile Config
Magnolia 6.3 embraces MicroProfile Config, adding state-of-the-art flexibility for external instance configuration. This is applied first to publishing receivers config, and requires a project update.
Publishing receivers config must be migrated (see immediately below). |
Configuring publishing receivers
Publishing receivers are configured using MicroProfile Config. You can supply MicroProfile configurations using:
-
properties files
-
YAML files
-
system properties or environment variables (and more)
To point to your config file, you must pass the magnolia.config.locations
as a system property (for example, using Tomcat VM options in the setenv.sh
configuration file), pointing to the directory where your config file resides (for example -Dmagnolia.config.locations=/opt/magnolia/mounted-config
).
magnolia.publishing.receivers[0].name=magnoliaPublic-0
magnolia.publishing.receivers[0].url=http://dev-magnolia-helm-public-0-svc:8080
magnolia.publishing.receivers[1].name=magnoliaPublic-1
magnolia.publishing.receivers[1].url=http://dev-magnolia-helm-public-1-svc:8080
magnolia:
publishing:
receivers:
- name: magnoliaPublic-0
url: http://dev-magnolia-helm-public-0-svc:8080
- name: magnoliaPublic-1
url: http://dev-magnolia-helm-public-1-svc:8080
The default receiver for local development ( Receiver example for local development
|
Previous (Magnolia 6.2) definition in JCR
In Magnolia 6.2, publishing receivers were configured in JCR, under the publishing-core
module.
This made it difficult to provision instances across multiple environments and configure receivers during installation or startup through various JCR bootstrapping techniques.
Node name | Value |
---|---|
📁 modules |
|
📁 publishing-core |
|
📁 config |
|
⸬ receivers |
|
⸬ magnoliaPublic8080 |
|
⬩ url |
|
⬩ enabled |
true |
Reworked configuration sources
In 6.3, we have overhauled internals of our definition Registries
and ConfigurationSources
, effectively inverting dependency between the two:
-
Registries
now pull definitions fromConfigurationSources
. -
Previously,
ConfigurationSources
needed to push definitions intoRegistries
.
This enables greater flexibility to add custom configuration sources (including fetching from remote backends) and manage dependent definition types. It also streamlines definition observation.
As a consequence, YAML can no longer inherit from JCR-based definitions through the !inherit directive.
You have to inline or migrate the JCR definitions into YAML instead.
|
I18nAuthoringSupport
This change affects customers using Live Copy with custom i18n implementations, as well as several incubator modules. |
The I18nAuthoringSupport
interface and the default implementations have been consolidated.
Deprecated methods have been removed.
It is no longer configured as an observed component at /server/i18n/authoring
in JCR, but as a regular component mapping in module descriptor.
MultiSiteI18nAuthoringSupport
is already reconfigured this way.
If you have a custom
|
CKEditor 4 customizations
If you have customized your CKEditor 4, you may continue using it in Magnolia 6.3.
For this, you must set the new 6.3 rich text field field property ckEditorVersion
to CKEDITOR_4
.
By default, the property is set to CKEDITOR_5
.
CKEditor 4 migration to CKEditor 5
Magnolia 6.2 uses CKEditor 4 in its rich text field. Magnolia 6.3 is released with CKEditor 5. While most field properties from Magnolia 6.2 are supported, CKEditor 4 and CKEditor 5 are very different in their core architecture. For this reason, Magnolia recommends previewing any content transferred from CKEditor 4 in Magnolia 6.2 and checking that the content is published as you want it.
In particular, you should check their compatibility tables for configuration and plugins to determine which content might be affected. Furthermore, follow their migration guidelines to ensure a smooth transition of any content.
See also Migration from CKEditor 4 (ckeditor.com/docs/ ).
|
Old module packs, new extensions
The modules listed in the table below were previously incubator modules but are now fully-supported extensions in Magnolia 6.3.
Module | New license? | Notes |
---|---|---|
Requires a license renewal and is no longer free. If you are already using any of these modules, contact your Magnolia account manager. We will provide you with the required license key(s). |
||
Requires a license renewal and is no longer free. If you are already using any of these modules, contact your Magnolia account manager. We will provide you with the required license key(s). |
||
Upgrade the module to its latest 6.3-compatible version and benefit from a full SLA. |
||
Upgrade the module to its latest 6.3-compatible version and benefit from a full SLA. |
||
Upgrade the module to its latest 6.3-compatible version and benefit from a full SLA. |
||
Upgrade the module to its latest 6.3-compatible version and benefit from a full SLA. |
||
Upgrade the module to its latest 6.3-compatible version and benefit from a full SLA. |
||
Upgrade the module to its latest 6.3-compatible version and benefit from a full SLA. |
Previously bundled modules
Some of the modules in the new "Extension" category are previously bundled modules that are now unbundled, meaning you need to install them individually.
For the latest information about module bundling, see the List of modules on the Modules page. |
Multisite definitions in YAML
In Magnolia 6.3, sites work like any other definition type:
-
They are collected into a conventional registry.
-
They support YAML definitions natively.
-
They are displayed in the Definitions app.
Configuration sources and paths
The sources of site definitions have changed considerably since Magnolia 6.3.0. Sites can no longer be configured by decorating the Multisite module configuration.
-
You must move site configuration to
<module-name>/sites/
in your light module, as shown in thetravel-demo-multisite
example. -
You should provide your own fallback site configuration in
<module-name>/sites/fallback.yaml
. Otherwise, the system infers one automatically, with either the English or German locale.
Sites in multisite/config/sites are still loaded (for backward compatibility) but can’t be decorated.
|
In Magnolia 6.2, a fallback site could be a folder. In Magnolia 6.3, it has to be a node. |
SSO changes
SSO 4.0.x module introduces several important updates and requirements. This includes compatibility adjustments, mandatory configuration changes, removal of certain classes, optional enhancements like JCR-based fallback login, and considerations for users of the SSO Login Extension module.
For specific actions and modifications needed to ensure a smooth upgrade, see Upgrading from SSO 3.1.x to 4.0.0.
Content Editor definitions
Magnolia 6.3 ships only with v2
of the Content Editor.
If you use the Content Editor or a Content Editor-based app, you must migrate your custom v1
Content Editor definitions to the scheme used in v2
.
For more details about migration, see Content i18n and migration to version 2.1 (and higher).
Password module dependency in Marketing Automation module
There is an issue when using the Marketing Automation module.
Since module version 2.0.0
, Marketing Automation has a dependency on magnolia-password-manager-core
instead of magnolia-module-password-manager
.
Use the following dependency exclusion as a workaround if you want to use the Marketing Automation module:
...
<dependency>
<groupId>info.magnolia.marketingautomation</groupId>
<artifactId>magnolia-marketing-automation</artifactId>
<version>${marketing-automation.version}</version>
<exclusions>
<exclusion>
<groupId>info.magnolia.passwordmanager</groupId>
<artifactId>magnolia-module-password-manager</artifactId>
</exclusion>
</exclusions>
</dependency>
...
Pages and Assets app definition changes
This section applies if you are upgrading to 6.3.0. If you are upgrading to 6.3.1, you can disregard it.
In 6.3.1, the filteringWorkbench introduced in 6.3.0 for Pages and Assets apps is deprecated. The in-app search and filter functionality becomes the default for all browser subapps as part of the standard workbench definition instead.
|
Due to the new search experience, notably the return of in-app search functionality, the Pages and Assets app definition files have changed significantly. This may impact you if you customized the configuration of columns or filters in these apps.
For more information about how to configure in-app filters, see Configuring search in Magnolia.
Click to see 6.3 and 6.2 app definitions.
The new search experience configuration changes only apply to the Pages and Assets apps. Other apps are unaffected. |
Deletion workflow
In addition to the search experience-related definition changes, two definition changes support the usability improvements in the deletion workflow. Namely, the new action confirmMarkDeletion
replaces confirmDeletion
, and the delete
action is renamed markDeleted
.
Any decorations that overwrite or enhance the confirmDeletion action in the Pages or Assets app won’t work in Magnolia 6.3 because it uses the new confirmMarkDeletion action.
|
confirmDeletion is unchanged, so its use in custom modules is unaffected.
|
User group and role changes
The system of user roles has been updated in Magnolia 6.3.
In the core of the system is now a unified role naming convention of type <module>-<privilege> (for example pages-publisher , admincentral-editor ).
|
Superuser role modified
By default, the superuser
role doesn’t grant publishing permissions.
In particular, a user assigned the superuser
role doesn’t get messages in the Tasks app unless the user is also added to the publishers
group.
New roles
-
admincentral-developer
-
admincentral-editor
(New role that can block access to URLs.)
-
asset-editor
-
category-editor
-
dam-app-core-editor
-
dam-app-jcr-editor
-
definitions-app-developer
-
diff-viewer
-
graphql-developer
-
imaging-editor
-
marketingTag-editor
-
page-editor
-
pages-app-editor
-
resources-editor
-
story-editor
-
tour-editor
-
tourCategory-editor
Removed compatibility modules
The following Magnolia compatibility
modules were removed from the DX Core webapp:
-
info.magnolia.categorization:magnolia-categorization-app-compatibility
-
info.magnolia.contenttags:magnolia-content-tags-ui-compatibility
-
info.magnolia.dam:magnolia-dam-app-compatibility
-
info.magnolia.dependencies:magnolia-content-dependencies-ui-compatibility
-
info.magnolia.diff:magnolia-diff-compatibility
-
info.magnolia.personalization:magnolia-personalization-compatibility
-
info.magnolia.workflow:magnolia-workflow-compatibility
Changes in REST Delivery API
Updated REST packages
Make sure you are using the updated packages in REST version 3.0.0
and later, not the deprecated ones.
Examples
-
info.magnolia.rest.delivery.DeliveryContext (deprecated: info.magnolia.rest.delivery.jcr.v2.DeliveryContext)
-
info.magnolia.rest.delivery.OutputStreamWrapper (deprecated: info.magnolia.rest.delivery.jcr.OutputStreamWrapper)
Check your endpoint definitions
You should check your REST endpoint definitions to make sure they work as expected, even if you aren’t using custom values in the definitions.
$type property required in endpoint definitions
The $type
property is now required in endpoint definitions.
Set it to either jcrDeliveryEndpoint_v2
, or to the recently introduced jcrPagesDeliveryEndpoint_v2
on your project’s delivery endpoint definitions.
Deprecations from Magnolia code not reported
To minimize the risk of introducing a faulty configuration into your instance, the Definitions app no longer displays select deprecations and other implementation details, specifically those whose origin is in Magnolia code.
Click to see which error messages are now suppressed.
MySQL
The default MySQL repository configuration has changed to the Connector/J.
For MySQL Connector/J 8.x (and later), use the configuration is called jackrabbit-bundle-mysql8-search.xml
and is available in /WEB-INF/config/repo-conf/
.
If you rely on MySQL, you must update this.
App Launcher design
The Magnolia 6.3 App Launcher uses a modern naming and groupings. The original Magnolia 6.2 classic naming and grouping is no longer available in Magnolia 6.3.
If you used a custom configuration of the App Launcher in Magnolia 6.2, you must migrate your definition for the 6.3 App Launcher.
For more, see Migrating to the 6.3 App Launcher design.
General upgrading procedure
|
-
First, upgrade to the latest patch release of your current Magnolia version.
For example, if you are on Magnolia
6.2.3
, the upgrade path should ideally be6.2.3
→ the last maintenance release in the 6.2 branch → the latest release in the 6.3 branch. -
Once Magnolia is running, check the Definitions app for deprecated or problematic definitions.
magnolia.properties
file
When upgrading Magnolia, compare your magnolia.properties
file with the one from the newly released Magnolia bundles.
Below are the latest versions of the magnolia.properties
files for Magnolia 6.3.
Maven-managed webapps
Parent POM
Update the parent pom.xml
file of your webapp.
In the <properties>
tag of your parent POM, change the version of the magnoliaBundleVersion
property:
...
<properties>
<magnoliaBundleVersion>6.3.1</magnoliaBundleVersion>
<foobarModuleVersion>1.2</foobarModuleVersion>
<javaVersion>17</javaVersion>
</properties>
...
Third-party libraries
Third-party libraries are primarily managed using the BOM for third-party libraries.
Third-party libraries for extensions
Third-party libraries for extensions are managed using a separate BOM, see the extensions-bom file.
Servlet container
If you use Apache Tomcat, we recommend that you always update to the latest supported version. For other servlet containers, check out the certified stack.