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

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


The following commit(s) were added to refs/heads/main by this push:
     new 49118198b6 Automatically register beans with methods annotated with 
@Handler for reflection
49118198b6 is described below

commit 49118198b6b644711b2a1570b51d687354ed7cdc
Author: shravani <[email protected]>
AuthorDate: Tue Oct 31 12:56:20 2023 +0530

    Automatically register beans with methods annotated with @Handler for 
reflection
---
 .../quarkus/component/bean/deployment/BeanProcessor.java | 16 ++++++++++++++++
 .../camel/quarkus/component/bean/WithHandlerBean.java    |  2 --
 .../main/java/org/apache/camel/quarkus/main/MyBean.java  |  2 --
 3 files changed, 16 insertions(+), 4 deletions(-)

diff --git 
a/extensions/bean/deployment/src/main/java/org/apache/camel/quarkus/component/bean/deployment/BeanProcessor.java
 
b/extensions/bean/deployment/src/main/java/org/apache/camel/quarkus/component/bean/deployment/BeanProcessor.java
index 8edf2c75c8..4cafbf54dc 100644
--- 
a/extensions/bean/deployment/src/main/java/org/apache/camel/quarkus/component/bean/deployment/BeanProcessor.java
+++ 
b/extensions/bean/deployment/src/main/java/org/apache/camel/quarkus/component/bean/deployment/BeanProcessor.java
@@ -21,6 +21,7 @@ import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
+import org.apache.camel.Handler;
 import org.apache.camel.support.language.DefaultAnnotationExpressionFactory;
 import org.apache.camel.support.language.LanguageAnnotation;
 import org.jboss.jandex.AnnotationInstance;
@@ -36,6 +37,7 @@ class BeanProcessor {
     private static final String FEATURE = "camel-bean";
     private static final Logger LOGGER = 
LoggerFactory.getLogger(BeanProcessor.class);
     private static final DotName LANGUAGE_ANNOTATION = 
DotName.createSimple(LanguageAnnotation.class.getName());
+    private static final DotName HANDLER_ANNOTATION = 
DotName.createSimple(Handler.class.getName());
 
     @BuildStep
     FeatureBuildItem feature() {
@@ -68,4 +70,18 @@ class BeanProcessor {
         }
     }
 
+    @BuildStep
+    void 
registerBeanHandlersForReflection(BuildProducer<ReflectiveClassBuildItem> 
reflectiveClass,
+            CombinedIndexBuildItem combinedIndex) {
+        IndexView index = combinedIndex.getIndex();
+        index.getAnnotations(HANDLER_ANNOTATION).forEach(annotationInstance -> 
{
+            DotName className = 
annotationInstance.target().asMethod().declaringClass().name();
+            ReflectiveClassBuildItem reflectiveClassBuildItem = 
ReflectiveClassBuildItem.builder(className.toString())
+                    .methods()
+                    .build();
+
+            reflectiveClass.produce(reflectiveClassBuildItem);
+
+        });
+    }
 }
diff --git 
a/integration-test-groups/foundation/bean/src/main/java/org/apache/camel/quarkus/component/bean/WithHandlerBean.java
 
b/integration-test-groups/foundation/bean/src/main/java/org/apache/camel/quarkus/component/bean/WithHandlerBean.java
index 05e960bf35..7f78a6f753 100644
--- 
a/integration-test-groups/foundation/bean/src/main/java/org/apache/camel/quarkus/component/bean/WithHandlerBean.java
+++ 
b/integration-test-groups/foundation/bean/src/main/java/org/apache/camel/quarkus/component/bean/WithHandlerBean.java
@@ -16,7 +16,6 @@
  */
 package org.apache.camel.quarkus.component.bean;
 
-import io.quarkus.runtime.annotations.RegisterForReflection;
 import jakarta.enterprise.context.ApplicationScoped;
 import jakarta.inject.Named;
 import org.apache.camel.Exchange;
@@ -24,7 +23,6 @@ import org.apache.camel.Handler;
 
 @ApplicationScoped
 @Named("withHandlerOnProxy")
-@RegisterForReflection
 public class WithHandlerBean {
     /**
      * Just set an hello message.
diff --git 
a/integration-tests/main-xml-io-with-beans/src/main/java/org/apache/camel/quarkus/main/MyBean.java
 
b/integration-tests/main-xml-io-with-beans/src/main/java/org/apache/camel/quarkus/main/MyBean.java
index 4a92a6d086..2ba2d425cb 100644
--- 
a/integration-tests/main-xml-io-with-beans/src/main/java/org/apache/camel/quarkus/main/MyBean.java
+++ 
b/integration-tests/main-xml-io-with-beans/src/main/java/org/apache/camel/quarkus/main/MyBean.java
@@ -16,10 +16,8 @@
  */
 package org.apache.camel.quarkus.main;
 
-import io.quarkus.runtime.annotations.RegisterForReflection;
 import org.apache.camel.Handler;
 
-@RegisterForReflection
 public class MyBean {
 
     @Handler

Reply via email to