小编Dav*_*d J的帖子

在AEM 6中从Java查找云服务配置的“正确”方法

AEM的Cloud Services API的文档记录得并不完善,并且提供了许多使用尴尬的方法,这些方法可用于Configuration从资源中查找给定的给定值。以下是一些我在野外发现的示例,可以做到这一点。

方法1:全部获取Configurations并迭代它们,直到找到命名的配置:

public static Configuration findConfiguration(ConfigurationManager configurationManager, Resource resource, String serviceName) {
    Iterator configurations = configurationManager.getConfigurations(resource);
    while (configurations.hasNext()) {
        Configuration configuration = (Configuration) configurations.next();
        if (serviceName.equals(configuration.get("cq:cloudservicename", ""))) {
            return configuration;
        }
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

方法2:查找cq:cloudserviceconfigs适用于该资源的所有资源,并索取所需的资源:

public static Configuration findConfiguration(ConfigurationManager configurationManager, Resource resource, String serviceName) {
    HierarchyNodeInheritanceValueMap pageProperties = 
        new HierarchyNodeInheritanceValueMap(resource);

    String[] allServices = 
        pageProperties.getInherited("cq:cloudserviceconfigs", new String[0]);

    return configurationManager.getConfiguration(serviceName, allServices);
}
Run Code Online (Sandbox Code Playgroud)

方法3:与方法2相似,但是看起来只有在具有cq:cloudserviceconfigs属性的第一个父对象上也定义了所请求的配置时,它才会起作用?

public static Configuration findConfiguration(ConfigurationManager configurationManager, …
Run Code Online (Sandbox Code Playgroud)

java aem

5
推荐指数
0
解决办法
1280
查看次数

标签 统计

aem ×1

java ×1