private void endpointInjectBeans()

in extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/InjectionPointsProcessor.java [336:385]


    private void endpointInjectBeans(
            CamelRecorder recorder,
            BuildProducer<SyntheticBeanBuildItem> syntheticBeans,
            IndexView index,
            AnnotationInstance annot,
            FieldInfo field) {
        try {
            Type fieldType = field.type();
            Class<?> clazz = Class.forName(fieldType.toString());
            if (Endpoint.class.isAssignableFrom(clazz)) {
                syntheticBeans.produce(
                        SyntheticBeanBuildItem
                                .configure(fieldType.name())
                                .setRuntimeInit().scope(Singleton.class)
                                .supplier(
                                        recorder.createEndpoint(resolveAnnotValue(index, annot),
                                                (Class<? extends Endpoint>) clazz))
                                .addQualifier(annot)
                                .done());
            } else if (ProducerTemplate.class.isAssignableFrom(clazz)) {
                syntheticBeans.produce(
                        SyntheticBeanBuildItem
                                .configure(fieldType.name())
                                .setRuntimeInit().scope(Singleton.class)
                                .supplier(
                                        recorder.createProducerTemplate(resolveAnnotValue(index, annot)))
                                .addQualifier(annot)
                                .done());
                /*
                 * Note that ProducerTemplate injection points not having @EndpointInject are produced via
                 * CamelProducers.camelProducerTemplate()
                 */
            } else if (FluentProducerTemplate.class.isAssignableFrom(clazz)) {
                syntheticBeans.produce(
                        SyntheticBeanBuildItem
                                .configure(fieldType.name())
                                .setRuntimeInit().scope(Singleton.class)
                                .supplier(
                                        recorder.createFluentProducerTemplate(resolveAnnotValue(index, annot)))
                                .addQualifier(annot)
                                .done());
                /*
                 * Note that FluentProducerTemplate injection points not having @EndpointInject are produced via
                 * CamelProducers.camelFluentProducerTemplate()
                 */
            }
        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        }
    }