in src/main/java/org/apache/sling/distribution/trigger/impl/DistributionEventDistributeDistributionTrigger.java [107:138]
public void handleEvent(Event event) {
String originKindName = String.valueOf(event.getProperty(DistributionEventProperties.DISTRIBUTION_COMPONENT_KIND));
String originName = String.valueOf(event.getProperty(DistributionEventProperties.DISTRIBUTION_COMPONENT_NAME));
DistributionComponentKind originKind;
try {
originKind = DistributionComponentKind.valueOf(originKindName);
} catch (IllegalArgumentException ex) {
log.debug("Unknown component kind {} of event {}.", originKindName, event);
originKind = null;
}
if (requestHandler.getName().equals(originName) && requestHandler.getComponentKind() == originKind) {
log.info("skip chain distribution from event {} to {}", event, requestHandler);
return;
}
Object actionProperty = event.getProperty(DistributionEventProperties.DISTRIBUTION_TYPE);
Object pathProperty = event.getProperty(DistributionEventProperties.DISTRIBUTION_PATHS);
if (actionProperty != null && pathProperty != null) {
String[] paths = (String[]) pathProperty;
for (String p : paths) {
if (p.startsWith(path)) {
log.info("triggering chain distribution from event {}", event);
DistributionRequestType action = DistributionRequestType.valueOf(String.valueOf(actionProperty));
requestHandler.handle(null, new SimpleDistributionRequest(action, paths));
break;
}
}
}
}