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 <jamesnether...@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>