Ehcache 2.x is no longer officially maintained by the Java community. Moved DXP internal caching to use Ehcache 3.10.8.
This means any existing ehcache configuration xml files won't be directly compatible and will likely cause errors or unexpected behavior in the new 3.x environment. Users will need to review and rewrite these configurations according to the new 3.x schema.
Release Notes
Esta seção contém informações sobre alterações importantes em recursos e capacidades DXP prontos para uso. Para alterações significativas (Breaking Changes) ou código interno, por favor acesse este link.
The AMD Loader has been removed. Liferay DXP officially supports ESM, which is the official standardized module system for JavaScript, while AMD was a third-party solution. By adopting ESM, products align with the language's native capabilities and future direction. Modern browsers now natively support ESM, allowing for direct use without transpilation or additional loaders. This can lead to reduced bundle sizes, faster initial page loads and simplified development workflows.
Users who are using amd-loader must migrate to the Liferay.loader. See link for more details.
The "Warehouse" field has been removed from the Shipping Option's details panel.
This field was previously available as a selection field within the shipping option configuration, but it is crucial to understand that it was purely informational and did not enforce any actual warehouse restrictions or logistics.
The "Warehouse" field was identified as a source of potential confusion for administrators. Its presence, despite being purely descriptive, could lead to the incorrect assumption that it played a role in applying warehouse restrictions to a shipping option. To ensure clarity and prevent any misleading interpretations, we have decided to remove this field entirely.
Important Note for Administrators: If you used this field for metadata, this information will no longer be visible. We strongly recommend transferring any critical metadata to an alternative location before upgrading to avoid loss. This change does not impact actual warehouse configurations or shipping logic.
This portal-ext property was to Instance/System settings so that the property could be controlled during runtime. Users will need to reconfigure portal if they are currently using this property.
See https://github.com/liferay/liferay-portal/commit/0b2ee06d7ee20972bc8ebd84e2c1c10fb9a41763
What changed?
With the introduction of customizable publication-level permissions, all permissions, including publishing to production, can be changed by an admin or a user with the appropriate "Manage Permissions" capability.
Why was this change made?
Previously, Owners were automatically given the ability to publish content to production, which led to unintentional production changes, especially in environments using Sandbox mode or implementing stricter governance policies. This behavior was inconsistent with customer expectations and Liferay’s broader permission model.
Who is affected?
How should I update my features or implementation?
No need for Updates. You may want to use the new "Permissions" on Publication Settings section to "Edit Permissions" if needed.
What changed?
A new warning message now appears when "Sandbox Only" mode is enabled but publication Owners retain permission to publish. This does not change the behavior of Sandbox mode but introduces a new UI-level validation to prevent unwanted changes.
Why was this change made?
This message prompts admins to review permission settings and avoid potential production changes made in error. The goal is to support secure sandbox and prevent publishing mistakes by making permissions more transparent.
Who is affected?
Publication users with enough access to configure Publications and enable Sandbox mode.
How should I update my features or implementation?
No need for Updates. When enabling Sandbox Only mode, look for the new warning message and use the "Edit Permissions" option to review Owner permissions.
What changed?
Admins can now fully customize the permissions for the "Owner" and other roles in Publications. This includes the ability to revoke critical actions such as "Publish on Production." Previously, users who created a publication were always granted full permissions by default, including publishing rights.
Why was this change made?
This change was introduced to address a gap in the permission model that could unintentionally allow users to publish content to production—even when Sandbox mode was enabled. By enabling permission customization, we close this loophole, giving administrators better governance over content workflows. The new behavior improves system security and reduces the risk of misconfigurations, especially in environments where publishing control is critical.
Who is affected?
All publication users are affected, but the changes are focused on Admins and Publication’ Owners
How should I update my features or implementation?
No need for updates. When reviewing the permissions assigned to the "Owner" role in each publication be sure to use the new "Edit Permissions" modal.
What changed?
Users can filter Navigation Menus by creation or modification date.
API’s now allow retrieving navigation menus by External Reference Code, rather than only by internal IDs.
Why was this change made?
This change improves the reliability and usability of cross-site migration tools, enhances content governance with complete permission handling, and introduces stable referencing via ERCs.
Who is affected?
Developers and Site administrators requesting Navigation Menu’s via Api’s.
How should I update my features or implementation?
No changes are needed. Users may want to use External Reference Code when referencing navigation menus.
The Java EE libraries are no longer in active development. DXP has moved to the modern and evolving enterprise Java platform, Jakarta EE 10. With the migration of the system to Jakarta EE, any Java EE libraries (javax.*) are no longer compatible and must be replaced with the Jakarta EE 10 (jakarta.*) updated versions. This also breaks any 3rd party libraries that rely on Java EE packages. Libraries must be updated to a Jakarta-compatible version.
This affects any users with custom code deployed to the Liferay DXP JVM. Client Extensions are not affected since they run in an external process.
With the migration of the system to Jakarta EE, the following deprecated application servers are no longer supported:
Apache Tomcat 9.0.x
JBoss EAP 7.4
Wildfly 26.1
Weblogic 14c
Users must migrate to a Jakarta EE compatible application server:
Apache Tomcat 10.1.x
JBoss EAP 8.0
Wildfly 30
(Weblogic 15 has not been released, but we are monitoring its availability and plan to add support in a future DXP release).
This change gives users access to actively maintained application servers that leverage the modern Java enterprise ecosystem.
PortletMVC4Spring has migrated to a new version based on Spring 6.0 and Jakarta EE. Users must migrated their existing PortletMVC4Spring projects to version 6.x
The previous versions of PortletMVC4Spring were deprecated due to dependency on Java EE and will no longer work with 2025.Q3 release.
The current version of Liferay Faces was deprecated due to dependency on Java EE and will no longer work with 2025.Q3 release.
However, Liferay is still preparing a new version of the Liferay Faces, based on Jakarta EE 10 and Portlet 4.0, scheduled for release later this year. Since the dependencies in DXP are already migrated, it is expected that the new Faces release will be compatible with 2025.Q3
Until now, when we had 2 ItemSelectorViews with the same name, only one of them was taken into account when rendering. This is more noticeable now with the CMS where we have object definitions like Blogs. In order to allow the users to select all the object definitions and legacy entities, now they appear duplicated when they have the same name.
We recently updated our tracking logic within documents, replacing the previewed event with a new event: impressionMade. To align with this change, we also updated our current API to include a new metric — impressionMadeMetric — which consolidates impressions by summing both the new impressionMade events and the legacy previewed events.
What changed?
The Display tab in the Review Changes screen now renders Display Page Templates and content that uses those templates (e.g., Web Content Articles, Blog Entries). Previously, these were not previewable — the Display tab was either empty or disabled for such content.
Why was this change made?
This change allows content reviewers to see the real end-user layout before publication. It significantly improves quality assurance by reducing publishing errors and increases confidence that the final layout will match expectations — especially for structured content and enterprise use cases (e.g., FHLBNY). This change improves usability and eliminates a gap in the review process that could result in visual inconsistencies post-publication.
How should I update my features or implementation?
No changes are needed.
What changed?
The Data tab in the Review Changes screen for Web Content Articles now displays all editable fields, including those created via custom structures. It also shows field labels and values exactly as defined by content creators.
Why was this change made?
Previously, only a subset of fields was shown, which often led to missed content changes during the review process. This update makes it easier to catch all modifications, especially in highly customized structures — enhancing accuracy and trust in the publishing process.
How should I update my features or implementation?
No changes are needed.
What Changed?
The Configuration Headless API now exposes and manages site-scoped configurations that were previously unavailable through export/import operations. During import, existing configurations for a site are now overridden with the incoming configuration data based on groupId scope matching.
Why Was This Change Made?
This change ensures that site migrations are more complete and consistent, including configuration data that was previously missing.
How should I update my features or implementation?
No changes are needed.
The results of a search haven’t to be shown the content of a fragment is within a collection display and is not indexed.
The change was already done for text editable, since the button fragment have to allow text only, and it was forgotten for the link editable.
The system-wide Mail Settings for DXP were migrated to use the standard system configuration framework.
The system options in Server Administration > Mail were moved to System Settings > Email > Virtual Instance Scope > Mail Settings
The existing settings from previous releases will be automatically migrated during the database upgrade process.
The following portal properties were removed since they are now defined by configuration properties:
LIST OF PROPERTIES
Following standard configuration patterns, Instance Settings > Email > Mail Settings will have default values inherited from the System Settings. The administrator for Portal Instances can now view the default values, override, or reset to default.
Please refer to Configuring Mail - Liferay Official Documentation for additional details.
The Object Inheritance feature has been updated to support more flexible scenarios, which introduces changes to the previous behavior:
Child definitions can now be associated with multiple parent definitions.
Previously, a child could only inherit from a single parent.Child entries can now exist without a parent (standalone entries).
Before this change, every child entry was required to belong to a parent.The relationship field is no longer mandatory at the object-definition level.
Previously, the relationship field was always required when inheritance was enabled.
Now, it becomes mandatory only when the entry is created in the context of a parent.Permission and configuration inheritance now depends on whether the child entry has a parent.
Standalone entries no longer inherit permissions or configuration from a root object.
At the LPD-46627: Enhancing SAML to be able to Sync User GroupsClosed story we modified the SAML userGroups membership management according to the portal’s standard way. With that we introduced a namespace for the attribute which seems causing inconveniences to customers, described in the LPD-66611: userGroups Attribute Name Changed to membership:userGroups, Breaking Liferay IdP IntegrationsClosed bug ticket.
When users have an object entry related to another system object entry, users now need the VIEW resource permission of the related entry in order to add the object entry.
This change was made to enforce data integrity standards across DXP covering potential security breaches our users could encounter. This will affect all object admins modeling object definitions related to the following asset types
Accounts
Organizations
Picklists
Postal Addresses
Roles
When object entries are related to an asset in the aforementioned list, users must now have the VIEW resource permission on the related asset in order to ADD the object entry. This also applies to users who are trying to import an object entry with a related asset from the list.
The official AWS SDK for Java 1.x went End-of-Life on 12/31/2025. The AWS SDK for Java 2.0 is the actively maintained solution for connecting to AWS with our Java platform. We have migrated our Amazon AWS S3 store connector to use SDK for Java version 2.0.
No new configuration keys added for AWS SDK v2 and Liferay still uses a single S3 configuration for both IBM S3 store and AWS S3 store. |
In Previous releases, legacy data and module cleanup actions were triggered from configurations in System Settings > Upgrades > Data Cleanup (or Data Removal). These actions are important to improve performance, and improve long term system stability, and lighten the load during a DXP upgrade. We have brought some additional clarity and visibility to these system maintenance actions by moving them to Server Administration.
|
Based on feedback from our users, we have made some changes to the default behavior of the Database Upgrade Tool to improve usability and performance of the upgrade process.
|
Blade 8.0 was released to account for the new AI Rules Files. This version of Blade will generate Liferay Workspaces that are not compatible with running Gradle tasks using Java 8. If users need to use Java 8 to run Gradle tasks, they will need to downgrade their version of the Workspace Gradle plugin to version 14.0.1 or below in the generated Workspace's settings.gradle file.
The following features will be removed in the upcoming Liferay Developer Studio (LDS) release:
Why is this happening? What this means for our users?
Note: Developers still requiring these features can remain on their current version of LDS until they have completed their code migration or AlloyUI related tasks. |
At the end of January we have detected that Gemini rejected our requests. We found out that the way to solve it is by migrating SSE to StreamableHTTP transport because SSE is already deprecated. So SSE is no longer supported by the MCP Server.
As it was communicated in 2025, Elasticsearch 7 has reached end-of-life on Jan 15, 2026 and is no longer available as a supported search engine for Liferay DXP. 2026.Q1 ships with a native Elasticsearch 8 connector as the default, bundled integration allowing to operate Liferay with Elasticsearch 8.19.
Deployments currently operating Liferay DXP with Elasticsearch 7 have to upgrade their Elastic stack to Elasticsearch 8.19 before upgrading Liferay DXP to 2026.Q1. Learn more under the Native Elasticsearch 8 entry in this Release Notes.
|
What changed?The Edit and Edit in P1 actions in the Publications review screen now redirect users to the appropriate editing experience, depending on the page type:
Previously, users were often redirected to configuration screens even when they needed to edit layout or content. Why was this change made?Reviewers frequently need to make small fixes while reviewing changes. Sending users to the wrong screen slowed down reviews and increased frustration. This update aligns the edit action with user intent, allowing faster corrections and keeping users inside the Publications workflow. No changes are required. |
What changed: Leftover utility classes previously duplicated between portal-kernel and the Petra libraries (petra-string, petra-reflect, etc.) have been removed from portal-kernel.
Why: The duplicated classes were not adding value; removing them simplifies the codebase.
Who is affected: Developers importing these utilities directly from the old portal-kernel packages.
How to adopt: Update imports to the equivalent Petra package. This is a package name change only — no behavioral changes are required.
What changed: All findByXxx_PrevAndNext and filterFindByXxx_PrevAndNext methods have been completely removed from generated persistence classes (*Persistence, *PersistenceImpl, and *Util) for entities utilizing Service Builder 7.4+. Previously, these methods returned a 3-element array containing the previous, current, and next neighboring entities from an ordered result set.
Why: To significantly reduce codebase bloat. Within DXP, these methods generated over 600,000 lines of code but were only used in three internal places. Existing finder methods easily replicate this behavior.
Who is affected: Developers using Service Builder on 7.4 or Quarterly releases who currently rely on PrevAndNext finder methods in their custom logic.
How to migrate:
Choose one of two methods based on your dataset size:
List Lookup (Recommended): Fetch the current entity using
findByPrimaryKey, then retrieve the full matching list using standardfindByXxxmethods. Find the current entity's index to grab the previous (index - 1) and next (index + 1) items.DSL Queries (For large datasets): Use
dslQuerywith a limit of 1 to execute two targeted database queries — one fetching the immediate previous entry, and one fetching the immediate next entry.
As part of a major search and re-indexing performance optimization, several public search and indexing APIs have been simplified.
Custom indexer implementations extending
BaseIndexermust rename theirdoReindex(String[] ids)override todoReindexCompany(long companyId).Modules using
ModelIndexerWriterContributorwill need minor updates as helper classes (BatchIndexingActionable,ModelIndexerWriterDocumentHelper) have been removed in favor of direct use of their underlying equivalents.The Queries OSGi service has been replaced by the static
QueriesUtil, and a small number of other search API methods have had parameters removed or their types updated to reflect their actual usage
Please see full breaking changes list for details.
File system artifacts are now deleted when a company partition is removed.
Previously, removing a Virtual Instance (company) with Database Partitioning enabled only dropped the database schema, leaving behind file system artifacts such as Document Library files (data/document_library/{companyId}), search indexes, and configuration files.
Action required: If Database Partitioning is enabled, ensure any needed data is backed up before deleting a partition, as file system artifacts will no longer be recoverable after deletion.
As Liferay Developer Studio evolves, we periodically evaluate our tooling to ensure a stable and reliable platform. These specific features relied on legacy libraries that we can no longer sustainably maintain. Retiring them streamlines our underlying architecture, ensuring we can consistently deliver timely updates and improvements moving forward.
Removed Features:
Liferay Upgrade Planner: Feature to aid developers in migrating their code from older versions of Liferay to newer versions.
Liferay IDE AlloyUI : Development tooling for the AlloyUI framework.
Liferay IDE XML Search: The XPath-based search tab in the Search menu.
Several alternatives are available in order to ensure existing workflows aren't interrupted:
Liferay Upgrade Planner
The Deprecations and Breaking Changes Reference page is our source of truth for breaking changes with each Liferay release.
The upgradeSourceCode command in Blade is actively maintained and offers robust code upgrade automation to handle migrations to newer Liferay versions.
Liferay IDE AlloyUI
For AlloyUI development, the built-in features provided by the Web Tools Platform should provide similar functionality OOTB, though additional configurations may be needed to enable autocomplete and syntax highlighting for AlloyUI. Third-party plugins such as Eclipse Wild Web Developer are also available on the Eclipse Marketplace which offer robust JavaScript support.
The taglib metadata can be found here.
Liferay IDE XML Search
If users need XPath-based searching functionality for XML files, Eclipse Marketplace has additional plugins available such as Eclipse XPath Evaluation Plugin.
Developers still requiring these features can remain on their current version of LDS until they have completed their code migration or AlloyUI related tasks.
Behavioral Change / UI Removal
Versions Affected: 2026.q1.1, 2026.q1.2, 2026.q1.3
A development-stage feature related to Page Management Rules was inadvertently exposed in the UI without its corresponding Feature Flag. This may have led users to configure settings that are not yet fully supported or functional.
Starting from version 2026.q1.4, this entry point has been correctly hidden behind a Release Feature Flag. Any configurations made or errors encountered in previous subversions will no longer be accessible or supported.
Customers experiencing issues with this experimental interface must upgrade to version 2026.q1.4 or later.
When a page's Friendly URL is a numeric value matching an existing Layout ID (e.g. /12345), the import process now enforces stricter validation to prevent LayoutFriendlyURLException. Customers who relied on the previous import behavior should review their Friendly URL conventions for imported pages. Shipped in 7.4.13 DXP U146