Magnolia 5.4 reached end of life on November 15, 2018. This branch is no longer supported, see End-of-life policy.

Page tree
Skip to end of metadata
Go to start of metadata

Enterprise bundles in version 5.4.6 (standard demo, EE demo, STK, WebSphere, WebLogic, and Wildfly) contain a corrupt artifact magnolia-jcr-tools-1.0. Please download and use version 5.4.7 of Magnolia Enterprise Edition.

Magnolia 5.4.6 delivers several internationalization enhancements including i18n support for light modules. Another key evolution is the possibility of decorating definitions, thereby altering existing configured items using only YAML files. 

Additional components for the Magnolia Templating Kit and two modules to replace legacy apps as well as usability improvements for the page editor and publication process are also delivered in this release.

What has changed?

Decoration

Definition decoration is a Magnolia mechanism which allows you to alter existing configured items, such as apps, dialogs, field types, templates and more using YAML files. Decoration is possible with Magnolia Maven modules and light modules. The same definition can be decorated multiple times.

Internationalization (i18n) changes

MTE module internationalization

Internationalization of the MTE module has been improved to adhere to i18n best practices.

New location for message bundles

i18n API provides a new (additional) location for message bundle files. The previous location is still supported but is deprecated in favor of the new location:

LocationIn Magnolia Maven moduleIn Magnolia light module
Newsrc/main/resources/<module-name>/i18n<magnolia.resources.dir>/<light-module-name>/i18n
Deprecatedsrc/main/resources/mgnl-i18n-

Light modules support i18n

Light modules may now contain message bundles using the new path mentioned above, for example: my-light-module/i18n/my-foobar-bundle_en.properties. [MTE-74]

Avoid identical bundle file names in classpath

Avoid using the same message bundle file names in the deprecated directory serving from classpath. In other words, when using Magnolia Maven modules and the deprecated i18n location, the bundles must have different names. 

Consider the following scenario:

  •  You have two modules: module-a and module-b.
  • You create the following message bundles:
    • module-a/src/main/resources/mgnl-i18n/foobar_en.properties
    • module-b/src/main/resources/mgnl-i18n/foobar_en.properties

These bundles would be loaded from classpath and the system would not be able to differentiate them. There is no way to predict which bundle would be loaded in the end.

New keys suitable to use across modules

The API provides new keys which can be re-used across different modules, see Reusing keys across multiple modules for some examples. [MGNLUI-3764

Avoid .title keys in in template definitions

The key for the title of a template should not use .title anymore. A typical recommended key for a template title would be templates.components.myComponent (and templates.components.myComponent.description for its description). [MAGNOLIA-6599

New MTK components

We have added two new components to the MTK module:

  • A new video component to display videos. [ MTE-50]
  • A new pageIntro component to display the page title and abstract. [MTE-21]

New JCR Tools and Log Tools modules

The JCR Tools module has been introduced to replace the legacy JCR queries appExport app and Import app. The module comes with a new app called JCR tools app which contains four subapps: Query, Dumper, Exporter and Importer.

The Log Tools module is a system administration tool to list, view, and download system log files as well as to view and set specific log levels for classes. The module replaces the legacy Log Viewer app and Logging.

Page editor improvements

  • The duplicate action is disabled for single type areas and areas where the maximum number of allowed components has been reached (maxComponents defined). [PAGES-62]

  • When editing a link in a rich text field, the CKEditor now takes you directly to the current link target, such as another page or a DAM asset. It is quicker for editors to verify that the link target is correct. [MGNLUI-3217]
  • When adding a new component to an area, you can choose whether you want to add it at the top or at the bottom of the area. [PAGES-59]

Publication status icon changes

The status icons indicating when content is published, changed or unpublished have been updated. In addition to the green, yellow and red icon colors used in previous versions of Magnolia, the shape of the icons also now varies. This increases legibility and improves accessibility. [MGNLUI-3596

  • Published (green, solid): Content was published from the author instance to the public instance. Identical content exists on both instances.
  •  Modified (yellow/amber, two rings): Content was modified since publication. The author instance is not in sync with the public.
  •  Unpublished (red, one ring): Content exists only on the author instance. It was never published.

Changed behaviour of SimpleUrlPattern

SimpleUrlPattern is used for web access rules in the roles of the Security app. You may have to check the web access rules of your custom roles.

Consider the following cases:

  • You have . in a pattern and expect . to be a real dot. => No change needed.
  • You have . in a pattern and expect it to be a wildcard. => This will not work as expected. Change to use ? instead.
  • You have \. in a pattern and expect it to be a real dot. => This will not work as expected. Change to use . only and remove the backslash.

Various

  • Fixes for the validation of composite and multi-value fields. [MGNLUI-3844], [MGNLUI-3793]
  • In a publishing workflow, when you click Preview page in the detail view of a page publication task, the Pages app will display a preview of the version to be published. [MGNLWORKFLOW-324]
  • Improved log messages after changes to Workflow configurations. [MGNLWORKFLOW-317]
  • Fixed an issue with UserManager#getUsersWithGroup, which could cause task notifications to be incorrect or missing. We are also clarifying the usage of GroupManager to retrieve super-groups vs. sub-groups. [MAGNOLIA-6615]

  • When used with the SwitchableTransformer, the Switchable field now discards field values for unselected options. [MGNLUI-3715]
  • ObservationUtil  - a utility class to register JCR observations - has been deprecated. Please use  WorkspaceEventListenerRegistration  instead. [MAGNOLIA-6580]

An aggregated change log for 5.4.6 contains all the changes.

This release is a recommended update for all users of Magnolia 5.

Updated modules

This release includes the following new module versions:

  • Advanced cache 1.7.3

  • Cache 5.4.4

  • Community Edition 5.4.6
  • Demo 0.11

  • Enterprise Edition 5.4.6
  • Form 2.3.5

  • Groovy 2.4.4

  • Imaging 3.2.6

  • JCR Tools 1.0

  • Language bundles 1.0.4

  • Log Tools 1.0

  • Magnolia 5.4.6
  • Magnolia Standard Templating Kit 2.9.4

  • Magnolia Templating Essentials 0.10

  • Pages 5.4.5

  • Resources 2.4.5

  • REST client 1.0.7

  • Site 1.0.6

  • Task Management 1.1.2

  • UI 5.4.6
  • Workflow 5.5.2

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: Rainer Blumenthal, Nils Breunese, Natascha Desmarais, Florian Fuchs, Vincent Gombert, Stephan Helas, Zarko Ivanoski, Rico Jansen, Grégory Joseph, Dominik Kunz, Michiel Meeuwissen, Sigurd Rolfes, Korneel Staelens, Vivian Steller, Ronald Ten Berge, Trang Truong, Sergio Vidango and Samuel Zihlmann.

How to update from earlier versions

Changes from 5.4.x 

magnolia.properties file

Add the following lines:

magnolia.resources.dir = ${magnolia.home}
magnolia.resources.classpath.observation.pattern=.*\\.(ftl|yaml)$

Important changes for Magnolia 5.2 and 5.3 users

If you had STK installed

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.

Jackrabbit configuration

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>

log4j.xml addition

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>
...

How to update from Magnolia 5.2 and earlier

To update your project, follow the standard update procedure, then make the following changes:

  1. Update your content apps with the content app upgrade task. It automatically takes care of the following:
    • Using the content connector.

    • Updating configuration of availability rules and default rule classes

    • Updating selected action definitions with node-type based availability

  2. If you used the DAM: 
    • Replace DamManager with AssetProviderRegistry.
    • See DAM and the STK and DAM templating on how to use assets in your templates.
    • The DAM changes have no impact on the STK. There is no need to modify Freemarker scripts because the new DAM API is abstracted from STK.
  3. If you have a custom jBPM workflow:
    • In the 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.

  4. If you have custom widgets or Vaadin add-ons:
    • Magnolia's default widgetset was relocated to info.magnolia.widgetset.MagnoliaWidgetSet.
    • Update your webapps's magnolia.properties file.
    • Otherwise Magnolia will automatically fall back to the new widgetset but will issue warnings during upgrade, and whenever a user logs in to Magnolia.

How to update from Magnolia 4.5 and earlier

Are you running on Magnolia 4.5 or earlier? It’s time to move to 5. Contact us for migration support and look at the migration process.

Known issues

Allocate more JVM memory

Magnolia 5.4.2 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

Processed Resources app conflict

If you upgrade to Magnolia 5.4.6 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.