in extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/InjectionPointsProcessor.java [219:270]
void syntheticBeans(
CamelRecorder recorder,
CombinedIndexBuildItem index,
Capabilities capabilities,
BuildProducer<SyntheticBeanBuildItem> syntheticBeans,
BuildProducer<NativeImageProxyDefinitionBuildItem> proxyDefinitions) {
Set<String> injectionPointIdentifiers = new HashSet<>();
for (AnnotationInstance annotationInstance : index.getIndex().getAnnotations(ENDPOINT_INJECT_ANNOTATION)) {
final AnnotationTarget target = annotationInstance.target();
switch (target.kind()) {
case FIELD: {
// Avoid producing multiple beans for the same @EndpointInject URI
String identifier = annotationIdentifier(annotationInstance);
if (injectionPointIdentifiers.add(identifier)) {
endpointInjectBeans(recorder, syntheticBeans, index.getIndex(), annotationInstance, target.asField());
}
break;
}
case METHOD: {
final MethodInfo methodInfo = target.asMethod();
fail(methodInfo, ENDPOINT_INJECT_ANNOTATION);
break;
}
default:
throw new IllegalStateException("Expected field, got " + target.kind());
}
}
for (AnnotationInstance annotation : index.getIndex().getAnnotations(PRODUCE_ANNOTATION)) {
final AnnotationTarget target = annotation.target();
String identifier = annotationIdentifier(annotation);
switch (target.kind()) {
case FIELD: {
if (injectionPointIdentifiers.add(identifier)) {
produceBeans(recorder, capabilities, syntheticBeans, proxyDefinitions, index.getIndex(), annotation,
target.asField());
}
break;
}
case METHOD: {
final MethodInfo methodInfo = target.asMethod();
fail(methodInfo, PRODUCE_ANNOTATION);
break;
}
default:
throw new IllegalStateException("Expected field, got " + target.kind());
}
}
}