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
commit baedf0cb53f6fb09058e0e9c6b76e58dda0999ec Author: lburgazzoli <lburgazz...@gmail.com> AuthorDate: Sat Oct 5 13:29:35 2019 +0200 chore: use RecorderContext to load classes when possible to delegate class loading to quarkus engine --- .../org/apache/camel/quarkus/core/deployment/BuildProcessor.java | 7 ++++++- .../main/java/org/apache/camel/quarkus/core/CamelMainRecorder.java | 6 +++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/BuildProcessor.java b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/BuildProcessor.java index 1145f63..afda882 100644 --- a/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/BuildProcessor.java +++ b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/BuildProcessor.java @@ -29,8 +29,10 @@ import io.quarkus.deployment.builditem.ApplicationArchivesBuildItem; import io.quarkus.deployment.builditem.CombinedIndexBuildItem; import io.quarkus.deployment.builditem.ServiceStartBuildItem; import io.quarkus.deployment.builditem.ShutdownContextBuildItem; +import io.quarkus.deployment.recording.RecorderContext; import io.quarkus.runtime.RuntimeValue; import org.apache.camel.CamelContext; +import org.apache.camel.RoutesBuilder; import org.apache.camel.quarkus.core.CamelConfig; import org.apache.camel.quarkus.core.CamelMain; import org.apache.camel.quarkus.core.CamelMainProducers; @@ -49,6 +51,7 @@ class BuildProcessor { * Build steps related to camel core. */ public static class Core { + @BuildStep void beans(BuildProducer<AdditionalBeanBuildItem> beanProducer) { beanProducer.produce(AdditionalBeanBuildItem.unremovableOf(CamelProducers.class)); @@ -117,6 +120,7 @@ class BuildProcessor { beanProducer.produce(AdditionalBeanBuildItem.unremovableOf(CamelMainProducers.class)); } + @SuppressWarnings("unchecked") @Record(ExecutionTime.STATIC_INIT) @BuildStep(onlyIfNot = Flags.MainDisabled.class) CamelMainBuildItem main( @@ -126,6 +130,7 @@ class BuildProcessor { List<CamelMainListenerBuildItem> listeners, List<CamelRoutesBuilderBuildItem> routesBuilders, BeanContainerBuildItem beanContainer, + RecorderContext recorderContext, CamelConfig.BuildTime buildTimeConfig) { RuntimeValue<CamelMain> main = recorder.createCamelMain(context.getCamelContext(), beanContainer.getValue()); @@ -134,7 +139,7 @@ class BuildProcessor { } CamelSupport.getRouteBuilderClasses(combinedIndex.getIndex()).forEach(name -> { - recorder.addRouteBuilder(main, name); + recorder.addRouteBuilder(main, (Class<RoutesBuilder>)recorderContext.classProxy(name)); }); routesBuilders.forEach(routesBuilder -> { recorder.addRouteBuilder(main, routesBuilder.getInstance()); diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMainRecorder.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMainRecorder.java index f9d7236..0c861a7 100644 --- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMainRecorder.java +++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMainRecorder.java @@ -49,12 +49,12 @@ public class CamelMainRecorder { public void addRouteBuilder( RuntimeValue<CamelMain> main, - String className) { + Class<? extends RoutesBuilder> routeBuilderClass) { try { - main.getValue().addRouteBuilder(Class.forName(className)); + main.getValue().addRouteBuilder(routeBuilderClass); } catch (Exception e) { - throw new RuntimeException("Could not add route builder '" + className + "'", e); + throw new RuntimeException("Could not add route builder '" + routeBuilderClass.getName() + "'", e); } }