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 ChangesDescriptionReferences
Document Library Excluded MIME TypesAllowed 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 MenusUsers 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 CodeLiferay 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.xPortletMVC4Spring 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 PermissionsPublication-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 PermissionsAdministrators 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 ServersWith 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 OptionsThe 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 ModeSites 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 APIsHeadless 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 include ExternalReferenceCode* 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 and SiteMapSettings 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 and patchOrderItemByExternalReferenceCode methods now return an OrderItem 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 new String 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 new String 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 new boolean 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 into CTSettingsConfiguration. This allows CTCollectionLocalServiceImpl 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, and initWordRenderers 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 the com.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 the com.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 and postSiteNavigationMenusPageExportBatch methods each accept three new String parameters (search, filterString, and sortString).
  • 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 and updateObjectEntryFolder methods have a new String 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 and updateObjectEntryFolder methods have a new String 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 to OverviewResource. Additionally, the new getFileOverview method is added.
  • Reason: The class name change adds support for multiple types of overviews using the same Overview object. The new getFileOverview 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 to exportCompany(long), the extractDBPartitions method is renamed to exportDBPartitions, the extractDBPartitions(long[]) method is renamed to exportDBPartitions(long[]), the getExtractedPartitionName(long) method is renamed to getExportedPartitionName(long), and the insertDBPartitions method is renamed to importDBPartitions.
  • 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 new getOriginalUser method. The setOriginalUserId method is replaced with a new setOriginalUser(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 in ImportTaskContext 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 new BatchEngineTaskItemDelegate<?> 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 new BatchEngineTaskItemDelegate<?> 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 new BatchEngineTaskItemDelegate<?> 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, and url 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 for rangeEnd and rangeStart.
  • 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 the com.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 the com.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 the com.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 the com.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 the com.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 the com.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 the com.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 the com.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 the com.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 the com.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 the com.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 the com.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 the com.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 the com.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 and findByA_L methods are removed. Use findByC_A instead of findByArticlePK, and use finderByC_A_L instead of findByA_L.
  • Reason: The findByC_A and findByC_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 in vulcan-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, the deleteCPConfigurationEntry method accepts a new boolean parameter (force). Use the new force parameter in deleteCPConfigurationEntry instead of forceDeleteCPConfigurationEntry.
  • 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, the deleteCPConfigurationList method accepts a new boolean parameter (force). Use the new force parameter in deleteCPConfigurationList instead of forceDeleteCPConfigurationList.
  • 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 the com.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 the taxonomyCategoryItemExternalReferences 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 to ObjectEntryRelatedObjectsResourceImpl.
  • 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 to getClassExternalReferenceCode. The setClassedModelExternalReferenceCode method is renamed to setClassExternalReferenceCode.
  • 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), and isDescendantNode(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 the commerceShipmentId 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 new DDMExpressionFactory 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 the com.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 and getObjectDefinitionsCount 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 in CTCollectionPersistence 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 because EntityModelResource was only implemented if generateBatch was set to true in rest-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 to getObjectDefinitionSettingsMap.
  • 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 to getObjectDefinitionSettingsMap.
  • 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 to getObjectDefinitionSettingsMap.
  • 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 new getClassName method is added. The getMimeTypes method is now private instead of protected.
  • 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 to exportCompany(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 and getIndividualPortletResourcePermissions(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) and removeProperties(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), and removeProperties(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) and initLog4J(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 and setPathCms 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) and addFileAttachment(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) and addFileAttachment(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 to isUseUIUD(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 new String 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 to reference.
  • 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 and setIncompleteModelWithSafeCloseable methods are no longer public.
  • 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) and removeProperties(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 a NavigableMap instead of a TreeMap. The setVirtualHostnames method now accepts a NavigableMap parameter instead of a TreeMap.
  • 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 a NavigableMap instead of a TreeMap.
  • 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 or false 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) and removeProperties(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) and removeProperties(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.