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());
}
}