Magnolia 5.4 reached end of life on November 15, 2018. This branch is no longer supported, see End-of-life policy.
This release brings a major update to the Personalization module which now supports component personalization in the Enterprise Pro edition of Magnolia. This release also contains some usability enhancements such as pages preview in a new tab, a new API to build a subapp of the type Tools, as well as a number of bugfixes and other improvements.
This release brings a major upgrade on the personalization module. Please note that personalization on the 5.4.9 release is available in two variants:
We provide preconfigured EE bundles for both cases. Component personalization bundles have "cp13n" in the file name. Starting with Magnolia 5.5, all bundles will include component personalization. If you are an existing customer and prefer to build your own bundle on top of ours, the pom file of your current bundle must depend on magnolia-enterprise-pro-cp13n-webapp
if you want it with the component personalization.
See also below a section on Upgrading EE Pro to version 5.4.9 with component personalization.
This release brings a major improvement for Magnolia EE Pro users: personalization of components. You can personalize any component and target it to a specific audience. Define the audience by individual traits or segment your visitors into meaningful groups.
The main advantage of component personalization is that you can make small changes and increase the relevance of content in a scalable way. There is often a need to personalize items that are smaller than a page. Combine personalization with Magnolia apps to create modular reusable pieces of content that you can reassemble to meet personalization needs, solving the content scalability problem at its source.
An added value is the possibility to hide the original component if the audience doesn't match, allowing you to offer exclusive content to visitors. Functionally, page and component personalization are the same. Editors need no additional skills to use component personalization.
Use cases:
Unpersonalized careers landing page. | The same page, but with a personalized component at the bottom. |
The legacy app named Permissions has been replaced by a new subapp named Tools in the Security app. The Tools subapp lets you query groups and permissions associated to a given user. The new subapp has been implemented using the new API for ToolsSubApp.
old | new |
This release introduces a new API for a new type of subapp. Subapps are typically rendered as a tab inside an app.
The new interfaces are:
The tools subapp is a special type of subapp that enables you to add a list of "tools" to a subapp. A tool is a small functional block which is defined by a ToolDefinition .
You can define a tools subapp with just a few lines of YAML. Depending on the type of the tool definition, you may have to provide custom Java classes which implement your custom logic, typically a presenter or an action classes or both.
In the previous section you see an example of the new tools subapp API being used: the functionality from the legacy Permissions app has been moved to a new Tools subapp in the Security app.
See ToolsSubApp descriptor to learn how to use the tools subapp API.
In the Pages app, you can now preview a page without the page editor displayed around the preview. When you click the icon on the page bar, the page opens in preview mode in a new browser tab.
=>
You can disable drag and drop operations in workbenches.
To control drag and drop operations in an app, the dragAndDrop
property has been added to the class
info.magnolia.ui.workbench.definition.ConfiguredWorkbenchDefinition
. The default value is true
, set it to false
to disable drag and drop.
When you upload a zip file, Magnolia creates a folder and names it after the zip file. The contents of the zip are extracted under the folder.
For example, if you upload my-folder
compressed as my-folder.zip
, the following JCR structure is created:
Maven dependency management for some third-party libraries such as commons-lang libraries has been cleaned up and improved. The third-party module version has not changed. However, since we had to change the POM files on Magnolia modules, some modules got a new version and are part of this release.
The following enhancements have been implemented:
BeanItem
in configured forms (skip transformers) has been improved.converterClass
now also applies to default values. In addition, a converter is only set if the field does not support the model type.#getConfiguredDefaultValue
.type
may now be set as a fully-qualified enum name.#getSelectFieldOptionDefinition
has been deprecated and renamed as #getOptions
.Anonymous access to legacy FCKeditor resources
/.resources/
fckeditor
is no longer allowed.
Magnolia CAS module now comes with org.jasig.cas.client:cas-client-core:3.4.1
. This update provides the correction for a critical security vulnerability in several Jasig CAS clients that allows URL parameter injection due to improper URL encoding at the back-channel ticket validation step of the CAS protocol.
An aggregated changelog for 5.4.9 contains all the changes.
This release is a recommended update for all users of Magnolia 5.
This release includes the following new module versions:
Admininterface Legacy 5.3.3
Advanced cache 1.8
Cache 5.4.6
CAS 1.3.1
Commenting 2.3.2
Community Edition 5.4.9
DAM 2.1.7
Demo 0.14
Diff 1.7.4
Enterprise Edition 5.4.9
Form 2.3.6
Google Analytics 1.3.2
Google Sitemap 2.3.4
Groovy 2.4.6
Imaging 3.2.7
JCR Tools 1.0.2
LDAP 1.7
Log Tools 1.0.3
Magnolia 5.4.9
Magnolia Templating Essentials 0.13
Multisite 1.2.4
Newsletter 2.1.1
Observation 2.0.5
Pages 5.4.8
Personalization 1.3
Resources 2.4.7
REST 1.1.2
REST Client 1.0.9
Site 1.0.9
Soft Locking 2.5.1
Tags Manager 1.2.2
Templating Samples 5.3.1
Tools 1.7.1
UI 5.4.9
Workflow 5.5.3
The following procedures are applicable only if you have installed an EE Pro bundle without component personalization.
If using Maven dependency management, update the pom.xml
of your web app:
magnolia-enterprise-pro-cp13n-webapp
instead of magnolia-enterprise-pro-webapp
.magnolia.properties
set magnolia.ui.vaadin.widgetset=info.magnolia.widgetset.MagnoliaProWidgetSet
.Updating an instance manually:
magnolia-pages-app-5.4.x.jar
with magnolia-pages-app-5.4.8.jar
.magnolia-pages-editor-widgetset-5.4.x.jar
with magnolia-editor-widgetset-5.4.8.jar
.personalization-x-1.2.x.jar
with personalization-*-1.3.jar
.personalization-components-1.3.jar
.personalization-widgetset-1.3.jar
.magnolia-vaadin-widgetset-5.4.x.jar
with magnolia-vaadin-widgetset-pro-5.4.9.jar
.magnolia.properties
set magnolia.ui.vaadin.widgetset=info.magnolia.widgetset.MagnoliaProWidgetSet
.The following changes apply only to users running Magnolia 5.4 (major release) and maintenance releases 5.4.1 to 5.4.3.
Add the following lines:
magnolia.resources.dir = ${magnolia.home} magnolia.resources.classpath.observation.pattern=.*\\.(ftl|yaml)$
MAGNOLIA-6248
In Magnolia 5.5 it was discovered that the above settings can cause issues with publication. As reported in - MAGNOLIA-6248Getting issue details... STATUS the correct way to set the resources directory is to use a dedicated folder, such as, modules.
magnolia.resources.dir = ${magnolia.home}/modules magnolia.resources.classpath.observation.pattern=.*\\.(ftl|yaml)$
The name "modules" is just a convention but whatever folder its configured for must also be created or already exist.
If you continue to work with STK, use the new magnolia-enterprise-pro-stk-bundle
as a basis for your project. It includes Enterprise Pro, STK and the old demo project. You get all STK functionality out of the box. Exclude the demo-project if it's in your way.
In order to enable getting an HTML excerpt in a query result, you should update the configuration files of your Jackrabbit instances. Add the two <param/>
directives within your <SearchIndex>
block.
<SearchIndex> <!-- more params here --> <!-- needed to highlight the searched term --> <param name="supportHighlighting" value="true"/> <!-- custom provider for getting an HTML excerpt in a query result with rep:excerpt() --> <param name="excerptProviderClass" value="info.magnolia.jackrabbit.lucene.SearchHTMLExcerpt"/> </SearchIndex>
Add the log configuration for org.reflections
... <category name="org.apache.jackrabbit"> <priority value="WARN" /> </category> <!-- Reflections library spoils logs with hundreds of harmless warnings; tries to look into native libs but none of its DefaultUrlTypes can handle them. --> <category name="org.reflections"> <priority value="ERROR" /> </category> <category name="com"> <priority value="WARN" /> </category> ...
Using the content connector.
Updating configuration of availability rules and default rule classes
Updating selected action definitions with node-type based availability
DamManager
with AssetProviderRegistry
.info.magnolia.module.workflow.jbpm.JbpmWorkflowManager#completeWorkItem
method, checking for present parameters is obsolete and refers to publication related workitems. The method is no longer used for completing a workitem in the new human task context. It is still valid in the context of completing service tasks, however.Stop using the info.magnolia.module.workflow.jbpm.JbpmWorkflowManager#getWorkItem
method. It was used to complete a work item for human tasks. Furthermore, the wrapper we initialize only holds the mgnlData
map.
The previously hardcoded mgnlData
parameter is now configurable in /modules/workflow/commands/workflow/activate/activate/parameterMapName
.
info.magnolia.widgetset.MagnoliaWidgetSet
.magnolia.properties
file.Magnolia 5.4.9 ee-bundle may require you to allocate more memory the Java Virtual Machine (JVM). If you see a java.lang.OutOfMemoryError
in the startup log or the system stops responding during installation, increase the Java heap size. The default maximum heap size is 512M. Try a higher amount such as 1024M. We are working on uncovering the root cause for the increased memory need.
See: Java out of memory
If you upgrade to Magnolia 5.4.9 from 5.4.2 or earlier then you will experience UUID conflict if you try to also install the new Processed Resources app during the upgrade.
java.lang.RuntimeException: Error importing config.modules.processed-resources-app.dialogs: a node with uuid a53f308a-0d6a-4bb9-a5f8-6f11ff68504d already exists!
To workaround this issue complete the upgrade before installing the Processed Resources app.
The Magnolia team would also like to thank everyone who reported issues, contributed patches, or simply commented on issues for this release. Your continued interest helps us make Magnolia better. Special thanks go to: Thim Anneessens, Nils Breunese, Thomas Comiotto, Teresa Miyar, Diana Racho, Frank Sommer, Vivian Steller, Richard Unger and Tom Wespi.