Liferay DXP 2025.Q1 Breaking Changes
Breaking changes break or significantly alter existing functionality or code structure. Here are all of the breaking changes for Liferay DXP 2025.Q1. As the product changes and improves, we try our best to minimize these disruptions, but sometimes they are unavoidable.
Changes in Liferay DXP
Here is a list of changes that break or significantly alter existing functionality within Liferay.
| Breaking Change | Description | References |
|---|---|---|
| Batch Engine Error Messages | Error messages from the batch engine now use a JSON format instead of plain text messages (similar to REST API). | LPD-41526 |
| Collection Pages | Collection pages are removed and can no longer be added. Existing collection pages are substituted with content pages with a Collection Display, without any functional change. | LPD-45659 |
| Data Set Actions | Previously saved data set actions are no longer viewable in the data set manager. You must re-recreate the actions to use them again. | LPD-37264 |
| Data Set Action API | There is now only one relationship between data set and data set action entities, regardless of the action type. The type field is now used to store the type of action (item, creation, or bulk). The old use of the type field is now for the new target field. | LPD-37264 |
| Data Set Permissions | Permissions for data sets now apply to all of their contained assets (filters, actions, etc.), instead of being managed individually. | LPD-11135 |
| Fast Deployment Gradle Task | The deployFast Gradle task is removed. The speed improvements were insignificant and it relied on underlying functionality to store JSPs in the work/ directory, which is also no longer supported. | LPD-42696 |
| JDK Version for Compilation | JDK 17 or 21 are now required to compile Liferay source code. These versions were already previously required to run Liferay DXP. | LPD-20160 |
| JSP Storage Option | The configuration to store JSPs in the work/ directory is removed due to the performance cost, along with the work.dir.override.enabled=true property. JSPs are now always kept in their OSGi bundles. This feature was previously disabled by default. | LPD-42697 |
| Empty Text Contents in Object API | Object headless APIs return an empty string ("") for GET requests for text fields with empty contents, instead of skipping them. Review all GET requests on text fields and adapt their usages as needed. | LPD-45692 |
| Out-of-date Publications | The ability to label publications as “out-of-date” (preventing users from publishing them) is now off by default. If needed, you can turn the behavior back on in Instance Settings → Schema Version Check Enabled. | LPD-39697 |
| Private Pages Feature Flag | The feature flag for private pages is relocated from the Release Feature Flags page to Deprecation Feature Flags. | LPD-39120 |
| Publication Conflicts | Modification and deletion conflicts are now resolved automatically by overwriting production with the publication’s changes, and they are no longer displayed on the Checking Changes screen. If needed, the previous behavior can be restored with the Modification Deletion Conflicts toggle, in Instance Settings → Publications. | LPD-39698, LPD-40806 |
| React Version 18 | Liferay now uses React version 18 at runtime, and the import map for react now points to version 18. If you require React 16, you must point to react-16 or bundle it with your code. | LPD-35133 |
| Tag Filter Widget Sorting | Tags are now sorted in the Tag Filter widget by their uses, not in alphabetical order. | LPD-43100 |
| Widget Configuration Menus | All widgets in content pages now have their option menus consolidated into one menu, instead of two. | LPD-32047 |
Changes in Module Source
FragmentJavascriptConfiguration.java
modules/apps/fragment/fragment-api/src/main/java/com/liferay/fragment/configuration/FragmentJavascriptConfiguration.java
- Date: Oct. 25, 2024
- Ticket: LPD-39461
- What changed: The
FragmentJavascriptConfigurationclass is renamed toFragmentJavaScriptConfiguration. - Reason: This change corrects the class name’s capitalization.
AddressResource.java
modules/apps/commerce/headless/headless-commerce/headless-commerce-delivery-cart-api/src/main/java/com/liferay/headless/commerce/delivery/cart/resource/v1_0/AddressResource.java
- Date: Oct. 28, 2024
- Ticket: LPD-37815
- What changed: The
getCartByExternalReferenceCodeBillingAddresmethod is renamed togetCartByExternalReferenceCodeBillingAddress, and thegetCartByExternalReferenceCodeShippingAddresmethod is renamed togetCartByExternalReferenceCodeShippingAddress. - Reason: This change corrects the method name’s spelling.
AddressResource.java
modules/apps/commerce/headless/headless-commerce/headless-commerce-delivery-cart-client/src/main/java/com/liferay/headless/commerce/delivery/cart/client/resource/v1_0/AddressResource.java
- Date: Oct. 28, 2024
- Ticket: LPD-37815
- What changed: The
getCartByExternalReferenceCodeBillingAddresmethod is renamed togetCartByExternalReferenceCodeBillingAddress, and thegetCartByExternalReferenceCodeShippingAddresmethod is renamed togetCartByExternalReferenceCodeShippingAddress. - Reason: This change corrects the method name’s spelling.
Query.java
modules/apps/commerce/headless/headless-commerce/headless-commerce-delivery-cart-impl/src/main/java/com/liferay/headless/commerce/delivery/cart/internal/graphql/query/v1_0/Query.java
- Date: Oct. 28, 2024
- Ticket: LPD-37815
- What changed: The
getCartByExternalReferenceCodeBillingAddresmethod is renamed togetCartByExternalReferenceCodeBillingAddress, and thegetCartByExternalReferenceCodeShippingAddresmethod is renamed togetCartByExternalReferenceCodeShippingAddress. - Reason: This change corrects the method name’s spelling.
PlacedOrderAddressResource.java
modules/apps/commerce/headless/headless-commerce/headless-commerce-delivery-order-api/src/main/java/com/liferay/headless/commerce/delivery/order/resource/v1_0/PlacedOrderAddressResource.java
- Date: Oct. 28, 2024
- Ticket: LPD-37815
- What changed: The
getCartByExternalReferenceCodeBillingAddresmethod is renamed togetCartByExternalReferenceCodeBillingAddress, and thegetCartByExternalReferenceCodeShippingAddresmethod is renamed togetCartByExternalReferenceCodeShippingAddress. - Reason: This change corrects the method name’s spelling.
PlacedOrderAddressResource.java
modules/apps/commerce/headless/headless-commerce/headless-commerce-delivery-order-client/src/main/java/com/liferay/headless/commerce/delivery/order/client/resource/v1_0/PlacedOrderAddressResource.java
- Date: Oct. 28, 2024
- Ticket: LPD-37815
- What changed: The
getCartByExternalReferenceCodeBillingAddresmethod is renamed togetCartByExternalReferenceCodeBillingAddress, and thegetCartByExternalReferenceCodeShippingAddresmethod is renamed togetCartByExternalReferenceCodeShippingAddress. - Reason: This change corrects the method name’s spelling.
Query.java
modules/apps/commerce/headless/headless-commerce/headless-commerce-delivery-order-impl/src/main/java/com/liferay/headless/commerce/delivery/order/internal/graphql/query/v1_0/Query.java
- Date: Oct. 28, 2024
- Ticket: LPD-37815
- What changed: The
getCartByExternalReferenceCodeBillingAddresmethod is renamed togetCartByExternalReferenceCodeBillingAddress, and thegetCartByExternalReferenceCodeShippingAddresmethod is renamed togetCartByExternalReferenceCodeShippingAddress. - Reason: This change corrects the method name’s spelling.
UserAccountResource.java
modules/apps/headless/headless-admin-user/headless-admin-user-api/src/main/java/com/liferay/headless/admin/user/resource/v1_0/UserAccountResource.java
- Date: Oct. 28, 2024
- Ticket: LPD-34387
- What changed: The
postAccountUserAccountsByExternalReferenceCodeByEmailAddressmethod now returns aPage<UserAccount>object, and thepostAccountUserAccountByExternalReferenceCodeByEmailAddressmethod now returns aUserAccountobject. - Reason: This change is made to enforce consistency for method return values.
ObjectDefinitionServiceImpl.java
modules/apps/object/object-service/src/main/java/com/liferay/object/service/impl/ObjectDefinitionServiceImpl.java
- Date: Oct. 29, 2024
- Ticket: LPD-39729
- What changed: The
addCustomObjectDefinitionandupdateCustomObjectDefinitionmethods have a newStringparameter (className). - Reason: This change allows for importing object definitions into other environments while preserving the original class name, to ensure that old references are not broken.
ObjectDefinitionLocalServiceImpl.java
modules/apps/object/object-service/src/main/java/com/liferay/object/service/impl/ObjectDefinitionLocalServiceImpl.java
- Date: Oct. 29, 2024
- Ticket: LPD-39729
- What changed: The
addCustomObjectDefinitionandupdateCustomObjectDefinitionmethods have a newStringparameter,className. - Reason: This change is required to allow importing object definitions into other environments while preserving the original class name. This ensures that old references are not broken.
service.xml
modules/apps/portal-workflow/portal-workflow-kaleo-service/service.xml
- Date: Oct. 30, 2024
- Ticket: LPD-39833
- What changed: The
KaleoDefinitiontable has a new column for an external reference code. - Reason: This change is needed to implement external reference codes for Kaleo definitions.
JournalArticleLocalService.java
modules/apps/journal/journal-api/src/main/java/com/liferay/journal/service/JournalArticleLocalService.java
- Date: Oct. 30, 2024
- Ticket: LPD-40785
- What changed: The
getArticlesByReviewDatemethod has a newlongparameter,companyId, to retrieve journal articles for a specific company. If you need the old behavior, use the changed method and iterate over multiple company IDs instead. - Reason: This change is to expose the method without a company filter. This method is used to inform company users when the review date comes for content.
JournalArticleLocalServiceUtil.java
modules/apps/journal/journal-api/src/main/java/com/liferay/journal/service/JournalArticleLocalServiceUtil.java
- Date: Oct. 30, 2024
- Ticket: LPD-40785
- What changed: The
getArticlesByReviewDatemethod has a newlongparameter,companyId, to retrieve journal articles for a specific company. If you need the old behavior, use the changed method and iterate over multiple company IDs instead. - Reason: This change is to expose the method without a company filter. This method is used to inform company users when the review date comes for content.
JournalArticleLocalServiceWrapper.java
modules/apps/journal/journal-api/src/main/java/com/liferay/journal/service/JournalArticleLocalServiceWrapper.java
- Date: Oct. 30, 2024
- Ticket: LPD-40785
- What changed: The
getArticlesByReviewDatemethod has a newlongparameter,companyId, to retrieve journal articles for a specific company. If you need the old behavior, use the changed method and iterate over multiple company IDs instead. - Reason: This change is to expose the method without a company filter. This method is used to inform company users when the review date comes for content.
service.xml
modules/apps/portal-workflow/portal-workflow-kaleo-service/service.xml
- Date: Nov. 1, 2024
- Ticket: LPD-39833
- What changed: The
KaleoDefinitionschema now has a new attribute for an external reference code. The related service APIs are updated accordingly. - Reason: This change is needed to implement external reference codes for Kaleo definitions.
CommerceOrderHttpHelper.java
modules/apps/commerce/commerce-api/src/main/java/com/liferay/commerce/order/CommerceOrderHttpHelper.java
- Date: Nov. 1, 2024
- Ticket: LPD-40425
- What changed: The overloaded
getCommerceCartPortletURLmethods now return aPortlerURLobject instead of aString. Additionally, the newisMultishippingEnabled(HttpServletRequest httpServletRequest)method is added. - Reason: This change was made to support order pages. The new
isMultishippingEnabledmethod is added so that fragments can access information about multi-shipping configuration.
AccountActionKeys.java
modules/apps/account/account-api/src/main/java/com/liferay/account/constants/AccountActionKeys.java
- Date: Nov. 7, 2024
- Ticket: LPD-35520
- What changed: Several action keys have been renamed to replace the word “edit” with “update”.
- Reason: This change is made to enforce naming consistency in Liferay.
OAuth2ScopeGrantFinder.java
modules/apps/oauth2-provider/oauth2-provider-api/src/main/java/com/liferay/oauth2/provider/service/persistence/OAuth2ScopeGrantFinder.java
- Date: Nov. 7, 2024
- Ticket: LPD-40120
- What changed: The
OAuth2ScopeGrantFinderclass is removed. - Reason: This finder put too much work on the database because it did not utilize caches. Use
OAuth2ScopeGrantLocalService’sgetOAuth2ScopeGrants(long, String, String, String)method instead.
service.xml
modules/apps/commerce/commerce-service/service.xml
- Date: Nov. 7, 2024
- Ticket: LPD-35329
- What changed: The
deliveryGroupcolumn is renamed todeliveryGroupName. - Reason: This change makes the column name more descriptive.
CollectionStyledLayoutStructureItem.java
modules/apps/layout/layout-api/src/main/java/com/liferay/layout/util/structure/CollectionStyledLayoutStructureItem.java
- Date: Nov. 8, 2024
- Ticket: LPD-41653
- What changed: The
namespaceattribute is removed, along with the related methods. - Reason: The
namespaceattribute is no longer needed.
CommerceCurrencyConstants.java
modules/apps/commerce/commerce-currency-api/src/main/java/com/liferay/commerce/currency/model/CommerceCurrencyConstants.java
- Date: Nov. 11, 2024
- Ticket: LPD-3315
- What changed: The
CommerceCurrencyConstantsclass is removed. - Reason: This class has been deprecated since Liferay 7.4, and is replaced by
modules/apps/commerce/commerce-currency-api/src/main/java/com/liferay/commerce/currency/constants/CommerceCurrencyConstants.java.
PortalDefaultPermissionsModelResource.java
modules/apps/portal/portal-default-permissions-api/src/main/java/com/liferay/portal/defaultpermissions/resource/PortalDefaultPermissionsModelResource.java
- Date: Nov. 12, 2024
- Ticket: LPD-35542
- What changed: The
PortalDefaultPermissionsModelResourceclass is moved fromportal-default-permissions-apitoportal-kernel. - Reason: This change is necessary to make the class available to
portal-impl.
PortalDefaultPermissionsModelResourceRegistry.java
modules/apps/portal/portal-default-permissions-api/src/main/java/com/liferay/portal/defaultpermissions/resource/PortalDefaultPermissionsModelResourceRegistry.java
- Date: Nov. 12, 2024
- Ticket: LPD-35542
- What changed: The
PortalDefaultPermissionsModelResourceRegistryclass is moved fromportal-default-permissions-apitoportal-kernel. - Reason: This change is necessary to make the class available to
portal-impl.
CommerceOrderHttpHelper.java
modules/apps/commerce/commerce-api/src/main/java/com/liferay/commerce/order/CommerceOrderHttpHelper.java
- Date: Nov. 12, 2024
- Ticket: LPD-41957
- What changed: The new
isMultishippingEnabled(HttpServletRequest httpServletRequest)method is added. - Reason: This change is made to identify if a commerce order has multi-shipping enabled.
MBAdminListDisplayContext.java
modules/apps/message-boards/message-boards-api/src/main/java/com/liferay/message/boards/display/context/MBAdminListDisplayContext.java
- Date: Nov. 13, 2024
- Ticket: LPD-41913
- What changed: A new
getEmptyResultsMessagemethod is added to return a valid empty results method, depending on whether the user interaction is performing a search or not. - Reason: This change is made to avoid showing confusing messages of empty search results, because message board categories are not shown in search results.
MBListDisplayContext.java
modules/apps/message-boards/message-boards-api/src/main/java/com/liferay/message/boards/display/context/MBListDisplayContext.java
- Date: Nov. 13, 2024
- Ticket: LPD-41913
- What changed: A new
getEmptyResultsMessagemethod is added to return a valid empty results method, depending on whether the user interaction is performing a search or not. - Reason: This change is made to avoid showing confusing messages of empty search results, because message board categories are not shown in search results.
SegmentsExperienceServiceImpl.java
modules/apps/segments/segments-service/src/main/java/com/liferay/segments/service/impl/SegmentsExperienceServiceImpl.java
- Date: Nov. 14, 2024
- Ticket: LPD-41546
- What changed: The
updateSegmentsExperiencePrioritymethod now returns aSegmentsExperienceobject. - Reason: This change is made to prevent stale object exceptions.
service.xml
modules/apps/commerce/commerce-currency-service/service.xml
- Date: Nov. 14, 2024
- Ticket: LPD-30529
- What changed: The currency schema now has an external reference code.
- Reason: This change allows for using an external reference code to identify currency entities.
service.xml
modules/apps/commerce/commerce-price-list-service/service.xml
- Date: Nov. 14, 2024
- Ticket: LPD-37883
- What changed: The
CommerceBasePriceListCannotDeleteexception is renamed toRequiredCommerceBasePriceList. - Reason: This change enforces the correct pattern for naming exceptions.
RelayStateHelper.java
modules/dxp/apps/saml/saml-api/src/main/java/com/liferay/saml/helper/RelayStateHelper.java
- Date: Nov. 15, 2024
- Ticket: LPD-39115
- What changed: The
RelayStateHelperclass is removed. - Reason: This class is no longer needed.
RelayStateHelperImpl.java
modules/dxp/apps/saml/saml-opensaml-integration/src/main/java/com/liferay/saml/opensaml/integration/internal/helper/RelayStateHelperImpl.java
- Date: Nov. 15, 2024
- Ticket: LPD-39115
- What changed: The
RelayStateHelperImplclass is removed. - Reason: This class is no longer needed.
service.xml
modules/dxp/apps/saml/saml-persistence-service/service.xml
- Date: Nov. 15, 2024
- Ticket: LPD-39115
- What changed: The
SamlSpAuthRequesttable has a newrelayStatecolumn. - Reason: This change is required to persist the relay state between nodes, rather than only locally. It’s possible for SAML SSO to initiate on one node, but finish on another, losing the relay state.
DDMStructureLocalServiceImpl.java
modules/apps/dynamic-data-mapping/dynamic-data-mapping-service/src/main/java/com/liferay/dynamic/data/mapping/service/impl/DDMStructureLocalServiceImpl.java
- Date: Nov. 19, 2024
- Ticket: LPD-39807
- What changed: Various new methods are added to support handling DDM structures with external reference codes.
- Reason: This change is necessary to make web content structures portable (so they can be scoped by external reference code).
service.xml
modules/apps/commerce/commerce-service/service.xml
- Date: Nov. 21, 2024
- Ticket: LPD-40084
- What changed: The
commerceCurrencyIdattribute is replaced with a newStringattribute,commerceCurrencyCode. - Reason: This change enforces consistency with other places and simplifies the lazy reference process.
CPSpecificationOptionLocalService.java
modules/apps/commerce/commerce-product-api/src/main/java/com/liferay/commerce/product/service/CPSpecificationOptionLocalService.java
- Date: Nov. 21, 2024
- Ticket: LPD-29336
- What changed: The
addCPSpecificationOptionandupdateCPSpecificationOptionmethods now require along[]parameter (listTypeDefinitionIds), instead of a singlelongparameter (listTypeDefinition). - Reason: This change is required so that specification options can accept multiple picklists.
JSPTaglibHelper.java
modules/apps/static/portal-osgi-web/portal-osgi-web-servlet-api/src/main/java/com/liferay/portal/osgi/web/servlet/JSPTaglibHelper.java
- Date: Nov. 21, 2024
- Ticket: LPD-36036
- What changed: The
JSPTaglibHelperinterface is removed. - Reason: This interface was only used to declare an OSGi component only for internal use. It should not be implemented as a public component.
ObjectEntryLocalService.java
modules/apps/object/object-api/src/main/java/com/liferay/object/service/ObjectEntryLocalService.java
- Date: Nov. 25, 2024
- Ticket: LPD-30463
- What changed: The
String[]parameter (selectedObjectFieldsNames) is removed from thegetValuesListmethod. Additionally, the newgetPrimaryKeysmethod is added. - Reason: Previously,
dslQuerygrouped by all fields in the object, causing SQL errors in Oracle when any field was of typeCLOB, even if that field was not part of the sorting criteria. Since Oracle does not support grouping byCLOBfields, the new approach retrieves only the primary key (PK) column in the initial query. A subsequent query is then executed to retrieve the remaining fields. This two-step approach does not reduce efficiency, as the second query was already present, so it was unnecessary to retrieve all fields in the initial query when only the PK was used.
ObjectEntryLocalServiceUtil.java
modules/apps/object/object-api/src/main/java/com/liferay/object/service/ObjectEntryLocalServiceUtil.java
- Date: Nov. 25, 2024
- Ticket: LPD-30463
- What changed: The
String[]parameter (selectedObjectFieldsNames) is removed from thegetValuesListmethod. Additionally, the newgetPrimaryKeysmethod is added. - Reason: Previously,
dslQuerygrouped by all fields in the object, causing SQL errors in Oracle when any field was of typeCLOB, even if that field was not part of the sorting criteria. Since Oracle does not support grouping byCLOBfields, the new approach retrieves only the primary key (PK) column in the initial query. A subsequent query is then executed to retrieve the remaining fields. This two-step approach does not reduce efficiency, as the second query was already present, so it was unnecessary to retrieve all fields in the initial query when only the PK was used.
ObjectEntryLocalServiceWrapper.java
modules/apps/object/object-api/src/main/java/com/liferay/object/service/ObjectEntryLocalServiceWrapper.java
- Date: Nov. 25, 2024
- Ticket: LPD-30463
- What changed: The
String[]parameter (selectedObjectFieldsNames) is removed from thegetValuesListmethod. Additionally, the newgetPrimaryKeysmethod is added. - Reason: Previously,
dslQuerygrouped by all fields in the object, causing SQL errors in Oracle when any field was of typeCLOB, even if that field was not part of the sorting criteria. Since Oracle does not support grouping byCLOBfields, the new approach retrieves only the primary key (PK) column in the initial query. A subsequent query is then executed to retrieve the remaining fields. This two-step approach does not reduce efficiency, as the second query was already present, so it was unnecessary to retrieve all fields in the initial query when only the PK was used.
service.xml
modules/apps/commerce/commerce-price-list-service/service.xml
- Date: Nov. 26, 2024
- Ticket: LPD-40084
- What changed: The
commerceCurrencyIdattribute is replaced with a newStringattribute,commerceCurrencyCode. - Reason: This change enforces consistency with other places and simplifies the lazy reference process.
CPAvailabilityChecker.java
modules/apps/commerce/commerce-product-api/src/main/java/com/liferay/commerce/product/availability/CPAvailabilityChecker.java
- Date: Nov. 26, 2024
- Ticket: LPD-37180
- What changed: The
checkandisAvailablemethods now require aCPAvailabilityCheckerparameter. - Reason: This change is required so that warehouses can have account and account group eligibility capabilities.
CPInstanceHelper.java
modules/apps/commerce/commerce-product-api/src/main/java/com/liferay/commerce/product/util/CPInstanceHelper.java
- Date: Nov. 26, 2024
- Ticket: LPD-37180
- What changed: The
fetchFirstAvailableReplacementCPInstancemethod now requires an account entry ID value as a parameter. - Reason: This change is required so that warehouses can have account and account group eligibility capabilities.
BatchEngineImportTask.java
modules/apps/batch-engine/batch-engine-api/src/main/java/com/liferay/batch/engine/model/BatchEngineImportTask.java
- Date: Nov. 26, 2024
- Ticket: LPD-38000
- What changed: The new
getParameterValue(String name)method is added, to return a parameter value in aStringformat with a given name. - Reason: This change simplifies the way to handle the parameters.
CTCollectionHistoryProvider.java
modules/apps/change-tracking/change-tracking-spi/src/main/java/com/liferay/change/tracking/spi/history/CTCollectionHistoryProvider.java
- Date: Nov. 27, 2024
- Ticket: LPD-39430
- What changed: The new
getCTEntry(long ctCollectionId, long modelClassNameId, long modelClassPK)method is added. - Reason: This change is needed to relocate logic for Publications Timeline History out of the service and into a more appropriate location.
TreeTestUtil.java
modules/apps/object/object-test-util/src/main/java/com/liferay/object/test/util/TreeTestUtil.java
- Date: Dec. 2, 2024
- Ticket: LPD-41332
- What changed: The
deleteObjectDefinitionHierarchymethod has a newObjectRelationshipLocalServiceparameter. - Reason: This change is needed to match the new
bindandunbindmethods.
ImportTaskResource.java
modules/apps/headless/headless-batch-engine/headless-batch-engine-api/src/main/java/com/liferay/headless/batch/engine/resource/v1_0/ImportTaskResource.java
- Date: Dec. 2, 2024
- Ticket: LPD-38548
- What changed: The
postImportTaskmethod has a newStringparameter,restrictedFieldNames. - Reason: This change adds support for restricted field names.
ImportTaskResource.java
modules/apps/headless/headless-batch-engine/headless-batch-engine-client/src/main/java/com/liferay/headless/batch/engine/client/resource/v1_0/ImportTaskResource.java
- Date: Dec. 2, 2024
- Ticket: LPD-38548
- What changed: The
postImportTaskmethod has a newStringparameter,restrictedFieldNames. - Reason: This change adds support for restricted field names.
LiferayOSGiPlugin.java
modules/sdk/gradle-plugins/src/main/java/com/liferay/gradle/plugins/LiferayOSGiPlugin.java
- Date: Dec. 2, 2024
- Ticket: LPD-42696
- What changed: The
LiferayOSGiPlugin.DEPLOY_FAST_TASK_NAMEvalue is removed. - Reason: This change facilitates the transition to Jakarta EE. The
deployFasttask only saved minimal time for developers.
CommercePriceFormatter.java
modules/apps/commerce/commerce-currency-api/src/main/java/com/liferay/commerce/currency/util/CommercePriceFormatter.java
- Date: Dec. 6, 2024
- Ticket: LPD-38934
- What changed: The overloaded
parsemethods now have a newStringparameter,className. - Reason: This change is required to handle throwing exceptions with the correct class name.
CPConfigurationEntryLocalServiceImpl.java
modules/apps/commerce/commerce-product-service/src/main/java/com/liferay/commerce/product/service/impl/CPConfigurationEntryLocalServiceImpl.java
- Date: Dec. 9, 2024
- Ticket: LPD-43390
- What changed: Various add and update method signatures are changed to allow for setting all fields at once.
- Reason: This change is required to configure all the fields of an entry
rest-openapi.yaml
modules/apps/commerce/headless/headless-commerce/headless-commerce-admin-catalog-impl/rest-openapi.yaml
- Date: Dec. 9, 2024
- Ticket: LPD-43390
- What changed: The catalog ID is added as a new query parameter to the endpoint for retrieving a
ProductConfigurationListcollection. - Reason: This change is required for the endpoint to filter the collection by catalog.
HtmlProperties.java
modules/apps/headless/headless-admin-site/headless-admin-site-api/src/main/java/com/liferay/headless/admin/site/dto/v1_0/HtmlProperties.java
- Date: Dec. 10, 2024
- Ticket: LPD-43800
- What changed: The
HtmlTag.MAINoption is removed from HTML properties. - Reason: The
HtmlTag.MAINoption is no longer needed.
ObjectDefinitionLocalServiceImpl.java
modules/apps/object/object-service/src/main/java/com/liferay/object/service/impl/ObjectDefinitionLocalServiceImpl.java
- Date: Dec. 12, 2024
- Ticket: LPD-43204
- What changed: The new
updateRootDescendantNodeObjectDefinitionmethod is added. - Reason: This method is necessary to update root-descendant node properties.
SystemFDSEntryRegistry.java
modules/apps/frontend-data-set/frontend-data-set-api/src/main/java/com/liferay/frontend/data/set/SystemFDSEntryRegistry.java
- Date: Dec. 13, 2024
- Ticket: LPD-44318
- What changed: The
getSystemFDSEntriesmethod is removed. Instead, usegetSystemFDSNames. - Reason: The
getSystemFDSEntriesmethod is not used.
rest-openapi.yaml
modules/apps/analytics/analytics-settings-rest-impl/rest-openapi.yaml
- Date: Dec. 13, 2024
- Ticket: LPD-42005
- What changed: The
RecommendationConfigurationschema has two newRecommendationItemattributes. - Reason: This change is required to track the status of recommendation setup.
CommerceOrderItemQuantityFormatter.java
modules/apps/commerce/commerce-api/src/main/java/com/liferay/commerce/internal/util/CommerceOrderItemQuantityFormatter.java
- Date: Dec. 17, 2024
- Ticket: LPD-42678
- What changed: The
parse(ActionRequest, String)andparse(String, Locale)methods now have a newStringparameter,className. - Reason: This change is required to handle exceptions with the correct class name.
CommerceQuantityFormatter.java
modules/apps/commerce/commerce-api/src/main/java/com/liferay/commerce/util/CommerceQuantityFormatter.java
- Date: Dec. 17, 2024
- Ticket: LPD-42678
- What changed: The
parse(BigDecimal, Locale)method is renamed toformat(BigDecimal, Locale). - Reason: This change is made to make the name consistent with its use case.
NestedFieldsContext.java
modules/apps/portal-vulcan/portal-vulcan-api/src/main/java/com/liferay/portal/vulcan/fields/NestedFieldsContext.java
- Date: Dec. 18, 2024
- Ticket: LPD-40102
- What changed: The
NestedFieldsContextconstructor has had its parameters reordered. Additionally, theaddFieldNameandgetFieldNamesmethods have been renamed toaddNestedFieldandgetNestedFields, respectively. - Reason: This change is required to match the rest of the nested fields usages.
NestedFieldsSupplier.java
modules/apps/portal-vulcan/portal-vulcan-api/src/main/java/com/liferay/portal/vulcan/fields/NestedFieldsSupplier.java
- Date: Dec. 18, 2024
- Ticket: LPD-40102
- What changed: The
addFieldNamemethod is renamed toaddNestedField. - Reason: This change is required to match the rest of the nested fields usages.
BaseExportTaskResourceImpl.java
modules/apps/headless/headless-batch-engine/headless-batch-engine-impl/src/main/java/com/liferay/headless/batch/engine/internal/resource/v1_0/BaseExportTaskResourceImpl.java
- Date: Dec. 18, 2024
- Ticket: LPD-40102
- What changed: A new query parameter,
batchNestedFields, is added for thePOST export-task/{className}/{contentType}endpoint. - Reason: This change is required to include the new query parameter.
ExportTaskResource.java
modules/apps/headless/headless-batch-engine/headless-batch-engine-api/src/main/java/com/liferay/headless/batch/engine/resource/v1_0/ExportTaskResource.java
- Date: Dec. 18, 2024
- Ticket: LPD-40102
- What changed: A new query parameter,
batchNestedFields, is added for thePOST export-task/{className}/{contentType}endpoint. - Reason: This change is required to include the new query parameter.
KaleoDefinitionVersionLocalService.java
modules/apps/portal-workflow/portal-workflow-kaleo-api/src/main/java/com/liferay/portal/workflow/kaleo/service/KaleoDefinitionVersionLocalService.java
- Date: Dec. 27, 2024
- Ticket: LPD-43403
- What changed: The
addLayoutUtilityPageEntry(long, String, int, int, int, OrderByComparator)method has a newLocaleparameter. Additionally, thegetLatestKaleoDefinitionVersions(long, int, int, OrderByComparator)method is removed. - Reason: The locale is required to sort the Kaleo definition version by the title in a localized column.
CTCollectionResource.java
modules/apps/change-tracking/change-tracking-rest-api/src/main/java/com/liferay/change/tracking/rest/resource/v1_0/CTCollectionResource.java
- Date: Jan. 7, 2025
- Ticket: LPD-44739
- What changed: The
getCTCollectionsHistoryPage(Integer classNameId, Integer classPK)method is removed. - Reason: This method is no longer used.
CTCollectionResource.java
modules/apps/change-tracking/change-tracking-rest-client/src/main/java/com/liferay/change/tracking/rest/client/resource/v1_0/CTCollectionResource.java
- Date: Jan. 7, 2024
- Ticket: LPD-44739
- What changed: The
getCTCollectionsHistoryPage(Integer classNameId, Integer classPK),getCTCollectionsHistoryPageHttpResponse( classNameId, Integer classPK), andgetCTCollectionsHistoryPage(Integer classNameId, Integer classPK)methods are removed. - Reason: These methods are no longer used.
SamlConfiguration.java
modules/dxp/apps/saml/saml-api/src/main/java/com/liferay/saml/runtime/configuration/SamlConfiguration.java
- Date: Jan. 7, 2025
- Ticket: LPD-1634
- What changed: The
SamlConfigurationclass now has the@Meta.AD saml-max-saml-sso-request-contextsOSGi configuration. - Reason: This change makes maximum SAML SSO request contexts configurable.
FDSSortItem.java
modules/apps/frontend-data-set/frontend-data-set-api/src/main/java/com/liferay/frontend/data/set/model/FDSSortItem.java
- Date: Jan. 7, 2025
- Ticket: LPD-44141
- What changed: The new
setActive(Boolean)andsetLabel(String)methods are added. - Reason: This change is needed to accommodate new Data Set definition requirements. It’s an internal API not meant to be used outside of Liferay DXP.
FDSSortItemBuilder.java
modules/apps/frontend-data-set/frontend-data-set-api/src/main/java/com/liferay/frontend/data/set/model/FDSSortItemBuilder.java
- Date: Jan. 7, 2025
- Ticket: LPD-44141
- What changed: Various method signatures are changed to account for the new
Boolean activeflag andString labelfield inFDSSortItem. Additionally, the containedAfterDirectionStepandAfterKeyStepinterfaces now extend theLabelStepinterface. - Reason: This change is needed to accommodate new data set definition requirements. It’s an internal API not meant to be used outside of Liferay DXP.
SystemFDSEntry.java
modules/apps/frontend-data-set/frontend-data-set-api/src/main/java/com/liferay/frontend/data/set/SystemFDSEntry.java
- Date: Jan. 7, 2025
- Ticket: LPD-44141
- What changed: The default implementation of
getDefaultItemsPerPagenow leverages property-based delta configurations. Additionally, the newgetPropsTransformerandgetListOfItemsPerPagemethods are added to the interface. Default implementations are provided for the interface. Any implementation ofSystemFDSEntrymust only implement thegetPropsTransformermethod when defining a data set that requires a props transformer JavaScript module. AgetListOfItemsPerPageimplementation is only necessary to define a different behavior. - Reason: This change is needed to accommodate new data set definition requirements. It’s an internal API not meant to be used outside of Liferay DXP.
BaseCommerceContext.java
modules/apps/commerce/commerce-api/src/main/java/com/liferay/commerce/context/BaseCommerceContext.java
- Date: Jan. 14, 2025
- Ticket: LPD-42558
- What changed: The
BaseCommerceContextconstructor has a newCPConfigurationListLocalServiceparameter. - Reason: The commerce context now detects and holds the product configuration lists.
ProductHelper.java
modules/apps/commerce/commerce-frontend-api/src/main/java/com/liferay/commerce/frontend/helper/ProductHelper.java
- Date: Jan. 14, 2025
- Ticket: LPD-42558
- What changed: The
getProductSettingsModel(long)method has a newCommerceContextparameter. - Reason: Product settings are now pulled from the product configuration entry. The
CommerceContextparameter allows for finding the product configuration list to find the product configuration entry.
CPDefinitionInventoryEngine.java
modules/apps/commerce/commerce-api/src/main/java/com/liferay/commerce/inventory/CPDefinitionInventoryEngine.java
- Date: Jan. 14, 2025
- Ticket: LPD-42558
- What changed: Various methods have a new
longparameter,cpConfigurationListId. - Reason: The product setting is now found via a product configuration entry.
ObjectFieldFilterContext.java
modules/apps/object/object-api/src/main/java/com/liferay/object/field/filter/parser/ObjectFieldFilterContext.java
- Date: Jan. 15, 2025
- Ticket: LPD-44743
- What changed: The
ObjectFieldFilterContextconstructor now has a newlongparameter, for a group ID. - Reason: The group ID is now necessary for getting object entries, so it is necessary to have the ID value for classes like
OneToManyObjectFieldFilterStrategy.
CommercePriceListLocalServiceImpl.java
modules/apps/commerce/commerce-price-list-service/src/main/java/com/liferay/commerce/price/list/service/impl/CommercePriceListLocalServiceImpl.java
- Date: Jan. 15, 2025
- Ticket: LPD-45960
- What changed: The
updateCommercePriceListCurrencies(String commerceCurrencyCode)method now has the method signatureupdateCommercePriceListCurrencies(long companyId, String oldCommerceCurrencyCode, String newCommerceCurrencyCode). - Reason: This change avoids changing price list values linked to unrelated companies.
bnd.bnd
modules/apps/frontend-data-set/frontend-data-set-api/bnd.bnd
- Date: Jan. 17, 2025
- Ticket: LPD-44140
- What changed: The
com.liferay.frontend.data.set.resolverpackage is no longer exported in this bundle. - Reason: The
com.liferay.frontend.data.set.urlpackage supersedes the removed package.
FDSAPIURLResolver.java
modules/apps/frontend-data-set/frontend-data-set-api/src/main/java/com/liferay/frontend/data/set/resolver/FDSAPIURLResolver.java
- Date: Jan. 17, 2025
- Ticket: LPD-44140
- What changed: The
FDSAPIURLResolverclass is moved to thecom.liferay.frontend.data.set.urlpackage. Implementations must use the new package name. - Reason: The frontend data set API URL computation code is refactored. This change should only affect internal usage.
FDSAPIURLResolverRegistry.java
modules/apps/frontend-data-set/frontend-data-set-api/src/main/java/com/liferay/frontend/data/set/url/FDSAPIURLResolverRegistry.java
- Date: Jan. 17, 2025
- Ticket: LPD-44140
- What changed: The
FDSAPIURLResolverRegistryclass is moved to thecom.liferay.frontend.data.set.urlpackage. Implementations must use the new package name. - Reason: The frontend data set API URL computation code is refactored. This change should only affect internal usage.
CommercePriceFormatter.java
modules/apps/commerce/commerce-currency-api/src/main/java/com/liferay/commerce/currency/util/CommercePriceFormatter.java
- Date: Jan. 29, 2025
- Ticket: LPD-45731
- What changed: The overloaded
parsemethods now have a newbooleanparameter,allowNegativeValue. - Reason: This change is required to handle negative values when creating price modifiers.
KaleoDefinitionLocalService.java
modules/apps/portal-workflow/portal-workflow-kaleo-api/src/main/java/com/liferay/portal/workflow/kaleo/service/KaleoDefinitionLocalService.java
- Date: Jan. 31, 2025
- Ticket: LPD-47175
- What changed: The
activateKaleoDefinition(long, long, long, ServiceContext),activateKaleoDefinition(long, ServiceContext),activateKaleoDefinition(String, int, ServiceContext), anddeactiveKaleoDefinition(String, int, ServiceContextmethods now trigger a reindex when they are completed. - Reason: A Kaleo definition reindex is necessary when these methods are completed because the updated information must be replicated in the Kaleo definition versions.
CommerceOrderImpl.java
modules/apps/commerce/commerce-service/src/main/java/com/liferay/commerce/model/impl/CommerceOrderImpl.java
- Date: Feb. 1, 2025
- Ticket: LPD-46281
- What changed: The
getCPConfigurationListId(long groupId)method is removed. - Reason: This method is no longer used.
Changes in portal-impl Classes
AssetTagServiceImpl.java
portal-impl/src/com/liferay/portlet/asset/service/impl/AssetTagServiceImpl.java
- Date: Nov. 4, 2024
- Ticket: LPD-36686
- What changed: The
addTagandupdateTagmethods have a new parameter for an external reference code. - Reason: This change adds support for external reference codes for asset tags.
AssetTagLocalServiceImpl.java
portal-impl/src/com/liferay/portlet/asset/service/impl/AssetTagLocalServiceImpl.java
- Date: Nov. 4, 2024
- Ticket: LPD-36686
- What changed: The
addTagandupdateTagmethods have a new parameter for an external reference code. - Reason: This change adds support for external reference codes for asset tags.
CompanyServiceImpl.java
portal-impl/src/com/liferay/portal/service/impl/CompanyServiceImpl.java
- Date: Nov. 13, 2024
- Ticket: LPD-40015
- What changed: The
addCompanymethod has a newlongparameter for a company ID. - Reason: Creating a company with the
PortalInstanceAPI must configure both the company ID and admin. This method was not available in the company service.
SybaseASE157Dialect.java
portal-impl/src/com/liferay/portal/dao/orm/hibernate/SybaseASE157Dialect.java
- Date: Nov. 21, 2024
- Ticket: LPD-41800
- What changed: The
SybaseASE157Dialectclass is removed. - Reason: This change is made to remove references and logic for Sybase.
UpgradeKernelPackage.java
portal-impl/src/com/liferay/portal/upgrade/v7_0_0/UpgradeKernelPackage.java
- Date: Nov. 21, 2024
- Ticket: LPD-41800
- What changed: The
upgradeLongTextTable(String, String, String, String, String[])andupgradeLongTextTable(String, String, String, String[][], WildcardModemethods are removed. - Reason: This change is made to remove references and logic for Sybase.
PropsValues.java
portal-impl/src/com/liferay/portal/util/PropsValues.java
- Date: Nov. 27, 2024
- Ticket: LPD-42697
- What changed: The
WORK_DIR_OVERRIDE_ENABLEDproperty is removed. - Reason: This property was for a developer tool feature to allow quick deployment of JSP, JavaScript, or CSS to the server. It was never widely used, however, its complexity is causing problems with migrating the Jasper codebase for Jakarta support, and it affects performance. Developer tools can still handle normal OSGi bundle deployment to fulfill the same function.
service.xml
portal-impl/src/com/liferay/portal/service.xml
- Date: Dec. 20, 2024
- Ticket: LPD-43173
- What changed: The
WorkflowDefinitionLinktable has a new column for an external reference code. - Reason: This change adds support for external reference codes to make the data more portable.
Changes in portal-kernel Classes
UpgradeSQLRecorder.java
portal-kernel/src/com/liferay/portal/kernel/upgrade/recorder/UpgradeSQLRecorder.java
- Date: Oct. 30, 2024
- Ticket: LPD-37703
- What changed: The
getFailedSQLEntriesmethod is renamed togetFailedSQLs. Additionally, thegetRunningSQLEntriesmethod is renamed togetRunningSQLs. - Reason: This change clarifies the behavior for these methods. It is an internal API, not meant for external use.
LayoutVisibilityManager.java
portal-kernel/src/com/liferay/layout/admin/kernel/visibility/LayoutVisibilityManager.java
- Date: Nov. 5, 2024
- Ticket: LPD-39121
- What changed: The
isPrivateLayoutsEnabledmethod (with no parameters) is removed. Additionally, theisPrivateLayoutsEnabledmethod taking a group ID (groupId) as a parameter instead takes a company ID (companyId). - Reason: This flag must be tied to a specific company, because it applies at the company level.
PropsKeys.java
portal-kernel/src/com/liferay/portal/kernel/util/PropsKeys.java
-
Date: Nov. 27, 2024
-
Ticket: LPD-42697
-
What changed: The
WORK_DIR_OVERRIDE_ENABLEDkey is removed. -
Reason: This property was for a developer tool feature to allow quick deployment of JSP, JavaScript, or CSS to the server. It was never widely used, however, its complexity is causing problems with migrating the Jasper codebase for Jakarta support, and it affects performance. Developer tools can still handle normal OSGi bundle deployment to fulfill the same function. WorkflowHandler.java
portal-kernel/src/com/liferay/portal/kernel/workflow/WorkflowHandler.java -
Date: Dec. 11, 2024
-
Ticket: LPD-43348
-
What changed: The
contributeServiceContext(ServiceContext)method is replaced with thecontributeWorkflowContext(Map<String, Serializable>)method, which also now throws aPortalException. -
Reason: This change allows for each asset to provide variables that can be used within the entire process instance.
UpgradeVersionTreeMap.java
portal-kernel/src/com/liferay/portal/kernel/upgrade/util/UpgradeVersionTreeMap.java
- Date: Dec. 19, 2024
- Ticket: LPD-33081
- What changed: The
UpgradeVersionTreeMapclass now extendsTreeMap<Version, List<UpgradeProcess>>instead ofTreeMap<Version, UpgradeProcess. - Reason: This change is required to remove support for implicit schema version steps in the portal upgrade processes. Now upgrades with qualifier identifiers must be provided explicitly if needed. This allows for several upgrade processes under the same schema version.
Changes in Taglibs
CustomSQL.java
util-java/src/com/liferay/util/dao/orm/CustomSQL.java
- Date: Nov. 21, 2024
- Ticket: LPD-41800
- What changed: The
SYBASE_FUNCTION_IS_NOT_NULLandSYBASE_FUNCTION_IS_NULLfields are removed. TheisVendorSybasemethod is also removed. - Reason: This change is made to remove references and logic for Sybase.
CustomSQLUtil.java
util-java/src/com/liferay/util/dao/orm/CustomSQLUtil.java
- Date: Nov. 21, 2024
- Ticket: LPD-41800
- What changed: The
isVendorSybasemethod is removed. - Reason: This change is made to remove references and logic for Sybase.