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 092d855d942dcf99ab8edf224cc14181da23b84b Author: lburgazzoli <lburgazz...@gmail.com> AuthorDate: Sat Oct 5 15:32:35 2019 +0200 chore: simplify bean registration and document contraints --- .../camel/quarkus/core/deployment/BuildProcessor.java | 17 ++++++----------- .../quarkus/core/deployment/CamelBeanBuildItem.java | 5 ++--- .../camel/quarkus/core/deployment/CamelSupport.java | 9 +++------ 3 files changed, 11 insertions(+), 20 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 afda882..1f268a6 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 @@ -17,7 +17,6 @@ package org.apache.camel.quarkus.core.deployment; import java.util.List; -import java.util.Objects; import io.quarkus.arc.deployment.AdditionalBeanBuildItem; import io.quarkus.arc.deployment.BeanContainerBuildItem; @@ -61,29 +60,25 @@ class BuildProcessor { @BuildStep CamelRegistryBuildItem registry( CamelRecorder recorder, + RecorderContext recorderContext, ApplicationArchivesBuildItem applicationArchives, List<CamelBeanBuildItem> registryItems) { RuntimeValue<Registry> registry = recorder.createRegistry(); - CamelSupport.services(applicationArchives).filter( - si -> registryItems.stream().noneMatch( - c -> Objects.equals(si.name, c.getName()) && c.getType().isAssignableFrom(si.type) - ) - ).forEach( - si -> { - LOGGER.debug("Binding camel service {} with type {}", si.name, si.type); + CamelSupport.services(applicationArchives).forEach(si -> { + LOGGER.debug("Binding bean with name: {}, type {}", si.name, si.type); recorder.bind( registry, si.name, - si.type + recorderContext.classProxy(si.type) ); } ); for (CamelBeanBuildItem item : registryItems) { - LOGGER.debug("Binding item with name: {}, type {}", item.getName(), item.getType()); + LOGGER.debug("Binding bean with name: {}, type {}", item.getName(), item.getType()); recorder.bind( registry, @@ -126,11 +121,11 @@ class BuildProcessor { CamelMainBuildItem main( CombinedIndexBuildItem combinedIndex, CamelMainRecorder recorder, + RecorderContext recorderContext, CamelContextBuildItem context, List<CamelMainListenerBuildItem> listeners, List<CamelRoutesBuilderBuildItem> routesBuilders, BeanContainerBuildItem beanContainer, - RecorderContext recorderContext, CamelConfig.BuildTime buildTimeConfig) { RuntimeValue<CamelMain> main = recorder.createCamelMain(context.getCamelContext(), beanContainer.getValue()); diff --git a/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelBeanBuildItem.java b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelBeanBuildItem.java index 9e38756..84a578a 100644 --- a/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelBeanBuildItem.java +++ b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelBeanBuildItem.java @@ -22,9 +22,8 @@ import io.quarkus.builder.item.MultiBuildItem; /** * A {@link MultiBuildItem} holding beans to add to {@link org.apache.camel.spi.Registry} during - * static initialization phase. - * Can be produced only by methods that do not depend on {@link org.apache.camel.quarkus.core.runtime.CamelRuntime} - * because otherwise there is a circular dependency. + * static initialization phase. Note that the field type should refer to the most specialized + * class to avoid the issue described in https://issues.apache.org/jira/browse/CAMEL-13948. */ public final class CamelBeanBuildItem extends MultiBuildItem { private final String name; diff --git a/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelSupport.java b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelSupport.java index e2f6807..418c442 100644 --- a/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelSupport.java +++ b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelSupport.java @@ -102,10 +102,7 @@ public final class CamelSupport { for (Map.Entry<Object, Object> entry : props.entrySet()) { String k = entry.getKey().toString(); if (k.equals("class")) { - String clazz = entry.getValue().toString(); - Class<?> cl = Class.forName(clazz); - - answer.add(new ServiceInfo(name, cl)); + answer.add(new ServiceInfo(name, entry.getValue().toString())); } } } catch (Exception e) { @@ -121,9 +118,9 @@ public final class CamelSupport { */ public static class ServiceInfo { public final String name; - public final Class<?> type; + public final String type; - public ServiceInfo(String name, Class<?> type) { + public ServiceInfo(String name, String type) { this.name = name; this.type = type; }