You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gi...@apache.org on 2020/08/10 02:22:49 UTC

[camel-quarkus] branch camel-master updated (b40ee79 -> 9efdccd)

This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a change to branch camel-master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git.


 discard b40ee79  Fixes health example #1500
 discard f2c721c  Upgrade to Camel 3.5.0-SNAPSHOT
     add 7736d41  Registered grok patterns in registry via qualified field producers
     add 955203c  Upgrade to Quarkus 1.7.0.CR2
     add 50c0b0c  Fix Braintree itest component property resolution
     add 151feb0  Fix Twitter itest component property resolution
     add deaa973  Simplify component configuration for box, fhir & google itests
     add 7f3f8ba  Upgrade to Quarkus 1.7.0.Final
     add 159e7c3  Disable merge commits on pull requests
     add f0c755a  Upgrade Quarkus Qpid JMS to 0.17.0
     new 61760ce  Upgrade to Camel 3.5.0-SNAPSHOT
     new 9efdccd  Fixes health example #1500

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (b40ee79)
            \
             N -- N -- N   refs/heads/camel-master (9efdccd)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .asf.yaml                                          |  5 +++-
 .../box/src/main/resources/application.properties  | 11 ++++----
 integration-tests/braintree/pom.xml                |  4 +++
 .../fhir/src/main/resources/application.properties |  7 ++---
 integration-tests/google/pom.xml                   |  4 +++
 .../src/main/resources/application.properties      | 32 +++++++++++-----------
 .../camel/quarkus/component/grok/it/GrokRoute.java | 14 +++++++---
 integration-tests/twitter/pom.xml                  |  4 +++
 pom.xml                                            |  4 +--
 9 files changed, 52 insertions(+), 33 deletions(-)


[camel-quarkus] 01/02: Upgrade to Camel 3.5.0-SNAPSHOT

Posted by gi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch camel-master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git

commit 61760ce6531ca6344f05f6e9ec2f4b07fac3f1a7
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 8639037..d6fc7ae 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>


[camel-quarkus] 02/02: Fixes health example #1500

Posted by gi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch camel-master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git

commit 9efdccdcd4f802cf807b679fa1d85e4a0d5f8406
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Jul 31 10:20:40 2020 +0200

    Fixes health example #1500
---
 examples/health/README.adoc                                       | 6 ------
 examples/health/pom.xml                                           | 4 ----
 examples/health/src/main/java/org/acme/health/MyRouteBuilder.java | 5 -----
 examples/health/src/main/resources/application.properties         | 5 -----
 4 files changed, 20 deletions(-)

diff --git a/examples/health/README.adoc b/examples/health/README.adoc
index 964c972..819a406 100644
--- a/examples/health/README.adoc
+++ b/examples/health/README.adoc
@@ -10,12 +10,6 @@ and other general information.
 The example has two routes, a timer that calls a bean that flips a boolean that
 causes the custom health check to be in either UP or DOWN state.
 
-The 2nd route is on purpose made to fail on startup by configuring netty to an unknown host.
-Camel supervising route controller will attempt to restart the route up till 10 times before exhausting.
-
-The routes health check will therefore report this route as DOWN until its exhausted
-where the states are changed to UNKNOWN.
-
 The details can be seen at runtime from the calling the following url from a web browser: http://localhost:8080/health
 
 === Start in the Development mode
diff --git a/examples/health/pom.xml b/examples/health/pom.xml
index 52be628..f51790a 100644
--- a/examples/health/pom.xml
+++ b/examples/health/pom.xml
@@ -57,10 +57,6 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-netty</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-timer</artifactId>
         </dependency>
         <dependency>
diff --git a/examples/health/src/main/java/org/acme/health/MyRouteBuilder.java b/examples/health/src/main/java/org/acme/health/MyRouteBuilder.java
index 88288db..6615ad7 100644
--- a/examples/health/src/main/java/org/acme/health/MyRouteBuilder.java
+++ b/examples/health/src/main/java/org/acme/health/MyRouteBuilder.java
@@ -33,10 +33,5 @@ public class MyRouteBuilder extends RouteBuilder {
         from("timer:foo?period={{myPeriod}}").routeId("timer")
                 .bean(monkey, "chaos")
                 .log("${body}");
-
-        // this route is invalid and fails during startup
-        // the supervising route controller will take over and attempt
-        // to restart this route
-        from("netty:tcp:unknownhost").to("log:dummy").routeId("netty");
     }
 }
diff --git a/examples/health/src/main/resources/application.properties b/examples/health/src/main/resources/application.properties
index f6ab0d7..6bd1962 100644
--- a/examples/health/src/main/resources/application.properties
+++ b/examples/health/src/main/resources/application.properties
@@ -52,15 +52,10 @@ camel.health.registry-enabled = true
 # you can turn on or off individual routes as shown below
 ### camel.heath.config[timer].parent = routes
 ### camel.heath.config[timer].enabled = true
-### camel.heath.config[netty].check = routes
-### camel.heath.config[netty].enabled = false
 
 # and configure each individually
 camel.health.config[timer].parent = routes
 camel.health.config[timer].interval = 5s
-camel.health.config[netty].parent = routes
-camel.health.config[netty].interval = 20s
-camel.health.config[netty].failure-threshold = 10
 
 # find grained routes configuration per route (support wildcards)
 # (enabled is default true for discovered health-checks)