Magnolia CORE 5.5.5 brings significant performance improvements for opening apps and working in the page editor when you have multiple concurrent authors.
Changes for authors
AdminCentral performance improved
AdminCentral performance has been improved, especially under high load. If many authors use your system at the same time, AdminCentral will continue to operate smoothly. Memory demands imposed on the system by user sessions are lower while CPU compute times are faster.
Previously Magnolia was creating multiple GuiceComponentProvider instances on demand for apps, sub-apps, and so on. By pre-computing and bundling all the UI-related Guice bindings into a single Guice Injector/GuiceComponentProvider we are now avoiding a situation where each such component provider would otherwise take up to several hundred ms CPU time to create, and up to several hundred KBs of RAM to keep in the session. As a result, the apps, sub-apps and AdminCentral instances now start faster, consume less resources and are more responsive under heavy traffic loads.
Default value for date field
defaultValue property to a specific date such as
"2017-10-31" or use the keyword
now which defaults to the current date and time. Current time means time at the host server. Magnolia stores dates and times using server time. The stored time is then converted and displayed to users in their preferred time zone.
Change template in a page variant
You can now change the template of a personalized page variant. This allows you to change the presentation of targeted content for specific audiences. Let's say you discover that returning users convert better after watching a video about your product. Make the video watching experience optimal with a template that shows a big and beautiful responsive media player.
Tip! You can also change the template of a component variant. It's a more fine-grained option if creating page variants feels too big.
required property works (again) for password fields
required property, which makes a field mandatory, was not working correctly for the password field. This bug has been fixed.
Set the property to
true and it will work again.
Changes for developers
Easy to read installation screens
The Magnolia installation screen now shows all module installation steps in a table. This makes it easier to skim through the steps quickly and increases legibility. Installation preconditions are listed in a separate section and they are visually aligned with installation tasks. Click the Show/Hide all details link to collapse the detail.
Prevent exporting binaries to YAML
To make importing content faster and to prevent excessive memory consumption, Magnolia does not allow you to export binary content to YAML. When you export images, video or other binary content to YAML the system shows an error "Binaries are not supported for YAML bootstrap format". You can still export binary content to XML.
Create a separate message file for template labels
The Travel Demo shows a best practice example how to store template labels in a separate message file. You should create separate message files for user interface labels and template labels. Don't store these two groups of text in the same files or message bundles. They are aimed at different audiences and have different localization requirements.
Example: Message files in the Travel Demo
- module-travel-demo-backend_en.properties (user interface labels)
- module-travel-demo-frontend_en.properties (template labels)
Drop constraints for workbench and Move dialog are unified
Moving an item by drag-and-drop in the workbench and in the move dialog now both respect the same drop constraints. Drop constraint is a way to restrict which nodes a user can move and where they can be moved to. For example, you might want to allow content to be moved under folders but not folders under content.
JcrNewNodeAdapter#isNew no longer always returns hardcoded true
Previously, the method
#isNew of JcrNewNodeAdapter always returned true (hardcoded), even after the first successful save.
Now it only returns true when saving a new item that is not already persisted, meaning that it exists only in transient storage on the session and has not yet been saved.
MgnlUser bean consistency
This is potentially a breaking change in the unlikely event that you extended
Security and library updates
RESTEasy library update to 3.0.23
The RESTEasy library has been updated from 3.0.19.Final to 3.0.23.
Cross-site scripting issue fixed
A reflective cross-site scripting vulnerability has been fixed.
5.5.5 changelog with all the changes.
Updating to 5.5.x from any pre-5.5 version
- Please be aware that depending on the number of versions in the version workspace, the update to 5.5.x from any version below 5.5 may take from 20 to 30 minutes since all of the versions have to migrate to a new structure.
- Since the default JCR persistency layer in our bundles has changed to H2 Database Engine with the 5.5 release, please make sure that you keep the
magnolia.repositories.jackrabbit.configproperty in the
magnolia.propertiesfile set to the database you used before updating. For example, for Derby set the property as follows:
Generally, follow the standard update procedure.
- Please check ImportantchangesforMagnolia5.2and5.3users.
- Please check HowtoupdatefromMagnolia5.2andearlier if required.
- Please check HowtoupdatefromMagnolia4.5andearlier if required.
Changes for 5.4.x users
The following changes apply only to the users running Magnolia 5.4 (major release) and maintenance releases 5.4.1 to 5.4.3.
CE and EE users
Add the following lines in your
magnolia.properties file. They configure a directory for loading file system resources and the file types Magnolia should observe in the classpath and reload on-change:
If you had EE Pro 5.4.x or previous and are installing EE Pro 5.5.5
Due to component personalization bringing in new features to the page editor, you must replace the widgetset in the
magnolia.properties file. Either replace or add (depending on the update path):
Derby vs. H2
If you used a previous version of Magnolia with an Apache Derby database, make sure you keep your
magnolia.repositories.jackrabbit.config setting in your
Magnolia bundles now ship with the following default setting:This setting may not be compatible with your setup.
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.
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
Add the log configuration for org.reflections
How to update from Magnolia 5.2 and earlier
To update your project, follow the standard update procedure, then make the following changes:
- 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
- If you used the DAM:
- If you have a custom jBPM workflow:
- In the
info.magnolia.module.workflow.jbpm.JbpmWorkflowManager#completeWorkItemmethod, 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#getWorkItemmethod. It was used to complete a work item for human tasks. Furthermore, the wrapper we initialize only holds the
The previously hardcoded
mgnlDataparameter is now configurable in
- In the
- If you have custom widgets or Vaadin add-ons:
- Magnolia's default widgetset was relocated to
- Update your webapps's
- Otherwise Magnolia will automatically fall back to the new widgetset but will issue warnings during upgrade, and whenever a user logs in to Magnolia.
- Magnolia's default widgetset was relocated to
How to update from Magnolia 4.5 and earlier
Posting a comment does not work
Due to the removal of deprecated code, the Commenting module does not work. We will release a new version of it soon: MGNLFORUM-296 - Getting issue details... STATUS .
The Show action in the Configuration app doesn't open the correct location
When selecting properties in a definition that are actually extended from another node in the config workspace, opening the definition in the Configuration app will not work correctly, as the underlying node/property doesn't exist. For example,
points to config:/modules/site-app/apps/site/subApps/browser/actions/addFolder/icon
but all the actions are inherited from
/modules/ui-admincentral/apps/configuration/subApps/browser via extends.
Allocate more JVM memory
Magnolia 5.5.5 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
- Activation 5.5.4
- Cache 5.5.5
- Categorization 2.5.3
- Community Edition 5.5.5
- Contacts 1.5.1
- Content Editor 1.0.5
- DAM 2.2.5
- Demo Projects 1.1.4
- Enterprise Edition 5.5.5
- Google Sitemap 2.4.4
- Groovy 2.5.3
- Jcr Tools 1.1.1
- License 1.6.1
- Magnolia 5.5.5
- Pages 5.5.5
- Personalization 1.4.5
- REST Client 1.1.2
- REST Framework 1.2.2
- RSS Aggregator 2.5.3
- Site 1.1.2
- Templating Essentials 1.1.3
- UI 5.5.5
- Workflow 5.6.4
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: Marcel Boer, Nils Breunese, Andrea Castelli, Mariusz Chruscielewski, Emilio Garza, Martijn Kooijman, Daniel Schneeberger and Andreas Weder.