@Override
public void registerContribution(Object contribution, String xp, ComponentInstance component) {
if (QUEUES_EP.equals(xp)) {
WorkQueueDescriptor descriptor = (WorkQueueDescriptor) contribution;
if (ALL_QUEUES.equals(descriptor.getId())) {
Boolean processing = descriptor.processing;
if (processing == null) {
log.error("Ignoring work queue descriptor {} with no processing/queuing", ALL_QUEUES);
return;
}
log.info("Setting on all work queues:{}",
() -> " processing=" + processing + (queuing == null ? "" : " queuing=" + queuing));
getDescriptors(QUEUES_EP).forEach(d -> {
WorkQueueDescriptor wqd = new WorkQueueDescriptor();
wqd.id = d.getId();
wqd.processing = processing;
register(QUEUES_EP, wqd);
});
} else {
register(QUEUES_EP, descriptor);
}
} else {
super.registerContribution(contribution, xp, component);
}
}