Monday 30 November 2020

Get AEM Runmode Value

JAVA:

BundleContext bundleContext = FrameworkUtil.getBundle(DComCommonUtil.class).getBundleContext();
ServiceReference<?> serviceReference = bundleContext.getServiceReference(SlingSettingsService.class.getName());
SlingSettingsService slingSettingsService = (SlingSettingsService) bundleContext.getService(serviceReference);

OR

SlingSettingsService slingSettingsService = slingHelper.getService(org.apache.sling.settings.SlingSettingsService.class);

AND

Set<String> runmodesSet = slingSettingsService.getRunModes();


Java Script:

var SlingSettingsService = Packages.org.apache.sling.settings.SlingSettingsService;
use(function () {
    // Get runmodes and transform them into an object that is easier to read for Sightly
    var runmodesObj = {};
    var runmodesSet = sling.getService(SlingSettingsService).getRunModes();
    var iterator = runmodesSet.iterator();
    while (iterator.hasNext()) {
        runmodesObj[iterator.next()] = true;
    }
    return {
        getrunmodes: runmodesObj
    }
});

And call this JS file in sightly directly
data-sly-use.runmode="/apps/project/test/components/pages/utils/runmode.js"

JSP:
<%
Session session = resourceResolver.adaptTo(Session.class);
SlingSettingsService settingService = sling.getService(SlingSettingsService.class);
if(settingService.getRunModes().contains("prod")){
    baseDomain = "https://test.com";
}
%>

No comments:

Post a Comment