7.4 Breaking Changes
Breaking changes break or significantly alter existing functionality or code structure. Here are all of the breaking changes for Liferay 7.4, starting with the latest quarterly release (2023 Q3). As the product changes and improves, we try our best to minimize these disruptions, but sometimes they are unavoidable.
Read about 7.4 breaking changes from before 2023 Q3 in the Liferay source code.
For breaking changes after Liferay 7.4, see Deprecations and Breaking Changes.
2023 Q4 Release
Changes in Liferay DXP
Here is a list of changes that break or significantly alter existing functionality within Liferay.
| Breaking Change | Description | References | 
|---|---|---|
| Minimum Compatible Elasticsearch Version | Elasticsearch must be updated to at least version 7.17. Liferay DXP no longer starts up with earlier versions (and a console error is shown). | Compatibility matrix | 
| AB Testing | AB testing only supports one variant (in addition to the control). This prevents testing from taking exponentially longer time to complete. | LRAC-14353 | 
| Default Menu Display Configuration on Page Templates | By default, Menu Display widgets inherited from page templates have the Page Hierarchy configuration, even if private pages are enabled. This does not apply if the site has no pages. | LPS-194075 | 
| No Cache Option for DM File Downloads | By default, the new No Cache option is used for DM file downloads that do not have permission for Guest users. | LPS-174415 | 
| Support for Deploying Liferay with WebSphere | Deploying Liferay with an IBM WebSphere application server is deprecated. Support ends for this feature in one year (with the 2024 Q4 release). | TBA | 
| Supported Java Versions | JDK 8 is deprecated and support for it ends in one year (with the 2024 Q4 release). Liferay DXP 7.4 must then use JDK 11. | TBA | 
Changes in Module Source Code
PermissionConverter.java
modules/apps/portal-security/portal-security-permission-api/src/main/java/com/liferay/portal/security/permission/converter/PermissionConverter.java
- Date: Sep. 25, 2023
- Ticket: LPS-197267
- What Changed: The convertPermissions(long)andconvertPermissions(long, PermissionConversionFilter)methods are removed from PermissionConverter.
- Reason: These methods are no longer used after refactoring the PermissionConverter APIs.
ExtRepository.java
modules/apps/document-library/document-library-repository-external-api/src/main/java/com/liferay/document/library/repository/external/ExtRepository.java
- Date: Sep. 29, 2023
- Ticket: LPS-197315
- What Changed: A new Stringparameter (fileName) is added to theaddExtRepositoryFileEntry(String, String, String, String, String, InputStream)method (so it now takes 6Stringparameters and anInputStream).
- Reason: The file name is required to create files with a Sharepoint external repository.
WorkflowTaskResourceImpl.java
modules/apps/headless/headless-admin-workflow/headless-admin-workflow-impl/src/main/java/com/liferay/headless/admin/workflow/internal/resource/v1_0/WorkflowTaskResourceImpl.java
- Date: Oct. 3, 2023
- Ticket: LPS-197317
- What Changed: The _workflowTaskModelResourcePermissionfield’s target reference field is changed from(model.class.name=com.liferay.portal.kernel.workflow.WorkflowTask)to(model.class.name=com.liferay.portal.workflow.kaleo.model.KaleoTaskInstanceToken).
- Reason: This change is made to enforce class name consistency.
WorkflowTaskModelResourcePermission.java
modules/apps/portal-workflow/portal-workflow-kaleo-runtime-integration-impl/src/main/java/com/liferay/portal/workflow/kaleo/runtime/integration/internal/security/permission/resource/WorkflowTaskModelResourcePermission.java
- Date: Oct. 3, 2023
- Ticket: LPS-197317
- What Changed: The class’s OSGi property value is changed from model.class.name=com.liferay.portal.kernel.workflow.WorkflowTasktomodel.class.name=com.liferay.portal.workflow.kaleo.model.KaleoTaskInstanceToken.
- Reason: This change is made to enforce class name consistency.
liferay-chart.tld
modules/apps/frontend-taglib/frontend-taglib-chart/src/main/resources/META-INF/liferay-chart.tld
- Date: Oct. 6, 2023
- Ticket: LPS-198114
- What Changed: The Liferay chart module’s taglibs are removed.
- Reason: These taglibs are no longer used in Liferay, and Liferay removed support for soy.
CommerceShipmentItemLocalService.java
modules/apps/commerce/commerce-api/src/main/java/com/liferay/commerce/service/CommerceShipmentItemLocalService.java
- Date: Oct. 6, 2023
- Ticket: COMMERCE-12534
- What Changed: The getCommerceShipmentOrderItemsQuantitymethod returns aBigDecimalinstead of anintvalue.
- Reason: A BigDecimalvalue is needed for new unit of measurement functionality.
CommerceShipmentItemService.java [modules/apps/commerce/commerce-api/src/main/java/com/liferay/commerce/service/CommerceShipmentItemService.java]
- Date: Oct. 6, 2023
- Ticket: COMMERCE-12534
- What Changed: The getCommerceShipmentOrderItemsQuantitymethod returns aBigDecimalinstead of anintvalue.
- Reason: A BigDecimalvalue is needed for new unit of measurement functionality.
BaseClayTag.java
modules/apps/frontend-taglib/frontend-taglib-clay/src/main/java/com/liferay/frontend/taglib/clay/servlet/taglib/base/BaseClayTag.java
- Date: Oct. 10, 2023
- Ticket: LPS-198462
- What Changed The BaseClayTagclass is removed.
- Reason: The class is no longer used.
ModelSearchRegistrarHelper.java
modules/apps/portal-search/portal-search-spi/src/main/java/com/liferay/portal/search/spi/model/registrar/ModelSearchRegistrarHelper.java
- Date: Oct. 11, 2023
- Ticket: LPS-198809
- What Changed: The ModelSearchRegistrarHelperclass is removed.
- Reason: The search registrar bootstrapping style has changed, and this class is no longer used.
ModelSearchDefinitionContributor.java
modules/apps/portal-search/portal-search-spi/src/main/java/com/liferay/portal/search/spi/model/registrar/contributor/ModelSearchDefinitionContributor.java
- Date: Oct. 11, 2023
- Ticket: LPS-198809
- What Changed: The ModelSearchDefinitionContributorclass is removed.
- Reason: The search registrar bootstrapping style has changed, and this class is no longer used.
AccountRoleLocalService.java
modules/apps/account/account-api/src/main/java/com/liferay/account/service/AccountRoleLocalService.java
- Date: Oct. 17, 2023
- Ticket: LPS-173628
- What Changed: The checkCompanyAccountRolesmethod is removed.
- Reason: The AddDefaultAccountRolesPortalInstanceLifecycleListenerandAddDefaultAccountRolesPortletPermissionsPortalInstanceLifecycleListenerclasses initialize and check default account roles instead.
CommerceCheckoutStepHttpHelper.java
modules/apps/commerce/commerce-api/src/main/java/com/liferay/commerce/checkout/helper/CommerceCheckoutStepHttpHelper.java
- Date: Oct. 25, 2023
- Ticket: COMMERCE-12230
- What Changed: The isActiveShippingMethodCommerceCheckoutStepmethod now uses an additionalCommerceOrdervalue.
- Reason: A CommerceOrdervalue is passed as a parameter to help checkout performance.
PaymentProcessCheckoutStepDisplayContext.java
modules/apps/commerce/commerce-checkout-web/src/main/java/com/liferay/commerce/checkout/web/internal/display/context/PaymentProcessCheckoutStepDisplayContext.java
- Date: Oct. 25, 2023
- Ticket: COMMERCE-12230
- What Changed: The PaymentProcessCheckoutStepDisplayContextmethod nose uses an additionalCommerceOrdervalue.
- Reason: A CommerceOrdervalue is passed as a parameter to help checkout performance.
AssetEntryItemSelectorCriterion.java
modules/apps/item-selector/item-selector-criteria-api/src/main/java/com/liferay/item/selector/criteria/asset/criterion/AssetEntryItemSelectorCriterion.java
- Date: Oct. 30, 2023
- Ticket: LPS-197840
- What Changed: The scopeGroupTypemethods are removed.
- Reason: The scopeGroupTypemethods are no longer used.
BasePreviewBackgroundTaskExecutor.java
modules/apps/document-library/document-library-preview-api/src/main/java/com/liferay/document/library/preview/background/task/BasePreviewBackgroundTaskExecutor.java
- Date: Oct. 31, 2023
- Ticket: LPS-195032
- What Changed: The class accesses the new DLFileEntryConfigurationProviderinstead of directly accessingDLFileEntryConfiguration.
- Reason: The DLFileEntryConfigurationProviderclass has been added.
ExtendedObjectClassDefinition.java
modules/apps/static/portal-configuration/portal-configuration-metatype-api/src/main/java/com/liferay/portal/configuration/metatype/annotations/ExtendedObjectClassDefinition.java
- Date: Oct. 31, 2023
- Ticket: LPS-195032
- What Changed: The class has a new static method, getScope(String).
- Reason: The new method allows for retrieving a Scopeobject with a String scope value.
DLFileEntryConfiguration.java
modules/apps/document-library/document-library-api/src/main/java/com/liferay/document/library/configuration/DLFileEntryConfiguration.java
- Date: Oct. 31, 2023
- Ticket: LPS-195032
- What Changed: The class uses a new attribute, maxNumberOfPages. This was formerly part ofPDFPreviewConfiguration.
- Reason: PDFPreviewConfigurationis no longer used.
DLFileEntryConfigurationProvider.java
modules/apps/document-library/document-library-api/src/main/java/com/liferay/document/library/configuration/DLFileEntryConfigurationProvider.java
- Date: Oct. 31, 2023
- Ticket: LPS-195032
- What Changed: This class is a new configuration provider for DLFileEntryConfiguration.
- Reason: This configuration provider gives easier access to multiple configuration levels (system, instance, and site) for DLFileEntryConfiguration.
DLFileEntryConfigurationConstants.java
modules/apps/document-library/document-library-api/src/main/java/com/liferay/document/library/constants/DLFileEntryConfigurationConstants.java
- Date: Oct. 31, 2023
- Ticket: LPS-195032
- What Changed: This a newly added class.
- Reason: This class defines common values to handle DLFileEntryConfigurationattributes.
DLFileEntryConfigurationException.java
modules/apps/document-library/document-library-api/src/main/java/com/liferay/document/library/exception/DLFileEntryConfigurationException.java
- Date: Oct. 31, 2023
- Ticket: LPS-195032
- What Changed: This is a new type of Exception.
- Reason: This Exception is now used when an invalid value is set for DLFileEntryConfigurationattributes.
CPContentHelper.java
modules/apps/commerce/commerce-product-content-api/src/main/java/com/liferay/commerce/product/content/helper/CPContentHelper.java
- Date: Nov. 4, 2023
- Ticket: COMMERCE-12579
- What Changed: The hasDirectReplacementmethod is renamed toisDirectReplacement.
- Reason: The method now checks for whether the SKU is a replacement of another product, instead of checking whether it has replacements.
Changes in portal-impl Classes
UserImpl.java
portal-impl/src/com/liferay/portal/model/impl/UserImpl.java
- Date: Oct. 4, 2023
- Ticket: LPS-196035
- What Changed: WebDAV clients must use userIdinstead of the user’s screen name, email address, or regular password to authenticate via Digest Auth.
- Reason: WebDAV now requires each user to generate a separate password for access, requiring the user to take actions to change their accout settings. The user experience is simplified to use userIdto compensate, avoiding unexpected WebDAV access rejections.
portal.properties
portal-impl/src/portal.properties
- Date: Oct. 8, 2023
- Ticket: LPS-189621
- What Changed: The sql.data.max.parametersproperty is removed.
- Reason: The database-specific database.max.parametersproperty should be used instead.
OpenIdUtil.java
portal-impl/src/com/liferay/portal/util/OpenIdUtil.java
- Date: Oct. 19, 2023
- Ticket: LPS-198877
- What Changed: The OpenIdUtilclass is removed. UseOpenIdConnectinstead.
- Reason: OpenID has been deprecated and Liferay no longer uses it internally.
PersistedModelLocalServiceRegistryUtil.java
portal-impl/src/com/liferay/portal/service/PersistedModelLocalServiceRegistryUtil.java
- Date: Oct. 20, 2023
- Ticket: LPS-199563
- What Changed: The PersistedModelLocalServiceRegistryUtilclass is refactored fromportal-kerneltoportal-impl. Addportal-implto the build’s dependencies to continue using it.
- Reason: The class is moved into portal-implto simplify the code structure.
HttpAuthManagerUtil.java
portal-impl/src/com/liferay/portal/security/auth/http.HttpAuthManagerUtil.java
- Date: Oct. 21, 2023
- Ticket: LPS-197376
- What Changed: The HttpAuthManagerUtilclass is refactored fromportal-kerneltoportal-impl. Addportal-implto the build’s dependencies to continue using it.
- Reason: The class is moved into portal-implto simplify the code structure.
ImageToolUtil.java
portal-impl/src/com/liferay/portal/image/ImageToolUtil.java**
- Date: Oct. 21, 2023
- Ticket: LPS-198319
- What Changed: The ImageToolUtilclass is refactored fromportal-kerneltoportal-impl. Addportal-implto the build’s dependencies to continue using it.
- Reason: The class is moved into portal-implto simplify the code structure.
DLPreviewableProcessor.java
portal-impl/src/com/liferay/document/library/kernel/util/DLPreviewableProcessor.java
- Date: Oct. 21, 2023
- Ticket: LPS-198319
- What Changed: The DLPreviewableProcessorclass is refactored fromportal-kerneltoportal-impl. Addportal-implto the build’s dependencies to continue using it.
- Reason: The class is moved into portal-implto simplify the code structure.
RoleMembershipPolicyFactoryUtil.java
portal-kernel/src/com/liferay/portal/kernel/security.membershippolicy.RoleMembershipPolicyFactoryUtil.java
- Date: Oct. 23, 2023
- Ticket: LPS-199389
- What Changed: The RoleMembershipPolicyFactoryUtilclass is refactored fromportal-kerneltoportal-impl. Addportal-implto the build’s dependencies to continue using it.
- Reason: The class is moved into portal-implto simplify the code structure.
RoleMembershipPolicyUtil.java
portal-impl/src/com/liferay/portal/security/membershippolicy/RoleMembershipPolicyUtil.java
- Date: Oct. 23, 2023
- Ticket: LPS-199389
- What Changed: The RoleMembershipPolicyUtilclass is refactored fromportal-kerneltoportal-impl. Addportal-implto the build’s dependencies to continue using it.
- Reason: The class is moved into portal-implto simplify the code structure.
AuthenticatedSessionManagerUtil.java
portal-impl/src/com/liferay/portal/security/auth/session/AuthenticatedSessionManagerUtil.java
- Date: Oct. 23, 2023
- Ticket: LPS-199165
- What Changed: The AuthenticatedSessionManagerUtilclass is refactored fromportal-kerneltoportal-impl. Addportal-implto the build’s dependencies to continue using it.
- Reason: The class is moved into portal-implto simplify the code structure.
Success.java
portal-impl/src/com/liferay/portal/xmlrpc/Success.java
- Date: Oct. 23, 2023
- Ticket: LPS-199164
- What Changed: The Successclass is refactored fromportal-kerneltoportal-impl. Addportal-implto the build’s dependencies to continue using it.
- Reason: The class is moved into portal-implto simplify the code structure.
Fault.java
portal-impl/src/com/liferay/portal/xmlrpc/Fault.java
- Date: Oct. 23, 2023
- Ticket: LPS-199164
- What Changed: The Faultclass is refactored fromportal-kerneltoportal-impl. Addportal-implto the build’s dependencies to continue using it.
- Reason: The class is moved into portal-implto simplify the code structure.
XmlRpcUtil.java
portal-impl/src/com/liferay/portal/xmlrpc/XmlRpcUtil.java
- Date: Oct. 23, 2023
- Ticket: LPS-199164
- What Changed: The XmlRpcUtilclass is refactored fromportal-kerneltoportal-impl. Addportal-implto the build’s dependencies to continue using it.
- Reason: The class is moved into portal-implto simplify the code structure.
StartupHelperUtil.java
portal-impl/src/com/liferay/portal/events/StartupHelperUtil.java
- Date: Nov. 2, 2023
- Ticket: LPS-200501
- What Changed: The isStartupFinishedandsetStartupFinished(boolean)methods are removed.
- Reason: The flag does not accurately reflect the startup status, so the methods are removed to avoid incorrect usage.
ModelAdapterUtil.java
portal-impl/src/com/liferay/portal/model/adapter/ModelAdapterUtil.java
- Date: Nov. 3, 2023
- Ticket: LPS-199825
- What Changed: The ModelAdapterUtilclass is refactored fromportal-kerneltoportal-impl. Addportal-implto the build’s dependencies to continue using it.
- Reason: The class is moved into portal-implto simplify the code structure.
Changes in portal-kernel classes
PermissionConverterUtil.java
portal-kernel/src/com/liferay/portal/kernel/security/permission/PermissionConverterUtil.java
- Date: Sep. 25, 2023
- Ticket: LPS-197267
- What Changed: The PermissionConverterUtilclass is removed. Instead, use an OSGi service to referencePermissionConverter.
- Reason: The PermissionConverterAPIs are now inportal-security-permission-api.
DLProcessorRegistry.java
portal-kernel/src/com/liferay/document/library/kernel/util/DLProcessorRegistry.java
- Date: Sep. 27, 2023
- Ticket: LPS-196698
- What Changed: The getPreviewableProcessorMaxSizemethod is added.
- Reason: The method is needed to retrieve the configuration value.
FormNavigatorEntryUtil.java
portal-kernel/src/com/liferay/portal/kernel/servlet/taglib/ui/FormNavigatorEntryUtil.java
- Date: Oct. 12, 2023
- Ticket: LPS-198653
- What Changed: The FormNavigatorEntryUtilclass is removed. Use the OSGi service provided inFormNavigatorEntryProviderinstead.
- Reason: The class is no longer used.
OpenId.java
portal-kernel/src/com/liferay/portal/kernel/openid/OpenId.java
- Date: Oct. 19, 2023
- Ticket: LPS-198877
- What Changed: The OpenIdclass is removed. UseOpenIdConnectinstead.
- Reason: OpenID has been deprecated and Liferay no longer uses it internally.
PersistedModelLocalServiceRegistry.java
portal-kernel/src/com/liferay/portal/kernel/service/PersistedModelLocalServiceRegistry.java
- Date: Oct. 20, 2023
- Ticket: LPS-199563
- What Changed: The PersistedModelLocalServiceRegistryclass is removed. UsePersistedModelLocalServiceRegistryUtil(which is also refactored intoportal-impl) instead.
- Reason: The service collection and look-up logic is refactored into PersistedModelLocalServiceRegistryUtil.
ImageTool.java
portal-kernel/src/com/liferay/portal/kernel/image/ImageTool.java
- Date: Oct. 21, 2023
- Ticket: LPS-198319
- What Changed: The ImageToolclass is removed. Its constant fields are refactored toImageConstants, except for constants related to image orientation, which are removed. UseImageToolUtil’s static methods or the constants inImageConstantsinstead.
- Reason: The class is no longer used.
PortletPermission.java
portal-kernel/src/com/liferay/portal/kernel/service/permission/PortletPermission.java
- Date: Oct. 21, 2023
- Ticket: LPS-196101
- What Changed: The PortletPermissionclass is removed. UsePortletPermissionUtilinstead.
- Reason: The class is no longer used.
RoleMembershipPolicyFactory.java
portal-kernel/src/com/liferay/portal/kernel/security/membershippolicy/RoleMembershipPolicyFactory.java
- Date: Oct. 23, 2023
- Ticket: LPS-199389
- What Changed: The RoleMembershipPolicyFactoryclass is removed. UseRoleMembershipPolicyFactoryUtil(which is moved toportal-impl) instead.
- Reason: The class is no longer used.
ThreadLocalDistributor.java
portal-kernel/src/com/liferay/portal/kernel/util/ThreadLocalDistributor.java
- Date: Oct. 23, 2023
- Ticket: LPS-198859
- What Changed: The ThreadLocalDistributorclass is removed.
- Reason: The class is no longer used.
ThreadLocalDistributorRegistry.java
portal-kernel/src/com/liferay/portal/kernel/util/ThreadLocalDistributorRegistry.java
- Date: Oct. 23, 2023
- Ticket: LPS-198859
- What Changed: The ThreadLocalDistributorRegistryclass is removed.
- Reason: The class is no longer used.
HttpAuthManager.java
portal-kernel/src/com/liferay/portal/kernel/security/auth/http/HttpAuthManager.java
- Date: Oct. 23, 2023
- Ticket: LPS-197376
- What Changed: The HttpAuthMangerclass is removed. UseHttpAuthManagerUtilinstead.
- Reason: The class is no longer used.
XmlRpcParser.java
portal-kernel/src/com/liferay/portal/kernel.xmlrpc.XmlRpcParser.java
- Date: Oct. 23, 2023
- Ticket: LPS-199164
- What Changed: The XmlRpcParserclass is refactored into theXmlRpcUtilclass (which is also now inportal-impl).
- Reason: The XmlRpcParserandXmlRpcUtilclasses were closely related and depended on each other, so the two classes have been combined.
AuthenticatedSessionManager.java
portal-kernel/src/com/liferay/portal/kernel/security/auth/session/AuthenticatedSessionManager.java
- Date: Oct. 23, 2023
- Ticket: LPS-199165
- What Changed: The AuthenticatedSessionManagerclass is removed. UseAuthenticatedSessionManagerUtilinstead.
- Reason: The class is no longer used.
TemplateManagerUtil.java
portal-kernel/src/com/liferay/portal/kernel/template/TemplateManagerUtil.java
- Date: Oct. 26, 2023
- Ticket: LPS-200072
- What Changed: The destroyandgetTemplateManagersmethods are removed.
- Reason These methods are no longer used.
TemplateManager.java
portal-kernel/src/com/liferay/portal/kernel/template/TemplateManager.java
- Date: Oct. 26, 2023
- Ticket: LPS-200072
- What Changed: The initanddestroymethods are removed.
- Reason: The life cycle management is moved into internal service logic. The service’s consumers should not directly control its life cycle.
ModelAdapterBuilderLocator.java
portal-kernel/src/com/liferay/portal/kernel/model/adapter/builder/ModelAdapterBuilderLocator.java
- Date: Nov. 3, 2023
- Ticket: LPS-199825
- What Changed: The ModelAdapterBuilderLocatorclass is removed. UseModelAdapterUtildirectly instead.
- Reason: The class is no longer used.
AssetEntriesFacet.java
portal-kernel/src/com/liferay/portal/kernel/search/facet/AssetEntriesFacet.java
- Date: Nov. 3, 2023
- Ticket: LPS-200073
- What Changed: The AssetEntriesFacetclass is removed, in favor of logic fromFacetImpl.
- Reason: The class is no longer used.
AuditMessageFactory.java
portal-kernel/src/com/liferay/portal/kernel/audit/AuditMessageFactory.java
- Date: Nov. 7, 2023
- Ticket: LPS-201086
- What Changed: Logic from AuditMessageFactoryUtilandAuditMessageFactoryImplhave been refactored intoAuditMessageFactory.
- Reason: The logic was unnecessarily split between classes, so it is now combined into the AuditMessageFactoryclass to simplify the code structure.
AuditMessageFactoryUtil.java
portal-kernel/src/com/liferay/portal/kernel/audit/AuditMessageFactoryUtil.java
- Date: Nov. 7, 2023
- Ticket: LPS-201086
- What Changed: The AuditMessageFactoryUtilclass is removed. The logic has been refactored intoAuditMessageFactory.
- Reason: The logic was unnecessarily split between classes, so it is now combined into the AuditMessageFactoryclass to simplify the code structure.
PortletDisplay.java
portal-kernel/src/com/liferay/portal/kernel/theme/PortletDisplay.java
- Date: Nov. 20, 2023
- Ticket: LPS-196539
- What Changed: The getPortletSetupmethod is renamed togetPortletPreferences, and thesetPortletSetupmethod is renamed tosetPortletPreferences. Update any references to use the new method names.
- Reason: This change makes the method names consistent with the PortletPreferencesvariable.
PortletToolbar.java
portal-kernel/src/com/liferay/portal/kernel/portlet/toolbar/PortletToolbar.java
- Date: Nov. 21, 2023
- Ticket: LPS-200453
- What Changed: The PortletToolbarclass’s constructor is now private. UsePortletToolbar.INSTANCEto get an instance ofPortletToolbarinstead.
- Reason: PortletToolbaris no longer inutil-spring, so it needs a static instance instead.
Changes in osgi-util classes
Snapshot.java
osgi-util/src/main/java/com/liferay/osgi/util/service/Snapshot.java
- Date: Sep. 27, 2023
- Ticket: LPS-196524
- What Changed: The Snapshotclass is moved fromosgi-utilintoportal-kernel.
- Reason: The Snapshotclass is replacing all usages ofServiceProxyFactory.
Changes in Taglibs
liferay-commerce taglibs
- Date: Oct. 16, 2023
- Ticket: LPS-199170
- What Changed: The SearchInputTagandUserManagementBarTagtaglibs are removed.
- Reason: These were internal taglibs and are no longer used. They also used obsolete markup and logic.
liferay-export-import-changeset taglibs
- Date: Oct. 16, 2023
- Ticket: LPS-199170
- What Changed: These taglibs were removed: AddEntitiesTag,AddEntityTag,CreateTag,CreateTei,ExportEntityTag,ExportImportEntityManagementBarButtonTag,ExportImportEntitySearchContainerMappingTag,ImportEntityTag,PublishChangesetTag, andPublishModelMenuItemTag.
- Reason: These were internal taglibs and are no longer used. They also used obsolete markup and logic.
2023 Q3 Release
Changes in Liferay DXP
Here is a list of changes that break or significantly alter existing functionality within Liferay.
| Breaking Change | Description | References | 
|---|---|---|
| Location of the Mark as Cacheable option for fragments | Mark (or unmark) fragments as cacheable in the Fragments menu (within the fragment’s Actions menu) instead of the editor. Now you can make this change separately from other edits to the fragment, which reduces the performance cost of propagating it to fragments in use. No implementation changes are necessary with this breaking change. | LPS-183735 | 
Changes in Module Source Code
SolrClientManager.java
modules/apps/portal-search-solr8/portal-search-solr8-impl/src/main/java/com/liferay/portal/search/solr8/internal/connection/SolrClientManager.java
- Date: Jul. 4, 2023
- Ticket: LPS-180691
- What Changed: The SolrClientManagerclass’s extension points are removed.
- Reason: Liferay no longer supports extending this class.
SolrClientFactory.java
modules/apps/portal-search-solr8/portal-search-solr8-impl/src/main/java/com/liferay/portal/search/solr8/internal/connection/SolrClientFactory.java
- Date: Jul. 4, 2023
- Ticket: LPS-180691
- What Changed: The CLOUDandREPLICATEDextension points are removed.
- Reason: Liferay no longer supports these extension points.
HttpClientFactory.java
modules/apps/portal-search-solr8/portal-search-solr8-impl/src/main/java/com/liferay/portal/search/solr8/internal/http/HttpClientFactory.java
- Date: Jul. 4, 2023
- Ticket: LPS-180691
- What Changed: The BASICandCERTextension points are removed.
- Reason: Liferay no longer supports these extension points.
Changes in portal-impl Classes
MessagingHotDeployListener.java
portal-impl/src/com/liferay/portal/deploy/hot/MessagingHotDeployListener.java
- Date: Aug. 4, 2023
- Ticket: LPS-192680
- What Changed: The MessagingHotDeployListenerclass is removed. The accompanyingliferay/hot_deploymessage bus destination is also removed. Instead, register aHotDeployListenerto listen for hot deploy events.
- Reason: The removed message bus destination is no longer used.
HookHotDeployListener.java
portal-impl/src/com/liferay/portal/deploy/hot/HookHotDeployListener.java
- Date: Aug. 17, 2023
- Ticket: LPS-193926
- What Changed: The HookHotDeployListenerclass no longer supports deploying aDLProcessorvia hook. Instead, convert yourDLProcessorinto an OSGi implementation.
- Reason: This prevents duplicated logic to register DLProcessorimplementations betweenDLProcessorRegistryImplandHookHotDeployListener.
portal.properties
portal-impl/src/portal.properties
- Date: Sep. 4, 2023
- Ticket: LPS-194379
- What Changed: The portal property discussion.subscribeis removed. Instead, set the same configuration in your instance settings in the UI.
- Reason: Instance settings can be set specifically per instance and while Liferay is running, so it’s more flexible to configure it as an instance setting.
HookHotDeployListener.java
portal-impl/src/com/liferay/portal/deploy/hot/HookHotDeployListener.java
- Date: Sep. 4, 2023
- Ticket: LPS-194350
- What Changed: The HookHotDeployListenerclass no longer supports deploying an external repository via hook. Instead, convert your own external repository implementation into an OSGi service.
- Reason: OSGi services support more features than deploying external repositories via hook.
portal.properties
portal-impl/src/portal.properties
- Date: Sep. 13, 2023
- Ticket: LPS-195006
- What Changed: The portal property discussion.comments.always.editable.by.owneris removed. Instead, configure the same setting in your instance settings in the UI.
- Reason: Instance settings can be set specifically per instance and while Liferay is running, so it’s more flexible to configure it as an instance setting.
Changes in portal-kernel Classes
Document.java
portal-kernel/src/com/liferay/portal/kernel/search/Document.java
- Date: Jul. 7, 2023
- Ticket: LPS-188914
- What Changed: These addFilemethods are now deprecated:addFile(String, byte[], String),addFile(String, File, String),addFile(String, InputStream, String), andaddFile(String, InputStream, String, int). Update your implementations by using anInputStreamwith the file’s data and calling theTextExtractorclass’sextractTextmethod. Then, calladdFile(String, String)using theextractTextcall’s return value.
- Reason: The deprecated addFileimplementations are no longer used.
BaseModelPermissionChecker.java
com.liferay.portal.kernel.security.permission.BaseModelPermissionChecker
- Date: Aug. 11, 2023
- Ticket: LPS-182671
- What Changed: The BaseModelPermissionCheckerinterface is removed. ImplementModelResourcePermissioninstead.
- Reason: The interface was deprecated in 7.1 and is no longer used.
SchedulerEngine.java
portal-kernel/src/com/liferay/portal/kernel/scheduler/SchedulerEngine.java
- Date: Aug. 24, 2023
- Ticket: LPS-194314
- What Changed: The unschedulemethod is removed. Instead, call thedeletemethod.
- Reason: The method is not needed because unscheduled jobs should be deleted at the same time.
SchedulerEngineHelper.java
portal-kernel/src/com/liferay/portal/kernel/scheduler/SchedulerEngineHelper.java
- Date: Aug. 24, 2023
- Ticket: LPS-194314
- What Changed: The unschedulemethod is removed. Instead, call thedeletemethod.
- Reason: The method is not needed because unscheduled jobs should be deleted at the same time.
SchedulerEngineHelperUtil.java
portal-kernel/src/com/liferay/portal/kernel/scheduler/SchedulerEngineHelperUtil.java
- Date: Aug. 24, 2023
- Ticket: LPS-194314
- What Changed: The unschedulemethod is removed. Instead, call thedeletemethod.
- Reason: The method is not needed because unscheduled jobs should be deleted at the same time.
DestinationEventListener.java
portal-kernel/src/com/liferay/portal/kernel/messaging/DestinationEventListener.java
- Date: Sep. 1, 2023
- Ticket: LPS-195116
- What Changed: The DestinationEventListenerinterface is removed. Listening forDestinationregistration and unregistration events is no longer supported.
- Reason: This listener is no longer used.
MessageBusEventListener.java
portal-kernel/src/com/liferay/portal/kernel/messaging/MessageBusEventListener.java
- Date: Sep. 1, 2023
- Ticket: LPS-195116
- What Changed: The MessageBusEventListenerinterface is removed. Listening forMessageListenerregistration and unregistration events is no longer supported.
- Reason: This listener is no longer used.
Destination.java
portal-kernel/src/com/liferay/portal/kernel/messaging/Destination.java
- Date: Sep. 1, 2023
- Ticket: LPS-194337
- What Changed: These methods are removed: copyMessageListeners,getMessageListenerCount,isRegistered,register,unregister. TheMessageListenerRegistryinterface is added to get message listeners associated with a provided destination name. Update your code by registering aMessageListeneras an OSGi service, using thedestination.nameproperty.
- Reason: This change simplifies the message bus code structure.
ConfigurationProvider.java
portal-kernel/src/com/liferay/portal/kernel/module/configuration/ConfigurationProvider.java
- Date: Sep. 5, 2023
- Ticket: LPS-188270
- What Changed: The ConfigurationProviderclass is moved into theportal-configuration-module-configuration-apimodule. Addportal-configuration-module-configuration-apias a build dependency to continue using the class.
- Reason: The ConfigurationProviderclass is only used for modules.
ConfigurationProviderUtil.java
portal-kernel/src/com/liferay/portal/kernel/module/configuration/ConfigurationProviderUtil.java
- Date: Sep. 5, 2023
- Ticket: LPS-188270
- What Changed: The ConfigurationProviderUtilclass is moved into theportal-configuration-module-configuration-apimodule. Addportal-configuration-module-configuration-apias a build dependency to continue using the class.
- Reason: This class is being moved to ensure that the ConfigurationProviderclass is always available to it.
PortletDisplay.java
portal-kernel/src/com/liferay/portal/kernel/theme/PortletDisplay.java
- Date: Sep. 5, 2023
- Ticket: LPS-188270
- What Changed: The getPortletInstanceConfiguration(Class<T>)method is removed. Use theConfigurationProviderUtil.getPortletInstanceConfiguration(Class<T>, ThemeDisplay)method or reference theConfigurationProviderclass for the same method instead.
- Reason: The getPortletInstanceConfigurationmethod should be handled inConfigurationProvider.
TriggerConfiguration.java
portal-kernel/src/com/liferay/portal/kernel/scheduler/TriggerConfiguration.java
- Date: Sep. 11, 2023
- Ticket: LPS-190994
- What Changed: The scheduler framework no longer supports using an empty cron expression (or interval of 0) to disable a job. Instead, use the component blacklist to disable specific scheduler components. Check the required class names in the error message shown when using an empty cron expression.
- Reason: If a job should not be bootstrapped, it should not be registered with the scheduler framework.
Before Quarterly Releases
These breaking changes came before the first quarterly release (2023 Q3).
Changes in portal-impl Classes
portal.properties
portal-impl/src/portal.properties
- Date: Jan. 10, 2022
- Ticket: LPS-144693
- What Changed: The ehcache.socket.so.timeoutandehcache.socket.start.portportal properties are removed.
- Reason: These properties are no longer used.
portal.properties
portal-impl/src/portal.properties
- Date: Jan. 18, 2022
- Ticket: LPS-145063
- What Changed: The verify.patch.levels.disabledportal property is removed.
- Reason: This property is no longer used.
portal.properties
portal-impl/src/portal.properties
- Date: Jan. 18, 2022
- Ticket: LPS-145076
- What Changed: The auto.deploy.websphere.wsadmin.app.name.suffixandauto.deploy.websphere.wsadmin.properties.file.nameportal properties are removed.
- Reason: These properties are no longer used.
portal.properties
portal-impl/src/portal.properties
- Date: Jan. 25, 2022
- Ticket: LPS-145769
- What Changed: The browser.compatibility.ie.versionsportal property is removed.
- Reason: This property is no longer used.
portal.properties
portal-impl/src/portal.properties
- Date: Jan. 25, 2022
- Ticket: LPS-145853
- What Changed: The control.panel.navigation.max.sitesportal property is removed.
- Reason: This property is no longer used.
portal.properties
portal-impl/src/portal.properties
- Date: Jan. 27, 2022
- Ticket: LPS-145171
- What Changed: The wsadmin.py,auto.deploy.websphere.wsadmin.app.manager.install.options,auto.deploy.websphere.wsadmin.app.manager.list.options,auto.deploy.websphere.wsadmin.app.manager.update.options, andauto.deploy.websphere.wsadmin.app.manager.queryportal properties are removed.
- Reason: These properties are no longer used.
wsadmin.py
portal-impl/src/com/liferay/portal/deploy/dependencies/wsadmin.py
- Date: Jan. 27, 2022
- Ticket: LPS-145171
- What Changed: The wsadmin.pyfile is removed.
- Reason: The file was deprecated and no longer used.
portal.properties
portal-impl/src/portal.properties
- Date: Jan. 27, 2022
- Ticket: LPS-145345
- What Changed: The default.guest.public.layout.column-1,default.guest.public.layout.column-2,default.guest.public.layout.column-3, anddefault.guest.public.layout.column-4portal properties are removed.
- Reason: These properties are no longer used.
portal.properties
portal-impl/src/portal.properties
- Date: Jan. 27, 2022
- Ticket: LPS-146148
- What Changed: The control.panel.navigation.max.organizationsportal property is removed.
- Reason: This property is no longer used.
portal.properties
portal-impl/src/portal.properties
- Date: Jan. 31, 2022
- Ticket: LPS-145771
- What Changed: The portlet.url.generate.by.path.enabledportal property is removed.
- Reason: This property is no longer used.
portal.properties
portal-impl/src/portal.properties
- Date: Feb. 4, 2022
- Ticket: LPS-146153
- What Changed: The layout.comments.enabledportal property is removed.
- Reason: This property is no longer used.
portal.properties
portal-impl/src/portal.properties
- Date: Feb. 4, 2022
- Ticket: LPS-146376
- What Changed: The editor.wysiwyg.portal-web.docroot.html.portlet.mail.edit.jspandeditor.wysiwyg.portal-web.docroot.html.portlet.mail.edit_message.jspportal properties are removed.
- Reason: These properties are no longer used.
portal.properties
portal-impl/src/portal.properties
- Date: Feb. 8, 2022
- Ticket: LPS-145344
- What Changed: The verify.patch.levels.disabledportal property is removed.
- Reason: This property is no longer used.
portal.properties
portal-impl/src/portal.properties
- Date: Feb. 10, 2022
- Ticket: LPS-145600
- What Changed: The multi.value.map.com.liferay.portal.convert.ConvertPermissionAlgorithm.convertResourcePermissionandmulti.value.map.com.liferay.portal.convert.ConvertPermissionAlgorithm.convertRolesportal properties are removed.
- Reason: These properties are no longer used.
portal.properties
portal-impl/src/portal.properties
- Date: Feb. 10, 2022
- Ticket: LPS-145905
- What Changed: The pop.server.notifications.intervalportal property is removed.
- Reason: This property is no longer used.
portal.properties
portal-impl/src/portal.properties
- Date: Feb. 17, 2022
- Ticket: LPS-145571
- What Changed: The index.with.threadportal property is removed.
- Reason: This property is no longer used.
portal.properties
portal-impl/src/portal.properties
- Date: Feb. 17, 2022
- Ticket: LPS-145595
- What Changed: The index.dump.compression.enabledportal property is removed.
- Reason: This property is no longer used.
portal.properties
portal-impl/src/portal.properties
- Date: Feb. 28, 2022
- Ticket: LPS-145773
- What Changed: The users.list.viewsportal property is removed.
- Reason: This property is no longer used.
portal.properties
portal-impl/src/portal.properties
- Date: Feb. 28, 2022
- Ticket: LPS-145904
- What Changed: The cluster.link.node.bootup.response.timeoutportal property is removed.
- Reason: This property is no longer used.
portal.properties
portal-impl/src/portal.properties
- Date: Feb. 28, 2022
- Ticket: LPS-145907
- What Changed: The rtl.css.excluded.paths.regexpportal property is removed.
- Reason: This property is no longer used.
portal.properties
portal-impl/src/portal.properties
- Date: Feb. 28, 2022
- Ticket: LPS-145919
- What Changed: The scripting.jruby.compile.modeportal property is removed.
- Reason: This property is no longer used.
portal.properties
portal-impl/src/portal.properties
- Date: Mar. 4, 2022
- Ticket: LPS-145906
- What Changed: The rss.publish.to.live.by.defaultportal property is removed.
- Reason: This property is no longer used.
portal.properties
portal-impl/src/portal.properties
- Date: Mar. 4, 2022
- Ticket: LPS-145920
- What Changed: The calendar.publish.to.live.by.defaultportal property is removed.
- Reason: This property is no longer used.
portal.properties
portal-impl/src/portal.properties
- Date: Mar. 4, 2022
- Ticket: LPS-146150
- What Changed: The zip.file.name.encodingportal property is removed.
- Reason: This property is no longer used.
portal.properties
portal-impl/src/portal.properties
- Date: Mar. 4, 2022
- Ticket: LPS-146151
- What Changed: The my.sites.display.styleportal property is removed.
- Reason: This property is no longer used.
portal.properties
portal-impl/src/portal.properties
- Date: Mar. 4, 2022
- Ticket: LPS-147192
- What Changed: The asset.categories.properties.defaultportal property is removed.
- Reason: This property is no longer used.
portal.properties
portal-impl/src/portal.properties
- Date: Mar. 9, 2022
- Ticket: LPS-145921
- What Changed: The dl.folder.icon.check.count,dl.file.entry.open.in.ms.office.manual.check.in.required,dl.file.entry.version.policy,dl.file.entry.thumbnail.video.frame.percentage,dl.file.entry.preview.document.depth, anddl.file.entry.preview.auto.create.on.upgradeportal properties are removed.
- Reason: These properties are no longer used.
portal.properties
portal-impl/src/portal.properties
- Date: Mar. 18, 2022
- Ticket: LPS-148110
- What Changed: The portal.jaas.implandportal.jaas.strict.passwordportal properties are removed.
- Reason: These properties are no longer used.