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 ChangeDescriptionReferences
Batch Engine Error MessagesError messages from the batch engine now use a JSON format instead of plain text messages (similar to REST API).LPD-41526
Collection PagesCollection 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 ActionsPreviously 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 APIThere 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 PermissionsPermissions for data sets now apply to all of their contained assets (filters, actions, etc.), instead of being managed individually.LPD-11135
Fast Deployment Gradle TaskThe 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 CompilationJDK 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 OptionThe 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 APIObject 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 PublicationsThe 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 SettingsSchema Version Check Enabled.LPD-39697
Private Pages Feature FlagThe feature flag for private pages is relocated from the Release Feature Flags page to Deprecation Feature Flags.LPD-39120
Publication ConflictsModification 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 SettingsPublications.LPD-39698, LPD-40806
React Version 18Liferay 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 SortingTags are now sorted in the Tag Filter widget by their uses, not in alphabetical order.LPD-43100
Widget Configuration MenusAll 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 FragmentJavascriptConfiguration class is renamed to FragmentJavaScriptConfiguration.
  • 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 getCartByExternalReferenceCodeBillingAddres method is renamed to getCartByExternalReferenceCodeBillingAddress, and the getCartByExternalReferenceCodeShippingAddres method is renamed to getCartByExternalReferenceCodeShippingAddress.
  • 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 getCartByExternalReferenceCodeBillingAddres method is renamed to getCartByExternalReferenceCodeBillingAddress, and the getCartByExternalReferenceCodeShippingAddres method is renamed to getCartByExternalReferenceCodeShippingAddress.
  • 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 getCartByExternalReferenceCodeBillingAddres method is renamed to getCartByExternalReferenceCodeBillingAddress, and the getCartByExternalReferenceCodeShippingAddres method is renamed to getCartByExternalReferenceCodeShippingAddress.
  • 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 getCartByExternalReferenceCodeBillingAddres method is renamed to getCartByExternalReferenceCodeBillingAddress, and the getCartByExternalReferenceCodeShippingAddres method is renamed to getCartByExternalReferenceCodeShippingAddress.
  • 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 getCartByExternalReferenceCodeBillingAddres method is renamed to getCartByExternalReferenceCodeBillingAddress, and the getCartByExternalReferenceCodeShippingAddres method is renamed to getCartByExternalReferenceCodeShippingAddress.
  • 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 getCartByExternalReferenceCodeBillingAddres method is renamed to getCartByExternalReferenceCodeBillingAddress, and the getCartByExternalReferenceCodeShippingAddres method is renamed to getCartByExternalReferenceCodeShippingAddress.
  • 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 postAccountUserAccountsByExternalReferenceCodeByEmailAddress method now returns a Page<UserAccount> object, and the postAccountUserAccountByExternalReferenceCodeByEmailAddress method now returns a UserAccount object.
  • 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 addCustomObjectDefinition and updateCustomObjectDefinition methods have a new String parameter (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 addCustomObjectDefinition and updateCustomObjectDefinition methods have a new String parameter, 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 KaleoDefinition table 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 getArticlesByReviewDate method has a new long parameter, 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 getArticlesByReviewDate method has a new long parameter, 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 getArticlesByReviewDate method has a new long parameter, 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 KaleoDefinition schema 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 getCommerceCartPortletURL methods now return a PortlerURL object instead of a String. Additionally, the new isMultishippingEnabled(HttpServletRequest httpServletRequest) method is added.
  • Reason: This change was made to support order pages. The new isMultishippingEnabled method 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 OAuth2ScopeGrantFinder class is removed.
  • Reason: This finder put too much work on the database because it did not utilize caches. Use OAuth2ScopeGrantLocalService’s getOAuth2ScopeGrants(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 deliveryGroup column is renamed to deliveryGroupName.
  • 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 namespace attribute is removed, along with the related methods.
  • Reason: The namespace attribute 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 CommerceCurrencyConstants class 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 PortalDefaultPermissionsModelResource class is moved from portal-default-permissions-api to portal-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 PortalDefaultPermissionsModelResourceRegistry class is moved from portal-default-permissions-api to portal-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 getEmptyResultsMessage method 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 getEmptyResultsMessage method 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 updateSegmentsExperiencePriority method now returns a SegmentsExperience object.
  • 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 CommerceBasePriceListCannotDelete exception is renamed to RequiredCommerceBasePriceList.
  • 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 RelayStateHelper class 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 RelayStateHelperImpl class 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 SamlSpAuthRequest table has a new relayState column.
  • 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 commerceCurrencyId attribute is replaced with a new String attribute, 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 addCPSpecificationOption and updateCPSpecificationOption methods now require a long[] parameter (listTypeDefinitionIds), instead of a single long parameter (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 JSPTaglibHelper interface 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 the getValuesList method. Additionally, the new getPrimaryKeys method is added.
  • Reason: Previously, dslQuery grouped by all fields in the object, causing SQL errors in Oracle when any field was of type CLOB, even if that field was not part of the sorting criteria. Since Oracle does not support grouping by CLOB fields, 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 the getValuesList method. Additionally, the new getPrimaryKeys method is added.
  • Reason: Previously, dslQuery grouped by all fields in the object, causing SQL errors in Oracle when any field was of type CLOB, even if that field was not part of the sorting criteria. Since Oracle does not support grouping by CLOB fields, 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 the getValuesList method. Additionally, the new getPrimaryKeys method is added.
  • Reason: Previously, dslQuery grouped by all fields in the object, causing SQL errors in Oracle when any field was of type CLOB, even if that field was not part of the sorting criteria. Since Oracle does not support grouping by CLOB fields, 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 commerceCurrencyId attribute is replaced with a new String attribute, 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 check and isAvailable methods now require a CPAvailabilityChecker parameter.
  • 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 fetchFirstAvailableReplacementCPInstance method 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 a String format 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 deleteObjectDefinitionHierarchy method has a new ObjectRelationshipLocalService parameter.
  • Reason: This change is needed to match the new bind and unbind methods.

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 postImportTask method has a new String parameter, 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 postImportTask method has a new String parameter, 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_NAME value is removed.
  • Reason: This change facilitates the transition to Jakarta EE. The deployFast task 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 parse methods now have a new String parameter, 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 ProductConfigurationList collection.
  • 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.MAIN option is removed from HTML properties.
  • Reason: The HtmlTag.MAIN option 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 updateRootDescendantNodeObjectDefinition method 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 getSystemFDSEntries method is removed. Instead, use getSystemFDSNames.
  • Reason: The getSystemFDSEntries method 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 RecommendationConfiguration schema has two new RecommendationItem attributes.
  • 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) and parse(String, Locale) methods now have a new String parameter, 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 to format(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 NestedFieldsContext constructor has had its parameters reordered. Additionally, the addFieldName and getFieldNames methods have been renamed to addNestedField and getNestedFields, 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 addFieldName method is renamed to addNestedField.
  • 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 the POST 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 the POST 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 new Locale parameter. Additionally, the getLatestKaleoDefinitionVersions(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), and getCTCollectionsHistoryPage(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 SamlConfiguration class now has the @Meta.AD saml-max-saml-sso-request-contexts OSGi 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) and setLabel(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 active flag and String label field in FDSSortItem. Additionally, the contained AfterDirectionStep and AfterKeyStep interfaces now extend the LabelStep interface.
  • 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 getDefaultItemsPerPage now leverages property-based delta configurations. Additionally, the new getPropsTransformer and getListOfItemsPerPage methods are added to the interface. Default implementations are provided for the interface. Any implementation of SystemFDSEntry must only implement the getPropsTransformer method when defining a data set that requires a props transformer JavaScript module. A getListOfItemsPerPage implementation 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 BaseCommerceContext constructor has a new CPConfigurationListLocalService parameter.
  • 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 new CommerceContext parameter.
  • Reason: Product settings are now pulled from the product configuration entry. The CommerceContext parameter 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 long parameter, 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 ObjectFieldFilterContext constructor now has a new long parameter, 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 signature updateCommercePriceListCurrencies(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.resolver package is no longer exported in this bundle.
  • Reason: The com.liferay.frontend.data.set.url package 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 FDSAPIURLResolver class is moved to the com.liferay.frontend.data.set.url package. 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 FDSAPIURLResolverRegistry class is moved to the com.liferay.frontend.data.set.url package. 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 parse methods now have a new boolean parameter, 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), and deactiveKaleoDefinition(String, int, ServiceContext methods 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 addTag and updateTag methods 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 addTag and updateTag methods 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 addCompany method has a new long parameter for a company ID.
  • Reason: Creating a company with the PortalInstance API 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 SybaseASE157Dialect class 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[]) and upgradeLongTextTable(String, String, String, String[][], WildcardMode methods 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_ENABLED property 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 WorkflowDefinitionLink table 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 getFailedSQLEntries method is renamed to getFailedSQLs. Additionally, the getRunningSQLEntries method is renamed to getRunningSQLs.
  • 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 isPrivateLayoutsEnabled method (with no parameters) is removed. Additionally, the isPrivateLayoutsEnabled method 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_ENABLED key 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 the contributeWorkflowContext(Map<String, Serializable>) method, which also now throws a PortalException.

  • 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 UpgradeVersionTreeMap class now extends TreeMap<Version, List<UpgradeProcess>> instead of TreeMap<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_NULL and SYBASE_FUNCTION_IS_NULL fields are removed. The isVendorSybase method 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 isVendorSybase method is removed.
  • Reason: This change is made to remove references and logic for Sybase.

Capabilities

Product

Education

Contact Us

Connect

Powered by Liferay
© 2024 Liferay Inc. All Rights Reserved • Privacy Policy