Liferay DXP 2025.Q3 Breaking Changes
Breaking changes break or significantly alter existing functionality or code structure. Here are all of the breaking changes for Liferay DXP 2025.Q3. 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 |
|---|---|---|
| Document Library Excluded MIME Types | Allowed MIME types are now configured in the Documents and Media section of Instance/System Settings, instead of via portal-ext.properties. You must reconfigure Liferay with your preferred settings if you were previously using the dl.file.entry.raw.metadata.processor.excluded.mime.types property. | LPD-42305 |
| Filtering and Retrieving Navigation Menus | Users can now filter navigation menus by creation or modified date. Additionally, the headless APIs now support retrieving navigation menus by external reference code. | LPD-53248, LPD-53454, LPD-53452 |
| Java EE Code | Liferay has upgraded to the current enterprise Java platform, Jakarta EE 10. Java EE libraries (javax.*) are no longer compatible and must be replaced with updated Jakarta EE (jakarta.*) versions. Update all custom code or third-party libraries to be compatible with Jakarta EE. See Upgrading to Jakarta. This does not affect client extension microservices, because they run outside of Liferay’s environment. | LPD-46462 |
| Liferay Faces (JSF) | The current version of Liferay Faces is now deprecated, due to dependency on Java EE. A future release of Liferay Faces based on Jakarta EE and Portlet 4.0 is expected to be compatible with Liferay DXP 2025.Q3. | FACES-3717 |
| PortletMVC4Spring 6.x | PortletMVC4Spring has migrated to a new version based on Jakarta EE and Spring 6.0; previous versions use Java EE and are no longer compatible with Liferay DXP. Upgrade your PortletMVC4Spring projects to 6.x to maintain compatibility. | MVCS-77 |
| Publication-Level Permissions | Publication-level permissions can now be changed by users with the Manage Permissions permission, like other kinds of permissions. This change makes the permission behavior consistent for publications with other areas of Liferay DXP. | LPD-53667 |
| Publication Owner Permissions | Administrators can now customize permissions fully for users (such as publishing permissions), even if they own the publication. Previously, publication owners were always given full permissions by default. This change prevents scenarios where users are unintentionally allowed to publish to production. | LPD-45452, LPD-45453 |
| Supported Application Servers | With Liferay’s upgrade to Jakarta EE, the Apache Tomcat 9.0.x, JBoss EAP 7.4, Wildfly 26.1, and Weblogic 14c application servers are no longer supported. Instead, upgrade to a Jakarta-compatible application server: Apache Tomcat 10.1.x, JBoss EAP 8.0, or Wildfly 30. Liferay plans to add support for Weblogic 15 in a future release. | LPD-42980 |
| Warehouse Field in Shipping Options | The Warehouse field is removed from the details panel in Shipping Options. It was removed to prevent confusion, since the field was purely informational and it did not apply any warehouse restrictions to shipping options. If you used this field to store metadata, transfer it to another location to prevent data loss before upgrading. | LPD-55068 |
| Warning for Sandbox Mode | Sites in “Sandbox Only” mode now display a warning if the publication owner still retains permission to publish changes. This warning does not change the sandbox behavior, but adds a new validation for publication. | LPD-52207 |
| Site ID parameters in Headless APIs | Headless APIs with a site ID included as part of the entity path now also accept the site name or external reference code in its place. | LPD-53833 |
Changes in Module Source
DisplayPageTemplateFolderResource.java
modules/apps/headless/headless-admin-site/headless-admin-site-api/src/main/java/com/liferay/headless/admin/site/resource/v1_0/DisplayPageTemplateFolderResource.java
- Date: May 6, 2025
- Ticket: LPD-49422
- What changed: All
*PermissionsPagemethods that includeExternalReferenceCode*in the name have been renamed. - Reason: The API has been reorganized to use external reference codes by default, so this change enforces naming consistency.
rest-openapi.yaml
modules/apps/headless/headless-admin-site/headless-admin-site-impl/rest-openapi.yaml
- Date: May 6, 2025
- Ticket: LPD-49160
- What changed: All instances of
siteMapSettingsandSiteMapSettingsare renamed (to have a lower-case “m”). - Reason: This change enforces consistent naming in the code.
OrderItemResourceImpl.java
modules/apps/commerce/headless/headless-commerce/headless-commerce-admin-order-impl/src/main/java/com/liferay/headless/commerce/admin/order/internal/resource/v1_0/OrderItemResourceImpl.java
- Date: May 7, 2025
- Ticket: LPD-54294
- What changed: The
patchOrderItemandpatchOrderItemByExternalReferenceCodemethods now return anOrderItemobject. - Reason: This change is necessary to handle patching order items.
CommerceOrderItemServiceImpl.java
modules/apps/commerce/commerce-service/src/main/java/com/liferay/commerce/service/impl/CommerceOrderItemServiceImpl.java
- Date: May 7, 2025
- Ticket: LPD-54382
- What changed: The
importCommerceOrderItemmethod accepts a newStringparameter for a JSON object. - Reason: This change is necessary to manage product options.
CommerceOrderItemLocalServiceImpl.java
modules/apps/commerce/commerce-service/src/main/java/com/liferay/commerce/service/impl/CommerceOrderItemLocalServiceImpl.java
- Date: May 7, 2025
- Ticket: LPD-54382
- What changed: The
importCommerceOrderItemmethod accepts a newStringparameter for a JSON object. - Reason: This change is necessary to manage product options.
ListTypeEntryService.java
modules/apps/list-type/list-type-api/src/main/java/com/liferay/list/type/service/ListTypeEntryService.java
- Date: May 8, 2025
- Ticket: LPD-24056
- What changed: The
addListTypeEntrymethod accepts a newbooleanparameter (system). - Reason: The new parameter is required to differentiate between system and custom picklist items.
CTSettingsConfiguration.java
modules/apps/change-tracking/change-tracking-api/src/main/java/com/liferay/change/tracking/configuration/CTSettingsConfiguration.java
- Date: May 8, 2025
- Ticket: LPD-54533
- What changed: The new
default-owner-action-idsconfiguration is added. - Reason: This change allows users to change default owner permissions.
CTConflictConfiguration.java
modules/apps/change-tracking/change-tracking-api/src/main/java/com/liferay/change/tracking/configuration/CTConflictConfiguration.java
- Date: May 8, 2025
- Ticket: LPD-54533
- What changed: The
CTConflictConfigurationclass is removed. - Reason: The implementation of
CTConflictConfigurationis moved intoCTSettingsConfiguration. This allowsCTCollectionLocalServiceImplto access the necessary configurations.
SimpleCaptchaImpl.java
modules/apps/captcha/captcha-api/src/main/java/com/liferay/captcha/simplecaptcha/SimpleCaptchaImpl.java
- Date: May 9, 2025
- Ticket: LPD-52902
- What changed: The
activate,initBackgroundProducers,initGimpyRenderers,initNoiseProducers,initTextProducers, andinitWordRenderersmethods are removed. - Reason: This change fixes an issue that prevented CAPTCHA instance settings from updating until the server restarts.
CommercePriceListItemSelectorCriterion.java
modules/apps/commerce/commerce-item-selector-api/src/main/java/com/liferay/commerce/item/selector/criterion/CommercePriceListItemSelectorCriterion.java
- Date: May 13, 2025
- Ticket: LPD-50859
- What changed: The
CommercePriceListItemSelectorCriterionclass is moved to thecom.liferay.commerce.item.selectorpackage. - Reason: This change enforces consistent code organization.
SimpleSiteItemSelectorCriterion.java
modules/apps/commerce/commerce-item-selector-api/src/main/java/com/liferay/commerce/item/selector/criterion/SimpleSiteItemSelectorCriterion.java
- Date: May 13, 2025
- Ticket: LPD-50859
- What changed: The
SimpleSiteItemSelectorCriterionclass is moved to thecom.liferay.commerce.item.selectorpackage. - Reason: This change enforces consistent code organization.
NavigationMenuResource.java
modules/apps/headless/headless-delivery/headless-delivery-api/src/main/java/com/liferay/headless/delivery/resource/v1_0/NavigationMenuResource.java
- Date: May 13, 2025
- Ticket: LPD-53456
- What changed: The
getSiteNavigationMenusPageandpostSiteNavigationMenusPageExportBatchmethods each accept three newStringparameters (search,filterString, andsortString). - Reason: This change adds support for filtering navigation menus by creation or modified date.
TypeAlias.java
modules/core/petra/petra-sql-dsl-api/src/main/java/com/liferay/petra/sql/dsl/expression/TypeAlias.java
- Date: May 14, 2025
- Ticket: LPD-54574
- What changed: The
TypeAliasclass is removed. - Reason: This class is no longer used.
Expression.java
modules/core/petra/petra-sql-dsl-api/src/main/java/com/liferay/petra/sql/dsl/expression/Expression.java
- Date: May 14, 2025
- Ticket: LPD-54574
- What changed: The
as(String name, Class<?> javaType)method is removed. - Reason: This method is no longer used.
DefaultTypeAlias.java
modules/core/petra/petra-sql-dsl-spi/src/main/java/com/liferay/petra/sql/dsl/spi/expression/DefaultTypeAlias.java
- Date: May 14, 2025
- Ticket: LPD-54574
- What changed: The
DefaultTypeAliasclass is removed. - Reason: This class is no longer used.
DefaultExpression.java
modules/core/petra/petra-sql-dsl-spi/src/main/java/com/liferay/petra/sql/dsl/spi/expression/DefaultExpression.java
- Date: May 14, 2025
- Ticket: LPD-54574
- What changed: The
Expression#as(String name, Class<?> javaType)method is removed. - Reason: This method is no longer used.
ObjectEntryFolderLocalService.java
modules/apps/object/object-api/src/main/java/com/liferay/object/service/ObjectEntryFolderLocalService.java
- Date: May 14, 2025
- Ticket: LPD-54252
- What changed: The
addObjectEntryFolderandupdateObjectEntryFoldermethods have a newStringparameter for a description. - Reason: This change adds support for object folder descriptions.
ObjectEntryFolderService.java
modules/apps/object/object-api/src/main/java/com/liferay/object/service/ObjectEntryFolderService.java
- Date: May 14, 2025
- Ticket: LPD-54252
- What changed: The
addObjectEntryFolderandupdateObjectEntryFoldermethods have a newStringparameter for a description. - Reason: This change adds support for object folder descriptions.
OverviewContentResource.java
modules/apps/analytics/analytics-cms-rest-api/src/main/java/com/liferay/analytics/cms/rest/resource/v1_0/OverviewContentResource.java
- Date: May 15, 2025
- Ticket: LPD-53971
- What changed: The
OverviewContentResourceclass s renamed toOverviewResource. Additionally, the newgetFileOverviewmethod is added. - Reason: The class name change adds support for multiple types of overviews using the same
Overviewobject. The newgetFileOverviewmethod adds support for retrieving file overviews.
BaseDBPartitionTestCase.java
modules/apps/portal/portal-db-partition-test-util/src/main/java/com/liferay/portal/db/partition/test/util/BaseDBPartitionTestCase.java
- Date: May 19, 2025
- Ticket: LPD-53290
- What changed: The
extractCompany(long)method is renamed toexportCompany(long), theextractDBPartitionsmethod is renamed toexportDBPartitions, theextractDBPartitions(long[])method is renamed toexportDBPartitions(long[]), thegetExtractedPartitionName(long)method is renamed togetExportedPartitionName(long), and theinsertDBPartitionsmethod is renamed toimportDBPartitions. - Reason: This change enforces consistent naming in the code.
ImportTaskContext.java
modules/apps/batch-engine/batch-engine-api/src/main/java/com/liferay/batch/engine/context/ImportTaskContext.java
- Date: May 23, 2025
- Ticket: LPD-54521
- What changed: The
getOriginalUserIdmethod is replaced with a newgetOriginalUsermethod. ThesetOriginalUserIdmethod is replaced with a newsetOriginalUser(User)method. - Reason: This change is necessary to process actions (such as setting some context attributes) over
BatchEngineTaskItemDelegatebefore importing. The original user is needed for this operation, so storing the original user ID separately inImportTaskContextis redundant.
BatchEngineImportStrategy.java
modules/apps/batch-engine/batch-engine-api/src/main/java/com/liferay/batch/engine/strategy/BatchEngineImportStrategy.java
- Date: May 23, 2025
- Ticket: LPD-54521
- What changed: The
runmethod accepts a newBatchEngineTaskItemDelegate<?>parameter. - Reason: This change is necessary to process actions (such as setting some context attributes) over
BatchEngineTaskItemDelegatebefore importing.
ImportTaskPostAction.java
modules/apps/batch-engine/batch-engine-api/src/main/java/com/liferay/batch/engine/action/ImportTaskPostAction.java
- Date: May 23, 2025
- Ticket: LPD-54521
- What changed: The
runmethod accepts a newBatchEngineTaskItemDelegate<?>parameter. - Reason: This change is necessary to process actions (such as setting some context attributes) over
BatchEngineTaskItemDelegatebefore importing.
ImportTaskPreAction.java
modules/apps/batch-engine/batch-engine-api/src/main/java/com/liferay/batch/engine/action/ImportTaskPreAction.java
- Date: May 23, 2025
- Ticket: LPD-54521
- What changed: The
runmethod accepts a newBatchEngineTaskItemDelegate<?>parameter. - Reason: This change is necessary to process actions (such as setting some context attributes) over
BatchEngineTaskItemDelegatebefore importing.
NavigationMenuItem.java
modules/apps/headless/headless-delivery/headless-delivery-api/src/main/java/com/liferay/headless/delivery/dto/v1_0/NavigationMenuItem.java
- Date: Jun. 5, 2025
- Ticket: LPD-56756
- What changed: The
contentURL,link,link_i18n,sitePageURL, andurlfields are all removed. - Reason: These fields are no longer used.
OverviewResource.java
modules/apps/analytics/analytics-cms-rest-api/src/main/java/com/liferay/analytics/cms/rest/resource/v1_0/OverviewResource.java
- Date: Jun. 5, 2025
- Ticket: LPD-56314
- What changed: Various methods have a two new
Stringparameters forrangeEndandrangeStart. - Reason: This change adds support for custom time ranges.
CommerceAccountHelper.java
modules/apps/commerce/commerce-api/src/main/java/com/liferay/commerce/util/CommerceAccountHelper.java
- Date: Jun. 6, 2025
- Ticket: LPD-55683
- What changed: The
CommerceAccountHelperclass is moved to thecom.liferay.commerce.helperpackage. - Reason: This change enforces consistent code organization.
CommerceAccountRoleHelper.java
modules/apps/commerce/commerce-api/src/main/java/com/liferay/commerce/util/CommerceAccountRoleHelper.java
- Date: Jun. 6, 2025
- Ticket: LPD-55683
- What changed: The
CommerceAccountRoleHelperclass is moved to thecom.liferay.commerce.helperpackage. - Reason: This change enforces consistent code organization.
CommerceShippingHelper.java
modules/apps/commerce/commerce-api/src/main/java/com/liferay/commerce/util/CommerceShippingHelper.java
- Date: Jun. 6, 2025
- Ticket: LPD-55683
- What changed: The
CommerceShippingHelperclass is moved to thecom.liferay.commerce.helperpackage. - Reason: This change enforces consistent code organization.
CommerceWorkflowedModelHelper.java
modules/apps/commerce/commerce-api/src/main/java/com/liferay/commerce/util/CommerceWorkflowedModelHelper.java
- Date: Jun. 6, 2025
- Ticket: LPD-55683
- What changed: The
CommerceWorkflowedModelHelperclass is moved to thecom.liferay.commerce.helperpackage. - Reason: This change enforces consistent code organization.
CommercePaymentHelper.java
modules/apps/commerce/commerce-payment-api/src/main/java/com/liferay/commerce/payment/util/CommercePaymentHelper.java
- Date: Jun. 6, 2025
- Ticket: LPD-55683
- What changed: The
CommercePaymentHelperclass is moved to thecom.liferay.commerce.payment.helperpackage. - Reason: This change enforces consistent code organization.
CommercePaymentHttpHelper.java
modules/apps/commerce/commerce-payment-api/src/main/java/com/liferay/commerce/payment/util/CommercePaymentHttpHelper.java
- Date: Jun. 6, 2025
- Ticket: LPD-55683
- What changed: The
CommercePaymentHttpHelperclass is moved to thecom.liferay.commerce.payment.helperpackage. - Reason: This change enforces consistent code organization.
CPCollectionProviderHelper.java
modules/apps/commerce/commerce-product-api/src/main/java/com/liferay/commerce/product/util/CPCollectionProviderHelper.java
- Date: Jun. 6, 2025
- Ticket: LPD-55683
- What changed: The
CPCollectionProviderHelperclass is moved to thecom.liferay.commerce.product.helperpackage. - Reason: This change enforces consistent code organization.
CPCompareHelper.java
modules/apps/commerce/commerce-product-api/src/main/java/com/liferay/commerce/product/util/CPCompareHelper.java
- Date: Jun. 6, 2025
- Ticket: LPD-55683
- What changed: The
CPCompareHelperclass is moved to thecom.liferay.commerce.product.helperpackage. - Reason: This change enforces consistent code organization.
CPDefinitionHelper.java
modules/apps/commerce/commerce-product-api/src/main/java/com/liferay/commerce/product/util/CPDefinitionHelper.java
- Date: Jun. 6, 2025
- Ticket: LPD-55683
- What changed: The
CPDefinitionHelperclass is moved to thecom.liferay.commerce.product.helperpackage. - Reason: This change enforces consistent code organization.
CPInstanceHelper.java
modules/apps/commerce/commerce-product-api/src/main/java/com/liferay/commerce/product/util/CPInstanceHelper.java
- Date: Jun. 6, 2025
- Ticket: LPD-55683
- What changed: The
CPInstanceHelperclass is moved to thecom.liferay.commerce.product.helperpackage. - Reason: This change enforces consistent code organization.
VirtualCPTypeHelper.java
modules/apps/commerce/commerce-product-type-virtual-api/src/main/java/com/liferay/commerce/product/type/virtual/util/VirtualCPTypeHelper.java
- Date: Jun. 6, 2025
- Ticket: LPD-55683
- What changed: The
VirtualCPTypeHelperclass is moved to thecom.liferay.commerce.product.type.virtual.helperpackage. - Reason: This change enforces consistent code organization.
CSDiagramCPTypeHelper.java
modules/apps/commerce/commerce-shop-by-diagram-api/src/main/java/com/liferay/commerce/shop/by/diagram/util/CSDiagramCPTypeHelper.java
- Date: Jun. 6, 2025
- Ticket: LPD-55683
- What changed: The
CSDiagramCPTypeHelperclass is moved to thecom.liferay.commerce.shop.by.diagram.helperpackage. - Reason: This change enforces consistent code organization.
CommerceWishListHttpHelper.java
modules/apps/commerce/commerce-wish-list-api/src/main/java/com/liferay/commerce/wish/list/util/CommerceWishListHttpHelper.java
- Date: Jun. 6, 2025
- Ticket: LPD-55683
- What changed: The
CommerceWishListHttpHelperclass is moved to thecom.liferay.commerce.wish.list.helperpackage. - Reason: This change enforces consistent code organization.
ServiceContextHelper.java
modules/apps/commerce/headless/headless-commerce-core-api/src/main/java/com/liferay/headless/commerce/core/util/ServiceContextHelper.java
- Date: Jun. 6, 2025
- Ticket: LPD-55683
- What changed: The
ServiceContextHelperclass is moved to thecom.liferay.headless.commerce.core.helperpackage. - Reason: This change enforces consistent code organization.
ObjectDefinitionLocalService.java
modules/apps/object/object-api/src/main/java/com/liferay/object/service/ObjectDefinitionLocalService.java
- Date: Jun. 6, 2025
- Ticket: LPD-56966
- What changed: The
updateRootObjectDefinitionIdmethod is removed. - Reason: The binding and unbinding operations should be performed via the object relationship service instead.
JournalArticleLocalizationPersistence.java
modules/apps/journal/journal-api/src/main/java/com/liferay/journal/service/persistence/JournalArticleLocalizationPersistence.java
- Date: Jun. 7, 2025
- Ticket: LPD-57309
- What changed: The
findByArticlePKandfindByA_Lmethods are removed. UsefindByC_Ainstead offindByArticlePK, and usefinderByC_A_Linstead offindByA_L. - Reason: The
findByC_AandfindByC_A_Lmethods duplicate the same behavior as the removed methods. Removing these methods also improves search performance for some queries.
GroupUtil.java
modules/apps/object/object-api/src/main/java/com/liferay/object/scope/util/GroupUtil.java
- Date: Jun. 9, 2025
- Ticket: LPD-54011
- What changed: The
GroupUtilclass is removed. - Reason: This class is removed because it duplicates the functionality of the
GroupUtilclass invulcan-api.
CPConfigurationEntryLocalServiceImpl.java
modules/apps/commerce/commerce-product-service/src/main/java/com/liferay/commerce/product/service/impl/CPConfigurationEntryLocalServiceImpl.java
- Date: Jun. 12, 2025
- Ticket: LPD-57077
- What changed: The
forceDeleteCPConfigurationEntrymethod is removed. Additionally, thedeleteCPConfigurationEntrymethod accepts a newbooleanparameter (force). Use the newforceparameter indeleteCPConfigurationEntryinstead offorceDeleteCPConfigurationEntry. - Reason: This change enforces consistent patterns in code logic.
CPConfigurationListLocalServiceImpl.java
modules/apps/commerce/commerce-product-service/src/main/java/com/liferay/commerce/product/service/impl/CPConfigurationListLocalServiceImpl.java
- Date: Jun. 12, 2025
- Ticket: LPD-57077
- What changed: The
forceDeleteCPConfigurationListmethod is removed. Additionally, thedeleteCPConfigurationListmethod accepts a newbooleanparameter (force). Use the newforceparameter indeleteCPConfigurationListinstead offorceDeleteCPConfigurationList. - Reason: This change enforces consistent patterns in code logic.
CPConfigurationListServiceImpl.java
modules/apps/commerce/commerce-product-service/src/main/java/com/liferay/commerce/product/service/impl/CPConfigurationListServiceImpl.java
- Date: Jun. 12, 2025
- Ticket: LPD-57077
- What changed: The
forceDeleteCPConfigurationListmethod is removed. - Reason: This method is no longer used.
ObjectEntryDisplayContext.java
modules/apps/object/object-api/src/main/java/com/liferay/object/display/context/ObjectEntryDisplayContext.java
- Date: Jun. 13, 2025
- Ticket: LPD-44846
- What changed: The new
getSchedulePropertiesmethod is added. - Reason: The object layout screen must render schedule fields so users can input values. This change returns schedule properties (review, display date, and expiration date) in the display context so they can be rendered.
ObjectEntryLocalServiceImpl.java
modules/apps/object/object-service/src/main/java/com/liferay/object/service/impl/ObjectEntryLocalServiceImpl.java
- Date: Jun. 17, 2025
- Ticket: LPD-44846
- What changed: The new
patchExpireObjectEntry(Long objectEntryId)method is added. - Reason: This change adds support for object entry expiration.
LayoutItemSelectorCriterion.java
modules/apps/layout/layout-item-selector-api/src/main/java/com/liferay/layout/item/selector/LayoutItemSelectorCriterion.java
- Date: Jun. 24, 2025
- Ticket: LPD-50859
- What changed: The
LayoutItemSelectorCriterionclass is moved to thecom.liferay.layout.item.selectorpackage. - Reason: This change enforces consistent code organization.
rest-openapi.yaml
modules/apps/headless/headless-admin-site/headless-admin-site-impl/rest-openapi.yaml
- Date: Jun. 25, 2025
- Ticket: LPD-58230
- What changed: The
taxonomyCategoriesfield is removed. - Reason: The
taxonomyCategoriesfield is unnecessary, because thetaxonomyCategoryItemExternalReferencesfield handles the same function.
ObjectEntryResource.java
modules/apps/object/object-rest-api/src/main/java/com/liferay/object/rest/resource/v1_0/ObjectEntryResource.java
- Date: Jun. 26, 2025
- Ticket: LPD-53392
- What changed: The
putByExternalReferenceCodeCurrentExternalReferenceCodeObjectRelationshipNameRelatedExternalReferenceCodemethod implementation is moved toObjectEntryRelatedObjectsResourceImpl. - Reason: Other functions related to this method are also in
ObjectEntryRelatedObjectsResourceImpl.
LayoutClassedModelUsageModel.java
modules/apps/layout/layout-api/src/main/java/com/liferay/layout/model/LayoutClassedModelUsageModel.java
- Date: Jun. 26, 2025
- Ticket: LPD-58195
- What changed: The
getClassedModelExternalReferenceCodemethod is renamed togetClassExternalReferenceCode. ThesetClassedModelExternalReferenceCodemethod is renamed tosetClassExternalReferenceCode. - Reason: This change enforces consistent naming in the code.
service.xml
modules/apps/object/object-service/service.xml
- Date: Jun. 26, 2025
- Ticket: LPD-44844
- What changed: The
objectDefinitionentity has a new column,enableObjectEntrySchedule. - Reason: This change adds support for scheduling object entry activation.
ObjectDefinitionImpl.java
modules/apps/object/object-service/src/main/java/com/liferay/object/model/impl/ObjectDefinitionImpl.java
- Date: Jun. 26, 2025
- Ticket: LPD-56967
- What changed: The
isNode(long rootObjectDefinitionId),isRootNode(long rootObjectDefinitionId), andisDescendantNode(long rootObjectDefinitionId)methods are added. - Reason: This change adds support for binding object definition nodes to many trees.
service.xml
modules/apps/commerce/commerce-service/service.xml
- Date: Jun. 30, 2025
- Ticket: LPD-5823
- What changed: The new
C_NotC_GteQfinder for thecommerceShipmentIdcolumn is added. - Reason: This change improves search performance.
ObjectFieldInfoFieldConverter.java
modules/apps/object/object-info-api/src/main/java/com/liferay/object/info/field/converter/ObjectFieldInfoFieldConverter.java
- Date: Jul. 1, 2025
- Ticket: LPD-58986
- What changed: The
ObjectFieldInfoFieldConverterconstructor now accepts a newDDMExpressionFactoryparameter. - Reason: A DDM expression evaluator is necessary to determine if an object field is read-only.
LayoutThemeItemSelectorCriterion.java
modules/apps/layout/layout-theme-item-selector-api/src/main/java/com/liferay/layout/theme/item/selector/criterion/LayoutThemeItemSelectorCriterion.java
- Date: Jul. 2, 2025
- Ticket: LPD-50859
- What changed: The
LayoutThemeItemSelectorCriterionclass is moved to thecom.liferay.layout.theme.item.selectorpackage. - Reason: This change enforces consistent code organization.
ObjectRelationshipImpl.java
modules/apps/object/object-service/src/main/java/com/liferay/object/model/impl/ObjectRelationshipImpl.java
- Date: Jul. 2, 2025
- Ticket: LPD-56967
- What changed: The
isEdgeCandidatemethod is removed. - Reason: This method is no longer used.
ObjectDefinitionLocalService.java
modules/apps/object/object-api/src/main/java/com/liferay/object/service/ObjectDefinitionLocalService.java
- Date: Jul. 9, 2025
- Ticket: LPD-59361
- What changed: The new
getObjectDefinitionsandgetObjectDefinitionsCountmethods are added. - Reason: The new methods in this change are required to create a search container with object definitions.
CTCollectionPersistence.java
modules/apps/change-tracking/change-tracking-api/src/main/java/com/liferay/change/tracking/service/persistence/CTCollectionPersistence.java
- Date: Jul. 10, 2025
- Ticket: LPD-59985
- What changed: The
find*methods inCTCollectionPersistencenow all require a company ID. - Reason: This change ensures the proper
CTSchemaVersionis returned per company ID.
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: Jul. 16, 2025
- Ticket: LPD-57032
- What changed: The compatibility version is increased, due to a fix that adds support for independently implementing
EntityModelResource. - Reason: Previously, REST builder tests using
EntityModelalways failed becauseEntityModelResourcewas only implemented ifgenerateBatchwas set totrueinrest-config.yaml. With this change, the implementation is independent, but a new compatibility version is needed for Liferay versions without this fix.
ObjectDefinitionSettingLocalService.java
modules/apps/object/object-api/src/main/java/com/liferay/object/service/ObjectDefinitionSettingLocalService.java
- Date: Jul. 16, 2025
- Ticket: LPD-56968
- What changed: The
getObjectDefinitionSettingMapmethod is renamed togetObjectDefinitionSettingsMap. - Reason: This change enforces consistent naming in the code.
ObjectDefinitionSettingLocalServiceUtil.java
modules/apps/object/object-api/src/main/java/com/liferay/object/service/ObjectDefinitionSettingLocalServiceUtil.java
- Date: Jul. 16, 2025
- Ticket: LPD-56968
- What changed: The
getObjectDefinitionSettingMapmethod is renamed togetObjectDefinitionSettingsMap. - Reason: This change enforces consistent naming in the code.
ObjectDefinitionSettingLocalServiceWrapper.java
modules/apps/object/object-api/src/main/java/com/liferay/object/service/ObjectDefinitionSettingLocalServiceWrapper.java
- Date: Jul. 16, 2025
- Ticket: LPD-56968
- What changed: The
getObjectDefinitionSettingMapmethod is renamed togetObjectDefinitionSettingsMap. - Reason: This change enforces consistent naming in the code.
SitemapConfigurationManager.java
modules/apps/site/site-api/src/main/java/com/liferay/site/configuration/manager/SitemapConfigurationManager.java
- Date: Jul. 26, 2025
- Ticket: LPD-59176
- What changed: The
saveSitemapCompanyConfigurationmethod signature has changed. - Reason: This change allows the company sitemap configuration to save object definitions.
BaseAMImageCounter.java
modules/apps/adaptive-media/adaptive-media-image-api/src/main/java/com/liferay/adaptive/media/image/counter/BaseAMImageCounter.java
- Date: Aug. 25, 2025
- Ticket: LPD-62588
- What changed: The protected
forEachFileEntrymethod is removed, and the newgetClassNamemethod is added. ThegetMimeTypesmethod is nowprivateinstead ofprotected. - Reason: The counting method now uses
DSLCounterinstead of checking each file entry’s size individually. It can iterate over groups to check the previewable processor max size.
Changes in portal-impl Classes
CompanyLocalServiceImpl.java
portal-impl/src/com/liferay/portal/service/impl/CompanyLocalServiceImpl.java
- Date: May 19, 2025
- Ticket: LPD-53290
- What changed: The
extractCompany(long)method is renamed toexportCompany(long). - Reason: This change enforces consistent naming in the code.
ResourcePermissionLocalServiceImpl.java
portal-impl/src/com/liferay/portal/service/impl/ResourcePermissionLocalServiceImpl.java
- Date: Jun. 10, 2025
- Ticket: LPD-57695
- What changed: The
IndividualPortletResourcePermissionProviderinterface andgetIndividualPortletResourcePermissions(long)method have been removed. - Reason: The logic is reorganized in
ResourcePermissionLocalServiceImplto improve cache utilization.
ConfigurationImpl.java
portal-impl/src/com/liferay/portal/configuration/ConfigurationImpl.java
- Date: Jun. 25, 2025
- Ticket: LPD-58995
- What changed: The
addProperties(Properties)andremoveProperties(Properties)methods are removed. - Reason: Configurations are now set with individual keys and values instead.
PropsUtil.java
portal-impl/src/com/liferay/portal/util/PropsUtil.java
- Date: Jun. 25, 2025
- Ticket: LPD-58995
- What changed: The
addProperties(Properties),addProperties(UnicodeProperties), andremoveProperties(Properties)methods are removed. - Reason: Configurations are now set with individual keys and values instead.
DigesterImpl.java
portal-impl/src/com/liferay/portal/util/DigesterImpl.java
- Date: Jun. 26, 2025
- Ticket: LPD-59064
- What changed: The
DigesterImplclass is removed. - Reason:
DigesterUtilnow handles this functionality by itself.
Log4JUtil.java
portal-impl/src/com/liferay/portal/log4j/Log4JUtil.java
- Date: Jun. 27, 2025
- Ticket: LPD-59251
- What changed: The
getOriginalLevel(String)andinitLog4J(String, String, ClassLoader, LogFactory, Map)methods are removed. - Reason: These methods are no longer used.
RoleFinderImpl.java
portal-impl/src/com/liferay/portal/service/persistence/impl/RoleFinderImpl.java
- Date: Jul. 8, 2025
- Ticket: LPD-59906
- What changed: Many overloaded
replacePermissionCheckmethods are now removed. - Reason: These methods are no longer used.
Changes in portal-kernel Classes
ThemeDisplay.java
portal-kernel/src/com/liferay/portal/kernel/theme/ThemeDisplay.java
- Date: May 7, 2025
- Ticket: LPD-54638
- What changed: The
getPathCmsandsetPathCmsmethods are removed. - Reason: These methods are no longer used.
PortletDataHandler.java
portal-kernel/src/com/liferay/exportimport/kernel/lar/PortletDataHandler.java
- Date: May 13, 2025
- Ticket: LPD-52903
- What changed: The
isCompanymethod is removed. - Reason: This method is no longer needed because
BatchEnginePortletDataHandlernow respects data levels.
SubscriptionSender.java
portal-kernel/src/com/liferay/portal/kernel/util/SubscriptionSender.java
- Date: May 19, 2025
- Ticket: LPD-52528
- What changed: The
addFileAttachment(File)andaddFileAttachment(File, String)methods are removed. - Reason: These methods are no longer needed.
MailMessage.java
portal-kernel/src/com/liferay/mail/kernel/model/MailMessage.java
- Date: May 19, 2025
- Ticket: LPD-52528
- What changed: The
addFileAttachment(File)andaddFileAttachment(File, String)methods are removed. - Reason: These methods are no longer needed.
BaseExternalReferenceCodeUpgradeProcess.java
portal-kernel/src/com/liferay/portal/kernel/upgrade/BaseExternalReferenceCodeUpgradeProcess.java
- Date: May 22, 2025
- Ticket: LPD-56137
- What changed: The
useUUID(String)method is renamed toisUseUIUD(String). - Reason: This change enforces consistent naming in the code.
WorkflowDefinitionLinkService.java
portal-kernel/src/com/liferay/portal/kernel/service/WorkflowDefinitionLinkService.java
- Date: May 23, 2025
- Ticket: LPD-54787
- What changed: The
addWorkflowDefinitionLinkmethod now accepts a newStringparameter for an external reference code. - Reason: This change adds support for adding workflow definition links using a specific external reference code with the request.
Serializer.java
portal-kernel/src/com/liferay/portal/kernel/io/Serializer.java
- Date: Jun. 6, 2025
- Ticket: LPD-44842
- What changed: The
bufferQueueThreadLocalfield is renamed toreference. - Reason: This change enforces consistent naming in the code.
LazyReferencingThreadLocal.java
portal-kernel/src/com/liferay/portal/kernel/lazy/referencing/LazyReferencingThreadLocal.java
- Date: Jun. 18, 2025
- Ticket: LPD-49899
- What changed: The
isIncompleteModelandsetIncompleteModelWithSafeCloseablemethods are no longerpublic. - Reason: These methods are no longer used outside of
export-import-service-module.
Configuration.java
portal-kernel/src/com/liferay/portal/kernel/configuration/Configuration.java
- Date: Jun. 25, 2025
- Ticket: LPD-58995
- What changed: The
addProperties(Properties)andremoveProperties(Properties)methods are removed. - Reason: Configurations are now set with individual keys and values instead.
Digester.java
portal-kernel/src/com/liferay/portal/kernel/util/Digester.java
- Date: Jun. 26, 2025
- Ticket: LPD-59064
- What changed: The
Digesterinterface is removed. - Reason:
DigesterUtilnow handles this functionality by itself.
Jdk14LogFactoryImpl.java
portal-kernel/src/com/liferay/portal/kernel/log/Jdk14LogFactoryImpl.java
- Date: Jun. 27, 2025
- Ticket: LPD-59251
- What changed: The
Jdk14LogFactoryImplclass is removed. - Reason: This class is no longer needed.
Jdk14LogImpl.java
portal-kernel/src/com/liferay/portal/kernel/log/Jdk14LogImpl.java
- Date: Jun 27, 2025
- Ticket: LPD-59251
- What changed: The
Jdk14LogImplclass is removed. - Reason: This class is no longer needed.
LogFactoryUtil.java
portal-kernel/src/com/liferay/portal/kernel/log/LogFactoryUtil.java
- Date: Jun. 27, 2025
- Ticket: LPD-59251
- What changed: The
setLogFactorymethod is removed. - Reason: There is now only one implementation of
Log4jLogFactoryImpl, so changing it is no longer necessary.
PropsKeys.java
portal-kernel/src/com/liferay/portal/kernel/util/PropsKeys.java
- Date: Jul. 2, 2025
- Ticket: LPD-42485
- What changed: The
DL_FILE_ENTRY_RAW_METADATA_PROCESSOR_EXCLUDED_MIME_TYPESproperty is removed. Instead, configure excluded MIME types in Site, Instance, or System Settings. - Reason: This configuration is now set in Site, Instance, or System Settings instead.
InlineSQLHelperUtil.java
portal-kernel/src/com/liferay/portal/kernel/security/permission/InlineSQLHelperUtil.java
- Date: Jul. 8, 2025
- Ticket: LPD-59906
- What changed: Many overloaded
replacePermissionCheckmethods are now removed. - Reason: These methods are no longer needed.
LayoutSet.java
portal-kernel/src/com/liferay/portal/kernel/model/LayoutSet.java
- Date: Jul. 15, 2025
- Ticket: LPD-60643
- What changed: The
getVirtualHostnamesnow returns aNavigableMapinstead of aTreeMap. ThesetVirtualHostnamesmethod now accepts aNavigableMapparameter instead of aTreeMap. - Reason: This change hides the map’s implementation details to avoid unnecessary copying.
Portal.java
portal-kernel/src/com/liferay/portal/kernel/util/Portal.java
- Date: Jul. 15, 2025
- Ticket: LPD-60643
- What changed: The
getVirtualHostnamesnow returns aNavigableMapinstead of aTreeMap. - Reason: This change is necessary because of changes to
LayoutSet.
Changes in portal-test Classes
FeatureFlags.java
portal-test/src/com/liferay/portal/test/rule/FeatureFlags.java
- Date: May 7, 2025
- Ticket: LPD-54819
- What changed: The annotation structure in
FeatureFlagsis changed. - Reason: This change is necessary to support setting feature flags to
trueorfalseby default depending on the type.
PropsTestUtil.java
portal-test/src/com/liferay/portal/kernel/test/util/PropsTestUtil.java
- Date: Jun. 23, 2025
- Ticket: LPD-58705
- What changed: The
PropsTestUtilclass is removed. Directly set properties instead. - Reason: This class is no longer needed.
JDKLoggerTestUtil.java
portal-test/src/com/liferay/portal/kernel/test/JDKLoggerTestUtil.java
- Date: Jun. 27, 2025
- Ticket: LPD-59251
- What changed: The
JDKLoggerTestUtilclass is removed. - Reason: This class is no longer needed.
LoggerTestUtil.java
portal-test/src/com/liferay/portal/test/log/LoggerTestUtil.java
- Date: Jun. 27, 2025
- Ticket: LPD-59251
- What changed: The
configureJDKLogger(String, Level)method is removed. - Reason: This method is no longer used.
Changes in util-java Classes
PortletProps.java
util-java/src/com/liferay/util/portlet/PortletProps.java
- Date: Jun. 25, 2025
- Ticket: LPD-58995
- What changed: The
addProperties(Properties)andremoveProperties(Properties)methods are removed. - Reason: Configurations are now set with individual keys and values instead.
ServiceProps.java
util-java/src/com/liferay/util/service/ServiceProps.java
- Date: Jun. 25, 2025
- Ticket: LPD-58995
- What changed: The
addProperties(Properties)andremoveProperties(Properties)methods are removed. - Reason: Configurations are now set with individual keys and values instead.
Changes in Taglibs
bnd.bnd
util-taglib/bnd.bnd
- Date: 1748002342
- Ticket: LPD-53474
- What changed: The
alloy-taglibdependency is removed. - Reason: This taglib is no longer needed.