Page tree
Skip to end of metadata
Go to start of metadata
Released on July 3, 2015

What's new?

Magnolia 5.4 makes development easier and faster. New developers are productive sooner because there is less to learn. Front-end developers can get more done without having to know Java. Back-end developers benefit from unified resource loading and file-based configuration.

Magnolia Templating Essentials

Magnolia Templating Essentials (MTE) is a new minimal set of reusable templates. It is quicker to learn than the Standard Templating Kit and requires fewer skills.

MTE is aimed at the increasing number of front-end developers who looked for something leaner and less time-consuming than the STK. The STK works well if you have taken the time to learn it. However, it is too different from the way websites are prototyped and conceptualized today. As front-end Web technologies evolved, the STK started to feel too big with its many examples and tight coupling.

MTE is front-end framework agnostic, which means you can integrate it with any modern framework such as Bootstrap or Foundation. This makes Magnolia a better choice for campaign sites and Bootstrap-based sites.

We recommend that you start new projects with the MTE. However, If you are productive with the STK then keep using it. Magnolia will continue to maintain the STK but will not actively develop it further.

Light development

Resources of all kinds can now be placed in a file-system directory, creating a so-called light module. In concert with YAML configuration files and unified resource loading, this enables light development: a new development style which does not require Java skills or a Java development environment.

Light development is designed to work seamlessly with standard Java-based Magnolia development. You can use a mixture of light development and Java development as appropriate for your team and project.

Configuration by YAML file

You can now configure most everyday items such as templates, dialogs and apps in YAML. YAML is a simple text file format that provides a practical alternative to JCR-based configuration. 

Example: Component template in YAML

hello-magnolia/templates/components/quotation.yaml
templateScript: /hello-magnolia/templates/components/quotation.ftl
renderType: freemarker
dialog: hello-magnolia:components/quotation
title: Quotation

Since YAML is just text you can use your favorite text editor or IDE to edit configuration. Text files are easier to share and compare for changes. This helps big developer teams. JCR-based configuration is cumbersome when you work together with many people. You sometimes forget to export configuration to XML, and merging and comparing XML markup is just not user friendly.

File-based configuration is loaded anew at every system startup; there are no bootstraps or version handlers. The run-time configuration is a merge of configuration that can come from the repository or YAML files. JCR configuration can override file configuration, giving you the option to hot fix and publish urgent items. A new Configuration app that shows the total configuration from all sources is in beta testing phase at the Magnolia Forge (concept, code, issues).

Unified resource loading

We unified the way resource files are loaded. CSS, JavaScript, template scripts and YAML configuration files are all considered resources. They are loaded the same way to make a developer's life easier. As a developer you can choose where to serve resources from. Switching the origin of resources is quick to allow hot fixes.

An updated Resource Files app shows which resource Magnolia currently uses. With this improvement we hope to end the confusion about where a resource comes from. Unified resource loading helps new developers get onboard with Magnolia faster and makes working in a variety of deployment scenarios ranging from a remote production instance down to your own IDE .

New travel demo

A bright new demo takes you around the world. Magnolia Travels is the website for a fictional travel agency. This business scenario helps showcase the benefits of Magnolia. The demo illustrates important Magnolia features such as publishing, user roles, a multilanguage website and a multilanguage author interface, multiple sites with content re-use across the sites, marketing tags and more - all in a modern, attractive, responsively resizing website. Content for the website is managed both in the traditional pages hierarchy and as a content pool in the new Tours content app.

For developers, the demo sources provide a best-practice example of the new Magnolia Templating Essentials (MTE), YAML configuration and resource loading.

   

If you want to have a look at Magnolia 5.4 on our public available demo server:

Campaign Publisher

Marketing campaigns take a lot of planning and collaboration. You need to put together many pieces of different types of content: pages, assets and resources. A new Campaign Publisher app lets digital marketing teams gather all the content for a given campaign, send it through a review cycle, and publish it as a whole.

You no longer have to publish each resource separately. The app will keep track of them. The module provides a status for each campaign and a way to review each included resource.

Dynamic Page Caching add-on

Dynamic page caching (DPC) is a new cache module that allows you to cache static content on a dynamic page. Until now you had to exclude dynamic pages from cache. This meant that a dynamic page had to be rendered on every request. With the new Dynamic Page Caching module you can choose to cache static content on a page and render dynamic components per request.

DPC and Variant caching are available  as separate add-ons. If you do content personalization and think you would benefit from dynamic page caching, contact Magnolia .   

Personalization in Enterprise Edition Standard

We want more customers to do personalized content delivery. The Personalization module is now also available with Enterprise Edition Standard, not only Enterprise Edition Pro. Now is a good time to start experimenting with personalized content.

Other

An aggregated change log for 5.4 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:

  • Cache 5.4
  • Categorization 2.4
  • Commenting 2.3
  • Contacts 1.4
  • Content Dependencies 1.5
  • Content Translation Support 2.1
  • DAM 2.1
  • Demo 0.5
  • Enterprise Edition 5.4
  • Google Analytics 1.3
  • Google Sitemap 2.3
  • Groovy 2.4
  • Imaging 3.2
  • In-place templating 2.4
  • License 1.5
  • Magnolia 5.4
  • Magnolia Templating Essentials 0.5
  • Multisite 1.2
  • Pages 5.4
  • Personalization 1.2
  • RSS Aggregator 2.4
  • Resources 2.4
  • Site URLs 1.0
  • SiteMesh 1.0
  • Soft Locking 2.5
  • Standard Templating Kit 2.9
  • Templating Samples 5.3
  • UI 5.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: Brad Balmer, Stefan Baur, Jennifer Brehm, Juan Egea, Hugo Ferreira, Florian Fuchs, Jan Christian Haddorp, Sang Ngo Huu, Marvin Kerkhoff, Chunhua Liu, Sirik Loosman, Steven McDermott, Benoit Olbrechts, Michael Rauch, Frank Sommer, Ricardo Ulate, Ricardo Ulate, Richard Unger,Edgar Vonk and Samuel Zihlmann.

How to update from earlier versions

Important changes for Magnolia 5.2 and 5.3 users

Bundles

CE bundle

Modules that are no longer bundled:

  • Standard Templating Kit (STK)
  • Form
  • Public User Registration (PUR)
  • Device detection
  • Data module

EE bundle

  • Personalization is now an EE Standard feature. Previously it was available only in EE Pro. See: Editions and licenses
  • Performance features Advanced cache and Dynamic caching are EE Pro features.

Data module is no longer included

Starting with Magnolia 5.4, the Data module is no longer included. The Data module was originally developed to manage structured data such as contacts or products. Content apps, introduced in Magnolia 5.0, effectively replace the Data module. Content apps provide a more modern approach for managing any structured content item.

We removed the Data module and its data workspace from the product in Magnolia 5.4. When you migrate from Magnolia 4.5 to Magnolia 5.x, replace custom data types with content apps.

If you had STK installed

Standard Templating Kit (STK) is not included in this release. Read MTE and STK to learn if the new Magnolia Templating Essentials (MTE) is an option for you.

To keep working with the STK:

  • Bring back the latest STK (2.9) to your bundle, along with its dependencies: 
    • magnolia-module-standard-templating-kit 2.9 (download)
    • magnolia-theme-pop 2.9 (download)
    • magnolia-demo-project 2.9 (download)
    • magnolia-dam-compatibility 2.1 (download)
    • magnolia-module-device-detection 1.1 (download)
    • magnolia-module-form 2.2.13 (download)
    • magnolia-module-public-user-registration 2.4.3 (download)
    • magnolia-module-data 2.3.5 (download)

      STK Dependecies
      <dependency>
        <groupId>info.magnolia</groupId>
        <artifactId>magnolia-module-standard-templating-kit</artifactId>
      </dependency>
      <dependency>
        <groupId>info.magnolia</groupId>
        <artifactId>magnolia-theme-pop</artifactId>
      </dependency>
      <dependency>
        <groupId>info.magnolia</groupId>
        <artifactId>magnolia-demo-project</artifactId>
      </dependency>
      <dependency>
        <groupId>info.magnolia.dam</groupId>
        <artifactId>magnolia-dam-compatibility</artifactId>
      </dependency>
      <dependency>
         <groupId>info.magnolia.devdect</groupId>
         <artifactId>magnolia-module-device-detection</artifactId>
      </dependency>
      <dependency>
         <groupId>info.magnolia</groupId>
         <artifactId>magnolia-module-public-user-registration</artifactId>
      </dependency>
      <dependency>
        <groupId>info.magnolia</groupId>
        <artifactId>magnolia-module-data</artifactId>
      </dependency>
  • Exclude the new travel demo (site-definition is unique on CE)
    • magnolia-travel-demo 0.5
    • magnolia-travel-tours 0.5
    • magnolia-travel-demo-marketing-tags 0.5

    • magnolia-travel-demo-multisite 0.5

    • magnolia-travel-demo-personalization 0.5

      Travel Demo Exclusion
      <dependency>
        <groupId>info.magnolia.eebundle</groupId>
        <artifactId>magnolia-enterprise-webapp</artifactId>
        <type>pom</type>
        <!-- declare the exclusions here -->
        <exclusions>
          <exclusion>
            <groupId>info.magnolia.demo</groupId>
            <artifactId>magnolia-travel-demo</artifactId>
          </exclusion>
          <exclusion>
            <groupId>info.magnolia.demo</groupId>
            <artifactId>magnolia-travel-tours</artifactId>
          </exclusion>
          <exclusion>
            <groupId>info.magnolia.eedemo</groupId>
            <artifactId>magnolia-travel-demo-marketing-tags</artifactId>
          </exclusion>
          <exclusion>
            <groupId>info.magnolia.eedemo</groupId>
            <artifactId>magnolia-travel-demo-multisite</artifactId>
          </exclusion>
          <exclusion>
            <groupId>info.magnolia.eedemo</groupId>
            <artifactId>magnolia-travel-demo-personalization</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

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 and log4j.xml

Double-check magnolia.properties and log4j.xml for latest changes.

jBPM workflow

Before updating to the latest workflow version it is strongly advised to make sure that all publication workflows are completed. There have been several updates to the BPMN process which will most likely break with the old, uncompleted processes.

If you have a custom jBPM workflow

The processes used in Magnolia 5.3 have been adopted to support the scheduling of tasks in Pulse. If you have changes in the processes, you will need to update those accordingly.

 

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

Memory

Magnolia 5.4 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 1024M. Try a higher amount. We are working on uncovering the root cause for the increased memory need.

See: Java out of memory

Magnolia Data Module 2.3.5 cannot be installed because of optional dependencies declared Magnolia Language Modules. The language modules require data 2.3.6 which does not exist. 

STK vs. Travel Demo

It is not possible to run both STK and the new Travel Demo at the same time. Make sure you don't install both.

Pages app - user with read-only permissions 

When opening a pages app with user who has read-only permissions on website, pages app will show popup with error message. This is a known issue, see PAGES-18 - Getting issue details... STATUS . Workaround is just to close the error message and continue working as usually. The issue will be fixed in 5.4.1.

  • No labels