如何以编程方式检索AEM / CQ5的产品版本

时间:2015-06-24 14:34:11

标签: cq5 aem

AEM 5.6.1。

我有一个包裹。我希望能够“嗅探”#39;用户/管理员在尝试安装软件包时使用的AEM版本。

该版本在前端通过工具提供 - > Web控制台 - >主要 - >产品信息

我很感激我可以解析上面的页面并提取但肯定有更优雅的方式来做它?

我已查看过包装上的Adobe文档:(我会发布链接,但是抱怨我没有足够的声誉)并且在SO周围进行了很好的搜索。

我最接近的是通过此文档:https://helpx.adobe.com/experience-manager/using/programmatically-accessing-cq-content-using.html并假设在CRX @ / etc / packages / day中找到详细信息:

  • CQ5
  • cq560
  • cq561

代表典型的安装?

4 个答案:

答案 0 :(得分:5)

当前版本的AEM通过[1]中描述的ProductInfoService提供此信息,该信息可以返回多个ProductInfo个对象。

这已在5.6.1中提供,也可通过/system/console/status-productinfo的OSGi控制台获得。

[1] https://docs.adobe.com/docs/fr/aem/6-0/develop/ref/javadoc/com/adobe/granite/license/package-summary.html

答案 1 :(得分:0)

产品信息存储在节点" / libs / cq / core / productinfo" ,您可以从这些节点中读取信息。

在安装软件包时,您没有指定是否具有存储库访问权限。如果您希望数据作为基于HTTP的JSON,只需使用" .json"扩展

来源:检查aem developer Chrome插件发出的网络请求

答案 2 :(得分:0)

我们可以从CRXDE中的节点“/ libs / cq / core / productinfo”读取AEM产品版本

def productInfo = request.resourceResolver.getResource("/libs/cq/core/productinfo")?.adaptTo(ValueMap) ?: [:]

String version = productInfo["shortVersion"]

参考:https://forums.adobe.com/thread/2338675

答案 3 :(得分:0)

要以语法方式检索任何正在运行的AEM实例的产品版本,可以通过以下代码段完成。

@Reference 
private ProductInfoProvider productInfo;

String version = productInfo.getProductInfo().getShortVersion();

首先,我们需要向您的服务中注入 ProductInfoProvider 服务或定义 ProductInfoProvider 的引用,并使用以下函数调用获取版本信息,如下所示:      productInfo.getProductInfo()。getShortVersion();