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

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


The following commit(s) were added to refs/heads/master by this push:
     new 9e25da9  component injection: produce a CamelRuntimeTaskBuildItem for 
synchronization purpose
9e25da9 is described below

commit 9e25da9e29f15c6524226ad0c3482391f2e3e8b1
Author: lburgazzoli <[email protected]>
AuthorDate: Sun Jun 21 01:36:51 2020 +0200

    component injection: produce a CamelRuntimeTaskBuildItem for 
synchronization purpose
---
 .../core/deployment/InjectionPointsProcessor.java        | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 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 79f7b20..fded90c 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
@@ -37,6 +37,7 @@ import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
 import org.apache.camel.Component;
 import org.apache.camel.quarkus.core.InjectionPointsRecorder;
+import org.apache.camel.quarkus.core.deployment.spi.CamelRuntimeTaskBuildItem;
 import org.jboss.jandex.AnnotationInstance;
 import org.jboss.jandex.AnnotationTarget;
 import org.jboss.jandex.ClassInfo;
@@ -65,11 +66,13 @@ public class InjectionPointsProcessor {
 
     @Record(ExecutionTime.RUNTIME_INIT)
     @BuildStep
-    BeanRegistrationPhaseBuildItem.BeanConfiguratorBuildItem 
injectedComponents(
+    void injectedComponents(
             CombinedIndexBuildItem index,
             InjectionPointsRecorder recorder,
             BeanRegistrationPhaseBuildItem beanRegistrationPhase,
-            BuildProducer<SyntheticBeanBuildItem> syntheticBeans) {
+            BuildProducer<SyntheticBeanBuildItem> syntheticBeans,
+            BuildProducer<CamelRuntimeTaskBuildItem> runtimeTasks,
+            
BuildProducer<BeanRegistrationPhaseBuildItem.BeanConfiguratorBuildItem> 
beanConfigurator) {
 
         final Collection<ClassInfo> components = 
index.getIndex().getAllKnownImplementors(INTERFACE_NAME_COMPONENT);
         final Set<String> created = new HashSet<>();
@@ -117,8 +120,13 @@ public class InjectionPointsProcessor {
             }
         }
 
-        // method using BeanRegistrationPhaseBuildItem should return a 
BeanConfiguratorBuildItem
+        // Ensure the task is executed before the runtime is assembled
+        runtimeTasks.produce(new 
CamelRuntimeTaskBuildItem("components-injection"));
+
+        // Methods using BeanRegistrationPhaseBuildItem should return/produce 
a BeanConfiguratorBuildItem
         // otherwise the build step may be processed at the wrong time.
-        return new BeanRegistrationPhaseBuildItem.BeanConfiguratorBuildItem();
+        //
+        // See BeanRegistrationPhaseBuildItem javadoc
+        beanConfigurator.produce(new 
BeanRegistrationPhaseBuildItem.BeanConfiguratorBuildItem());
     }
 }

Reply via email to