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
FragmentJavascriptConfiguration
class 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
getCartByExternalReferenceCodeBillingAddres
method is renamed togetCartByExternalReferenceCodeBillingAddress
, and thegetCartByExternalReferenceCodeShippingAddres
method 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
getCartByExternalReferenceCodeBillingAddres
method is renamed togetCartByExternalReferenceCodeBillingAddress
, and thegetCartByExternalReferenceCodeShippingAddres
method 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
getCartByExternalReferenceCodeBillingAddres
method is renamed togetCartByExternalReferenceCodeBillingAddress
, and thegetCartByExternalReferenceCodeShippingAddres
method 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
getCartByExternalReferenceCodeBillingAddres
method is renamed togetCartByExternalReferenceCodeBillingAddress
, and thegetCartByExternalReferenceCodeShippingAddres
method 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
getCartByExternalReferenceCodeBillingAddres
method is renamed togetCartByExternalReferenceCodeBillingAddress
, and thegetCartByExternalReferenceCodeShippingAddres
method 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
getCartByExternalReferenceCodeBillingAddres
method is renamed togetCartByExternalReferenceCodeBillingAddress
, and thegetCartByExternalReferenceCodeShippingAddres
method 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
postAccountUserAccountsByExternalReferenceCodeByEmailAddress
method now returns aPage<UserAccount>
object, and thepostAccountUserAccountByExternalReferenceCodeByEmailAddress
method now returns aUserAccount
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
andupdateCustomObjectDefinition
methods have a newString
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
andupdateCustomObjectDefinition
methods have a newString
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 newlong
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 newlong
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 newlong
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 aPortlerURL
object instead of aString
. Additionally, the newisMultishippingEnabled(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
’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
deliveryGroup
column 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
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 fromportal-default-permissions-api
toportal-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 fromportal-default-permissions-api
toportal-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 aSegmentsExperience
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 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
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 newrelayState
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 newString
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
andupdateCPSpecificationOption
methods now require along[]
parameter (listTypeDefinitionIds
), instead of a singlelong
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 thegetValuesList
method. Additionally, the newgetPrimaryKeys
method is added. - Reason: Previously,
dslQuery
grouped 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 byCLOB
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 thegetValuesList
method. Additionally, the newgetPrimaryKeys
method is added. - Reason: Previously,
dslQuery
grouped 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 byCLOB
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 thegetValuesList
method. Additionally, the newgetPrimaryKeys
method is added. - Reason: Previously,
dslQuery
grouped 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 byCLOB
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 newString
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
andisAvailable
methods now require aCPAvailabilityChecker
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 aString
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 newObjectRelationshipLocalService
parameter. - Reason: This change is needed to match the new
bind
andunbind
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 newString
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 newString
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 newString
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, usegetSystemFDSNames
. - 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 newRecommendationItem
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)
andparse(String, Locale)
methods now have a newString
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 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
NestedFieldsContext
constructor has had its parameters reordered. Additionally, theaddFieldName
andgetFieldNames
methods have been renamed toaddNestedField
andgetNestedFields
, 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 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 newLocale
parameter. 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
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)
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 active
flag andString label
field inFDSSortItem
. Additionally, the containedAfterDirectionStep
andAfterKeyStep
interfaces now extend theLabelStep
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 newgetPropsTransformer
andgetListOfItemsPerPage
methods are added to the interface. Default implementations are provided for the interface. Any implementation ofSystemFDSEntry
must only implement thegetPropsTransformer
method when defining a data set that requires a props transformer JavaScript module. AgetListOfItemsPerPage
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 newCPConfigurationListLocalService
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 newCommerceContext
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 newlong
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 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.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 thecom.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 thecom.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 newboolean
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)
, anddeactiveKaleoDefinition(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
andupdateTag
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
andupdateTag
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 newlong
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[])
andupgradeLongTextTable(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 togetFailedSQLs
. Additionally, thegetRunningSQLEntries
method 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
isPrivateLayoutsEnabled
method (with no parameters) is removed. Additionally, theisPrivateLayoutsEnabled
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 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
UpgradeVersionTreeMap
class 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_NULL
andSYBASE_FUNCTION_IS_NULL
fields are removed. TheisVendorSybase
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.