in extensions/quartz/runtime/src/main/java/org/apache/camel/quarkus/component/quartz/CamelQuartzRecorder.java [80:123]
public void onContextInitializing(CamelContext context) throws VetoCamelContextStartException {
QuartzComponent component = context.getComponent("quartz", QuartzComponent.class);
if (component instanceof QuarkusQuartzComponent) {
QuarkusQuartzComponent quarkusQuartzComponent = (QuarkusQuartzComponent) component;
if (quarkusQuartzComponent.isAutoWiringRequested()) {
InjectableInstance<Scheduler> schedulers = Arc.container().select(Scheduler.class);
LinkedList<Scheduler> foundSchedulers = new LinkedList<>();
for (InstanceHandle<Scheduler> handle : schedulers.handles()) {
//Scheduler may be null in several cases, which would cause an exception in traditional autowiring
//see https://github.com/quarkusio/quarkus/issues/27929 for more details
if (handle.getBean().getBeanClass().equals(QuartzSchedulerImpl.class)) {
Scheduler scheduler = Arc.container().select(QuartzScheduler.class).getHandle().get()
.getScheduler();
if (scheduler != null) {
//scheduler is added only if is not null
foundSchedulers.add(scheduler);
}
continue;
}
foundSchedulers.add(handle.get());
}
if (foundSchedulers.size() > 1) {
throw new AmbiguousResolutionException(String.format("Found %d org.quartz.Scheduler beans (%s).",
foundSchedulers.size(), foundSchedulers.stream().map(s -> {
try {
return s.getSchedulerName();
} catch (SchedulerException e) {
return "Scheduler name retrieval failed.";
}
}).collect(Collectors.joining(", "))));
} else if (!foundSchedulers.isEmpty()) {
if (LOG.isInfoEnabled()) {
LOG.info(
"Autowired property: scheduler on component: quartz as exactly one instance of type: {} found in the registry",
Scheduler.class.getName());
}
quarkusQuartzComponent.setScheduler(foundSchedulers.getFirst());
}
}
}
}