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.