You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2022/05/10 16:30:25 UTC

[camel-quarkus] 01/02: Fix #3703 to use valueWithDefault during processing @Producer and @EndpointInject

This is an automated email from the ASF dual-hosted git repository.

jamesnetherton pushed a commit to branch 2.7.x
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git

commit fdf18e40ed5934fd652616aea77cb772a02e8e66
Author: Zheng Feng <zh...@gmail.com>
AuthorDate: Tue May 10 17:24:52 2022 +0800

    Fix #3703 to use valueWithDefault during processing @Producer and @EndpointInject
---
 .../core/deployment/InjectionPointsProcessor.java  | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/InjectionPointsProcessor.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/InjectionPointsProcessor.java
index 04ed0c33a7..e8ced1788a 100644
--- a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/InjectionPointsProcessor.java
+++ b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/InjectionPointsProcessor.java
@@ -62,6 +62,7 @@ import org.jboss.jandex.AnnotationTarget.Kind;
 import org.jboss.jandex.ClassInfo;
 import org.jboss.jandex.DotName;
 import org.jboss.jandex.FieldInfo;
+import org.jboss.jandex.IndexView;
 import org.jboss.jandex.MethodInfo;
 import org.jboss.jandex.Type;
 import org.jboss.logging.Logger;
@@ -230,7 +231,7 @@ public class InjectionPointsProcessor {
             switch (target.kind()) {
             case FIELD: {
                 final FieldInfo field = target.asField();
-                endpointInjectBeans(recorder, syntheticBeans, annot, field.type().name());
+                endpointInjectBeans(recorder, syntheticBeans, index.getIndex(), annot, field.type().name());
                 break;
             }
             case METHOD: {
@@ -250,8 +251,8 @@ public class InjectionPointsProcessor {
             switch (target.kind()) {
             case FIELD: {
                 final FieldInfo field = target.asField();
-                produceBeans(recorder, capabilities, syntheticBeans, proxyDefinitions, beanCapabilityAvailable, annot,
-                        field.type().name(), field.name(), field.declaringClass().name());
+                produceBeans(recorder, capabilities, syntheticBeans, proxyDefinitions, beanCapabilityAvailable,
+                        index.getIndex(), annot, field.type().name(), field.name(), field.declaringClass().name());
                 break;
             }
             case METHOD: {
@@ -269,6 +270,7 @@ public class InjectionPointsProcessor {
             BuildProducer<SyntheticBeanBuildItem> syntheticBeans,
             BuildProducer<NativeImageProxyDefinitionBuildItem> proxyDefinitions,
             AtomicReference<Boolean> beanCapabilityAvailable,
+            IndexView index,
             AnnotationInstance annot, final DotName fieldType, String annotationTarget, DotName declaringClass) {
         try {
             Class<?> clazz = Class.forName(fieldType.toString(), false,
@@ -279,7 +281,7 @@ public class InjectionPointsProcessor {
                                 .configure(fieldType)
                                 .setRuntimeInit().scope(Singleton.class)
                                 .supplier(
-                                        recorder.createProducerTemplate(annot.value().asString()))
+                                        recorder.createProducerTemplate(annot.valueWithDefault(index).asString()))
                                 .addQualifier(annot)
                                 .done());
                 /*
@@ -292,7 +294,7 @@ public class InjectionPointsProcessor {
                                 .configure(fieldType)
                                 .setRuntimeInit().scope(Singleton.class)
                                 .supplier(
-                                        recorder.createFluentProducerTemplate(annot.value().asString()))
+                                        recorder.createFluentProducerTemplate(annot.valueWithDefault(index).asString()))
                                 .addQualifier(annot)
                                 .done());
                 /*
@@ -320,7 +322,7 @@ public class InjectionPointsProcessor {
                                 .configure(fieldType)
                                 .setRuntimeInit().scope(Singleton.class)
                                 .supplier(
-                                        recorder.produceProxy(clazz, annot.value().asString()))
+                                        recorder.produceProxy(clazz, annot.valueWithDefault(index).asString()))
                                 .addQualifier(annot)
                                 .done());
             }
@@ -330,7 +332,7 @@ public class InjectionPointsProcessor {
     }
 
     private void endpointInjectBeans(CamelRecorder recorder, BuildProducer<SyntheticBeanBuildItem> syntheticBeans,
-            AnnotationInstance annot, final DotName fieldType) {
+            IndexView index, AnnotationInstance annot, final DotName fieldType) {
         try {
             Class<?> clazz = Class.forName(fieldType.toString());
             if (Endpoint.class.isAssignableFrom(clazz)) {
@@ -339,7 +341,7 @@ public class InjectionPointsProcessor {
                                 .configure(fieldType)
                                 .setRuntimeInit().scope(Singleton.class)
                                 .supplier(
-                                        recorder.createEndpoint(annot.value().asString(),
+                                        recorder.createEndpoint(annot.valueWithDefault(index).asString(),
                                                 (Class<? extends Endpoint>) clazz))
                                 .addQualifier(annot)
                                 .done());
@@ -349,7 +351,7 @@ public class InjectionPointsProcessor {
                                 .configure(fieldType)
                                 .setRuntimeInit().scope(Singleton.class)
                                 .supplier(
-                                        recorder.createProducerTemplate(annot.value().asString()))
+                                        recorder.createProducerTemplate(annot.valueWithDefault(index).asString()))
                                 .addQualifier(annot)
                                 .done());
                 /*
@@ -362,7 +364,7 @@ public class InjectionPointsProcessor {
                                 .configure(fieldType)
                                 .setRuntimeInit().scope(Singleton.class)
                                 .supplier(
-                                        recorder.createFluentProducerTemplate(annot.value().asString()))
+                                        recorder.createFluentProducerTemplate(annot.valueWithDefault(index).asString()))
                                 .addQualifier(annot)
                                 .done());
                 /*