Liferay DXP 2025.Q4 Breaking changes
Breaking changes break or significantly alter existing functionality or code structure. Here are all of the breaking changes for Liferay DXP 2025.Q4. 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 |
|---|---|---|
| Analytics Cloud API | The impressionMade event replaces the previewed event in the Analytics Cloud API. The new impressionMadeMetric consolidates impressions to include both the new impressionMade events and legacy previewed events. | LPD-61800 |
| Button Text | Button text no longer creates escaped text when the user presses Enter. | LPD-62655 |
| Duplicated Object Definitions and Entities | Object definitions and entities that share the same name now may appear multiple times in the UI. | LPD-62188 |
| Exporting/Importing Site-Scoped Settings | Headless API now exposed and managed via export/import operations. The imported configuration now overrides existing site configurations with a matching site scope. | LPD-58493 |
| Fragment Content Nested in a Collection Display | Content created within a nested fragment in a Collection Display fragment is no longer indexed. | LPD-63304 |
| Importing Content with Parent Pages | Importing content referencing a non-existent parent page now creates an empty parent page with the Empty status. Pages with the Empty status now appear clearly labeled in the UI. These pages allow limited actions (adding children, editing, and moving) and are excluded from navigation, search, and item selectors. | LPD-56377, LPD-61845, LPD-65251 |
| Mail Settings | The system-wide mail settings for Liferay DXP are moved from Server Administration to System Settings (under Email → Virtual Instance Scope). Instance-level mail settings inherit from the base system settings. Existing settings migrate during the database upgrade. | LPD-25567 |
| Object Inheritance | Child object entries can now inherit from multiple parents, or have no parent. The object definition’s relationship field is now only required when an entry is created in a parent context. Standalone entries no longer inherit permissions or configurations from a root object. | LPD-47816 |
| Previewing Display Page Templates and Content | The Review Changes screen for display page templates now shows the templates and content created with them. | LPD-58225, LPD-60040 |
| Previewing Web Content Fields | The Review Changes screen for web content articles now shows all fields, including ones created with custom structures. | LPD-61221 |
| SAML User Groups | User groups that exist in Liferay but not in a SAML service provider now sync automatically when a user in the group authenticates with SAML. | LPD-46627 |
| Velocity Templates in Workflow | Velocity is no longer available in workflow. | LPD-66671 |
Changes in Module Source
ListTypeEntryLocalServiceImpl.java
modules/apps/list-type/list-type-service/src/main/java/com/liferay/list/type/service/impl/ListTypeEntryLocalServiceImpl.java
- Date: Jul. 29, 2025
- Ticket: LPD-61629
- What changed: In various service method implementations, the word
incompleteis replaced withemptywhen referring to lazy references. - Reason: This change reflects the change of the lazy referencing status from
incompletetoempty.
AccountEntryLocalServiceImpl.java
modules/apps/account/account-service/src/main/java/com/liferay/account/service/impl/AccountEntryLocalServiceImpl.java
- Date: Jul. 29, 2025
- Ticket: LPD-61629
- What changed: In various method implementations, the word
incompleteis replaced withemptywhen referring to lazy references. - Reason: This change reflects the change of the lazy referencing status from
incompletetoempty.
IncompleteModelManagerImpl.java
modules/apps/export-import/export-import-report-service/src/main/java/com/liferay/exportimport/report/internal/incomplete/model/IncompleteModelManagerImpl.java
- Date: Jul. 29, 2025
- Ticket: LPD-61629
- What changed: The package, class, and method names related to lazy referencing were renamed from
incompletetoempty. - Reason: This change reflects the change of the lazy referencing status from
incompletetoempty.
InventoryAnalysisResourceImpl.java
modules/apps/analytics/analytics-cms-rest-impl/src/main/java/com/liferay/analytics/cms/rest/internal/resource/v1_0/InventoryAnalysisResourceImpl.java
- Date: Jul. 30, 2025
- Ticket: LPD-43294
- What changed: The
getInventoryAnalysisandgetDepotEntriesmethods have theirLong spaceIdparameter renamed todepotEntryId. - Reason: This change forces consistent naming standards.
OverviewResourceImpl.java
modules/apps/analytics/analytics-cms-rest-impl/src/main/java/com/liferay/analytics/cms/rest/internal/resource/v1_0/OverviewResourceImpl.java
- Date: Jul. 30, 2025
- Ticket: LPD-43294
- What changed: The
getContentOverviewandgetFileOverviewmethods have theirLong spaceIdparameter renamed todepotEntryId. - Reason: This change forces consistent naming standards.
ObjectEntryResource.java
modules/apps/object/object-rest-api/src/main/java/com/liferay/object/rest/resource/v1_0/ObjectEntryResource.java
- Date: Jul. 31, 2025
- Ticket: LPD-61990
- What changed: The
getObjectEntriesPageandgetScopeScopeKeyPagemethods no longer have aBooleanparameter forflatten. - Reason: This parameter is no longer used.
ObjectEntryLocalServiceImpl.java
modules/apps/object/object-service/src/main/java/com/liferay/object/service/impl/ObjectEntryLocalServiceImpl.java
- Date: Aug. 1, 2025
- Ticket: LPD-40798
- What changed: Various method signatures are removed in favor of new ones that use an external reference code, group ID, and object definition ID as parameters.
- Reason: This change adds support for more than one object entry with the same entry external reference codes across different sites, companies, and object definitions.
service.xml
modules/apps/object/object-service/service.xml
- Date: Aug. 1, 2025
- Ticket: LPD-40798
- What changed: The older finders have been removed in favor of new ones for
externalReferenceCode,groupId,companyId, andobjectDefinitionId. - Reason: This change allows for duplicating object entry external reference codes across different sites, companies, and object definitions.
UserAccountResource.java
modules/apps/headless/headless-admin-user/headless-admin-user-api/src/main/java/com/liferay/headless/admin/user/resource/v1_0/UserAccountResource.java
- Date: Aug. 1, 2025
- Ticket: LPD-61014
- What changed: The
postUserAccount,captchaAnswer, andcaptchaTokenmethods have two newStringparameters (captchaAnswerandcaptchaToken). - Reason: This change adds support for captcha validation.
rest-openapi.yaml
modules/dxp/apps/scim/scim-rest-impl/rest-openapi.yaml
- Date: Aug. 3, 2025
- Ticket: LPD-56434
- What changed: The
Userschema is modified, and a newAddressschema is added. - Reason: This change allows for processing the
addressesattribute while provisioning SCIM users.
OpenAPIUtil.java
modules/util/portal-tools-rest-builder/src/main/java/com/liferay/portal/tools/rest/builder/internal/freemarker/util/OpenAPIUtil.java
- Date: Aug. 5, 2025
- Ticket: LPD-62249
- What changed: The operation ID is updated for certain words (
Status), soOpenAPIUtil’s compatibility version is increased. - Reason: REST builder automatically generates operation IDs based on their path.
DepotEntryGroupRelLocalService.java
/modules/apps/depot/depot-api/src/main/java/com/liferay/depot/service/DepotEntryGroupRelLocalService.java
- Date: Aug. 5, 2025
- Ticket: LPD-61564
- What changed: The
getDepotEntryGroupRelsandgetDepotEntryGroupRelsCountmethods have a newlongparameter (type). - Reason: This change differentiates between two different kinds of depots: spaces and asset libraries. The new parameter allows distinguishing between these two types of depots.
DepotEntryGroupRelService.java
/modules/apps/depot/depot-api/src/main/java/com/liferay/depot/service/DepotEntryGroupRelService.java
- Date: Aug. 5, 2025
- Ticket: LPD-61564
- What changed: The
getDepotEntryGroupRelsandgetDepotEntryGroupRelsCountmethods have a newlongparameter (type). - Reason: This change differentiates between two different kinds of depots: spaces and asset libraries. The new parameter allows distinguishing between these two types of depots.
DepotEntryLocalService.java
/modules/apps/depot/depot-api/src/main/java/com/liferay/depot/service/DepotEntryLocalService.java
- Date: Aug. 5, 2025
- Ticket: LPD-61564
- What changed: The
addDepotEntry,getGroupConnectedDepotEntries, andgetGroupConnectedDepotEntriesCountmethods have a newlongparameter (type). - Reason: This change differentiates between two different kinds of depots: spaces and asset libraries. The new parameter allows distinguishing between these two types of depots.
DepotEntryService.java
/modules/apps/depot/depot-api/src/main/java/com/liferay/depot/service/DepotEntryService.java
- Date: Aug. 5, 2025
- Ticket: LPD-61564
- What changed: The
addDepotEntry,getGroupConnectedDepotEntries, andgetGroupConnectedDepotEntriesCountmethods have a newlongparameter (type). - Reason: This change differentiates between two different kinds of depots: spaces and asset libraries. The new parameter allows distinguishing between these two types of depots.
CPConfigurationListLocalService.java
modules/apps/commerce/commerce-product-api/src/main/java/com/liferay/commerce/product/service/CPConfigurationListLocalService.java
- Date: Aug. 5, 2025
- Ticket: LPD-51865
- What changed: The
addOrUpdateandupdatemethods now have a newServiceContextparameter. - Reason: This change adds support for custom fields.
CPConfigurationListServiceImpl.java
modules/apps/commerce/commerce-product-service/src/main/java/com/liferay/commerce/product/service/impl/CPConfigurationListServiceImpl.java
- Date: Aug. 5, 2025
- Ticket: LPD-51865
- What changed: The
add,addOrUpdate, andupdatemethods now have a newServiceContextparameter. - Reason: This change adds support for custom fields.
CPConfigurationEntryLocalServiceImpl.java
modules/apps/commerce/commerce-product-service/src/main/java/com/liferay/commerce/product/service/impl/CPConfigurationEntryLocalServiceImpl.java
- Date: Aug. 6, 2025
- Ticket: LPD-52310
- What changed: Multiple add and update methods no longer expose their respective fields.
- Reason: This change reflects the changed behavior of Commerce product configurations.
rest-openapi.yaml
modules/apps/commerce/headless/headless-commerce/headless-commerce-admin-catalog-impl/rest-openapi.yaml
- Date: Aug. 6, 2025
- Ticket: LPD-52310
- What changed: Product configuration entries no longer have a visible field.
- Reason: This change reflects the changed behavior of Commerce product configurations.
OpenAPIUtil.java
modules/util/portal-tools-rest-builder/src/main/java/com/liferay/portal/tools/rest/builder/internal/freemarker/util/OpenAPIUtil.java
- Date: Aug. 7, 2025
- Ticket: LPD-57834
- What changed: The operation ID is updated for certain words (
Status), soOpenAPIUtil’s compatibility version is increased. - Reason: REST builder automatically generates operation IDs based on their path.
SharingEntryLocalService.java
modules/apps/sharing/sharing-api/src/main/java/com/liferay/sharing/service/SharingEntryLocalService.java
- Date: Aug. 7, 2025
- Ticket: LPD-61903
- What changed: The
getSharingEntriesmethod has a newOrderByComparatorparameter. - Reason: This change allows for sorting by product needs.
SharingEntryService.java
modules/apps/sharing/sharing-api/src/main/java/com/liferay/sharing/service/SharingEntryService.java
- Date: Aug. 7, 2025
- Ticket: LPD-61903
- What changed: The
getSharingEntriesmethod has a newOrderByComparatorparameter. - Reason: This change allows for sorting by product needs.
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: Aug. 7, 2025
- Ticket: LPD-55438
- What changed: The
FavIconfield is now its own schema instead of an object. - Reason: This change enforces explicit declarations for possible types.
BaseCTDisplayRenderer.java
modules/apps/change-tracking/change-tracking-spi/src/main/java/com/liferay/change/tracking/spi/display/BaseCTDisplayRenderer.java
- Date: Aug. 8, 2025
- Ticket: LPD-61649
- What changed: The new
buildStructureDisplay(DisplayBuilder<T>)andgetDownloadLink(DisplayContext<?>, String, long, String)methods are added to the innerDisplayBuilderclass. - Reason: This change allows for a section header displaying a language key to be shown on the data tab. IT also allows for structure data to be displayed on any
CTModel, if present.
DepotRolesConstants.java
modules/apps/depot/depot-api/src/main/java/com/liferay/depot/constants/DepotRolesConstants.java
- Date: Aug. 10, 2025
- Ticket: LPD-61297
- What changed: The
CMS_CONSUMERconstant value is removed. - Reason: This role should be used as a regular role and not depot-dependent.
BaseObjectEntryManagerImplTestCase.java
modules/apps/object/object-rest-test-util/src/main/java/com/liferay/object/rest/test/util/BaseObjectEntryManagerImplTestCase.java
- Date: Aug. 11, 2025
- Ticket: LPD-61960
- What changed: The usage of
ObjectDefinitionLocalServiceis nowstatic. - Reason: This change is necessary to use the
setUpClassstatic method.
NotificationTemplateUtil.java
modules/apps/notification/notification-test-util/src/main/java/com/liferay/notification/test/util/NotificationTemplateUtil.java
- Date: Aug. 12, 2025
- Ticket: LPD-62104
- What changed: The
createNotificationRecipientSettingmethod is removed. - Reason: This method implementation already exists in the
NotificationRecipientSettingUtilclass.
getAlloyEditorProcessor.js
modules/apps/layout/layout-content-page-editor-web/src/main/resources/META-INF/resources/page_editor/app/processors/getAlloyEditorProcessor.js
- Date: Aug. 12, 2025
- Ticket: LPD-62655
- What changed: New lines are no longer allowed in editable links.
- Reason: This change was previously applied to editable text fields, so this change enforces consistency for both field types.
LocalizationSelect.tsx
modules/apps/fragment/fragment-impl/src/main/resources/META-INF/resources/js/api/LocalizationSelect.tsx
- Date: Aug. 14, 2025
- Ticket: LPD-58672
- What changed: A specific form ID can now be used to apply Localization Select events to only the inputs belonging to that form.
- Reason: This change allows for applying events only to the desired form for the new side-by-side translation view.
BaseObjectEntryManagerImplTestCase.java
modules/apps/object/object-rest-test-util/src/main/java/com/liferay/object/rest/test/util/BaseObjectEntryManagerImplTestCase.java
- Date: Aug. 17, 2025
- Ticket: LPD-62358
- What changed: The usage of
ObjectDefinitionLocalServiceis nowstatic. - Reason: This change is necessary to use the
setUpClassstatic method.
DefaultObjectEntryManagerImplTest.java
modules/apps/object/object-rest-test/src/testIntegration/java/com/liferay/object/rest/internal/manager/v1_0/test/DefaultObjectEntryManagerImplTest.java
- Date: Aug. 19, 2025
- Ticket: LPD-62828
- What changed: The
addRelatedObjectEntrymethod is now split into two implementations. One implementation uses an object entry ID as a parameter, and the other uses an external reference code and scope key. - Reason: This change allows for adding related object entries with a scope.
BaseAMImageCounter.java
modules/apps/adaptive-media/adaptive-media-image-api/src/main/java/com/liferay/adaptive/media/image/counter/BaseAMImageCounter.java
- Date: Aug. 19, 2025
- Ticket: LPD-62588
- What changed: The
forEachFileEntrymethod is removed. The newgetClassNamemethod is added. ThegetMimeTypesmethod is changed fromprotectedtoprivate. - Reason: The counting method now uses an
AtomicIntegercounter to iterate through groups and check the previewable processor max size, instead of individually checking each file entry’s size.
SamlProviderConfiguration.java
modules/dxp/apps/saml/saml-api/src/main/java/com/liferay/saml/runtime/configuration/SamlProviderConfiguration.java
- Date: Aug. 20, 2025
- Ticket: LPD-37323
- What changed: The new
SAML_ROLE_BOTHconfiguration is added in the role configuration. - Reason: The change adds support for both IdP and SP in Liferay.
CookiesConsentConfiguration.java
modules/apps/cookies/cookies-api/src/main/java/com/liferay/cookies/configuration/consent/CookiesConsentConfiguration.java
- Date: Aug. 20, 2025
- Ticket: LPD-60002
- What changed: New configuration values are added for feature flag configurations.
- Reason: This change allows preferences for non-strict cookie types to be hidden from the end-user.
rest-openapi.yaml
modules/apps/headless/headless-asset-library/headless-asset-library-impl/rest-openapi.yaml
- Date: Aug. 21, 2025
- Ticket: LPD-62030
- What changed: Resources now use the full schema name (
UserAccount) instead ofUser. - Reason: This change enforces consistency with other APIs.
DefaultObjectEntryManager.java
modules/apps/object/object-rest-api/src/main/java/com/liferay/object/rest/manager/v1_0/DefaultObjectEntryManager.java
- Date: Aug. 25, 2025
- Ticket: LPD-62356
- What changed: The
deleteRelatedObjectEntryandgetRelatedObjectEntriesmethods now have a newStringparameter for a scope key. - Reason: This change adds support for these operations in a scoped context.
WidgetLookAndFeelConfig.java
modules/apps/headless/headless-admin-site/headless-admin-site-api/src/main/java/com/liferay/headless/admin/site/dto/v1_0/WidgetLookAndFeelConfig.java
- Date: Aug. 25, 2025
- Ticket: LPD-59863
- What changed: A new schema is added for
WidgetLookAndFeelConfig. - Reason: This change improves widget look and feel configuration management.
BatchEngineDeletionHelper.java
modules/apps/batch-engine/batch-engine-api/src/main/java/com/liferay/batch/engine/BatchEngineDeletionHelper.java
- Date: Aug. 25, 2025
- Ticket: LPD-57377
- What changed: The
BatchEngineDeletionHelperinterface and implementations are removed. The logic is moved intoExportImportAttachmentManagerinstead. - Reason: This change improves the code organization.
LayoutPageTemplateStructureLocalServiceUtil.java
modules/apps/layout/layout-page-template-api/src/main/java/com/liferay/layout/page/template/service/LayoutPageTemplateStructureLocalServiceUtil.java
- Date: Aug. 28, 2025
- Ticket: LPD-63831
- What changed: The overloaded
updateLayoutPageTemplateStructureDatamethods have a newlongparameter for a user ID. - Reason: This change prevents using
GuestOrUserUtilin*LocalServiceImplclasses.
DefaultEditableValuesFragmentEntryProcessor.java
modules/apps/fragment/fragment-api/src/main/java/com/liferay/fragment/processor/DefaultEditableValuesFragmentEntryProcessor.java
- Date: Aug. 28, 2025
- Ticket: LPD-64018
- What changed: The
getDefaultEditableValuesJSONObjectmethod’s JSON String parameter is replaced with aJSONObjectparameter. - Reason: This change reduces the back-and-forth conversions from JSON and string values.
DocumentFragmentEntryValidator.java
modules/apps/fragment/fragment-api/src/main/java/com/liferay/fragment/processor/DocumentFragmentEntryValidator.java
- Date: Aug. 28, 2025
- Ticket: LPD-64018
- What changed: The
validateFragmentEntryHTMLmethod’s JSON String parameter is replaced with aJSONObjectparameter. - Reason: This change reduces the back-and-forth conversions from JSON and string values.
FragmentEntryProcessor.java
modules/apps/fragment/fragment-api/src/main/java/com/liferay/fragment/processor/FragmentEntryProcessor.java
- Date: Aug. 28, 2025
- Ticket: LPD-64018
- What changed: The
getDefaultEditableValuesJSONObjectmethod’s JSON String parameter is replaced with aJSONObjectparameter. Additionally, thevalidateFragmentEntryHTMLmethod is removed. - Reason: This change reduces the back-and-forth conversions from JSON and string values. The
validateFragmentEntryHTMLmethod is no longer needed.
FragmentEntryProcessorRegistry.java
modules/apps/fragment/fragment-api/src/main/java/com/liferay/fragment/processor/FragmentEntryProcessorRegistry.java
- Date: Aug. 28, 2025
- Ticket: LPD-64018
- What changed: The
getDefaultEditableValuesJSONObjectandvalidateFragmentEntryHTMLmethods now have aJSONObjectparameter instead of a JSON String parameter. - Reason: This change reduces the back-and-forth conversions from JSON and string values.
FragmentEntryValidator.java
modules/apps/fragment/fragment-api/src/main/java/com/liferay/fragment/processor/FragmentEntryValidator.java
- Date: Aug. 28, 2025
- Ticket: LPD-64018
- What changed: The
validateFragmentEntryHTMLmethod’s JSON String parameter is replaced with aJSONObjectparameter. - Reason: This change reduces the back-and-forth conversions from JSON and string values.
FragmentRenderer.java
modules/apps/fragment/fragment-api/src/main/java/com/liferay/fragment/renderer/FragmentRenderer.java
- Date: Aug. 28, 2025
- Ticket: LPD-64018
- What changed: The
getConfigurationmethod’s JSON String parameter is replaced with aJSONObjectparameter. - Reason: This change reduces the back-and-forth conversions from JSON and string values.
FragmentRendererController.java
modules/apps/fragment/fragment-api/src/main/java/com/liferay/fragment/renderer/FragmentRendererController.java
- Date: Aug. 28, 2025
- Ticket: LPD-64018
- What changed: The
getConfigurationmethod’s JSON String parameter is replaced with aJSONObjectparameter. - Reason: This change reduces the back-and-forth conversions from JSON and string values.
FragmentEntryConfigurationParser.java
modules/apps/fragment/fragment-api/src/main/java/com/liferay/fragment/util/configuration/FragmentEntryConfigurationParser.java
- Date: Aug. 28, 2025
- Ticket: LPD-64018
- What changed: All methods now have a
JSONObjectparameter instead of a JSON String parameter. - Reason: This change reduces the back-and-forth conversions from JSON and string values.
FragmentEntryValidator.java
modules/apps/fragment/fragment-api/src/main/java/com/liferay/fragment/validator/FragmentEntryValidator.java
- Date: Aug. 28, 2025
- Ticket: LPD-64018
- What changed: The
validateConfigurationandvalidateConfigurationValuesmethods now have aJSONObjectparameter instead of a JSON String parameter. - Reason: This change reduces the back-and-forth conversions from JSON and string values.
FragmentCollectionFilter.java
modules/apps/fragment/fragment-collection-filter-api/src/main/java/com/liferay/fragment/collection/filter/FragmentCollectionFilter.java
- Date: Aug. 28, 2025
- Ticket: LPD-64018
- What changed: The
getConfigurationmethod’s JSON String parameter is replaced with aJSONObjectparameter. - Reason: This change reduces the back-and-forth conversions from JSON and string values.
CTEntryLocalService.java
modules/apps/change-tracking/change-tracking-api/src/main/java/com/liferay/change/tracking/service/CTEntryLocalService.java
- Date: Aug. 30, 2025
- Ticket: LPD-63103
- What changed: The
incrementScoreanddecrementScoremethods now accept the score as a parameter instead ofmodelClassNameId. - Reason: The
incrementScoreanddecrementScoremethods leveragedBufferedIncrementincorrectly, causing poor performance. This change updates the signature to ensure the correct usage ofBufferedIncrement.
RootProjectConfigurator.java
modules/sdk/gradle-plugins-workspace/src/main/java/com/liferay/gradle/plugins/workspace/configurator/RootProjectConfigurator.java
- Date: Aug. 30, 2025
- Ticket: LPD-63739
- What changed: The
FORMAT_SOURCE_JAKARTA_TRANSFORM_TASK_NAMEconstant value is replaced withUPGRADE_JAKARTA_TASK_NAME. - Reason: This change enforces naming consistency for
Stringconstants. The underlying name value changed fromformatSourceJakartaTransformtoupgradeJakarta.
TermsSetQuery.java
modules/apps/portal-search/portal-search-api/src/main/java/com/liferay/portal/search/query/TermsSetQuery.java
- Date: Sep. 3, 2025
- Ticket: LPD-64190
- What changed: The
setMinimumShouldMatchField(java.lang.String)method no longer returns aStringvalue. - Reason: The returned value is no longer needed.
CMSDefaultPermissionUtil.java
modules/apps/site/site-cms-site-initializer-api/src/main/java/com/liferay/site/cms/site/initializer/util/CMSDefaultPermissionUtil.java
- Date: Sep. 4, 2025
- Ticket: LPD-62475
- What changed: The
addOrUpdateCMSDefaultPermissionmethod is renamed toaddOrUpdateObjectEntry, and it uses a company ID instead of a group ID. Additionally, thegetCMSDefaultPermissionPermissionsJSONObjectmethod is replaced with thegetJSONObjectmethod. - Reason: The
CMSDefaultPermissionobject definition now has a company scope, and the permissions field is now for default permissions.
DefaultObjectEntryManager.java
modules/apps/object/object-rest-api/src/main/java/com/liferay/object/rest/manager/v1_0/DefaultObjectEntryManager.java
- Date: Sep. 4, 2025
- Ticket: LPD-62317
- What changed: The
deleteRelatedObjectEntryandgetRelatedObjectEntriesmethods have new parameters (Aggregation aggregationandString filterString). - Reason: These methods must use the same parameters used for the
getObjectEntriesmethod.
FormManager.java
modules/apps/layout/layout-api/src/main/java/com/liferay/layout/manager/FormManager.java
- Date: Sep. 6, 2025
- Ticket: LPD-62003
- What changed: The
addFragmentEntryLinksLayoutStructureItemsmethod has a newbooleanparameter (readOnly.) - Reason: This change allows for one side in a side-by-side translation view to be represented as a read-only form.
ObjectDefinitionResourcePermissionUtil.java
modules/apps/object/object-api/src/main/java/com/liferay/object/definition/security/permission/resource/util/ObjectDefinitionResourcePermissionUtil.java
- Date: Sep. 8, 2025
- Ticket: LPD-60127
- What changed: The
populateRootDescendantNodeModelResourcesandremoveRootDescendantNodeModelResourcesmethods are removed. Additionally, thepopulateResourceActionsmethod’sMap<Long, List<ObjectRelationship>>,ObjectDefinitionPersistence, andObjectDefinitionTreeFactoryparameters are removed, and theremoveResourceActionsmethod’sObjectDefinitionPersistenceandObjectDefinitionTreeFactorymethods are removed. - Reason: The logic associated with the removed methods and parameters is no longer applied.
ObjectDefinitionService.java
modules/apps/object/object-api/src/main/java/com/liferay/object/service/ObjectDefinitionService.java
- Date: Sep. 8, 2025
- Ticket: LPD-63539
- What changed: The
addCustomObjectDefinition,addSystemObjectDefinition,updateCustomObjectDefinition, andupdateSystemObjectDefinitionmethods now have an additional parameter (List workflowDefinitionLinks). - Reason: The new parameter is necessary to link workflow definitions to the object definitions being added or updated.
Site.java
modules/apps/headless/headless-site/headless-site-api/src/main/java/com/liferay/headless/site/dto/v1_0/Site.java
- Date: Sep. 9, 2025
- Ticket: LPD-62459
- What changed: The new
active,manualMembership,membershipRestriction, andtypeSettingsfields are added, along with corresponding methods to interact with these fields. - Reason: This change exposes the required properties in the batch APIs.
SiteResource.java
modules/apps/headless/headless-site/headless-site-api/src/main/java/com/liferay/headless/site/resource/v1_0/SiteResource.java
- Date: Sep. 9, 2025
- Ticket: LPD-62459
- What changed: Various methods have a new batch version added. Additionally, the
postSite(Multipartbody)method is renamed topostSiteSiteInitializer(MultipartBody). - Reason: This change is necessary to create batch API methods.
FavIcon.java
modules/apps/headless/headless-admin-site/headless-admin-site-client/src/main/java/com/liferay/headless/admin/site/client/dto/v1_0/FavIcon.java
- Date: Sep. 9, 2025
- Ticket: LPD-63425
- What changed: Various methods are removed in favor of methods that support multiple values.
- Reason: This change adds support for client extensions and item external reference types.
OpenGraphConfiguration.java
modules/apps/layout/layout-seo-api/src/main/java/com/liferay/layout/seo/open/graph/OpenGraphConfiguration.java
- Date: Sep. 9, 2025
- Ticket: LPD-64950
- What changed: The
isOpenGraphEnabled(Company)method’sCompanyparameter is replaced with alongparameter, for the company ID. - Reason: Only the company ID is needed, so retrieving and passing the
Companyitself is unnecessary.
ObjectEntryServiceImpl.java
modules/apps/object/object-service/src/main/java/com/liferay/object/service/impl/ObjectEntryServiceImpl.java
- Date: Sep. 11, 2025
- Ticket: LPD-61816
- What changed: The
userIdparameter is removed from various method signatures. - Reason: This change is necessary to address issues in the method usages.
ObjectEntryLocalService.java
modules/apps/object/object-api/src/main/java/com/liferay/object/service/ObjectEntryLocalService.java
- Date: Sep. 12, 2025
- Ticket: LPD-62479
- What changed: The
partialUpdateObjectEntryandupdateObjectEntrymethods have a newlongparameter, for an object entry folder ID. - Reason: This change fixes a bug.
rest-openapi.yaml
modules/apps/headless/headless-admin-taxonomy/headless-admin-taxonomy-impl/rest-openapi.yaml
- Date: Sep. 16, 2025
- Ticket: LPD-60513
- What changed: Various APIs related to taxonomy vocabularies are removed.
- Reason: These APIs were redundant, because the existing site resource APIs are also usable for CMS.
CMSDefaultPermissionUtil.java
modules/apps/site/site-cms-site-initializer-api/src/main/java/com/liferay/site/cms/site/initializer/util/CMSDefaultPermissionUtil.java
- Date: Sep. 17, 2025
- Ticket: LPD-62565
- What changed: The
addOrUpdateObjectEntrymethod has new parameters (depotGroupIdandtreePath). - Reason: This change is necessary for
CMSDefaultPermissionobject entries to save these values.
rest-openapi.yaml
modules/apps/headless/headless-asset-library/headless-asset-library-impl/rest-openapi.yaml
- Date: Sep. 18, 2025
- Ticket: LPD-65106
- What changed: The
sitespath is renamed toconnectedSitesand theSitepath is renamed toConnectedSite. Additionally, thesitesproperty is renamed toconnectedSitesand thenumberOfSitesproperty is renamed tonumberOfConnectedSites. - Reason: This change enforces more accurate usage of site paths and properties.
DepotGroupItemSelectorCriterion.java
modules/apps/depot/depot-api/src/main/java/com/liferay/depot/item/selector/DepotGroupItemSelectorCriterion.java
- Date: Sep. 18, 2025
- Ticket: LPD-65787
- What changed: The
DepotGroupItemSelectorCriterionclass is removed. Instead, useGroupItemSelectorCriterion. - Reason: The
DepotGroupItemSelectorCriterionclass’s only attribute (and corresponding methods) are now inGroupItemSelectorCriterioninstead.
Site.java
modules/apps/headless/headless-site/headless-site-api/src/main/java/com/liferay/headless/site/dto/v1_0/Site.java
- Date: Sep. 22, 2025
- Ticket: LPD-63756
- What changed: The new
descriptionfield is added, and thenamefield is now aMap<String, String>instead of aString. Their corresponding getter and setter methods are also updated to reflect these changes. - Reason: This change is necessary to update the batch APIs to the required properties and format.
BatchEngineExportTaskExecutor.java
modules/apps/batch-engine/batch-engine-api/src/main/java/com/liferay/batch/engine/BatchEngineExportTaskExecutor.java
- Date: Sep. 22, 2025
- Ticket: LPD-65748
- What changed: The
isPersistContentmethod is renamed toisPersist. - Reason: The method is related to the whole batch engine export task, not only to the content. The name change reflects its functionality.
Warehouse.java
modules/apps/commerce/headless/headless-commerce/headless-commerce-admin-site-setting-api/src/main/java/com/liferay/headless/commerce/admin/site/setting/dto/v1_0/Warehouse.java
- Date: Sep. 22, 2025
- Ticket: LPD-65999
- What changed: The
mvccVersionfield is now anIntegerinstead of aNumber. - Reason: This change enforces consistency with its standard usage.
service.xml
modules/dxp/apps/saml/saml-persistence-service/service.xml
- Date: Sep. 24, 2025
- Ticket: LPD-62689
- What changed: A new table is added, and columns in other tables are sorted for consistency.
- Reason: This change is necessary to persist logout requests without depending on cookies for the SLO process.
PortalK8sAgentConfiguration.java
modules/apps/static/portal-k8s-agent/portal-k8s-agent-api/src/main/java/com/liferay/portal/k8s/agent/configuration/PortalK8sAgentConfiguration.java
- Date: Sep. 24, 2025
- Ticket: LPD-63828
- What changed: The new
debounceDelayMillismethod is added, which implements a configurable property. - Reason: The configuration option adds support for client configurations in a cluster. The default value prevents breaking the configuration for existing users.
SystemObjectEntry.java
modules/apps/object/object-api/src/main/java/com/liferay/object/system/SystemObjectEntry.java
- Date: Sep. 25, 2025
- Ticket: LPD-64789
- What changed: The
SystemObjectEntryclass now implements theExternalReferenceCodeModelandGroupedModelinterfaces. - Reason: This change adds support for
SystemObjectEntryInfoItemObjectProviderextendingBaseInfoItemObjectProvider.
SharingEntryInterpreter.java
/modules/apps/sharing/sharing-api/src/main/java/com/liferay/sharing/interpreter/SharingEntryInterpreter.java
- Date: Sep. 25, 2025
- Ticket: LPD-65945
- What changed: The overloaded
getTitlemethod without a locale parameter is removed. Instead, invoke a different overload of thegetTitlemethod. - Reason: The removed method overload caused a bug with rendering localized entry titles.
ExportImportReportEntryModel.java
modules/apps/export-import/export-import-report-api/src/main/java/com/liferay/exportimport/report/model/ExportImportReportEntryModel.java
- Date: Sep. 26, 2025
- Ticket: LPD-64970
- What changed: The
errorfield is renamed toerrorMessage, and the corresponding getter and setter methods are renamed to reflect this. - Reason: This change enforces consistent naming.
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: Sep. 26, 2025
- Ticket: LPD-65532
- What changed: The
creatorExternalReferenceCodefield is removed, and the corresponding getter and setter methods are removed to reflect this. Classes such ascom.liferay.headless.admin.site.dto.v1_0.SitePagedo not have this field anymore. - Reason: This change reflects the removal of the creator external reference code field from the Admin Site Headless API entities. The creator field already includes the external reference code, so the
creatorExternalReferenceCodefield was redundant.
OAuthClientEntryLocalService.java
modules/apps/oauth-client/oauth-client-persistence-api/src/main/java/com/liferay/oauth/client/persistence/service/OAuthClientEntryLocalService.java
- Date: Sep. 26, 2025
- Ticket: LPD-55735
- What changed: The
addOAuthClientEntryandupdateOAuthClientEntrymethods now have a newStringparameter (customClaimsJSON). - Reason:
OAuthClientEntrynow has acustomClaimsJsonfield, so these methods must change to reflect that.
FragmentEntryMenuDisplayConfiguration.java
modules/apps/fragment/fragment-api/src/main/java/com/liferay/fragment/util/configuration/FragmentEntryMenuDisplayConfiguration.java
- Date: Oct. 1, 2025
- Ticket: LPD-64513
- What changed: The
getSiteNavigationMenuIdhas a newlongparameter for a group ID. All method usages are updated to reflect this. - Reason: This change allows for getting the
siteNavigationMenuIdfrom thesiteNavigationMenuExternalReferenceCodewhen thesiteNavigationMenuIdis not known, for example, when the configuration is imported via a site initializer. The group ID is necessary to fetch the navigation menu by the external reference code.
BatchEnginePortletDataHandlerTest.java
modules/apps/export-import/export-import-test/src/testIntegration/java/com/liferay/exportimport/internal/data/handler/test/BatchEnginePortletDataHandlerTest.java
- Date: Oct. 2, 2025
- Ticket: LPD-64365
- What changed: Various method signatures in the
ExportImportDescriptorsubclass are changed. - Reason: This change adds more capabilities for batch exports and imports. For example,
getParameters(com.liferay.exportimport.kernel.lar.PortletDataContext)can now be used to add parameters depending on thePortletDataContext. TheisActive(com.liferay.exportimport.kernel.lar.PortletDataContext)method can decide whether to execute batch processes, based on conditions determined by thePortletDataContext.
LayoutAdminPortletKeys.java
modules/apps/layout/layout-admin-api/src/main/java/com/liferay/layout/admin/constants/LayoutAdminPortletKeys.java
- Date: Oct. 2, 2025
- Ticket: LPD-64365
- What changed:The new
LAYOUT_SET_LAYOUTSkey is added. - Reason: This change supports the new
LayoutSetLayoutsPortletportlet, which provides batch export/import support for site pages.
FDSRenderer.java
modules/apps/frontend-data-set/frontend-data-set-api/src/main/java/com/liferay/frontend/data/set/renderer/FDSRenderer.java
- Date: Oct. 3, 2025
- Ticket: LPD-38587
- What changed: The new
getFDSAPIURLmethod is added, which calculates the API URL and optionally interpolates tokens in it. Interpolation is done with data from the underlying infrastructure, and now also from an optional set of resolved tokens. - Reason: This method is necessary to support on-the-fly URL interpolation in the Data Set fragment.
FDSSerializer.java
modules/apps/frontend-data-set/frontend-data-set-api/src/main/java/com/liferay/frontend/data/set/serializer/FDSSerializer.java
- Date: Oct. 3, 2025
- Ticket: LPD-38587
- What changed: New method overloads are added for the
serializeAPIURLandserializeAdditionalAPIURLParametersmethods. - Reason: The new overloaded methods allow the renderer to serialize API URL components with or without token interpolation and to provide a set of resolved tokens for serialization. These methods are necessary to support the changes in
FDSRenderer.
FormManager.java
modules/apps/layout/layout-api/src/main/java/com/liferay/layout/manager/FormManager.java
- Date: Oct. 3, 2025
- Ticket: LPD-59269
- What changed: The
addFragmentEntryLinksLayoutStructureItemmethod now requires anInfoField<?>parameter instead of only a unique ID. - Reason: The info field’s type information is necessary in case the fragment entry key is not provided.
BaseDisplayTag.java
modules/apps/frontend-data-set/frontend-data-set-taglib/src/main/java/com/liferay/frontend/data/set/taglib/servlet/taglib/BaseDisplayTag.java
- Date: Oct. 3, 2025
- Ticket: LPD-66897
- What changed: The
selectedItemsattribute is renamed todefaultSelectedItems. - Reason: This change maintains the behavior in the frontend data set React component, and it enforces consistency with the name in the API.
FragmentEntryLinkLocalServiceUtil.java
modules/apps/fragment/fragment-api/src/main/java/com/liferay/fragment/service/FragmentEntryLinkLocalServiceUtil.java
- Date: Oct. 8, 2025
- Ticket: LPD-66496
- What changed: The
updateClassModel(long plid)method now has a newlongparameter for a user ID. - Reason: This change reduces the usage of
GuestOrUserUtilin*LocalServiceImplclasses.
LayoutPageTemplateEntryLocalServiceUtil.java
modules/apps/layout/layout-page-template-api/src/main/java/com/liferay/layout/page/template/service/LayoutPageTemplateEntryLocalServiceUtil.java
- Date: Oct. 8, 2025
- Ticket: LPD-66496
- What changed: The
updateLayoutPageTemplateEntry(long, long, long)method has a newlongparameter for a user ID. - Reason: This change reduces the usage of
GuestOrUserUtilin*LocalServiceImplclasses.
AccountEntryWrapper.java
modules/apps/account/account-api/src/main/java/com/liferay/account/model/AccountEntryWrapper.java
- Date: Oct. 9, 2025
- Ticket: LPD-67845
- What changed: The
getEmailAddresses,getListTypeAddresses(long[] listTypeIds),getPhones, andgetWebsitesmethods no longer throwPortalException. - Reason: The underlying code has been changed to address potential performance issues.
AccountEntry.java
modules/apps/account/account-api/src/main/java/com/liferay/account/model/AccountEntry.java
- Date: Oct. 9, 2025
- Ticket: LPD-67845
- What changed: The
getEmailAddresses,getListTypeAddresses(long[] listTypeIds),getPhones, andgetWebsitesmethods no longer throwPortalException. - Reason: The underlying code has been changed to address potential performance issues.
PageElementDefinition.java
modules/apps/headless/headless-admin-site/headless-admin-site-api/src/main/java/com/liferay/headless/admin/site/dto/v1_0/PageElementDefinition.java
- Date: Oct. 10, 2025
- Ticket: LPD-65996
- What changed: The
RowandColumnpage element definitions are changed toGridandModulepage element definitions, respectively. - Reason: This change is necessary to correctly model grid page elements for the new content page headless APIs.
TemplateContextHelper.java
modules/apps/portal-template/portal-template-engine-api/src/main/java/com/liferay/portal/template/engine/TemplateContextHelper.java
- Date: Oct. 14, 2025
- Ticket: LPD-61382
- What changed: Various Expando-related service variables are removed from the
populateCommonHelperUtilitiesmethod. Instead, unblockserviceLocatorand use it to retrieve services manually. - Reason: This change reduces the exposure of sensitive methods via
serviceLocator.
InMemoryOnlyConfigurationThreadLocal.java
modules/apps/static/portal-configuration/portal-configuration-persistence-api/src/main/java/com/liferay/portal/configuration/persistence/InMemoryOnlyConfigurationThreadLocal.java
- Date: Oct. 16, 2025
- Ticket: LPD-67024
- What changed: The
setmethod is removed, in favor of the new overloadedsetWithSafeClosablemethod. - Reason: The
setmethod did not properly handle the thread-local Boolean values, which can betrue,false, or unset.
ObjectLayoutLocalServiceImpl.java
modules/apps/object/object-service/src/main/java/com/liferay/object/service/impl/ObjectLayoutLocalServiceImpl.java
- Date: Oct. 16, 2025
- Ticket: LPD-68036
- What changed: The code now throws an
ObjectLayoutBoxTypeExceptioninstead of anObjectLayoutBoxCategorizationTypeException. - Reason: The renamed type of exception is now usable for both categorization and SEO.
rest-openapi.yaml
modules/apps/headless/headless-admin-site/headless-admin-site-impl/rest-openapi.yaml
- Date: Oct. 17, 2025
- Ticket: LPD-67745
- What changed: In the
PageSettingsschema,NavigationSettingsis changed toSitePageNavigationSettings. Additionally,queryStringis moved fromPageSettingstoSitePageNavigationSettings. - Reason: This change improves the structure of navigation setting fields.
SystemObjectDefinitionManager.java
modules/apps/object/object-api/src/main/java/com/liferay/object/system/SystemObjectDefinitionManager.java
- Date: Oct. 21, 2025
- Ticket: LPD-66189
- What changed: The
addBaseModel(User, Map<String, Object>)method has a newbooleanparameter forcheckPermissions. This parameter distinguishes between user-initiated and system-initiated calls. - Reason: This change is necessary to properly handle permission checks. When the call is made by a user, permissions must be validated. When it is executed by the system, permission checks are skipped to avoid unnecessary restrictions.
BatchEngineImportStrategy.java
modules/apps/batch-engine/batch-engine-api/src/main/java/com/liferay/batch/engine/strategy/BatchEngineImportStrategy.java
- Date: Oct. 23, 2025
- Ticket: LPD-68544
- What changed: The
BatchEngineImportStrategyinterface is removed. - Reason: The
BatchEngineImportStrategyinterface is no longer needed. The logic is better placed inBatchEngineImportTaskExecutorImpl.
BatchEngineTaskItemDelegate.java
modules/apps/batch-engine/batch-engine-api/src/main/java/com/liferay/batch/engine/BatchEngineTaskItemDelegate.java
- Date: Oct. 23, 2025
- Ticket: LPD-68544
- What changed: The
setBatchEngineImportStrategymethod is removed. The newsetImportUnsafeBiConsumermethod is added to replace it. - Reason: We do not have
BatchEngineImportStrategy; we directly set the consumer which knows how to import the items.
FragmentEntryLinkModel.java
modules/apps/fragment/fragment-api/src/main/java/com/liferay/fragment/model/FragmentEntryLinkModel.java
- Date: Oct. 24, 2025
- Ticket: LPD-63444
- What changed: Getter and setter methods are removed for the fragment entry ID and original fragment entry link ID. Instead, get the fragment entry link using the fragment entry link external reference code, using the group ID instead of the fragment entry ID.
- Reason: The
fragmentEntryIdandoriginalFragmentEntryLinkIdcolumns are removed to allow lazy referencing of fragment entries.
rest-openapi.yaml
modules/apps/object/object-rest-impl/rest-openapi.yaml
- Date: Oct. 27, 2025
- Ticket: LPD-66355
- What changed: The
Scopeelement’s reference is changed to point to the same file. - Reason: This change enforces coding standards and reuse of code.
ReportEntryResource.java
modules/apps/export-import/export-import-rest-api/src/main/java/com/liferay/exportimport/rest/resource/v1_0/ReportEntryResource.java
- Date: Oct. 28, 2025
- Ticket: LPD-56153
- What changed: The
getImportProcessErrorsPagemethod is renamed togetImportProcessReportEntriesPage. - Reason: This matches the change in the API endpoint from
/import-processes/[importProcessId]/errorsto/import-processes/[importProcessId]/report-entries. This change makes the endpoint compatible with batch imports.
CommerceOrderConfiguration.java
modules/apps/commerce/commerce-api/src/main/java/com/liferay/commerce/configuration/CommerceOrderConfiguration.java
- Date: Oct. 29, 2025
- Ticket: LPD-68534
- What changed: The
openOrdersVisibilityScopeandplacedOrdersVisibilityScopeconfiguration fields are added. - Reason: This change allows for handling the user visibility scope of orders in a channel.
ExportImportVulcanBatchEngineTaskItemDelegate.java
modules/apps/export-import/export-import-api/src/main/java/com/liferay/exportimport/vulcan/batch/engine/ExportImportVulcanBatchEngineTaskItemDelegate.java
- Date: Oct. 30, 2025
- Ticket: LPD-67397
- What changed: The
getItemClassNamemethod is renamed togetModelClassName, thegetItemModelNamemethod is renamed togetModelName, and thegetLabelmethod is renamed togetLabelLanguageKey. Additionally, the newgetResourceClassNameandisApplicableExternalReferenceCodemethods are added. - Reason: The method name changes are to enforce naming standards. The
getResourceClassNamemethod is used to control and count staged models. TheisApplicableExternalReferenceCodemethod filters the external reference codes corresponding to each resource.
rest-openapi.yaml
modules/apps/headless/headless-asset-library/headless-asset-library-impl/rest-openapi.yaml
- Date: Oct. 31, 2025
- Ticket: LPD-66000
- What changed: All resources are renamed to match external reference codes instead of resource IDs.
- Reason: This change aligns the API’s schemas with best practices.
rest-openapi.yaml
modules/apps/headless/headless-admin-site/headless-admin-site-impl/rest-openapi.yaml
- Date: Nov. 1, 2025
- Ticket: LPD-70345
- What changed: The
CategoryFragmentConfigurationFieldValueschema is modified to manage fragment instance configuration values. - Reason: This change is necessary to handle the fragment instance configuration values.
ObjectDefinitionResourcePermissionUtil.java
modules/apps/object/object-api/src/main/java/com/liferay/object/definition/security/permission/resource/util/ObjectDefinitionResourcePermissionUtil.java
- Date: Nov. 2, 2025
- Ticket: LPD-61657
- What changed: The
populateResourceActions(ObjectActionLocalService, List<ObjectAction>, ObjectDefinition, PortletLocalService, ResourceActions)method has newList<ObjectField>andObjectFieldLocalServiceparameters. TheremoveResourceActions(ObjectActionLocalService, ObjectDefinition, ResourceActions)method also has a newObjectFieldLocalServiceparameter. - Reason: This change is necessary to manage object attachment download permissions.
ObjectFieldUtil.java
modules/apps/object/object-api/src/main/java/com/liferay/object/field/util/ObjectFieldUtil.java
- Date: Nov. 2, 2025
- Ticket: LPD-61657
- What changed: The
getAttachmentDownloadURL(DLURLHelper, FileEntry, long, String, ThemeDisplay)method has newObjectEntry,ObjectEntryService,ObjectField, andPermissionCheckerparameters. - Reason: This change adds the object entry’s external reference code to the download URL, so the download permission can be checked on request. The
ObjectEntryServiceandPermissionCheckerparameters are also necessary to ensure the URL is only returned with proper download permissions.
Changes in portal-impl Classes
MailServiceImpl.java
portal-impl/src/com/liferay/mail/service/impl/MailServiceImpl.java
- Date: Aug. 22, 2025
- Ticket: LPD-58844
- What changed: The
MailServiceImplimplementation logic is moved into themail-messaging-implmodule as a component. - Reason: This change is made to move mail-related logic into modules.
PropsValues.java
portal-impl/src/com/liferay/portal/util/PropsValues.java
- Date: Sep. 19, 2025
- Ticket: LPD-66041
- What changed: All properties are moved to
portal-kernel/src/com/liferay/portal/kernel/util/PropsValues.java.PropsValues.FEATURE_FLAGS_JSONis in-lined to its only usage. See the changes forportal-kernel/src/com/liferay/portal/kernel/util/PropsValues.javafor property changes after this change. - Reason: This change is part of merging
portal-implintoportal-kernel.
RouteImpl.java
portal-impl/src/com/liferay/portlet/RouteImpl.java
- Date: Oct. 10, 2025
- Ticket: LPD-68254
- What changed: The
RouteImplclass is removed. - Reason:
RouteImpl’s implementation is moved intoRoute.
LayoutServiceImpl.java
portal-impl/src/com/liferay/portal/service/impl/LayoutLocalServiceImpl.java and portal-impl/src/com/liferay/portal/service/impl/LayoutServiceImpl.java
- Date: Oct. 29, 2025
- Ticket: LPD-66054
- What changed: The
updateLayoutmethod is renamed toupdateTypeSettings. UseupdateTypeSettings(Layout layout, String typeSettings)orupdateTypeSettings(long groupId, boolean privateLayout, long layoutId)instead. - Reason: This change enforces consistent naming.
Changes in portal-kernel Classes
LayoutModel.java
portal-kernel/src/com/liferay/portal/kernel/model/LayoutModel.java
- Date: Jul. 28, 2025
- Ticket: LPD-60063
- What changed: The
sourcePrototypeLayoutUuidfield is removed, in favor of the newlayoutSetPrototypeLayoutERCfield. Get thelayoutSetPrototypelayout using an external reference code and group ID instead of the UUID. - Reason: This change adds support for lazy referencing of the site template layout.
ConsentCookieType.java
portal-kernel/src/com/liferay/portal/kernel/cookies/ConsentCookieType.java
- Date: Aug. 20, 2025
- Ticket: LPD-60002
- What changed: The
ConsentCookieTypeconstructor now has a newbooleanparameter forhideFromEndUser. The newisHideFromEndUsermethod is also added. - Reason: This change allows for non-strict cookie type preferences to be hidden from end users.
PortalUtil.java
portal-kernel/src/com/liferay/portal/kernel/util/PortalUtil.java
- Date: Aug. 22, 2025
- Ticket: LPD-58844
- What changed: The
getMailIdmethod is removed. The implementation logic is moved into themail-messaging-implmodule. - Reason: This change is made to move mail-related logic into modules.
OrphanReferencesDataCleanupUtil.java
portal-kernel/src/com/liferay/portal/kernel/upgrade/data/cleanup/util/OrphanReferencesDataCleanupUtil.java
- Date: Sep. 10, 2025
- Ticket: LPD-61503
- What changed: The
cleanUpmethod’stargetColumnNameparameter is now aString[]type instead ofString. - Reason: This change adds support for adding one or many columns.
DLAppLocalServiceUtil.java
portal-kernel/src/com/liferay/document/library/kernel/service/DLAppLocalServiceUtil.java
- Date: Sep. 14, 2025
- Ticket: LPD-61435
- What changed: The new
fetchFileEntry(long fileEntryId)method is added. - Reason: This change adds support for external reference codes in the info framework implementation.
DLAppLocalServiceWrapper.java
portal-kernel/src/com/liferay/document/library/kernel/service/DLAppLocalServiceWrapper.java
- Date: Sep. 14, 2025
- Ticket: LPD-61435
- What changed: The new
fetchFileEntry(long fileEntryId)method is added. - Reason: This change adds support for external reference codes in the info framework implementation.
DLAppLocalService.java
portal-kernel/src/com/liferay/document/library/kernel/service/DLAppLocalService.java
- Date: Sep. 14, 2025
- Ticket: LPD-61435
- What changed: The new
fetchFileEntry(long fileEntryId)method is added. - Reason: This change adds support for external reference codes in the info framework implementation.
DLFileEntryServiceUtil.java
portal-kernel/src/com/liferay/document/library/kernel/service/DLFileEntryServiceUtil.java
- Date: Sep. 14, 2025
- Ticket: LPD-61435
- What changed: The new
fetchFileEntry(long fileEntryId)method is added. - Reason: This change adds support for external reference codes in the info framework implementation.
DLFileEntryServiceWrapper.java
portal-kernel/src/com/liferay/document/library/kernel/service/DLFileEntryServiceWrapper.java
- Date: Sep. 14, 2025
- Ticket: LPD-61435
- What changed: The new
fetchFileEntry(long fileEntryId)method is added. - Reason: This change adds support for external reference codes in the info framework implementation.
DLFileEntryService.java
portal-kernel/src/com/liferay/document/library/kernel/service/DLFileEntryService.java
- Date: Sep. 14, 2025
- Ticket: LPD-61435
- What changed: The new
fetchFileEntry(long fileEntryId)method is added. - Reason: This change adds support for external reference codes in the info framework implementation.
PropsKeys.java
portal-kernel/src/com/liferay/portal/kernel/util/PropsKeys.java
- Date: Sep. 23, 2025
- Ticket: LPD-58844
- What changed: Various mail-related properties are removed.
- Reason: Mail-related properties have been migrated to OSGi configurations. The related portal properties are no longer needed.
ConnectionPoolMetrics.java
portal-kernel/src/com/liferay/portal/kernel/dao/jdbc/pool/metrics/ConnectionPoolMetrics.java
- Date: Sep. 23, 2025
- Ticket: LPD-66446
- What changed: The
ConnectionPoolMetricsinterface is removed. - Reason: This interface was only used by a test class, which is now also removed.
PropsValues.java
portal-kernel/src/com/liferay/portal/kernel/util/PropsValues.java
- Date: Sep. 23, 2025
- Ticket: LPD-58844
- What changed: Various mail-related properties are removed.
- Reason: Mail-related properties have been migrated to OSGi configurations. The related portal properties are no longer needed.
PortletBag.java
portal-kernel/src/com/liferay/portal/kernel/portlet/PortletBag.java
- Date: Sep. 26, 2025
- Ticket: LPD-64248
- What changed: The
getPortletDataHandlerInstancemethod has a newlongparameter for a company ID. - Reason: This change allows for
BatchEnginePortletDataHandlerinstances to be enabled and disabled with a company-scoped feature flag.
PropsKeys.java
portal-kernel/src/com/liferay/portal/kernel/util/PropsKeys.java
- Date: Sep. 30, 2025
- Ticket: LPD-67002
- What changed: The
PERMISSIONS_CHECKERvalue is removed. Instead, leveragePermissionCheckerWrapperFactory’s permission checker wrapping. APermissionCheckerWrapperFactoryimplementation can be registered as an OSGi service from any module, so at runtime it can wrap aPermissionCheckerinstance. - Reason: Permission checker implementation switching only supports the shielded container shipped permission checker implementation. This has limitations for usage. It requires putting the implementation into a shielded container classpath (which is no longer supported because portal ext is no longer supported), and the implementation can not reference any module classes.
PropsValues.java
portal-kernel/src/com/liferay/portal/kernel/util/PropsValues.java
- Date: Sep. 30, 2025
- Ticket: LPD-67002
- What changed: The
PERMISSIONS_CHECKERproperty is removed. - Reason: Permission checker implementation switching only supports the shielded container shipped permission checker implementation. This has limitations for usage. It requires putting the implementation into a shielded container classpath (which is no longer supported because portal ext is no longer supported), and the implementation can not reference any module classes.
DBPartition.java
portal-kernel/src/com/liferay/portal/kernel/db/partition/DBPartition.java
- Date: Oct. 6, 2025
- Ticket: LPD-63411
- What changed: The
isPartitionEnabledmethod is removed. Instead, replace all usages with theDATABASE_PARTITION_ENABLEDproperty inPropsValues. - Reason: This method is no longer needed because of the
DATABASE_PARTITION_ENABLEDproperty.
DataSourceFactory.java
portal-kernel/src/com/liferay/portal/kernel/dao/jdbc/DataSourceFactory.java
- Date: Oct. 6, 2025
- Ticket: LPD-67617
- What changed: The
DataSourceFactoryclass is removed. - Reason: The implementation logic is merged into
DataSourceFactoryUtil.
LayoutModel.java
portal-kernel/src/com/liferay/portal/kernel/model/LayoutModel.java
- Date: Oct. 8, 2025
- Ticket: LPD-64053
- What changed: The
styleBookEntryIdfield is removed, in favor of the newstyleBookEntryERCfield. Methods related to these fields are updated accordingly. - Reason: This change adds support for lazy referencing of a layout’s style book.
PermissionChecker.java
portal-kernel/src/com/liferay/portal/kernel/security/permission/PermissionChecker.java
- Date: Oct. 9, 2025
- Ticket: LPD-68139
- What changed: The
init(User, RoleContributor[])method is removed. - Reason: The
RoleContributorcollecting logic is now in thePermissionCheckerImplconstructor.
PermissionCheckerWrapper.java
portal-kernel/src/com/liferay/portal/kernel/security/permission/wrapper/PermissionCheckerWrapper.java
- Date: Oct. 9, 2025
- Ticket: LPD-68139
- What changed: The
PermissionCheckerfield is nowprotected. - Reason: This change allows
PermissionCheckerWrapperto directly invoke on the delegatePermissionCheckerrather than usingsuper.
PropsKeys.java
portal-kernel/src/com/liferay/portal/kernel/util/PropsKeys.java
- Date: Oct. 9, 2025
- Ticket: LPD-67167
- What changed: The
mail.mx.updateproperty is renamed tocompany.mx.update. - Reason: This property is only used by
CompanyLocalServiceImplto control whether to update the current company’s mail domain.
PropsValues.java
portal-kernel/src/com/liferay/portal/kernel/util/PropsValues.java
- Date: Oct. 9, 2025
- Ticket: LPD-67167
- What changed: The
mail.mx.updateproperty is renamed tocompany.mx.update. - Reason: This property is only used by
CompanyLocalServiceImplto control whether to update the current company’s mail domain.
Route.java
portal-kernel/src/com/liferay/portal/kernel/portlet/Route.java
- Date: Oct. 10, 2025
- Ticket: LPD-68254
- What changed:
Routenow includes the implementation logic from the removedRouteImplclass. - Reason: This change simplifies the
Routeimplementation.
FriendlyURLMapper.java
portal-kernel/src/com/liferay/portal/kernel/portlet/FriendlyURLMapper.java
- Date: Oct. 10, 2025
- Ticket: LPD-68254
- What changed: Various setter methods are merged into
setFriendlyURLRoutes(String)andinit(Portlet). - Reason: This change adds support for postponing binding
FriendlyURLMapperto a targetPortlet.
BaseFriendlyURLMapper.java
portal-kernel/src/com/liferay/portal/kernel/portlet/BaseFriendlyURLMapper.java
- Date: Oct. 10, 2025
- Ticket: LPD-68254
- What changed: Various setter methods are merged into
setFriendlyURLRoutes(String)andinit(Portlet). - Reason: This change adds support for postponing binding
FriendlyURLMapperto a targetPortlet.
PortletBag.java
portal-kernel/src/com/liferay/portal/kernel/portlet/PortletBag.java
- Date: Oct. 10, 2025
- Ticket: LPD-68254
- What changed: The
getFriendlyURLMapperTrackermethod is removed. - Reason: The method implementation is no longer needed.
FriendlyURLMapperandPortletbinding logic is moved toPortletImpl#getFriendlyURLMapperInstance.
BaseExternalReferenceCodeUpgradeProcess.java
portal-kernel/src/com/liferay/portal/kernel/upgrade/BaseExternalReferenceCodeUpgradeProcess.java
- Date: Oct. 14, 2025
- Ticket: LPD-68474
- What changed: The abstract
getTableAndPrimaryKeyColumnNamesmethod is removed. Additionally, the newgetTableNamesmethod is added. Instead, if you must manually specify a primary key, now you can also override the newgetPrimaryKeyColumnName(String tableName)method and specify the primary key with it. - Reason: Instead of specifying both the table name and the primary key, now the developer only must specify the table name and the upgrade process to get the primary key from the database table.
ZipFileUtil.java
portal-kernel/src/com/liferay/portal/kernel/zip/ZipFileUtil.java
- Date: Oct. 16, 2025
- Ticket: LPD-67024
- What changed: The
toJarFile(Class<T>, String)andtoZipFile(Class<T>, String, String)methods are removed. - Reason: These methods are no longer used.
DBInspector.java
portal-kernel/src/com/liferay/portal/kernel/dao/db/DBInspector.java
- Date: Oct. 23, 2025
- Ticket: LPD-66152
- What changed: The
hasTable(String, boolean)method is removed. Instead, usehasTable(String tableName). - Reason: This method implementation is no longer needed.
Changes in portal-test Classes
JDBCConnectionLeakDetectionClassTestRule.java
portal-test/src/com/liferay/portal/test/rule/JDBCConnectionLeakDetectionClassTestRule.java
- Date: Sep. 23, 2025
- Ticket: LPD-66446
- What changed: The
JDBCConnectionLeakDetectionClassTestRuleclass is removed. - Reason: This test rule is no longer used.