in src/main/java/org/apache/sling/event/dea/impl/DistributedEventSender.java [78:114]
public DistributedEventSender(final BundleContext bundleContext,
final String rootPath,
final String ownRootPath,
final ResourceResolverFactory rrFactory,
final EventAdmin eventAdmin) {
this.eventAdmin = eventAdmin;
this.resourceResolverFactory = rrFactory;
this.ownRootPathWithSlash = ownRootPath + "/";
this.running = true;
final Thread backgroundThread = new Thread(new Runnable() {
@Override
public void run() {
// create service registration properties
final Dictionary<String, Object> props = new Hashtable<String, Object>();
props.put(Constants.SERVICE_VENDOR, "The Apache Software Foundation");
// listen for all resource added OSGi events in the DEA area
props.put(ResourceChangeListener.CHANGES, ResourceChange.ChangeType.ADDED.name());
props.put(ResourceChangeListener.PATHS, rootPath);
final ServiceRegistration<ResourceChangeListener> reg =
bundleContext.registerService(ResourceChangeListener.class,
DistributedEventSender.this, props);
DistributedEventSender.this.serviceRegistration = reg;
try {
runInBackground();
} catch (Throwable t) { //NOSONAR
logger.error("Background thread stopped with exception: " + t.getMessage(), t);
running = false;
}
}
});
backgroundThread.start();
}