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
String
parameter (fileName
) is added to theaddExtRepositoryFileEntry(String, String, String, String, String, InputStream)
method (so it now takes 6String
parameters 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
_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
tomodel.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 aBigDecimal
instead of anint
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 aBigDecimal
instead of anint
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
andAddDefaultAccountRolesPortletPermissionsPortalInstanceLifecycleListener
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 additionalCommerceOrder
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 additionalCommerceOrder
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 accessingDLFileEntryConfiguration
. - 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 ofPDFPreviewConfiguration
. - 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 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
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. UseOpenIdConnect
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 fromportal-kernel
toportal-impl
. Addportal-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 fromportal-kernel
toportal-impl
. Addportal-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 fromportal-kernel
toportal-impl
. Addportal-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 fromportal-kernel
toportal-impl
. Addportal-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 fromportal-kernel
toportal-impl
. Addportal-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 fromportal-kernel
toportal-impl
. Addportal-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 fromportal-kernel
toportal-impl
. Addportal-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 fromportal-kernel
toportal-impl
. Addportal-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 fromportal-kernel
toportal-impl
. Addportal-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 fromportal-kernel
toportal-impl
. Addportal-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
andsetStartupFinished(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 fromportal-kernel
toportal-impl
. Addportal-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 referencePermissionConverter
. - Reason: The
PermissionConverter
APIs 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
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 inFormNavigatorEntryProvider
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. UseOpenIdConnect
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. 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
ImageTool
class 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 inImageConstants
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. UsePortletPermissionUtil
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. 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
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. UseHttpAuthManagerUtil
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 theXmlRpcUtil
class (which is also now inportal-impl
). - Reason: The
XmlRpcParser
andXmlRpcUtil
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. UseAuthenticatedSessionManagerUtil
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
andgetTemplateManagers
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
anddestroy
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. UseModelAdapterUtil
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 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
AuditMessageFactoryUtil
andAuditMessageFactoryImpl
have been refactored intoAuditMessageFactory
. - 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 intoAuditMessageFactory
. - 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 togetPortletPreferences
, and thesetPortletSetup
method is renamed tosetPortletPreferences
. 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. UsePortletToolbar.INSTANCE
to get an instance ofPortletToolbar
instead. - Reason:
PortletToolbar
is 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
Snapshot
class is moved fromosgi-util
intoportal-kernel
. - Reason: The
Snapshot
class is replacing all usages ofServiceProxyFactory
.
Changes in Taglibs
liferay-commerce
taglibs
- Date: Oct. 16, 2023
- Ticket: LPS-199170
- What Changed: The
SearchInputTag
andUserManagementBarTag
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
, 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
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
andREPLICATED
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
andCERT
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 accompanyingliferay/hot_deploy
message bus destination is also removed. Instead, register aHotDeployListener
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 aDLProcessor
via hook. Instead, convert yourDLProcessor
into an OSGi implementation. - Reason: This prevents duplicated logic to register
DLProcessor
implementations betweenDLProcessorRegistryImpl
andHookHotDeployListener
.
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)
, andaddFile(String, InputStream, String, int)
. Update your implementations by using anInputStream
with the file’s data and calling theTextExtractor
class’sextractText
method. Then, calladdFile(String, String)
using theextractText
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. ImplementModelResourcePermission
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 thedelete
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 thedelete
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 thedelete
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 forDestination
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 forMessageListener
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
. TheMessageListenerRegistry
interface is added to get message listeners associated with a provided destination name. Update your code by registering aMessageListener
as an OSGi service, using thedestination.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 theportal-configuration-module-configuration-api
module. Addportal-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 theportal-configuration-module-configuration-api
module. Addportal-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 theConfigurationProviderUtil.getPortletInstanceConfiguration(Class<T>, ThemeDisplay)
method or reference theConfigurationProvider
class for the same method instead. - Reason: The
getPortletInstanceConfiguration
method 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.timeout
andehcache.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
andauto.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
, andauto.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
, anddefault.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
andeditor.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
andmulti.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
, anddl.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
andportal.jaas.strict.password
portal properties are removed. - Reason: These properties are no longer used.