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/09/02 11:56:16 UTC
[camel-quarkus] 01/13: Upgrade to Camel 3.5.0
This is an automated email from the ASF dual-hosted git repository.
jamesnetherton pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit a68c4a39b37546fe5fc5f668fed04fe401af4d1d
Author: James Netherton <ja...@gmail.com>
AuthorDate: Thu Jun 18 16:30:49 2020 +0100
Upgrade to Camel 3.5.0
---
docs/modules/ROOT/pages/reference/components.adoc | 18 ++--
.../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 | 100 +++++++++++++++++++++
.../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 +
.../component/pdf/deployment/PdfProcessor.java | 28 +++++-
.../runtime/support/CustomRoutesCollector.java | 7 ++
pom.xml | 14 +--
poms/bom/pom.xml | 10 +++
20 files changed, 274 insertions(+), 34 deletions(-)
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index 2662053..c6d3f04 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -83,10 +83,10 @@ Stable | 1.0.0 | Manage AWS IAM instances using AWS SDK version 2.x.
Stable | 1.0.0 | Manage keys stored in AWS KMS instances using AWS SDK version 2.x.
| xref:reference/extensions/aws2-kinesis.adoc[AWS 2 Kinesis] | [.camel-element-artifact]##camel-quarkus-aws2-kinesis## | [.camel-element-JVM]##JVM## +
-Preview | 1.1.0 | Consume and produce records from AWS Kinesis Streams using AWS SDK version 2.x.
+Preview | 1.1.0 | Consume and produce records from and to AWS Kinesis Streams using AWS SDK version 2.x.
| xref:reference/extensions/aws2-kinesis.adoc[AWS 2 Kinesis Firehose] | [.camel-element-artifact]##camel-quarkus-aws2-kinesis## | [.camel-element-JVM]##JVM## +
-Preview | 1.1.0 | Consume data from AWS Kinesis Firehose streams using AWS SDK version 2.x.
+Preview | 1.1.0 | Produce data to AWS Kinesis Firehose streams using AWS SDK version 2.x.
| xref:reference/extensions/aws2-lambda.adoc[AWS 2 Lambda] | [.camel-element-artifact]##camel-quarkus-aws2-lambda## | [.camel-element-JVM]##JVM## +
Preview | 1.1.0 | Manage and invoke AWS Lambda functions using AWS SDK version 2.x.
@@ -98,7 +98,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.
@@ -137,7 +137,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.
@@ -157,14 +157,14 @@ Stable | 1.0.0 | Translate texts using AWS Translate.
| xref:reference/extensions/azure-storage-blob.adoc[Azure Storage Blob Service] | [.camel-element-artifact]##camel-quarkus-azure-storage-blob## | [.camel-element-JVM]##JVM## +
Preview | 1.1.0 | Store and retrieve blobs from Azure Storage Blob Service using SDK v12.
-| 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-storage-queue.adoc[Azure Storage Queue Service] | [.camel-element-artifact]##camel-quarkus-azure-storage-queue## | [.camel-element-JVM]##JVM## +
Preview | 1.1.0 | The azure-storage-queue component is used for storing and retrieving the messages to/from Azure Storage Queue using Azure SDK v12.
-| 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.
@@ -194,7 +194,7 @@ Preview | 1.1.0 | Perform caching operations using Caffeine Cache.
Preview | 1.1.0 | Perform caching operations using Caffeine Cache with an attached CacheLoader.
| 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/chatscript.adoc[ChatScript] | [.camel-element-artifact]##camel-quarkus-chatscript## | [.camel-element-JVM]##JVM## +
Preview | 1.1.0 | Chat with a ChatScript Server.
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 b7458b1..76a338c 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -96,7 +96,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.
@@ -132,7 +132,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.
@@ -150,7 +150,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/azure-storage-blob.adoc[Azure Storage Blob Service] | camel-quarkus-azure-storage-blob | [.camel-element-JVM]##JVM## +
Preview | 1.1.0 | Store and retrieve blobs from Azure Storage Blob Service using SDK v12.
@@ -192,7 +192,7 @@ Preview | 1.1.0 | Perform caching operations using Caffeine Cache.
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/chatscript.adoc[ChatScript] | camel-quarkus-chatscript | [.camel-element-JVM]##JVM## +
Preview | 1.1.0 | Chat with a ChatScript Server.
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..636f6cc 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,15 @@ 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.spi.NodeIdFactory;
+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 +45,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 +115,92 @@ public abstract class BaseModel implements Model {
}
@Override
+ public List<RouteTemplateDefinition> getRouteTemplateDefinitions() {
+ return routeTemplateDefinitions;
+ }
+
+ @Override
+ public RouteTemplateDefinition getRouteTemplateDefinition(String id) {
+ NodeIdFactory nodeIdFactory = camelContext.adapt(ExtendedCamelContext.class).getNodeIdFactory();
+ for (RouteTemplateDefinition route : routeTemplateDefinitions) {
+ if (route.idOrCreate(nodeIdFactory).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.add(routeTemplateDefinition);
+ }
+
+ @Override
+ public void removeRouteTemplateDefinitions(Collection<RouteTemplateDefinition> routeTemplateDefinitions) throws Exception {
+ this.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 +413,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/extensions/pdf/deployment/src/main/java/org/apache/camel/quarkus/component/pdf/deployment/PdfProcessor.java b/extensions/pdf/deployment/src/main/java/org/apache/camel/quarkus/component/pdf/deployment/PdfProcessor.java
index 612e673..d6c3e90 100644
--- a/extensions/pdf/deployment/src/main/java/org/apache/camel/quarkus/component/pdf/deployment/PdfProcessor.java
+++ b/extensions/pdf/deployment/src/main/java/org/apache/camel/quarkus/component/pdf/deployment/PdfProcessor.java
@@ -26,10 +26,30 @@ class PdfProcessor {
private static final String FEATURE = "camel-pdf";
- private static final String[] RUNTIME_RESOURCES = new String[] { "org/apache/pdfbox/resources/version.properties",
- "org/apache/pdfbox/resources/icc/ISOcoated_v2_300_bas.icc",
+ private static final String[] RUNTIME_RESOURCES = new String[] {
+ "org/apache/pdfbox/resources/version.properties",
+ "org/apache/pdfbox/resources/afm/Courier.afm",
+ "org/apache/pdfbox/resources/afm/Courier-Bold.afm",
+ "org/apache/pdfbox/resources/afm/Courier-BoldOblique.afm",
+ "org/apache/pdfbox/resources/afm/Courier-Oblique.afm",
+ "org/apache/pdfbox/resources/afm/Helvetica.afm",
+ "org/apache/pdfbox/resources/afm/Helvetica-Bold.afm",
+ "org/apache/pdfbox/resources/afm/Helvetica-BoldOblique.afm",
+ "org/apache/pdfbox/resources/afm/Helvetica-Oblique.afm",
+ "org/apache/pdfbox/resources/afm/MustRead.html",
+ "org/apache/pdfbox/resources/afm/Symbol.afm",
+ "org/apache/pdfbox/resources/afm/Times-Bold.afm",
+ "org/apache/pdfbox/resources/afm/Times-BoldItalic.afm",
+ "org/apache/pdfbox/resources/afm/Times-Italic.afm",
+ "org/apache/pdfbox/resources/afm/Times-Roman.afm",
+ "org/apache/pdfbox/resources/afm/ZapfDingbats.afm",
"org/apache/pdfbox/resources/glyphlist/additional.txt",
- "org/apache/pdfbox/resources/ttf/LiberationSans-Regular.ttf" };
+ "org/apache/pdfbox/resources/glyphlist/glyphlist.txt",
+ "org/apache/pdfbox/resources/glyphlist/zapfdingbats.txt",
+ "org/apache/pdfbox/resources/icc/ISOcoated_v2_300_bas.icc",
+ "org/apache/pdfbox/resources/text/BidiMirroring.txt",
+ "org/apache/pdfbox/resources/ttf/LiberationSans-Regular.ttf"
+ };
private static final String[] RUNTIME_INITIALIZED_CLASSES = new String[] {
"org.apache.pdfbox.pdmodel.font.PDType1Font",
@@ -43,7 +63,7 @@ class PdfProcessor {
}
@BuildStep
- NativeImageResourceBuildItem initResources() {
+ NativeImageResourceBuildItem initResources(BuildProducer<NativeImageResourceBuildItem> nativeImageResource) {
return new NativeImageResourceBuildItem(RUNTIME_RESOURCES);
}
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 751f41c..f49bd71 100644
--- a/pom.xml
+++ b/pom.xml
@@ -41,15 +41,17 @@
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- Compile dependency versions (keep sorted alphabetically) -->
- <ahc.version>2.10.4</ahc.version>
+ <ahc.version>2.12.1</ahc.version>
<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>
+ <awssdk2.version>2.14.3</awssdk2.version>
+ <bouncycastle.version>1.66</bouncycastle.version>
+ <camel.version>3.5.0</camel.version>
<commons-beanutils.version>1.9.4</commons-beanutils.version><!-- keep in sync with Camel -->
<commons-cli.version>1.4</commons-cli.version><!-- keep in sync with Quarkus, via quarkus-bootstrap-core -->
- <debezium.version>1.2.0.Final</debezium.version>
+ <debezium.version>1.2.1.Final</debezium.version>
+ <elasticsearch.version>7.8.0</elasticsearch.version>
<freemarker.version>2.3.30</freemarker.version>
<fommil.netlib.core.version>1.1.2</fommil.netlib.core.version><!-- Mess in Weka transitive deps -->
<github-api.version>1.111</github-api.version>
@@ -79,7 +81,7 @@
<smallrye.reactive.messaging.camel.version>2.2.1</smallrye.reactive.messaging.camel.version>
<soap-api.version>1.4.0</soap-api.version><!-- keep in sync with Camel -->
<!-- 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>
@@ -117,7 +119,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 e6cbde2..8212a0e 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -4401,6 +4401,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>