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/03 09:28:22 UTC
[camel-quarkus] 01/02: 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 f2c721ca0bb9ef1d424f34fd184b957190b909d6
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/extensions/aws-s3.adoc | 2 +-
docs/modules/ROOT/pages/extensions/aws2-s3.adoc | 2 +-
docs/modules/ROOT/pages/extensions/azure.adoc | 4 +-
.../pages/list-of-camel-quarkus-extensions.adoc | 10 +--
.../org/apache/camel/quarkus/core/BaseModel.java | 98 ++++++++++++++++++++++
.../core/DisabledXMLRoutesDefinitionLoader.java | 5 ++
.../camel/quarkus/core/FastCamelContext.java | 46 ++++++++++
.../org/apache/camel/quarkus/main/CamelMain.java | 17 ++++
.../quarkus/main/CamelMainRoutesCollector.java | 26 ++++++
extensions-jvm/cassandraql/runtime/pom.xml | 16 ++++
.../deployment/DebeziumSupportProcessor.java | 14 +++-
.../runtime/support/CustomRoutesCollector.java | 7 ++
pom.xml | 11 +--
poms/bom/pom.xml | 10 +++
14 files changed, 251 insertions(+), 17 deletions(-)
diff --git a/docs/modules/ROOT/pages/extensions/aws-s3.adoc b/docs/modules/ROOT/pages/extensions/aws-s3.adoc
index 643d7fc..3d26d63 100644
--- a/docs/modules/ROOT/pages/extensions/aws-s3.adoc
+++ b/docs/modules/ROOT/pages/extensions/aws-s3.adoc
@@ -7,7 +7,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/extensions/aws2-s3.adoc b/docs/modules/ROOT/pages/extensions/aws2-s3.adoc
index 4e0b2e4..d405938 100644
--- a/docs/modules/ROOT/pages/extensions/aws2-s3.adoc
+++ b/docs/modules/ROOT/pages/extensions/aws2-s3.adoc
@@ -7,7 +7,7 @@
[.badges]
[.badge-key]##Since Camel Quarkus##[.badge-version]##1.0.0-M7## [.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/extensions/azure.adoc b/docs/modules/ROOT/pages/extensions/azure.adoc
index 7be91ed..2606754 100644
--- a/docs/modules/ROOT/pages/extensions/azure.adoc
+++ b/docs/modules/ROOT/pages/extensions/azure.adoc
@@ -11,8 +11,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/list-of-camel-quarkus-extensions.adoc b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
index a2e0a2c..70b1ab8 100644
--- a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
+++ b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
@@ -18,7 +18,7 @@ In case you are missing some Camel feature in the list:
== Camel Components
// components: START
-Number of Camel components: 155 in 120 JAR artifacts (0 deprecated)
+Number of Camel components: 155 in 120 JAR artifacts (2 deprecated)
[width="100%",cols="4,1,1,1,5",options="header"]
|===
@@ -56,7 +56,7 @@ Number of Camel components: 155 in 120 JAR artifacts (0 deprecated)
| xref:extensions/aws2-mq.adoc[AWS 2 MQ] | camel-quarkus-aws2-mq | Native + Stable | 1.0.0-M6 | Manage AWS MQ instances using AWS SDK version 2.x.
-| xref:extensions/aws2-s3.adoc[AWS 2 S3 Storage Service] | camel-quarkus-aws2-s3 | Native + Stable | 1.0.0-M7 | Store and retrie objects from AWS S3 Storage Service using AWS SDK version 2.x.
+| xref:extensions/aws2-s3.adoc[AWS 2 S3 Storage Service] | camel-quarkus-aws2-s3 | Native + Stable | 1.0.0-M7 | Store and retrieve objects from AWS S3 Storage Service using AWS SDK version 2.x.
| xref:extensions/aws2-ses.adoc[AWS 2 Simple Email Service (SES)] | camel-quarkus-aws2-ses | Native + Stable | 1.0.0-M6 | Send e-mails through AWS SES service using AWS SDK version 2.x.
@@ -82,7 +82,7 @@ Number of Camel components: 155 in 120 JAR artifacts (0 deprecated)
| xref:extensions/aws-lambda.adoc[AWS Lambda] | camel-quarkus-aws-lambda | Native + Stable | 1.0.0-M3 | Manage and invoke AWS Lambda functions.
-| xref:extensions/aws-s3.adoc[AWS S3 Storage Service] | camel-quarkus-aws-s3 | Native + Stable | 0.2.0 | Store and retrie objects from AWS S3 Storage Service.
+| xref:extensions/aws-s3.adoc[AWS S3 Storage Service] | camel-quarkus-aws-s3 | Native + Stable | 0.2.0 | Store and retrieve objects from AWS S3 Storage Service.
| xref:extensions/aws-sns.adoc[AWS Simple Notification System (SNS)] | camel-quarkus-aws-sns | Native + Stable | 0.2.0 | Send messages to an AWS Simple Notification Topic.
@@ -94,9 +94,9 @@ Number of Camel components: 155 in 120 JAR artifacts (0 deprecated)
| xref:extensions/aws-translate.adoc[AWS Translate] | camel-quarkus-aws-translate | Native + Stable | 1.0.0-M3 | Translate texts using AWS Translate.
-| xref:extensions/azure.adoc[Azure Storage Blob Service (Legacy)] | camel-quarkus-azure | Native + Stable | 1.0.0-M4 | Store and retrieve blobs from Azure Storage Blob Service.
+| xref:extensions/azure.adoc[Azure Storage Blob Service (Deprecated)] | camel-quarkus-azure | Native + Stable | 1.0.0-M4 | *deprecated* Store and retrieve blobs from Azure Storage Blob Service.
-| xref:extensions/azure.adoc[Azure Storage Queue Service (Legacy)] | camel-quarkus-azure | Native + Stable | 1.0.0-M4 | Store and retrieve messages from Azure Storage Queue Service.
+| xref:extensions/azure.adoc[Azure Storage Queue Service (Deprecated)] | camel-quarkus-azure | Native + Stable | 1.0.0-M4 | *deprecated* Store and retrieve messages from Azure Storage Queue Service.
| xref:extensions/bean.adoc[Bean] | camel-quarkus-bean | Native + Stable | 0.2.0 | Invoke methods of Java beans stored in Camel registry.
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..058901d 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.util.CollectionStringBuffer;
public abstract class BaseModel implements Model {
private final CamelContext camelContext;
+ private final List<ModelLifecycleStrategy> modelLifecycleStrategies = new ArrayList<>();
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<>();
@@ -52,6 +55,16 @@ public abstract class BaseModel implements Model {
}
@Override
+ public void addModelLifecycleStrategy(ModelLifecycleStrategy modelLifecycleStrategy) {
+ this.modelLifecycleStrategies.add(modelLifecycleStrategy);
+ }
+
+ @Override
+ public List<ModelLifecycleStrategy> getModelLifecycleStrategies() {
+ return modelLifecycleStrategies;
+ }
+
+ @Override
public synchronized void addRouteDefinitions(Collection<RouteDefinition> routeDefinitions) throws Exception {
if (routeDefinitions == null || routeDefinitions.isEmpty()) {
return;
@@ -111,6 +124,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;
}
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..843c5c1 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();
}
@@ -482,6 +488,16 @@ public class FastCamelContext extends AbstractCamelContext implements CatalogCam
}
@Override
+ public void addModelLifecycleStrategy(ModelLifecycleStrategy modelLifecycleStrategy) {
+ model.addModelLifecycleStrategy(modelLifecycleStrategy);
+ }
+
+ @Override
+ public List<ModelLifecycleStrategy> getModelLifecycleStrategies() {
+ return model.getModelLifecycleStrategies();
+ }
+
+ @Override
public List<RouteDefinition> getRouteDefinitions() {
return model.getRouteDefinitions();
}
@@ -512,6 +528,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();
}
diff --git a/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMain.java b/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMain.java
index 7e71a52..b2ef402 100644
--- a/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMain.java
+++ b/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMain.java
@@ -18,6 +18,8 @@ package org.apache.camel.quarkus.main;
import java.util.Collection;
import java.util.Collections;
+import java.util.LinkedHashSet;
+import java.util.Set;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -31,6 +33,7 @@ import org.apache.camel.main.MainCommandLineSupport;
import org.apache.camel.main.MainConfigurationProperties;
import org.apache.camel.main.MainListener;
import org.apache.camel.main.MainShutdownStrategy;
+import org.apache.camel.main.MainShutdownStrategy.ShutdownEventListener;
import org.apache.camel.spi.CamelBeanPostProcessor;
import org.apache.camel.spi.HasCamelContext;
import org.apache.camel.support.service.ServiceHelper;
@@ -157,6 +160,7 @@ public final class CamelMain extends MainCommandLineSupport implements HasCamelC
private class ShutdownStrategy implements MainShutdownStrategy {
private final AtomicBoolean completed;
private final CountDownLatch latch;
+ private final Set<ShutdownEventListener> listeners = new LinkedHashSet<>();
public ShutdownStrategy() {
this.completed = new AtomicBoolean(false);
@@ -172,6 +176,15 @@ public final class CamelMain extends MainCommandLineSupport implements HasCamelC
public boolean shutdown() {
if (completed.compareAndSet(false, true)) {
latch.countDown();
+ for (ShutdownEventListener l : listeners) {
+ try {
+ LOG.trace("ShutdownEventListener: {}", l);
+ l.onShutdown();
+ } catch (Throwable e) {
+ // ignore as we must continue
+ LOG.debug("Error during ShutdownEventListener: {}. This exception is ignored.", l, e);
+ }
+ }
Quarkus.asyncExit(getExitCode());
return true;
}
@@ -192,5 +205,9 @@ public final class CamelMain extends MainCommandLineSupport implements HasCamelC
timeout, unit);
}
}
+
+ public void addShutdownListener(ShutdownEventListener listener) {
+ listeners.add(listener);
+ }
}
}
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 0b516d0..a733915 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-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/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 34116fb..c2f1a58 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.2</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>
@@ -71,7 +72,7 @@
<protobuf.version>3.11.1</protobuf.version>
<retrofit.version>2.5.0</retrofit.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>
@@ -103,7 +104,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 ff125e1..26707d4 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -3231,6 +3231,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>