내 커뮤니티 업적 표시줄을 확대합니다.

Mark Solution

활동이 없어 이 대화는 잠겼습니다. 새 게시물을 작성해 주세요.

해결됨

org.apache.sling.event.EventUtil api is depricated in AEM 6.2

Avatar

Level 2

Hi Team,

    In one of our application, the code contains org.apache.sling.event.EventUtil and in order to find a local event in a clustered environment it uses EventUtil.isLocal(event) method. Until version AEM 6.0 it was working fine as expected. But in AEM 6.2, the above has been deprecated.

Could you please suggest any alternatives for the same?, Thanks.

Regards,

Saran 

1 채택된 해결책 개

Avatar

정확한 답변 작성자:
Level 2

You could filter at the event handler level. If you're using annotations, add the filter line.

@Properties({ @Property(name = "event.topics", value = "com/mycompany/app/eventname", propertyPrivate = true),
@Property(name = EventConstants.EVENT_FILTER, value="(!(" + DEAConstants.PROPERTY_APPLICATION + "=*))")})

If the event is a local event, the PROPERTY_APPLICATION is not available. If it is available, it contains the application (Sling ID) of the instance where the event originated.

원본 게시물의 솔루션 보기

3 답변 개

Avatar

정확한 답변 작성자:
Level 2

You could filter at the event handler level. If you're using annotations, add the filter line.

@Properties({ @Property(name = "event.topics", value = "com/mycompany/app/eventname", propertyPrivate = true),
@Property(name = EventConstants.EVENT_FILTER, value="(!(" + DEAConstants.PROPERTY_APPLICATION + "=*))")})

If the event is a local event, the PROPERTY_APPLICATION is not available. If it is available, it contains the application (Sling ID) of the instance where the event originated.

Avatar

Level 2

Hi Tony,

    Thanks a lot for this solution. It will satisfy our needs. Many Thanks again. smiley

Avatar

Level 2

Hi Team,

6.1 to 6.4 migration:

Could you please let me know how to get the EVENT_FILTER value or PROPERTY_APPLICATION value?

Here is my code correct me if I am wrong

@Properties({ @Property(name = EventConstants.EVENT_TOPIC, value = {ReplicationAction.EVENT_TOPIC,AlertSender.JOB_TOPIC}, propertyPrivate = true),

@Property(name = EventConstants.EVENT_FILTER, value="(!(" + DEAConstants.PROPERTY_APPLICATION + "=*))")})

@Override

    public void handleEvent(Event event) {

//String localevent = (String)event.getProperty("event.filter");-- commented

String localEvent=(String)event.getProperty(DEAConstants.PROPERTY_APPLICATION);

if(StringUtil.isBlank(localEvent)){

        //JobUtil.processJob(event, this); -- Need to replace this method also please let me know how to use jobConsumer interface here

      

        }

}