We are pleased to announce the release of Liferay Portal 7.4 GA47 and Liferay Commerce 4.0 GA47!

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 GA47:
docker run -it -p 8080:8080 liferay/portal:7.4.3.47-ga47
For more information on using the official Liferay docker image see the liferay/portal repo on Docker Hub.
{ "actions": { "get": { "method": "GET", "href": "http://localhost:8080/o/headless-commerce-admin-catalog/v1.0/products/33013" }, "update": { "method": "PATCH", "href": "http://localhost:8080/o/headless-commerce-admin-catalog/v1.0/products/33013" }, "delete": { "method": "DELETE", "href": "http://localhost:8080/o/headless-commerce-admin-catalog/v1.0/products/33013" } }, "active": true, "catalogId": 32780, "categories": [ { "externalReferenceCode": "af85c045-73c7-9fb6-c839-08e94fb63dd1", "id": 32862, "name": "Brake System", "vocabulary": "minium" } ], "createDate": "2024-06-25T21:46:21Z", "customFields": [], "description": { "en_US": "Product designed and manufactured to accommodate OEM applications. All\nproducts are tested and inspected in an ISO-9000 compliant environment" }, "displayDate": "2023-06-25T21:46:00Z", "expando": {}, "externalReferenceCode": "MIN93015minium-full-initializer", "id": 33012, "metaDescription": { "en_US": "" }, "metaKeyword": { "en_US": "" }, "metaTitle": { "en_US": "" }, "modifiedDate": "2024-06-25T21:46:21Z", "name": { "en_US": "ABS Sensor" }, "productAccountGroupFilter": false, "productChannelFilter": true, "productId": 33013, "productStatus": 0, "productType": "simple", "productTypeI18n": "Simple", "shortDescription": { "en_US": "" }, "skuFormatted": "MIN93015", "tags": [], "thumbnail": "/o/commerce-media/accounts/-9223372036854775808/images/33036?download=false", "urls": { "en_US": "abs-sensor" }, "version": 1, "workflowStatusInfo": { "code": 0, "label": "approved", "label_i18n": "Approved" } } Bundles and other download options
If you are used to binary releases, you can find the Liferay Portal 7.4 GA47 and Liferay Commerce 4.0 GA47 release on the download page. If you need additional files (for example, the source code, or dependency libraries), visit the release page.
Hopefully, many of these attributes should look familiar and be self-explanatory. We can safely ignore quite a few of these when we create new products because they are only relevant for existing products or will be generated by Liferay automatically. And by starting with an existing product we can easily grab those values that are going to be specific to our destination system such as the Catalog Id and Category information.
The absolute minimum attributes we need to supply for a product would be:
{
"active": "true",
"catalogId": 32780,
"name": {
"en_US": "DEMO Sensor"
},
"productType": "simple"
}
Of course, this wouldn’t be a very exciting product, but it gives you a starting point to build upon.
Now getting back to our original use case, loading multiple products from an external system, we could just keep POSTing products one at a time against theDependency Managementheadless-commerce-admin-catalog/v1.0/products
For development using the Liferay Platform, update Liferay
Workspace to use the latest dependencies, by adding the following
line to the 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-ga47
When using an IDE such as Eclipse or IntelliJ all apis are
immediately available in autocomplete for immediate use.
Features
Objects
Allow users to export and import object definitions without
losing their object relationships
In order to provide a more portable framework, Liferay Objects
now supports exporting and importing objects and its relationships.
This allow users to configure their objects in a safe environment
and then moving everything to a production environment with even
less effort.
https://issues.liferay.com/browse/LPS-155914
Allow users to map a Form’s upload field to the Liferay Objects
Users now can map attachment fields from objects to upload field
on Liferay forms.
https://issues.liferay.com/browse/LPS-162658
Allow users to enable object entry integration with audit framework
Users now can configure their object entries changes to be
tracked and listed in Liferay audit framework.
https://issues.liferay.com/browse/LPS-158473
Application Security
We removed the Session ID field from the audit information of
the logs
Session IDs identified as not useful in logs and can be removed.
The need was identified by the LXC project team.
https://issues.liferay.com/browse/LPS-140258
We added the user’s email address to the audit info in the log
I has
become apparent that in order to cross reference Liferay and other
logs for tracing user activities, the user’s portal login (screenName,
emailAddress or userId, whichever is configured) needs to be added to
the AuditLogContext which can then be configured to show in the log.
The
need was identified by the LXC project team.
https://issues.liferay.com/browse/LPS-155728
New option to set the default Administrator password without
using the default.admin.password property
As shipping a product with a default Administrator password goes
against OWASP Top Ten we want to change that behavior with changing
the default value of that property empty. It will be used by
administrators to be able to set the password they will want to use.
https://issues.liferay.com/browse/LPS-150388
Configure a mapping among user entity related fields and OpenID
Connect claims as an Instance Administrator
This feature allows admin to configure a custom mapping from
user attribute to userInfo claim.
https://issues.liferay.com/browse/LPS-162055
Staging
This
optimization feature can be turned off/on by “Infrastructure” → “Site
Templates” → ”Cancel site template propagation import tasks”
configuration value.
The
default value is true. The feature can be disabled, and the reason for
this is that in certain portal usage patterns it can prevent the
actual propagation from happening for a longer time. When the pages
are viewed too frequently and the template is changed too often, it
can lead to a situation when all background tasks are cancelled, since
there’s always a newer version of the template available in a newly
queued import task.
https://issues.liferay.com/browse/LPS-150602
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 GA47 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 7.4 GA47 and Liferay Commerce 4.0 GA47 were
tested extensively for use with the following Application/Database Servers:
Application Server
-
Tomcat 9.0
-
Wildfly 18.0,
23.0
Database
-
MySQL 5.7, 8.0
-
MariaDB 10.2,
10.4, 10.6
-
PostgreSQL 12.x, 13.x,
14.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 Engine
Compatibility Matrix
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


