You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2019/10/05 15:27:15 UTC
[camel-quarkus] 01/05: chore: use RecorderContext to load classes
when possible to delegate class loading to quarkus engine
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 <lb...@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);
}
}