如何使用resourceResolver在java中获取runmode

Aja*_*jay 2 aem aem-6

我有一个OSGi服务,只需要在发布实例中运行.当我只有一个resourceResolver而不是请求时,如何在java中获取runmode?

Jen*_*ens 6

要获取当前AEM实例正在使用的运行模式列表,您可以SlingSettingService在服务和/或servlet中使用它.

import org.apache.felix.scr.annotations.Component;
import org.apache.sling.settings.SlingSettingsService;

@Component
public class MyService {

    @Reference
    private SlingSettingsService slingSettingsService;

    private boolean isPublish() {
        return this.slingSettingsService.getRunModes().contains("publish");
    }
}
Run Code Online (Sandbox Code Playgroud)

看到:

AEM 6.1:https://docs.adobe.com/docs/en/aem/6-1/ref/javadoc/org/apache/sling/settings/SlingSettingsService.html

AEM 6.2:https://docs.adobe.com/docs/en/aem/6-2/develop/ref/javadoc/org/apache/sling/settings/SlingSettingsService.html