Liferay Portal 7.4 CE GA2 Release

We are pleased to announce the release of Liferay Portal 7.4 CE GA2!

Announcing Liferay Portal 7.4 CE GA2

Liferay Portal 7.4 CE GA2 marks the second major release in the 7.4 release cycle.  Although released later than  hoped, Liferay Portal 7.4 CE GA2 continues following the rolling release cycle announced last year for 7.3.  Liferay Portal 7.4 CE GA2 contains many exciting new features across almost every aspect of the platform with many new features being based on feedback received from our community. 

Please see below for instructions on getting started as well as a comprehensive list of all of the great new features found in the release.

Download options

Liferay Portal and Liferay Commerce share the same Bundle and Docker image.  To get started using either Liferay Portal or Liferay Commerce, choose the best download option suited for your environment below.

Docker image

To use Liferay Portal 7.4 CE GA2:

docker run -it -p 8080:8080 liferay/portal:7.4.1-ga2

For more information on using the official Liferay docker image see the liferay/portal repo on Docker Hub.

Bundles and other download options

If you are used to binary releases, you can find the Liferay Portal 7.4 CE GA2 and Liferay Commerce 4.0  release on the download page.  If you need additional files (for example, the source code, or dependency libraries), visit the release page.

Dependency Management

If you are developing on top of Liferay Platform, and want to update your workspace to use the dependencies from the latest version, you will just need to use a single dependency artifact. Just add the following line to your build.gradle file:

dependencies {
   compileOnly group: "com.liferay.portal", name: "release.portal.api"
}

All portal dependencies are now defined with a single declaration. When using an IDE such as Eclipse or IntelliJ all apis are immediately available in autocomplete for immediate use.  

By setting a product info key property it will be possible to update all dependencies to a new version by updating the liferay.workspace.product property in the liferay workspace projects gradle.property file:

liferay.workspace.product = portal-7.4-ga2

When using an IDE such as Eclipse or IntelliJ all apis are immediately available in autocomplete for immediate use.

Liferay Portal Features

Experience Management

Enable advanced file uploader options from item selector

LPS-130203
We’ve extended the capabilities of the item selector to help users perform some advanced operations without having to move to the admin section of documents and media. Now it is possible to create folders to organize your documents or use the file uploader to fill all the metadata information directly while creating content.

Allow using categories created in Asset Libraries from the connected sites

LPS-121460
Now content creators can use vocabularies and categories defined in an Asset Library to categorize content created within a site, allowing for centralizing the management of these vocabularies and helping reuse the same categories in different sites.

Provide a moderation system for Questions

In addition to the regular workflows already in place, we are introducing a new dedicated moderation workflow for questions. This workflow is based on contribution, allowing moderators to only review new questions/answers or comments coming from newly created users while for users with more experiences, their messages will be approved automatically. As the questions app uses message boards as backend, to enable this new workflow, admins need to go to System/site settings -> message boards. You can choose the number of contributions needed before messages are approved automatically.

Support display page templates for Categories

LPS-105049
Non-Technical users can currently add categories to the content they create. Commerce products can easily reach thousands of categories that are associated with various types of content: commerce products, blog entries, web content, etc. Creating a page for each of those categories and a navigation is a time consuming process that could lead to errors. We’ve added the ability to automatically create display pages based on categories to reduce the human errors and time to create all these pages.

Display Twitch, Vimeo, Youtube and Facebook videos

LPS-128602
Video marketing is a popular marketing strategy to increase the new acquisition of customers. This is because users generally prefer videos over static imagery and text. Document and Media has anticipated that trend by managing external urls for videos without having to have the video on Liferay. These types of videos didn’t have the adequate support to display them on a page. We now have a fragment that displays videos from popular video platforms whose urls are managed in Liferay called “External Video”.

Give flexibility to Non-technical users to visually create and style Navigation

LPS-113825
Modern menus are more and more customized with a unique combination of items mixing text, images, and collections. We have previously delivered fragment composition and drop zones and wanted to offer users the possibility to re-use these functions to create tailor made mega-menus. Currently the way to display a NavMenu can be done using the menu display fragment or the menu navigation display. But modern menus are more and more customized with a unique combination of items mixing text, images, and collections. We have previously delivered fragment composition and drop zones and would like to offer users the possibility to re-use these functions to create tailor made mega-menus. For this multiple function.

Preview a Display Page Template with a concrete content before publishing it

LPS-103821
When displaying a content multiple things can impact the final look, like the content length, the images sizes, the related collections, etc. In this case it is necessary to both be able to visually control the look and feel and the content present on a page. 

One example of this would be authoring a web content display page with a collection of related items. Being able to author the Display Page Template while previewing with concrete contents provides a much better experience to DPT users and lowers the risk of creating display pages with wrong contents.

Digital Operations

Confirmation field for text and numeric fields

LPS-125860
In several use cases, there is some critical information that needs to be confirmed by the user. In many cases when a user is creating an account for example they need to input their email and then confirm it, so there are less chances of mistakes.

The confirmation field is a new option for Text and Numeric Fields available on the form builder.

New extension point between form pages

LPS-129467
New extension point built in order to provide more flexibility in Form's customizations.

New extension point in Rule Builder Conditions

LPS-129417
New extension point built in order to provide more flexibility in Form's customizations.

Platform Improvements

Manage permissions of entities from the APIs

The APIs for headless delivery now expose the permissions applied to both collections and individual elements. It is possible to retrieve the permissions for specific roles as well as modifying the permissions applied to roles directly from the APIs.

Substitute xuggler with an alternative library

Due to the deprecation of xuggler, we substituted the support of xuggler for building previews for audio and video files. This capability is directly managed through ffmpeg from now on.

A new, type-safe global state API

LPS-122065
There is a new API for sharing and synchronizing state across apps, globally, in Liferay DXP. The @liferay/frontend-js-state-web API provides a set of functions for reading and writing global state, as well as subscribing to updates, in a type-safe manner. Under the covers, you can think of it as a global key-value store. The API is not intended to be a store for all state in an application, the guideline to “keep component state as close as possible to where it’s needed” is still valid.

Setting for exporting Asset Links or not

LPS-83011
By default, Asset Links are exported, even if no content is selected. This causes extra information to be present in the LAR that may not be necessary. With this new development Asset Links could be configured to control whether or not they are always included in the LAR. Setting this to false still results that the Asset Links are exported if they have been changed.

Export/Import configuration entries have been reorganized and clarified

LPS-126769
At the Export/Import system/instance settings there are several configuration possibilities. However, not all influences each of the Export/Import, Staging publish process and Site Templates propagation functions. There are configurations that are specific for one of these functions.

A new Staging section has been created and the configurations which affect only Staging have been moved to there.

Also, “Export/Import” was renamed to “Export/Import, Staging”. Configurations under this section affects all the Export/Import, Staging and Site Template propagation features and that was added to the description.

Documentation

All documentation for Liferay Portal and Liferay Commerce can now be found on our documentation site: learn.liferay.com.  For more information on upgrading to Liferay Portal 7.4 CE GA2 see refer to the Upgrade Overview.

Compatibility Matrix

Liferay's general policy is to test Liferay Portal and Liferay Commerce against newer major releases of operating systems, open source app servers, browsers, and open source databases (we regularly update the bundled upstream libraries to fix bugs or take advantage of new features in the open source we depend on). 

Liferay Portal and Liferay Commerce were tested extensively for use with the following Application/Database Servers: 

Application Server

  • Tomcat 9.0

  • Wildfly 17.0

Database

  • HSQLDB 2 (only for demonstration, development, and testing)

  • MySQL 5.7, 8.0

  • MariaDB 10.2, 10.4

  • PostgreSQL 12.x, 13.x

JDK

  • IBM J9 JDK 8

  • Oracle JDK 8

  • Oracle JDK 11

  • All Java Technical Compatibility Kit (TCK) compliant builds of Java 11 and Java 8

Search

  • Elasticsearch Version(s) 7.9.x-7.13.x

Source Code

Source is available as a zip archive on the release page, or on its home on GitHub. If you're interested in contributing, take a look at our contribution page.

Bug Reporting

If you believe you have encountered a bug in the new release you can report your issue by following the bug reporting instructions.

Getting Support

Support is provided by our awesome community. Please visit helping a developer page for more details on how you can receive support.

Fixes and Known Issues

Blogs

Hey guys,

We have some ReactJS portlets which are generated with the 'generator-liferay-js' and the portlets have custom configurations. In Liferay 7.3.7-GA8 the configurations are saved without any problems. But, in Liferay 7.4.1 the configurations could not be perstisted. Existing configurations could be loaded. We use the latest version of the 'generator-liferay-js'. Also we use version '2.26.0' of the 'liferay-npm-bundler' and 'liferay-npm-build-support'.

Is there any migration guide or workaround?

Note: If we generate a new 'testing-like' portlet by the 'generator-liferay-js' with sample code (it contains sample configuration) and deploy this portlet we are not able to save the configuration.