public void handleEvent()

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;
                    }
                }
            }
        }