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

Magnolia CORE 5.5.1 delivers the following changes and improvements:

Changes for authors

Thumbnails and preview help you select assets

The list and tree views of the Assets app now display a thumbnail before the asset name for .jpg, .gif and .png assets. 

 

The Assets chooser dialog now displays a preview when you select an asset. A preview is shown for .jpg, .gif, .png and .svg assets.

MGNLDAM-684

Contemporary tablet and smartphone previews

The tablet and smartphone previews have been updated to render previews that reflect the times. Previews are available in portrait and landscape, and you can see the screen resolution in the status bar.

PAGES-112

Copy and paste components across pages

Introduced in Magnolia 5.5, the copy and paste function now works across multiple pages in the page editor. You can copy a component from one page and paste it to another page. 

PAGES-103

Creating subsegments is no longer allowed

Previously you were able to create "subsegments" by placing one segment under another in the Segments app. This structure was misleading because Magnolia does not apply segments in a hierarchical way. Magnolia only applies the segment you select, not its parents.

To avoid potentially misleading segment structures, you can no longer add or move one segment under another. Magnolia warns you about subsegments during the update process. We recommend that you organize your segments using a flat list or folders.

Example: Registered user does not mean "Registered user from the United States". It means just "Registered user".

(error) Subsegments (not allowed)(tick) Flat list (allowed)(tick) Folders (allowed)

MGNLPN-325


Changes for developers

Use symbolic links in light-modules directory

The Magnolia resources directory, defined by the magnolia.resources.dir property, now supports symbolic links. The symbolic links can reference light modules in different locations and repositories. Magnolia picks up changes in light-module files automatically, renews any modified definition items in their registries, and applies decorations.

Example:

  1. Create a single directory for your light modules: /Users/johndoe/magnolia-testing-install/light-modules.
  2. Use the path as the value of the magnolia.resources.dir property:

    magnolia.resources.dir=/Users/johndoe/magnolia-testing-install/light-modules

  3. In the light-modules directory, create symbolic links to light modules stored in various other locations on your filesystem. Run the ls -al command to check the links:

    johndoe@myworkstation ~/magnolia-testing-install/light-modules $ ls -al
    
    lrwxr-xr-x   1 johndoe  staff    62B 15 Dec 11:22 imaging2-module -> /Users/johndoe/mgnl-dev-repo/light/coremodules/imaging2-module
    lrwxr-xr-x   1 johndoe  staff    63B 15 Dec 11:23 printing-module -> /Users/johndoe/mgnl-dev-repo/light/addonmodules/printing-module
    drwxrwxr-x   7 johndoe  staff  4096B 15 Dec 11:10 scanning-module
    

MAGNOLIA-6846

resfn function library for resources

Resources module 2.5.1 introduces a new templating function library  resfn . The library is in a new magnolia-resources-templating submodule.

resfn creates links to CSS and JavaScript files by patterns you define. Provide a single pattern or a list of patterns to match files from all resources. Use the methods #css, #cachedCss, #js or #cachedJs depending on your needs. 

Example: With two FreeMarker statements you can add all the webresources of two dedicated light modules to a template script:

${resfn.js(["/foobar/.*js", "/module-42/.*js"])}
${resfn.css(["/foobar/.*css", "/module-42/.*css"])}
As a result, Magnolia renders all the appropriate <link> and <script> elements. 


MGNLRES-293

Magnolia CLI uses resfn

Magnolia CLI version 1.0.7 has been released in parallel with the release of Magnolia 5.5.1.

Earlier versions of the Magnolia CLI prototypes used the hcmcfn templating functions from the neat-resources module on GitHub. With the introduction of the resfn templating functions mentioned above, the prototypes have been updated to use resfn instead of hcmcfn.

NPMCLI-59

Other changes

  • In pre-5.5.1 releases of Magnolia, a fallback mechanism existed to check if the handle prefix had been prepended incorrectly in a request with the complete path to the item. For example, a website https://websites.ch/travel/ was also reachable as https://websites.ch/travel/travel/ in which case the URI2RepositoryMapping mechanism in fact cleared the /travel prefix from the address. In Magnolia 5.5.1+ this mechanism is no longer available, so the website would not be accessible via https://websites.ch/travel/travel/ . In fact, when using multisite, the root page of the website will not be accessible even through https://websites.ch/travel , but just simply through https://websites.ch . The change removes the possibility of accessing one page via multiple URIs but it might have some impact for example on VirtualURIMapping that references the root node in the toURI parameter. MAGNOLIA-6882
  • The time zone now resolves either to the user's preferred time zone or to system's default. MGNLUI-4014
  • The duplicate library cglib:cglib:2.2 was removed from the dependencies in favor of cglib:cglib-nodep:3.2.2. As a consequence, all definitions which use the i18n mechanism (templates, dialogs, actions) require the default constructor. TASKMGMT-26
  • Browser cache is now disabled by default on the author instance. This can be changed by removing
    /modules/cache/config/contentCaching/defaultPageCache/browserCachePolicy/policies/never@class. MGNLCACHE-12
  • PersonalizationNodeWrappers are now stored in a request-scoped cache to improve the performance of personalized content. MGNLPN-344 

  • Same-name siblings are no longer allowed. They were already mostly disabled, now they are disabled for root-level nodes as well. For instance, it is now impossible to have two root travel/ nodes in pages after a move operation. MAGNOLIA-6893MAGNOLIA-5433
  • Moving a node by drag-and-drop is now possible also at the root level. MGNLUI-4082
  • Switching the language in a content app will no longer allow you to bypass a required dialog field. MGNLUI-3491

Changelog

This release also comes with a number of bug fixes and security improvements. An aggregated changelog for 5.5.1 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: 

  • Activation 5.5.1
  • Advance Cache 1.8.2
  • Backup 2.1.1
  • Cache 5.5.1
  • Categorization 2.5.1
  • Community Edition 5.5.1
  • Content Dependencies 1.6.3
  • Content Translation Support 2.1.5
  • DAM 2.2.1
  • Definitions App 1.0.1
  • Demo Projects 1.1.1
  • Enterprise Edition 5.5.1
  • Form 2.3.8
  • Forum 3.6.1
  • Google Sitemap 2.4.1
  • Groovy 2.5.1
  • JCR Tools 1.0.3
  • Language Bundles 1.0.9
  • Magnolia 5.5.1
  • Magnolia CLI 1.0.7
  • Mail 5.4.1
  • Multisite 1.2.5
  • Pages 5.5.1
  • Personalization 1.4.1
  • Public User Registration 2.6.1
  • Resources 2.5.1
  • REST Client 1.1.1
  • RSS Aggregator 2.5.1
  • SiteMesh 1.1.1
  • Soft Locking 2.6.1
  • Standard Templating Kit 3.0.1
  • Tags Manager 1.2.4
  • Task Management 1.2.1
  • Templating Essentials 1.1.1
  • Templating Samples 5.3.3
  • UI 5.5.1

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

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

Links to tours don't work if you access demo over a correctly configured domain

In this release we removed a fallback mechanism checking if the handle prefix had been prepended incorrectly in a request with the complete path to the item (MAGNOLIA-6882). This however entails that on production instances running under registered domain names, not on a test or development server accessible via localhost, such handle prefixes can no longer form a part of the toURI parameter in a module's virtualURIMapping setting. On a production instance please be sure to have the prefixes removed from the parameter. 

This unfortunately affects also the travel demo in the 5.5.1 bundle. With handle prefixes travel and sportstation present in the toURI parameter, the links to the tours in the travel demo are inaccessible on demo.magnolia-cms.com or any other registered domain, and the following changes are necessary:

forward:/travel/tour?tour=$1    >   forward:/tour?tour=$1

forward:/sportstation/tour?tour=$1    >   forward:/tour?tour=$1

A development deployment under localhost is not affected. MGNLDEMO-204.

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.1 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, Andreas Antener, Adrien Berthou, Nils Breunese, Soisik Froger, Daniel Kasmeroglu, Marvin Kerkhoff, Michiel Meeuwissen, Benny Menzel, Teresa Miyar, Matthias Müller, Diana Racho, Tommi Salonen, Fabian Schneider, Vivian Steller, Richard Unger, David Wartel and Tom Wespi.





  • No labels