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/08/21 11:54:41 UTC
[camel-quarkus] branch master updated: Modularize recorder and
processors
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 ba39065 Modularize recorder and processors
ba39065 is described below
commit ba3906558d0d0a1e8dee9299862bce8106162dfe
Author: lburgazzoli <lb...@gmail.com>
AuthorDate: Wed Aug 21 09:12:06 2019 +0200
Modularize recorder and processors
---
...CamelInitProcessor.java => BuildProcessor.java} | 66 +++++++++----------
.../quarkus/core/deployment/CamelSupport.java | 10 ++-
.../camel/quarkus/core/deployment/Feature.java} | 16 ++---
.../core/deployment/HotDeploymentProcessor.java} | 22 +++++--
...CamelProcessor.java => SubstrateProcessor.java} | 76 +---------------------
.../quarkus/core/deployment/XmlProcessor.java | 48 ++++++++++++++
.../camel/quarkus/core/runtime/CamelConfig.java | 1 -
.../camel/quarkus/core/runtime/CamelRecorder.java | 75 +++++++++++----------
.../{graal => }/InitAtBuildTimeSelector.java | 2 +-
.../core/runtime/{graal => }/JaxbDisabled.java | 2 +-
..._org_apache_camel_reifier_ProcessorReifier.java | 1 +
...camel_reifier_dataformat_DataFormatReifier.java | 1 +
...l_reifier_loadbalancer_LoadBalancerReifier.java | 1 +
...mel_reifier_transformer_TransformerReifier.java | 1 +
...e_camel_reifier_validator_ValidatorReifier.java | 1 +
15 files changed, 155 insertions(+), 168 deletions(-)
diff --git a/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelInitProcessor.java b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/BuildProcessor.java
similarity index 82%
rename from extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelInitProcessor.java
rename to extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/BuildProcessor.java
index ab6aaf3..4fbf9cb 100644
--- a/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelInitProcessor.java
+++ b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/BuildProcessor.java
@@ -27,7 +27,6 @@ import java.util.Map;
import java.util.Objects;
import java.util.Properties;
import java.util.Set;
-import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.inject.Inject;
@@ -42,7 +41,6 @@ import io.quarkus.deployment.annotations.Record;
import io.quarkus.deployment.builditem.ApplicationArchivesBuildItem;
import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
import io.quarkus.deployment.builditem.ShutdownContextBuildItem;
-import io.quarkus.deployment.recording.RecorderContext;
import io.quarkus.runtime.RuntimeValue;
import org.apache.camel.RoutesBuilder;
import org.apache.camel.builder.AdviceWithRouteBuilder;
@@ -60,8 +58,8 @@ import org.jboss.jandex.DotName;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-class CamelInitProcessor {
- private static final Logger LOGGER = LoggerFactory.getLogger(CamelInitProcessor.class);
+class BuildProcessor {
+ private static final Logger LOGGER = LoggerFactory.getLogger(BuildProcessor.class);
@Inject
ApplicationArchivesBuildItem applicationArchivesBuildItem;
@@ -71,9 +69,8 @@ class CamelInitProcessor {
BuildTime buildTimeConfig;
@Record(ExecutionTime.STATIC_INIT)
- @BuildStep(applicationArchiveMarkers = { CamelSupport.CAMEL_SERVICE_BASE_PATH, CamelSupport.CAMEL_ROOT_PACKAGE_DIRECTORY })
- CamelRuntimeBuildItem createInitTask(
- RecorderContext recorderContext,
+ @BuildStep
+ CamelRuntimeBuildItem create(
CamelRecorder recorder,
List<CamelRegistryBuildItem> registryItems,
BuildProducer<RuntimeBeanBuildItem> runtimeBeans) {
@@ -89,14 +86,12 @@ class CamelInitProcessor {
}
}
+
RuntimeRegistry registry = new RuntimeRegistry();
- final List<RuntimeValue<?>> builders;
+ RuntimeValue<CamelRuntime> camelRuntime = recorder.create(registry, properties);
+
if (buildTimeConfig.deferInitPhase) {
- builders = getBuildTimeRouteBuilderClasses()
- .map(recorderContext::newInstance)
- .collect(Collectors.toList());
- } else {
- builders = new ArrayList<>();
+ getBuildTimeRouteBuilderClasses().forEach(b -> recorder.addBuilder(camelRuntime, b));
}
services().filter(
@@ -107,30 +102,33 @@ class CamelInitProcessor {
si -> {
LOGGER.debug("Binding camel service {} with type {}", si.name, si.type);
- registry.bind(
+ recorder.bind(
+ camelRuntime,
si.name,
- si.type,
- recorderContext.newInstance(si.type.getName())
+ si.type
);
}
);
- RuntimeValue<CamelRuntime> camelRuntime = recorder.create(registry, properties, builders, buildTimeConfig);
-
- runtimeBeans.produce(RuntimeBeanBuildItem.builder(CamelRuntime.class).setRuntimeValue(camelRuntime).build());
-
for (CamelRegistryBuildItem item: registryItems) {
LOGGER.debug("Binding item with name: {}, type {}", item.getName(), item.getType());
- recorder.bind(camelRuntime, item.getName(), item.getType(), item.getValue());
+
+ recorder.bind(
+ camelRuntime,
+ item.getName(),
+ item.getType(),
+ item.getValue()
+ );
}
+ runtimeBeans.produce(RuntimeBeanBuildItem.builder(CamelRuntime.class).setRuntimeValue(camelRuntime).build());
+
return new CamelRuntimeBuildItem(camelRuntime);
}
@Record(ExecutionTime.STATIC_INIT)
- @BuildStep(applicationArchiveMarkers = { CamelSupport.CAMEL_SERVICE_BASE_PATH, CamelSupport.CAMEL_ROOT_PACKAGE_DIRECTORY })
- AdditionalBeanBuildItem createCamelProducers(
- RecorderContext recorderContext,
+ @BuildStep
+ AdditionalBeanBuildItem createProducers(
CamelRuntimeBuildItem runtime,
CamelRecorder recorder,
BuildProducer<BeanContainerListenerBuildItem> listeners) {
@@ -141,24 +139,22 @@ class CamelInitProcessor {
}
@Record(ExecutionTime.STATIC_INIT)
- @BuildStep(applicationArchiveMarkers = { CamelSupport.CAMEL_SERVICE_BASE_PATH, CamelSupport.CAMEL_ROOT_PACKAGE_DIRECTORY })
- void initTask(
+ @BuildStep
+ void init(
BeanContainerBuildItem beanContainerBuildItem,
CamelRuntimeBuildItem runtime,
- CamelRecorder recorder) throws Exception {
+ CamelRecorder recorder) {
- final List<String> builders;
if (!buildTimeConfig.deferInitPhase) {
- builders = getBuildTimeRouteBuilderClasses().collect(Collectors.toList());
- } else {
- builders = new ArrayList<>();
+ getBuildTimeRouteBuilderClasses().forEach(b -> recorder.addBuilder(runtime.getRuntime(), b));
}
- recorder.init(beanContainerBuildItem.getValue(), runtime.getRuntime(), builders, buildTimeConfig);
+
+ recorder.init(beanContainerBuildItem.getValue(), runtime.getRuntime(), buildTimeConfig);
}
@Record(ExecutionTime.RUNTIME_INIT)
- @BuildStep(applicationArchiveMarkers = { CamelSupport.CAMEL_SERVICE_BASE_PATH, CamelSupport.CAMEL_ROOT_PACKAGE_DIRECTORY })
- void createRuntimeInitTask(
+ @BuildStep
+ void start(
CamelRecorder recorder,
CamelRuntimeBuildItem runtime,
ShutdownContextBuildItem shutdown,
@@ -230,6 +226,4 @@ class CamelInitProcessor {
'}';
}
}
-
-
}
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 7846977..0f19d9e 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
@@ -27,9 +27,7 @@ import io.quarkus.deployment.builditem.ApplicationArchivesBuildItem;
import org.jboss.jandex.ClassInfo;
public final class CamelSupport {
-
public static final String CAMEL_SERVICE_BASE_PATH = "META-INF/services/org/apache/camel";
-
public static final String CAMEL_ROOT_PACKAGE_DIRECTORY = "org/apache/camel";
private CamelSupport() {
@@ -53,9 +51,9 @@ public final class CamelSupport {
public static Stream<Path> resources(ApplicationArchivesBuildItem archives, String path) {
return archives.getAllApplicationArchives().stream()
- .map(arch -> arch.getArchiveRoot().resolve(path))
- .filter(Files::isDirectory)
- .flatMap(CamelSupport::safeWalk)
- .filter(Files::isRegularFile);
+ .map(arch -> arch.getArchiveRoot().resolve(path))
+ .filter(Files::isDirectory)
+ .flatMap(CamelSupport::safeWalk)
+ .filter(Files::isRegularFile);
}
}
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/JaxbDisabled.java b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/Feature.java
similarity index 67%
copy from extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/JaxbDisabled.java
copy to extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/Feature.java
index d870441..9f0bf2f 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/JaxbDisabled.java
+++ b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/Feature.java
@@ -14,16 +14,16 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.quarkus.core.runtime.graal;
+package org.apache.camel.quarkus.core.deployment;
-import java.util.function.BooleanSupplier;
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
-import org.eclipse.microprofile.config.ConfigProvider;
+class Feature {
+ private static final String FEATURE = "camel-core";
-public final class JaxbDisabled implements BooleanSupplier {
- @Override
- public boolean getAsBoolean() {
- return ConfigProvider.getConfig().getOptionalValue("quarkus.camel.disable-jaxb", Boolean.class).orElse(Boolean.FALSE);
+ @BuildStep
+ FeatureBuildItem feature() {
+ return new FeatureBuildItem(FEATURE);
}
}
-
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/InitAtBuildTimeSelector.java b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/HotDeploymentProcessor.java
similarity index 53%
copy from extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/InitAtBuildTimeSelector.java
copy to extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/HotDeploymentProcessor.java
index b0b4eae..5dfd176 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/InitAtBuildTimeSelector.java
+++ b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/HotDeploymentProcessor.java
@@ -14,15 +14,23 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.quarkus.core.runtime.graal;
+package org.apache.camel.quarkus.core.deployment;
-import java.util.function.BooleanSupplier;
+import java.util.List;
+import java.util.stream.Collectors;
-import org.eclipse.microprofile.config.ConfigProvider;
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.HotDeploymentWatchedFileBuildItem;
+import org.apache.camel.quarkus.core.runtime.CamelConfig.BuildTime;
-public final class InitAtBuildTimeSelector implements BooleanSupplier {
- @Override
- public boolean getAsBoolean() {
- return !ConfigProvider.getConfig().getOptionalValue("quarkus.camel.defer-init-phase", Boolean.class).orElse(Boolean.TRUE);
+class HotDeploymentProcessor {
+ @BuildStep
+ List<HotDeploymentWatchedFileBuildItem> configFile(BuildTime buildTimeConfig) {
+ return buildTimeConfig.routesUris.stream()
+ .map(String::trim)
+ .filter(s -> s.startsWith("file:"))
+ .map(s -> s.substring("file:".length()))
+ .map(HotDeploymentWatchedFileBuildItem::new)
+ .collect(Collectors.toList());
}
}
diff --git a/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelProcessor.java b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/SubstrateProcessor.java
similarity index 72%
rename from extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelProcessor.java
rename to extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/SubstrateProcessor.java
index 9bb6468..80a4f77 100644
--- a/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelProcessor.java
+++ b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/SubstrateProcessor.java
@@ -17,7 +17,6 @@
package org.apache.camel.quarkus.core.deployment;
import java.io.InputStream;
-import java.lang.annotation.Annotation;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Arrays;
@@ -32,26 +31,19 @@ import io.quarkus.deployment.annotations.BuildProducer;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.ApplicationArchivesBuildItem;
import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
-import io.quarkus.deployment.builditem.FeatureBuildItem;
-import io.quarkus.deployment.builditem.HotDeploymentWatchedFileBuildItem;
import io.quarkus.deployment.builditem.substrate.ReflectiveClassBuildItem;
import io.quarkus.deployment.builditem.substrate.ReflectiveMethodBuildItem;
import io.quarkus.deployment.builditem.substrate.SubstrateConfigBuildItem;
import io.quarkus.deployment.builditem.substrate.SubstrateResourceBuildItem;
import io.quarkus.deployment.builditem.substrate.SubstrateResourceBundleBuildItem;
-import io.quarkus.jaxb.deployment.JaxbEnabledBuildItem;
-import io.quarkus.jaxb.deployment.JaxbFileRootBuildItem;
-
import org.apache.camel.Component;
import org.apache.camel.Consumer;
import org.apache.camel.Converter;
import org.apache.camel.Endpoint;
import org.apache.camel.Producer;
import org.apache.camel.TypeConverter;
-import org.apache.camel.quarkus.core.runtime.CamelConfig.BuildTime;
import org.apache.camel.spi.ExchangeFormatter;
import org.apache.camel.spi.ScheduledPollConsumerScheduler;
-import org.jboss.jandex.AnnotationTarget;
import org.jboss.jandex.AnnotationTarget.Kind;
import org.jboss.jandex.AnnotationValue;
import org.jboss.jandex.ClassInfo;
@@ -61,8 +53,7 @@ import org.jboss.jandex.MethodInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-class CamelProcessor {
-
+class SubstrateProcessor {
private static final List<Class<?>> CAMEL_REFLECTIVE_CLASSES = Arrays.asList(
Endpoint.class,
Consumer.class,
@@ -72,12 +63,6 @@ class CamelProcessor {
ScheduledPollConsumerScheduler.class,
Component.class);
- private static final List<Class<? extends Annotation>> CAMEL_REFLECTIVE_ANNOTATIONS = Arrays.asList();
-
- private static final String FEATURE = "camel-core";
-
- private static final Class<? extends Annotation> CAMEL_CONVERTER_ANNOTATION = Converter.class;
-
@Inject
BuildProducer<ReflectiveClassBuildItem> reflectiveClass;
@Inject
@@ -90,38 +75,6 @@ class CamelProcessor {
ApplicationArchivesBuildItem applicationArchivesBuildItem;
@Inject
CombinedIndexBuildItem combinedIndexBuildItem;
- @Inject
- BuildTime buildTimeConfig;
-
- @BuildStep
- JaxbFileRootBuildItem fileRoot() {
- return new JaxbFileRootBuildItem(CamelSupport.CAMEL_ROOT_PACKAGE_DIRECTORY);
- }
-
- @BuildStep
- JaxbEnabledBuildItem handleJaxbSupport() {
- return buildTimeConfig.disableJaxb ? null : new JaxbEnabledBuildItem();
- }
-
- @BuildStep
- List<ReflectiveClassBuildItem> handleXmlSupport() {
- if (buildTimeConfig.disableXml) {
- return null;
- } else {
- return Arrays.asList(
- new ReflectiveClassBuildItem(false, false,
- "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl"),
- new ReflectiveClassBuildItem(false, false,
- "com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl"),
- new ReflectiveClassBuildItem(false, false,
- "com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl"));
- }
- }
-
- @BuildStep
- FeatureBuildItem feature() {
- return new FeatureBuildItem(FEATURE);
- }
@BuildStep
SubstrateConfigBuildItem substrate() {
@@ -132,16 +85,6 @@ class CamelProcessor {
.build();
}
- @BuildStep
- List<HotDeploymentWatchedFileBuildItem> configFile() {
- return buildTimeConfig.routesUris.stream()
- .map(String::trim)
- .filter(s -> s.startsWith("file:"))
- .map(s -> s.substring("file:".length()))
- .map(HotDeploymentWatchedFileBuildItem::new)
- .collect(Collectors.toList());
- }
-
@BuildStep(applicationArchiveMarkers = { CamelSupport.CAMEL_SERVICE_BASE_PATH, CamelSupport.CAMEL_ROOT_PACKAGE_DIRECTORY })
void process() {
IndexView view = combinedIndexBuildItem.getIndex();
@@ -154,21 +97,7 @@ class CamelProcessor {
.filter(CamelSupport::isPublic)
.forEach(v -> addReflectiveClass(true, v.name().toString()));
- CAMEL_REFLECTIVE_ANNOTATIONS.stream()
- .map(Class::getName)
- .map(DotName::createSimple)
- .map(view::getAnnotations)
- .flatMap(Collection::stream)
- .forEach(v -> {
- if (v.target().kind() == AnnotationTarget.Kind.CLASS) {
- addReflectiveClass(true, v.target().asClass().name().toString());
- }
- if (v.target().kind() == AnnotationTarget.Kind.METHOD) {
- addReflectiveMethod(v.target().asMethod());
- }
- });
-
- Logger log = LoggerFactory.getLogger(CamelProcessor.class);
+ Logger log = LoggerFactory.getLogger(SubstrateProcessor.class);
DotName converter = DotName.createSimple(Converter.class.getName());
List<ClassInfo> converterClasses = view.getAnnotations(converter)
.stream()
@@ -191,6 +120,7 @@ class CamelProcessor {
})
.map(ai -> ai.target().asClass())
.collect(Collectors.toList());
+
log.debug("Converter classes: " + converterClasses);
converterClasses.forEach(ci -> addReflectiveClass(false, ci.name().toString()));
diff --git a/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/XmlProcessor.java b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/XmlProcessor.java
new file mode 100644
index 0000000..824b0de
--- /dev/null
+++ b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/XmlProcessor.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.core.deployment;
+
+import io.quarkus.deployment.annotations.BuildProducer;
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.substrate.ReflectiveClassBuildItem;
+import io.quarkus.jaxb.deployment.JaxbEnabledBuildItem;
+import io.quarkus.jaxb.deployment.JaxbFileRootBuildItem;
+import org.apache.camel.quarkus.core.runtime.JaxbDisabled;
+
+class XmlProcessor {
+ @BuildStep
+ JaxbFileRootBuildItem fileRoot() {
+ return new JaxbFileRootBuildItem(CamelSupport.CAMEL_ROOT_PACKAGE_DIRECTORY);
+ }
+
+ @BuildStep(onlyIfNot = JaxbDisabled.class)
+ JaxbEnabledBuildItem handleJaxbSupport() {
+ return new JaxbEnabledBuildItem();
+ }
+
+ @BuildStep(onlyIfNot = JaxbDisabled.class)
+ void registerReflectiveClasses(BuildProducer<ReflectiveClassBuildItem> reflectiveClass) {
+ reflectiveClass.produce(
+ new ReflectiveClassBuildItem(
+ false,
+ false,
+ "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl",
+ "com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl",
+ "com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl")
+ );
+ }
+}
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/CamelConfig.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/CamelConfig.java
index a4c694a..d925a33 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/CamelConfig.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/CamelConfig.java
@@ -21,7 +21,6 @@ import java.util.List;
import io.quarkus.runtime.annotations.ConfigItem;
import io.quarkus.runtime.annotations.ConfigPhase;
import io.quarkus.runtime.annotations.ConfigRoot;
-import org.apache.camel.quarkus.core.runtime.graal.JaxbDisabled;
import org.apache.camel.quarkus.core.runtime.graal.XmlDisabled;
public class CamelConfig {
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/CamelRecorder.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/CamelRecorder.java
index 43a2217..2f27aef 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/CamelRecorder.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/CamelRecorder.java
@@ -16,7 +16,6 @@
*/
package org.apache.camel.quarkus.core.runtime;
-import java.util.List;
import java.util.Properties;
import io.quarkus.arc.runtime.BeanContainer;
@@ -33,49 +32,22 @@ public class CamelRecorder {
public RuntimeValue<CamelRuntime> create(
Registry registry,
- Properties properties,
- List<RuntimeValue<?>> builders,
- CamelConfig.BuildTime buildTimeConfig) {
-
- FastCamelRuntime runtime = new FastCamelRuntime();
+ Properties properties) {
- runtime.setRegistry(registry);
- runtime.setProperties(properties);
- builders.stream()
- .map(RuntimeValue::getValue)
- .map(RoutesBuilder.class::cast)
- .forEach(runtime.getBuilders()::add);
+ FastCamelRuntime fcr = new FastCamelRuntime();
+ fcr.setRegistry(registry);
+ fcr.setProperties(properties);
- return new RuntimeValue<>(runtime);
- }
-
- public void bind(
- RuntimeValue<CamelRuntime> runtime,
- String name,
- Class<?> type,
- Object instance) {
-
- runtime.getValue().getRegistry().bind(name, type, instance);
+ return new RuntimeValue<>(fcr);
}
public void init(
BeanContainer beanContainer,
RuntimeValue<CamelRuntime> runtime,
- List<String> builders,
- CamelConfig.BuildTime buildTimeConfig) throws Exception {
+ CamelConfig.BuildTime buildTimeConfig) {
FastCamelRuntime fcr = (FastCamelRuntime) runtime.getValue();
fcr.setBeanContainer(beanContainer);
-
- builders.stream()
- .forEach(name -> {
- try {
- fcr.getBuilders().add((RoutesBuilder) Class.forName(name).newInstance());
- } catch (Throwable t) {
- throw new RuntimeException(t);
- }
- });
-
fcr.init(buildTimeConfig);
}
@@ -99,8 +71,41 @@ public class CamelRecorder {
});
}
+ public void addBuilder(
+ RuntimeValue<CamelRuntime> runtime,
+ String className) {
+
+ FastCamelRuntime fcr = (FastCamelRuntime) runtime.getValue();
+
+ try {
+ fcr.getBuilders().add((RoutesBuilder) Class.forName(className).newInstance());
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ public void bind(
+ RuntimeValue<CamelRuntime> runtime,
+ String name,
+ Class<?> type,
+ Object instance) {
+
+ runtime.getValue().getRegistry().bind(name, type, instance);
+ }
+
+ public void bind(
+ RuntimeValue<CamelRuntime> runtime,
+ String name,
+ Class<?> type) {
+
+ try {
+ runtime.getValue().getRegistry().bind(name, type, type.newInstance());
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
public BeanContainerListener initRuntimeInjection(RuntimeValue<CamelRuntime> runtime) {
return container -> container.instance(CamelProducers.class).setCamelRuntime(runtime.getValue());
}
-
}
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/InitAtBuildTimeSelector.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/InitAtBuildTimeSelector.java
similarity index 95%
rename from extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/InitAtBuildTimeSelector.java
rename to extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/InitAtBuildTimeSelector.java
index b0b4eae..cc64578 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/InitAtBuildTimeSelector.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/InitAtBuildTimeSelector.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.quarkus.core.runtime.graal;
+package org.apache.camel.quarkus.core.runtime;
import java.util.function.BooleanSupplier;
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/JaxbDisabled.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/JaxbDisabled.java
similarity index 95%
rename from extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/JaxbDisabled.java
rename to extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/JaxbDisabled.java
index d870441..f0d6ea3 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/JaxbDisabled.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/JaxbDisabled.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.quarkus.core.runtime.graal;
+package org.apache.camel.quarkus.core.runtime;
import java.util.function.BooleanSupplier;
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_ProcessorReifier.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_ProcessorReifier.java
index 7bd7409..519c4aa 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_ProcessorReifier.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_ProcessorReifier.java
@@ -23,6 +23,7 @@ import com.oracle.svm.core.annotate.Alias;
import com.oracle.svm.core.annotate.RecomputeFieldValue;
import com.oracle.svm.core.annotate.TargetClass;
import org.apache.camel.model.ProcessorDefinition;
+import org.apache.camel.quarkus.core.runtime.InitAtBuildTimeSelector;
import org.apache.camel.reifier.ProcessorReifier;
@TargetClass(className = "org.apache.camel.reifier.ProcessorReifier", onlyWith = InitAtBuildTimeSelector.class)
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_dataformat_DataFormatReifier.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_dataformat_DataFormatReifier.java
index c9e49f4..72d5fdd 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_dataformat_DataFormatReifier.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_dataformat_DataFormatReifier.java
@@ -23,6 +23,7 @@ import com.oracle.svm.core.annotate.Alias;
import com.oracle.svm.core.annotate.RecomputeFieldValue;
import com.oracle.svm.core.annotate.TargetClass;
import org.apache.camel.model.DataFormatDefinition;
+import org.apache.camel.quarkus.core.runtime.InitAtBuildTimeSelector;
import org.apache.camel.reifier.dataformat.DataFormatReifier;
@TargetClass(className = "org.apache.camel.reifier.dataformat.DataFormatReifier", onlyWith = InitAtBuildTimeSelector.class)
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_loadbalancer_LoadBalancerReifier.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_loadbalancer_LoadBalancerReifier.java
index c7ead3a..f763393 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_loadbalancer_LoadBalancerReifier.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_loadbalancer_LoadBalancerReifier.java
@@ -23,6 +23,7 @@ import com.oracle.svm.core.annotate.Alias;
import com.oracle.svm.core.annotate.RecomputeFieldValue;
import com.oracle.svm.core.annotate.TargetClass;
import org.apache.camel.model.LoadBalancerDefinition;
+import org.apache.camel.quarkus.core.runtime.InitAtBuildTimeSelector;
import org.apache.camel.reifier.loadbalancer.LoadBalancerReifier;
@TargetClass(className = "org.apache.camel.reifier.loadbalancer.LoadBalancerReifier", onlyWith = InitAtBuildTimeSelector.class)
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_transformer_TransformerReifier.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_transformer_TransformerReifier.java
index 5825a5b..3e60da6 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_transformer_TransformerReifier.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_transformer_TransformerReifier.java
@@ -23,6 +23,7 @@ import com.oracle.svm.core.annotate.Alias;
import com.oracle.svm.core.annotate.RecomputeFieldValue;
import com.oracle.svm.core.annotate.TargetClass;
import org.apache.camel.model.transformer.TransformerDefinition;
+import org.apache.camel.quarkus.core.runtime.InitAtBuildTimeSelector;
import org.apache.camel.reifier.transformer.TransformerReifier;
@TargetClass(className = "org.apache.camel.reifier.transformer.TransformerReifier", onlyWith = InitAtBuildTimeSelector.class)
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_validator_ValidatorReifier.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_validator_ValidatorReifier.java
index 965d880..52e5dd5 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_validator_ValidatorReifier.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_validator_ValidatorReifier.java
@@ -23,6 +23,7 @@ import com.oracle.svm.core.annotate.Alias;
import com.oracle.svm.core.annotate.RecomputeFieldValue;
import com.oracle.svm.core.annotate.TargetClass;
import org.apache.camel.model.validator.ValidatorDefinition;
+import org.apache.camel.quarkus.core.runtime.InitAtBuildTimeSelector;
import org.apache.camel.reifier.validator.ValidatorReifier;
@TargetClass(className = "org.apache.camel.reifier.validator.ValidatorReifier", onlyWith = InitAtBuildTimeSelector.class)