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

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.

MGNLUI-4180

Default value for date field

Thanks to your suggestions, Magnolia now supports a default value for the date field. Setting a default date or time helps authors enter content faster.

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

Example:

fields:
  - name: travelDate
    class: info.magnolia.ui.form.field.definition.DateFieldDefinition
    type: Date
    defaultValue: now

Node name

Value

 fields


 travelDate


 class

info.magnolia.ui.form.field.definition.DateFieldDefinition

 type

Date

 defaultValue

now

MGNLUI-4086

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.

MGNLPN-375

The required property works (again) for password fields

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

fields:
  - name: password
    verification: false
    required: true
    class: info.magnolia.ui.form.field.definition.PasswordFieldDefinition
MGNLUI-4209

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.

MAGNOLIA-7068

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.

MGNLUI-4208, MAGNOLIA-7032

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

MGNLDEMO-212

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.

BaseDropConstraint was deprecated in favor of JcrDropConstraint and JcrContentDropConstraint. The latter is similarly node-type based, and disallows nesting.

MGNLUI-4207

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.

MGNLUI-4203

MgnlUser bean consistency

To improve performance, the constructor of MgnlUser is deprecated and its signature has been changed. Use MgnlUserManager #getUser to instantiate a User instead.

This is potentially a breaking change in the unlikely event that you extended MgnlUser and MgnlUserManager.

If you externalize user management using ExternalUserManager or ExternalUser this change does not affect you. 

MAGNOLIA-7028

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.

MGNLREST-86

Cross-site scripting issue fixed

A reflective cross-site scripting vulnerability has been fixed.

Others

5.5.5 changelog with all the changes.

 How to update from earlier versions

Updating to 5.5.x from any pre-5.5 version

  • (warning) 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.config property in the magnolia.properties file set to the database you used before updating. For example, for Derby set the property as follows:
    magnolia.repositories.jackrabbit.config=WEB-INF/config/repo-conf/jackrabbit-bundle-derby-search.xml

Generally, follow the standard update procedure.

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.

magnolia.properties file

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:

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

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):

magnolia.ui.vaadin.widgetset=info.magnolia.widgetset.MagnoliaProWidgetSet

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

Magnolia bundles now ship with the following default setting:

magnolia.repositories.jackrabbit.config=WEB-INF/config/repo-conf/jackrabbit-bundle-h2-search.xml
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.

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

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,

/.magnolia/admincentral#app:definitions-app:;app~site@subApps/browser/actions/addFolder/icon:treeview
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

 Updated modules
  • 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

Acknowledgments

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.

  • No labels