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)
- 由于
PageInfoProviderAPI合同要求返回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
请按照以下步骤解决问题:
-
查看日志警告,确认它们与使用
PageInfoProvider和org.apache.sling.commons.json.JSONObject依赖关系相关。 -
了解这些警告当前仅提供信息,不会阻止部署或影响站点控制台中自定义列的功能。
-
有关弃用和计划删除
org.apache.sling.commons.json的更新,请查看Adobe Experience Manager发行说明和文档。 -
计划在未来重构自定义列实施:
- Adobe工程部门正在努力弃用当前
PageInfoProvider接口。 - 将在未来版本中引入并记录不需要
org.apache.sling.commons.json的新接口。
- Adobe工程部门正在努力弃用当前
-
除非在
PageInfoProvider上下文之外使用已弃用的API,或者如果未来版本引入重大更改,否则不需要立即执行任何操作。
recommendation-more-help
experience-cloud-kcs-help-kbarticles