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

With the 5.5 release, Magnolia's on-premise product has a new name: Magnolia CORE. It’s the same flexible, robust system you rely on today. It just has a new name to distinguish it from Magnolia NOW, our new cloud-based platform-as-a-service offering.

This Magnolia CORE release improves the user experience by introducing quick app switching with a keyboard shortcut. New copy-paste actions let you copy pages, components in the page editor, and any other items in content apps. Moving nodes within a tree structure is also now faster.

Light developers benefit from the new Definitions app that displays all definitions from all resources. You can now bootstrap content in light modules and define themes in YAML. New navfn navigation functions provides useful utilities for generating navigation templates.

Light development

View all definitions in the Definitions app

Magnolia has many kinds of definitions: template definitions, dialog definitions, site definitions, and so on. Definitions can come from various origins. Previously it was time consuming to find out where a definition resides and, if defined multiple times, which of them takes precedence. You may have noticed this if you worked on the file system and defined things in YAML. You couldn't easily tell which definition the system is using at any given moment.

The new Definitions app is a single place to view all definitions. The app displays registered definitions from all sources (JCR, YAML)  and all origins (classpath, JCR, file system).

In the Definitions app you can:

  • View, search, sort and group definitions.
  • Open a definition for editing or hotfixing in the Configuration app or Resource Files app depending on its source.
  • View definition decorations and configuration errors.

This improvement concludes our file-based configuration story which started in Magnolia 5.4.  You can now:

  • Load all types of resource files the same way. (Magnolia 5.4)
  • View all types of resource files from all origins in the Resource Files app. (Magnolia 5.4.3)
  • View all definition files, including theme definitions, in the Definitions app. (Magnolia 5.5)

Bootstrap content in light modules

The Content Importer module allows you to bootstrap content from the file system into the JCR. The module adds bootstrapping capabilities for light modules. You can import content during development, distribution and deployment of light modules. For example, a module that provides a new template can also import sample content that shows editors how to use the template.

MGNLCI-1

navfn navigation functions

navfn  is a new templating function library in the MTE that provides useful utilities for generating navigation templates. A ready-to-use navigation template is included in the MTK, or you can use it as a starting point for customization. The navfn library has been designed to be easy to understand and customize, to be accessible to front-end developers, and to work with standard pages as well as virtual pages which display content from content apps based on parameters.

Example: Getting a page URL with a selector

Returns a page URL with a selector (delimited by the ~ [tilde] character) identifying the content to be rendered. This relies on Magnolia's selector mechanism, for example  https://demopublic.magnolia-cms.com/tour-type~beach~.html

Usage: navfn.linkWithSelector(page, content)

<a href="${navfn.linkWithSelector(page, navContentItem)!"#"}">
  ${navContentItem.lastName!navContentItem.@name}
</a>

MTE-3

Themes in YAML

You can now define a theme in YAML, and you can do it in any module. Previously, theme definitions had to be in the Site module. This restriction has been lifted.

Store your theme definition on the file system, in the classpath or in the JCR. Put the definition in the themes subfolder of your module: /<module-name>/themes/<theme-name> Themes configured in the old location site/config/themes/<theme-name>  still work, but you should move them to the new location.

Use the new Definitions app to view themes from all sources and origins. The old Themes tab has been removed from the Site app since it is no longer needed.

Actions in the Definitions app take you to the Configuration or Resource Files app where you can edit or override the theme definition.

Magnolia CLI

Magnolia CLI is an npm package providing a command line interface (CLI) tool to set up Magnolia and help light development. Commands in Magnolia CLI help you get the Magnolia bundle, create a light module, create a page, define page availability, and create a component.

npm install @magnolia/cli -g

User experience

Switch between running apps with a keyboard shortcut

Switch between running apps with keyboard shortcut Alt+Shift. Similar to app switching in operating systems, this feature allows you to cycle through apps in AdminCentral quickly. The App Switcher is available in all Magnolia editions.

The shortcut key is configurable in /modules/appswitcher/config/shortcut. Enter the value in human readable format such as Ctrl+Shift or Alt+1. The default value is Alt+ShiftMGNLCE-55

Copy and paste components, assets and other items 

You can now copy and paste components in the page editor. Copy-paste also works for pages in the page tree, for assets in the Assets app, and for many other items. You can add the actions to own content apps too.

(warning) Known issue: PAGES-103 Components can't be pasted across pages

PAGES-84, MGNLDAM-677MGNLUI-4021, PAGES-95

Move dialog opens at the location of the selected item

In previous Magnolia versions, the move dialog opened at the top level of the tree. When moving an item that was deep down in a tree, you had to navigate deep down into the tree again. It was time consuming to move an item near its original location or to just rearrange nodes.

With the 5.5 release, the move dialog opens in the same location where the selected item is. We also updated the dialog's visual layout.

MGNLUI-3897, MGNLUI-3910

Administration

Java 8

Magnolia CORE 5.5 requires Java 8. Java 7 no longer receives public updates from Oracle.

We also make use of the new lambda expressions and stream abstractions introduced in Java 8 in the app switcher and the Definitions app. These new language features perform better (collections), are more secure, and allow for clearer APIs and implementations. This benefits everyone using Magnolia.

MAGNOLIA-6645

H2 replaces Apache Derby as the default database

The default JCR persistency layer in our bundles has changed from Apache Derby to H2 Database Engine.

H2 has some advantages over Derby:

  • H2 uses fewer files than Derby to store the database and helps us avoid too many open files.
  • H2 can run in a virtual machine or externally without major changes.

You can still use Apache Derby if you prefer. We provide a Jackrabbit configuration for Derby.

MAGNOLIA-6799

Refactored Backup module

The Backup module has been completely refactored and streamlined. The new module uses Apache's RepositoryCopier API which is independent of the underlying data storage. The new implementation is stable and respects the file store threshold.

MGNLBACKUP 98MGNLBACKUP 99MGNLBACKUP 102

Other improvements

  • Light modules can be placed in the modules directory. This is just a "cosmetic" improvement which nonetheless makes it easier for the developers to orientate themselves within the Magnolia directories. The default value for the magnolia.resources.dir property in the magnolia.properties file is now ${magnolia.home}/modules . However, the location for the light modules still remains a property customizable by the user.
    MAGNOLIA-6248
  • The validateFileExtension parameter was removed from the configuration of the Imaging module. The same functionality can be achieved by setting validateContentType and registeredExtensionsOnly properties in ContentType filter.
    MGNLIMG-173
  • Although the node type definitions are apparently changed, this is just a cosmetic change: When registering node types, Jackrabbit doesn't register non-mixin supertypes for mixins, even when it's defined explicitely. Therefore the existing installations don't have to be updated.
    MAGNOLIA-6394
  • #getAllSuperGroups and #getAllSubGroups methods are introduced into the GroupManager interface, GroupManager#getAllGroup has been deprecated for being ambiguous.
    MAGNOLIA-6624
  • The modification date (lastModified) of any JCR node will not be affected by an update of a Magnolia instance anymore.
    MAGNOLIA-6699
  • A German-speaking editor will enjoy a number of improvements and adjustments to German messages in the design of the AdminCentral user interface. 
    MGNLUI-3905
  • Version management is now imported from magnolia-project, following the update of org.apache.commons:commons-lang3 to version 3.4.
    MGNLLDAP-93,
    MGNLOBS-38
  • The optional switch wrapOnlyPersonalizedNodes (defaulting to false) may be added to /server/filters/cms/variantResolver to disable deep wrapping of pages with PersonalizationNodeWrapper.
    MGNLPN-336 
  • The component that the user adds to a page or duplicates on it in the edit mode will stay in focus and selected for further editing after the Add/Duplicate action.
    PAGES-52
  • In the Enterprise Edition it is now possible to enter or modify license data via the About Magnolia app.
    MGNLEE-420
  • Google Sitemap app generates well-formed XML sitemaps.
    MGNLGS-122
  • A new node called bulkActions in the configuration of the ui-admincentral module makes it possible to set access to bulk-actions in the Pulse as per different default user roles.
    MGNLUI-3590
  • Added Korean language pack to the system (/server/i18n/system/languages/ko) and to the webapps.
    MAGNOLIA-6800,  MAGNOLIA-6801 
  • The 5.5 release also comes with a new design for the installation and update screens shown during the initial startup, and also with several security improvements in module configurations.

  • The admininterface-legacy module is phased out with this release.
    MGNLADMLEG-60
  • The crop-ui and imaging-tools modules, which require the admininterface-legacy module, won't be anymore part of the imaging module(s).
    MGNLIMG-193

  • Similarly, due to a dependency to the phased-out admininterface-legacy module, the function of the forum module cannot be used anymore. Its function is replaced by the commenting module.
    MGNLFORUM-293
  • The node /modules/resources/templates/yaml has been removed. This change will affect only the users using magnolia-processed-resources-app.
    MGNLRES-287
  • MarkNodeAsDeletedCommand and RestorePreviousVersionCommand lock the nodes using JCR lock API, therefore any other operation on those nodes will be prohibited, preventing parallel users from executing each other's actions, which could have lead to data loss in the past. MAGNOLIA-6560

  • Any call to info.magnolia.resourceloader.classpath.service.impl.production.ProductionModeClasspathFile#getLastModified() is concluded by closing the URL connection, which should avoid the "Too many open files" error from appearing in the logs of the production mode. MAGNOLIA-6781

Changelog

An aggregated changelog for 5.5 contains all the changes. 

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

Updated third-party libraries, modules and dependencies

Updated modules

This release includes the following new module versions: 

  • Activation Module 5.5
  • Advanced Cache 1.8.1
  • Aggregator Module 2.5
  • App Switcher 1.3
  • Backup 2.1
  • Cache 5.5
  • Categorization Module 2.5
  • Commenting Module 2.3.3
  • Community Edition  5.5
  • Content Dependencies Module 1.6.2
  • Content Importer Module 1
  • Content Translation Support 2.1.4
  • DAM 2.2
  • Definitions app 1
  • Demo Projects 1.1
  • Diff Module 1.8
  • Enterprise Edition 5.5
  • Forum 3.6
  • Google Sitemap Module 2.4
  • Groovy 2.5
  • Imaging 3.3
  • In-place templating Module 2.4.3
  • Language Bundles 1.0.7
  • LDAP support 1.7.1
  • License 1.6
  • Magnolia 5.5
  • Magnolia Form Module 2.3.7
  • Magnolia Public User Registration 2.6
  • Magnolia Templating Essentials 1.1
  • Mail Module 5.4
  • Newsletter Module 2.2
  • Pages 5.5
  • Personalization 1.4
  • Processed resources 1.0.2
  • Resources Module 2.5
  • REST Client 1.1
  • REST Framework 1.2
  • Scheduler Module 2.3
  • Site Module 1.1
  • SiteMesh 1.1
  • Soft Locking Module 2.6
  • Standard Templating Kit (STK) 3
  • Synchronization Module 1.7
  • Tags Manager 1.2.3
  • Task Management 1.2
  • Templating Samples 5.3.2
  • Tools 1.8
  • UI 5.5
  • WebDAV Module 2.1.3
  • Workflow Module 5.6
  • XA Activation (exchange-transactional) 2.3.4

How to update from earlier versions

 

(warning) We recommend everyone who use a 5.4.x version to update directly to 5.5.2 because of MAGNOLIA-6933. If you still wish to update to the 5.5 release, please make sure you drop your version workspaces first.

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

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

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

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: Thim Anneessens, Philipp Bärfuss, Nils Breunese, Thomas Comiotto, Natascha Desmarais, Jordie Diepeveen, Thomas Duffey, Florian Fuchs, Vincent Gombert, Rico Jansen, Grégory Joseph, Marvin Kerkhoff, Jens Kolb, Benjamin Langguth, Daniel Lipp, Karsten Martin, Adi De Masi, Tobias Mattsson, Michiel Meeuwissen, Teresa Miyar,  Mike Nuttall, Diana Racho, Fabian Schneider, Frank Sommer, Vivian Steller, Dirk Tillinger, Richard Unger, Bence Vass, Edgar Vonk, Tom Wespi and Nickolaus Wing.

 

 

  • No labels

2 Comments

  1. Hi, 

    In Magnolia 5.4 we were using the cp13n bundles & webapps (magnolia-enterprise-cp13n-bundle-parent, magnolia-enterprise-pro-cp13n-webapp). It seems that these haven't been updated to 5.5 in the repo (at least we couldn't find them).

    I guess we have to switch back to magnolia-enterprise-bundle-parent and magnolia-enterprise-pro-webapp in this release, but it's not made very clear in the release notes for people updating from 5.4. 

    Thanks!

    1. Hi Leo,

      you're right, component personalization is part of magnolia-enterprise-bundle-parent/magnolia-enterprise-pro-webapp since Magnolia 5.5

      Regards

      Roman