/* This OSGi service listens for events and creates a job for each one matching some conditions. */ @Component @Service @Properties({ // choose appropriate topic values @Property(name = EventConstants.EVENT_TOPIC, value = { SlingConstants.TOPIC_RESOURCE_CHANGED, SlingConstants.TOPIC_RESOURCE_ADDED, SlingConstants.TOPIC_RESOURCE_REMOVED }) }) public class SampleEventHandler implements EventHandler { @Reference private JobManager jobManager; @Override public void handleEvent(Event event) { String path = (String) event.getProperty(SlingConstants.PROPERTY_PATH); String resourceType = (String) event.getProperty(SlingConstants.PROPERTY_RESOURCE_TYPE); if (StringUtils.contains(path, "/jcr:content/configParsys/")) { Map jobProperties = new HashMap(); // fill job properties map with useful values jobProperties.put("path", path); jobProperties.put("resourceType", resourceType); jobManager.addJob(SampleJobConsumer.JOB_TOPIC, null, jobProperties); } } }