AEM Sites:为自定义列使用PageInfoProvider时,已弃用org.apache.sling.commons.json.JSONObject警告

本文介绍使用PageInfoProvider自定义AEM Sites列表视图列时,与org.apache.sling.commons.json.JSONObject相关的已弃用API警告的原因和当前影响。

描述 description

环境

Adobe Experience Manager (AEM) as a Cloud Service(所有版本)

问题/症状

使用PageInfoProvider界面在AEM Sites控制台列表视图中实施自定义列时,日志中显示以下警告:

2023-02-23 18:47:55.095 [ region-deprecated-api]  com.xx.aem:xx-unified-site.core:0.0.2-SNAPSHOT: Usage of deprecated package found : org.apache.sling.commons.json : Usage of this deprecated API is not supported in AEM as a Cloud Service. Deprecated since 2022-12-31 For removal : 2027-12-31 (com.xx.aem:xx-unified-site.all:0.0.2-SNAPSHOT)
  • 由于PageInfoProvider API合同要求返回org.apache.sling.commons.json.JSONObject,因此触发了警告。
  • org.apache.sling.commons.json包已弃用,计划在2027-12-31之后删除。
  • 这些警告仅供参考,在使用仅限于PageInfoProvider个实现时,当前不会阻止Cloud Manager管道。

原因

PageInfoProvider接口当前要求返回org.apache.sling.commons.json.JSONObject,强制使用已弃用的包。 这被视为技术债,将在未来的AEM Sites API更新中解决。

解决方法 resolution

请按照以下步骤解决问题:

  1. 查看日志警告,确认它们与使用PageInfoProviderorg.apache.sling.commons.json.JSONObject依赖关系相关。

  2. 了解这些警告当前仅提供信息,不会阻止部署或影响站点控制台中自定义列的功能。

  3. 有关弃用和计划删除org.apache.sling.commons.json的更新,请查看Adobe Experience Manager发行说明和文档。

  4. 计划在未来重构自定义列实施:

    • Adobe工程部门正在努力弃用当前PageInfoProvider接口。
    • 将在未来版本中引入并记录不需要org.apache.sling.commons.json的新接口。
  5. 除非在PageInfoProvider上下文之外使用已弃用的API,或者如果未来版本引入重大更改,否则不需要立即执行任何操作。

recommendation-more-help
experience-cloud-kcs-help-kbarticles