Page tree
Skip to end of metadata
Go to start of metadata
Released on November 9, 2015

What's new?

Resource Files app

We take the unified resource handling story further in Magnolia 5.4.3. The Resource Files app now displays all resource files (CSS, JS, YAML, FreeMarker) from all origins (JCR, file system, classpath). You can browse all resource files known to the Magnolia instance in one place.

In the Resource Files app you can create, upload, delete and edit JCR resource files. The edit action also allows you to hot fix classpath and file system resources, which is a much-liked legacy feature. The Resource Files app takes over all duties of the current Templates app (in-place templating) so we can remove the Templates app.

JCR templates move to the resources workspace

To make all resource files available in one place we move your template scripts (.ftl) from the templates JCR workspace to the resources workspace. A migration script moves the templates automatically during the system update.

We move template scripts only if:

  • The template is enabled (Enable template box is checked in the Templates app) and
  • You indicated that the template should be overridden during an update (Automatic update box is checked in the Templates app) and
  • There is no identical template elsewhere in the file system or classpath.

What you need to do:

  • If the migration succeeds you don't need to do anything. Your templates are now available in the Resource Files app. The old Templates app has been removed.
  • If the migration fails you will see an error message during the update. No templates are moved. They are still available in the old Templates app, stored in the templates workspace. The migration failed because it found an existing hot-fixed template in the resources workspace that was different from the template it tried to move. You need to remove the hot fix and make the template script part of your permanent deployment in the file system or the classpath.

The old templates workspace was typically used for two purposes:

  • Creating ad hoc template scripts for testing and experimenting.
  • Overriding template scripts from other resource origins (classpath or file system) in order to make hot fixes in production.

You can do both of these use cases in the new Resource Files app and the resources workspace. No functionality is lost.

What's next for resources?

Next step in the resources story is processed resources. The user community passionately supports Magnolia-processed resources so we keep this feature in the product:

  • Magnolia 5.4.4 will bring back the old Resources app so that you can work with your existing processed resources.
  • In a future release we will support processed resources in the new Resource Files app and the new /.resources servlet.

(warning) If you use processed resources today, we recommend that you wait for Magnolia 5.4.4.

Demo improvements

Magnolia 5.4.3 resolves 22 issues in the travel demo such as:

  • New video component. You can use video files from the Magnolia DAM or embed from the Web.
  • New carousel component.
  • New social sharing component that integrates with the AddToAny sharing service.
  • Apps are provisioned to demo users so that users only see apps relevant to their roles.
  • Responsive columns. Editors can change the column layout on a page.
  • Image variations create appropriately sized images  for the device and browser.
  • HTML5 input fields in forms. Useful for email for example.
  • Fixed the broken layout when adding an image to a text & image or teaser.

Safer installation

We now know why Magnolia installation hangs on some MacBooks. The embedded Derby database opens many file handles and may run over the maximum limit set by the system.

We have addressed this issue by:

New bundles

With this release we provide new pre-configured Magnolia bundles. The aim is to provide a good starting point whether you are evaluating Magnolia or developing your own project.  

Examples:

  • magnolia-community-webapp. Use this as a base for your project.
  • magnolia-enterprise-pro-demo-bundle includes Magnolia Enterprise Pro, MTE, travel demo and Tomcat. Good package for evaluating the latest stuff.
  • magnolia-enterprise-pro-stk-bundle includes Magnolia Enterprise Pro, STK and the old demo project. When you continue to work with the STK.
  • magnolia‑enterprise‑standard‑demo‑webapp includes Magnolia Enterprise Standard, MTE and the travel demo. For EE Standard users.

See Bundles and webapps for a complete list.

Publication with Java updates 1.7.0_85 and 1.8.0_65

Java updates 1.7.0_85 and 1.8.0_65 introduced strict validation of HTTP header field values. Colon (:) is no longer an allowed character, as specified in HTTP 1.1. This change broke the publishing action in Magnolia since we pass a message header that contains mgnl:deleted.

Symptom: You see the following error when you publish content in Magnolia running on Java 1.7.0_85 / 1.8.0_65 or later.

ERROR dule.exchangetransactional.TransactionalSyndicator: Failed to activate content.
info.magnolia.cms.exchange.ExchangeException: java.lang.IllegalArgumentException: 
Illegal character(s) in message header field: mgnl:deleted

The issue was fixed by renaming the value to mgnl-deleted MGNLACTIVATION-118 - Getting issue details... STATUS MGNLXAA-94 - Getting issue details... STATUS .

Upgrade to Magnolia 5.4.3 to fix the issue or downgrade your Java virtual machine as a temporary workaround.

Bootstrapping content into cluster nodes

A new property magnolia.repositories.jackrabbit.cluster.master identifies a Magnolia instance as a cluster master node. During installation and update Magnolia bootstraps content only into master nodes. This ensures that other (replica) nodes installed later don't override already bootstrapped content.

Example: Public instance A is defined as a cluster master node. The instance starts and creates a clustered forum workspace and bootstraps some content such as rules of conduct. Second public instance B is defined as a replica node. It starts moments later but does not bootstrap the same workspace again.

Usage: Add the new property to your magnolia.properties file and set its value:

  • true defines the instance as a master node. Content is bootstrapped.
  • false defines the instance as a replica node. Content is not bootstrapped.
magnolia.properties
magnolia.repositories.jackrabbit.cluster.config=WEB-INF/config/repo-conf/clustered-jackrabbit-bundle-mysql-search.xml
magnolia.repositories.jackrabbit.cluster.master=true

(warning) Always define the cluster.config and cluster.master properties together as shown above if any of your workspaces are clustered.

Related topics:

Other

An aggregated change log for 5.4.3 contains all the changes.

Should I update?

(warning) If you use JCR resources heavily we recommend that you wait for Magnolia 5.4.4. Magnolia 5.4.3 does not yet supply all the features for JCR resources that Magnolia 5.3.x did. For example, the Resource Files app does not support processed resources.

Apart from this limitation, this release is a recommended update for all users of Magnolia 5.

Updated modules

This release includes the following new module versions:

  • Activation 5.4.2
  • Cache 5.4.3
  • Content Dependencies 1.6.1
  • Community Edition 5.4.3
  • DAM 2.1.2
  • Demo 0.8
  • Enterprise Edition 5.4.3
  • Forms 2.3.2
  • Google Sitemap 2.3.2
  • Imaging 3.2.3
  • In-place templating 2.4.2
  • Magnolia 5.4.3
  • Magnolia Templating Essentials 0.7
  • Multisite 1.2.2
  • Observation 2.0.4
  • Pages 5.4.2
  • Personalization 1.2.2
  • Resources 2.4.2
  • Site 1.0.3
  • SiteMesh 1.0.1
  • Standard Templating Kit 2.9.2
  • UI 5.4.3
  • XA Activation (exchange-transactional) 2.3.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: Adrian Andermatt, Casper Biever, Jordie Diepeveen, Rory Gibson, Fabrizio Giustina, Stefan Jahn, Rico Jansen, Chris Jennings, Marvin Kerkhoff, Markus Koller, Mathias Lin, Adi De Masi, Pietro Pagani, Avinash Palayadi, Sigurd Rolfes, Erich Ruf, Christian Schroeder, Frank Sommer, Bence Vass, Edgar Vonk, Thomas Weckert, Tom Wespi, Stef Te Winkel and Gediminas Zalys.

How to update from earlier versions

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>

magnolia.properties file

Add the following line:

magnolia.resources.dir = ${magnolia.home}

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

STK theme resources are displayed twice

STK theme resources are displayed twice: once with file extension from the classpath or file system and second time without file extension from the JCR resources workspace. The extension-less JCR resources are merely displayed, Magnolia does not load them with the new loading cascade introduced in Magnolia 5.4.

We recommend that you use the /.resources servlet path to reference non-processed resources. If you do this you can delete the extension-less duplicates from the resources workspace.

MGNLRES-181 - Getting issue details... STATUS

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

Faulty Enterprise product descriptor

magnolia-module-enterprise 5.4.3 contains a faulty product descriptor file pddescriptor.xml. This file normally contains information such as version, edition and build number which you can view in the About Magnolia app. The faulty product descriptor file contains variables instead of actual data.

pddescriptor.xml file (faulty)
<VersionNumber>${magnoliaNiceVersion}</VersionNumber>
<Edition>${magnoliaEdition} - custom webapp</Edition>
<BuildNumber>${magnoliaReleaseDate} (rev. ${buildScmRevisionNumber} of ${buildScmBranch})</BuildNumber>
<Provider>${pom.organization.name}</Provider>

Symptom: You cannot register your license. You see a "License is empty" error message when entering the license key.

(warning) This issue impacts you only if you have a custom Enterprise Edition webapp based on magnolia-empty-webapp or magnolia-community-webapp and it contains magnolia-module-enterprise-5.4.3.jar.

Please fix your builds accordingly:

In a custom-built webapp

Download a patch JAR and place it into the WEB-INF/lib folders of your webapps:

In a .pom file

To adapt the build files of your custom bundle, add the following snippet to the <dependencies> section of the .pom file of your webapp:

  • EE Standard: 
    <dependency>
      <groupId>info.magnolia.eebundle</groupId>
      <artifactId>magnolia-enterprise-standard-product-descriptor</artifactId>
      <version>5.4.3</version>
    </dependency>
    
      
  • EE Pro: 
    <dependency>
      <groupId>info.magnolia.eebundle</groupId>
      <artifactId>magnolia-enterprise-pro-product-descriptor</artifactId>
      <version>5.4.3</version>
    </dependency>
    

.

Upgrade to demo 0.8.1

demo 0.8 which is included in Magnolia 5.4.3 has a few small bugs. Upgrade to demo 0.8.1 is recommended.