Liferay DXP 2026.Q1 Breaking Changes
Breaking changes break or significantly alter existing functionality or code structure. Here are all of the breaking changes for Liferay DXP 2026.Q1. As the product changes and improves, we try our best to minimize these disruptions, but sometimes they are unavoidable.
Changes in Liferay DXP
Here is a list of changes that break or significantly alter existing functionality within Liferay.
| Breaking Changes | Description | References |
|---|---|---|
| AWS S3 Store: NTLM Proxy | Due to the AWS SDK upgrade to 2.0, NTLM proxy authentication no longer works to connect to AWS, because the ntlmProxyDomain and ntlmProxyWorkstation keys are no longer used. Either use standard (username/password) authentication, or switch to another proxy solution. | LPD-58512 |
| AWS S3 Store: Custom Signer Overrides | Due to the AWS SDK upgrade to 2.0, the signer override behavior has changed. If you rely on signer override for compatibility with older S3-compatible devices, you must verify your compatibility with AWS SDK 2.0’s default signing behavior. | LPD-58512 |
| AWS S3 Store: Explicit HTTP Protocols | Due to the AWS SDK upgrade to 2.0, the SDK now determines your connection protocol based on your endpoint configuration. If you were forcing HTTP (non-HTTPS) connections via connectionProtocol, this setting is now ignored. | LPD-58512 |
| AWS SDK Version Upgrade | The AWS SDK for Java 2.0 is now the actively maintained solution for connection Liferay to AWS. Liferay’s Amazon AWS S3 store connector has migrated to using this version. | LPD-58512 |
| Blade Version 8.0 | Blade 8.0 is released, adding support for new AI tools. This version is not compatible with Gradle tasks using Java 8. If you require Java 8 to run Gradle tasks, you must downgrade your workspace Gradle plugin to version 14.0.1 or lower, in your workspace’s settings.gradle file. | LPD-78046 |
| Database Upgrade Tool: Batch Insert Configurations | To improve upgrade performance, database connections are now automatically supplied with batch input optimization arguments. User-defined arguments are still preserved. These arguments are reWriteBatchedInserts=true for PostgreSQL, rewriteBatchedStatements=true for MySQL/MariaDB, and useBulkCopyForBatchInsert=true for SQL Server. | LPD-58512 |
| Database Upgrade Tool: Configuration Files | The database upgrade tool now reads all configurations from portal-upgrade-ext.properties, consolidating them into one file. The portal-upgrade-database.properties file is now deprecated and ignored. | LPD-58512 |
| Database Upgrade Tool: Database Configuration | The database upgrade tool now reads your database configuration from portal-ext.properties directly, instead of requiring re-entry. You can still override this value via portal-upgrade-ext.properties. | LPD-59502 |
| Database Upgrade Tool: Default App Server Paths | The default application server directory paths shown in the template in app-server.properties are updated to use explicit path notation (e.g., ./bin instead of /bin). This change reduces ambiguity about these paths. | LPD-59502 |
| Database Upgrade Tool: Default Database | The database upgrade tool now uses PostgreSQL as its default database. PostgreSQL is now widely adopted and the recommended database for Liferay DXP. You can still choose other supported databases by entering a different value at the prompt. | LPD-59502 |
| Database Upgrade Tool: Default Heap Memory | The database upgrade tool’s default max heap memory is increased from 2048 MB to 4096 MB. This improves upgrade stability because the previous default was insufficient for large upgrades. You can still adjust the tool’s max memory via the --jvm-opts argument. | LPD-59502 |
| Database Upgrade Tool: Default JVM Arguments | Some JVM arguments are now supplied with default values instead of enforcing explicit entry. Unless otherwise specified, it now uses -Dfile.encoding=UTF8, -Duser.country=US, -Duser.language=en, -Duser.timezone=GMT, and -Xmx4096m. | LPD-59502 |
| Database Upgrade Tool: Input Validation | The interactive upgrade tool setup now validates multiple fields to catch potential problems before the upgrade starts. It validates directory paths, as well as the database hostname and port (for valid values that can be resolved via the DNS). | LPD-59502 |
| Data Cleanup and Removal | Data and module cleanup actions are now executed manually on-demand, via *Server Administration → Resources → System Cleanup Actions. Previously, these automatically ran during Liferay DXP upgrades, from configurations in System Settings → Upgrades → Data Cleanup/Data Removal. Those configurations are removed in favor of the manual experience in Server Administration. | LPD-62053 |
| Editing Pages During Publication Review | The Edit and Edit in P1 actions in the Publications review screen now redirect to the appropriate editing experience depending on the page type: the Page Builder interface for content pages, the page editing interface for widget/portlet pages, the template editor for page templates, and a configuration screen for non-content pages (i.e., a panel, a URL, a page set, an embedded page, or a link to a page). This change smooths out the experience of making small changes during review. | LPD-68255 |
| Elasticsearch 7 | Elasticsearch 7 has reached its end-of-life, and it is no longer a supported search engine for Liferay. Liferay DXP 2026.Q1 ships with a native Elasticsearch 8 connector as the default bundled integration, so you can continue to use Liferay with Elasticsearch 8.19. If you are still using Elasticsearch 7, you must upgrade your Elastic stack to 8.19 before upgrading Liferay to 2026.Q1. | LPD-66887 |
| Liferay Developer Studio: Liferay IDE AlloyUI | In the upcoming LDS release, development tooling for the AlloyUI framework will be removed. You can use the Web Tools Platform to provide similar functionality, though you must configure it to enable auto-complete and syntax highlighting for AlloyUI. You can also use third-party plugins on the Eclipse Marketplace with robust JavaScript support, using the tag metadata here. If needed, you can still keep your current LDS version until you complete your ongoing AlloyUI-related tasks. | LPD-74745 |
| Liferay Developer Studio: Liferay Upgrade Planner | In the upcoming LDS release, the Liferay Upgrade Planner (for migrating cold from older versions of Liferay) will be removed. Instead, see the reference on Liferay Learn for breaking changes and deprecations, and use the upgradeSourceCode Blade command to help automate code migrations. If needed, you can still keep your current LDS version until you complete your ongoing code migration tasks. | LPD-74745 |
| Liferay Developer Studio: XML Search | In the upcoming LDS release, the XPath-based search tab in the Search menu will be removed. If you need XPath-based search functionality for XML files, you can find third-party plugins on the Eclipse Marketplace. | LPD-74745 |
| MCP Server SSE Transport | SSE is deprecated, so SSE transport is no longer supported for MCP servers. MCP server configurations now use StreamableHTTTP instead. | LPD-78158 |
| Site Template Propagation | Site template propagation is no longer available. If you make changes to your site template, you must manually propagate the changes to sites based on it. | LPD-15134 |
| Tomcat Directory Name | The tomcat directory’s name in app-server.properties is changed to tomcat (removing the version number). This reduces the need to adjust properties during DXP upgrades. | LPD-59502 |
Changes in Module Source
service.xml
modules/apps/export-import/export-import-report-service/service.xml
- Date: Nov. 4, 2025
- Ticket: LPD-68621
- What changed: The
scopeandscopeKeycolumns are removed. - Reason: This change removes redundant information. The group ID is already saved, so these columns were redundant.
ExportImportReportEntryLocalService.java
modules/apps/export-import/export-import-report-api/src/main/java/com/liferay/exportimport/report/service/ExportImportReportEntryLocalService.java
- Date: Nov. 4, 2025
- Ticket: LPD-68621
- What changed: The
addEmptyExportImportReportyEntryandaddErrorExportImportReportEntrymethods no longer haveString scopeorString scopeKeyparameters. - Reason: The corresponding fields for these parameters no longer exist.
rest-openapi.yaml
modules/apps/headless/headless-admin-site/headless-admin-site-impl/rest-openapi.yaml
- Date: Nov. 4, 2025
- Ticket: LPD-69174
- What changed: New schemas are added to manage the model success form container submission result types.
- Reason: This change enforces the distinction between different submission types for form containers.
SystemFDSEntry.java
modules/apps/frontend-data-set/frontend-data-set-api/src/main/java/com/liferay/frontend/data/set/SystemFDSEntry.java
- Date: Nov. 5, 2025
- Ticket: LPD-65557
- What changed: The new
getAdditionalAPIURLParameters(HttpServletRequest)method is added. Additionally, thegetAdditionalAPIURLParametersmethod is removed. - Reason: System data sets must be able to calculate additional API URL parameters as needed.
CommerceInventoryWarehouseItemLocalServiceImpl.java
modules/apps/commerce/commerce-inventory-service/src/main/java/com/liferay/commerce/inventory/service/impl/CommerceInventoryWarehouseItemLocalServiceImpl.java
- Date: Nov. 10, 2025
- Ticket: LPD-70087
- What changed: The
addCommerceInventoryWarehouseItemoverloaded methods have a newBigDecimalparameter,reservedQuantity. Additionally, theupdateCommerceInventoryWarehouseItem(long, long, BigDecimal, BigDecimal, long)method is removed and replaced withupdateCommerceInventoryWarehouseItem(long, long, BigDecimal, BigDecimal, String, long), and theupdateCommerceInventoryWarehouseItem(long, long, long, BigDecimal, String)method is removed and replaced withupdateCommerceInventoryWarehouseItem(long user, long, BigDecimal, BigDecimal, String, long). - Reason: This change is necessary to manage the reserved quantity for Commerce inventory warehouse items. The method removals consolidate the code for updating and managing the reserved quantities.
CommerceInventoryWarehouseItemServiceImpl.java
modules/apps/commerce/commerce-inventory-service/src/main/java/com/liferay/commerce/inventory/service/impl/CommerceInventoryWarehouseItemServiceImpl.java
- What changed: The
addCommerceInventoryWarehouseItemoverloaded methods have a newBigDecimalparameter,reservedQuantity. Additionally, theupdateCommerceInventoryWarehouseItem(long, long, BigDecimal, BigDecimal, long)method is removed and replaced withupdateCommerceInventoryWarehouseItem(long, long, BigDecimal, BigDecimal, String, long), and theupdateCommerceInventoryWarehouseItem(long, long, long, BigDecimal, String)method is removed and replaced withupdateCommerceInventoryWarehouseItem(long user, long, BigDecimal, BigDecimal, String, long). - Reason: This change is necessary to manage the reserved quantity for Commerce inventory warehouse items. The method removals consolidate the code for updating and managing the reserved quantities.
CommerceTaxTestUtil.java
modules/apps/commerce/commerce-test-util/src/main/java/com/liferay/commerce/test/util/CommerceTaxTestUtil.java
- Date: Nov. 10, 2025
- Ticket: LPD-70028
- What changed: The
addCommerceByAddressTaxMethodmethod is renamed toaddByAddressCommerceTaxMethod. - Reason: This change enforces consistent naming standards.
ObjectEntryManagerRegistry.java
modules/apps/object/object-rest-api/src/main/java/com/liferay/object/rest/manager/v1_0/ObjectEntryManagerRegistry.java
- Date: Nov. 11, 2025
- Ticket: LPD-70461
- What changed: The
getObjectEntryManagermethod now has a newcompanyIdparameter. - Reason: This change adds support for including a company ID with the storage type.
CookiesPreferenceHandlingConfiguration.java
modules/apps/cookies/cookies-api/src/main/java/com/liferay/cookies/configuration/CookiesPreferenceHandlingConfiguration.java
- Date: Nov. 11, 2025
- Ticket: LPD-68505
- What changed: The new
cookie-consent-renewal-period-helpandmodified-dateconfigurations are added. - Reason: This change adds support for system administrators to set user consent cookie expiration times. It also removes existing consent cookies when the configuration is changed.
rest-openapi.yaml
modules/apps/headless/headless-object/headless-object-impl/rest-openapi.yaml
- Date: Nov. 12, 2025
- Ticket: LPD-69769
- What changed: The YAML properties now use the Vulcan scope schema. New properties (e.g.,
keyandlabel) are added as nested fields. - Reason: This change enforces consistent scope schemas to use the Vulcan scope schema.
rest-openapi.yaml
modules/apps/object/object-rest-impl/rest-openapi.yaml
- Date: Nov. 12, 2025
- Ticket: LPD-69769
- What changed: The YAML properties now use the Vulcan scope schema. New properties (e.g.,
keyandlabel) are added as nested fields. - Reason: This change enforces consistent scope schemas to use the Vulcan scope schema.
TaskNodeExecutor.java
modules/apps/portal-workflow/portal-workflow-kaleo-runtime-impl/src/main/java/com/liferay/portal/workflow/kaleo/runtime/internal/node/TaskNodeExecutor.java
- Date: Nov. 13, 2025
- Ticket: LPD-70612
- What changed: The
doExecutemethod no longer uses aTaskNodeExecutorAIDelegate. - Reason: This approach is no longer needed.
FDSSerializer.java
modules/apps/frontend-data-set/frontend-data-set-api/src/main/java/com/liferay/frontend/data/set/serializer/FDSSerializer.java
- Date: Nov. 17, 2025
- Ticket: LPD-67036
- What changed: The new
serializeHideManagementBarInEmptyStatemethod is added. - Reason: This method is needed to support the flag in the Data Set Manager. It serializes a boolean flag that indicates whether the management bar should be hidden when the data set has an empty state.
SystemFDSEntry.java
modules/apps/frontend-data-set/frontend-data-set-api/src/main/java/com/liferay/frontend/data/set/SystemFDSEntry.java
- Date: Nov. 17, 2025
- Ticket: LPD-67036
- What changed: The new
getHideManagementBarInEmptyStatemethod is added. - Reason: This method is necessary to provide the flag value for system data sets.
TaskResourceImpl.java
modules/dxp/apps/ai-hub/ai-hub-rest-impl/src/main/java/com/liferay/ai/hub/rest/internal/resource/v1_0/TaskResourceImpl.java
- Date: Nov. 21, 2025
- Ticket: LPD-71117
- What changed: The
postTask(Task)method is removed, in favor of the newpostByExternalReferenceCodeTask(String, Task)method. - Reason: This changes is necessary to propagate events to the correct SSE event sink.
DigitalSalesRoomResourceImpl.java
modules/dxp/apps/digital-sales-room/headless/headless-digital-sales-room-impl/src/main/java/com/liferay/headless/digital/sales/room/internal/resource/v1_0/DigitalSalesRoomResourceImpl.java
- Date: Nov. 21, 2025
- Ticket: LPD-69509
- What changed: The
getDigitalSalesRoomsPage(String, Filter, Pagination, Sort[])method’sFilterandSort[]parameters are removed. - Reason: These parameters were not used.
service.xml
modules/apps/export-import/export-import-report-service/service.xml
- Date: Nov. 24, 2025
- Ticket: LPD-70530
- What changed: The
modelNameproperty is renamed tomodelNameLanguageKey. - Reason: This value is now used as a language key.
rest-openapi.yaml
modules/apps/object/object-rest-impl/rest-openapi.yaml
- Date: Nov. 24, 2025
- Ticket: LPD-68509
- What changed: The
/by-external-reference-code/{externalReferenceCode}/versions,/scopes/{scopeKey}/by-external-reference-code/{externalReferenceCode}/versions, and/{objectEntryId}/versionsendpoints have a newsortquery parameter. - Reason: This change adds support for sorting object entry versions (e.g., by their version number).
ExportImportVulcanBatchEngineTaskItemDelegate.java
modules/apps/export-import/export-import-api/src/main/java/com/liferay/exportimport/vulcan/batch/engine/ExportImportVulcanBatchEngineTaskItemDelegate.java
- Date: Nov. 24, 2025
- Ticket: LPD-70530
- What changed: The default implementation for the
getLabelLanguageKeymethod is removed. Additionally, thegetModelNamemethod is removed. - Reason: This interface’s implementation classes must implement
getLabelLanguageKeybecause it’s used when displaying report entries. The removed method is no longer used.
LayoutUtilityPageEntryService.java
modules/apps/layout/layout-utility-page-api/src/main/java/com/liferay/layout/utility/page/service/LayoutUtilityPageEntryService.java
- Date: Nov. 25, 2025
- Ticket: LPD-68031
- What changed: Various methods have the
masterLayoutPlidparameter replaced by amasterLayoutPageTemplateEntryERCparameter. Pass the master page template entry external reference code instead of a PLID. - Reason: This change adds support for referencing master templates in export/imports, using the new batch API.
LayoutUtilityPageEntryLocalService.java.
modules/apps/layout/layout-utility-page-api/src/main/java/com/liferay/layout/utility/page/service/LayoutUtilityPageEntryLocalService.java.
- Date: Nov. 25, 2025
- Ticket: LPD-68031
- What changed: Various methods have the
masterLayoutPlidparameter replaced by amasterLayoutPageTemplateEntryERCparameter. Pass the master page template entry external reference code instead of a PLID. - Reason: This change adds support for referencing master templates in export/imports, using the new batch API.
AssetPermissionAction.java
modules/apps/bulk/bulk-rest-api/src/main/java/com/liferay/bulk/rest/dto/v1_0/AssetPermissionAction.java
- Date: Nov. 26, 2025
- Ticket: LPD-68735
- What changed: The
AssetPermissionActionclass is removed. - Reason: This class is no longer used.
rest-openapi.yaml
modules/apps/headless/headless-admin-site/headless-admin-site-impl/rest-openapi.yaml
- Date: Nov. 26, 2025
- Ticket: LPD-65252
- What changed: Various field descriptions are changed.
- Reason: This change enforces consistency in the field descriptions.
base_resource_impl.ftl
modules/util/portal-tools-rest-builder/src/main/resources/com/liferay/portal/tools/rest/builder/dependencies/base_resource_impl.ftl
- Date: Nov. 28, 2025
- Ticket: LPD-68087
- What changed: The compatibility version is increased, as of changes adding support for lazy referencing roles via REST APIs.
- Reason: The change to
RoleExternalReferenceCodemeans thatBaseResourceImplclasses from older Liferay versions won’t be compatible.
service.xml
modules/apps/commerce/commerce-price-list-service/service.xml
- Date: Nov. 28, 2025
- Ticket: LPD-72460
- What changed: A finder is removed.
- Reason: This change enforces returning a unique value for finders for single entities.
service.xml
modules/apps/commerce/commerce-service/service.xml
- Date: Nov. 28, 2025
- Ticket: LPD-72460
- What changed: A finder is removed.
- Reason: This change enforces returning a unique value for finders for single entities.
service.xml
modules/apps/commerce/commerce-wish-list-service/service.xml
- Date: Nov. 28, 2025
- Ticket: LPD-72460
- What changed: The
CW_CPI_CPfinder now has theuniqueconstraint. - Reason: This change enforces returning a unique value for finders for single entities.
service.xml
modules/apps/commerce/commerce-product-service/service.xml
- Date: Dec. 3, 2025
- Ticket: LPD-72608
- What changed: The
C_Vfinder now returns aCPDefinitioninstead of aCollection, and it now has theuniqueconstraint. - Reason: This change enforces returning a unique value for finders for single entities.
FDSActionDropdownItem.java
modules/apps/frontend-data-set/frontend-data-set-api/src/main/java/com/liferay/frontend/data/set/model/FDSActionDropdownItem.java
- Date: Dec. 5, 2025
- Ticket: LPD-70100
- What changed: The new
FDSActionDropdownItem(List<FDSActionDropdownItem>)method is added. Additionally, thesetType(String type)method is removed. - Reason: This change is required to support the new
FDSActionDropdownItemBuilder. ThesetTypemethod is no longer used, in favor of the parent implementation.
rest-openapi.yaml
modules/apps/change-tracking/change-tracking-rest-impl/rest-openapi.yaml
- Date: Dec. 10, 2025
- Ticket: LPD-71138
- What changed: The
getCTCollectionsPageobject has a newfilterproperty. - Reason: This change is necessary to be able to filter by the
CTCollectionstatus.
LayoutStructure.java
modules/apps/layout/layout-api/src/main/java/com/liferay/layout/util/structure/LayoutStructure.java
- Date: Dec. 10, 2025
- Ticket: LPD-46921
- What changed: The
updateLayoutStructureRule(JSONArray, JSONArray, String, String, String)method has a newStringparameter,script. - Reason: This change adds support for advanced rules containing a script.
ListTypeDefinitionLocalService.java
modules/apps/list-type/list-type-api/src/main/java/com/liferay/list/type/service/ListTypeDefinitionLocalService.java
- Date: Dec. 10, 2025
- Ticket: LPD-72657
- What changed: The
addListTypeDefinitionandupdateListTypeDefinitionmethods have a newServiceContextparameter. - Reason: This change adds support for persisting model permissions.
JournalArticleService.java
modules/apps/journal/journal-api/src/main/java/com/liferay/journal/service/JournalArticleService.java
- Date: Dec. 12, 2025
- Ticket: LPD-73550
- What changed: The
getLayoutArticlesCountandgetLayoutArticlesmethods now have a new parameter forclassNameId. - Reason: This change adds support for excluding articles with default values for a given web content structure.
DataCleanup.java
modules/apps/data-cleanup/data-cleanup-api/src/main/java/com/liferay/data/cleanup/DataCleanup.java
- Date: Dec. 13, 2025
- Ticket: LPD-71333
- What changed: The new
getServletContextNamemethod is added. - Reason: This method is needed to store and retrieve the servlet context name, to check whether the module to clean up is present. Originally, this was done before creating the
DataCleanupobject, but delaying it improves server startup performance.
rest-openapi.yaml
modules/apps/headless/headless-admin-site/headless-admin-site-impl/rest-openapi.yaml
- Date: Dec. 13, 2026
- Ticket: LPD-72250
- What changed: The
FragmentStyleobject is removed, instead included in theFragmentViewport.FragmentViewportStylearray. - Reason: The distinction between
FragmentStyleandFragmentViewportStyleis unnecessary, because the desktop viewport is considered the same as any other viewport.
CPDefinitionFinderImpl.java
modules/apps/commerce/commerce-product-service/src/main/java/com/liferay/commerce/product/service/persistence/impl/CPDefinitionFinderImpl.java
- Date: Dec. 16, 2025
- Ticket: LPD-74231
- What changed: The
CPDefinitionFinderImplclass is removed. Instead, useCPDefinitionLocalService. - Reason: The implementation logic for finding an expired
CPDefinitionis refactored intoCPDefinitionLocalServiceImpland now uses a DSL query. The old, custom SQL implementation is no longer needed. The other methods were no longer used, so they have no direct replacement.
frontend-data-set.tld
modules/apps/frontend-data-set/frontend-data-set-taglib/src/main/resources/META-INF/frontend-data-set.tld
- Date: Dec. 17, 2025
- Ticket: LPD-9465
- What changed: The
customViewsEnabledattribute is replaced by thesnapshotsEnabledattribute. - Reason: This change prevents confusion by clarifying this feature’s name, because custom and system data sets already exist.
S3Store.java
modules/apps/portal-store/portal-store-s3/src/main/java/com/liferay/portal/store/s3/S3Store.java
- Date: Dec. 17, 2025
- Ticket: LPD-72206
- What changed: The proxy settings configuration logic no longer sets
ntlmProxyDomainorntlmProxyWorkstation. Additionally, theactivatemethod’s logic no longer configures a signer override or connection protocol. The default and recommended signer type to use is now SigV4 (i.e., AwsV4HttpSigner). When the S3 store is configured to use an endpoint via thes3Endpointconfiguration property, use thes3Endpointvalue to specify the connection protocol. - Reason: With AWS SDK v2, the S3Store uses an asynchronous HTTP client that doesn’t support NTLM configuration. Additionally, NTLM is considered a deprecated authentication protocol and will be removed (see LPD-9462). Signers supported in AWS SDK v1 are no longer supported in v2; AWS considers overriding the signer as an advanced configuration that should only be done if necessary. With AWS SDK v2, there is no direct equivalent for the ‘connectionProtocol’ property.
ExpandoBridgeIndexer.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/expando/ExpandoBridgeIndexer.java
- Date: Dec. 18, 2025
- Ticket: LPD-74740
- What changed: The
encodeFieldNameandgetNumericSuffixmethods are moved intoExpandoBridgeUtil. Additionally, theaddAttributesmethod now has aBaseModelparameter. - Reason: This change enforces consistent code organization standards. The moved methods are utility methods that aren’t tied to the
ExpandoBridgeIndexer’s state.
EntityFieldsUtil.java
modules/apps/headless/headless-common-spi/src/main/java/com/liferay/headless/common/spi/odata/entity/EntityFieldsUtil.java
- Date: Dec. 18, 2025
- Ticket: LPD-74740
- What changed: The
getEntityFieldsmethod’sExpandoBridgeIndexerparameter is removed. - Reason: This parameter is no longer used.
ExpandoBridgeRetriever.java
modules/apps/portal-search/portal-search-spi/src/main/java/com/liferay/portal/search/spi/model/index/contributor/ExpandoBridgeRetriever.java
- Date: Dec. 18, 2025
- Ticket: LPD-74740
- What changed: The
ExpandoBridgeRetrieverclass is removed. - Reason: The adaptation logic from
DLFileEntrytoDLFileVersionis already handled byDLFileEntryImpl#getExpandoBridge, so this interface is no longer needed.
DLFileEntryExpandoBridgeRetriever.java
modules/apps/document-library/document-library-service/src/main/java/com/liferay/document/library/internal/search/DLFileEntryExpandoBridgeRetriever.java
- Date: Dec. 18, 2025
- Ticket: LPD-74740
- What changed: The
DLFileEntryExpandoBridgeRetrieverclass is removed. - Reason: The adaptation logic from
DLFileEntrytoDLFileVersionis already handled byDLFileEntryImpl#getExpandoBridge, so this class is no longer needed.
ObjectFieldSettingUtil.java
/modules/apps/object/object-api/src/main/java/com/liferay/object/field/setting/util/ObjectFieldSettingUtil.java
- Date: Dec. 18, 2025
- Ticket: LPD-74685
- What changed: The
getDefaultValuesmethod now has a newDDMExpressionFactoryparameter. - Reason: This change enables default value evaluation during page rendering.
RootProjectConfigurator.java
modules/sdk/gradle-plugins-workspace/src/main/java/com/liferay/gradle/plugins/workspace/configurator/RootProjectConfigurator.java
- Date: Dec. 23, 2025
- Ticket: LPD-74428
- What changed: The
FORMAT_SOURCE_UPGRADE_TASK_NAMEvalue is renamed toUPGRADE_CODE_TASK_NAME. - Reason: This change reflects the task’s name changing from
formatSourceUpgradetoupgradeCode.
LayoutStructureRulesHelper.java
modules/apps/layout/layout-api/src/main/java/com/liferay/layout/helper/structure/LayoutStructureRulesHelper.java
- Date: Dec. 23, 2025
- Ticket: LPD-74698
- What changed: The
processLayoutStructureRules(long, LayoutStructure, PermissionChecker, long[])has newInfoItemFIeldValuesandLocaleparameters. - Reason: This change is needed to support advanced rules.
SystemFDSEntry.java
modules/apps/frontend-data-set/frontend-data-set-api/src/main/java/com/liferay/frontend/data/set/SystemFDSEntry.java
- Date: Dec. 23, 2025
- Ticket: LPD-74816
- What changed: The new
getSnapshotsEnabledmethod is added. - Reason: This method is needed to retrieve the serialized value of the
snapshotsEnabledproperty.
DLURLHelper.java
modules/apps/document-library/document-library-api/src/main/java/com/liferay/document/library/util/DLURLHelper.java
- Date: Jan. 12, 2026
- Ticket: LPD-72635
- What changed: The new
getPreviewURL(String fileEntryFriendlyURL, String groupFriendlyURL)method is added. - Reason: This method is needed to calculate preview URLs for files using a the friendly URL of the file entry and group. Imports are still able to complete even if the file entry doesn’t exist.
ExportImportReportEntryLocalService.java
modules/apps/export-import/export-import-report-api/src/main/java/com/liferay/exportimport/report/service/ExportImportReportEntryLocalService.java
- Date: Jan. 12, 2026
- Ticket: LPD-72635
- What changed: The
addEmptyExportImportReportyEntryandaddErrorExportImportReportEntrymethods no longer have anint originparameter. - Reason: This change simplifies calling these methods.
TaskResource.java
modules/dxp/apps/ai-hub/ai-hub-rest-api/src/main/java/com/liferay/ai/hub/rest/resource/v1_0/TaskResource.java
- Date: Jan. 16, 2026
- Ticket: LPD-69638
- What changed: The
postByExternalReferenceCodeTask(String, Task)method has itsString(external reference code) parameter removed. - Reason: This change enforces code clarity. The parameter passed to this method was an SSE event sink key, not an external reference code.
Task.java
modules/dxp/apps/ai-hub/ai-hub-rest-api/src/main/java/com/liferay/ai/hub/rest/dto/v1_0/Task.java
- Date: Jan. 16, 2026
- Ticket: LPD-69638
- What changed: The new
sseEventSinkKeyfield is added, along with corresponding getter and setter methods. - Reason: This change was made to pass the SSE event sink key in the request body, because it’s not in the request parameter anymore.
DefaultObjectEntryManager.java
modules/apps/object/object-rest-api/src/main/java/com/liferay/object/rest/manager/v1_0/DefaultObjectEntryManager.java
- Date: Jan. 16, 2026
- Ticket: LPD-75084
- What changed: The
expireObjectEntry(DTOConverterContext, long)method is removed. Its logic is refactored intoexpireObjectEntry(DTOConverterContext, String, ObjectDefinition, String). - Reason: This change enforces exposing object entry external reference codes instead of their IDs.
ObjectEntryResource.java
modules/apps/object/object-rest-api/src/main/java/com/liferay/object/rest/resource/v1_0/ObjectEntryResource.java
- Date: Jan. 16, 2026
- Ticket: LPD-75084
- What changed: The
postObjectEntryExpire(Long objectEntryId)method is removed, in favor ofpostByExternalReferenceCodeExpire(String externalReferenceCode). - Reason: This change enforces exposing object entry external reference codes instead of their IDs.
TaxonomyVocabularyResourceImpl.java
modules/apps/bulk/bulk-rest-impl/src/main/java/com/liferay/bulk/rest/internal/resource/v1_0/TaxonomyVocabularyResourceImpl.java
- Date: Jan. 16, 2026
- Ticket: LPD-69236
- What changed: The
postSiteTaxonomyVocabulariesCommonPageObjectmethod now hasBulkActionandDocumentBulkSelectionparameters. - Reason: This change is necessary to enable editing categories with bulk actions in the CMS.
KeywordResourceImpl.java
modules/apps/bulk/bulk-rest-impl/src/main/java/com/liferay/bulk/rest/internal/resource/v1_0/KeywordResourceImpl.java
- Date: Jan. 16, 2026
- Ticket: LPD-69236
- What changed: The
postKeywordsCommonPageObjectmethod now hasBulkActionandDocumentBulkSelectionparameters. - Reason: This change is necessary to enable editing tags with bulk actions in the CMS.
rest-openapi.yaml
modules/apps/headless/headless-admin-site/headless-admin-site-impl/rest-openapi.yaml
- Date: Jan. 16, 2026
- Ticket: LPD-69119
- What changed: The
FragmentInstancePageElementDefinitionis modified to include newFormFragmentInstancePageElementDefinitionschemas. - Reason: This change is necessary to properly manage form fragment page elements.
ExportImportVulcanBatchEngineTaskItemDelegate.java
modules/apps/export-import/export-import-api/src/main/java/com/liferay/exportimport/vulcan/batch/engine/ExportImportVulcanBatchEngineTaskItemDelegate.java
- Date: Jan. 20, 2026
- Ticket: LPD-74822
- What changed: The
getSubtitleLanguageKeysmethod is removed, in favor ofgetDescription(java.util.Locale). Additionally, thegetTagLanguageKeymethod is removed, in favor ofgetTag(java.util.Locale). - Reason: The description field is now used instead of the subtitle field, because the final value is returned, not the language key. This change improves retrieving the value from frontend code.
BaseStagedModelDataHandlerTestCase.java
modules/apps/export-import/export-import-test-util/src/main/java/com/liferay/exportimport/test/util/lar/BaseStagedModelDataHandlerTestCase.java
- Date: Jan. 20, 2026
- Ticket: LPD-75526
- What changed: All
initImportmethods returningvoidare removed, and replaced byinitImportWithSafeCloseablemethods returningSafeCloseable. - Reason: A
SafeCloseableis necessary to return so that users can invoke the method to close the import (calling the zip reader’sclosemethod).
LayoutSEOEntryModel.java
modules/apps/layout/layout-seo-api/src/main/java/com/liferay/layout/seo/model/LayoutSEOEntryModel.java
- Date: Jan. 20, 2026
- Ticket: LPD-74804
- What changed: The
getOpenGraphImageFileEntryId()andsetOpenGraphImageFileEntryId()methods are removed. - Reason: This change supports better portability (using staging or LAR export/imports) by allowing lazy referencing of
SegmentsEntryvia external reference code (ERC) instead of a hard primary key.
OAuth2ProviderActionKeys.java
modules/apps/oauth2-provider/oauth2-provider-api/src/main/java/com/liferay/oauth2/provider/constants/OAuth2ProviderActionKeys.java
- Date: Jan. 22, 2026
- Ticket: LPD-67475
- What changed: Various action keys are renamed (removing
ACTION_*from the name). - Reason: This change enforces consistent naming standards, following the same pattern as
PushNotificationsActionKeys.
OAuth2ProviderConstants.java
modules/apps/oauth2-provider/oauth2-provider-api/src/main/java/com/liferay/oauth2/provider/constants/OAuth2ProviderConstants.java
- Date: Jan. 22, 2026
- Ticket: LPD-67475
- What changed: The
DYNAMIC_REGISTRATORconstant value is renamed toOAUTH2_PROVIDER_DYNAMIC_REGISTRATOR, and theEXPIRED_TOKENconstant value is renamed toOAUTH2_PROVIDER_EXPIRED_TOKEN. - Reason: This change enforces consistent naming standards. The namespace is needed for the constants in this class to follow the same pattern as in
AccessibilitySettingConstantsorAccountConstants.
DefaultFragmentEntryProcessorContext.java
modules/apps/fragment/fragment-api/src/main/java/com/liferay/fragment/processor/DefaultFragmentEntryProcessorContext.java
- Date: Jan. 23, 2026
- Ticket: LPD-76230
- What changed: The
DefaultFragmentEntryProcessorContextconstructor has new parameters forcompanyIdandscopeGroupId. - Reason: This change improves the accessibility of company and scope group information during fragment processing.
BulkableDocumentRequestTranslator.java
modules/apps/portal-search/portal-search-engine-adapter-api/src/main/java/com/liferay/portal/search/engine/adapter/document/BulkableDocumentRequestTranslator.java
- Date: Jan. 23, 2026
- Ticket: LPD-76985
- What changed: The
BulkableDocumentRequestTranslatorinterface is removed. - Reason: This interface is no longer needed. It didn’t provide any meaningful abstraction.
AccountUserRetriever.java
modules/apps/account/account-api/src/main/java/com/liferay/account/retriever/AccountUserRetriever.java
- Date: Jan. 23, 2026
- Ticket: LPD-76917
- What changed: The
getAccountUsers(long)method is removed. - Reason: This method was only used to retrieve user IDs. This change improves performance by avoiding retrieving users unnecessarily for this purpose.
TranslationManager.java
modules/apps/translation/translation-api/src/main/java/com/liferay/translation/manager/TranslationManager.java
- Date: Jan. 23, 2026
- Ticket: LPD-72778
- What changed: The new
processXLIFFTranslationmethod is added. - Reason: The new method enables processing XLIFF files and importing translations.
rest-openapi.yaml
modules/apps/headless/headless-admin-site/headless-admin-site-impl/rest-openapi.yaml
- Date: Jan. 23, 2026
- Ticket: LPD-69121
- What changed: Various
backgroumdFragmentImageproperties are renamed to a newbackgroundImageValueschema. - Reason: This change improves the schema organization.
rest-openapi.yaml
modules/apps/headless/headless-admin-site/headless-admin-site-impl/rest-openapi.yaml
- Date: Jan. 23, 2026
- Ticket: LPD-74170
- What changed: The
FragmentLinkTextValueandLinkFragmentEditableElementValueschemas are added. Additionally, theTextFragmentEditableElementValueschema has been modified to accommodateFragmentLinkTextValuebeing extracted from its definition. - Reason: This change improves the schema organization.
SseUtil.java
modules/dxp/apps/ai-hub/ai-hub-rest-api/src/main/java/com/liferay/ai/hub/rest/resource/v1_0/util/SseUtil.java
- Date: Jan. 26, 2026
- Ticket: LPD-76267
- What changed: The
setSSEmethod is removed. - Reason: This change simplifies the code.
BulkActionExecutionStatusConstants.java
modules/apps/site/site-cms-site-initializer-api/src/main/java/com/liferay/site/cms/site/initializer/constants/BulkActionExecutionStatusConstants.java
- Date: Jan. 26, 2026
- Ticket: LPD-76554
- What changed: The
BulkSelectionActionStatusConstantsclass is moved into thebulk-selection-apimodule. - Reason: This change improves the code’s reusability. The constants used in other modules should not depend on
site-cms-site-initializer-api.
DDMValueUtil.java
modules/apps/headless/headless-delivery/headless-delivery-api/src/main/java/com/liferay/headless/delivery/dto/v1_0/util/DDMValueUtil.java
- Date: Jan. 30, 2026
- Ticket: LPD-74358
- What changed: The
toDDMValuemethod now uses a JSONStringparameter instead of aContentField. - Reason: This change improves the code’s reusability.
ListObjectReferenceFactory.java
modules/apps/layout/layout-api/src/main/java/com/liferay/layout/list/retriever/ListObjectReferenceFactory.java
- Date: Feb. 2, 2026
- Ticket: LPD-77454
- What changed: The
getListObjectReference(JSONObject)method has newlongparameters (companyIdandgroupId). - Reason: The new parameters are necessary to retrieve asset list entries using external reference codes, and to include them in
JSONObjectinformation (like the item type).
ConfigurationFilterStringUtil.java
modules/apps/configuration-admin/configuration-admin-api/src/main/java/com/liferay/configuration/admin/util/ConfigurationFilterStringUtil.java
- Date: Feb. 4, 2026
- Ticket: LPD-75854
- What changed: The
getGroupScopedFilterString(Serializable, String, String)method’sString groupIdparameter is changed to aSerializable. ThegetGroupScopedFilterString(Serializable, String)andgetGroupScopedFilterString(Serializable, String, String)methods have a newSerializableparameter,companyId. Additionally, thegroupIdandsiteExternalReferenceCodeparameters are removed from more overloads ofgetGroupScopedFilterString. - Reason: This change removes the need for client code to convert values to
Stringvalues. These values are most commonly scope primary keys with aSerializabletype. The removedgroupIdandsiteExternalReferenceCodeparameters are not used when savingPORTLETconfigurations.
OAuthClientASLocalMetadataJSONException.java
modules/apps/oauth-client/oauth-client-persistence-api/src/main/java/com/liferay/oauth/client/persistence/exception/OAuthClientASLocalMetadataJSONException.java
- Date: Feb. 5, 2026
- Ticket: LPD-67473
- What changed: The
OAuthClientASLocalMetadataJSONExceptionexception class is removed. - Reason: This exception is no longer used. It’s replaced by
OAuthClientASLocalMetadataMetadataJSONException.
CommerceShippingFixedOptionRelLocalServiceImpl.java
modules/apps/commerce/commerce-shipping-engine-fixed-service/src/main/java/com/liferay/commerce/shipping/engine/fixed/service/impl/CommerceShippingFixedOptionRelLocalServiceImpl.java
- Date: Feb. 6, 2026
- Ticket: LPD-71919
- What changed: The
addCommerceShippingFixedOptionRelandupdateCommerceShippingFixedOptionRelmethods have their parameters reordered. Additionally, the deprecatedaddCommerceShippingFixedOptionRelmethod is removed. - Reason: This change enforces consistent code organization and removes unnecessary code.
CommerceShippingFixedOptionRelServiceImpl.java
modules/apps/commerce/commerce-shipping-engine-fixed-service/src/main/java/com/liferay/commerce/shipping/engine/fixed/service/impl/CommerceShippingFixedOptionRelServiceImpl.java
- Date: Feb. 6, 2026
- Ticket: LPD-71919
- What changed: The
addCommerceShippingFixedOptionRelandupdateCommerceShippingFixedOptionRelmethods have their parameters reordered. Additionally, the deprecatedaddCommerceShippingFixedOptionRelmethod is removed. - Reason: This change enforces consistent code organization and removes unnecessary code.
SegmentsExperienceModel.java
modules/apps/segments/segments-api/src/main/java/com/liferay/segments/model/SegmentsExperienceModel.java
- Date: Feb. 7, 2026
- Ticket: LPD-73850
- What changed: The
segmentsEntryIdis removed, and replaced bysegmentsEntryERCandsegmentsEntryScopeERC. - Reason: This change adds support for lazy references for segments entries, by using the external reference code instead of a primary key.
SegmentsExperience.java
modules/apps/segments/segments-api/src/main/java/com/liferay/segments/model/SegmentsExperience.java
- Date: Feb. 7, 2026
- Ticket: LPD-73850
- What changed: The
getSegmentsEntryIdandsetSegmentsEntryIdmethods are removed. - Reason: This change adds support for lazy references for segments entries, by using the external reference code instead of a primary key.
StatsResponse.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/stats/StatsResponse.java
- Date: Feb. 10, 2026
- Ticket: LPD-78663
- What changed: The
StatsResponseclass is merged intoStatsResponseImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
StatsResponseBuilder.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/stats/StatsResponseBuilder.java
- Date: Feb. 10, 2026
- Ticket: LPD-78663
- What changed: The
StatsResponseBuilderclass is merged intoStatsResponseBuilderImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
PipelineAggregationTranslator.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/pipeline/PipelineAggregationTranslator.java
- Date: Feb. 10, 2026
- Ticket: LPD-78663
- What changed: The
PipelineAggregationTranslatorinterface is removed. - Reason: The interface is no longer used, because the implementation classes are only needed within their own internal module classes.
ObjectDefinitionLocalServiceImpl.java
modules/apps/object/object-service/src/main/java/com/liferay/object/service/impl/ObjectDefinitionLocalServiceImpl.java
- Date: Feb. 10, 2026
- Ticket: LPD-77985
- What changed: The
addSystemObjectDefinitionmethod has a newbooleanparameter,enableObjectEntryHistory. - Reason: This change enables tracking modifiable system objects in CMP by setting
enableObjectEntryHistorytotrue.
ProgressBarTag.java
modules/apps/frontend-taglib/frontend-taglib-clay/src/main/java/com/liferay/frontend/taglib/clay/servlet/taglib/ProgressBarTag.java
- Date: Feb. 10, 2026
- Ticket: LPD-71688
- What changed: The tag is increased to a new major version to reflect breaking changes in Clay CSS.
- Reason: This change ensures proper accessibility and alignment of the progress bar component.
HeaderTag.java
modules/apps/commerce/commerce-frontend-taglib/src/main/java/com/liferay/commerce/frontend/taglib/servlet/taglib/HeaderTag.java
- Date: Feb. 11, 2026
- Ticket: LPD-78104
- What changed: All methods with
*Urlin the name are renamed to*URL. - Reason: This change enforces consistent naming standards.
InfoBoxTag.java
modules/apps/commerce/commerce-frontend-taglib/src/main/java/com/liferay/commerce/frontend/taglib/servlet/taglib/InfoBoxTag.java
- Date: Feb. 11, 2026
- Ticket: LPD-78104
- What changed: All methods with
*Urlin the name are renamed to*URL. - Reason: This change enforces consistent naming standards.
PanelTag.java
modules/apps/commerce/commerce-frontend-taglib/src/main/java/com/liferay/commerce/frontend/taglib/servlet/taglib/PanelTag.java
- Date: Feb. 11, 2026
- Ticket: LPD-78104
- What changed: All methods with
*Urlin the name are renamed to*URL. - Reason: This change enforces consistent naming standards.
LayoutStructureRendererConstants.java
modules/apps/layout/layout-taglib/src/main/java/com/liferay/layout/taglib/constants/LayoutStructureRendererConstants.java
- Date: Feb. 11, 2026
- Ticket: LPD-78234
- What changed: The
LAYOUT_DEFAULT_EXTERNAL_REFERENCE_CODEconstant value is removed. - Reason: This constant is no longer needed.
AggregationTranslator.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/AggregationTranslator.java
- Date: Feb. 11, 2026
- Ticket: LPD-78941
- What changed: The
AggregationTranslatorinterface is removed. - Reason: The interface is no longer used, because the implementation classes are only needed within their own internal module classes.
CircleShape.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/geolocation/CircleShape.java
- Date: Feb. 11, 2026
- Ticket: LPD-79074
- What changed: The
CircleShapeclass is merged intoCircleShapeImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
CircleShapeBuilder.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/geolocation/CircleShapeBuilder.java
- Date: Feb. 11, 2026
- Ticket: LPD-79074
- What changed: The
CircleShapeBuilderclass is merged intoCircleShapeBuilderImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
Coordinate.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/geolocation/Coordinate.java
- Date: Feb. 11, 2026
- Ticket: LPD-79074
- What changed: The
Coordinateclass is merged intoCoordinateImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
EnvelopeShape.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/geolocation/EnvelopeShape.java
- Date: Feb. 11, 2026
- Ticket: LPD-79074
- What changed: The
EnvelopeShapeclass is merged intoEnvelopeShapeImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
EnvelopeShapeBuilder.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/geolocation/EnvelopeShapeBuilder.java
- Date: Feb. 11, 2026
- Ticket: LPD-79074
- What changed: The
EnvelopeShapeBuilderclass is merged intoEnvelopeShapeBuilderImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
GeoBuilders.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/geolocation/GeoBuilders.java
- Date: Feb. 11, 2026
- Ticket: LPD-79074
- What changed: The
GeoBuildersclass is merged intoGeoBuildersImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
GeoDistance.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/geolocation/GeoDistance.java
- Date: Feb. 11, 2026
- Ticket: LPD-79074
- What changed: The
GeoDistanceclass is merged intoGeoDistanceImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
GeoLocationPoint.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/geolocation/GeoLocationPoint.java
- Date: Feb. 11, 2026
- Ticket: LPD-79074
- What changed: The
GeoLocationPointclass is merged intoGeoLocationPointImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
GeometryCollectionShape.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/geolocation/GeometryCollectionShape.java
- Date: Feb. 11, 2026
- Ticket: LPD-79074
- What changed: The
GeometryCollectionShapeclass is merged intoGeometryCollectionShapeImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
GeometryCollectionShapeBuilder.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/geolocation/GeometryCollectionShapeBuilder.java
- Date: Feb. 11, 2026
- Ticket: LPD-79074
- What changed: The
GeometryCollectionShapeBuilderclass is merged intoGeometryCollectionShapeBuilderImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
LineStringShape.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/geolocation/LineStringShape.java
- Date: Feb. 11, 2026
- Ticket: LPD-79074
- What changed: The
LineStringShapeclass is merged intoLineStringShapeImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
LineStringShapeBuilder.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/geolocation/LineStringShapeBuilder.java
- Date: Feb. 11, 2026
- Ticket: LPD-79074
- What changed: The
LineStringShapeBuilderclass is merged intoLineStringShapeBuilderImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
MultiLineStringShape.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/geolocation/MultiLineStringShape.java
- Date: Feb. 11, 2026
- Ticket: LPD-79074
- What changed: The
MultiLineStringShapeclass is merged intoMultiLineStringShapeImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
MultiLineStringShapeBuilder.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/geolocation/MultiLineStringShapeBuilder.java
- Date: Feb. 11, 2026
- Ticket: LPD-79074
- What changed: The
MultiLineStringShapeBuilderclass is merged intoMultiLineStringShapeBuilderImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
MultiPointShape.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/geolocation/MultiPointShape.java
- Date: Feb. 11, 2026
- Ticket: LPD-79074
- What changed: The
MultiPointShapeclass is merged intoMultiPointShapeImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
MultiPointShapeBuilder.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/geolocation/MultiPointShapeBuilder.java
- Date: Feb. 11, 2026
- Ticket: LPD-79074
- What changed: The
MultiPointShapeBuilderclass is merged intoMultiPointShapeBuilderImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
MultiPolygonShape.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/geolocation/MultiPolygonShape.java
- Date: Feb. 11, 2026
- Ticket: LPD-79074
- What changed: The
MultiPolygonShapeclass is merged intoMultiPolygonShapeImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
PointShape.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/geolocation/PointShape.java
- Date: Feb. 11, 2026
- Ticket: LPD-79074
- What changed: The
PointShapeclass is merged intoPointShapeImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
PointShapeBuilder.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/geolocation/PointShapeBuilder.java
- Date: Feb. 11, 2026
- Ticket: LPD-79074
- What changed: The
PointShapeBuilderclass is merged intoPointShapeBuilderImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
PolygonShape.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/geolocation/PolygonShape.java
- Date: Feb. 11, 2026
- Ticket: LPD-79074
- What changed: The
PolygonShapeclass is merged intoPolygonShapeImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
PolygonShapeBuilder.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/geolocation/PolygonShapeBuilder.java
- Date: Feb. 11, 2026
- Ticket: LPD-79074
- What changed: The
PolygonShapeBuilderclass is merged intoPolygonShapeBuilderImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
Script.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/script/Script.java
- Date: Feb. 11, 2026
- Ticket: LPD-78941
- What changed: The
Scriptclass is merged intoScriptImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
ScriptBuilder.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/script/ScriptBuilder.java
- Date: Feb. 11, 2026
- Ticket: LPD-78941
- What changed: The
ScriptBuilderclass is merged intoScriptBuilderImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
ScriptField.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/script/ScriptField.java
- Date: Feb. 11, 2026
- Ticket: LPD-78941
- What changed: The
ScriptFieldclass is merged intoScriptFieldImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
ScriptFieldBuilder.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/script/ScriptFieldBuilder.java
- Date: Feb. 11, 2026
- Ticket: LPD-78941
- What changed: The
ScriptFieldBuilderclass is merged intoScriptFieldBuilderImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
Scripts.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/script/Scripts.java
- Date: Feb. 11, 2026
- Ticket: LPD-78941
- What changed: The
Scriptsclass is merged intoScriptsImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
CookiesConfigurationProvider.java
modules/apps/cookies/cookies-api/src/main/java/com/liferay/cookies/configuration/CookiesConfigurationProvider.java
- Date: Feb. 11, 2026
- Ticket: LPD-78076
- What changed: The
updateCookiesPreferenceHandlingConfiguration)ExtendedObjectClassDefinition.Scope, long)method has a newbooleanparameter,storeConsent. Additionally, the newisCookiesPreferenceHandlingStoreConsent(ExtendedObjectClassDefinition.Scope, long)method is added. - Reason: This change adds support for the new store consent configuration option.
rest-openapi.yaml
modules/apps/headless/headless-admin-site/headless-admin-site-impl/rest-openapi.yaml
- Date: Feb 11, 2026
- Ticket: LPD-69121
- What changed: Various
backgroumdFragmentImageproperties are renamed to a newbackgroundImageValueschema. - Reason: This change improves the schema organization.
rest-openapi.yaml
modules/apps/bulk/bulk-rest-impl/rest-openapi.yaml
- Date: Feb. 12, 2026
- Ticket: LPD-75297
- What changed:
StatusBulkActionnow acceptsstatusas aStringrather than anint. - Reason: This change accounts for statuses that are not numbers.
SupervisorAgent.java
modules/dxp/apps/ai-hub/ai-hub-api/src/main/java/com/liferay/ai/hub/agent/SupervisorAgent.java
- Date: Feb. 12, 2026
- Ticket: LPD-78066
- What changed: The
AgentsFactoryclass is removed, in favor of the_createInternalAgentsmethod in `SupervisorAgentImpl. - Reason: Agent definitions now come from objects where some classes were simplified, so a factory to create a list of sub-agents is no longer needed.
StatsRequestBuilderFactory.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/legacy/stats/StatsRequestBuilderFactory.java
- Date: Feb. 13, 2026
- Ticket: LPD-79227
- What changed: The
StatsRequestBuilderFactoryclass is merged intoStatsRequestBuilderFactoryImpl. - Reason:
StatsRequestBuilderFactoryis a static utility now.
ComplexQueryBuilder.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/filter/ComplexQueryBuilder.java
- Date: Feb. 13, 2026
- Ticket: LPD-79227
- What changed: The
ComplexQueryBuilderclass is merged intoComplexQueryBuilderImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
GroupByRequestFactory.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/legacy/groupby/GroupByRequestFactory.java
- Date: Feb. 13, 2026
- Ticket: LPD-79227
- What changed: The
GroupByRequestFactoryclass is merged intoGroupByRequestFactoryImpl. - Reason:
GroupByRequestFactoryis a static utility now.
GroupByRequest.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/groupby/GroupByRequest.java
- Date: Feb. 13, 2026
- Ticket: LPD-79227
- What changed: The
GroupByRequestclass is merged intoGroupByRequestImpl. Merge GroupByRequest and GroupByRequestImpl - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
GroupByResponse.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/groupby/GroupByResponse.java
- Date: Feb. 13, 2026
- Ticket: LPD-79227
- What changed: The
GroupByResponseclass is merged intoGroupByResponseImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
GroupByRequestFactory.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/groupby/GroupByRequestFactory.java
- Date: Feb. 13, 2026
- Ticket: LPD-79227
- What changed: The
GroupByRequestFactoryclass is removed. Instead, create aGroupByRequestdirectly. - Reason: This class is no longer used.
GroupByResponseFactory.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/groupby/GroupByResponseFactory.java
- Date: Feb. 13, 2026
- Ticket: LPD-79227
- What changed: The
GroupByResponseFactoryclass is removed. Instead, create aGroupByResponsedirectly. - Reason: This class is no longer used.
IndexedFieldsFixture.java
modules/apps/portal-search/portal-search-test-util/src/main/java/com/liferay/portal/search/test/util/IndexedFieldsFixture.java
- Date: Feb. 13, 2026
- Ticket: LPD-79227
- What changed: The
DocumentBuilderFactoryparameter is removed from theIndexedFieldsFixtureconstructor. - Reason:
DocumentBuilderFactoryis being refactored into a static utility.
Document.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/document/Document.java
- Date: Feb. 13, 2026
- Ticket: LPD-79227
- What changed: The
Documentclass is merged intoDocumentImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
DocumentBuilder.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/document/DocumentBuilder.java
-
Date: Feb. 13, 2026
-
Ticket: LPD-79227
-
What changed: The
DocumentBuilderclass is merged intoDocumentBuilderImpl. -
Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/document/DocumentBuilderFactory.java
DocumentBuilderFactory.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/document/DocumentBuilderFactory.java
-
Date: Feb. 13, 2026
-
Ticket: LPD-79227
-
What changed: The
DocumentBuilderFactoryclass is merged intoDocumentBuilderFactoryImpl. -
Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/document/Field.java
Field.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/document/Field.java
- Date: Feb. 13, 2026
- Ticket: LPD-79227
- What changed: The
Fieldclass is merged intoFieldImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
CommerceOrderConfiguration.java
modules/apps/commerce/commerce-api/src/main/java/com/liferay/commerce/configuration/CommerceOrderConfiguration.java
- Date: Feb. 13, 2026
- Ticket: LPD-77315
- What changed: A new configuration field is added for
userNotificationScopeEnabled. - Reason: This change is needed to configure the user notifications scope in a channel.
TaskDefinitionManager.java
modules/dxp/apps/ai-hub/ai-hub-rest-api/src/main/java/com/liferay/ai/hub/rest/manager/v1_0/TaskDefinitionManager.java
- Date: Feb. 13, 2026
- Ticket: LPD-78068
- What changed: All method and variable names referring to AI tasks as task definitions are renamed to call them agent definitions.
- Reason: “Agent definition” is the right term for what is provided.
SPINodeResource.java
modules/dxp/apps/portal-workflow/portal-workflow-metrics-rest-spi/src/main/java/com/liferay/portal/workflow/metrics/rest/spi/resource/SPINodeResource.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
SPINodeResourceconstructor method now accepts aSearchEngineAdapterparameter instead of aSearchRequestExecutor. - Reason:
SearchRequestExecutoris no longer exposed as an external API.
DocumentBuilderFactory.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/legacy/document/DocumentBuilderFactory.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
DocumentBuilderFactoryclass is merged intoDocumentBuilderFactoryImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
SearchHit.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/hits/SearchHit.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
SearchHitclass is merged intoSearchHitImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
SearchHitBuilder.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/hits/SearchHitBuilder.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
SearchHitBuilderclass is merged intoBuilder. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
SearchHitBuilderFactory.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/hits/SearchHitBuilderFactory.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
SearchHitBuilderFactoryclass is removed. Instead, create aSearchHitBuilderdirectly. - Reason: This class is no longer used.
HighlightField.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/highlight/HighlightField.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
HighlightFieldclass is merged intoHighlightFieldImpl. Merge HighlightField and HighlightFieldImpl - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
HighlightFieldBuilder.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/highlight/HighlightFieldBuilder.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
HighlightFieldBuilderclass is merged intoHighlightFieldBuilderImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
HighlightFieldBuilderFactory.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/highlight/HighlightFieldBuilderFactory.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
HighlightFieldBuilderFactoryclass is no longer used. Instead, create aHighlightFieldBuilderdirectly. - Reason: This class is no longer used.
Bucket.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/bucket/Bucket.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
Bucketclass is merged intoBucketImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
BucketAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/bucket/BucketAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
BucketAggregationResultclass is merged intoBaseBucketAggregationResult. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
ChildrenAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/bucket/ChildrenAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The `` class is merged into
ChildrenAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
DateHistogramAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/bucket/DateHistogramAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
DateHistogramAggregationResultclass is merged intoDateHistogramAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
DiversifiedSamplerAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/bucket/DiversifiedSamplerAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
DiversifiedSamplerAggregationResultclass is merged intoDiversifiedSamplerAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
FilterAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/bucket/FilterAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
FilterAggregationResultclass is merged intoFilterAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
FiltersAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/bucket/FiltersAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
FiltersAggregationResultclass is merged intoFiltersAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
GeoDistanceAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/bucket/GeoDistanceAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
GeoDistanceAggregationResultclass is merged intoGeoDistanceAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
GeoHashGridAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/bucket/GeoHashGridAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
GeoHashGridAggregationResultclass is merged intoGeoHashGridAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
GlobalAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/bucket/GlobalAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
GlobalAggregationResultclass is merged intoGlobalAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
HistogramAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/bucket/HistogramAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
HistogramAggregationResultclass is merged intoHistogramAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
MissingAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/bucket/MissingAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
MissingAggregationResultclass is merged intoMissingAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
NestedAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/bucket/NestedAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
NestedAggregationResultclass is merged intoNestedAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
RangeAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/bucket/RangeAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
RangeAggregationResultclass is merged intoRangeAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
ReverseNestedAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/bucket/ReverseNestedAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
ReverseNestedAggregationResultclass is merged intoReverseNestedAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
SamplerAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/bucket/SamplerAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
SamplerAggregationResultclass is merged intoSamplerAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
SignificantTermsAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/bucket/SignificantTermsAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
SignificantTermsAggregationResultclass is merged intoSignificantTermsAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
SignificantTextAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/bucket/SignificantTextAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
SignificantTextAggregationResultclass is merged intoSignificantTextAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
TermsAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/bucket/TermsAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
TermsAggregationResultclass is merged intoTermsAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
AvgAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/metrics/AvgAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
AvgAggregationResultclass is merged intoAvgAggregationResultimpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
CardinalityAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/metrics/CardinalityAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
CardinalityAggregationResultclass is merged intoCardinalityAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
GeoBoundsAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/metrics/GeoBoundsAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
GeoBoundsAggregationResultclass is merged intoGeoBoundsAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
GeoCentroidAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/metrics/GeoCentroidAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
GeoCentroidAggregationResultclass is merged intoGeoCentroidAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
MaxAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/metrics/MaxAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
MaxAggregationResultclass is merged intoMaxAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
MinAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/metrics/MinAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
MinAggregationResultclass is merged intoMinAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
PercentileRanksAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/metrics/PercentileRanksAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
PercentileRanksAggregationResultclass is merged intoPercentileRanksAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
ScriptedMetricAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/metrics/ScriptedMetricAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
ScriptedMetricAggregationResultclass is merged intoScriptedMetricAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
SumAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/metrics/SumAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
SumAggregationResultclass is merged intoSumAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
TopHitsAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/metrics/TopHitsAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
TopHitsAggregationResultclass is merged intoTopHitsAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
ValueCountAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/metrics/ValueCountAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
ValueCountAggregationResultclass is merged intoValueCountAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
WeightedAvgAggregationResult.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/aggregation/metrics/WeightedAvgAggregationResult.java
- Date: Feb. 14, 2026
- Ticket: LPD-79324
- What changed: The
WeightedAvgAggregationResultclass is merged intoWeightedAvgAggregationResultImpl. - Reason: This change simplifies the code by removing unnecessary separation of the API and implementation.
CPDefinitionServiceImpl.java
modules/apps/commerce/commerce-product-service/src/main/java/com/liferay/commerce/product/service/impl/CPDefinitionServiceImpl.java
- Date: Feb. 16, 2026
- Ticket: LPD-64459
- What changed: The method overloads of
addCPDefinition,addOrUpdateCPDefinition, andupdateCPDefinitionare removed, and the remainingaddCPDefinition,addOrUpdateCPDefinition, andupdateCPDefinitionmethods have new parameters foraccountGroupFilterEnabledandchannelFilterEnabled. Additionally, all of these methods have their parameters reordered. - Reason: This change enforces using the existing
accountGroupFilterEnabledandchannelFilterEnabledvalues if they’re provided. The code refactoring also simplifies method usages.
BatchEngineImportTaskExceptionHandler.java
modules/apps/batch-engine/batch-engine-api/src/main/java/com/liferay/batch/engine/exception/handler/BatchEngineImportTaskExceptionHandler.java
- Date: Feb. 16, 2026
- Ticket: LPD-79175
- What changed: The
handlemethod now has a newStringparameter,message. - Reason: The batch engine logic requires providing the message from the source of the exception.
BulkableDocumentRequest.java
modules/apps/portal-search/portal-search-engine-adapter-api/src/main/java/com/liferay/portal/search/engine/adapter/document/BulkableDocumentRequest.java
- Date: Feb. 17, 2026
- Ticket: LPD-79486
- What changed:
BulkableDocumentRequestnow uses a generic type that extendsDocumentResponse. Additionally, theaccept(Consumer<T>)method is removed. - Reason: This change avoids unnecessary lambda creation by converting
BulkableDocumentRequestinto a marker interface.
UIDFactory.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/model/uid/UIDFactory.java
- Date: Feb. 18, 2026
- Ticket: LPD-79552
- What changed: The
getUID(com.liferay.portal.kernel.search.Document),getUID(Document),setUID(ClassedModel, com.liferay.portal.kernel.search.Document), andsetUID(ClassedModel, DocumentBuilder)methods are removed. - Reason:
UIDFactoryshould only manage UID creation, not getting or setting UIDs.
CTClosureFactory.java
modules/apps/change-tracking/change-tracking-api/src/main/java/com/liferay/change/tracking/closure/CTClosureFactory.java
- Date: Feb. 20, 2026
- Ticket: LPD-79328
- What changed: The
create(long, Set<Long>)method is removed. Instead, usecreate(long ctCollectionId)to get the same information. - Reason: The original feature that required this method was removed. Removing this method also simplifies the code logic and caching.
LayoutPageTemplateEntryLocalService.java
modules/apps/layout/layout-page-template-api/src/main/java/com/liferay/layout/page/template/service/LayoutPageTemplateEntryLocalService.java
- Date: Feb. 21, 2026
- Ticket: LPD-77604
- What changed: The
addLayoutPageTemplateEntrymethod overloads now take a newStringparameter forclassTypeKey. - Reason: The new parameter adds support for creating lazy references.
CPMeasurementUnitLocalService.java
modules/apps/commerce/commerce-product-api/src/main/java/com/liferay/commerce/product/service/CPMeasurementUnitLocalService.java
- Date: Feb. 24, 2026
- Ticket: LPD-78231
- What changed: The
fetchCPMeasurementUnitByKey(long, String)method is renamed tofetchCPMeasurementUnit(long, String), and thegetCPMeasurementUnitByKey(long, String)method is renamed togetCPMeasurementUnit(long, String). ThegetCPMeasurementUnits(long)method is removed and replaced bygetCPMeasurementUnits(long, int, int, OrderByComparator), thegetCPMeasurementUnitsByType(long, int, int, int, OrderByComparator)method is removed and replaced bygetCPMeasurementUnits(long, int, int, int, OrderByComparator), and thefetchCPMeasurementUnitByExternalReferenceCode(long, String)method is removed and replaced byfetchCPMeasurementUnit(String, long). Additionally, thefetchPrimaryCPMeasurementUnitByType(long, int)andgetCPMeasurementUnitsByType(long, int)methods are removed. - Reason: These changes enforce consistent code standards, and remove duplicate and unused methods.
CPActionKeys.java
modules/apps/commerce/commerce-product-api/src/main/java/com/liferay/commerce/product/constants/CPActionKeys.java
- Date: Feb. 24, 2026
- Ticket: LPD-78231
- What changed: The
MANAGE_COMMERCE_PRODUCT_MEASUREMENT_UNITSconstant value is removed. Additionally, the newADD_COMMERCE_PRODUCT_MEASUREMENT_UNITandVIEW_COMMERCE_PRODUCT_MEASUREMENT_UNITSconstants are added. - Reason: This change is necessary to enforce correct permission management.
DigitalSalesRoomTicketConstants.java
modules/dxp/apps/digital-sales-room/digital-sales-room-api/src/main/java/com/liferay/digital/sales/room/constants/DigitalSalesRoomTicketConstants.java
- Date: Feb. 25, 2026
- Ticket: LPD-69509
- What changed: The
DigitalSalesRoomTicketConstantsclass is renamed toDSRTicketConstants, and moved to thesite-dsr-site-initializer-apimodule. - Reason: The
digital-sales-room-apimodule has been refactored.
ModelIndexerWriterContributor.java
modules/apps/portal-search/portal-search-spi/src/main/java/com/liferay/portal/search/spi/model/index/contributor/ModelIndexerWriterContributor.java
- Date: Feb. 25, 2026
- Ticket: LPD-80542
- What changed: The
getCompanyIdmethod is removed. - Reason: The appropriate logic is handled within
ModelIndexerWriterContributormethods.
BatchIndexingActionable.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/batch/BatchIndexingActionable.java
- Date: Feb. 26, 2026
- Ticket: LPD-80551
- What changed: The
BatchIndexingActionableclass is removed. Instead, useIndexableActionableDynamicQuerydirectly. - Reason: This class is no longer used.
DynamicQueryBatchIndexingActionableFactory.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/batch/DynamicQueryBatchIndexingActionableFactory.java
- Date: Feb. 26, 2026
- Ticket: LPD-80551
- What changed: The
DynamicQueryBatchIndexingActionableFactoryclass is removed. Instead, useIndexableActionableDynamicQuerydirectly. - Reason: This class is no longer used.
service.xml
./modules/apps/marketplace/marketplace-service/service.xml
- Date: Feb. 7, 2026
- Ticket: LPD-25552
- What changed: Various app and module finders have their return types changed to
Collectionor are nowunique. - Reason: Non-unique finders for single entities can cause inconsistent persistence behavior and duplicate entries.
CPDefinitionLocalServiceImpl.java
modules/apps/commerce/commerce-product-service/src/main/java/com/liferay/commerce/product/service/impl/CPDefinitionLocalServiceImpl.java
- Date: Feb. 16, 2026
- Ticket: LPD-64459
- What changed: Various
addCPDefinition,addOrUpdateCPDefinition, andupdateCPDefinitionmethod overloads are removed. The remainingaddCPDefinition,addOrUpdateCPDefinition, andupdateCPDefinitionmethods now also have new parameters foraccountGroupFilterEnabledandchannelFilterEnabled. TheupdateCPDefinitionmethod has new parameters forshippable,freeShipping,shipSeparately,shippingExtrPrice,width,height,depth,weight,cpTaxCategoryId,taxExempt, andTelcoOrElectronics. Additionally, all of these methods have their parameters reordered. - Reason: This change is required to use existing
accountGroupFilterEnabledandchannelFilterEnabledvalues if provided. The refactor also simplifies method usages.
CPDefinitionLocalServiceImpl.java
modules/apps/commerce/commerce-product-service/src/main/java/com/liferay/commerce/product/service/impl/CPDefinitionLocalServiceImpl.java
- Date: Feb. 26, 2026
- Ticket: LPD-79253
- What changed: The
copyCPDefinition(long, long, int)method now only performs a copy if product versioning is active. - Reason: A unique index has been added for the
CProductIdandversionfields.
ModelIndexerWriterDocumentHelper.java
modules/apps/portal-search/portal-search-spi/src/main/java/com/liferay/portal/search/spi/model/index/contributor/helper/ModelIndexerWriterDocumentHelper.java
- Date: Feb. 26, 2026
- Ticket: LPD-80661
- What changed: The
ModelIndexerWriterDocumentHelperclass is removed. Instead, useIndexerDocumentBuilderdirectly. - Reason: This class is no longer used.
OAuthClientASLocalMetadataLocalServiceImpl.java
modules/apps/oauth-client/oauth-client-persistence-service/src/main/java/com/liferay/oauth/client/persistence/service/impl/OAuthClientASLocalMetadataLocalServiceImpl.java
- Date: Feb. 26, 2026
- Ticket: LPD-67473
- What changed: Various add and update methods have a new
Stringparameter,registrationEndpoint. - Reason: The new parameter is used to register new apps.
CommerceInventoryActionKeys.java
modules/apps/commerce/commerce-inventory-api/src/main/java/com/liferay/commerce/inventory/constants/CommerceInventoryActionKeys.java
- Date: Feb. 27, 2026
- Ticket: LPD-79147
- What changed: The
MANAGE_INVENTORYconstant value is removed in favor ofVIEW_INVENTORIES. removed the constant MANAGE_INVENTORY and added the constant VIEW_INVENTORIES - Reason: This change enforces correct permission management for inventories.
WorkflowDefinitionResourceImpl.java
modules/apps/headless/headless-admin-workflow/headless-admin-workflow-impl/src/main/java/com/liferay/headless/admin/workflow/internal/resource/v1_0/WorkflowDefinitionResourceImpl.java
- Date: Feb. 27, 2026
- Ticket: LPD-78064
- What changed: The
getWorkflowDefinitionsPageandgetLatestWorkflowDefinitionsmethods have a newStringparameter for a scope. - Reason: This change enables retrieved AI Hub-scoped workflows.
WorkflowDefinitionManagerImpl.java
modules/apps/portal-workflow/portal-workflow-kaleo-runtime-integration-impl/src/main/java/com/liferay/portal/workflow/kaleo/runtime/integration/internal/WorkflowDefinitionManagerImpl.java
- Date: Feb. 27, 2026
- Ticket: LPD-78064
- What changed: The
getWorkflowDefinitionsPageandgetLatestWorkflowDefinitionsmethods have a newStringparameter for a scope. - Reason: This change enables retrieved AI Hub-scoped workflows.
WorkflowDefinitionManagerUtil.java
modules/apps/portal-workflow/portal-workflow-api/src/main/java/com/liferay/portal/workflow/util/WorkflowDefinitionManagerUtil.java
- Date: Feb. 27, 2026
- Ticket: LPD-78064
- What changed: The
getWorkflowDefinitionsPageandgetLatestWorkflowDefinitionsmethods have a newStringparameter for a scope. - Reason: This change enables retrieved AI Hub-scoped workflows.
WorkflowDefinitionManager.java
modules/apps/portal-workflow/portal-workflow-api/src/main/java/com/liferay/portal/workflow/manager/WorkflowDefinitionManager.java
- Date: Feb. 27, 2026
- Ticket: LPD-78064
- What changed: The
getWorkflowDefinitionsPageandgetLatestWorkflowDefinitionsmethods have a newStringparameter for a scope. - Reason: This change enables retrieved AI Hub-scoped workflows.
Queries.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/query/Queries.java
- Date: Feb. 28, 2026
- Ticket: LPD-80837
- What changed: The
Queriesclass is removed. UseQueriesUtilinstead. - Reason: This class is no longer used.
AggregationUtil.java
modules/apps/headless/headless-delivery/headless-delivery-api/src/main/java/com/liferay/headless/delivery/search/aggregation/AggregationUtil.java
- Date: Feb. 28, 2026
- Ticket: LPD-80837
- What changed: The
processVulcanAggregationmethod no longer takes aQueriesparameter. - Reason:
QueriesUtilis used now instead ofQueries.
SortUtil.java
modules/apps/headless/headless-delivery/headless-delivery-api/src/main/java/com/liferay/headless/delivery/search/sort/SortUtil.java
- Date: Feb. 28, 2026
- Ticket: LPD-80837
- What changed: The
processSortsmethod no longer takes aQueriesparameter. - Reason:
QueriesUtilis used now instead ofQueries.
service.xml
modules/apps/object/object-service/service.xml
- Date: Mar. 9, 2026
- Ticket: LPD-79365
- What changed: Folder names no longer have the
uniquedatabase-level constraint. - Reason: Uniqueness should only be enforced for active folders, allowing users to reuse a name if the original folder is in the trash.
FragmentEntryLinkFinderImpl.java
modules/apps/fragment/fragment-service/src/main/java/com/liferay/fragment/service/persistence/impl/FragmentEntryLinkFinderImpl.java
- Date: Mar. 9, 2026
- Ticket: LPD-81197
- What changed: The
FragmentEntryLinkFinderImplclass is removed. - Reason: Custom finders are removed in favor of
DSLQuery.
FragmentEntryLinkLocalServiceImpl.java
modules/apps/fragment/fragment-service/src/main/java/com/liferay/fragment/service/impl/FragmentEntryLinkLocalServiceImpl.java
- Date: Mar. 9, 2026
- Ticket: LPD-81197
- What changed: Various
*byFragmentEntryERCmethods now take fragment entries directly instead of their external reference codes (now*byFragmentEntry). Additionally, thedeleteFragmentEntryLinksByFragmentEntryERC(long, String, String)method is removed. - Reason: This change keeps scope logic in service methods. The unused method was no longer used.
SitePage.java
modules/apps/headless/headless-admin-site/headless-admin-site-api/src/main/java/com/liferay/headless/admin/site/dto/v1_0/SitePage.java
- Date: Mar. 9, 2026
- Ticket: LPD-79415
- What changed: Getter and setter methods are added for an array of
TaxonomyCategoryBrief. - Reason: This change adds support for lazy references for categories. The parent category and vocabulary external reference codes are needed to display the category in the UI properly.
ContentPageTemplate.java
modules/apps/headless/headless-admin-site/headless-admin-site-api/src/main/java/com/liferay/headless/admin/site/dto/v1_0/ContentPageTemplate.java
- Date: Mar. 9, 2026
- Ticket: LPD-79415
- What changed: Getter and setter methods are added for an array of
TaxonomyCategoryBrief. - Reason: This change adds support for lazy references for categories. The parent category and vocabulary external reference codes are needed to display the category in the UI properly.
MasterPage.java
modules/apps/headless/headless-admin-site/headless-admin-site-api/src/main/java/com/liferay/headless/admin/site/dto/v1_0/MasterPage.java
- Date: Mar. 9, 2026
- Ticket: LPD-79415
- What changed: Getter and setter methods are added for an array of
TaxonomyCategoryBrief. - Reason: This change adds support for lazy references for categories. The parent category and vocabulary external reference codes are needed to display the category in the UI properly.
PageTemplate.java
modules/apps/headless/headless-admin-site/headless-admin-site-api/src/main/java/com/liferay/headless/admin/site/dto/v1_0/PageTemplate.java
- Date: Mar. 9, 2026
- Ticket: LPD-79415
- What changed: Getter and setter methods are added for an array of
TaxonomyCategoryBrief. - Reason: This change adds support for lazy references for categories. The parent category and vocabulary external reference codes are needed to display the category in the UI properly.
WidgetPageTemplate.java
modules/apps/headless/headless-admin-site/headless-admin-site-api/src/main/java/com/liferay/headless/admin/site/dto/v1_0/WidgetPageTemplate.java
- Date: Mar. 9, 2026
- Ticket: LPD-79415
- What changed: Getter and setter methods are added for an array of
TaxonomyCategoryBrief. - Reason: This change adds support for lazy references for categories. The parent category and vocabulary external reference codes are needed to display the category in the UI properly.
CTCollectionService.java
modules/apps/change-tracking/change-tracking-api/src/main/java/com/liferay/change/tracking/service/CTCollectionService.java
- Date: Mar. 15, 2026
- Ticket: LPD-79378
- What changed: All
companyIdanduserIdparameters are removed fromCTCollectionService. NowuserIdis retrieved from the base class method andcompanyIdis retrieved fromCompanyThreadLocalinstead. - Reason: This change enforces security standards for information access.
IconImageURLReference.java
modules/apps/headless/headless-admin-site/headless-admin-site-api/src/main/java/com/liferay/headless/admin/site/dto/v1_0/IconImageURLReference.java
- Date: Mar. 15, 2026
- Ticket: LPD-81218
- What changed:
IconImageURLReferenceis renamed toIconImageURL. - Reason: Icon image external reference codes are unique within a Liferay instance and shouldn’t be shared between pages.
Settings.java
modules/apps/headless/headless-admin-site/headless-admin-site-api/src/main/java/com/liferay/headless/admin/site/dto/v1_0/Settings.java
- Date: Mar. 15, 2026
- Ticket: LPD-81218
- What changed: The
iconImageURLReferencefield and its corresponding getter and setter methods are removed, in favor oficonImagURLand its getter and setter methods. - Reason: Icon image external reference codes are unique within a Liferay instance and shouldn’t be shared between pages.
Changes in portal-impl Classes
AssetVocabularyLocalServiceImpl.java
portal-impl/src/com/liferay/portlet/asset/service/impl/AssetVocabularyLocalServiceImpl.java
- Date: Nov. 5, 2025
- Ticket: LPD-67522
- What changed: The
updateVocabulary(long, String, Map<Locale, String>, Map<Locale, String>, String, int, ServiceContext)method now handles vocabularies that may have null titles. - Reason: This change is necessary to account for lazy referencing of vocabularies.
AssetVocabularyServiceImpl.java
portal-impl/src/com/liferay/portlet/asset/service/impl/AssetVocabularyServiceImpl.java
- Date: Nov. 5, 2025
- Ticket: LPD-67522
- What changed: The
updateVocabulary(long, String, Map<Locale, String>, Map<Locale, String>, String, int, ServiceContext)method now handles vocabularies that may have null titles. - Reason: This change is necessary to account for lazy referencing of vocabularies.
DBUpgrader.java
portal-impl/src/com/liferay/portal/tools/DBUpgrader.java
- Date: Dec. 1, 2025
- Ticket: LPD-70109
- What changed: The
upgradeModules(Runnable upgradeModulesCallbackRunnable)method’sRunnableparameter is removed. Use the new method by calling it without the parameter. - Reason: This change is required because the logic to control upgrade report generation is no longer coupled with the logic that controls whether an upgrade is running. The additional logic is moved inside the
upgradeModulesmethod inDBUpgrader.
Changes in portal-kernel Classes
FileSizeException.java
portal-kernel/src/com/liferay/document/library/kernel/exception/FileSizeException.java
- Date: Nov. 4, 2025
- Ticket: LPD-77969
- What changed: A new
FileSizeExceptionconstructor is added that accepts a MIME type as a parameter. - Reason: The MIME type can give more information to users when displaying the error message.
LayoutService.java
portal-kernel/src/com/liferay/portal/kernel/service/LayoutService.java
- Date: Nov. 4, 2025
- Ticket: LPD-67244
- What changed: The new
getLayout(long plid)andgetLayout(long groupId, boolean privateLayout, long layoutId)methods are added. - Reason: The change is necessary because layouts are only retrieved when the user has the
VIEWpermission.
UpgradeProcess.java
portal-kernel/src/com/liferay/portal/kernel/upgrade/UpgradeProcess.java
- Date: Nov. 10, 2025
- Ticket: LPD-70013
- What changed: The
addTemporaryIndex(String tableName, boolean unique, String... columnNames)method is moved to theDBclass. Get a reference to aDBobject withDBManagerUtil.getDB(), and call itsaddTemporaryIndexmethod. - Reason: This change is required to use the temporary index from classes other than those extending
UpgradeProcess.
LayoutService.java
portal-kernel/src/com/liferay/portal/kernel/service/LayoutService.java
- Date: Nov. 17, 2025
- Ticket: LPD-68031
- What changed: Various methods have the
masterLayoutPlidparameter removed and replaced with amasterLayoutPageTemplateEntryERCparameter. Instead, pass the master layout page template entry’s external reference code. - Reason: This change adds support for referencing master templates in export/imports, via the new batch API.
LayoutLocalService.java
portal-kernel/src/com/liferay/portal/kernel/service/LayoutLocalService.java
- Date: Nov. 17, 2025
- Ticket: LPD-68031
- What changed: Various methods have the
masterLayoutPlidparameter removed and replaced with amasterLayoutPageTemplateEntryERCparameter. Instead, pass the master layout page template entry’s external reference code. - Reason: This change adds support for referencing master templates in export/imports, via the new batch API.
LayoutPageTemplateEntryLayoutProvider.java
portal-kernel/src/com/liferay/layout/page/template/kernel/provider/LayoutPageTemplateEntryLayoutProvider.java
- Date: Nov. 27, 2025
- Ticket: LPD-72415
- What changed: The
getLayoutPageTemplateEntryLayoutmethod has a new parameter,plid. - Reason: This method is necessary to correctly determine the group ID.
FrontendESMUtil.java
portal-kernel/src/com/liferay/portal/kernel/frontend/esm/FrontendESMUtil.java
- Date: Dec. 2, 2025
- Ticket: LPD-52709
- What changed: The
getScriptTypemethod is removed. - Reason: This method is no longer used.
LayoutModel.java
portal-kernel/src/com/liferay/portal/kernel/model/LayoutModel.java
- Date: Dec. 17, 2025
- Ticket: LPD-68134
- What changed: The
faviconFileEntryIdfield and its associated getter and setter methods are removed, in favor of methods using an external reference code. UsefaviconFileEntryERCandfaviconFileEntryScopeERCinstead of using thefaviconFileEntryId. - Reason: This change adds support for lazy referencing favicon file entries.
GroupCapability.java
/portal-kernel/src/com/liferay/portal/kernel/group/capability/GroupCapability.java
- Date: Dec. 17, 2025
- Ticket: LPD-73630
- What changed: The
isSupportPortletmethod is renamed toisSupportsPortlet. - Reason: This change enforces naming consistency for group capability methods.
PortletDataHandler.java
/portal-kernel/src/com/liferay/exportimport/kernel/lar/PortletDataHandler.java
- Date: Dec. 18, 2025
- Ticket: LPD-70252
- What changed: Various
getExportControls,getImportControls, andgetStagingControlsmethods now includePortletDataHandlerin their names (e.g.,getExportPortletDataHandlerControls). - Reason: This change enforces code clarity and consistency.
OrphanReferencesDataCleanupUtil.java
portal-kernel/src/com/liferay/portal/kernel/upgrade/data/cleanup/util/OrphanReferencesDataCleanupUtil.java
- Date: Dec. 23, 2025
- Ticket: LPD-53142
- What changed: The
cleanUpTable(Connection, String, String, String, String[], String)andgetWhereClause(Connection, String, String, String, String[], String)methods have a newString[]parameter,customJoinClauses. For existing uses of these APIs, passing anullvalue for the new parameter maintains the existing behavior. - Reason: This change is necessary to support the performance of the
PostUpgradeDataCleanupProcessclasses.
TableOrphanReferencesDataCleanupPreupgradeProcess.java
portal-kernel/src/com/liferay/portal/kernel/upgrade/data/cleanup/TableOrphanReferencesDataCleanupPreupgradeProcess.java
- Date: Dec. 23, 2025
- Ticket: LPD-53142
- What changed: The constructor
TableOrphanReferencesDataCleanupPreupgradeProcess(String, String, String, String, String)has a newStringparameter,customJoinClause. For existing uses of this API, passing anullvalue for the new parameter maintains the existing behavior. - Reason: This change is necessary to support the performance of the
PostUpgradeDataCleanupProcessclasses.
BaseLocalizedColumnUpgradeProcess.java
portal-kernel/src/com/liferay/portal/kernel/upgrade/BaseLocalizedColumnUpgradeProcess.java
- Date: Jan. 20, 2026
- Ticket: LPD-51236
- What changed: The
upgradeLocalizedColumn(ResourceBundleLoader, String, String, String, String, String, long[])method’slong[] companyIdsparameter is removed. All existing companies are used after this change. - Reason: All existing companies can be retrieved internally, so the parameter is not needed.
PortletDataHandler.java
portal-kernel/src/com/liferay/exportimport/kernel/lar/PortletDataHandler.java
- Date: Jan. 20, 2026
- Ticket: LPD-74822
- What changed: The new
getDescriptionandgetTagmethods are added. - Reason: This change is necessary to access descriptions and tags from the portlet data handler.
PortletDataHandlerBoolean.java
portal-kernel/src/com/liferay/exportimport/kernel/lar/PortletDataHandlerBoolean.java
- Date: Jan. 20, 2026
- Ticket: LPD-74822
- What changed: The
getSubtitlesandgetTagmethods are removed. Instead, use the methods inPortletDataHandler. - Reason: The subtitles (description) and the tag are actually contained in the portlet data handler, not in the controls.
EmptyModelManager.java
portal-kernel/src/com/liferay/exportimport/kernel/empty/model/EmptyModelManager.java
- Date: Jan. 23, 2026
- Ticket: LPD-75399
- What changed: The company-scoped
getOrAddEmptyModelmethod overloads have a newStringparameter,modelNameLanguageKey. Additionally, the group-scoped method without amodelNameLanguageKeyparameter is removed. Instead, use one of the company-scoped methods. - Reason: The new parameter is needed to populate the entity type column for report entries with a user-friendly name, instead of showing the class name.
EmptyModelManagerUtil.java
portal-kernel/src/com/liferay/exportimport/kernel/empty/model/EmptyModelManagerUtil.java
- Date: Jan. 23, 2026
- Ticket: LPD-75399
- What changed: The overloaded
getOrAddEmptyModelmethods have a newStringparameter,modelNameLanguageKey. - Reason: The new parameter is needed to populate the entity type column for report entries with a user-friendly name, instead of showing the class name.
MoreLikeThisQuery.java
portal-kernel/src/com/liferay/portal/kernel/search/generic/MoreLikeThisQuery.java
- Date: Feb. 4, 2026
- Ticket: LPD-78273
- What changed: The
MoreLikeThisQueryconstructor’scompanyIdparameter is replaced with anindexNameparameter. - Reason: When the
MoreLikeThisQueryis executed, the company ID is converted to an index name, so it’s better to accept it as a parameter beforehand.
QueryTranslator.java
portal-kernel/src/com/liferay/portal/kernel/search/query/QueryTranslator.java
- Date: Feb. 10, 2026
- Ticket: LPD-78663
- What changed: The
QueryTranslatorinterface is removed. - Reason: This interface was not used. The implementation classes are used within their own internal module classes directly.
FilterTranslator.java
portal-kernel/src/com/liferay/portal/kernel/search/filter/FilterTranslator.java
- Date: Feb. 10, 2026
- Ticket: LPD-78663
- What changed: The
FilterTranslatorinterface is removed. - Reason: This interface was not used. The implementation classes are used within their own internal module classes directly.
WorkflowLog.java
portal-kernel/src/com/liferay/portal/kernel/workflow/WorkflowLog.java
- Date: Feb. 10, 2026
- Ticket: LPD-77823
- What changed: The
getWorkflowContextmethod is added. - Reason: This change is necessary to save metadata from AI agents in the
KaleoLogtable.
DestinationNames.java
portal-kernel/src/com/liferay/portal/kernel/messaging/DestinationNames.java
- Date: Feb. 13, 2026
- Ticket: LPD-76073
- What changed: The
CMP_PROJECT_COMMENT_ADDEDconstant value is removed, and replaced withCMP_COMMENT_ADDED. - Reason: This change simplifies and consolidates the CMP comments, so there is one per entity.
LayoutLocalService.java
portal-kernel/src/com/liferay/portal/kernel/service/LayoutLocalService.java
- Date: Feb. 17, 2026
- Ticket: LPD-78515
- What changed: The
getOrAddEmptyLayoutmethod has a newBooleanparameter,privateLayout. - Reason: This change adds support for exporting private pages.
Field.java
portal-kernel/src/com/liferay/portal/kernel/search/Field.java
- Date: Feb. 18, 2026
- Ticket: LPD-79553
- What changed: The
validate(String name)method is removed. - Reason: This method is no longer needed.
DocumentImpl.java
portal-kernel/src/com/liferay/portal/kernel/search/DocumentImpl.java
- Date: Feb. 18, 2026
- Ticket: LPD-79553
- What changed: The
doGetField(String name, boolean createIfNew)method is removed. - Reason: This method is no longer needed because the get and create paths are separate.
FriendlyURLResolverRegistryUtil.java
portal-kernel/src/com/liferay/portal/kernel/portlet/FriendlyURLResolverRegistryUtil.java
- Date: Feb. 21, 2026
- Ticket: LPD-78504
- What changed: The
getFriendlyURLResolverandgetFriendlyURLResolversAsCollectionmethods have a new parameter,companyId. - Reason: This change adds support for filtering friendly URL resolvers by company ID.
HashedFilesRegistry.java
portal-kernel/src/com/liferay/portal/kernel/frontend/hashed/files/HashedFilesRegistry.java
- Date: Feb. 24, 2026
- Ticket: LPD-78555
- What changed: The new
getCachingLevel(HttpServletRequest)method is added. - Reason: This change is necessary to improve the accessibility of caching configurations.
PortletDataHandler.java
/portal-kernel/src/com/liferay/exportimport/kernel/lar/PortletDataHandler.java
- Date: Feb. 25, 2026
- Ticket: LPD-77963
- What changed: The
getNamemethod is removed, and replaced bygetTitle(Locale). - Reason: This method simplifies retrieving
BatchEnginePortletDataHandlertitles. It enforces consistency by always usinggetLabelLanguageKey.
ActionKeys.java
portal-kernel/src/com/liferay/portal/kernel/security/permission/ActionKeys.java
- Date: Feb. 27, 2026
- Ticket: LPD-78219
- What changed: The
MANAGE_COUNTRIESconstant value is removed, and the newADD_COUNTRYconstant is added. Additionally, all usages ofMANAGE_COUNTRIESare substituted with eitherADD_COUNTRYat the portlet level, or eitherDELETEorUPDATEat the resource level. - Reason: This change is necessary for correct permission management.
LayoutSetPrototypeLocalService.java
portal-kernel/src/com/liferay/portal/kernel/service/LayoutSetPrototypeLocalService.java
- Date: Mar. 15, 2026
- Ticket: LPD-81592
- What changed: Various methods related to site template propagation are removed. The
updateLayoutSetPrototypeoverloaded methods no longer accept parameters foractiveorreadyForPropagation. - Reason: Site template propagation is no longer available.
LayoutSetPrototypeService.java
portal-kernel/src/com/liferay/portal/kernel/service/LayoutSetPrototypeService.java
- Date: Mar. 15, 2026
- Ticket: LPD-81592
- What changed: Various methods related to site template propagation are removed. The
updateLayoutSetPrototypeoverloaded methods no longer accept parameters foractiveorreadyForPropagation. - Reason: Site template propagation is no longer available.