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
*PermissionsPage
methods 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
siteMapSettings
andSiteMapSettings
are 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
patchOrderItem
andpatchOrderItemByExternalReferenceCode
methods now return anOrderItem
object. - 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
importCommerceOrderItem
method accepts a newString
parameter 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
importCommerceOrderItem
method accepts a newString
parameter 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
addListTypeEntry
method accepts a newboolean
parameter (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-ids
configuration 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
CTConflictConfiguration
class is removed. - Reason: The implementation of
CTConflictConfiguration
is moved intoCTSettingsConfiguration
. This allowsCTCollectionLocalServiceImpl
to 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
, andinitWordRenderers
methods 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
CommercePriceListItemSelectorCriterion
class is moved to thecom.liferay.commerce.item.selector
package. - 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
SimpleSiteItemSelectorCriterion
class is moved to thecom.liferay.commerce.item.selector
package. - 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
getSiteNavigationMenusPage
andpostSiteNavigationMenusPageExportBatch
methods each accept three newString
parameters (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
TypeAlias
class 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
DefaultTypeAlias
class 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
addObjectEntryFolder
andupdateObjectEntryFolder
methods have a newString
parameter 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
addObjectEntryFolder
andupdateObjectEntryFolder
methods have a newString
parameter 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
OverviewContentResource
class s renamed toOverviewResource
. Additionally, the newgetFileOverview
method is added. - Reason: The class name change adds support for multiple types of overviews using the same
Overview
object. The newgetFileOverview
method 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)
, theextractDBPartitions
method is renamed toexportDBPartitions
, theextractDBPartitions(long[])
method is renamed toexportDBPartitions(long[])
, thegetExtractedPartitionName(long)
method is renamed togetExportedPartitionName(long)
, and theinsertDBPartitions
method 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
getOriginalUserId
method is replaced with a newgetOriginalUser
method. ThesetOriginalUserId
method is replaced with a newsetOriginalUser(User)
method. - Reason: This change is necessary to process actions (such as setting some context attributes) over
BatchEngineTaskItemDelegate
before importing. The original user is needed for this operation, so storing the original user ID separately inImportTaskContext
is 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
run
method accepts a newBatchEngineTaskItemDelegate<?>
parameter. - Reason: This change is necessary to process actions (such as setting some context attributes) over
BatchEngineTaskItemDelegate
before 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
run
method accepts a newBatchEngineTaskItemDelegate<?>
parameter. - Reason: This change is necessary to process actions (such as setting some context attributes) over
BatchEngineTaskItemDelegate
before 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
run
method accepts a newBatchEngineTaskItemDelegate<?>
parameter. - Reason: This change is necessary to process actions (such as setting some context attributes) over
BatchEngineTaskItemDelegate
before 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
, andurl
fields 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
String
parameters forrangeEnd
andrangeStart
. - 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
CommerceAccountHelper
class is moved to thecom.liferay.commerce.helper
package. - 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
CommerceAccountRoleHelper
class is moved to thecom.liferay.commerce.helper
package. - 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
CommerceShippingHelper
class is moved to thecom.liferay.commerce.helper
package. - 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
CommerceWorkflowedModelHelper
class is moved to thecom.liferay.commerce.helper
package. - 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
CommercePaymentHelper
class is moved to thecom.liferay.commerce.payment.helper
package. - 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
CommercePaymentHttpHelper
class is moved to thecom.liferay.commerce.payment.helper
package. - 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
CPCollectionProviderHelper
class is moved to thecom.liferay.commerce.product.helper
package. - 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
CPCompareHelper
class is moved to thecom.liferay.commerce.product.helper
package. - 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
CPDefinitionHelper
class is moved to thecom.liferay.commerce.product.helper
package. - 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
CPInstanceHelper
class is moved to thecom.liferay.commerce.product.helper
package. - 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
VirtualCPTypeHelper
class is moved to thecom.liferay.commerce.product.type.virtual.helper
package. - 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
CSDiagramCPTypeHelper
class is moved to thecom.liferay.commerce.shop.by.diagram.helper
package. - 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
CommerceWishListHttpHelper
class is moved to thecom.liferay.commerce.wish.list.helper
package. - 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
ServiceContextHelper
class is moved to thecom.liferay.headless.commerce.core.helper
package. - 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
updateRootObjectDefinitionId
method 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
findByArticlePK
andfindByA_L
methods are removed. UsefindByC_A
instead offindByArticlePK
, and usefinderByC_A_L
instead offindByA_L
. - Reason: The
findByC_A
andfindByC_A_L
methods 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
GroupUtil
class is removed. - Reason: This class is removed because it duplicates the functionality of the
GroupUtil
class 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
forceDeleteCPConfigurationEntry
method is removed. Additionally, thedeleteCPConfigurationEntry
method accepts a newboolean
parameter (force
). Use the newforce
parameter indeleteCPConfigurationEntry
instead 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
forceDeleteCPConfigurationList
method is removed. Additionally, thedeleteCPConfigurationList
method accepts a newboolean
parameter (force
). Use the newforce
parameter indeleteCPConfigurationList
instead 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
forceDeleteCPConfigurationList
method 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
getScheduleProperties
method 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
LayoutItemSelectorCriterion
class is moved to thecom.liferay.layout.item.selector
package. - 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
taxonomyCategories
field is removed. - Reason: The
taxonomyCategories
field is unnecessary, because thetaxonomyCategoryItemExternalReferences
field 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
putByExternalReferenceCodeCurrentExternalReferenceCodeObjectRelationshipNameRelatedExternalReferenceCode
method 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
getClassedModelExternalReferenceCode
method is renamed togetClassExternalReferenceCode
. ThesetClassedModelExternalReferenceCode
method 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
objectDefinition
entity 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_GteQ
finder for thecommerceShipmentId
column 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
ObjectFieldInfoFieldConverter
constructor now accepts a newDDMExpressionFactory
parameter. - 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
LayoutThemeItemSelectorCriterion
class is moved to thecom.liferay.layout.theme.item.selector
package. - 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
isEdgeCandidate
method 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
getObjectDefinitions
andgetObjectDefinitionsCount
methods 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 inCTCollectionPersistence
now all require a company ID. - Reason: This change ensures the proper
CTSchemaVersion
is 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
EntityModel
always failed becauseEntityModelResource
was only implemented ifgenerateBatch
was set totrue
inrest-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
getObjectDefinitionSettingMap
method 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
getObjectDefinitionSettingMap
method 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
getObjectDefinitionSettingMap
method 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
saveSitemapCompanyConfiguration
method 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
forEachFileEntry
method is removed, and the newgetClassName
method is added. ThegetMimeTypes
method is nowprivate
instead ofprotected
. - Reason: The counting method now uses
DSLCounter
instead 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
IndividualPortletResourcePermissionProvider
interface andgetIndividualPortletResourcePermissions(long)
method have been removed. - Reason: The logic is reorganized in
ResourcePermissionLocalServiceImpl
to 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
DigesterImpl
class is removed. - Reason:
DigesterUtil
now 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
replacePermissionCheck
methods 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
getPathCms
andsetPathCms
methods 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
isCompany
method is removed. - Reason: This method is no longer needed because
BatchEnginePortletDataHandler
now 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
addWorkflowDefinitionLink
method now accepts a newString
parameter 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
bufferQueueThreadLocal
field 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
isIncompleteModel
andsetIncompleteModelWithSafeCloseable
methods 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
Digester
interface is removed. - Reason:
DigesterUtil
now 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
Jdk14LogFactoryImpl
class 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
Jdk14LogImpl
class 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
setLogFactory
method 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_TYPES
property 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
replacePermissionCheck
methods 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
getVirtualHostnames
now returns aNavigableMap
instead of aTreeMap
. ThesetVirtualHostnames
method now accepts aNavigableMap
parameter 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
getVirtualHostnames
now returns aNavigableMap
instead 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
FeatureFlags
is changed. - Reason: This change is necessary to support setting feature flags to
true
orfalse
by 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
PropsTestUtil
class 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
JDKLoggerTestUtil
class 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-taglib
dependency is removed. - Reason: This taglib is no longer needed.