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 ChangeDescriptionReferences
Minimum Compatible Elasticsearch VersionElasticsearch 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 TestingAB 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 TemplatesBy 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 DownloadsBy 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 WebSphereDeploying 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 VersionsJDK 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) and convertPermissions(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 String parameter (fileName) is added to the addExtRepositoryFileEntry(String, String, String, String, String, InputStream) method (so it now takes 6 String parameters and an InputStream).
  • 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 _workflowTaskModelResourcePermission field’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.WorkflowTask to model.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 getCommerceShipmentOrderItemsQuantity method returns a BigDecimal instead of an int value.
  • Reason: A BigDecimal value 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 getCommerceShipmentOrderItemsQuantity method returns a BigDecimal instead of an int value.
  • Reason: A BigDecimal value 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 BaseClayTag class 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 ModelSearchRegistrarHelper class 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 ModelSearchDefinitionContributor class 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 checkCompanyAccountRoles method is removed.
  • Reason: The AddDefaultAccountRolesPortalInstanceLifecycleListener and AddDefaultAccountRolesPortletPermissionsPortalInstanceLifecycleListener classes 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 isActiveShippingMethodCommerceCheckoutStep method now uses an additional CommerceOrder value.
  • Reason: A CommerceOrder value 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 PaymentProcessCheckoutStepDisplayContext method nose uses an additional CommerceOrder value.
  • Reason: A CommerceOrder value 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 scopeGroupType methods are removed.
  • Reason: The scopeGroupType methods 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 DLFileEntryConfigurationProvider instead of directly accessing DLFileEntryConfiguration.
  • Reason: The DLFileEntryConfigurationProvider class 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 Scope object 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 of PDFPreviewConfiguration.
  • Reason: PDFPreviewConfiguration is 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 DLFileEntryConfiguration attributes.

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 DLFileEntryConfiguration attributes.

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 hasDirectReplacement method is renamed to isDirectReplacement.
  • 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 userId instead 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 userId to 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.parameters property is removed.
  • Reason: The database-specific database.max.parameters property 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 OpenIdUtil class is removed. Use OpenIdConnect instead.
  • 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 PersistedModelLocalServiceRegistryUtil class is refactored from portal-kernel to portal-impl. Add portal-impl to the build’s dependencies to continue using it.
  • Reason: The class is moved into portal-impl to 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 HttpAuthManagerUtil class is refactored from portal-kernel to portal-impl. Add portal-impl to the build’s dependencies to continue using it.
  • Reason: The class is moved into portal-impl to 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 ImageToolUtil class is refactored from portal-kernel to portal-impl. Add portal-impl to the build’s dependencies to continue using it.
  • Reason: The class is moved into portal-impl to 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 DLPreviewableProcessor class is refactored from portal-kernel to portal-impl. Add portal-impl to the build’s dependencies to continue using it.
  • Reason: The class is moved into portal-impl to 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 RoleMembershipPolicyFactoryUtil class is refactored from portal-kernel to portal-impl. Add portal-impl to the build’s dependencies to continue using it.
  • Reason: The class is moved into portal-impl to 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 RoleMembershipPolicyUtil class is refactored from portal-kernel to portal-impl. Add portal-impl to the build’s dependencies to continue using it.
  • Reason: The class is moved into portal-impl to 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 AuthenticatedSessionManagerUtil class is refactored from portal-kernel to portal-impl. Add portal-impl to the build’s dependencies to continue using it.
  • Reason: The class is moved into portal-impl to 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 Success class is refactored from portal-kernel to portal-impl. Add portal-impl to the build’s dependencies to continue using it.
  • Reason: The class is moved into portal-impl to 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 Fault class is refactored from portal-kernel to portal-impl. Add portal-impl to the build’s dependencies to continue using it.
  • Reason: The class is moved into portal-impl to 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 XmlRpcUtil class is refactored from portal-kernel to portal-impl. Add portal-impl to the build’s dependencies to continue using it.
  • Reason: The class is moved into portal-impl to 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 isStartupFinished and setStartupFinished(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 ModelAdapterUtil class is refactored from portal-kernel to portal-impl. Add portal-impl to the build’s dependencies to continue using it.
  • Reason: The class is moved into portal-impl to 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 PermissionConverterUtil class is removed. Instead, use an OSGi service to reference PermissionConverter.
  • Reason: The PermissionConverter APIs are now in portal-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 getPreviewableProcessorMaxSize method 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 FormNavigatorEntryUtil class is removed. Use the OSGi service provided in FormNavigatorEntryProvider instead.
  • 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 OpenId class is removed. Use OpenIdConnect instead.
  • 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 PersistedModelLocalServiceRegistry class is removed. Use PersistedModelLocalServiceRegistryUtil (which is also refactored into portal-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 ImageTool class is removed. Its constant fields are refactored to ImageConstants, except for constants related to image orientation, which are removed. Use ImageToolUtil’s static methods or the constants in ImageConstants instead.
  • 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 PortletPermission class is removed. Use PortletPermissionUtil instead.
  • 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 RoleMembershipPolicyFactory class is removed. Use RoleMembershipPolicyFactoryUtil (which is moved to portal-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 ThreadLocalDistributor class 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 ThreadLocalDistributorRegistry class 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 HttpAuthManger class is removed. Use HttpAuthManagerUtil instead.
  • 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 XmlRpcParser class is refactored into the XmlRpcUtil class (which is also now in portal-impl).
  • Reason: The XmlRpcParser and XmlRpcUtil classes 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 AuthenticatedSessionManager class is removed. Use AuthenticatedSessionManagerUtil instead.
  • 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 destroy and getTemplateManagers methods 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 init and destroy methods 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 ModelAdapterBuilderLocator class is removed. Use ModelAdapterUtil directly 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 AssetEntriesFacet class is removed, in favor of logic from FacetImpl.
  • 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 AuditMessageFactoryUtil and AuditMessageFactoryImpl have been refactored into AuditMessageFactory.
  • Reason: The logic was unnecessarily split between classes, so it is now combined into the AuditMessageFactory class 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 AuditMessageFactoryUtil class is removed. The logic has been refactored into AuditMessageFactory.
  • Reason: The logic was unnecessarily split between classes, so it is now combined into the AuditMessageFactory class 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 getPortletSetup method is renamed to getPortletPreferences, and the setPortletSetup method is renamed to setPortletPreferences. Update any references to use the new method names.
  • Reason: This change makes the method names consistent with the PortletPreferences variable.

PortletToolbar.java portal-kernel/src/com/liferay/portal/kernel/portlet/toolbar/PortletToolbar.java

  • Date: Nov. 21, 2023
  • Ticket: LPS-200453
  • What Changed: The PortletToolbar class’s constructor is now private. Use PortletToolbar.INSTANCE to get an instance of PortletToolbar instead.
  • Reason: PortletToolbar is no longer in util-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 Snapshot class is moved from osgi-util into portal-kernel.
  • Reason: The Snapshot class is replacing all usages of ServiceProxyFactory.

Changes in Taglibs

liferay-commerce taglibs

  • Date: Oct. 16, 2023
  • Ticket: LPS-199170
  • What Changed: The SearchInputTag and UserManagementBarTag taglibs 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, and PublishModelMenuItemTag.
  • 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 ChangeDescriptionReferences
Location of the Mark as Cacheable option for fragmentsMark (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 SolrClientManager class’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 CLOUD and REPLICATED extension 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 BASIC and CERT extension 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 MessagingHotDeployListener class is removed. The accompanying liferay/hot_deploy message bus destination is also removed. Instead, register a HotDeployListener to 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 HookHotDeployListener class no longer supports deploying a DLProcessor via hook. Instead, convert your DLProcessor into an OSGi implementation.
  • Reason: This prevents duplicated logic to register DLProcessor implementations between DLProcessorRegistryImpl and HookHotDeployListener.

portal.properties portal-impl/src/portal.properties

  • Date: Sep. 4, 2023
  • Ticket: LPS-194379
  • What Changed: The portal property discussion.subscribe is 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 HookHotDeployListener class 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.owner is 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 addFile methods are now deprecated: addFile(String, byte[], String), addFile(String, File, String), addFile(String, InputStream, String), and addFile(String, InputStream, String, int). Update your implementations by using an InputStream with the file’s data and calling the TextExtractor class’s extractText method. Then, call addFile(String, String) using the extractText call’s return value.
  • Reason: The deprecated addFile implementations are no longer used.

BaseModelPermissionChecker.java com.liferay.portal.kernel.security.permission.BaseModelPermissionChecker

  • Date: Aug. 11, 2023
  • Ticket: LPS-182671
  • What Changed: The BaseModelPermissionChecker interface is removed. Implement ModelResourcePermission instead.
  • 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 unschedule method is removed. Instead, call the delete method.
  • 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 unschedule method is removed. Instead, call the delete method.
  • 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 unschedule method is removed. Instead, call the delete method.
  • 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 DestinationEventListener interface is removed. Listening for Destination registration 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 MessageBusEventListener interface is removed. Listening for MessageListener registration 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. The MessageListenerRegistry interface is added to get message listeners associated with a provided destination name. Update your code by registering a MessageListener as an OSGi service, using the destination.name property.
  • 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 ConfigurationProvider class is moved into the portal-configuration-module-configuration-api module. Add portal-configuration-module-configuration-api as a build dependency to continue using the class.
  • Reason: The ConfigurationProvider class 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 ConfigurationProviderUtil class is moved into the portal-configuration-module-configuration-api module. Add portal-configuration-module-configuration-api as a build dependency to continue using the class.
  • Reason: This class is being moved to ensure that the ConfigurationProvider class 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 the ConfigurationProviderUtil.getPortletInstanceConfiguration(Class<T>, ThemeDisplay) method or reference the ConfigurationProvider class for the same method instead.
  • Reason: The getPortletInstanceConfiguration method should be handled in ConfigurationProvider.

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.timeout and ehcache.socket.start.port portal 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.disabled portal 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.suffix and auto.deploy.websphere.wsadmin.properties.file.name portal 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.versions portal 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.sites portal 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, and auto.deploy.websphere.wsadmin.app.manager.query portal 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.py file 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, and default.guest.public.layout.column-4 portal 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.organizations portal 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.enabled portal 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.enabled portal 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.jsp and editor.wysiwyg.portal-web.docroot.html.portlet.mail.edit_message.jsp portal 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.disabled portal 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.convertResourcePermission and multi.value.map.com.liferay.portal.convert.ConvertPermissionAlgorithm.convertRoles portal 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.interval portal 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.thread portal 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.enabled portal 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.views portal 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.timeout portal 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.regexp portal 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.mode portal 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.default portal 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.default portal 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.encoding portal 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.style portal 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.default portal 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, and dl.file.entry.preview.auto.create.on.upgrade portal 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.impl and portal.jaas.strict.password portal properties are removed.
  • Reason: These properties are no longer used.

Capabilities

Product

Contact Us

Connect

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