in extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/RuntimeBeanRepository.java [171:208]
public <T> T findSingleByType(Class<T> type) {
ArcContainer container = Arc.container();
Optional<Annotation[]> qualifiers = resolveQualifiersForType(type);
if (container != null) {
List<InstanceHandle<T>> handles;
if (qualifiers.isPresent()) {
handles = container.listAll(type, qualifiers.get());
} else {
handles = container.listAll(type);
}
List<InstanceHandle<T>> sortedHandles = new ArrayList<>(handles.size());
sortedHandles.addAll(handles);
if (sortedHandles.size() > 1) {
sortedHandles.sort((bean1, bean2) -> {
Integer priority2 = bean2.getBean().getPriority();
Integer priority1 = bean1.getBean().getPriority();
int result = priority2.compareTo(priority1);
// If the priority is same, the default bean wins
if (result == 0) {
if (isDefaultBean(bean1.getBean())) {
result = -1;
} else if (isDefaultBean(bean2.getBean())) {
result = 1;
}
}
return result;
});
}
if (sortedHandles.size() > 0) {
return sortedHandles.get(0).get();
}
}
return null;
}