How to add run mode to specific class in AEM | Community
Skip to main content
Level 2
Jun 3, 2022 6:42 AM UTC
Solved

How to add run mode to specific class in AEM

Lets say I have one service like this:

 

@8220494(service = CurrenciesMongoWriter.class) public class CurrenciesMongoWriterImpl implements CurrenciesMongoWriter { ... ... }

How to add run mode to it so I can test it in dev, prod and etc.

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
arunpatidar
arunpatidarAccepted solution
New Participant
Jun 3, 2022 7:19 AM UTC

If you have run mode setup in AEM, then you can check run mode using

SLING API - https://developer.adobe.com/experience-manager/reference-materials/6-5/javadoc/org/apache/sling/settings/SlingSettingsService.html 

 

@Component
public class MyService {

    @Reference
    private SlingSettingsService slingSettingsService;

    private boolean isPublish() {
        return this.slingSettingsService.getRunModes().contains("publish");
    }
}

 

AND

If you want to resolve this service only for few run mode then you can use configurationPolicy property, that means this service will only be resolved if runmode specific repository Configurations are available

 

 

@Component(
service = CurrenciesMongoWriter.class,
immediate = true,
configurationPolicy = ConfigurationPolicy.REQUIRE)

 

Arun Patidar

5 replies

SantoshSai
New Participant
Jun 3, 2022 3:25 PM UTC

Hi @stefanjank 

I have published blog on specific topic - Run Modes along with practical demo video, please visit this blog: https://www.techinnovia.com/run-modes/ 

Hope it helps!

Regards,
Santosh

Translate
Santosh Sai
DEBAL_DAS
New Participant
Jun 3, 2022 10:09 AM UTC

https://sling.apache.org/apidocs/sling9/org/apache/sling/settings/SlingSettingsService.html , SlingSettingsService API has getRunModes() methods, it will help you to deal with run mode programatically.

Translate
arunpatidar
arunpatidarAccepted solution
New Participant
Jun 3, 2022 7:19 AM UTC

If you have run mode setup in AEM, then you can check run mode using

SLING API - https://developer.adobe.com/experience-manager/reference-materials/6-5/javadoc/org/apache/sling/settings/SlingSettingsService.html 

 

@Component
public class MyService {

    @Reference
    private SlingSettingsService slingSettingsService;

    private boolean isPublish() {
        return this.slingSettingsService.getRunModes().contains("publish");
    }
}

 

AND

If you want to resolve this service only for few run mode then you can use configurationPolicy property, that means this service will only be resolved if runmode specific repository Configurations are available

 

 

@Component(
service = CurrenciesMongoWriter.class,
immediate = true,
configurationPolicy = ConfigurationPolicy.REQUIRE)

 

Translate
Arun Patidar
Employee
Jun 3, 2022 7:05 AM UTC

Can you tell me what is your case and what you are trying to achieve ?

Translate
Level 2
Jun 3, 2022 10:21 AM UTC

I have this service:

 

@Component(service = CurrenciesMongoWriter.class)
public class CurrenciesMongoWriterImpl implements CurrenciesMongoWriter {

How to make it to run in dev mode for example throught configuration

Translate