<KG/>
Published on

How to find the current run mode in AEM

Authors

The Problem

You suspect your instance is not running in publish mode, or is missing a custom run mode on startup and need to find out easily what runmode the instance is running under.

The Solution

Using console:

Go to:http://localhost:4502/system/console/status-slingsettings

You will see the following line down the bottom:

Run Modes = [s7connect, crx3, author, samplecontent, crx3tar]
aem run mode checking

Programatical way :

To get a list of run modes the current AEM instance is using you can use the SlingSettingService in your service and/or servlet.

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

@Component
public class MyService {

    @Reference
    private SlingSettingsService slingSettingsService;

    private Set<String> getRunModes() {
        return this.slingSettingsService.getRunModes();
    }
}

If you're using jsp

slingSettings =this.getSlingScriptHelper().getService(SlingSettingsService.class);
Set<String> runmodes = slingSettings.getRunModes();

If you're Sightly

//logic.js
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 {
        runmodes: runmodesObj
    }
});
<div data-sly-use.logic="logic.js">
  <p>Current runmodes: ${logic.runmodes}</p>
  <p data-sly-test="${logic.runmodes.samplecontent}">samplecontent runmode</p>
</div>

Share

Khalil

Khalil Ganiga

Just another programmer.. This blog expresses my views of various technologies and scenarios I have come across in realtime.

Keep watching this space for more updates.