You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2020/08/21 12:38:28 UTC
[camel-quarkus] 01/08: Upgrade to Camel 3.5.0-SNAPSHOT
This is an automated email from the ASF dual-hosted git repository.
jamesnetherton pushed a commit to branch camel-master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit fe6ef98ca5102e548965183829e750166119eb2e
Author: James Netherton <ja...@gmail.com>
AuthorDate: Thu Jun 18 16:30:49 2020 +0100
Upgrade to Camel 3.5.0-SNAPSHOT
---
docs/modules/ROOT/pages/reference/components.adoc | 14 ++--
.../ROOT/pages/reference/extensions/aws-s3.adoc | 2 +-
.../ROOT/pages/reference/extensions/aws2-s3.adoc | 2 +-
.../ROOT/pages/reference/extensions/azure.adoc | 4 +-
.../pages/reference/extensions/cassandraql.adoc | 2 +-
docs/modules/ROOT/pages/reference/index.adoc | 8 +-
.../org/apache/camel/quarkus/core/BaseModel.java | 98 ++++++++++++++++++++++
.../core/DisabledXMLRoutesDefinitionLoader.java | 5 ++
.../camel/quarkus/core/FastCamelContext.java | 45 ++++++++++
.../quarkus/main/CamelMainRoutesCollector.java | 26 ++++++
extensions-jvm/cassandraql/runtime/pom.xml | 16 ++++
.../main/resources/META-INF/quarkus-extension.yaml | 2 +-
.../deployment/DebeziumSupportProcessor.java | 14 +++-
.../main/resources/META-INF/quarkus-extension.yaml | 2 +-
.../main/resources/META-INF/quarkus-extension.yaml | 2 +-
.../main/resources/META-INF/quarkus-extension.yaml | 1 +
.../runtime/support/CustomRoutesCollector.java | 7 ++
pom.xml | 11 +--
poms/bom/pom.xml | 10 +++
19 files changed, 244 insertions(+), 27 deletions(-)
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index 41dc24c..3617205 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -59,7 +59,7 @@ Stable | 1.0.0 | Manage AWS MSK instances using AWS SDK version 2.x.
Stable | 1.0.0 | Manage AWS MQ instances using AWS SDK version 2.x.
| xref:reference/extensions/aws2-s3.adoc[AWS 2 S3 Storage Service] | [.camel-element-artifact]##camel-quarkus-aws2-s3## | [.camel-element-Native]##Native## +
-Stable | 1.0.0 | Store and retrie objects from AWS S3 Storage Service using AWS SDK version 2.x.
+Stable | 1.0.0 | Store and retrieve objects from AWS S3 Storage Service using AWS SDK version 2.x.
| xref:reference/extensions/aws2-ses.adoc[AWS 2 Simple Email Service (SES)] | [.camel-element-artifact]##camel-quarkus-aws2-ses## | [.camel-element-Native]##Native## +
Stable | 1.0.0 | Send e-mails through AWS SES service using AWS SDK version 2.x.
@@ -98,7 +98,7 @@ Stable | 1.0.0 | Consume data from AWS Kinesis Firehose streams.
Stable | 1.0.0 | Manage and invoke AWS Lambda functions.
| xref:reference/extensions/aws-s3.adoc[AWS S3 Storage Service] | [.camel-element-artifact]##camel-quarkus-aws-s3## | [.camel-element-Native]##Native## +
-Stable | 0.2.0 | Store and retrie objects from AWS S3 Storage Service.
+Stable | 0.2.0 | Store and retrieve objects from AWS S3 Storage Service.
| xref:reference/extensions/aws-sns.adoc[AWS Simple Notification System (SNS)] | [.camel-element-artifact]##camel-quarkus-aws-sns## | [.camel-element-Native]##Native## +
Stable | 0.2.0 | Send messages to an AWS Simple Notification Topic.
@@ -115,11 +115,11 @@ Stable | 1.0.0 | Store and Retrieve data from/to AWS SDB service.
| xref:reference/extensions/aws-translate.adoc[AWS Translate] | [.camel-element-artifact]##camel-quarkus-aws-translate## | [.camel-element-Native]##Native## +
Stable | 1.0.0 | Translate texts using AWS Translate.
-| xref:reference/extensions/azure.adoc[Azure Storage Blob Service (Legacy)] | [.camel-element-artifact]##camel-quarkus-azure## | [.camel-element-Native]##Native## +
-Stable | 1.0.0 | Store and retrieve blobs from Azure Storage Blob Service.
+| xref:reference/extensions/azure.adoc[Azure Storage Blob Service (Deprecated)] | [.camel-element-artifact]##camel-quarkus-azure## | [.camel-element-Native]##Native## +
+Stable | 1.0.0 | [.camel-element-deprecated]*deprecated* Store and retrieve blobs from Azure Storage Blob Service.
-| xref:reference/extensions/azure.adoc[Azure Storage Queue Service (Legacy)] | [.camel-element-artifact]##camel-quarkus-azure## | [.camel-element-Native]##Native## +
-Stable | 1.0.0 | Store and retrieve messages from Azure Storage Queue Service.
+| xref:reference/extensions/azure.adoc[Azure Storage Queue Service (Deprecated)] | [.camel-element-artifact]##camel-quarkus-azure## | [.camel-element-Native]##Native## +
+Stable | 1.0.0 | [.camel-element-deprecated]*deprecated* Store and retrieve messages from Azure Storage Queue Service.
| xref:reference/extensions/bean.adoc[Bean] | [.camel-element-artifact]##camel-quarkus-bean## | [.camel-element-Native]##Native## +
Stable | 0.2.0 | Invoke methods of Java beans stored in Camel registry.
@@ -134,7 +134,7 @@ Stable | 1.0.0 | Upload, download and manage files, folders, groups, collaborati
Stable | 1.2.0 | Process payments using Braintree Payments.
| xref:reference/extensions/cassandraql.adoc[Cassandra CQL] | [.camel-element-artifact]##camel-quarkus-cassandraql## | [.camel-element-JVM]##JVM## +
-Preview | 1.0.0 | Integrate with Cassandra 2.0 using the CQL3 API (not the Thrift API).
+Preview | 1.0.0 | Integrate with Cassandra 2.0 using the CQL3 API (not the Thrift API). Based on Cassandra Java Driver provided by DataStax.
| xref:reference/extensions/bean.adoc[Class] | [.camel-element-artifact]##camel-quarkus-bean## | [.camel-element-Native]##Native## +
Stable | 0.2.0 | Invoke methods of Java beans specified by class name.
diff --git a/docs/modules/ROOT/pages/reference/extensions/aws-s3.adoc b/docs/modules/ROOT/pages/reference/extensions/aws-s3.adoc
index 70e597c..1c65c20 100644
--- a/docs/modules/ROOT/pages/reference/extensions/aws-s3.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/aws-s3.adoc
@@ -8,7 +8,7 @@
[.badges]
[.badge-key]##Since Camel Quarkus##[.badge-version]##0.2.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-supported]##supported##
-Store and retrie objects from AWS S3 Storage Service.
+Store and retrieve objects from AWS S3 Storage Service.
== What's inside
diff --git a/docs/modules/ROOT/pages/reference/extensions/aws2-s3.adoc b/docs/modules/ROOT/pages/reference/extensions/aws2-s3.adoc
index ee5d5bb..596ae49 100644
--- a/docs/modules/ROOT/pages/reference/extensions/aws2-s3.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/aws2-s3.adoc
@@ -8,7 +8,7 @@
[.badges]
[.badge-key]##Since Camel Quarkus##[.badge-version]##1.0.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-supported]##supported##
-Store and retrie objects from AWS S3 Storage Service using AWS SDK version 2.x.
+Store and retrieve objects from AWS S3 Storage Service using AWS SDK version 2.x.
== What's inside
diff --git a/docs/modules/ROOT/pages/reference/extensions/azure.adoc b/docs/modules/ROOT/pages/reference/extensions/azure.adoc
index 6a86f80..fff8dd7 100644
--- a/docs/modules/ROOT/pages/reference/extensions/azure.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/azure.adoc
@@ -12,8 +12,8 @@ Store and retrieve blobs from Azure Storage Blob Service or store and retrieve m
== What's inside
-* https://camel.apache.org/components/latest/azure-blob-component.html[Azure Storage Blob Service (Legacy) component], URI syntax: `azure-blob:containerOrBlobUri`
-* https://camel.apache.org/components/latest/azure-queue-component.html[Azure Storage Queue Service (Legacy) component], URI syntax: `azure-queue:containerAndQueueUri`
+* https://camel.apache.org/components/latest/azure-blob-component.html[Azure Storage Blob Service (Deprecated) component], URI syntax: `azure-blob:containerOrBlobUri`
+* https://camel.apache.org/components/latest/azure-queue-component.html[Azure Storage Queue Service (Deprecated) component], URI syntax: `azure-queue:containerAndQueueUri`
Please refer to the above links for usage and configuration details.
diff --git a/docs/modules/ROOT/pages/reference/extensions/cassandraql.adoc b/docs/modules/ROOT/pages/reference/extensions/cassandraql.adoc
index ebc0f07..70508a1 100644
--- a/docs/modules/ROOT/pages/reference/extensions/cassandraql.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/cassandraql.adoc
@@ -8,7 +8,7 @@
[.badges]
[.badge-key]##Since Camel Quarkus##[.badge-version]##1.0.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-unsupported]##unsupported##
-Integrate with Cassandra 2.0 using the CQL3 API (not the Thrift API).
+Integrate with Cassandra 2.0 using the CQL3 API (not the Thrift API). Based on Cassandra Java Driver provided by DataStax.
== What's inside
diff --git a/docs/modules/ROOT/pages/reference/index.adoc b/docs/modules/ROOT/pages/reference/index.adoc
index eb7360f..1def995 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -75,7 +75,7 @@ Stable | 1.0.0 | Manage AWS MSK instances using AWS SDK version 2.x.
Stable | 1.0.0 | Manage AWS MQ instances using AWS SDK version 2.x.
| xref:reference/extensions/aws2-s3.adoc[AWS 2 S3 Storage Service] | camel-quarkus-aws2-s3 | [.camel-element-Native]##Native## +
-Stable | 1.0.0 | Store and retrie objects from AWS S3 Storage Service using AWS SDK version 2.x.
+Stable | 1.0.0 | Store and retrieve objects from AWS S3 Storage Service using AWS SDK version 2.x.
| xref:reference/extensions/aws2-ses.adoc[AWS 2 Simple Email Service (SES)] | camel-quarkus-aws2-ses | [.camel-element-Native]##Native## +
Stable | 1.0.0 | Send e-mails through AWS SES service using AWS SDK version 2.x.
@@ -111,7 +111,7 @@ Stable | 1.0.0 | Consume and produce records from AWS Kinesis Streams and AWS Ki
Stable | 1.0.0 | Manage and invoke AWS Lambda functions.
| xref:reference/extensions/aws-s3.adoc[AWS S3 Storage Service] | camel-quarkus-aws-s3 | [.camel-element-Native]##Native## +
-Stable | 0.2.0 | Store and retrie objects from AWS S3 Storage Service.
+Stable | 0.2.0 | Store and retrieve objects from AWS S3 Storage Service.
| xref:reference/extensions/aws-sns.adoc[AWS Simple Notification System (SNS)] | camel-quarkus-aws-sns | [.camel-element-Native]##Native## +
Stable | 0.2.0 | Send messages to an AWS Simple Notification Topic.
@@ -129,7 +129,7 @@ Stable | 1.0.0 | Store and Retrieve data from/to AWS SDB service.
Stable | 1.0.0 | Translate texts using AWS Translate.
| xref:reference/extensions/azure.adoc[Azure] | camel-quarkus-azure | [.camel-element-Native]##Native## +
-Stable | 1.0.0 | Store and retrieve blobs from Azure Storage Blob Service or store and retrieve messages from Azure Storage Queue Service
+Stable | 1.0.0 | [.camel-element-deprecated]*deprecated* Store and retrieve blobs from Azure Storage Blob Service or store and retrieve messages from Azure Storage Queue Service
| xref:reference/extensions/base64.adoc[Base64] | camel-quarkus-base64 | [.camel-element-Native]##Native## +
Stable | 1.0.0 | Encode and decode data using Base64.
@@ -153,7 +153,7 @@ Stable | 1.2.0 | Process payments using Braintree Payments.
Stable | 1.0.0 | An LRUCacheFactory implementation based on Caffeine
| xref:reference/extensions/cassandraql.adoc[Cassandra CQL] | camel-quarkus-cassandraql | [.camel-element-JVM]##JVM## +
-Preview | 1.0.0 | Integrate with Cassandra 2.0 using the CQL3 API (not the Thrift API).
+Preview | 1.0.0 | Integrate with Cassandra 2.0 using the CQL3 API (not the Thrift API). Based on Cassandra Java Driver provided by DataStax.
| xref:reference/extensions/core-cloud.adoc[Cloud] | camel-quarkus-core-cloud | [.camel-element-Native]##Native## +
Stable | 0.2.0 | The Camel Quarkus core cloud module
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 9bd3b06..58d93bc 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
@@ -27,12 +27,14 @@ import org.apache.camel.model.cloud.ServiceCallConfigurationDefinition;
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.util.CollectionStringBuffer;
public abstract class BaseModel implements Model {
private final CamelContext camelContext;
private final List<RouteDefinition> routeDefinitions = new ArrayList<>();
+ private final List<RouteTemplateDefinition> routeTemplateDefinitions = new ArrayList<>();
private final List<RestDefinition> restDefinitions = new ArrayList<>();
private Map<String, DataFormatDefinition> dataFormats = new HashMap<>();
private List<TransformerDefinition> transformers = new ArrayList<>();
@@ -42,6 +44,7 @@ public abstract class BaseModel implements Model {
private Map<String, Resilience4jConfigurationDefinition> resilience4jConfigurations = new ConcurrentHashMap<>();
private Map<String, FaultToleranceConfigurationDefinition> faultToleranceConfigurations = new ConcurrentHashMap<>();
private Function<RouteDefinition, Boolean> routeFilter;
+ private final List<ModelLifecycleStrategy> modelLifecycleStrategies = new ArrayList<>();
public BaseModel(CamelContext camelContext) {
this.camelContext = camelContext;
@@ -111,6 +114,91 @@ public abstract class BaseModel implements Model {
}
@Override
+ public List<RouteTemplateDefinition> getRouteTemplateDefinitions() {
+ return routeTemplateDefinitions;
+ }
+
+ @Override
+ public RouteTemplateDefinition getRouteTemplateDefinition(String id) {
+ for (RouteTemplateDefinition route : routeTemplateDefinitions) {
+ if (route.idOrCreate(camelContext.adapt(ExtendedCamelContext.class).getNodeIdFactory()).equals(id)) {
+ return route;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public void addRouteTemplateDefinitions(Collection<RouteTemplateDefinition> routeTemplateDefinitions) throws Exception {
+ if (routeTemplateDefinitions == null || routeTemplateDefinitions.isEmpty()) {
+ return;
+ }
+ this.routeTemplateDefinitions.addAll(routeTemplateDefinitions);
+ }
+
+ @Override
+ public void addRouteTemplateDefinition(RouteTemplateDefinition routeTemplateDefinition) throws Exception {
+ this.routeTemplateDefinitions.addAll(routeTemplateDefinitions);
+ }
+
+ @Override
+ public void removeRouteTemplateDefinitions(Collection<RouteTemplateDefinition> routeTemplateDefinitions) throws Exception {
+ routeTemplateDefinitions.removeAll(routeTemplateDefinitions);
+ }
+
+ @Override
+ public void removeRouteTemplateDefinition(RouteTemplateDefinition routeTemplateDefinition) throws Exception {
+ routeTemplateDefinitions.remove(routeTemplateDefinition);
+ }
+
+ @Override
+ public String addRouteFromTemplate(String routeId, String routeTemplateId, Map<String, Object> parameters)
+ throws Exception {
+ RouteTemplateDefinition target = null;
+ for (RouteTemplateDefinition def : routeTemplateDefinitions) {
+ if (routeTemplateId.equals(def.getId())) {
+ target = def;
+ break;
+ }
+ }
+ if (target == null) {
+ throw new IllegalArgumentException("Cannot find RouteTemplate with id " + routeTemplateId);
+ }
+
+ CollectionStringBuffer cbs = new CollectionStringBuffer();
+ final Map<String, Object> prop = new HashMap();
+ // include default values first from the template (and validate that we have inputs for all required parameters)
+ if (target.getTemplateParameters() != null) {
+ for (RouteTemplateParameterDefinition temp : target.getTemplateParameters()) {
+ if (temp.getDefaultValue() != null) {
+ prop.put(temp.getName(), temp.getDefaultValue());
+ } else {
+ // this is a required parameter do we have that as input
+ if (!parameters.containsKey(temp.getName())) {
+ cbs.append(temp.getName());
+ }
+ }
+ }
+ }
+ if (!cbs.isEmpty()) {
+ throw new IllegalArgumentException("Route template " + routeTemplateId
+ + " the following mandatory parameters must be provided: " + cbs.toString());
+ }
+ // then override with user parameters
+ if (parameters != null) {
+ prop.putAll(parameters);
+ }
+
+ RouteDefinition def = target.asRouteDefinition();
+ if (routeId != null) {
+ def.setId(routeId);
+ }
+ def.setTemplateParameters(prop);
+ addRouteDefinition(def);
+ return def.getId();
+ }
+
+ @Override
public synchronized List<RestDefinition> getRestDefinitions() {
return restDefinitions;
}
@@ -323,6 +411,16 @@ public abstract class BaseModel implements Model {
this.routeFilter = routeFilter;
}
+ @Override
+ public void addModelLifecycleStrategy(ModelLifecycleStrategy modelLifecycleStrategy) {
+ this.modelLifecycleStrategies.add(modelLifecycleStrategy);
+ }
+
+ @Override
+ public List<ModelLifecycleStrategy> getModelLifecycleStrategies() {
+ return modelLifecycleStrategies;
+ }
+
/**
* Should we start newly added routes?
*/
diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/DisabledXMLRoutesDefinitionLoader.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/DisabledXMLRoutesDefinitionLoader.java
index 904d50d..a50befb 100644
--- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/DisabledXMLRoutesDefinitionLoader.java
+++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/DisabledXMLRoutesDefinitionLoader.java
@@ -29,6 +29,11 @@ public class DisabledXMLRoutesDefinitionLoader implements XMLRoutesDefinitionLoa
}
@Override
+ public Object loadRouteTemplatesDefinition(CamelContext context, InputStream inputStream) throws Exception {
+ throw new UnsupportedOperationException("Please add a dependency to camel-quarkus-xml-io");
+ }
+
+ @Override
public Object loadRestsDefinition(CamelContext context, InputStream inputStream) throws Exception {
throw new UnsupportedOperationException("Please add a dependency to camel-quarkus-xml-io");
}
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 5066702..a41d181 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
@@ -87,6 +87,12 @@ public class FastCamelContext extends AbstractCamelContext implements CatalogCam
}
@Override
+ public String addRouteFromTemplate(String routeId, String routeTemplateId, Map<String, Object> parameters)
+ throws Exception {
+ return model.addRouteFromTemplate(routeId, routeTemplateId, parameters);
+ }
+
+ @Override
protected Registry createRegistry() {
throw new UnsupportedOperationException();
}
@@ -512,6 +518,36 @@ public class FastCamelContext extends AbstractCamelContext implements CatalogCam
}
@Override
+ public List<RouteTemplateDefinition> getRouteTemplateDefinitions() {
+ return model.getRouteTemplateDefinitions();
+ }
+
+ @Override
+ public RouteTemplateDefinition getRouteTemplateDefinition(String id) {
+ return model.getRouteTemplateDefinition(id);
+ }
+
+ @Override
+ public void addRouteTemplateDefinitions(Collection<RouteTemplateDefinition> routeTemplateDefinitions) throws Exception {
+ model.addRouteTemplateDefinitions(routeTemplateDefinitions);
+ }
+
+ @Override
+ public void addRouteTemplateDefinition(RouteTemplateDefinition routeTemplateDefinition) throws Exception {
+ model.addRouteTemplateDefinition(routeTemplateDefinition);
+ }
+
+ @Override
+ public void removeRouteTemplateDefinitions(Collection<RouteTemplateDefinition> routeTemplateDefinitions) throws Exception {
+ model.removeRouteTemplateDefinitions(routeTemplateDefinitions);
+ }
+
+ @Override
+ public void removeRouteTemplateDefinition(RouteTemplateDefinition routeTemplateDefinition) throws Exception {
+ model.removeRouteTemplateDefinition(routeTemplateDefinition);
+ }
+
+ @Override
public List<RestDefinition> getRestDefinitions() {
return model.getRestDefinitions();
}
@@ -736,4 +772,13 @@ public class FastCamelContext extends AbstractCamelContext implements CatalogCam
: new TransformerKey(new DataType(def.getFromType()), new DataType(def.getToType()));
}
+ @Override
+ public void addModelLifecycleStrategy(ModelLifecycleStrategy modelLifecycleStrategy) {
+ model.addModelLifecycleStrategy(modelLifecycleStrategy);
+ }
+
+ @Override
+ public List<ModelLifecycleStrategy> getModelLifecycleStrategies() {
+ return model.getModelLifecycleStrategies();
+ }
}
diff --git a/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRoutesCollector.java b/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRoutesCollector.java
index da9350b..9498cc1 100644
--- a/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRoutesCollector.java
+++ b/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRoutesCollector.java
@@ -26,6 +26,7 @@ import org.apache.camel.ExtendedCamelContext;
import org.apache.camel.RoutesBuilder;
import org.apache.camel.RuntimeCamelException;
import org.apache.camel.main.RoutesCollector;
+import org.apache.camel.model.RouteTemplatesDefinition;
import org.apache.camel.model.RoutesDefinition;
import org.apache.camel.model.rest.RestsDefinition;
import org.apache.camel.quarkus.core.RegistryRoutesLoader;
@@ -87,6 +88,31 @@ public class CamelMainRoutesCollector implements RoutesCollector {
}
@Override
+ public List<RouteTemplatesDefinition> collectXmlRouteTemplatesFromDirectory(CamelContext camelContext, String directory)
+ throws Exception {
+ List<RouteTemplatesDefinition> answer = new ArrayList<>();
+ PackageScanResourceResolver resolver = camelContext.adapt(ExtendedCamelContext.class).getPackageScanResourceResolver();
+
+ for (String part : directory.split(",")) {
+ LOGGER.info("Loading additional Camel XML route templates from: {}", part);
+ try {
+ for (InputStream is : resolver.findResources(part)) {
+ Object definition = xmlRoutesLoader.loadRouteTemplatesDefinition(camelContext, is);
+ if (definition instanceof RestsDefinition) {
+ answer.add((RouteTemplatesDefinition) definition);
+ }
+ }
+ } catch (FileNotFoundException e) {
+ LOGGER.debug("No XML route templates found in {}. Skipping XML route templates detection.", part);
+ } catch (Exception e) {
+ throw RuntimeCamelException.wrapRuntimeException(e);
+ }
+ }
+
+ return answer;
+ }
+
+ @Override
public List<RestsDefinition> collectXmlRestsFromDirectory(CamelContext camelContext, String directory) {
List<RestsDefinition> answer = new ArrayList<>();
PackageScanResourceResolver resolver = camelContext.adapt(ExtendedCamelContext.class).getPackageScanResourceResolver();
diff --git a/extensions-jvm/cassandraql/runtime/pom.xml b/extensions-jvm/cassandraql/runtime/pom.xml
index 04cff31..86d66ef 100644
--- a/extensions-jvm/cassandraql/runtime/pom.xml
+++ b/extensions-jvm/cassandraql/runtime/pom.xml
@@ -58,8 +58,24 @@
<groupId>org.ow2.asm</groupId>
<artifactId>asm-util</artifactId>
</exclusion>
+ <exclusion>
+ <groupId>org.codehaus.groovy</groupId>
+ <artifactId>groovy</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehaus.groovy</groupId>
+ <artifactId>groovy-json</artifactId>
+ </exclusion>
</exclusions>
</dependency>
+ <dependency>
+ <groupId>org.codehaus.groovy</groupId>
+ <artifactId>groovy</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.groovy</groupId>
+ <artifactId>groovy-json</artifactId>
+ </dependency>
</dependencies>
<build>
diff --git a/extensions-jvm/cassandraql/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/cassandraql/runtime/src/main/resources/META-INF/quarkus-extension.yaml
index a0f9ec4..5f5467a 100644
--- a/extensions-jvm/cassandraql/runtime/src/main/resources/META-INF/quarkus-extension.yaml
+++ b/extensions-jvm/cassandraql/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -22,7 +22,7 @@
#
---
name: "Camel Cassandra CQL"
-description: "Integrate with Cassandra 2.0 using the CQL3 API (not the Thrift API)"
+description: "Integrate with Cassandra 2.0 using the CQL3 API (not the Thrift API). Based on Cassandra Java Driver provided by DataStax"
metadata:
unlisted: true
guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/cassandraql.html"
diff --git a/extensions-support/debezium/deployment/src/main/java/org/apache/camel/quarkus/support/debezium/deployment/DebeziumSupportProcessor.java b/extensions-support/debezium/deployment/src/main/java/org/apache/camel/quarkus/support/debezium/deployment/DebeziumSupportProcessor.java
index 7810d88..7fcda1a 100644
--- a/extensions-support/debezium/deployment/src/main/java/org/apache/camel/quarkus/support/debezium/deployment/DebeziumSupportProcessor.java
+++ b/extensions-support/debezium/deployment/src/main/java/org/apache/camel/quarkus/support/debezium/deployment/DebeziumSupportProcessor.java
@@ -21,6 +21,7 @@ import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
import io.quarkus.deployment.builditem.FeatureBuildItem;
import io.quarkus.deployment.builditem.IndexDependencyBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
import org.jboss.jandex.IndexView;
@@ -38,7 +39,7 @@ public class DebeziumSupportProcessor {
String[] dtos = index.getKnownClasses().stream().map(ci -> ci.name().toString())
.filter(n -> n.startsWith("org.apache.kafka.connect.json")
- || n.startsWith("io.debezium.embedded.spi"))
+ || n.startsWith("io.debezium.engine.spi"))
.sorted()
.toArray(String[]::new);
@@ -50,12 +51,19 @@ public class DebeziumSupportProcessor {
return new ReflectiveClassBuildItem(false, false,
new String[] { "org.apache.kafka.connect.storage.FileOffsetBackingStore",
"org.apache.kafka.connect.storage.MemoryOffsetBackingStore",
- "io.debezium.relational.history.FileDatabaseHistory" });
+ "io.debezium.relational.history.FileDatabaseHistory",
+ "io.debezium.embedded.ConvertingEngineBuilderFactory" });
}
@BuildStep
void addDependencies(BuildProducer<IndexDependencyBuildItem> indexDependency) {
indexDependency.produce(new IndexDependencyBuildItem("org.apache.kafka", "connect-json"));
- indexDependency.produce(new IndexDependencyBuildItem("io.debezium", "debezium-embedded"));
+ indexDependency.produce(new IndexDependencyBuildItem("io.debezium", "debezium-api"));
+ }
+
+ @BuildStep
+ void registerServiceProviders(BuildProducer<NativeImageResourceBuildItem> nativeImage) {
+ nativeImage.produce(
+ new NativeImageResourceBuildItem("META-INF/services/io.debezium.engine.DebeziumEngine$BuilderFactory"));
}
}
diff --git a/extensions/aws-s3/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions/aws-s3/runtime/src/main/resources/META-INF/quarkus-extension.yaml
index d9e3947..0f0a4a6 100644
--- a/extensions/aws-s3/runtime/src/main/resources/META-INF/quarkus-extension.yaml
+++ b/extensions/aws-s3/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -22,7 +22,7 @@
#
---
name: "Camel AWS S3 Storage Service"
-description: "Store and retrie objects from AWS S3 Storage Service"
+description: "Store and retrieve objects from AWS S3 Storage Service"
metadata:
keywords:
- "Amazon"
diff --git a/extensions/aws2-s3/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions/aws2-s3/runtime/src/main/resources/META-INF/quarkus-extension.yaml
index ff8d18f..bfedec6 100644
--- a/extensions/aws2-s3/runtime/src/main/resources/META-INF/quarkus-extension.yaml
+++ b/extensions/aws2-s3/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -22,7 +22,7 @@
#
---
name: "Camel AWS 2 S3 Storage Service"
-description: "Store and retrie objects from AWS S3 Storage Service using AWS SDK version 2.x"
+description: "Store and retrieve objects from AWS S3 Storage Service using AWS SDK version 2.x"
metadata:
keywords:
- "Amazon"
diff --git a/extensions/azure/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions/azure/runtime/src/main/resources/META-INF/quarkus-extension.yaml
index 1f6ddde..38a099a 100644
--- a/extensions/azure/runtime/src/main/resources/META-INF/quarkus-extension.yaml
+++ b/extensions/azure/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -29,3 +29,4 @@ metadata:
- "integration"
status:
- "stable"
+ - "deprecated"
\ No newline at end of file
diff --git a/integration-tests-support/custom-routes-collector/runtime/src/main/java/org/apache/camel/quarkus/main/runtime/support/CustomRoutesCollector.java b/integration-tests-support/custom-routes-collector/runtime/src/main/java/org/apache/camel/quarkus/main/runtime/support/CustomRoutesCollector.java
index 84029bc..34f58be 100644
--- a/integration-tests-support/custom-routes-collector/runtime/src/main/java/org/apache/camel/quarkus/main/runtime/support/CustomRoutesCollector.java
+++ b/integration-tests-support/custom-routes-collector/runtime/src/main/java/org/apache/camel/quarkus/main/runtime/support/CustomRoutesCollector.java
@@ -22,6 +22,7 @@ import java.util.List;
import org.apache.camel.CamelContext;
import org.apache.camel.RoutesBuilder;
import org.apache.camel.main.RoutesCollector;
+import org.apache.camel.model.RouteTemplatesDefinition;
import org.apache.camel.model.RoutesDefinition;
import org.apache.camel.model.rest.RestsDefinition;
@@ -40,6 +41,12 @@ public class CustomRoutesCollector implements RoutesCollector {
}
@Override
+ public List<RouteTemplatesDefinition> collectXmlRouteTemplatesFromDirectory(CamelContext camelContext, String directory)
+ throws Exception {
+ return Collections.emptyList();
+ }
+
+ @Override
public List<RestsDefinition> collectXmlRestsFromDirectory(CamelContext camelContext, String directory) throws Exception {
return Collections.emptyList();
}
diff --git a/pom.xml b/pom.xml
index f212f38..aba0559 100644
--- a/pom.xml
+++ b/pom.xml
@@ -45,9 +45,10 @@
<animal-sniffer.version>1.18</animal-sniffer.version>
<awssdk1.version>1.11.714</awssdk1.version>
<awssdk1-swf-libs.version>1.11.22</awssdk1-swf-libs.version>
- <awssdk2.version>2.13.33</awssdk2.version>
- <camel.version>3.4.3</camel.version>
- <debezium.version>1.2.0.Final</debezium.version>
+ <awssdk2.version>2.13.58</awssdk2.version>
+ <camel.version>3.5.0-SNAPSHOT</camel.version>
+ <debezium.version>1.2.1.Final</debezium.version>
+ <elasticsearch.version>7.6.1</elasticsearch.version>
<freemarker.version>2.3.30</freemarker.version>
<github-api.version>1.111</github-api.version>
<google-http-client.version>1.22.0</google-http-client.version>
@@ -72,7 +73,7 @@
<retrofit.version>2.5.0</retrofit.version>
<smallrye.reactive.messaging.camel.version>2.2.1</smallrye.reactive.messaging.camel.version>
<!-- Keep spring.version aligned with the version used by Camel -->
- <spring.version>5.2.7.RELEASE</spring.version>
+ <spring.version>5.2.8.RELEASE</spring.version>
<snakeyaml.version>1.26</snakeyaml.version>
<threetenbp.version>1.4.0</threetenbp.version>
<xalan.version>2.7.2</xalan.version>
@@ -104,7 +105,7 @@
<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.4</groovy.version>
+ <groovy.version>3.0.5</groovy.version>
<jandex-maven-plugin.version>1.0.8</jandex-maven-plugin.version>
<os-maven-plugin.version>1.6.2</os-maven-plugin.version>
<properties-maven-plugin.version>1.0.0</properties-maven-plugin.version>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 75d3104..28c6bb9 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -3291,6 +3291,16 @@
<version>${ahc.version}</version>
</dependency>
<dependency>
+ <groupId>org.codehaus.groovy</groupId>
+ <artifactId>groovy</artifactId>
+ <version>${groovy.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.groovy</groupId>
+ <artifactId>groovy-json</artifactId>
+ <version>${groovy.version}</version>
+ </dependency>
+ <dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-annotations</artifactId>
<version>${animal-sniffer.version}</version>