大量啟用完成事件處理常式

Experience Manager Guides會公開用於在大量啟動程式完成後執行任何作業的com/adobe/fmdita/replication/complete事件。 當大量啟用程式完成時,就會觸發此事件。 例如,如果您執行大量啟動地圖的AEM網站預設集,此事件會在啟動程式結束後呼叫。

您需要建立AEM事件處理常式,以讀取此事件中可用的屬性,並進行進一步處理。

事件詳細資訊說明如下:

事件名稱

com/adobe/fmdita/replication/complete

引數

名稱
類型
說明
path
字串
觸發此事件的檔案路徑。
例如,/content/output/sites/ditamap1-ditamap
這是序列化為JSON陣列的路徑清單。
messageType
字串
訊息的型別。
可能的選項: REPLICATION
action
字串
這是執行的動作。
可能的選項: BulkReplicate
user
字串
啟動作業的使用者。
result
字串
大量啟動的結果。 它是序列化JSON物件:
{"success":boolean,"code":integer,"message":"" }
agentId
字串
復寫中使用的agentId。 例如,"publish"
importMode
字串
Activation中使用的匯入模式。 可能的選項包括:
REPLACE, MERGE, UPDATE

範例事件接聽程式

@Component(service = EventHandler.class,
        immediate = true,
        property = {
                EventConstants.EVENT_TOPIC + "=" + "com/adobe/fmdita/replication/complete",
        })

public class SampleEventHandler implements EventHandler {

    protected final Logger log = LoggerFactory.getLogger(this.getClass());

    @Override
    public void handleEvent(final Event event) {
        Map<String, String> properties = new HashMap<>();
        properties.put("paths", (String) event.getProperty("paths"));
        properties.put("messageType", (String) event.getProperty("messageType"));
        properties.put("action", (String) event.getProperty("action"));
        properties.put("result", (String) event.getProperty("result"));
        properties.put("user", (String) event.getProperty("user"));
        properties.put("agentId", (String) event.getProperty("agentId"));
        properties.put("importMode", (String) event.getProperty("importMode"));

        String eventTopic = event.getTopic();
        log.debug("eventTopic {}", eventTopic);
        for(Map.Entry entry:properties.entrySet()) {
            log.debug(entry.getKey() + " : " + entry.getValue());
        }

    }
}
recommendation-more-help
11125c99-e1a1-4369-b5d7-fb3098b9b178