You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gn...@apache.org on 2020/04/08 18:37:13 UTC
[camel-quarkus] branch master updated: Upgrade to camel 3.2.0
This is an automated email from the ASF dual-hosted git repository.
gnodet 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 a94fcca Upgrade to camel 3.2.0
a94fcca is described below
commit a94fcca655355e0caafed2cf0d990e94d223754b
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Wed Apr 8 16:39:32 2020 +0200
Upgrade to camel 3.2.0
---
docs/modules/ROOT/pages/cdi.adoc | 2 +-
.../pages/list-of-camel-quarkus-extensions.adoc | 4 +-
.../main/java/org/acme/observability/Routes.java | 2 +-
.../org/acme/observability/ObservabilityTest.java | 2 +-
.../src/main/java/org/acme/timer/TimerRoute.java | 2 +-
.../src/main/java/org/acme/timer/TimerRoute.java | 2 +-
.../src/main/resources/routes/my-routes.xml | 2 +-
.../src/main/java/org/acme/timer/TimerRoute.java | 2 +-
.../quarkus/core/deployment/BuildProcessor.java | 13 ++
.../core/deployment/NativeImageProcessor.java | 34 +++-
extensions-core/core/runtime/pom.xml | 12 ++
.../org/apache/camel/quarkus/core/BaseModel.java | 59 +-----
.../org/apache/camel/quarkus/core/CamelMain.java | 8 +-
.../camel/quarkus/core/CamelMainRecorder.java | 1 -
.../apache/camel/quarkus/core/CamelRecorder.java | 2 +-
.../quarkus/core/DisabledValidateReifier.java | 6 +-
.../camel/quarkus/core/FastCamelContext.java | 225 ++++++++++++---------
.../org/apache/camel/quarkus/core/FastModel.java | 195 ------------------
.../camel/quarkus/core/FastTypeConverter.java | 11 +-
.../component/xml/jaxb/XmlJaxbRecorder.java | 2 +-
.../avro-rpc/deployment}/pom.xml | 27 +--
.../component/avro/deployment/AvroProcessor.java | 58 ++++++
extensions-jvm/avro-rpc/integration-test/pom.xml | 82 ++++++++
.../quarkus/component/avro/it/AvroResource.java | 15 +-
.../camel/quarkus/component/avro/it/AvroTest.java | 8 -
.../avro-rpc/pom.xml | 32 +--
.../avro-rpc}/runtime/pom.xml | 15 +-
.../camel/quarkus/component/avro/AvroRecorder.java | 14 ++
.../main/resources/META-INF/quarkus-extension.yaml | 29 +++
.../quarkus/component/avro/it/AvroResource.java | 15 +-
.../camel/quarkus/component/avro/it/AvroTest.java | 8 -
extensions-jvm/pom.xml | 1 +
extensions-support/debezium/runtime/pom.xml | 4 +
extensions/attachments/runtime/pom.xml | 1 +
.../braintree/graal/BraintreeRecorder.java | 5 +-
extensions/file/runtime/pom.xml | 1 +
extensions/http/runtime/pom.xml | 1 +
extensions/jackson/runtime/pom.xml | 1 +
extensions/jaxb/runtime/pom.xml | 1 +
extensions/pom.xml | 3 +-
.../component/qute/QuteComponentConfigurer.java | 32 ++-
.../component/qute/QuteEndpointConfigurer.java | 36 +++-
.../org/apache/camel/component/qute/qute.json | 1 +
.../reactive/streams/ReactiveStreamsRecorder.java | 10 +-
.../component/rest/QuarkusRestComponent.java | 3 +-
.../component/rest/QuarkusRestEndpoint.java | 9 +-
extensions/servlet/runtime/pom.xml | 1 +
.../src/main/resources/application.properties | 1 -
.../src/main/resources/routes/my-routes.xml | 2 +-
.../src/main/resources/routes/my-routes.xml | 2 +-
.../camel/quarkus/component/file/it/FileTest.java | 2 +-
integration-tests/pom.xml | 3 +-
pom.xml | 9 +-
poms/bom/pom.xml | 75 +++++++
.../org/apache/camel/quarkus/maven/CqCatalog.java | 21 +-
.../quarkus/maven/PrepareCatalogQuarkusMojo.java | 2 +-
56 files changed, 631 insertions(+), 485 deletions(-)
diff --git a/docs/modules/ROOT/pages/cdi.adoc b/docs/modules/ROOT/pages/cdi.adoc
index e9f1420..f858973 100644
--- a/docs/modules/ROOT/pages/cdi.adoc
+++ b/docs/modules/ROOT/pages/cdi.adoc
@@ -15,7 +15,7 @@ import org.eclipse.microprofile.config.inject.ConfigProperty;
@ApplicationScoped <1>
public class TimerRoute extends RouteBuilder {
- @ConfigProperty(name = "timer.period", defaultValue = "1s") <2>
+ @ConfigProperty(name = "timer.period", defaultValue = "1000") <2>
String period;
@Inject
diff --git a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
index df584d0..1d86eb5 100644
--- a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
+++ b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
@@ -41,7 +41,7 @@ Level | Since | Description
`amqp:destinationType:destinationName` | Native +
Stable | 1.0.0-M6 | Messaging with AMQP protocol using Apache QPid Client.
-| link:https://camel.apache.org/components/latest/avro-component.html[Avro] (camel-quarkus-avro) +
+| link:https://camel.apache.org/components/latest/avro-component.html[Avro] (camel-quarkus-avro-rpc) +
`avro:transport:host:port/messageName` | JVM +
Preview | 1.0.0-M6 | Working with Apache Avro for data serialization.
@@ -299,7 +299,7 @@ Level | Since | Description
| link:https://camel.apache.org/components/latest/google-pubsub-component.html[Google Pubsub] (camel-quarkus-google-pubsub) +
`google-pubsub:projectId:destinationName` | JVM +
- Preview | 1.0.0-M6 | Messaging client for Google Cloud Platform PubSub Service
+ Preview | 1.0.0-M6 | Messaging client for Google Cloud Platform PubSub Service Built on top of the Google Cloud Pub/Sub libraries.
| link:https://camel.apache.org/components/latest/google-sheets-component.html[Google Sheets] (camel-quarkus-google-sheets) +
`google-sheets:apiName/methodName` | Native +
diff --git a/examples/observability/src/main/java/org/acme/observability/Routes.java b/examples/observability/src/main/java/org/acme/observability/Routes.java
index c51196f..8f1be8f 100644
--- a/examples/observability/src/main/java/org/acme/observability/Routes.java
+++ b/examples/observability/src/main/java/org/acme/observability/Routes.java
@@ -23,7 +23,7 @@ public class Routes extends RouteBuilder {
@Override
public void configure() throws Exception {
// Invokes a simple greeting endpoint every 10 seconds
- from("timer:greeting?period=10s")
+ from("timer:greeting?period=10000")
.to("netty-http:http://localhost:8099/greeting");
from("netty-http:0.0.0.0:8099/greeting")
diff --git a/examples/observability/src/test/java/org/acme/observability/ObservabilityTest.java b/examples/observability/src/test/java/org/acme/observability/ObservabilityTest.java
index 8d31c53..e1dd736 100644
--- a/examples/observability/src/test/java/org/acme/observability/ObservabilityTest.java
+++ b/examples/observability/src/test/java/org/acme/observability/ObservabilityTest.java
@@ -37,7 +37,7 @@ public class ObservabilityTest {
.then()
.statusCode(200)
.body(
- "'camel.context.status;camelContext=camel-quarkus-observability'", is(1));
+ "'camel.context.status;camelContext=camel-quarkus-observability'", is(3));
}
@Test
diff --git a/examples/timer-log-cdi/src/main/java/org/acme/timer/TimerRoute.java b/examples/timer-log-cdi/src/main/java/org/acme/timer/TimerRoute.java
index 8052005..0e0056f 100644
--- a/examples/timer-log-cdi/src/main/java/org/acme/timer/TimerRoute.java
+++ b/examples/timer-log-cdi/src/main/java/org/acme/timer/TimerRoute.java
@@ -32,7 +32,7 @@ import org.eclipse.microprofile.config.inject.ConfigProperty;
public class TimerRoute extends RouteBuilder {
/** {@code timer.period} is defined in {@code src/main/resources/application.properties} */
- @ConfigProperty(name = "timer.period", defaultValue = "1s")
+ @ConfigProperty(name = "timer.period", defaultValue = "1000")
String period;
/** An injected bean */
diff --git a/examples/timer-log-spring/src/main/java/org/acme/timer/TimerRoute.java b/examples/timer-log-spring/src/main/java/org/acme/timer/TimerRoute.java
index 21c07bd..a7cdd61 100644
--- a/examples/timer-log-spring/src/main/java/org/acme/timer/TimerRoute.java
+++ b/examples/timer-log-spring/src/main/java/org/acme/timer/TimerRoute.java
@@ -31,7 +31,7 @@ public class TimerRoute extends RouteBuilder {
* {@code timer.period} is defined in {@code src/main/resources/application.properties}
*/
@Value("timer.period")
- String period = "1s";
+ String period = "1000";
/**
* An injected bean
diff --git a/examples/timer-log-xml/src/main/resources/routes/my-routes.xml b/examples/timer-log-xml/src/main/resources/routes/my-routes.xml
index 42fd73f..ed63c39 100644
--- a/examples/timer-log-xml/src/main/resources/routes/my-routes.xml
+++ b/examples/timer-log-xml/src/main/resources/routes/my-routes.xml
@@ -24,7 +24,7 @@
http://camel.apache.org/schema/spring/camel-spring.xsd">
<route id="xml-route">
- <from uri="timer:from-xml?period=1s"/>
+ <from uri="timer:from-xml?period=1000"/>
<log message="Hello XML!"/>
</route>
diff --git a/examples/timer-log/src/main/java/org/acme/timer/TimerRoute.java b/examples/timer-log/src/main/java/org/acme/timer/TimerRoute.java
index 70b8bd7..0a3b0b9 100644
--- a/examples/timer-log/src/main/java/org/acme/timer/TimerRoute.java
+++ b/examples/timer-log/src/main/java/org/acme/timer/TimerRoute.java
@@ -22,7 +22,7 @@ public class TimerRoute extends RouteBuilder {
@Override
public void configure() throws Exception {
- from("timer:foo?period=1s")
+ from("timer:foo?period=1000")
.log("Hello World");
}
}
diff --git a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/BuildProcessor.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/BuildProcessor.java
index 7595070..94bb313 100644
--- a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/BuildProcessor.java
+++ b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/BuildProcessor.java
@@ -40,6 +40,7 @@ import io.quarkus.deployment.annotations.Overridable;
import io.quarkus.deployment.annotations.Record;
import io.quarkus.deployment.builditem.ApplicationArchivesBuildItem;
import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
+import io.quarkus.deployment.builditem.IndexDependencyBuildItem;
import io.quarkus.deployment.builditem.ServiceStartBuildItem;
import io.quarkus.deployment.builditem.ShutdownContextBuildItem;
import io.quarkus.deployment.recording.RecorderContext;
@@ -100,6 +101,12 @@ class BuildProcessor {
* Build steps related to camel core.
*/
public static class Core {
+ // TODO: remove when https://issues.apache.org/jira/browse/CAMEL-14851 is fixed
+ @BuildStep
+ IndexDependencyBuildItem endpointDslIndex() {
+ return new IndexDependencyBuildItem("org.apache.camel", "camel-endpointdsl");
+ }
+
@BuildStep
BeanRegistrationPhaseBuildItem.BeanConfiguratorBuildItem containerBeans(
BeanRegistrationPhaseBuildItem beanRegistrationPhase,
@@ -156,6 +163,12 @@ class BuildProcessor {
"META-INF/services/org/apache/camel/language/*",
"META-INF/services/org/apache/camel/dataformat/*",
"META-INF/services/org/apache/camel/cron/*"));
+
+ services.produce(new CamelServicePatternBuildItem(
+ CamelServiceDestination.DISCOVERY,
+ false,
+ "META-INF/services/org/apache/camel/configurer/avro-component",
+ "META-INF/services/org/apache/camel/configurer/avro-endpoint"));
}
@BuildStep
diff --git a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/NativeImageProcessor.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/NativeImageProcessor.java
index 0daef50..c055309 100644
--- a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/NativeImageProcessor.java
+++ b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/NativeImageProcessor.java
@@ -33,6 +33,7 @@ import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveMethodBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.RuntimeReinitializedClassBuildItem;
import org.apache.camel.CamelContext;
import org.apache.camel.Component;
import org.apache.camel.Consumer;
@@ -85,7 +86,7 @@ public class NativeImageProcessor {
PropertiesComponent.class,
DataFormat.class);
- @BuildStep
+ // @BuildStep
void reflectiveItems(
CombinedIndexBuildItem combinedIndex,
BuildProducer<ReflectiveClassBuildItem> reflectiveClass,
@@ -138,7 +139,7 @@ public class NativeImageProcessor {
}
- @BuildStep
+ // @BuildStep
void camelServices(
List<CamelServiceBuildItem> camelServices,
BuildProducer<ReflectiveClassBuildItem> reflectiveClass) {
@@ -292,16 +293,16 @@ public class NativeImageProcessor {
//
camelRoutesBuilders.forEach(camelRoutesBuilderClassBuildItem -> {
reflectiveClass.produce(
- new ReflectiveClassBuildItem(true, true, camelRoutesBuilderClassBuildItem.getDotName().toString()));
+ new ReflectiveClassBuildItem(false, false, camelRoutesBuilderClassBuildItem.getDotName().toString()));
});
- reflectiveClass.produce(new ReflectiveClassBuildItem(
- true,
- false,
- org.apache.camel.main.DefaultConfigurationProperties.class,
- org.apache.camel.main.MainConfigurationProperties.class,
- org.apache.camel.main.HystrixConfigurationProperties.class,
- org.apache.camel.main.RestConfigurationProperties.class));
+ // reflectiveClass.produce(new ReflectiveClassBuildItem(
+ // true,
+ // false,
+ // org.apache.camel.main.DefaultConfigurationProperties.class,
+ // org.apache.camel.main.MainConfigurationProperties.class,
+ // org.apache.camel.main.HystrixConfigurationProperties.class,
+ // org.apache.camel.main.RestConfigurationProperties.class));
// TODO: The classes below are needed to fix https://github.com/apache/camel-quarkus/issues/1005
// but we need to investigate why it does not fail with Java 1.8
@@ -314,4 +315,17 @@ public class NativeImageProcessor {
org.apache.camel.spi.RestConfiguration.class));
}
}
+
+ @BuildStep
+ void process(BuildProducer<RuntimeReinitializedClassBuildItem> reinitialized) {
+ for (String s : Arrays.asList(
+ "sun.security.jca.JCAUtil",
+ "sun.security.jca.JCAUtil$CachedSecureRandomHolder",
+ "sun.security.provider.SecureRandom$SeederHolder",
+ "sun.security.provider.SeedGenerator",
+ "java.security.SecureRandom",
+ "java.net.DefaultDatagramSocketImplFactory")) {
+ reinitialized.produce(new RuntimeReinitializedClassBuildItem(s));
+ }
+ }
}
diff --git a/extensions-core/core/runtime/pom.xml b/extensions-core/core/runtime/pom.xml
index 57b7f16..32715da 100644
--- a/extensions-core/core/runtime/pom.xml
+++ b/extensions-core/core/runtime/pom.xml
@@ -87,6 +87,18 @@
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
+ <artifactId>camel-core-languages</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-endpointdsl</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-componentdsl</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
<artifactId>camel-core-catalog</artifactId>
</dependency>
<dependency>
diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/BaseModel.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/BaseModel.java
index 0a11942..2ccfc61 100644
--- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/BaseModel.java
+++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/BaseModel.java
@@ -16,28 +16,13 @@
*/
package org.apache.camel.quarkus.core;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import org.apache.camel.CamelContext;
import org.apache.camel.ExtendedCamelContext;
-import org.apache.camel.FailedToStartRouteException;
-import org.apache.camel.model.DataFormatDefinition;
-import org.apache.camel.model.HystrixConfigurationDefinition;
-import org.apache.camel.model.Model;
-import org.apache.camel.model.ProcessorDefinition;
-import org.apache.camel.model.ProcessorDefinitionHelper;
-import org.apache.camel.model.Resilience4jConfigurationDefinition;
-import org.apache.camel.model.RouteDefinition;
-import org.apache.camel.model.RouteDefinitionHelper;
-import org.apache.camel.model.RouteFilters;
+import org.apache.camel.model.*;
import org.apache.camel.model.cloud.ServiceCallConfigurationDefinition;
import org.apache.camel.model.rest.RestDefinition;
import org.apache.camel.model.transformer.TransformerDefinition;
@@ -80,7 +65,7 @@ public abstract class BaseModel implements Model {
removeRouteDefinitions(list);
this.routeDefinitions.addAll(list);
if (shouldStartRoutes()) {
- startRouteDefinitions(list);
+ getCamelContext().adapt(ModelCamelContext.class).startRouteDefinitions(list);
}
}
@@ -256,7 +241,7 @@ public abstract class BaseModel implements Model {
}
@Override
- public <T extends ProcessorDefinition> T getProcessorDefinition(String id, Class<T> type) {
+ public <T extends ProcessorDefinition<T>> T getProcessorDefinition(String id, Class<T> type) {
ProcessorDefinition answer = getProcessorDefinition(id);
if (answer != null) {
return type.cast(answer);
@@ -295,11 +280,6 @@ public abstract class BaseModel implements Model {
}
@Override
- public void startRouteDefinitions() throws Exception {
- startRouteDefinitions(routeDefinitions);
- }
-
- @Override
public void setRouteFilterPattern(String include, String exclude) {
setRouteFilter(RouteFilters.filterByPattern(include, exclude));
}
@@ -314,37 +294,6 @@ public abstract class BaseModel implements Model {
this.routeFilter = routeFilter;
}
- protected void startRouteDefinitions(Collection<RouteDefinition> list) throws Exception {
- if (list != null) {
- for (RouteDefinition route : list) {
- startRoute(route);
- }
- }
- }
-
- public void startRoute(RouteDefinition routeDefinition) throws Exception {
- prepare(routeDefinition);
- start(routeDefinition);
- }
-
- protected void prepare(RouteDefinition routeDefinition) throws Exception {
- // assign ids to the routes and validate that the id's is all unique
- RouteDefinitionHelper.forceAssignIds(camelContext, routeDefinitions);
- String duplicate = RouteDefinitionHelper.validateUniqueIds(routeDefinition, routeDefinitions);
- if (duplicate != null) {
- throw new FailedToStartRouteException(routeDefinition.getId(),
- "duplicate id detected: " + duplicate + ". Please correct ids to be unique among all your routes.");
- }
-
- // must ensure route is prepared, before we can start it
- if (!routeDefinition.isPrepared()) {
- RouteDefinitionHelper.prepareRoute(camelContext, routeDefinition);
- routeDefinition.markPrepared();
- }
- }
-
- protected abstract void start(RouteDefinition routeDefinition) throws Exception;
-
/**
* Should we start newly added routes?
*/
diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMain.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMain.java
index a83862c..34cfa37 100644
--- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMain.java
+++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMain.java
@@ -41,12 +41,18 @@ public class CamelMain extends BaseMainSupport implements CamelContextAware {
}
@Override
+ protected void doInit() throws Exception {
+ super.doInit();
+ postProcessCamelContext(getCamelContext());
+ getCamelContext().init();
+ }
+
+ @Override
protected void doStart() throws Exception {
for (MainListener listener : listeners) {
listener.beforeStart(this);
}
- postProcessCamelContext(getCamelContext());
getCamelContext().start();
for (MainListener listener : listeners) {
diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMainRecorder.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMainRecorder.java
index ec0d238..8542ee6 100644
--- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMainRecorder.java
+++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMainRecorder.java
@@ -93,7 +93,6 @@ public class CamelMainRecorder {
});
try {
- main.getValue().init();
main.getValue().start();
} catch (Exception e) {
throw new RuntimeException(e);
diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRecorder.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRecorder.java
index 56c37e5..95770b0 100644
--- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRecorder.java
+++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRecorder.java
@@ -80,7 +80,7 @@ public class CamelRecorder {
context.setTypeConverterRegistry(typeConverterRegistry.getValue());
context.setLoadTypeConverters(false);
context.setModelJAXBContextFactory(contextFactory.getValue());
- context.init();
+ context.build();
// register to the container
beanContainer.instance(CamelProducers.class).setContext(context);
diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/DisabledValidateReifier.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/DisabledValidateReifier.java
index 911bfe7..a9b8144 100644
--- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/DisabledValidateReifier.java
+++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/DisabledValidateReifier.java
@@ -17,15 +17,15 @@
package org.apache.camel.quarkus.core;
import org.apache.camel.Processor;
+import org.apache.camel.Route;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.model.ValidateDefinition;
import org.apache.camel.reifier.ProcessorReifier;
-import org.apache.camel.spi.RouteContext;
public class DisabledValidateReifier extends ProcessorReifier<ValidateDefinition> {
- public DisabledValidateReifier(RouteContext routeContext, ProcessorDefinition<?> definition) {
- super(routeContext, (ValidateDefinition) definition);
+ public DisabledValidateReifier(Route route, ProcessorDefinition<?> definition) {
+ super(route, (ValidateDefinition) definition);
}
@Override
diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java
index f0d0493..768a48f 100644
--- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java
+++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java
@@ -24,105 +24,33 @@ import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.function.Function;
-import org.apache.camel.AsyncProcessor;
-import org.apache.camel.CatalogCamelContext;
-import org.apache.camel.Component;
-import org.apache.camel.Endpoint;
-import org.apache.camel.Processor;
-import org.apache.camel.TypeConverter;
+import org.apache.camel.*;
+import org.apache.camel.builder.AdviceWithRouteBuilder;
import org.apache.camel.catalog.RuntimeCamelCatalog;
import org.apache.camel.catalog.impl.DefaultRuntimeCamelCatalog;
import org.apache.camel.component.microprofile.config.CamelMicroProfilePropertiesSource;
import org.apache.camel.health.HealthCheckRegistry;
import org.apache.camel.impl.DefaultExecutorServiceManager;
-import org.apache.camel.impl.engine.AbstractCamelContext;
-import org.apache.camel.impl.engine.BeanProcessorFactoryResolver;
-import org.apache.camel.impl.engine.BeanProxyFactoryResolver;
-import org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager;
-import org.apache.camel.impl.engine.DefaultBeanIntrospection;
-import org.apache.camel.impl.engine.DefaultCamelBeanPostProcessor;
-import org.apache.camel.impl.engine.DefaultCamelContextNameStrategy;
-import org.apache.camel.impl.engine.DefaultClassResolver;
-import org.apache.camel.impl.engine.DefaultComponentResolver;
-import org.apache.camel.impl.engine.DefaultConfigurerResolver;
-import org.apache.camel.impl.engine.DefaultDataFormatResolver;
-import org.apache.camel.impl.engine.DefaultEndpointRegistry;
-import org.apache.camel.impl.engine.DefaultInflightRepository;
-import org.apache.camel.impl.engine.DefaultInjector;
-import org.apache.camel.impl.engine.DefaultLanguageResolver;
-import org.apache.camel.impl.engine.DefaultMessageHistoryFactory;
-import org.apache.camel.impl.engine.DefaultNodeIdFactory;
-import org.apache.camel.impl.engine.DefaultPackageScanClassResolver;
-import org.apache.camel.impl.engine.DefaultPackageScanResourceResolver;
-import org.apache.camel.impl.engine.DefaultProcessorFactory;
-import org.apache.camel.impl.engine.DefaultReactiveExecutor;
-import org.apache.camel.impl.engine.DefaultRouteController;
-import org.apache.camel.impl.engine.DefaultStreamCachingStrategy;
-import org.apache.camel.impl.engine.DefaultTracer;
-import org.apache.camel.impl.engine.DefaultTransformerRegistry;
-import org.apache.camel.impl.engine.DefaultUnitOfWorkFactory;
-import org.apache.camel.impl.engine.DefaultValidatorRegistry;
-import org.apache.camel.impl.engine.EndpointKey;
-import org.apache.camel.impl.engine.HeadersMapFactoryResolver;
-import org.apache.camel.impl.engine.RestRegistryFactoryResolver;
+import org.apache.camel.impl.engine.*;
import org.apache.camel.impl.health.DefaultHealthCheckRegistry;
import org.apache.camel.impl.transformer.TransformerKey;
import org.apache.camel.impl.validator.ValidatorKey;
-import org.apache.camel.model.DataFormatDefinition;
-import org.apache.camel.model.HystrixConfigurationDefinition;
-import org.apache.camel.model.Model;
-import org.apache.camel.model.ModelCamelContext;
-import org.apache.camel.model.ProcessorDefinition;
-import org.apache.camel.model.Resilience4jConfigurationDefinition;
-import org.apache.camel.model.RouteDefinition;
+import org.apache.camel.model.*;
import org.apache.camel.model.cloud.ServiceCallConfigurationDefinition;
+import org.apache.camel.model.language.ExpressionDefinition;
import org.apache.camel.model.rest.RestDefinition;
import org.apache.camel.model.transformer.TransformerDefinition;
import org.apache.camel.model.validator.ValidatorDefinition;
import org.apache.camel.processor.MulticastProcessor;
-import org.apache.camel.spi.AsyncProcessorAwaitManager;
-import org.apache.camel.spi.BeanIntrospection;
-import org.apache.camel.spi.BeanProcessorFactory;
-import org.apache.camel.spi.BeanProxyFactory;
-import org.apache.camel.spi.CamelBeanPostProcessor;
-import org.apache.camel.spi.CamelContextNameStrategy;
-import org.apache.camel.spi.ClassResolver;
-import org.apache.camel.spi.ComponentResolver;
-import org.apache.camel.spi.ConfigurerResolver;
-import org.apache.camel.spi.DataFormat;
-import org.apache.camel.spi.DataFormatResolver;
-import org.apache.camel.spi.EndpointRegistry;
-import org.apache.camel.spi.ExecutorServiceManager;
-import org.apache.camel.spi.FactoryFinderResolver;
-import org.apache.camel.spi.HeadersMapFactory;
-import org.apache.camel.spi.InflightRepository;
-import org.apache.camel.spi.Injector;
-import org.apache.camel.spi.Language;
-import org.apache.camel.spi.LanguageResolver;
-import org.apache.camel.spi.ManagementNameStrategy;
-import org.apache.camel.spi.MessageHistoryFactory;
-import org.apache.camel.spi.ModelJAXBContextFactory;
-import org.apache.camel.spi.ModelToXMLDumper;
-import org.apache.camel.spi.NodeIdFactory;
-import org.apache.camel.spi.PackageScanClassResolver;
-import org.apache.camel.spi.PackageScanResourceResolver;
-import org.apache.camel.spi.ProcessorFactory;
-import org.apache.camel.spi.PropertiesComponent;
-import org.apache.camel.spi.ReactiveExecutor;
-import org.apache.camel.spi.Registry;
-import org.apache.camel.spi.RestRegistryFactory;
-import org.apache.camel.spi.RouteController;
-import org.apache.camel.spi.ShutdownStrategy;
-import org.apache.camel.spi.StreamCachingStrategy;
-import org.apache.camel.spi.Tracer;
-import org.apache.camel.spi.TransformerRegistry;
-import org.apache.camel.spi.TypeConverterRegistry;
-import org.apache.camel.spi.UnitOfWorkFactory;
-import org.apache.camel.spi.UuidGenerator;
-import org.apache.camel.spi.ValidatorRegistry;
-import org.apache.camel.spi.XMLRoutesDefinitionLoader;
+import org.apache.camel.reifier.RouteReifier;
+import org.apache.camel.reifier.errorhandler.ErrorHandlerReifier;
+import org.apache.camel.reifier.language.ExpressionReifier;
+import org.apache.camel.reifier.transformer.TransformerReifier;
+import org.apache.camel.reifier.validator.ValidatorReifier;
+import org.apache.camel.spi.*;
import org.apache.camel.support.CamelContextHelper;
import org.apache.camel.util.IOHelper;
+import org.apache.camel.util.ObjectHelper;
public class FastCamelContext extends AbstractCamelContext implements CatalogCamelContext, ModelCamelContext {
private final Model model;
@@ -285,17 +213,25 @@ public class FastCamelContext extends AbstractCamelContext implements CatalogCam
@Override
protected HeadersMapFactory createHeadersMapFactory() {
- return new HeadersMapFactoryResolver().resolve(this);
+ return new BaseServiceResolver<>(HeadersMapFactory.FACTORY, HeadersMapFactory.class)
+ .resolve(getCamelContextReference())
+ .orElseGet(DefaultHeadersMapFactory::new);
}
@Override
protected BeanProxyFactory createBeanProxyFactory() {
- return new BeanProxyFactoryResolver().resolve(this);
+ return new BaseServiceResolver<>(BeanProxyFactory.FACTORY, BeanProxyFactory.class)
+ .resolve(getCamelContextReference())
+ .orElseThrow(() -> new IllegalArgumentException("Cannot find BeanProxyFactory on classpath. "
+ + "Add camel-bean to classpath."));
}
@Override
protected BeanProcessorFactory createBeanProcessorFactory() {
- return new BeanProcessorFactoryResolver().resolve(this);
+ return new BaseServiceResolver<>(BeanProcessorFactory.FACTORY, BeanProcessorFactory.class)
+ .resolve(getCamelContextReference())
+ .orElseThrow(() -> new IllegalArgumentException("Cannot find BeanProcessorFactory on classpath. "
+ + "Add camel-bean to classpath."));
}
@Override
@@ -357,7 +293,10 @@ public class FastCamelContext extends AbstractCamelContext implements CatalogCam
@Override
protected RestRegistryFactory createRestRegistryFactory() {
- return new RestRegistryFactoryResolver().resolve(this);
+ return new BaseServiceResolver<>(RestRegistryFactory.FACTORY, RestRegistryFactory.class)
+ .resolve(getCamelContextReference())
+ .orElseThrow(() -> new IllegalArgumentException("Cannot find RestRegistryFactory on classpath. "
+ + "Add camel-rest to classpath."));
}
@Override
@@ -388,8 +327,9 @@ public class FastCamelContext extends AbstractCamelContext implements CatalogCam
@Override
public AsyncProcessor createMulticast(Collection<Processor> processors, ExecutorService executor,
boolean shutdownExecutorService) {
- return new MulticastProcessor(this, processors, null, true, executor, shutdownExecutorService,
- false, false, 0L, null, false, false);
+ return new MulticastProcessor(getCamelContextReference(), null, processors, null,
+ true, executor, shutdownExecutorService, false, false,
+ 0, null, false, false);
}
@Override
@@ -398,6 +338,24 @@ public class FastCamelContext extends AbstractCamelContext implements CatalogCam
}
@Override
+ protected HealthCheckRegistry createHealthCheckRegistry() {
+ return new DefaultHealthCheckRegistry(this);
+ }
+
+ @Override
+ protected ComponentNameResolver createComponentNameResolver() {
+ return new DefaultComponentNameResolver();
+ }
+
+ @Override
+ protected RestBindingJaxbDataFormatFactory createRestBindingJaxbDataFormatFactory() {
+ return new BaseServiceResolver<>(RestBindingJaxbDataFormatFactory.FACTORY, RestBindingJaxbDataFormatFactory.class)
+ .resolve(getCamelContextReference())
+ .orElseThrow(() -> new IllegalArgumentException("Cannot find RestBindingJaxbDataFormatFactory on classpath. "
+ + "Add camel-jaxb to classpath."));
+ }
+
+ @Override
public void setTypeConverterRegistry(TypeConverterRegistry typeConverterRegistry) {
super.setTypeConverterRegistry(typeConverterRegistry);
@@ -506,13 +464,22 @@ public class FastCamelContext extends AbstractCamelContext implements CatalogCam
return null;
}
+ @Override
+ public Processor createErrorHandler(Route route, Processor processor) throws Exception {
+ return ErrorHandlerReifier.reifier(route, route.getErrorHandlerFactory())
+ .createErrorHandler(processor);
+ }
+
//
// ModelCamelContext
//
@Override
public void startRouteDefinitions() throws Exception {
- model.startRouteDefinitions();
+ List<RouteDefinition> routeDefinitions = model.getRouteDefinitions();
+ if (routeDefinitions != null) {
+ startRouteDefinitions(routeDefinitions);
+ }
}
@Override
@@ -576,7 +543,7 @@ public class FastCamelContext extends AbstractCamelContext implements CatalogCam
}
@Override
- public <T extends ProcessorDefinition> T getProcessorDefinition(String id, Class<T> type) {
+ public <T extends ProcessorDefinition<T>> T getProcessorDefinition(String id, Class<T> type) {
return model.getProcessorDefinition(id, type);
}
@@ -674,4 +641,78 @@ public class FastCamelContext extends AbstractCamelContext implements CatalogCam
public Function<RouteDefinition, Boolean> getRouteFilter() {
return model.getRouteFilter();
}
+
+ @Override
+ public void startRouteDefinitions(List<RouteDefinition> routeDefinitions) throws Exception {
+ // indicate we are staring the route using this thread so
+ // we are able to query this if needed
+ boolean alreadyStartingRoutes = isStartingRoutes();
+ if (!alreadyStartingRoutes) {
+ setStartingRoutes(true);
+ }
+ try {
+ RouteDefinitionHelper.forceAssignIds(getCamelContextReference(), routeDefinitions);
+ for (RouteDefinition routeDefinition : routeDefinitions) {
+ // assign ids to the routes and validate that the id's is all unique
+ String duplicate = RouteDefinitionHelper.validateUniqueIds(routeDefinition, routeDefinitions);
+ if (duplicate != null) {
+ throw new FailedToStartRouteException(routeDefinition.getId(),
+ "duplicate id detected: " + duplicate + ". Please correct ids to be unique among all your routes.");
+ }
+
+ // must ensure route is prepared, before we can start it
+ if (!routeDefinition.isPrepared()) {
+ RouteDefinitionHelper.prepareRoute(getCamelContextReference(), routeDefinition);
+ routeDefinition.markPrepared();
+ }
+
+ Route route = new RouteReifier(getCamelContextReference(), routeDefinition).createRoute();
+ RouteService routeService = new RouteService(route);
+ startRouteService(routeService, true);
+ }
+ } finally {
+ if (!alreadyStartingRoutes) {
+ setStartingRoutes(false);
+ }
+ }
+ }
+
+ @Override
+ public Expression createExpression(ExpressionDefinition definition) {
+ return ExpressionReifier.reifier(this, definition).createExpression();
+ }
+
+ @Override
+ public Predicate createPredicate(ExpressionDefinition definition) {
+ return ExpressionReifier.reifier(this, definition).createPredicate();
+ }
+
+ @Override
+ public RouteDefinition adviceWith(RouteDefinition definition, AdviceWithRouteBuilder builder) throws Exception {
+ return RouteReifier.adviceWith(definition, this, builder);
+ }
+
+ @Override
+ public void registerValidator(ValidatorDefinition def) {
+ model.getValidators().add(def);
+ Validator validator = ValidatorReifier.reifier(this, def).createValidator();
+ getValidatorRegistry().put(createValidatorKey(def), validator);
+ }
+
+ private static ValueHolder<String> createValidatorKey(ValidatorDefinition def) {
+ return new ValidatorKey(new DataType(def.getType()));
+ }
+
+ @Override
+ public void registerTransformer(TransformerDefinition def) {
+ model.getTransformers().add(def);
+ Transformer transformer = TransformerReifier.reifier(this, def).createTransformer();
+ getTransformerRegistry().put(createTransformerKey(def), transformer);
+ }
+
+ private static ValueHolder<String> createTransformerKey(TransformerDefinition def) {
+ return ObjectHelper.isNotEmpty(def.getScheme()) ? new TransformerKey(def.getScheme())
+ : new TransformerKey(new DataType(def.getFromType()), new DataType(def.getToType()));
+ }
+
}
diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastModel.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastModel.java
index 847cfcc..fd299a8 100644
--- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastModel.java
+++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastModel.java
@@ -16,206 +16,11 @@
*/
package org.apache.camel.quarkus.core;
-import java.util.ArrayList;
-import java.util.List;
-
import org.apache.camel.CamelContext;
-import org.apache.camel.ErrorHandlerFactory;
-import org.apache.camel.ExtendedCamelContext;
-import org.apache.camel.NamedNode;
-import org.apache.camel.Navigate;
-import org.apache.camel.Processor;
-import org.apache.camel.Route;
-import org.apache.camel.Service;
-import org.apache.camel.impl.engine.AbstractCamelContext;
-import org.apache.camel.impl.engine.BaseRouteService;
-import org.apache.camel.impl.engine.DefaultRouteContext;
-import org.apache.camel.model.OnCompletionDefinition;
-import org.apache.camel.model.OnExceptionDefinition;
-import org.apache.camel.model.ProcessorDefinition;
-import org.apache.camel.model.RouteDefinition;
-import org.apache.camel.model.RouteDefinitionHelper;
-import org.apache.camel.processor.channel.DefaultChannel;
-import org.apache.camel.reifier.RouteReifier;
-import org.apache.camel.support.CamelContextHelper;
public class FastModel extends BaseModel {
public FastModel(CamelContext camelContext) {
super(camelContext);
}
- @Override
- protected void start(RouteDefinition routeDefinition) throws Exception {
- // indicate we are staring the route using this thread so
- // we are able to query this if needed
- CamelContext camelContext = getCamelContext();
- AbstractCamelContext mcc = camelContext.adapt(AbstractCamelContext.class);
- mcc.setStartingRoutes(true);
- try {
- String id = routeDefinition.idOrCreate(camelContext.adapt(ExtendedCamelContext.class).getNodeIdFactory());
- FastRouteContext routeContext = new FastRouteContext(camelContext, routeDefinition, id);
- Route route = new RouteReifier(routeContext, routeDefinition).createRoute();
- FastRouteService routeService = createRouteService(route);
- mcc.startRouteService(routeService, true);
- } finally {
- // we are done staring routes
- mcc.setStartingRoutes(false);
- }
- }
-
- private FastRouteService createRouteService(Route route) {
- Integer startupOrder;
- String description;
- boolean autoStartup;
- boolean contextScopedErrorHandler;
- List<Service> routeScopedServices;
-
- RouteDefinition definition = (RouteDefinition) route.getRouteContext().getRoute();
- startupOrder = definition.getStartupOrder();
- description = RouteDefinitionHelper.getRouteMessage(definition.toString());
-
- if (!route.getCamelContext().isAutoStartup()) {
- autoStartup = false;
- } else if (definition.getAutoStartup() == null) {
- // should auto startup by default
- autoStartup = true;
- } else {
- Boolean isAutoStartup = CamelContextHelper.parseBoolean(route.getCamelContext(), definition.getAutoStartup());
- autoStartup = isAutoStartup != null && isAutoStartup;
- }
-
- if (!definition.isContextScopedErrorHandler()) {
- contextScopedErrorHandler = false;
- } else if (definition.getErrorHandlerRef() != null) {
- // if error handler ref is configured it may refer to a context scoped, so we need to check this first
- // the XML DSL will configure error handlers using refs, so we need this additional test
- ErrorHandlerFactory routeScoped = route.getRouteContext().getErrorHandlerFactory();
- ErrorHandlerFactory contextScoped = route.getCamelContext().adapt(ExtendedCamelContext.class)
- .getErrorHandlerFactory();
- contextScopedErrorHandler = contextScoped != null && routeScoped == contextScoped;
- } else {
- contextScopedErrorHandler = true;
- }
-
- List<Service> services = new ArrayList<>();
- for (ProcessorDefinition<?> output : definition.getOutputs()) {
- if (output instanceof OnExceptionDefinition) {
- OnExceptionDefinition onExceptionDefinition = (OnExceptionDefinition) output;
- if (onExceptionDefinition.isRouteScoped()) {
- Processor errorHandler = route.getRouteContext().getOnException(onExceptionDefinition.getId());
- if (errorHandler instanceof Service) {
- services.add((Service) errorHandler);
- }
- }
- } else if (output instanceof OnCompletionDefinition) {
- OnCompletionDefinition onCompletionDefinition = (OnCompletionDefinition) output;
- if (onCompletionDefinition.isRouteScoped()) {
- Processor onCompletionProcessor = route.getRouteContext().getOnCompletion(onCompletionDefinition.getId());
- if (onCompletionProcessor instanceof Service) {
- services.add((Service) onCompletionProcessor);
- }
- }
- }
- }
- routeScopedServices = services;
-
- FastRouteService routeService = new FastRouteService(route);
- routeService.setStartupOrder(startupOrder);
- routeService.setDescription(description);
- routeService.setAutoStartup(autoStartup);
- routeService.setContextScopedErrorHandler(contextScopedErrorHandler);
- routeService.setRouteScopedServices(routeScopedServices);
- return routeService;
- }
-
- static class FastRouteContext extends DefaultRouteContext {
-
- private NamedNode route;
-
- public FastRouteContext(CamelContext camelContext, NamedNode route, String routeId) {
- super(camelContext, null, routeId);
- this.route = route;
- }
-
- @Override
- public NamedNode getRoute() {
- return route;
- }
-
- @SuppressWarnings("unchecked")
- private void clearModel(Processor nav) {
- if (nav instanceof DefaultChannel) {
- DefaultChannel channel = (DefaultChannel) nav;
- channel.setDefinition(null);
- }
- if (nav instanceof Navigate) {
- List<Processor> children = ((Navigate<Processor>) nav).next();
- if (children != null) {
- for (Processor p : children) {
- clearModel(p);
- }
- }
- }
- }
-
- }
-
- static class FastRouteService extends BaseRouteService {
-
- private Integer startupOrder;
- private String description;
- private boolean autoStartup;
- private boolean contextScopedErrorHandler;
- private List<Service> routeScopedServices;
-
- public FastRouteService(Route route) {
- super(route);
- }
-
- public void setStartupOrder(Integer startupOrder) {
- this.startupOrder = startupOrder;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public void setAutoStartup(boolean autoStartup) {
- this.autoStartup = autoStartup;
- }
-
- public void setContextScopedErrorHandler(boolean contextScopedErrorHandler) {
- this.contextScopedErrorHandler = contextScopedErrorHandler;
- }
-
- public void setRouteScopedServices(List<Service> routeScopedServices) {
- this.routeScopedServices = routeScopedServices;
- }
-
- @Override
- public Integer getStartupOrder() {
- return startupOrder;
- }
-
- @Override
- protected String getRouteDescription() {
- return description;
- }
-
- @Override
- public boolean isAutoStartup() {
- return autoStartup;
- }
-
- @Override
- public boolean isContextScopedErrorHandler() {
- return contextScopedErrorHandler;
- }
-
- @Override
- protected void doGetRouteScopedServices(List<Service> services) {
- services.addAll(routeScopedServices);
- }
- }
-
}
diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastTypeConverter.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastTypeConverter.java
index 178250f..6492338 100644
--- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastTypeConverter.java
+++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastTypeConverter.java
@@ -29,15 +29,16 @@ public class FastTypeConverter extends DefaultTypeConverter {
}
@Override
- protected void doStart() throws Exception {
+ protected void doInit() throws Exception {
+ super.doInit();
+ }
+
+ @Override
+ public void loadCoreAndFastTypeConverters() throws Exception {
for (TypeConverterLoader loader : getCamelContext().getRegistry().findByType(TypeConverterLoader.class)) {
LOG.debug("TypeConverterLoader: {} loading converters", loader);
loader.load(this);
}
}
- @Override
- public void loadCoreAndFastTypeConverters() throws Exception {
- throw new UnsupportedOperationException();
- }
}
diff --git a/extensions-core/xml-jaxb/runtime/src/main/java/org/apache/camel/quarkus/component/xml/jaxb/XmlJaxbRecorder.java b/extensions-core/xml-jaxb/runtime/src/main/java/org/apache/camel/quarkus/component/xml/jaxb/XmlJaxbRecorder.java
index 3cb9e69..260da00 100644
--- a/extensions-core/xml-jaxb/runtime/src/main/java/org/apache/camel/quarkus/component/xml/jaxb/XmlJaxbRecorder.java
+++ b/extensions-core/xml-jaxb/runtime/src/main/java/org/apache/camel/quarkus/component/xml/jaxb/XmlJaxbRecorder.java
@@ -21,10 +21,10 @@ import javax.xml.bind.JAXBException;
import io.quarkus.runtime.RuntimeValue;
import io.quarkus.runtime.annotations.Recorder;
import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.impl.DefaultModelJAXBContextFactory;
import org.apache.camel.spi.ModelJAXBContextFactory;
import org.apache.camel.spi.ModelToXMLDumper;
import org.apache.camel.spi.XMLRoutesDefinitionLoader;
+import org.apache.camel.xml.jaxb.DefaultModelJAXBContextFactory;
import org.apache.camel.xml.jaxb.JaxbModelToXMLDumper;
import org.apache.camel.xml.jaxb.JaxbXMLRoutesDefinitionLoader;
import org.graalvm.nativeimage.ImageInfo;
diff --git a/extensions/file/runtime/pom.xml b/extensions-jvm/avro-rpc/deployment/pom.xml
similarity index 73%
copy from extensions/file/runtime/pom.xml
copy to extensions-jvm/avro-rpc/deployment/pom.xml
index 197d38a..4310cab 100644
--- a/extensions/file/runtime/pom.xml
+++ b/extensions-jvm/avro-rpc/deployment/pom.xml
@@ -17,27 +17,25 @@
limitations under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-file-parent</artifactId>
+ <artifactId>camel-quarkus-avro-rpc-parent</artifactId>
<version>1.1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
- <artifactId>camel-quarkus-file</artifactId>
- <name>Camel Quarkus :: File :: Runtime</name>
-
- <properties>
- <firstVersion>0.4.0</firstVersion>
- </properties>
+ <artifactId>camel-quarkus-avro-rpc-deployment</artifactId>
+ <name>Camel Quarkus :: Avro RPC :: Deployment</name>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-bom</artifactId>
+ <artifactId>camel-quarkus-bom-deployment</artifactId>
<version>${project.version}</version>
<type>pom</type>
<scope>import</scope>
@@ -48,21 +46,17 @@
<dependencies>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-core</artifactId>
+ <artifactId>camel-quarkus-core-deployment</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-file</artifactId>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-avro-rpc</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
- <groupId>io.quarkus</groupId>
- <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
- </plugin>
- <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
@@ -77,4 +71,5 @@
</plugin>
</plugins>
</build>
+
</project>
diff --git a/extensions-jvm/avro-rpc/deployment/src/main/java/org/apache/camel/quarkus/component/avro/deployment/AvroProcessor.java b/extensions-jvm/avro-rpc/deployment/src/main/java/org/apache/camel/quarkus/component/avro/deployment/AvroProcessor.java
new file mode 100644
index 0000000..ec58a38
--- /dev/null
+++ b/extensions-jvm/avro-rpc/deployment/src/main/java/org/apache/camel/quarkus/component/avro/deployment/AvroProcessor.java
@@ -0,0 +1,58 @@
+/*
+ * 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.component.avro.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.component.avro.AvroComponent;
+import org.apache.camel.quarkus.component.avro.AvroRecorder;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.apache.camel.quarkus.core.deployment.CamelBeanBuildItem;
+import org.jboss.logging.Logger;
+
+class AvroProcessor {
+
+ private static final Logger LOG = Logger.getLogger(AvroProcessor.class);
+ private static final String FEATURE = "camel-avro-rpc";
+
+ @BuildStep
+ FeatureBuildItem feature() {
+ return new FeatureBuildItem(FEATURE);
+ }
+
+ /**
+ * Remove this once this extension starts supporting the native mode.
+ */
+ @BuildStep(onlyIf = NativeBuild.class)
+ @Record(value = ExecutionTime.RUNTIME_INIT)
+ void warnJvmInNative(JvmOnlyRecorder recorder) {
+ JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+ recorder.warnJvmInNative(FEATURE); // warn at runtime
+ }
+
+ @Record(ExecutionTime.STATIC_INIT)
+ @BuildStep
+ CamelBeanBuildItem avroComponent(AvroRecorder recorder) {
+ return new CamelBeanBuildItem(
+ "avro-rpc",
+ AvroComponent.class.getName(),
+ recorder.createAvroComponent());
+ }
+}
diff --git a/extensions-jvm/avro-rpc/integration-test/pom.xml b/extensions-jvm/avro-rpc/integration-test/pom.xml
new file mode 100644
index 0000000..b76aa68
--- /dev/null
+++ b/extensions-jvm/avro-rpc/integration-test/pom.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ 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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-avro-rpc-parent</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>camel-quarkus-avro-rpc-integration-test</artifactId>
+ <name>Camel Quarkus :: Avro RPC :: Integration Test</name>
+ <description>Integration tests for Camel Quarkus Avro extension</description>
+
+ <properties>
+ <!-- mvnd, a.k.a. Maven Daemon: https://github.com/gnodet/mvnd -->
+ <!-- The following rule tells mvnd to build the listed deployment modules before this module. -->
+ <!-- This is important because mvnd builds modules in parallel by default. The deployment modules are not -->
+ <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
+ <!-- Please update rule whenever you change the dependencies of this module by running -->
+ <!-- mvn process-resources -Pformat from the root directory -->
+ <mvnd.builder.rule>camel-quarkus-avro-rpc-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-avro-rpc</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>io.quarkus</groupId>
+ <artifactId>quarkus-resteasy</artifactId>
+ </dependency>
+
+ <!-- test dependencies -->
+ <dependency>
+ <groupId>io.quarkus</groupId>
+ <artifactId>quarkus-junit5</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>io.rest-assured</groupId>
+ <artifactId>rest-assured</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>io.quarkus</groupId>
+ <artifactId>quarkus-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>build</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/extensions-jvm/avro/integration-test/src/main/java/org/apache/camel/quarkus/component/avro/it/AvroResource.java b/extensions-jvm/avro-rpc/integration-test/src/main/java/org/apache/camel/quarkus/component/avro/it/AvroResource.java
similarity index 74%
copy from extensions-jvm/avro/integration-test/src/main/java/org/apache/camel/quarkus/component/avro/it/AvroResource.java
copy to extensions-jvm/avro-rpc/integration-test/src/main/java/org/apache/camel/quarkus/component/avro/it/AvroResource.java
index 0ba3eb3..99f5473 100644
--- a/extensions-jvm/avro/integration-test/src/main/java/org/apache/camel/quarkus/component/avro/it/AvroResource.java
+++ b/extensions-jvm/avro-rpc/integration-test/src/main/java/org/apache/camel/quarkus/component/avro/it/AvroResource.java
@@ -33,8 +33,7 @@ public class AvroResource {
private static final Logger LOG = Logger.getLogger(AvroResource.class);
- private static final String COMPONENT_AVRO = "avro";
- private static final String DATAFORMAT_AVRO = "avro";
+ private static final String COMPONENT_AVRO = "avro-rpc";
@Inject
CamelContext context;
@@ -49,16 +48,4 @@ public class AvroResource {
LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_AVRO);
return Response.status(500, COMPONENT_AVRO + " could not be loaded from the Camel context").build();
}
-
- @Path("/load/dataformat/avro")
- @GET
- @Produces(MediaType.TEXT_PLAIN)
- public Response loadDataformatAvro() throws Exception {
- /* This is an autogenerated test */
- if (context.getComponent(DATAFORMAT_AVRO) != null) {
- return Response.ok().build();
- }
- LOG.warnf("Could not load [%s] from the Camel context", DATAFORMAT_AVRO);
- return Response.status(500, DATAFORMAT_AVRO + " could not be loaded from the Camel context").build();
- }
}
diff --git a/extensions-jvm/avro/integration-test/src/test/java/org/apache/camel/quarkus/component/avro/it/AvroTest.java b/extensions-jvm/avro-rpc/integration-test/src/test/java/org/apache/camel/quarkus/component/avro/it/AvroTest.java
similarity index 85%
copy from extensions-jvm/avro/integration-test/src/test/java/org/apache/camel/quarkus/component/avro/it/AvroTest.java
copy to extensions-jvm/avro-rpc/integration-test/src/test/java/org/apache/camel/quarkus/component/avro/it/AvroTest.java
index 417bee2..346a3c9 100644
--- a/extensions-jvm/avro/integration-test/src/test/java/org/apache/camel/quarkus/component/avro/it/AvroTest.java
+++ b/extensions-jvm/avro-rpc/integration-test/src/test/java/org/apache/camel/quarkus/component/avro/it/AvroTest.java
@@ -31,12 +31,4 @@ class AvroTest {
.statusCode(200);
}
- @Test
- public void loadDataformatAvro() {
- /* A simple autogenerated test */
- RestAssured.get("/avro/load/dataformat/avro")
- .then()
- .statusCode(200);
- }
-
}
diff --git a/integration-tests/core-main-xml-jaxb/src/main/resources/routes/my-routes.xml b/extensions-jvm/avro-rpc/pom.xml
similarity index 51%
copy from integration-tests/core-main-xml-jaxb/src/main/resources/routes/my-routes.xml
copy to extensions-jvm/avro-rpc/pom.xml
index 482befb..2bf4bd8 100644
--- a/integration-tests/core-main-xml-jaxb/src/main/resources/routes/my-routes.xml
+++ b/extensions-jvm/avro-rpc/pom.xml
@@ -17,18 +17,24 @@
limitations under the License.
-->
-<routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://camel.apache.org/schema/spring"
- xsi:schemaLocation="
- http://camel.apache.org/schema/spring
- http://camel.apache.org/schema/spring/camel-spring.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-build-parent</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ <relativePath>../../poms/build-parent/pom.xml</relativePath>
+ </parent>
- <route id="my-xml-route">
- <from uri="timer:from-xml?period=3s"/>
- <setBody>
- <constant>Hello World!!!</constant>
- </setBody>
- <to uri="log:from-xml"/>
- </route>
+ <artifactId>camel-quarkus-avro-rpc-parent</artifactId>
+ <name>Camel Quarkus :: Avro RPC</name>
+ <packaging>pom</packaging>
-</routes>
\ No newline at end of file
+ <modules>
+ <module>deployment</module>
+ <module>runtime</module>
+ <module>integration-test</module>
+ </modules>
+</project>
diff --git a/extensions/attachments/runtime/pom.xml b/extensions-jvm/avro-rpc/runtime/pom.xml
similarity index 82%
copy from extensions/attachments/runtime/pom.xml
copy to extensions-jvm/avro-rpc/runtime/pom.xml
index 8decf13..f7dfabf 100644
--- a/extensions/attachments/runtime/pom.xml
+++ b/extensions-jvm/avro-rpc/runtime/pom.xml
@@ -17,20 +17,23 @@
limitations under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-attachments-parent</artifactId>
+ <artifactId>camel-quarkus-avro-rpc-parent</artifactId>
<version>1.1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
- <artifactId>camel-quarkus-attachments</artifactId>
- <name>Camel Quarkus :: Attachments :: Runtime</name>
+ <artifactId>camel-quarkus-avro-rpc</artifactId>
+ <name>Camel Quarkus :: Avro RPC :: Runtime</name>
+ <description>Working with Apache Avro for data serialization.</description>
<properties>
- <firstVersion>0.3.0</firstVersion>
+ <firstVersion>1.0.0-M6</firstVersion>
</properties>
<dependencyManagement>
@@ -52,7 +55,7 @@
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
- <artifactId>camel-attachments</artifactId>
+ <artifactId>camel-avro-rpc</artifactId>
</dependency>
</dependencies>
diff --git a/extensions-jvm/avro-rpc/runtime/src/main/java/org/apache/camel/quarkus/component/avro/AvroRecorder.java b/extensions-jvm/avro-rpc/runtime/src/main/java/org/apache/camel/quarkus/component/avro/AvroRecorder.java
new file mode 100644
index 0000000..6fbb1b6
--- /dev/null
+++ b/extensions-jvm/avro-rpc/runtime/src/main/java/org/apache/camel/quarkus/component/avro/AvroRecorder.java
@@ -0,0 +1,14 @@
+package org.apache.camel.quarkus.component.avro;
+
+import io.quarkus.runtime.RuntimeValue;
+import io.quarkus.runtime.annotations.Recorder;
+import org.apache.camel.component.avro.AvroComponent;
+
+@Recorder
+public class AvroRecorder {
+
+ public RuntimeValue<?> createAvroComponent() {
+ return new RuntimeValue<>(new AvroComponent());
+ }
+
+}
diff --git a/extensions-jvm/avro-rpc/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/avro-rpc/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..def5c36
--- /dev/null
+++ b/extensions-jvm/avro-rpc/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,29 @@
+#
+# 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.
+#
+
+---
+name: "Avro RPC"
+description: "Working with Apache Avro for RPC."
+metadata:
+ unlisted: true
+ keywords:
+ - "messaging"
+ - "transformation"
+ guide: "https://camel.apache.org/components/latest/avro-rpc-component.html"
+ categories:
+ - "integration"
+ status: "preview"
diff --git a/extensions-jvm/avro/integration-test/src/main/java/org/apache/camel/quarkus/component/avro/it/AvroResource.java b/extensions-jvm/avro/integration-test/src/main/java/org/apache/camel/quarkus/component/avro/it/AvroResource.java
index 0ba3eb3..ec520f6 100644
--- a/extensions-jvm/avro/integration-test/src/main/java/org/apache/camel/quarkus/component/avro/it/AvroResource.java
+++ b/extensions-jvm/avro/integration-test/src/main/java/org/apache/camel/quarkus/component/avro/it/AvroResource.java
@@ -33,29 +33,16 @@ public class AvroResource {
private static final Logger LOG = Logger.getLogger(AvroResource.class);
- private static final String COMPONENT_AVRO = "avro";
private static final String DATAFORMAT_AVRO = "avro";
@Inject
CamelContext context;
- @Path("/load/component/avro")
- @GET
- @Produces(MediaType.TEXT_PLAIN)
- public Response loadComponentAvro() throws Exception {
- /* This is an autogenerated test */
- if (context.getComponent(COMPONENT_AVRO) != null) {
- return Response.ok().build();
- }
- LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_AVRO);
- return Response.status(500, COMPONENT_AVRO + " could not be loaded from the Camel context").build();
- }
-
@Path("/load/dataformat/avro")
@GET
@Produces(MediaType.TEXT_PLAIN)
public Response loadDataformatAvro() throws Exception {
/* This is an autogenerated test */
- if (context.getComponent(DATAFORMAT_AVRO) != null) {
+ if (context.resolveDataFormat(DATAFORMAT_AVRO) != null) {
return Response.ok().build();
}
LOG.warnf("Could not load [%s] from the Camel context", DATAFORMAT_AVRO);
diff --git a/extensions-jvm/avro/integration-test/src/test/java/org/apache/camel/quarkus/component/avro/it/AvroTest.java b/extensions-jvm/avro/integration-test/src/test/java/org/apache/camel/quarkus/component/avro/it/AvroTest.java
index 417bee2..78229a0 100644
--- a/extensions-jvm/avro/integration-test/src/test/java/org/apache/camel/quarkus/component/avro/it/AvroTest.java
+++ b/extensions-jvm/avro/integration-test/src/test/java/org/apache/camel/quarkus/component/avro/it/AvroTest.java
@@ -24,14 +24,6 @@ import org.junit.jupiter.api.Test;
class AvroTest {
@Test
- public void loadComponentAvro() {
- /* A simple autogenerated test */
- RestAssured.get("/avro/load/component/avro")
- .then()
- .statusCode(200);
- }
-
- @Test
public void loadDataformatAvro() {
/* A simple autogenerated test */
RestAssured.get("/avro/load/dataformat/avro")
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 640e14d..fddc738 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -35,6 +35,7 @@
<modules>
<!-- extensions a..z; do not remove this comment, it is important when sorting via mvn process-resources -Pformat -->
<module>avro</module>
+ <module>avro-rpc</module>
<module>aws2-cw</module>
<module>aws2-ddb</module>
<module>aws2-ec2</module>
diff --git a/extensions-support/debezium/runtime/pom.xml b/extensions-support/debezium/runtime/pom.xml
index cde95af..3682b66 100644
--- a/extensions-support/debezium/runtime/pom.xml
+++ b/extensions-support/debezium/runtime/pom.xml
@@ -64,6 +64,10 @@
</exclusion>
</exclusions>
</dependency>
+ <dependency>
+ <groupId>io.debezium</groupId>
+ <artifactId>debezium-api</artifactId>
+ </dependency>
</dependencies>
<build>
diff --git a/extensions/attachments/runtime/pom.xml b/extensions/attachments/runtime/pom.xml
index 8decf13..18dad3e 100644
--- a/extensions/attachments/runtime/pom.xml
+++ b/extensions/attachments/runtime/pom.xml
@@ -28,6 +28,7 @@
<artifactId>camel-quarkus-attachments</artifactId>
<name>Camel Quarkus :: Attachments :: Runtime</name>
+ <description>Support for attachments on Camel messages.</description>
<properties>
<firstVersion>0.3.0</firstVersion>
diff --git a/extensions/braintree/runtime/src/main/java/org/apache/camel/quarkus/component/braintree/graal/BraintreeRecorder.java b/extensions/braintree/runtime/src/main/java/org/apache/camel/quarkus/component/braintree/graal/BraintreeRecorder.java
index cb87a09..3647646 100644
--- a/extensions/braintree/runtime/src/main/java/org/apache/camel/quarkus/component/braintree/graal/BraintreeRecorder.java
+++ b/extensions/braintree/runtime/src/main/java/org/apache/camel/quarkus/component/braintree/graal/BraintreeRecorder.java
@@ -19,6 +19,7 @@ package org.apache.camel.quarkus.component.braintree.graal;
import io.quarkus.runtime.RuntimeValue;
import io.quarkus.runtime.annotations.Recorder;
import org.apache.camel.component.braintree.BraintreeComponent;
+import org.apache.camel.component.braintree.BraintreeConfiguration;
@Recorder
public class BraintreeRecorder {
@@ -30,7 +31,9 @@ public class BraintreeRecorder {
*/
public RuntimeValue<BraintreeComponent> configureBraintreeComponent() {
BraintreeComponent component = new BraintreeComponent();
- component.setLogHandlerEnabled(false);
+ BraintreeConfiguration configuration = new BraintreeConfiguration();
+ configuration.setLogHandlerEnabled(false);
+ component.setConfiguration(configuration);
return new RuntimeValue<>(component);
}
}
diff --git a/extensions/file/runtime/pom.xml b/extensions/file/runtime/pom.xml
index 197d38a..f5031b8 100644
--- a/extensions/file/runtime/pom.xml
+++ b/extensions/file/runtime/pom.xml
@@ -28,6 +28,7 @@
<artifactId>camel-quarkus-file</artifactId>
<name>Camel Quarkus :: File :: Runtime</name>
+ <description>The file component provides access to the file system.</description>
<properties>
<firstVersion>0.4.0</firstVersion>
diff --git a/extensions/http/runtime/pom.xml b/extensions/http/runtime/pom.xml
index e3f4400..3e66559 100644
--- a/extensions/http/runtime/pom.xml
+++ b/extensions/http/runtime/pom.xml
@@ -28,6 +28,7 @@
<artifactId>camel-quarkus-http</artifactId>
<name>Camel Quarkus :: HTTP :: Runtime</name>
+ <description>The http component provides support for the HTTP/HTTPS protocols.</description>
<properties>
<firstVersion>1.0.0-M3</firstVersion>
diff --git a/extensions/jackson/runtime/pom.xml b/extensions/jackson/runtime/pom.xml
index c9c6f6b..d91b059 100644
--- a/extensions/jackson/runtime/pom.xml
+++ b/extensions/jackson/runtime/pom.xml
@@ -27,6 +27,7 @@
<artifactId>camel-quarkus-jackson</artifactId>
<name>Camel Quarkus :: Jackson :: Runtime</name>
+ <description>Provides support for the Jackson dataformat.</description>
<properties>
<firstVersion>0.3.0</firstVersion>
diff --git a/extensions/jaxb/runtime/pom.xml b/extensions/jaxb/runtime/pom.xml
index 9a74934..158b29f 100644
--- a/extensions/jaxb/runtime/pom.xml
+++ b/extensions/jaxb/runtime/pom.xml
@@ -28,6 +28,7 @@
<artifactId>camel-quarkus-jaxb</artifactId>
<name>Camel Quarkus :: JAXB extension :: Runtime</name>
+ <description>The jaxb extensions provides JAXB support for Camel.</description>
<properties>
<firstVersion>1.0.0-M5</firstVersion>
diff --git a/extensions/pom.xml b/extensions/pom.xml
index 7fe8c7f..13333ac 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -98,7 +98,8 @@
<module>mail</module>
<module>microprofile-health</module>
<module>microprofile-metrics</module>
- <module>mongodb</module>
+<!-- Disable MongoDB until quarkus uses mongbd 4.x -->
+<!-- <module>mongodb</module>-->
<module>mustache</module>
<module>netty</module>
<module>netty-http</module>
diff --git a/extensions/qute/component/src/generated/java/org/apache/camel/component/qute/QuteComponentConfigurer.java b/extensions/qute/component/src/generated/java/org/apache/camel/component/qute/QuteComponentConfigurer.java
index 37d5e07..0e903b1 100644
--- a/extensions/qute/component/src/generated/java/org/apache/camel/component/qute/QuteComponentConfigurer.java
+++ b/extensions/qute/component/src/generated/java/org/apache/camel/component/qute/QuteComponentConfigurer.java
@@ -1,29 +1,55 @@
/* Generated by camel build tools - do NOT edit this file! */
package org.apache.camel.component.qute;
+import java.util.Map;
+
import org.apache.camel.CamelContext;
import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.util.CaseInsensitiveMap;
import org.apache.camel.support.component.PropertyConfigurerSupport;
/**
* Generated by camel build tools - do NOT edit this file!
*/
@SuppressWarnings("unchecked")
-public class QuteComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
+public class QuteComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
@Override
public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
QuteComponent target = (QuteComponent) obj;
switch (ignoreCase ? name.toLowerCase() : name) {
- case "lazystartproducer":
- case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
case "basicpropertybinding":
case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+ case "lazystartproducer":
+ case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
case "quteengine":
case "quteEngine": target.setQuteEngine(property(camelContext, io.quarkus.qute.Engine.class, value)); return true;
default: return false;
}
}
+ @Override
+ public Map<String, Object> getAllOptions(Object target) {
+ Map<String, Object> answer = new CaseInsensitiveMap();
+ answer.put("basicPropertyBinding", boolean.class);
+ answer.put("lazyStartProducer", boolean.class);
+ answer.put("quteEngine", io.quarkus.qute.Engine.class);
+ return answer;
+ }
+
+ @Override
+ public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+ QuteComponent target = (QuteComponent) obj;
+ switch (ignoreCase ? name.toLowerCase() : name) {
+ case "basicpropertybinding":
+ case "basicPropertyBinding": return target.isBasicPropertyBinding();
+ case "lazystartproducer":
+ case "lazyStartProducer": return target.isLazyStartProducer();
+ case "quteengine":
+ case "quteEngine": return target.getQuteEngine();
+ default: return null;
+ }
+ }
}
diff --git a/extensions/qute/component/src/generated/java/org/apache/camel/component/qute/QuteEndpointConfigurer.java b/extensions/qute/component/src/generated/java/org/apache/camel/component/qute/QuteEndpointConfigurer.java
index 86093a9..059e63e 100644
--- a/extensions/qute/component/src/generated/java/org/apache/camel/component/qute/QuteEndpointConfigurer.java
+++ b/extensions/qute/component/src/generated/java/org/apache/camel/component/qute/QuteEndpointConfigurer.java
@@ -1,31 +1,61 @@
/* Generated by camel build tools - do NOT edit this file! */
package org.apache.camel.component.qute;
+import java.util.Map;
+
import org.apache.camel.CamelContext;
import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.util.CaseInsensitiveMap;
import org.apache.camel.support.component.PropertyConfigurerSupport;
/**
* Generated by camel build tools - do NOT edit this file!
*/
@SuppressWarnings("unchecked")
-public class QuteEndpointConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
+public class QuteEndpointConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
@Override
public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
QuteEndpoint target = (QuteEndpoint) obj;
switch (ignoreCase ? name.toLowerCase() : name) {
+ case "basicpropertybinding":
+ case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
case "contentcache":
case "contentCache": target.setContentCache(property(camelContext, boolean.class, value)); return true;
case "encoding": target.setEncoding(property(camelContext, java.lang.String.class, value)); return true;
case "lazystartproducer":
case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
- case "basicpropertybinding":
- case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
case "synchronous": target.setSynchronous(property(camelContext, boolean.class, value)); return true;
default: return false;
}
}
+ @Override
+ public Map<String, Object> getAllOptions(Object target) {
+ Map<String, Object> answer = new CaseInsensitiveMap();
+ answer.put("basicPropertyBinding", boolean.class);
+ answer.put("contentCache", boolean.class);
+ answer.put("encoding", java.lang.String.class);
+ answer.put("lazyStartProducer", boolean.class);
+ answer.put("synchronous", boolean.class);
+ return answer;
+ }
+
+ @Override
+ public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+ QuteEndpoint target = (QuteEndpoint) obj;
+ switch (ignoreCase ? name.toLowerCase() : name) {
+ case "basicpropertybinding":
+ case "basicPropertyBinding": return target.isBasicPropertyBinding();
+ case "contentcache":
+ case "contentCache": return target.isContentCache();
+ case "encoding": return target.getEncoding();
+ case "lazystartproducer":
+ case "lazyStartProducer": return target.isLazyStartProducer();
+ case "synchronous": return target.isSynchronous();
+ default: return null;
+ }
+ }
}
diff --git a/extensions/qute/component/src/generated/resources/org/apache/camel/component/qute/qute.json b/extensions/qute/component/src/generated/resources/org/apache/camel/component/qute/qute.json
index c50c6d4..486d247 100644
--- a/extensions/qute/component/src/generated/resources/org/apache/camel/component/qute/qute.json
+++ b/extensions/qute/component/src/generated/resources/org/apache/camel/component/qute/qute.json
@@ -1,6 +1,7 @@
{
"component": {
"kind": "component",
+ "name": "qute",
"scheme": "qute",
"extendsScheme": "",
"syntax": "qute:resourceUri",
diff --git a/extensions/reactive-streams/runtime/src/main/java/org/apache/camel/quarkus/component/reactive/streams/ReactiveStreamsRecorder.java b/extensions/reactive-streams/runtime/src/main/java/org/apache/camel/quarkus/component/reactive/streams/ReactiveStreamsRecorder.java
index 2e731d3..9b2b597 100644
--- a/extensions/reactive-streams/runtime/src/main/java/org/apache/camel/quarkus/component/reactive/streams/ReactiveStreamsRecorder.java
+++ b/extensions/reactive-streams/runtime/src/main/java/org/apache/camel/quarkus/component/reactive/streams/ReactiveStreamsRecorder.java
@@ -25,6 +25,7 @@ import org.apache.camel.component.reactive.streams.ReactiveStreamsComponent;
import org.apache.camel.component.reactive.streams.api.CamelReactiveStreamsService;
import org.apache.camel.component.reactive.streams.api.CamelReactiveStreamsServiceFactory;
import org.apache.camel.component.reactive.streams.engine.DefaultCamelReactiveStreamsServiceFactory;
+import org.apache.camel.component.reactive.streams.engine.ReactiveStreamsEngineConfiguration;
import org.apache.camel.support.service.ServiceHelper;
@Recorder
@@ -63,10 +64,17 @@ public class ReactiveStreamsRecorder {
@Override
public CamelReactiveStreamsService getReactiveStreamsService() {
synchronized (this.lock) {
+ if (getReactiveStreamsEngineConfiguration() == null) {
+ ReactiveStreamsEngineConfiguration reactiveStreamsEngineConfiguration = new ReactiveStreamsEngineConfiguration();
+ reactiveStreamsEngineConfiguration.setThreadPoolMaxSize(getThreadPoolMaxSize());
+ reactiveStreamsEngineConfiguration.setThreadPoolMinSize(getThreadPoolMinSize());
+ reactiveStreamsEngineConfiguration.setThreadPoolName(getThreadPoolName());
+ setReactiveStreamsEngineConfiguration(reactiveStreamsEngineConfiguration);
+ }
if (reactiveStreamService == null) {
this.reactiveStreamService = reactiveStreamServiceFactory.newInstance(
getCamelContext(),
- getInternalEngineConfiguration());
+ getReactiveStreamsEngineConfiguration());
try {
// Start the service and add it to the Camel context to expose managed attributes
diff --git a/extensions/rest/runtime/src/main/java/org/apache/camel/quarkus/component/rest/QuarkusRestComponent.java b/extensions/rest/runtime/src/main/java/org/apache/camel/quarkus/component/rest/QuarkusRestComponent.java
index 13925b9..86c3316 100644
--- a/extensions/rest/runtime/src/main/java/org/apache/camel/quarkus/component/rest/QuarkusRestComponent.java
+++ b/extensions/rest/runtime/src/main/java/org/apache/camel/quarkus/component/rest/QuarkusRestComponent.java
@@ -42,8 +42,7 @@ public class QuarkusRestComponent extends RestComponent {
RestConfiguration config = new RestConfiguration();
mergeConfigurations(getCamelContext(), config, findGlobalRestConfiguration());
- mergeConfigurations(getCamelContext(), config, getCamelContext().getRestConfiguration(cname, false));
- mergeConfigurations(getCamelContext(), config, getCamelContext().getRestConfiguration(pname, false));
+ mergeConfigurations(getCamelContext(), config, getCamelContext().getRestConfiguration());
// if no explicit host was given, then fallback and use default configured host
String h = getAndRemoveOrResolveReferenceParameter(parameters, "host", String.class, getHost());
diff --git a/extensions/rest/runtime/src/main/java/org/apache/camel/quarkus/component/rest/QuarkusRestEndpoint.java b/extensions/rest/runtime/src/main/java/org/apache/camel/quarkus/component/rest/QuarkusRestEndpoint.java
index 6c1281c..94f5aa0 100644
--- a/extensions/rest/runtime/src/main/java/org/apache/camel/quarkus/component/rest/QuarkusRestEndpoint.java
+++ b/extensions/rest/runtime/src/main/java/org/apache/camel/quarkus/component/rest/QuarkusRestEndpoint.java
@@ -29,6 +29,7 @@ import org.apache.camel.component.rest.RestEndpoint;
import org.apache.camel.spi.FactoryFinder;
import org.apache.camel.spi.RestConfiguration;
import org.apache.camel.spi.RestProducerFactory;
+import org.apache.camel.support.CamelContextHelper;
import org.apache.camel.util.ObjectHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -172,13 +173,7 @@ public class QuarkusRestEndpoint extends RestEndpoint {
if (factory != null) {
LOG.debug("Using RestProducerFactory: {}", factory);
- RestConfiguration config = getCamelContext().getRestConfiguration(pname, false);
- if (config == null) {
- config = getCamelContext().getRestConfiguration();
- }
- if (config == null) {
- config = getCamelContext().getRestConfiguration(pname, true);
- }
+ RestConfiguration config = CamelContextHelper.getRestConfiguration(getCamelContext(), pname);
Producer producer;
if (apiDocFactory != null) {
diff --git a/extensions/servlet/runtime/pom.xml b/extensions/servlet/runtime/pom.xml
index 1566ec5..d470ac2 100644
--- a/extensions/servlet/runtime/pom.xml
+++ b/extensions/servlet/runtime/pom.xml
@@ -27,6 +27,7 @@
<artifactId>camel-quarkus-servlet</artifactId>
<name>Camel Quarkus :: Servlet :: Runtime</name>
+ <description>Camel servlet transport support.</description>
<properties>
<firstVersion>0.2.0</firstVersion>
diff --git a/integration-tests/braintree/src/main/resources/application.properties b/integration-tests/braintree/src/main/resources/application.properties
index 41539a4..0f2c1c2 100644
--- a/integration-tests/braintree/src/main/resources/application.properties
+++ b/integration-tests/braintree/src/main/resources/application.properties
@@ -15,7 +15,6 @@
## limitations under the License.
## ---------------------------------------------------------------------------
-camel.component.braintree.configuration = #class:org.apache.camel.component.braintree.BraintreeConfiguration
camel.component.braintree.configuration.environment=SANDBOX
camel.component.braintree.configuration.merchantId={{env:BRAINTREE_MERCHANT_ID}}
camel.component.braintree.configuration.publicKey={{env:BRAINTREE_PUBLIC_KEY}}
diff --git a/integration-tests/core-main-xml-io/src/main/resources/routes/my-routes.xml b/integration-tests/core-main-xml-io/src/main/resources/routes/my-routes.xml
index 482befb..e491c29 100644
--- a/integration-tests/core-main-xml-io/src/main/resources/routes/my-routes.xml
+++ b/integration-tests/core-main-xml-io/src/main/resources/routes/my-routes.xml
@@ -24,7 +24,7 @@
http://camel.apache.org/schema/spring/camel-spring.xsd">
<route id="my-xml-route">
- <from uri="timer:from-xml?period=3s"/>
+ <from uri="timer:from-xml?period=3000"/>
<setBody>
<constant>Hello World!!!</constant>
</setBody>
diff --git a/integration-tests/core-main-xml-jaxb/src/main/resources/routes/my-routes.xml b/integration-tests/core-main-xml-jaxb/src/main/resources/routes/my-routes.xml
index 482befb..e491c29 100644
--- a/integration-tests/core-main-xml-jaxb/src/main/resources/routes/my-routes.xml
+++ b/integration-tests/core-main-xml-jaxb/src/main/resources/routes/my-routes.xml
@@ -24,7 +24,7 @@
http://camel.apache.org/schema/spring/camel-spring.xsd">
<route id="my-xml-route">
- <from uri="timer:from-xml?period=3s"/>
+ <from uri="timer:from-xml?period=3000"/>
<setBody>
<constant>Hello World!!!</constant>
</setBody>
diff --git a/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileTest.java b/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileTest.java
index ace21af..3546687 100644
--- a/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileTest.java
+++ b/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileTest.java
@@ -61,7 +61,7 @@ class FileTest {
@Test
public void fileWatchCreateUpdate() throws IOException, InterruptedException {
- final Path dir = Files.createTempDirectory(FileTest.class.getSimpleName()).toAbsolutePath().normalize();
+ final Path dir = Files.createTempDirectory(FileTest.class.getSimpleName()).toRealPath();
RestAssured.given()
.queryParam("path", dir.toString())
.get("/file-watch/get-events")
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index b8c962d..156b46b 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -91,7 +91,8 @@
<module>mail</module>
<module>messaging</module>
<module>microprofile</module>
- <module>mongodb</module>
+<!-- Disable MongoDB until quarkus uses mongbd 4.x -->
+<!-- <module>mongodb</module>-->
<module>mustache</module>
<module>netty</module>
<module>olingo4</module>
diff --git a/pom.xml b/pom.xml
index 35c243f..828843e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -45,7 +45,7 @@
<awssdk1.version>1.11.714</awssdk1.version>
<awssdk1-swf-libs.version>1.11.22</awssdk1-swf-libs.version>
<awssdk2.version>2.10.67</awssdk2.version>
- <camel.version>3.1.0</camel.version>
+ <camel.version>3.2.0</camel.version>
<freemarker.version>2.3.30</freemarker.version>
<google-http-client.version>1.22.0</google-http-client.version>
<guava.version>26.0-jre</guava.version>
@@ -65,7 +65,8 @@
<retrofit.version>2.5.0</retrofit.version>
<!-- Keep spring.version aligned with the version used by Camel -->
<spring.version>5.2.3.RELEASE</spring.version>
- <snakeyaml.version>1.25</snakeyaml.version>
+ <!-- TODO: not aligned with quarkus, needed to get snakeyaml dataformat to work -->
+ <snakeyaml.version>1.26</snakeyaml.version>
<xalan.version>2.7.2</xalan.version>
<xerces.version>2.12.0</xerces.version>
<xstream.version>1.4.11</xstream.version>
@@ -91,6 +92,8 @@
<build-helper-maven-plugin.version>3.0.0</build-helper-maven-plugin.version>
<exec-maven-plugin.version>1.6.0</exec-maven-plugin.version>
+ <google-auth-library-credentials.version>0.19.0</google-auth-library-credentials.version>
+ <google-auth-library-oauth2-http.version>0.19.0</google-auth-library-oauth2-http.version>
<groovy-maven-plugin.version>2.1.1</groovy-maven-plugin.version>
<groovy.version>3.0.2</groovy.version>
<jandex-maven-plugin.version>1.0.7</jandex-maven-plugin.version>
@@ -108,6 +111,8 @@
<!-- NOTE: We pin to this version due to https://github.com/apache/camel-quarkus/issues/723 -->
<maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>
<cq-plugin.version>0.2.0</cq-plugin.version>
+ <protobuf-java.version>3.11.0</protobuf-java.version>
+ <proto-google-common-protos.version>1.17.0</proto-google-common-protos.version>
<rpkgtests-maven-plugin.version>0.6.0</rpkgtests-maven-plugin.version>
<!-- maven-release-plugin -->
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index b1bc1ee..0e65b85 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -134,6 +134,11 @@
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
+ <artifactId>camel-avro-rpc</artifactId>
+ <version>${camel.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
<artifactId>camel-aws-ec2</artifactId>
<version>${camel.version}</version>
</dependency>
@@ -324,6 +329,11 @@
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
+ <artifactId>camel-componentdsl</artifactId>
+ <version>${camel.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
<artifactId>camel-consul</artifactId>
<version>${camel.version}</version>
</dependency>
@@ -349,6 +359,11 @@
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
+ <artifactId>camel-core-languages</artifactId>
+ <version>${camel.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
<artifactId>camel-couchbase</artifactId>
<version>${camel.version}</version>
</dependency>
@@ -1054,6 +1069,11 @@
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-avro-rpc</artifactId>
+ <version>${camel-quarkus.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-aws-commons</artifactId>
<version>${camel-quarkus.version}</version>
</dependency>
@@ -1891,6 +1911,21 @@
<version>${jackson.version}</version>
</dependency>
<dependency>
+ <groupId>com.google.api.grpc</groupId>
+ <artifactId>proto-google-common-protos</artifactId>
+ <version>${proto-google-common-protos.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.auth</groupId>
+ <artifactId>google-auth-library-credentials</artifactId>
+ <version>${google-auth-library-credentials.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.auth</groupId>
+ <artifactId>google-auth-library-oauth2-http</artifactId>
+ <version>${google-auth-library-oauth2-http.version}</version>
+ </dependency>
+ <dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>${gson.version}</version>
@@ -1912,6 +1947,11 @@
</exclusions>
</dependency>
<dependency>
+ <groupId>com.google.protobuf</groupId>
+ <artifactId>protobuf-java</artifactId>
+ <version>${protobuf-java.version}</version>
+ </dependency>
+ <dependency>
<groupId>com.orbitz.consul</groupId>
<artifactId>consul-client</artifactId>
<version>${consul-client.version}</version>
@@ -1943,6 +1983,16 @@
<version>${xstream.version}</version>
</dependency>
<dependency>
+ <groupId>io.debezium</groupId>
+ <artifactId>debezium-api</artifactId>
+ <version>1.1.0.Final</version>
+ </dependency>
+ <dependency>
+ <groupId>io.fabric8</groupId>
+ <artifactId>kubernetes-client</artifactId>
+ <version>4.9.0</version>
+ </dependency>
+ <dependency>
<groupId>javax.xml.ws</groupId>
<artifactId>jaxws-api</artifactId>
<version>${java.xml.ws.version}</version>
@@ -1964,6 +2014,11 @@
<version>${ahc.version}</version>
</dependency>
<dependency>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>animal-sniffer-annotations</artifactId>
+ <version>1.18</version>
+ </dependency>
+ <dependency>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>stax2-api</artifactId>
<version>${stax2.version}</version>
@@ -2020,6 +2075,16 @@
<version>${snakeyaml.version}</version>
</dependency>
<dependency>
+ <groupId>org.threeten</groupId>
+ <artifactId>threetenbp</artifactId>
+ <version>1.4.0</version>
+ </dependency>
+ <dependency>
+ <groupId>software.amazon.awssdk</groupId>
+ <artifactId>annotations</artifactId>
+ <version>${awssdk2.version}</version><!-- override the version set in the quarkus BOM -->
+ </dependency>
+ <dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>apache-client</artifactId>
<version>${awssdk2.version}</version><!-- override the version set in the quarkus BOM -->
@@ -2031,6 +2096,11 @@
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
+ <artifactId>http-client-spi</artifactId>
+ <version>${awssdk2.version}</version><!-- override the version set in the quarkus BOM -->
+ </dependency>
+ <dependency>
+ <groupId>software.amazon.awssdk</groupId>
<artifactId>netty-nio-client</artifactId>
<version>${awssdk2.version}</version><!-- override the version set in the quarkus BOM -->
</dependency>
@@ -2040,6 +2110,11 @@
<version>${awssdk2.version}</version><!-- override the version set in the quarkus BOM -->
</dependency>
<dependency>
+ <groupId>software.amazon.awssdk</groupId>
+ <artifactId>utils</artifactId>
+ <version>${awssdk2.version}</version><!-- override the version set in the quarkus BOM -->
+ </dependency>
+ <dependency>
<groupId>xalan</groupId>
<artifactId>xalan</artifactId>
<version>${xalan.version}</version>
diff --git a/tooling/package-maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqCatalog.java b/tooling/package-maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqCatalog.java
index 3fdbf73..c4d4099 100644
--- a/tooling/package-maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqCatalog.java
+++ b/tooling/package-maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqCatalog.java
@@ -20,9 +20,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Optional;
+import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -56,7 +54,7 @@ public class CqCatalog {
this.catalog = new DefaultCamelCatalog(true);
}
- public String toCamelArtifactIdBase(String cqArtifactIdBase) {
+ public String toCamelComponentArtifactIdBase(String cqArtifactIdBase) {
if ("core".equals(cqArtifactIdBase)) {
return "base";
} else if ("reactive-executor".equals(cqArtifactIdBase)) {
@@ -66,12 +64,21 @@ public class CqCatalog {
}
}
+ public List<String> toCamelArtifactIdBase(String cqArtifactIdBase) {
+ if ("core".equals(cqArtifactIdBase)) {
+ return Arrays.asList("camel-base", "camel-core-languages");
+ } else if ("reactive-executor".equals(cqArtifactIdBase)) {
+ return Collections.singletonList("camel-reactive-executor-vertx");
+ } else {
+ return Collections.singletonList("camel-" + cqArtifactIdBase);
+ }
+ }
+
public List<WrappedModel> filterModels(String artifactIdBase) {
- artifactIdBase = toCamelArtifactIdBase(artifactIdBase);
- final String camelArtifactId = "camel-" + artifactIdBase;
+ List<String> camelArtifactIds = toCamelArtifactIdBase(artifactIdBase);
return Stream.of(Kind.values())
.flatMap(kind -> kind.all(this))
- .filter(wrappedModel -> wrappedModel.getArtifactId().equals(camelArtifactId))
+ .filter(wrappedModel -> camelArtifactIds.contains(wrappedModel.getArtifactId()))
.collect(Collectors.toList());
}
diff --git a/tooling/package-maven-plugin/src/main/java/org/apache/camel/quarkus/maven/PrepareCatalogQuarkusMojo.java b/tooling/package-maven-plugin/src/main/java/org/apache/camel/quarkus/maven/PrepareCatalogQuarkusMojo.java
index 3fe41dd..00a8782 100644
--- a/tooling/package-maven-plugin/src/main/java/org/apache/camel/quarkus/maven/PrepareCatalogQuarkusMojo.java
+++ b/tooling/package-maven-plugin/src/main/java/org/apache/camel/quarkus/maven/PrepareCatalogQuarkusMojo.java
@@ -217,7 +217,7 @@ public class PrepareCatalogQuarkusMojo extends AbstractMojo {
("compile".equals(dep.getScope()) || dep.getScope() == null))
.findFirst();
if (artifact.isPresent()) {
- camelComponentArtifactId = catalog.toCamelArtifactIdBase(artifact.get().getArtifactId());
+ camelComponentArtifactId = catalog.toCamelComponentArtifactIdBase(artifact.get().getArtifactId());
}
}
final Properties props = runtimePom.getProperties() != null ? runtimePom.getProperties() : new Properties();