You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2020/09/18 15:53:23 UTC

[camel-spring-boot-examples] branch master updated (5ca6112 -> b1f5f16)

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

davsclaus pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git.


    from 5ca6112  Set 3.6.0-SNAPSHOT as version
     new 14cc33c  Added new OpenTrace example with ElastiCo APM Tracer
     new 1a0d134  Added new OpenTrace example with ElastiCo APM Tracer
     new ca52952  Code cleanup
     new b1f5f16  Merge pull request #7 from EUinUkraine/camel-spring-boot-examples-apm-opentrace

The 40 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:
 .../README.adoc                                    | 48 ++++++++++++++++++++++
 .../pom.xml                                        | 34 +++++++++------
 .../src/main/java/sample/camel/CamelConfig.java    | 14 ++++---
 .../src/main/java/sample/camel/CounterBean.java    |  1 -
 .../java/sample/camel/Service1Application.java     |  7 ++--
 .../src/main/java/sample/camel/Service1Route.java  |  9 +++-
 .../src/main/resources/application.properties      |  3 +-
 pom.xml                                            |  1 +
 8 files changed, 92 insertions(+), 25 deletions(-)
 create mode 100644 camel-example-spring-boot-apm-opentracing/README.adoc
 copy {camel-example-spring-boot-opentracing/service2 => camel-example-spring-boot-apm-opentracing}/pom.xml (79%)
 copy camel-example-spring-boot-health-checks/src/main/java/sample/camel/MyConfiguration.java => camel-example-spring-boot-apm-opentracing/src/main/java/sample/camel/CamelConfig.java (79%)
 copy {camel-example-spring-boot-resilience4j/client2 => camel-example-spring-boot-apm-opentracing}/src/main/java/sample/camel/CounterBean.java (99%)
 copy {camel-example-spring-boot-opentracing/service1 => camel-example-spring-boot-apm-opentracing}/src/main/java/sample/camel/Service1Application.java (90%)
 copy {camel-example-spring-boot-zipkin/service1 => camel-example-spring-boot-apm-opentracing}/src/main/java/sample/camel/Service1Route.java (78%)
 copy {camel-example-spring-boot-resilience4j/service1 => camel-example-spring-boot-apm-opentracing}/src/main/resources/application.properties (93%)


[camel-spring-boot-examples] 05/40: Added badges

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit bbdf22aefa5cb4ac8ca0b1faca4ebe732e0aa4ec
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu May 21 13:10:46 2020 +0200

    Added badges
---
 README.adoc | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/README.adoc b/README.adoc
index bf6f2ef..86aeef1 100644
--- a/README.adoc
+++ b/README.adoc
@@ -1,5 +1,12 @@
 # Welcome to the Apache Camel Spring-Boot Examples
 
+![master build](https://github.com/apache/camel-spring-boot-examples/workflows/master%20build/badge.svg)
+[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.apache.camel/apache-camel/badge.svg?style=flat-square)](https://maven-badges.herokuapp.com/maven-central/org.apache.camel/apache-camel)
+[![Javadocs](http://www.javadoc.io/badge/org.apache.camel/apache-camel.svg?color=brightgreen)](http://www.javadoc.io/doc/org.apache.camel/camel-core)
+[![Stack Overflow](https://img.shields.io/:stack%20overflow-apache--camel-brightgreen.svg)](http://stackoverflow.com/questions/tagged/apache-camel)
+[![Gitter](https://img.shields.io/gitter/room/apache/apache-camel.js.svg)](https://gitter.im/apache/apache-camel)
+[![Twitter](https://img.shields.io/twitter/follow/ApacheCamel.svg?label=Follow&style=social)](https://twitter.com/ApacheCamel)
+
 = Introduction
 
 This directory contains the various examples for working with Apache


[camel-spring-boot-examples] 25/40: CAMEL-15428: camel-spring-boot BOM with just the starter JARs

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit 47b432532729a43a2e6969594c0251ddcbb49943
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Aug 24 13:46:46 2020 +0200

    CAMEL-15428: camel-spring-boot BOM with just the starter JARs
---
 camel-example-spring-boot/pom.xml                  | 17 +------
 .../sample/camel/FooApplicationJUnit5Test.java     |  3 +-
 .../test/java/sample/camel/FooApplicationTest.java | 53 ----------------------
 .../sample/camel/MyCamelApplicationJUnit5Test.java |  3 +-
 .../java/sample/camel/MyCamelApplicationTest.java  | 49 --------------------
 5 files changed, 4 insertions(+), 121 deletions(-)

diff --git a/camel-example-spring-boot/pom.xml b/camel-example-spring-boot/pom.xml
index b2987ce..ad6c517 100644
--- a/camel-example-spring-boot/pom.xml
+++ b/camel-example-spring-boot/pom.xml
@@ -52,8 +52,8 @@
             <!-- Camel BOM -->
             <dependency>
                 <groupId>org.apache.camel.springboot</groupId>
-                <artifactId>camel-spring-boot-dependencies</artifactId>
-                <version>${project.version}</version>
+                <artifactId>camel-spring-boot-bom</artifactId>
+                <version>${camel-version}</version>
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
@@ -137,19 +137,6 @@
                     </execution>
                 </executions>
             </plugin>
-
-            <plugin>
-                <groupId>org.apache.camel</groupId>
-                <artifactId>camel-maven-plugin</artifactId>
-                <version>${camel-version}</version>
-                <!-- allows to fail if not all routes are covered during testing -->
-                <!--
-                        <configuration>
-                          <failOnError>true</failOnError>
-                          <coverageThreshold>90</coverageThreshold>
-                        </configuration>
-                -->
-            </plugin>
         </plugins>
     </build>
 </project>
diff --git a/camel-example-spring-boot/src/test/java/sample/camel/FooApplicationJUnit5Test.java b/camel-example-spring-boot/src/test/java/sample/camel/FooApplicationJUnit5Test.java
index 5e88f59..c82a95b 100644
--- a/camel-example-spring-boot/src/test/java/sample/camel/FooApplicationJUnit5Test.java
+++ b/camel-example-spring-boot/src/test/java/sample/camel/FooApplicationJUnit5Test.java
@@ -21,18 +21,17 @@ import java.util.concurrent.TimeUnit;
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.NotifyBuilder;
 import org.apache.camel.test.spring.junit5.CamelSpringBootTest;
-import org.apache.camel.test.spring.junit5.EnableRouteCoverage;
 import org.apache.camel.test.spring.junit5.MockEndpoints;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 
+
 import static org.junit.Assert.assertTrue;
 
 @CamelSpringBootTest
 @SpringBootTest(classes = MyCamelApplication.class,
     properties = "greeting = Hello foo")
-@EnableRouteCoverage
 @MockEndpoints("log:foo") // mock the log:foo endpoint => mock:log:foo which we then use in the testing
 //@Ignore // enable me to run this test as well so we can cover testing the route completely
 public class FooApplicationJUnit5Test {
diff --git a/camel-example-spring-boot/src/test/java/sample/camel/FooApplicationTest.java b/camel-example-spring-boot/src/test/java/sample/camel/FooApplicationTest.java
deleted file mode 100644
index 10b8116..0000000
--- a/camel-example-spring-boot/src/test/java/sample/camel/FooApplicationTest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package sample.camel;
-
-import java.util.concurrent.TimeUnit;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.builder.NotifyBuilder;
-import org.apache.camel.test.spring.CamelSpringBootRunner;
-import org.apache.camel.test.spring.EnableRouteCoverage;
-import org.apache.camel.test.spring.MockEndpoints;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-
-import static org.junit.Assert.assertTrue;
-
-@RunWith(CamelSpringBootRunner.class)
-@SpringBootTest(classes = MyCamelApplication.class,
-    properties = "greeting = Hello foo")
-@EnableRouteCoverage
-@MockEndpoints("log:foo") // mock the log:foo endpoint => mock:log:foo which we then use in the testing
-//@Ignore // enable me to run this test as well so we can cover testing the route completely
-public class FooApplicationTest {
-
-    @Autowired
-    private CamelContext camelContext;
-
-    @Test
-    public void shouldSayFoo() throws Exception {
-        // we expect that one or more messages is automatic done by the Camel
-        // route as it uses a timer to trigger
-        NotifyBuilder notify = new NotifyBuilder(camelContext).whenDone(1).create();
-
-        assertTrue(notify.matches(10, TimeUnit.SECONDS));
-    }
-
-}
diff --git a/camel-example-spring-boot/src/test/java/sample/camel/MyCamelApplicationJUnit5Test.java b/camel-example-spring-boot/src/test/java/sample/camel/MyCamelApplicationJUnit5Test.java
index b990532..a11f87d 100644
--- a/camel-example-spring-boot/src/test/java/sample/camel/MyCamelApplicationJUnit5Test.java
+++ b/camel-example-spring-boot/src/test/java/sample/camel/MyCamelApplicationJUnit5Test.java
@@ -21,16 +21,15 @@ import java.util.concurrent.TimeUnit;
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.NotifyBuilder;
 import org.apache.camel.test.spring.junit5.CamelSpringBootTest;
-import org.apache.camel.test.spring.junit5.EnableRouteCoverage;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 
+
 import static org.junit.Assert.assertTrue;
 
 @CamelSpringBootTest
 @SpringBootTest(classes = MyCamelApplication.class)
-@EnableRouteCoverage
 public class MyCamelApplicationJUnit5Test {
 
     @Autowired
diff --git a/camel-example-spring-boot/src/test/java/sample/camel/MyCamelApplicationTest.java b/camel-example-spring-boot/src/test/java/sample/camel/MyCamelApplicationTest.java
deleted file mode 100644
index ccf7a64..0000000
--- a/camel-example-spring-boot/src/test/java/sample/camel/MyCamelApplicationTest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package sample.camel;
-
-import java.util.concurrent.TimeUnit;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.builder.NotifyBuilder;
-import org.apache.camel.test.spring.CamelSpringBootRunner;
-import org.apache.camel.test.spring.EnableRouteCoverage;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-
-import static org.junit.Assert.assertTrue;
-
-@RunWith(CamelSpringBootRunner.class)
-@SpringBootTest(classes = MyCamelApplication.class)
-@EnableRouteCoverage
-public class MyCamelApplicationTest {
-
-    @Autowired
-    private CamelContext camelContext;
-
-    @Test
-    public void shouldProduceMessages() throws Exception {
-        // we expect that one or more messages is automatic done by the Camel
-        // route as it uses a timer to trigger
-        NotifyBuilder notify = new NotifyBuilder(camelContext).whenDone(1).create();
-
-        assertTrue(notify.matches(10, TimeUnit.SECONDS));
-    }
-
-}


[camel-spring-boot-examples] 18/40: camel-arangodb-starter example

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit a7ba33bfa4dccc314c6f153f05799017968fb2e1
Author: Zineb Bendhiba <be...@gmail.com>
AuthorDate: Thu Jul 23 10:33:54 2020 +0200

    camel-arangodb-starter example
---
 README.adoc                                        |  4 +-
 camel-example-spring-boot-arangodb/pom.xml         | 88 ++++++++++++++++++++++
 camel-example-spring-boot-arangodb/src/README.adoc | 50 ++++++++++++
 .../example/springboot/arangodb/Application.java   | 34 +++++++++
 .../example/springboot/arangodb/CamelRoute.java    | 37 +++++++++
 .../example/springboot/arangodb/MyBeanService.java | 39 ++++++++++
 .../src/main/resources/application.properties      | 23 ++++++
 pom.xml                                            |  1 +
 8 files changed, 275 insertions(+), 1 deletion(-)

diff --git a/README.adoc b/README.adoc
index 73d8d57..9c60131 100644
--- a/README.adoc
+++ b/README.adoc
@@ -11,7 +11,7 @@ View the individual example READMEs for details.
 == Examples
 
 // examples: START
-Number of Examples: 40 (0 deprecated)
+Number of Examples: 41 (0 deprecated)
 
 [width="100%",cols="4,2,4",options="header"]
 |===
@@ -51,6 +51,8 @@ Number of Examples: 40 (0 deprecated)
 
 | link:camel-example-spring-boot-master/readme.adoc[Spring Boot Master] (camel-example-spring-boot-master) | Clustering | An example showing how to work with Camel's Master component and Spring Boot
 
+| link:camel-example-spring-boot-arangodb/readme.md[Spring Boot Arangodb] (camel-example-spring-boot-arangodb) | Database | An example showing the Camel ArangoDb component with Spring Boot
+
 | link:camel-example-spring-boot-rest-jpa/README.adoc[Spring Boot REST JPA] (camel-example-spring-boot-rest-jpa) | Database | An example demonstrating how to use Camel REST DSL with JPA to expose a RESTful API that performs CRUD
         operations on a database
     
diff --git a/camel-example-spring-boot-arangodb/pom.xml b/camel-example-spring-boot-arangodb/pom.xml
new file mode 100644
index 0000000..1ab7b82
--- /dev/null
+++ b/camel-example-spring-boot-arangodb/pom.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>examples</artifactId>
+        <version>3.5.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-example-spring-boot-arangodb</artifactId>
+    <name>Camel SB Examples :: ArangoDB</name>
+    <description>An example showing the Camel ArangoDb component with Spring Boot</description>
+
+    <properties>
+        <category>Database</category>
+        <spring.boot-version>${spring-boot-version}</spring.boot-version>
+    </properties>
+
+    <!-- Spring-Boot and Camel BOM -->
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring.boot-version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.springboot</groupId>
+                <artifactId>camel-spring-boot-dependencies</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <!-- Camel -->
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-arangodb-starter</artifactId>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring.boot-version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+
+</project>
\ No newline at end of file
diff --git a/camel-example-spring-boot-arangodb/src/README.adoc b/camel-example-spring-boot-arangodb/src/README.adoc
new file mode 100644
index 0000000..4393239
--- /dev/null
+++ b/camel-example-spring-boot-arangodb/src/README.adoc
@@ -0,0 +1,50 @@
+== Spring Boot Example with ArangoDB
+
+=== Introduction
+
+This example demonstrates how you can use Camel-Arangodb Starter component. The example is really simple: put a document in the database and get the document with the same key.
+You'll need a running ArangoDB server to run this example.
+
+=== Build
+
+You can build this example using:
+
+    $ mvn package
+
+=== Run
+
+You can run this example following these steps using:
+
+Run an instance of ArangoDB with the root and password given in application.properties file. Example using the docker image :
+
+    $ docker run -p 8529:8529 -e ARANGO_ROOT_PASSWORD=openSesame arangodb:latest
+
+Execute arangosh in your server. Example with the docker image ( set "openSesame" as password)
+
+    $ docker exec -it <CONTAINER_ID> arangosh --server.username "root"
+
+Create the database "myDb"
+
+    $ db._createDatabase("myDb")
+
+Create the collection "foo"
+
+    $ db._useDatabase("myDb")
+
+    $ db._create("foo")
+
+Run the app
+
+    $ mvn spring-boot:run
+
+And you should see output in the console. You can also see the document created in the foo collection.
+
+=== Help and contributions
+
+If you hit any problem using Camel or have some feedback, then please
+https://camel.apache.org/support.html[let us know].
+
+We also love contributors, so
+https://camel.apache.org/contributing.html[get involved] :-)
+
+The Camel riders!
diff --git a/camel-example-spring-boot-arangodb/src/main/java/org/apache/camel/example/springboot/arangodb/Application.java b/camel-example-spring-boot-arangodb/src/main/java/org/apache/camel/example/springboot/arangodb/Application.java
new file mode 100644
index 0000000..6b25ccb
--- /dev/null
+++ b/camel-example-spring-boot-arangodb/src/main/java/org/apache/camel/example/springboot/arangodb/Application.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.example.springboot.arangodb;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+// CHECKSTYLE:OFF
+@SpringBootApplication
+public class Application {
+
+    /**
+     * Main method to start the application.
+     */
+    public static void main(String[] args) {
+        SpringApplication.run(Application.class, args);
+    }
+
+}
+// CHECKSTYLE:ON
diff --git a/camel-example-spring-boot-arangodb/src/main/java/org/apache/camel/example/springboot/arangodb/CamelRoute.java b/camel-example-spring-boot-arangodb/src/main/java/org/apache/camel/example/springboot/arangodb/CamelRoute.java
new file mode 100644
index 0000000..ed58b37
--- /dev/null
+++ b/camel-example-spring-boot-arangodb/src/main/java/org/apache/camel/example/springboot/arangodb/CamelRoute.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.example.springboot.arangodb;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.arangodb.ArangoDbConstants;
+import org.springframework.stereotype.Component;
+
+@Component
+public class CamelRoute extends RouteBuilder {
+
+    @Override
+    public void configure() throws Exception {
+
+      from("timer://foo?period=10000&repeatCount=1")
+                .bean(MyBeanService.class, "createDocument")
+                .to("arangodb:myDb?operation=SAVE_DOCUMENT")
+                .bean(MyBeanService.class, "readDocument")
+                .setHeader(ArangoDbConstants.RESULT_CLASS_TYPE).constant(String.class)
+                .to("arangodb:myDb?operation=FIND_DOCUMENT_BY_KEY")
+                .log("Received body: ${body}");
+    }
+}
diff --git a/camel-example-spring-boot-arangodb/src/main/java/org/apache/camel/example/springboot/arangodb/MyBeanService.java b/camel-example-spring-boot-arangodb/src/main/java/org/apache/camel/example/springboot/arangodb/MyBeanService.java
new file mode 100644
index 0000000..1838117
--- /dev/null
+++ b/camel-example-spring-boot-arangodb/src/main/java/org/apache/camel/example/springboot/arangodb/MyBeanService.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.example.springboot.arangodb;
+
+import com.arangodb.entity.BaseDocument;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+
+@Component
+public class MyBeanService {
+
+    private static final String KEY = "key1";
+
+    public BaseDocument createDocument() {
+        BaseDocument document = new BaseDocument();
+        document.setKey(KEY);
+        document.addAttribute("foo", "bar");
+        return document;
+    }
+
+    public String readDocument() {
+        return KEY;
+    }
+
+}
diff --git a/camel-example-spring-boot-arangodb/src/main/resources/application.properties b/camel-example-spring-boot-arangodb/src/main/resources/application.properties
new file mode 100644
index 0000000..e5f5df2
--- /dev/null
+++ b/camel-example-spring-boot-arangodb/src/main/resources/application.properties
@@ -0,0 +1,23 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+camel.springboot.name=ArangoDB
+camel.springboot.main-run-controller=true
+camel.component.arangodb.collection=foo
+camel.component.arangodb.user=root
+camel.component.arangodb.password=openSesame
+
+
diff --git a/pom.xml b/pom.xml
index 5ada0c5..948a524 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,6 +37,7 @@
         <module>camel-example-spring-boot</module>
         <module>camel-example-spring-boot-activemq</module>
         <module>camel-example-spring-boot-amqp</module>
+        <module>camel-example-spring-boot-arangodb</module>
         <module>camel-example-spring-boot-clustered-route-controller</module>
         <module>camel-example-spring-boot-fhir</module>
         <module>camel-example-spring-boot-fhir-auth-tx</module>


[camel-spring-boot-examples] 16/40: health check

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit 4b10e4325f24bb3cbf422f8c192089eeb95ce697
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Jun 9 09:53:03 2020 +0200

    health check
---
 .../src/main/resources/application.properties                       | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/camel-example-spring-boot-health-checks/src/main/resources/application.properties b/camel-example-spring-boot-health-checks/src/main/resources/application.properties
index c94d8af..c3d29dc 100644
--- a/camel-example-spring-boot-health-checks/src/main/resources/application.properties
+++ b/camel-example-spring-boot-health-checks/src/main/resources/application.properties
@@ -24,15 +24,11 @@ logging.level.org.apache.camel.impl.health = DEBUG
 logging.level.sample.camel = DEBUG
 
 # expose actuator endpoint via HTTP
-management.endpoints.web.exposure.include=info,health
+management.endpoints.web.exposure.include=health
 
 # show verbose health details (/actuator/health) so you can see Camel information also
 management.endpoint.health.show-details=always
 
-# to turn off Camel info in (/actuator/info)
-management.info.camel.enabled=true
-management.info.camel.verbose=true
-
 camel.springboot.name = MyCamel
 
 # enable JMX which allows to also control health check


[camel-spring-boot-examples] 12/40: health check

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit 149bc36de62a42e970392e53f89254febc97553d
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Jun 8 13:57:18 2020 +0200

    health check
---
 camel-example-spring-boot/src/main/resources/application.properties | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/camel-example-spring-boot/src/main/resources/application.properties b/camel-example-spring-boot/src/main/resources/application.properties
index c6342b5..7ec89a3 100644
--- a/camel-example-spring-boot/src/main/resources/application.properties
+++ b/camel-example-spring-boot/src/main/resources/application.properties
@@ -34,9 +34,6 @@ myPeriod = 2000
 # add for example: &repeatCount=5 to the timer endpoint to make Camel idle
 #camel.springboot.duration-max-idle-seconds=15
 
-camel.health.registry-enabled = false
-camel.health[routes][timer].enabled = true
-
 # expose actuator endpoint via HTTP
 management.endpoints.web.exposure.include=info,health
 


[camel-spring-boot-examples] 34/40: Point to 3.5.0 for tagging

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit 8db928a6e039c200403c240848ac9d06a436239f
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Tue Sep 8 07:31:11 2020 +0200

    Point to 3.5.0 for tagging
---
 pom.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pom.xml b/pom.xml
index 46276f3..7df711d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot</groupId>
         <artifactId>spring-boot</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.5.0</version>
     </parent>
 
     <groupId>org.apache.camel.springboot.example</groupId>
@@ -81,7 +81,7 @@
         <!-- for symbolicName in OSGi examples we only want the artifactId, eg camel-example-sql -->
         <!-- as having org.apache.camel as prefix is not needed and makes the name very long -->
         <camel.osgi.symbolic.name>${project.artifactId}</camel.osgi.symbolic.name>
-        <camel-version>3.5.0-SNAPSHOT</camel-version>
+        <camel-version>3.5.0</camel-version>
         <skip.starting.camel.context>false</skip.starting.camel.context>
         <javax.servlet.api.version>4.0.1</javax.servlet.api.version>
         <camel.osgi.export.pkg />


[camel-spring-boot-examples] 04/40: Added Github actions

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit 75d774116b5aaf2fadafb58da1c2d082e1c46536
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu May 21 13:07:19 2020 +0200

    Added Github actions
---
 .github/workflows/master-pr-build.yml   | 37 +++++++++++++++++++++++++++++++++
 .github/workflows/master-push-build.yml | 37 +++++++++++++++++++++++++++++++++
 2 files changed, 74 insertions(+)

diff --git a/.github/workflows/master-pr-build.yml b/.github/workflows/master-pr-build.yml
new file mode 100644
index 0000000..6829d56
--- /dev/null
+++ b/.github/workflows/master-pr-build.yml
@@ -0,0 +1,37 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+name: master pr build
+
+on:
+  pull_request:
+    branches:
+      - master
+jobs:
+  build:
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        java: [ '1.8', '11' ]
+    steps:
+      - uses: actions/checkout@v2
+      - name: Set up JDK ${{ matrix.java }}
+        uses: actions/setup-java@v1
+        with:
+          java-version: ${{ matrix.java }}
+      - name: mvn build
+        run: ./mvnw -f examples/pom.xml -V --no-transfer-progress clean install -DskipTests
diff --git a/.github/workflows/master-push-build.yml b/.github/workflows/master-push-build.yml
new file mode 100644
index 0000000..09d4ceb
--- /dev/null
+++ b/.github/workflows/master-push-build.yml
@@ -0,0 +1,37 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+name: master build
+
+on:
+  push:
+    branches:
+      - master
+jobs:
+  build:
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        java: [ '1.8', '11' ]
+    steps:
+      - uses: actions/checkout@v2
+      - name: Set up JDK ${{ matrix.java }}
+        uses: actions/setup-java@v1
+        with:
+          java-version: ${{ matrix.java }}
+      - name: mvn build
+        run: ./mvnw -f examples/pom.xml -V --no-transfer-progress clean install -DskipTests


[camel-spring-boot-examples] 28/40: Camel-example-spring-boot-rest-swagger: set Jackson in dependencyManagement section

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit a3f4a83ebd00d8fbf7f9c5c85928a62eb4b14906
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Aug 27 17:58:04 2020 +0200

    Camel-example-spring-boot-rest-swagger: set Jackson in dependencyManagement section
---
 camel-example-spring-boot-rest-swagger/pom.xml | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/camel-example-spring-boot-rest-swagger/pom.xml b/camel-example-spring-boot-rest-swagger/pom.xml
index ff62f51..03f050a 100644
--- a/camel-example-spring-boot-rest-swagger/pom.xml
+++ b/camel-example-spring-boot-rest-swagger/pom.xml
@@ -51,6 +51,26 @@
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
+            <dependency>
+                <groupId>com.fasterxml.jackson.core</groupId>
+                <artifactId>jackson-databind</artifactId>
+                <version>2.9.10</version>
+            </dependency>
+            <dependency>
+                <groupId>com.fasterxml.jackson.core</groupId>
+                <artifactId>jackson-core</artifactId>
+                <version>2.9.10</version>
+            </dependency>
+            <dependency>
+                <groupId>com.fasterxml.jackson.datatype</groupId>
+                <artifactId>jackson-datatype-jdk8</artifactId>
+                <version>2.9.10</version>
+            </dependency>
+            <dependency>
+                <groupId>com.fasterxml.jackson.datatype</groupId>
+                <artifactId>jackson-datatype-jsr310</artifactId>
+                <version>2.9.10</version>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 


[camel-spring-boot-examples] 23/40: Regen README

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit 70ccf797f8290a3d0466d9876a5a857c6ca40570
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Fri Aug 7 08:36:48 2020 +0200

    Regen README
---
 README.adoc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.adoc b/README.adoc
index 9c60131..1e3393f 100644
--- a/README.adoc
+++ b/README.adoc
@@ -51,7 +51,7 @@ Number of Examples: 41 (0 deprecated)
 
 | link:camel-example-spring-boot-master/readme.adoc[Spring Boot Master] (camel-example-spring-boot-master) | Clustering | An example showing how to work with Camel's Master component and Spring Boot
 
-| link:camel-example-spring-boot-arangodb/readme.md[Spring Boot Arangodb] (camel-example-spring-boot-arangodb) | Database | An example showing the Camel ArangoDb component with Spring Boot
+| link:camel-example-spring-boot-arangodb/README.adoc[Spring Boot Arangodb] (camel-example-spring-boot-arangodb) | Database | An example showing the Camel ArangoDb component with Spring Boot
 
 | link:camel-example-spring-boot-rest-jpa/README.adoc[Spring Boot REST JPA] (camel-example-spring-boot-rest-jpa) | Database | An example demonstrating how to use Camel REST DSL with JPA to expose a RESTful API that performs CRUD
         operations on a database


[camel-spring-boot-examples] 07/40: Added Maven Wrapper

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit bb009bbcb5bedd392e98d39f1801f4d18b2cc4d8
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu May 21 13:20:53 2020 +0200

    Added Maven Wrapper
---
 .mvn/wrapper/MavenWrapperDownloader.java | 117 ++++++++++++
 .mvn/wrapper/maven-wrapper.jar           | Bin 0 -> 50710 bytes
 .mvn/wrapper/maven-wrapper.properties    |   2 +
 mvnw                                     | 310 +++++++++++++++++++++++++++++++
 mvnw.cmd                                 | 182 ++++++++++++++++++
 5 files changed, 611 insertions(+)

diff --git a/.mvn/wrapper/MavenWrapperDownloader.java b/.mvn/wrapper/MavenWrapperDownloader.java
new file mode 100644
index 0000000..b901097
--- /dev/null
+++ b/.mvn/wrapper/MavenWrapperDownloader.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright 2007-present the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import java.net.*;
+import java.io.*;
+import java.nio.channels.*;
+import java.util.Properties;
+
+public class MavenWrapperDownloader {
+
+    private static final String WRAPPER_VERSION = "0.5.6";
+    /**
+     * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
+     */
+    private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+        + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
+
+    /**
+     * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
+     * use instead of the default one.
+     */
+    private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
+            ".mvn/wrapper/maven-wrapper.properties";
+
+    /**
+     * Path where the maven-wrapper.jar will be saved to.
+     */
+    private static final String MAVEN_WRAPPER_JAR_PATH =
+            ".mvn/wrapper/maven-wrapper.jar";
+
+    /**
+     * Name of the property which should be used to override the default download url for the wrapper.
+     */
+    private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
+
+    public static void main(String args[]) {
+        System.out.println("- Downloader started");
+        File baseDirectory = new File(args[0]);
+        System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
+
+        // If the maven-wrapper.properties exists, read it and check if it contains a custom
+        // wrapperUrl parameter.
+        File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
+        String url = DEFAULT_DOWNLOAD_URL;
+        if(mavenWrapperPropertyFile.exists()) {
+            FileInputStream mavenWrapperPropertyFileInputStream = null;
+            try {
+                mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
+                Properties mavenWrapperProperties = new Properties();
+                mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
+                url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
+            } catch (IOException e) {
+                System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
+            } finally {
+                try {
+                    if(mavenWrapperPropertyFileInputStream != null) {
+                        mavenWrapperPropertyFileInputStream.close();
+                    }
+                } catch (IOException e) {
+                    // Ignore ...
+                }
+            }
+        }
+        System.out.println("- Downloading from: " + url);
+
+        File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
+        if(!outputFile.getParentFile().exists()) {
+            if(!outputFile.getParentFile().mkdirs()) {
+                System.out.println(
+                        "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
+            }
+        }
+        System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
+        try {
+            downloadFileFromURL(url, outputFile);
+            System.out.println("Done");
+            System.exit(0);
+        } catch (Throwable e) {
+            System.out.println("- Error downloading");
+            e.printStackTrace();
+            System.exit(1);
+        }
+    }
+
+    private static void downloadFileFromURL(String urlString, File destination) throws Exception {
+        if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
+            String username = System.getenv("MVNW_USERNAME");
+            char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
+            Authenticator.setDefault(new Authenticator() {
+                @Override
+                protected PasswordAuthentication getPasswordAuthentication() {
+                    return new PasswordAuthentication(username, password);
+                }
+            });
+        }
+        URL website = new URL(urlString);
+        ReadableByteChannel rbc;
+        rbc = Channels.newChannel(website.openStream());
+        FileOutputStream fos = new FileOutputStream(destination);
+        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
+        fos.close();
+        rbc.close();
+    }
+
+}
diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..2cc7d4a
Binary files /dev/null and b/.mvn/wrapper/maven-wrapper.jar differ
diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..642d572
--- /dev/null
+++ b/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1,2 @@
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
+wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
diff --git a/mvnw b/mvnw
new file mode 100755
index 0000000..41c0f0c
--- /dev/null
+++ b/mvnw
@@ -0,0 +1,310 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+#   JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+#   M2_HOME - location of maven2's installed home dir
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
+#     e.g. to debug Maven itself, use
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+  if [ -f /etc/mavenrc ] ; then
+    . /etc/mavenrc
+  fi
+
+  if [ -f "$HOME/.mavenrc" ] ; then
+    . "$HOME/.mavenrc"
+  fi
+
+fi
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+  CYGWIN*) cygwin=true ;;
+  MINGW*) mingw=true;;
+  Darwin*) darwin=true
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        export JAVA_HOME="`/usr/libexec/java_home`"
+      else
+        export JAVA_HOME="/Library/Java/Home"
+      fi
+    fi
+    ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=`java-config --jre-home`
+  fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  M2_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  M2_HOME=`cd "$M2_HOME" && pwd`
+
+  cd "$saveddir"
+  # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --unix "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+  javaExecutable="`which javac`"
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+    # readlink(1) is not available as standard on Solaris 10.
+    readLink=`which readlink`
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+      if $darwin ; then
+        javaHome="`dirname \"$javaExecutable\"`"
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+      else
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
+      fi
+      javaHome="`dirname \"$javaExecutable\"`"
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+      JAVA_HOME="$javaHome"
+      export JAVA_HOME
+    fi
+  fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD="`which java`"
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." >&2
+  echo "  We cannot execute $JAVACMD" >&2
+  exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+  echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=`cd "$wdir/.."; pwd`
+    fi
+    # end of workaround
+  done
+  echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    echo "$(tr -s '\n' ' ' < "$1")"
+  fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
+    fi
+else
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
+    fi
+    if [ -n "$MVNW_REPOURL" ]; then
+      jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    else
+      jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    fi
+    while IFS="=" read key value; do
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
+      esac
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Downloading from: $jarUrl"
+    fi
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
+    if $cygwin; then
+      wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
+    fi
+
+    if command -v wget > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found wget ... using wget"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            wget "$jarUrl" -O "$wrapperJarPath"
+        else
+            wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
+        fi
+    elif command -v curl > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found curl ... using curl"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            curl -o "$wrapperJarPath" "$jarUrl" -f
+        else
+            curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
+        fi
+
+    else
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Falling back to using Java to download"
+        fi
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        # For Cygwin, switch paths to Windows format before running javac
+        if $cygwin; then
+          javaClass=`cygpath --path --windows "$javaClass"`
+        fi
+        if [ -e "$javaClass" ]; then
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Compiling MavenWrapperDownloader.java ..."
+                fi
+                # Compiling the Java class
+                ("$JAVA_HOME/bin/javac" "$javaClass")
+            fi
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                # Running the downloader
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Running MavenWrapperDownloader.java ..."
+                fi
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+if [ "$MVNW_VERBOSE" = true ]; then
+  echo $MAVEN_PROJECTBASEDIR
+fi
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+# Provide a "standardized" way to retrieve the CLI args that will
+# work with both Windows and non-Windows executions.
+MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
+export MAVEN_CMD_LINE_ARGS
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+  $MAVEN_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/mvnw.cmd b/mvnw.cmd
new file mode 100644
index 0000000..8611571
--- /dev/null
+++ b/mvnw.cmd
@@ -0,0 +1,182 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+
+FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+    IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Found %WRAPPER_JAR%
+    )
+) else (
+    if not "%MVNW_REPOURL%" == "" (
+        SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    )
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Couldn't find %WRAPPER_JAR%, downloading it ...
+        echo Downloading from: %DOWNLOAD_URL%
+    )
+
+    powershell -Command "&{"^
+		"$webclient = new-object System.Net.WebClient;"^
+		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
+		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
+		"}"^
+		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
+		"}"
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Finished downloading %WRAPPER_JAR%
+    )
+)
+@REM End of extension
+
+@REM Provide a "standardized" way to retrieve the CLI args that will
+@REM work with both Windows and non-Windows executions.
+set MAVEN_CMD_LINE_ARGS=%*
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%


[camel-spring-boot-examples] 35/40: Next is 3.6.0-SNAPSHOT

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit 454835ae454e7e33cb54e29411bb4f79462fcc83
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Tue Sep 8 07:38:20 2020 +0200

    Next is 3.6.0-SNAPSHOT
---
 pom.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pom.xml b/pom.xml
index 7df711d..a7fb317 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot</groupId>
         <artifactId>spring-boot</artifactId>
-        <version>3.5.0</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <groupId>org.apache.camel.springboot.example</groupId>
@@ -81,7 +81,7 @@
         <!-- for symbolicName in OSGi examples we only want the artifactId, eg camel-example-sql -->
         <!-- as having org.apache.camel as prefix is not needed and makes the name very long -->
         <camel.osgi.symbolic.name>${project.artifactId}</camel.osgi.symbolic.name>
-        <camel-version>3.5.0</camel-version>
+        <camel-version>3.6.0-SNAPSHOT</camel-version>
         <skip.starting.camel.context>false</skip.starting.camel.context>
         <javax.servlet.api.version>4.0.1</javax.servlet.api.version>
         <camel.osgi.export.pkg />


[camel-spring-boot-examples] 40/40: Merge pull request #7 from EUinUkraine/camel-spring-boot-examples-apm-opentrace

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit b1f5f162a37376d8ddc8fa22741a2adf8c91b918
Merge: 5ca6112 ca52952
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Sep 18 17:53:17 2020 +0200

    Merge pull request #7 from EUinUkraine/camel-spring-boot-examples-apm-opentrace
    
    Camel spring boot examples for apm opentrace

 .../README.adoc                                    |  48 +++++++++
 camel-example-spring-boot-apm-opentracing/pom.xml  | 118 +++++++++++++++++++++
 .../src/main/java/sample/camel/CamelConfig.java    |  34 ++++++
 .../src/main/java/sample/camel/CounterBean.java    |  26 +++++
 .../java/sample/camel/Service1Application.java     |  40 +++++++
 .../src/main/java/sample/camel/Service1Route.java  |  41 +++++++
 .../src/main/resources/application.properties      |  26 +++++
 pom.xml                                            |   1 +
 8 files changed, 334 insertions(+)



[camel-spring-boot-examples] 24/40: arangodb example : update spring-boot example du to update in component

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit 70c7368eec32be0108ef0181b1682d0a6b40c08d
Author: Zineb Bendhiba <be...@gmail.com>
AuthorDate: Fri Aug 21 16:58:24 2020 +0200

    arangodb example : update spring-boot example du to update in component
---
 .../src/main/resources/application.properties                           | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/camel-example-spring-boot-arangodb/src/main/resources/application.properties b/camel-example-spring-boot-arangodb/src/main/resources/application.properties
index e5f5df2..3b042fe 100644
--- a/camel-example-spring-boot-arangodb/src/main/resources/application.properties
+++ b/camel-example-spring-boot-arangodb/src/main/resources/application.properties
@@ -16,7 +16,7 @@
 ## ---------------------------------------------------------------------------
 camel.springboot.name=ArangoDB
 camel.springboot.main-run-controller=true
-camel.component.arangodb.collection=foo
+camel.component.arangodb.documentCollection=foo
 camel.component.arangodb.user=root
 camel.component.arangodb.password=openSesame
 


[camel-spring-boot-examples] 32/40: Remove not needed dependencies for testing

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit 778e8e19f7cd2eb85015b7f2abe5b9cd0cdf8cd1
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Aug 31 11:18:32 2020 +0200

    Remove not needed dependencies for testing
---
 camel-example-spring-boot/pom.xml | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/camel-example-spring-boot/pom.xml b/camel-example-spring-boot/pom.xml
index f7d0935..dfc8fe3 100644
--- a/camel-example-spring-boot/pom.xml
+++ b/camel-example-spring-boot/pom.xml
@@ -103,16 +103,6 @@
             <artifactId>camel-test-spring-junit5</artifactId>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-management</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.junit.vintage</groupId>
-            <artifactId>junit-vintage-engine</artifactId>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 
     <build>


[camel-spring-boot-examples] 02/40: Added more info to README

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit 20cfa156f963437cfe4aba1bcf63070000e0ba0d
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu May 21 12:41:27 2020 +0200

    Added more info to README
---
 README.adoc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/README.adoc b/README.adoc
index d4820ea..bf6f2ef 100644
--- a/README.adoc
+++ b/README.adoc
@@ -1,9 +1,9 @@
-# Welcome to the Apache Camel Examples
+# Welcome to the Apache Camel Spring-Boot Examples
 
 = Introduction
 
 This directory contains the various examples for working with Apache
-Camel. The examples can be run using Maven. When using the Maven
+Camel Spring Boot. The examples can be run using Maven. When using the Maven
 command, Maven will attempt to download the required dependencies from a
 central repository to your local repository.
 View the individual example READMEs for details.


[camel-spring-boot-examples] 27/40: CAMEL-15428: camel-spring-boot BOM with just the starter JARs

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit 0eb658fa2fead7a7d4f4504b6c52cf959e4e1691
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Aug 24 15:50:11 2020 +0200

    CAMEL-15428: camel-spring-boot BOM with just the starter JARs
---
 camel-example-spring-boot/pom.xml | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/camel-example-spring-boot/pom.xml b/camel-example-spring-boot/pom.xml
index ad6c517..f7d0935 100644
--- a/camel-example-spring-boot/pom.xml
+++ b/camel-example-spring-boot/pom.xml
@@ -100,20 +100,12 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel</groupId>
-            <artifactId>camel-test-spring</artifactId>
-            <version>${camel-version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
             <artifactId>camel-test-spring-junit5</artifactId>
-            <version>${camel-version}</version>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-management</artifactId>
-            <version>${camel-version}</version>
             <scope>test</scope>
         </dependency>
         <dependency>


[camel-spring-boot-examples] 08/40: Fixed github actions

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit 46808df436caed67580077eecb5b7389708037e1
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu May 21 13:22:41 2020 +0200

    Fixed github actions
---
 .github/workflows/master-pr-build.yml   | 2 +-
 .github/workflows/master-push-build.yml | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/master-pr-build.yml b/.github/workflows/master-pr-build.yml
index 6829d56..18a2acb 100644
--- a/.github/workflows/master-pr-build.yml
+++ b/.github/workflows/master-pr-build.yml
@@ -34,4 +34,4 @@ jobs:
         with:
           java-version: ${{ matrix.java }}
       - name: mvn build
-        run: ./mvnw -f examples/pom.xml -V --no-transfer-progress clean install -DskipTests
+        run: ./mvnw -f pom.xml -V --no-transfer-progress clean install -DskipTests
diff --git a/.github/workflows/master-push-build.yml b/.github/workflows/master-push-build.yml
index 09d4ceb..e045180 100644
--- a/.github/workflows/master-push-build.yml
+++ b/.github/workflows/master-push-build.yml
@@ -34,4 +34,4 @@ jobs:
         with:
           java-version: ${{ matrix.java }}
       - name: mvn build
-        run: ./mvnw -f examples/pom.xml -V --no-transfer-progress clean install -DskipTests
+        run: ./mvnw -f pom.xml -V --no-transfer-progress clean install -DskipTests


[camel-spring-boot-examples] 31/40: Migrated test to junit 5

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit b94761e05705482cce2f973211595ad989be3951
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat Aug 29 17:42:36 2020 +0200

    Migrated test to junit 5
---
 camel-example-spring-boot-fhir-auth-tx/pom.xml     | 33 +++++++-------
 .../java/sample/camel/MyCamelApplicationTest.java  | 31 +++++--------
 camel-example-spring-boot-fhir/pom.xml             | 26 ++++++-----
 .../java/sample/camel/MyCamelApplicationTest.java  | 30 +++++--------
 camel-example-spring-boot-validator/pom.xml        | 13 +++++-
 .../sample/camel/SampleCamelApplicationTest.java   |  7 ++-
 camel-example-spring-boot-xml/pom.xml              |  9 ++--
 .../test/java/sample/camel/FooApplicationTest.java | 52 ----------------------
 .../sample/camel/SampleCamelApplicationTest.java   |  9 ++--
 9 files changed, 77 insertions(+), 133 deletions(-)

diff --git a/camel-example-spring-boot-fhir-auth-tx/pom.xml b/camel-example-spring-boot-fhir-auth-tx/pom.xml
index dc1390d..f04dfb4 100644
--- a/camel-example-spring-boot-fhir-auth-tx/pom.xml
+++ b/camel-example-spring-boot-fhir-auth-tx/pom.xml
@@ -90,13 +90,13 @@
         </dependency>
 
         <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-fhir</artifactId>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-fhir-starter</artifactId>
             <version>${camel-version}</version>
         </dependency>
         <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-csv</artifactId>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-csv-starter</artifactId>
             <version>${camel-version}</version>
         </dependency>
         <dependency>
@@ -117,8 +117,17 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel</groupId>
-            <artifactId>camel-test-spring</artifactId>
-            <version>${camel-version}</version>
+            <artifactId>camel-test-spring-junit5</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-management</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.junit.vintage</groupId>
+            <artifactId>junit-vintage-engine</artifactId>
             <scope>test</scope>
         </dependency>
 
@@ -138,18 +147,6 @@
                     </execution>
                 </executions>
             </plugin>
-
-            <plugin>
-                <groupId>org.apache.camel</groupId>
-                <artifactId>camel-maven-plugin</artifactId>
-                <version>${camel-version}</version>
-                <!-- allows to fail if not all routes are fully covered during testing -->
-                <!--
-                        <configuration>
-                          <failOnError>true</failOnError>
-                        </configuration>
-                -->
-            </plugin>
         </plugins>
     </build>
 </project>
diff --git a/camel-example-spring-boot-fhir-auth-tx/src/test/java/sample/camel/MyCamelApplicationTest.java b/camel-example-spring-boot-fhir-auth-tx/src/test/java/sample/camel/MyCamelApplicationTest.java
index 44e6005..a33a16c 100644
--- a/camel-example-spring-boot-fhir-auth-tx/src/test/java/sample/camel/MyCamelApplicationTest.java
+++ b/camel-example-spring-boot-fhir-auth-tx/src/test/java/sample/camel/MyCamelApplicationTest.java
@@ -17,39 +17,32 @@
 package sample.camel;
 
 import java.io.File;
-import java.io.IOException;
 
-import org.apache.camel.EndpointInject;
+import org.apache.camel.CamelContext;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.test.spring.CamelSpringBootRunner;
-import org.apache.camel.test.spring.EnableRouteCoverage;
-import org.apache.camel.test.spring.MockEndpointsAndSkip;
+import org.apache.camel.test.spring.junit5.CamelSpringBootTest;
+import org.apache.camel.test.spring.junit5.MockEndpointsAndSkip;
 import org.apache.commons.io.FileUtils;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 
-@RunWith(CamelSpringBootRunner.class)
+@CamelSpringBootTest
 @SpringBootTest(classes = MyCamelApplication.class,
     properties = "input = target/work/fhir/testinput")
-@EnableRouteCoverage
 @MockEndpointsAndSkip("fhir*")
 public class MyCamelApplicationTest {
 
-    @EndpointInject("mock:fhir:transaction/withResources")
-    private MockEndpoint mock;
-
-    @Before
-    public void copyData() throws IOException {
-        FileUtils.copyDirectory(new File("src/main/data"), new File("target/work/fhir/testinput"));
-    }
+    @Autowired
+    private CamelContext camelContext;
 
     @Test
-    public void shouldPushConvertedCsvtoFhir() throws Exception {
+    public void shouldPushConvertedHl7toFhir() throws Exception {
+        MockEndpoint mock = camelContext.getEndpoint("mock:fhir:transaction/withResources", MockEndpoint.class);
         mock.expectedMessageCount(1);
 
+        FileUtils.copyDirectory(new File("src/main/data"), new File("target/work/fhir/testinput"));
+
         mock.assertIsSatisfied();
     }
-
 }
diff --git a/camel-example-spring-boot-fhir/pom.xml b/camel-example-spring-boot-fhir/pom.xml
index 0908c14..732f0c3 100644
--- a/camel-example-spring-boot-fhir/pom.xml
+++ b/camel-example-spring-boot-fhir/pom.xml
@@ -89,18 +89,13 @@
         </dependency>
 
         <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-fhir</artifactId>
-            <version>${camel-version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-hl7</artifactId>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-fhir-starter</artifactId>
             <version>${camel-version}</version>
         </dependency>
         <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-management</artifactId>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-hl7-starter</artifactId>
             <version>${camel-version}</version>
         </dependency>
         <dependency>
@@ -116,8 +111,17 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel</groupId>
-            <artifactId>camel-test-spring</artifactId>
-            <version>${camel-version}</version>
+            <artifactId>camel-test-spring-junit5</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-management</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.junit.vintage</groupId>
+            <artifactId>junit-vintage-engine</artifactId>
             <scope>test</scope>
         </dependency>
 
diff --git a/camel-example-spring-boot-fhir/src/test/java/sample/camel/MyCamelApplicationTest.java b/camel-example-spring-boot-fhir/src/test/java/sample/camel/MyCamelApplicationTest.java
index 2d1618a..cb6ccaa 100644
--- a/camel-example-spring-boot-fhir/src/test/java/sample/camel/MyCamelApplicationTest.java
+++ b/camel-example-spring-boot-fhir/src/test/java/sample/camel/MyCamelApplicationTest.java
@@ -17,38 +17,32 @@
 package sample.camel;
 
 import java.io.File;
-import java.io.IOException;
 
-import org.apache.camel.EndpointInject;
+import org.apache.camel.CamelContext;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.test.spring.CamelSpringBootRunner;
-import org.apache.camel.test.spring.EnableRouteCoverage;
-import org.apache.camel.test.spring.MockEndpointsAndSkip;
+import org.apache.camel.test.spring.junit5.CamelSpringBootTest;
+import org.apache.camel.test.spring.junit5.MockEndpointsAndSkip;
 import org.apache.commons.io.FileUtils;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 
-@RunWith(CamelSpringBootRunner.class)
+@CamelSpringBootTest
 @SpringBootTest(classes = MyCamelApplication.class,
     properties = "input = target/work/fhir/testinput")
-@EnableRouteCoverage
 @MockEndpointsAndSkip("fhir*")
 public class MyCamelApplicationTest {
 
-    @EndpointInject("mock:fhir:create/resource")
-    private MockEndpoint mock;
-
-    @Before
-    public void copyData() throws IOException {
-        FileUtils.copyDirectory(new File("src/main/data"), new File("target/work/fhir/testinput"));
-    }
+    @Autowired
+    private CamelContext camelContext;
 
     @Test
     public void shouldPushConvertedHl7toFhir() throws Exception {
+        MockEndpoint mock = camelContext.getEndpoint("mock:fhir:create/resource", MockEndpoint.class);
         mock.expectedBodiesReceived("{\"resourceType\":\"Patient\",\"id\":\"100005056\",\"name\":[{\"family\":\"Freeman\",\"given\":[\"Vincent\"]}]}");
-        
+
+        FileUtils.copyDirectory(new File("src/main/data"), new File("target/work/fhir/testinput"));
+
         mock.assertIsSatisfied();
     }
 
diff --git a/camel-example-spring-boot-validator/pom.xml b/camel-example-spring-boot-validator/pom.xml
index e350eed..4ed69c3 100644
--- a/camel-example-spring-boot-validator/pom.xml
+++ b/camel-example-spring-boot-validator/pom.xml
@@ -101,8 +101,17 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel</groupId>
-            <artifactId>camel-test-spring</artifactId>
-            <version>${camel-version}</version>
+            <artifactId>camel-test-spring-junit5</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-management</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.junit.vintage</groupId>
+            <artifactId>junit-vintage-engine</artifactId>
             <scope>test</scope>
         </dependency>
 
diff --git a/camel-example-spring-boot-validator/src/test/java/sample/camel/SampleCamelApplicationTest.java b/camel-example-spring-boot-validator/src/test/java/sample/camel/SampleCamelApplicationTest.java
index b706a6d..1915afc 100644
--- a/camel-example-spring-boot-validator/src/test/java/sample/camel/SampleCamelApplicationTest.java
+++ b/camel-example-spring-boot-validator/src/test/java/sample/camel/SampleCamelApplicationTest.java
@@ -20,15 +20,14 @@ import java.util.concurrent.TimeUnit;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.NotifyBuilder;
-import org.apache.camel.test.spring.CamelSpringBootRunner;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.apache.camel.test.spring.junit5.CamelSpringBootTest;
+import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 
 import static org.junit.Assert.assertTrue;
 
-@RunWith(CamelSpringBootRunner.class)
+@CamelSpringBootTest
 @SpringBootTest(classes = SampleCamelApplication.class)
 public class SampleCamelApplicationTest {
 
diff --git a/camel-example-spring-boot-xml/pom.xml b/camel-example-spring-boot-xml/pom.xml
index 5355640..1efcc4a 100644
--- a/camel-example-spring-boot-xml/pom.xml
+++ b/camel-example-spring-boot-xml/pom.xml
@@ -101,14 +101,17 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel</groupId>
-            <artifactId>camel-test-spring</artifactId>
-            <version>${camel-version}</version>
+            <artifactId>camel-test-spring-junit5</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-management</artifactId>
-            <version>${camel-version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.junit.vintage</groupId>
+            <artifactId>junit-vintage-engine</artifactId>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/camel-example-spring-boot-xml/src/test/java/sample/camel/FooApplicationTest.java b/camel-example-spring-boot-xml/src/test/java/sample/camel/FooApplicationTest.java
deleted file mode 100644
index 88a96af..0000000
--- a/camel-example-spring-boot-xml/src/test/java/sample/camel/FooApplicationTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package sample.camel;
-
-import java.util.concurrent.TimeUnit;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.builder.NotifyBuilder;
-import org.apache.camel.test.spring.CamelSpringBootRunner;
-import org.apache.camel.test.spring.EnableRouteCoverage;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-
-import static org.junit.Assert.assertTrue;
-
-@RunWith(CamelSpringBootRunner.class)
-@SpringBootTest(classes = SampleCamelApplication.class,
-    properties = "greeting = Hello foo")
-@EnableRouteCoverage
-@Ignore // enable me to run this test as well so we can cover testing the route completely
-public class FooApplicationTest {
-
-    @Autowired
-    private CamelContext camelContext;
-
-    @Test
-    public void shouldSayFoo() throws Exception {
-        // we expect that one or more messages is automatic done by the Camel
-        // route as it uses a timer to trigger
-        NotifyBuilder notify = new NotifyBuilder(camelContext).whenDone(1).create();
-
-        assertTrue(notify.matches(10, TimeUnit.SECONDS));
-    }
-
-}
diff --git a/camel-example-spring-boot-xml/src/test/java/sample/camel/SampleCamelApplicationTest.java b/camel-example-spring-boot-xml/src/test/java/sample/camel/SampleCamelApplicationTest.java
index c0f1c2d..1915afc 100644
--- a/camel-example-spring-boot-xml/src/test/java/sample/camel/SampleCamelApplicationTest.java
+++ b/camel-example-spring-boot-xml/src/test/java/sample/camel/SampleCamelApplicationTest.java
@@ -20,18 +20,15 @@ import java.util.concurrent.TimeUnit;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.NotifyBuilder;
-import org.apache.camel.test.spring.CamelSpringBootRunner;
-import org.apache.camel.test.spring.EnableRouteCoverage;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.apache.camel.test.spring.junit5.CamelSpringBootTest;
+import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 
 import static org.junit.Assert.assertTrue;
 
-@RunWith(CamelSpringBootRunner.class)
+@CamelSpringBootTest
 @SpringBootTest(classes = SampleCamelApplication.class)
-@EnableRouteCoverage
 public class SampleCamelApplicationTest {
 
     @Autowired


[camel-spring-boot-examples] 03/40: Property placeholders specifically of the examples moved to their repository

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit 4e8c259a853c38a5e11adc77902e0dc74cb9d266
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu May 21 13:01:47 2020 +0200

    Property placeholders specifically of the examples moved to their repository
---
 pom.xml | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/pom.xml b/pom.xml
index aab65ee..52fe6df 100644
--- a/pom.xml
+++ b/pom.xml
@@ -84,6 +84,10 @@
         <javax.servlet.api.version>4.0.1</javax.servlet.api.version>
         <camel.osgi.export.pkg />
         <fabric8-maven-plugin-version>4.4.0</fabric8-maven-plugin-version>
+        <kafka-avro-serializer-version>5.2.2</kafka-avro-serializer-version>
+        <reactor-version>3.2.15.RELEASE</reactor-version>
+        <testcontainers-version>1.14.0</testcontainers-version>
+        <tomcat-version>9.0.31</tomcat-version>
     </properties>
 
     <dependencyManagement>


[camel-spring-boot-examples] 38/40: Added new OpenTrace example with ElastiCo APM Tracer

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit 1a0d1348c84f86eaca79f8c8796954a4403ac72a
Author: Andrii Mealshchenko <ja...@gmail.com>
AuthorDate: Thu Sep 17 20:56:34 2020 +0300

    Added new OpenTrace example with ElastiCo APM Tracer
---
 .../README.adoc                                    |  48 ++++++++
 camel-example-spring-boot-apm-opentracing/pom.xml  | 126 +++++++++++++++++++++
 .../src/main/java/sample/camel/CamelConfig.java    |  18 +++
 .../src/main/java/sample/camel/CounterBean.java    |  26 +++++
 .../java/sample/camel/Service1Application.java     |  42 +++++++
 .../src/main/java/sample/camel/Service1Route.java  |  41 +++++++
 .../src/main/resources/application.properties      |  26 +++++
 7 files changed, 327 insertions(+)

diff --git a/camel-example-spring-boot-apm-opentracing/README.adoc b/camel-example-spring-boot-apm-opentracing/README.adoc
new file mode 100644
index 0000000..2638010
--- /dev/null
+++ b/camel-example-spring-boot-apm-opentracing/README.adoc
@@ -0,0 +1,48 @@
+== OpenTracing Example
+
+=== Introduction
+
+This example shows how to use Camel with OpenTracing to trace all
+incoming and outgoing Camel messages.
+
+The example uses a ElastiCo APM Client.
+
+Route client -> service1 using HTTP.
+
+=== Before you start
+
+You need to configure EAK stack - Elasticsearch, APM Server and Kibana
+Please follow https://www.elastic.co/guide/en/apm/get-started/current/install-and-run.html to get up and running
+
+=== Build
+
+You will need to compile this example first:
+
+[source,sh]
+----
+$ mvn compile
+----
+
+=== Run the example
+
+[source,sh]
+----
+$ mvn compile spring-boot:run
+
+The client application explicitly instantiates and initializes the
+implementation
+
+=== View results
+After seeing in console messages from timer, visit Kibana to view traces -
+http://localhost:5601/app/apm#/services/Service1Application/transactions/
+select any transaction and click "View full trace"
+
+=== Help and contributions
+
+If you hit any problem using Camel or have some feedback, then please
+https://camel.apache.org/support.html[let us know].
+
+We also love contributors, so
+https://camel.apache.org/contributing.html[get involved] :-)
+
+The Camel riders!
diff --git a/camel-example-spring-boot-apm-opentracing/pom.xml b/camel-example-spring-boot-apm-opentracing/pom.xml
new file mode 100644
index 0000000..b6dfd34
--- /dev/null
+++ b/camel-example-spring-boot-apm-opentracing/pom.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>examples</artifactId>
+        <version>3.5.0</version>
+    </parent>
+
+    <artifactId>camel-example-spring-boot-apm-opentracing</artifactId>
+    <packaging>pom</packaging>
+    <name>Camel SB Examples :: OpenTracing APM</name>
+    <description>An example showing how to trace incoming and outgoing messages from Camel with OpenTracing with ElastiCo APM
+    </description>
+
+    <properties>
+        <category>Management and Monitoring</category>
+        <title>OpenTracing APM</title>
+        <spring.boot-version>${spring-boot-version}</spring.boot-version>
+    </properties>
+
+
+    <!-- import Spring-Boot and Camel BOM -->
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring.boot-version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.springboot</groupId>
+                <artifactId>camel-spring-boot-dependencies</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+
+        <!-- spring-boot -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+            <version>${spring.boot-version}</version>
+        </dependency>
+
+        <!-- camel -->
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-opentracing-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-jetty-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-http-starter</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+
+        <!-- CDI API -->
+        <dependency>
+            <groupId>javax.enterprise</groupId>
+            <artifactId>cdi-api</artifactId>
+            <version>${cdi-api-2.0-version}</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- elastico -->
+        <dependency>
+            <groupId>co.elastic.apm</groupId>
+            <artifactId>apm-agent-attach</artifactId>
+            <version>1.18.0</version>
+        </dependency>
+        <dependency>
+            <groupId>co.elastic.apm</groupId>
+            <artifactId>apm-opentracing</artifactId>
+            <version>1.18.0</version>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring-boot-version}</version>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/camel-example-spring-boot-apm-opentracing/src/main/java/sample/camel/CamelConfig.java b/camel-example-spring-boot-apm-opentracing/src/main/java/sample/camel/CamelConfig.java
new file mode 100644
index 0000000..6c5f875
--- /dev/null
+++ b/camel-example-spring-boot-apm-opentracing/src/main/java/sample/camel/CamelConfig.java
@@ -0,0 +1,18 @@
+package sample.camel;
+
+import co.elastic.apm.opentracing.ElasticApmTracer;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class CamelConfig {
+    @Bean
+    public ElasticApmTracer tracer() {
+        return new ElasticApmTracer();
+    }
+
+    @Bean
+    public CounterBean counterBean() {
+        return new CounterBean();
+    }
+}
diff --git a/camel-example-spring-boot-apm-opentracing/src/main/java/sample/camel/CounterBean.java b/camel-example-spring-boot-apm-opentracing/src/main/java/sample/camel/CounterBean.java
new file mode 100644
index 0000000..9c7dff4
--- /dev/null
+++ b/camel-example-spring-boot-apm-opentracing/src/main/java/sample/camel/CounterBean.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package sample.camel;
+
+public class CounterBean {
+
+    private int counter;
+
+    public String someMethod(String body) {
+        return "" + ++counter;
+    }
+}
diff --git a/camel-example-spring-boot-apm-opentracing/src/main/java/sample/camel/Service1Application.java b/camel-example-spring-boot-apm-opentracing/src/main/java/sample/camel/Service1Application.java
new file mode 100644
index 0000000..52c4f9c
--- /dev/null
+++ b/camel-example-spring-boot-apm-opentracing/src/main/java/sample/camel/Service1Application.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package sample.camel;
+
+import co.elastic.apm.attach.ElasticApmAttacher;
+import org.apache.camel.opentracing.starter.CamelOpenTracing;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * A Spring Boot application that starts the Camel OpenTracing application.
+ * <p/>
+ * Notice we use the `@CamelOpenTracing` annotation to enable Camel with OpenTracing.
+ */
+@SpringBootApplication
+@CamelOpenTracing
+public class Service1Application {
+    /**
+     * A main method to start this application.
+     */
+
+    public static void main(String[] args) {
+        ElasticApmAttacher.attach();
+        SpringApplication.run(Service1Application.class, args);
+    }
+
+
+}
diff --git a/camel-example-spring-boot-apm-opentracing/src/main/java/sample/camel/Service1Route.java b/camel-example-spring-boot-apm-opentracing/src/main/java/sample/camel/Service1Route.java
new file mode 100644
index 0000000..fbcb570
--- /dev/null
+++ b/camel-example-spring-boot-apm-opentracing/src/main/java/sample/camel/Service1Route.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package sample.camel;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.springframework.stereotype.Component;
+
+@Component
+public class Service1Route extends RouteBuilder {
+
+    @Override
+    public void configure() throws Exception {
+         from("timer:trigger?exchangePattern=InOut&period=30000").streamCaching()
+            .bean("counterBean")
+            .log(" Client request: ${body}")
+            .to("http://localhost:9090/service1")
+            .log("Client response: ${body}");
+
+        from("jetty:http://0.0.0.0:9090/service1").routeId("service1").streamCaching()
+            .removeHeaders("CamelHttp*")
+            .log("Service1 request: ${body}")
+            .delay(simple("${random(1000,2000)}"))
+            .transform(simple("Service1-${body}"))
+            .log("Service1 response: ${body}");
+    }
+
+}
diff --git a/camel-example-spring-boot-apm-opentracing/src/main/resources/application.properties b/camel-example-spring-boot-apm-opentracing/src/main/resources/application.properties
new file mode 100644
index 0000000..e320a74
--- /dev/null
+++ b/camel-example-spring-boot-apm-opentracing/src/main/resources/application.properties
@@ -0,0 +1,26 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+# the name of Camel
+camel.springboot.name=Service1
+camel.springboot.main-run-controller=true
+
+# the port number the service will use for accepting incoming HTTP requests
+service1.port=9090
+
+logging.level.org.apache.camel=DEBUG
+logging.level.opentracing.level = DEBUG


[camel-spring-boot-examples] 15/40: health check

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit 5406999fbca5a16c4b504b90166146126708764b
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Jun 9 09:48:20 2020 +0200

    health check
---
 camel-example-spring-boot-health-checks/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/camel-example-spring-boot-health-checks/pom.xml b/camel-example-spring-boot-health-checks/pom.xml
index 8cf97f3..58fbdb3 100644
--- a/camel-example-spring-boot-health-checks/pom.xml
+++ b/camel-example-spring-boot-health-checks/pom.xml
@@ -65,7 +65,7 @@
         </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-actuator</artifactId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
         </dependency>
         <!-- Camel -->
         <dependency>


[camel-spring-boot-examples] 14/40: health check

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit d1607fd9050f2857279768eaea6ba70c3dbb48e5
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Jun 9 07:50:56 2020 +0200

    health check
---
 camel-example-spring-boot-health-checks/pom.xml               |  2 +-
 .../src/main/resources/application.properties                 | 11 ++++++++---
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/camel-example-spring-boot-health-checks/pom.xml b/camel-example-spring-boot-health-checks/pom.xml
index 13bc89e..8cf97f3 100644
--- a/camel-example-spring-boot-health-checks/pom.xml
+++ b/camel-example-spring-boot-health-checks/pom.xml
@@ -70,7 +70,7 @@
         <!-- Camel -->
         <dependency>
             <groupId>org.apache.camel.springboot</groupId>
-            <artifactId>camel-core-starter</artifactId>
+            <artifactId>camel-spring-boot-starter</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.camel.springboot</groupId>
diff --git a/camel-example-spring-boot-health-checks/src/main/resources/application.properties b/camel-example-spring-boot-health-checks/src/main/resources/application.properties
index 9077b44..c94d8af 100644
--- a/camel-example-spring-boot-health-checks/src/main/resources/application.properties
+++ b/camel-example-spring-boot-health-checks/src/main/resources/application.properties
@@ -29,11 +29,18 @@ management.endpoints.web.exposure.include=info,health
 # show verbose health details (/actuator/health) so you can see Camel information also
 management.endpoint.health.show-details=always
 
-camel.springboot.name = SampleHealthChecks
+# to turn off Camel info in (/actuator/info)
+management.info.camel.enabled=true
+management.info.camel.verbose=true
+
+camel.springboot.name = MyCamel
 
 # enable JMX which allows to also control health check
 camel.springboot.jmx-enabled = true
 
+# properties used in the route
+myPeriod = 10s
+
 # enable supervised route controller which will startup routes in safe manner
 camel.springboot.route-controller-supervise-enabled = true
 
@@ -81,5 +88,3 @@ camel.health.config[netty].failure-threshold = 10
 ###camel.health.config[*].interval = 10s
 ###camel.health.config[*].failure-threshold = 5
 
-# properties used in the route
-myPeriod = 10s


[camel-spring-boot-examples] 39/40: Code cleanup

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit ca5295202318c8931848799329b0ee810657674f
Author: Andrii Mealshchenko <ja...@gmail.com>
AuthorDate: Fri Sep 18 09:14:28 2020 +0300

    Code cleanup
---
 camel-example-spring-boot-apm-opentracing/pom.xml        |  8 --------
 .../src/main/java/sample/camel/CamelConfig.java          | 16 ++++++++++++++++
 .../src/main/java/sample/camel/Service1Application.java  |  4 +---
 3 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/camel-example-spring-boot-apm-opentracing/pom.xml b/camel-example-spring-boot-apm-opentracing/pom.xml
index b6dfd34..11c9102 100644
--- a/camel-example-spring-boot-apm-opentracing/pom.xml
+++ b/camel-example-spring-boot-apm-opentracing/pom.xml
@@ -91,14 +91,6 @@
             <artifactId>spring-boot-starter-web</artifactId>
         </dependency>
 
-        <!-- CDI API -->
-        <dependency>
-            <groupId>javax.enterprise</groupId>
-            <artifactId>cdi-api</artifactId>
-            <version>${cdi-api-2.0-version}</version>
-            <scope>provided</scope>
-        </dependency>
-
         <!-- elastico -->
         <dependency>
             <groupId>co.elastic.apm</groupId>
diff --git a/camel-example-spring-boot-apm-opentracing/src/main/java/sample/camel/CamelConfig.java b/camel-example-spring-boot-apm-opentracing/src/main/java/sample/camel/CamelConfig.java
index 6c5f875..d4535d5 100644
--- a/camel-example-spring-boot-apm-opentracing/src/main/java/sample/camel/CamelConfig.java
+++ b/camel-example-spring-boot-apm-opentracing/src/main/java/sample/camel/CamelConfig.java
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package sample.camel;
 
 import co.elastic.apm.opentracing.ElasticApmTracer;
diff --git a/camel-example-spring-boot-apm-opentracing/src/main/java/sample/camel/Service1Application.java b/camel-example-spring-boot-apm-opentracing/src/main/java/sample/camel/Service1Application.java
index 52c4f9c..aef6154 100644
--- a/camel-example-spring-boot-apm-opentracing/src/main/java/sample/camel/Service1Application.java
+++ b/camel-example-spring-boot-apm-opentracing/src/main/java/sample/camel/Service1Application.java
@@ -25,6 +25,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
  * A Spring Boot application that starts the Camel OpenTracing application.
  * <p/>
  * Notice we use the `@CamelOpenTracing` annotation to enable Camel with OpenTracing.
+ * Also we start APM Agent with `ElasticApmAttacher.attach()`
  */
 @SpringBootApplication
 @CamelOpenTracing
@@ -32,11 +33,8 @@ public class Service1Application {
     /**
      * A main method to start this application.
      */
-
     public static void main(String[] args) {
         ElasticApmAttacher.attach();
         SpringApplication.run(Service1Application.class, args);
     }
-
-
 }


[camel-spring-boot-examples] 36/40: Set 3.6.0-SNAPSHOT as version

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit 5ca6112b9b7756b6dd9f0b03a86513a87b31f8bd
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Tue Sep 8 07:39:47 2020 +0200

    Set 3.6.0-SNAPSHOT as version
---
 camel-example-spring-boot-activemq/pom.xml                              | 2 +-
 camel-example-spring-boot-amqp/pom.xml                                  | 2 +-
 camel-example-spring-boot-arangodb/pom.xml                              | 2 +-
 .../cluster-bootstrap/pom.xml                                           | 2 +-
 .../cluster-node/pom.xml                                                | 2 +-
 camel-example-spring-boot-clustered-route-controller/pom.xml            | 2 +-
 camel-example-spring-boot-fhir-auth-tx/pom.xml                          | 2 +-
 camel-example-spring-boot-fhir/pom.xml                                  | 2 +-
 camel-example-spring-boot-geocoder/pom.xml                              | 2 +-
 .../hello-camel-grpc-client-kubernetes/pom.xml                          | 2 +-
 .../hello-camel-grpc-server-kubernetes/pom.xml                          | 2 +-
 camel-example-spring-boot-grpc-kubernetes/pom.xml                       | 2 +-
 camel-example-spring-boot-grpc/hello-camel-grpc-client/pom.xml          | 2 +-
 camel-example-spring-boot-grpc/hello-camel-grpc-server/pom.xml          | 2 +-
 camel-example-spring-boot-grpc/pom.xml                                  | 2 +-
 camel-example-spring-boot-health-checks/pom.xml                         | 2 +-
 camel-example-spring-boot-hystrix/client/pom.xml                        | 2 +-
 camel-example-spring-boot-hystrix/pom.xml                               | 2 +-
 camel-example-spring-boot-hystrix/service1/pom.xml                      | 2 +-
 camel-example-spring-boot-hystrix/service2/pom.xml                      | 2 +-
 camel-example-spring-boot-infinispan/pom.xml                            | 2 +-
 camel-example-spring-boot-jira/pom.xml                                  | 2 +-
 camel-example-spring-boot-kafka-avro/pom.xml                            | 2 +-
 camel-example-spring-boot-kafka-offsetrepository/pom.xml                | 2 +-
 camel-example-spring-boot-master/pom.xml                                | 2 +-
 camel-example-spring-boot-metrics/pom.xml                               | 2 +-
 camel-example-spring-boot-opentracing/client/pom.xml                    | 2 +-
 camel-example-spring-boot-opentracing/loggingtracer/pom.xml             | 2 +-
 camel-example-spring-boot-opentracing/pom.xml                           | 2 +-
 camel-example-spring-boot-opentracing/service1/pom.xml                  | 2 +-
 camel-example-spring-boot-opentracing/service2/pom.xml                  | 2 +-
 camel-example-spring-boot-pojo/pom.xml                                  | 2 +-
 camel-example-spring-boot-rabbitmq/pom.xml                              | 2 +-
 camel-example-spring-boot-reactive-streams/pom.xml                      | 2 +-
 camel-example-spring-boot-resilience4j/client/pom.xml                   | 2 +-
 camel-example-spring-boot-resilience4j/client2/pom.xml                  | 2 +-
 camel-example-spring-boot-resilience4j/pom.xml                          | 2 +-
 camel-example-spring-boot-resilience4j/service1/pom.xml                 | 2 +-
 camel-example-spring-boot-resilience4j/service2/pom.xml                 | 2 +-
 camel-example-spring-boot-rest-jpa/pom.xml                              | 2 +-
 camel-example-spring-boot-rest-openapi-simple/pom.xml                   | 2 +-
 camel-example-spring-boot-rest-openapi/pom.xml                          | 2 +-
 camel-example-spring-boot-rest-producer/pom.xml                         | 2 +-
 camel-example-spring-boot-rest-swagger-simple/pom.xml                   | 2 +-
 camel-example-spring-boot-rest-swagger/pom.xml                          | 2 +-
 camel-example-spring-boot-servicecall/consumer/pom.xml                  | 2 +-
 camel-example-spring-boot-servicecall/pom.xml                           | 2 +-
 camel-example-spring-boot-servicecall/services/pom.xml                  | 2 +-
 camel-example-spring-boot-strimzi/pom.xml                               | 2 +-
 camel-example-spring-boot-supervising-route-controller/pom.xml          | 2 +-
 camel-example-spring-boot-twitter-salesforce/pom.xml                    | 2 +-
 camel-example-spring-boot-undertow-spring-security/pom.xml              | 2 +-
 camel-example-spring-boot-validator/pom.xml                             | 2 +-
 camel-example-spring-boot-webhook/pom.xml                               | 2 +-
 camel-example-spring-boot-widget-gadget/pom.xml                         | 2 +-
 camel-example-spring-boot-xml/pom.xml                                   | 2 +-
 camel-example-spring-boot-zipkin/client/pom.xml                         | 2 +-
 camel-example-spring-boot-zipkin/pom.xml                                | 2 +-
 camel-example-spring-boot-zipkin/service1/pom.xml                       | 2 +-
 camel-example-spring-boot-zipkin/service2/pom.xml                       | 2 +-
 camel-example-spring-boot/pom.xml                                       | 2 +-
 camel-example-spring-cloud-servicecall/consumer/pom.xml                 | 2 +-
 camel-example-spring-cloud-servicecall/pom.xml                          | 2 +-
 camel-example-spring-cloud-servicecall/service/pom.xml                  | 2 +-
 camel-example-spring-cloud-serviceregistry/consumer/pom.xml             | 2 +-
 camel-example-spring-cloud-serviceregistry/pom.xml                      | 2 +-
 camel-example-spring-cloud-serviceregistry/service/pom.xml              | 2 +-
 67 files changed, 67 insertions(+), 67 deletions(-)

diff --git a/camel-example-spring-boot-activemq/pom.xml b/camel-example-spring-boot-activemq/pom.xml
index 9bd8852..3577892 100644
--- a/camel-example-spring-boot-activemq/pom.xml
+++ b/camel-example-spring-boot-activemq/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-activemq</artifactId>
diff --git a/camel-example-spring-boot-amqp/pom.xml b/camel-example-spring-boot-amqp/pom.xml
index a787a02..c4bf95e 100644
--- a/camel-example-spring-boot-amqp/pom.xml
+++ b/camel-example-spring-boot-amqp/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-amqp</artifactId>
diff --git a/camel-example-spring-boot-arangodb/pom.xml b/camel-example-spring-boot-arangodb/pom.xml
index 1ab7b82..cd719d1 100644
--- a/camel-example-spring-boot-arangodb/pom.xml
+++ b/camel-example-spring-boot-arangodb/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-arangodb</artifactId>
diff --git a/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/pom.xml b/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/pom.xml
index b3dbe00..5cf9eed 100644
--- a/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/pom.xml
+++ b/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-clustered-route-controller</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-clustered-route-controller-cluster-bootstrap</artifactId>
diff --git a/camel-example-spring-boot-clustered-route-controller/cluster-node/pom.xml b/camel-example-spring-boot-clustered-route-controller/cluster-node/pom.xml
index 4dd7436..bd3ee3e 100644
--- a/camel-example-spring-boot-clustered-route-controller/cluster-node/pom.xml
+++ b/camel-example-spring-boot-clustered-route-controller/cluster-node/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-clustered-route-controller</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-clustered-route-controller-cluster-node</artifactId>
diff --git a/camel-example-spring-boot-clustered-route-controller/pom.xml b/camel-example-spring-boot-clustered-route-controller/pom.xml
index bebb2bc..fa3e3be 100644
--- a/camel-example-spring-boot-clustered-route-controller/pom.xml
+++ b/camel-example-spring-boot-clustered-route-controller/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-clustered-route-controller</artifactId>
diff --git a/camel-example-spring-boot-fhir-auth-tx/pom.xml b/camel-example-spring-boot-fhir-auth-tx/pom.xml
index f04dfb4..7ca6c22 100644
--- a/camel-example-spring-boot-fhir-auth-tx/pom.xml
+++ b/camel-example-spring-boot-fhir-auth-tx/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-fhir-auth-tx</artifactId>
diff --git a/camel-example-spring-boot-fhir/pom.xml b/camel-example-spring-boot-fhir/pom.xml
index 732f0c3..250ba82 100644
--- a/camel-example-spring-boot-fhir/pom.xml
+++ b/camel-example-spring-boot-fhir/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-fhir</artifactId>
diff --git a/camel-example-spring-boot-geocoder/pom.xml b/camel-example-spring-boot-geocoder/pom.xml
index 3936828..8535397 100644
--- a/camel-example-spring-boot-geocoder/pom.xml
+++ b/camel-example-spring-boot-geocoder/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-geocoder</artifactId>
diff --git a/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-client-kubernetes/pom.xml b/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-client-kubernetes/pom.xml
index 674abc2..5d887e6 100644
--- a/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-client-kubernetes/pom.xml
+++ b/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-client-kubernetes/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-grpc-kubernetes</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-hello-grpc-client-kubernetes</artifactId>
diff --git a/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-server-kubernetes/pom.xml b/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-server-kubernetes/pom.xml
index 86854e3..605fdf1 100644
--- a/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-server-kubernetes/pom.xml
+++ b/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-server-kubernetes/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-grpc-kubernetes</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-hello-grpc-server-kubernetes</artifactId>
diff --git a/camel-example-spring-boot-grpc-kubernetes/pom.xml b/camel-example-spring-boot-grpc-kubernetes/pom.xml
index d095c0b..a5985b4 100644
--- a/camel-example-spring-boot-grpc-kubernetes/pom.xml
+++ b/camel-example-spring-boot-grpc-kubernetes/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-grpc-kubernetes</artifactId>
diff --git a/camel-example-spring-boot-grpc/hello-camel-grpc-client/pom.xml b/camel-example-spring-boot-grpc/hello-camel-grpc-client/pom.xml
index 14f50b7..f1ccbd0 100644
--- a/camel-example-spring-boot-grpc/hello-camel-grpc-client/pom.xml
+++ b/camel-example-spring-boot-grpc/hello-camel-grpc-client/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-grpc</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-hello-grpc-client</artifactId>
diff --git a/camel-example-spring-boot-grpc/hello-camel-grpc-server/pom.xml b/camel-example-spring-boot-grpc/hello-camel-grpc-server/pom.xml
index 0009db5..0698528 100644
--- a/camel-example-spring-boot-grpc/hello-camel-grpc-server/pom.xml
+++ b/camel-example-spring-boot-grpc/hello-camel-grpc-server/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-grpc</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-hello-grpc-server</artifactId>
diff --git a/camel-example-spring-boot-grpc/pom.xml b/camel-example-spring-boot-grpc/pom.xml
index bdb94c9..dbc06d3 100644
--- a/camel-example-spring-boot-grpc/pom.xml
+++ b/camel-example-spring-boot-grpc/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-grpc</artifactId>
diff --git a/camel-example-spring-boot-health-checks/pom.xml b/camel-example-spring-boot-health-checks/pom.xml
index 23f7cb1..e524946 100644
--- a/camel-example-spring-boot-health-checks/pom.xml
+++ b/camel-example-spring-boot-health-checks/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-health-checks</artifactId>
diff --git a/camel-example-spring-boot-hystrix/client/pom.xml b/camel-example-spring-boot-hystrix/client/pom.xml
index 5d89f9e..2165925 100644
--- a/camel-example-spring-boot-hystrix/client/pom.xml
+++ b/camel-example-spring-boot-hystrix/client/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-hystrix</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-hystrix-client</artifactId>
diff --git a/camel-example-spring-boot-hystrix/pom.xml b/camel-example-spring-boot-hystrix/pom.xml
index 74e18d3..cbe08eb 100644
--- a/camel-example-spring-boot-hystrix/pom.xml
+++ b/camel-example-spring-boot-hystrix/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-hystrix</artifactId>
diff --git a/camel-example-spring-boot-hystrix/service1/pom.xml b/camel-example-spring-boot-hystrix/service1/pom.xml
index de7013b..70ac2aa 100644
--- a/camel-example-spring-boot-hystrix/service1/pom.xml
+++ b/camel-example-spring-boot-hystrix/service1/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-hystrix</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-hystrix-service1</artifactId>
diff --git a/camel-example-spring-boot-hystrix/service2/pom.xml b/camel-example-spring-boot-hystrix/service2/pom.xml
index 3959c24..7374d72 100644
--- a/camel-example-spring-boot-hystrix/service2/pom.xml
+++ b/camel-example-spring-boot-hystrix/service2/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-hystrix</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-hystrix-service2</artifactId>
diff --git a/camel-example-spring-boot-infinispan/pom.xml b/camel-example-spring-boot-infinispan/pom.xml
index cbea9b4..90eabb9 100644
--- a/camel-example-spring-boot-infinispan/pom.xml
+++ b/camel-example-spring-boot-infinispan/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-infinispan</artifactId>
diff --git a/camel-example-spring-boot-jira/pom.xml b/camel-example-spring-boot-jira/pom.xml
index b61f4ce..65ff42a 100644
--- a/camel-example-spring-boot-jira/pom.xml
+++ b/camel-example-spring-boot-jira/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-jira</artifactId>
diff --git a/camel-example-spring-boot-kafka-avro/pom.xml b/camel-example-spring-boot-kafka-avro/pom.xml
index c051260..842e728 100644
--- a/camel-example-spring-boot-kafka-avro/pom.xml
+++ b/camel-example-spring-boot-kafka-avro/pom.xml
@@ -23,7 +23,7 @@
   <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
   <artifactId>camel-example-spring-boot-kafka-avro</artifactId>
diff --git a/camel-example-spring-boot-kafka-offsetrepository/pom.xml b/camel-example-spring-boot-kafka-offsetrepository/pom.xml
index dcefd08..6e067cf 100644
--- a/camel-example-spring-boot-kafka-offsetrepository/pom.xml
+++ b/camel-example-spring-boot-kafka-offsetrepository/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-kafka-offsetrepository</artifactId>
diff --git a/camel-example-spring-boot-master/pom.xml b/camel-example-spring-boot-master/pom.xml
index b4307d3..80a316e 100644
--- a/camel-example-spring-boot-master/pom.xml
+++ b/camel-example-spring-boot-master/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-master</artifactId>
diff --git a/camel-example-spring-boot-metrics/pom.xml b/camel-example-spring-boot-metrics/pom.xml
index 7dd5a40..c7af86b 100644
--- a/camel-example-spring-boot-metrics/pom.xml
+++ b/camel-example-spring-boot-metrics/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-metrics</artifactId>
diff --git a/camel-example-spring-boot-opentracing/client/pom.xml b/camel-example-spring-boot-opentracing/client/pom.xml
index 66bff07..1fc8cfe 100644
--- a/camel-example-spring-boot-opentracing/client/pom.xml
+++ b/camel-example-spring-boot-opentracing/client/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-opentracing</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-opentracing-client</artifactId>
diff --git a/camel-example-spring-boot-opentracing/loggingtracer/pom.xml b/camel-example-spring-boot-opentracing/loggingtracer/pom.xml
index ade3413..a1ee49f 100644
--- a/camel-example-spring-boot-opentracing/loggingtracer/pom.xml
+++ b/camel-example-spring-boot-opentracing/loggingtracer/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-opentracing</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-opentracing-loggingtracer</artifactId>
diff --git a/camel-example-spring-boot-opentracing/pom.xml b/camel-example-spring-boot-opentracing/pom.xml
index 8befa92..a831339 100644
--- a/camel-example-spring-boot-opentracing/pom.xml
+++ b/camel-example-spring-boot-opentracing/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-opentracing</artifactId>
diff --git a/camel-example-spring-boot-opentracing/service1/pom.xml b/camel-example-spring-boot-opentracing/service1/pom.xml
index 7bbddf8..a9c3966 100644
--- a/camel-example-spring-boot-opentracing/service1/pom.xml
+++ b/camel-example-spring-boot-opentracing/service1/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-opentracing</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-opentracing-service1</artifactId>
diff --git a/camel-example-spring-boot-opentracing/service2/pom.xml b/camel-example-spring-boot-opentracing/service2/pom.xml
index 4e1886f..0d70a34 100644
--- a/camel-example-spring-boot-opentracing/service2/pom.xml
+++ b/camel-example-spring-boot-opentracing/service2/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-opentracing</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-opentracing-service2</artifactId>
diff --git a/camel-example-spring-boot-pojo/pom.xml b/camel-example-spring-boot-pojo/pom.xml
index 98f8c98..b76508d 100644
--- a/camel-example-spring-boot-pojo/pom.xml
+++ b/camel-example-spring-boot-pojo/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-pojo</artifactId>
diff --git a/camel-example-spring-boot-rabbitmq/pom.xml b/camel-example-spring-boot-rabbitmq/pom.xml
index 111a82c..c0aff61 100644
--- a/camel-example-spring-boot-rabbitmq/pom.xml
+++ b/camel-example-spring-boot-rabbitmq/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-rabbitmq</artifactId>
diff --git a/camel-example-spring-boot-reactive-streams/pom.xml b/camel-example-spring-boot-reactive-streams/pom.xml
index 54f0efd..40d3f78 100644
--- a/camel-example-spring-boot-reactive-streams/pom.xml
+++ b/camel-example-spring-boot-reactive-streams/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-reactive-streams</artifactId>
diff --git a/camel-example-spring-boot-resilience4j/client/pom.xml b/camel-example-spring-boot-resilience4j/client/pom.xml
index 2cef687..bf9bf3d 100644
--- a/camel-example-spring-boot-resilience4j/client/pom.xml
+++ b/camel-example-spring-boot-resilience4j/client/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-resilience4j</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-resilience4j-client</artifactId>
diff --git a/camel-example-spring-boot-resilience4j/client2/pom.xml b/camel-example-spring-boot-resilience4j/client2/pom.xml
index 6e1926e..82f264d 100644
--- a/camel-example-spring-boot-resilience4j/client2/pom.xml
+++ b/camel-example-spring-boot-resilience4j/client2/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-resilience4j</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-resilience4j-client2</artifactId>
diff --git a/camel-example-spring-boot-resilience4j/pom.xml b/camel-example-spring-boot-resilience4j/pom.xml
index 685619b..b1c9664 100644
--- a/camel-example-spring-boot-resilience4j/pom.xml
+++ b/camel-example-spring-boot-resilience4j/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-resilience4j</artifactId>
diff --git a/camel-example-spring-boot-resilience4j/service1/pom.xml b/camel-example-spring-boot-resilience4j/service1/pom.xml
index 5ba5b1d..706d3a7 100644
--- a/camel-example-spring-boot-resilience4j/service1/pom.xml
+++ b/camel-example-spring-boot-resilience4j/service1/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-resilience4j</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-resilience4j-service1</artifactId>
diff --git a/camel-example-spring-boot-resilience4j/service2/pom.xml b/camel-example-spring-boot-resilience4j/service2/pom.xml
index cf23fb9..f8ecb41 100644
--- a/camel-example-spring-boot-resilience4j/service2/pom.xml
+++ b/camel-example-spring-boot-resilience4j/service2/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-resilience4j</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-resilience4j-service2</artifactId>
diff --git a/camel-example-spring-boot-rest-jpa/pom.xml b/camel-example-spring-boot-rest-jpa/pom.xml
index 09bef8e..bc3e069 100644
--- a/camel-example-spring-boot-rest-jpa/pom.xml
+++ b/camel-example-spring-boot-rest-jpa/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-rest-jpa</artifactId>
diff --git a/camel-example-spring-boot-rest-openapi-simple/pom.xml b/camel-example-spring-boot-rest-openapi-simple/pom.xml
index 7df25d0..50b7eb2 100644
--- a/camel-example-spring-boot-rest-openapi-simple/pom.xml
+++ b/camel-example-spring-boot-rest-openapi-simple/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-rest-openapi-simple</artifactId>
diff --git a/camel-example-spring-boot-rest-openapi/pom.xml b/camel-example-spring-boot-rest-openapi/pom.xml
index e88fe16..4042d6f 100644
--- a/camel-example-spring-boot-rest-openapi/pom.xml
+++ b/camel-example-spring-boot-rest-openapi/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-rest-openapi</artifactId>
diff --git a/camel-example-spring-boot-rest-producer/pom.xml b/camel-example-spring-boot-rest-producer/pom.xml
index bff7b1c..668273a 100644
--- a/camel-example-spring-boot-rest-producer/pom.xml
+++ b/camel-example-spring-boot-rest-producer/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-rest-producer</artifactId>
diff --git a/camel-example-spring-boot-rest-swagger-simple/pom.xml b/camel-example-spring-boot-rest-swagger-simple/pom.xml
index 7c82101..7d8ca95 100644
--- a/camel-example-spring-boot-rest-swagger-simple/pom.xml
+++ b/camel-example-spring-boot-rest-swagger-simple/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-rest-swagger-simple</artifactId>
diff --git a/camel-example-spring-boot-rest-swagger/pom.xml b/camel-example-spring-boot-rest-swagger/pom.xml
index 83d8870..b8079e2 100644
--- a/camel-example-spring-boot-rest-swagger/pom.xml
+++ b/camel-example-spring-boot-rest-swagger/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-rest-swagger</artifactId>
diff --git a/camel-example-spring-boot-servicecall/consumer/pom.xml b/camel-example-spring-boot-servicecall/consumer/pom.xml
index 3916b4b..af3c78c 100644
--- a/camel-example-spring-boot-servicecall/consumer/pom.xml
+++ b/camel-example-spring-boot-servicecall/consumer/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-servicecall</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-servicecall-consumer</artifactId>
diff --git a/camel-example-spring-boot-servicecall/pom.xml b/camel-example-spring-boot-servicecall/pom.xml
index bc437ae..c58b3c6 100644
--- a/camel-example-spring-boot-servicecall/pom.xml
+++ b/camel-example-spring-boot-servicecall/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-servicecall</artifactId>
diff --git a/camel-example-spring-boot-servicecall/services/pom.xml b/camel-example-spring-boot-servicecall/services/pom.xml
index 3627c91..5bbb0fc 100644
--- a/camel-example-spring-boot-servicecall/services/pom.xml
+++ b/camel-example-spring-boot-servicecall/services/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-servicecall</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-servicecall-services</artifactId>
diff --git a/camel-example-spring-boot-strimzi/pom.xml b/camel-example-spring-boot-strimzi/pom.xml
index c8dee81..fb865e5 100644
--- a/camel-example-spring-boot-strimzi/pom.xml
+++ b/camel-example-spring-boot-strimzi/pom.xml
@@ -23,7 +23,7 @@
 	<parent>
 		<groupId>org.apache.camel.springboot.example</groupId>
 		<artifactId>examples</artifactId>
-		<version>3.5.0-SNAPSHOT</version>
+		<version>3.6.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>camel-example-spring-boot-strimzi</artifactId>
diff --git a/camel-example-spring-boot-supervising-route-controller/pom.xml b/camel-example-spring-boot-supervising-route-controller/pom.xml
index 8c3176e..9de18b4 100644
--- a/camel-example-spring-boot-supervising-route-controller/pom.xml
+++ b/camel-example-spring-boot-supervising-route-controller/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-supervising-route-controller</artifactId>
diff --git a/camel-example-spring-boot-twitter-salesforce/pom.xml b/camel-example-spring-boot-twitter-salesforce/pom.xml
index 75f6f38..2a7ae5d 100644
--- a/camel-example-spring-boot-twitter-salesforce/pom.xml
+++ b/camel-example-spring-boot-twitter-salesforce/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-twitter-salesforce</artifactId>
diff --git a/camel-example-spring-boot-undertow-spring-security/pom.xml b/camel-example-spring-boot-undertow-spring-security/pom.xml
index 491b297..ee760dc 100644
--- a/camel-example-spring-boot-undertow-spring-security/pom.xml
+++ b/camel-example-spring-boot-undertow-spring-security/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>examples</artifactId>
         <groupId>org.apache.camel.springboot.example</groupId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/camel-example-spring-boot-validator/pom.xml b/camel-example-spring-boot-validator/pom.xml
index 4ed69c3..49546d0 100644
--- a/camel-example-spring-boot-validator/pom.xml
+++ b/camel-example-spring-boot-validator/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-validator</artifactId>
diff --git a/camel-example-spring-boot-webhook/pom.xml b/camel-example-spring-boot-webhook/pom.xml
index 8e5244c..a178449 100644
--- a/camel-example-spring-boot-webhook/pom.xml
+++ b/camel-example-spring-boot-webhook/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>examples</artifactId>
         <groupId>org.apache.camel.springboot.example</groupId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/camel-example-spring-boot-widget-gadget/pom.xml b/camel-example-spring-boot-widget-gadget/pom.xml
index f844b7a..1147857 100644
--- a/camel-example-spring-boot-widget-gadget/pom.xml
+++ b/camel-example-spring-boot-widget-gadget/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <artifactId>examples</artifactId>
         <groupId>org.apache.camel.springboot.example</groupId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/camel-example-spring-boot-xml/pom.xml b/camel-example-spring-boot-xml/pom.xml
index 1efcc4a..b4a610d 100644
--- a/camel-example-spring-boot-xml/pom.xml
+++ b/camel-example-spring-boot-xml/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-xml</artifactId>
diff --git a/camel-example-spring-boot-zipkin/client/pom.xml b/camel-example-spring-boot-zipkin/client/pom.xml
index 02a4a64..b10074a 100644
--- a/camel-example-spring-boot-zipkin/client/pom.xml
+++ b/camel-example-spring-boot-zipkin/client/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-zipkin</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-zipkin-client</artifactId>
diff --git a/camel-example-spring-boot-zipkin/pom.xml b/camel-example-spring-boot-zipkin/pom.xml
index e3ff935..11d9c83 100644
--- a/camel-example-spring-boot-zipkin/pom.xml
+++ b/camel-example-spring-boot-zipkin/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-zipkin</artifactId>
diff --git a/camel-example-spring-boot-zipkin/service1/pom.xml b/camel-example-spring-boot-zipkin/service1/pom.xml
index ff88b90..c312428 100644
--- a/camel-example-spring-boot-zipkin/service1/pom.xml
+++ b/camel-example-spring-boot-zipkin/service1/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-zipkin</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-zipkin-service1</artifactId>
diff --git a/camel-example-spring-boot-zipkin/service2/pom.xml b/camel-example-spring-boot-zipkin/service2/pom.xml
index 11e1608..4e991ce 100644
--- a/camel-example-spring-boot-zipkin/service2/pom.xml
+++ b/camel-example-spring-boot-zipkin/service2/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-zipkin</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-zipkin-service2</artifactId>
diff --git a/camel-example-spring-boot/pom.xml b/camel-example-spring-boot/pom.xml
index dfc8fe3..6a5fc7e 100644
--- a/camel-example-spring-boot/pom.xml
+++ b/camel-example-spring-boot/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot</artifactId>
diff --git a/camel-example-spring-cloud-servicecall/consumer/pom.xml b/camel-example-spring-cloud-servicecall/consumer/pom.xml
index 6e3f770..36d806e 100644
--- a/camel-example-spring-cloud-servicecall/consumer/pom.xml
+++ b/camel-example-spring-cloud-servicecall/consumer/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-cloud-servicecall</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-cloud-servicecall-consumer</artifactId>
diff --git a/camel-example-spring-cloud-servicecall/pom.xml b/camel-example-spring-cloud-servicecall/pom.xml
index 28b858d..2fd6b73 100644
--- a/camel-example-spring-cloud-servicecall/pom.xml
+++ b/camel-example-spring-cloud-servicecall/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-cloud-servicecall</artifactId>
diff --git a/camel-example-spring-cloud-servicecall/service/pom.xml b/camel-example-spring-cloud-servicecall/service/pom.xml
index b0af493..2939795 100644
--- a/camel-example-spring-cloud-servicecall/service/pom.xml
+++ b/camel-example-spring-cloud-servicecall/service/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-cloud-servicecall</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-cloud-servicecall-service</artifactId>
diff --git a/camel-example-spring-cloud-serviceregistry/consumer/pom.xml b/camel-example-spring-cloud-serviceregistry/consumer/pom.xml
index 58e0634..4f922f1 100644
--- a/camel-example-spring-cloud-serviceregistry/consumer/pom.xml
+++ b/camel-example-spring-cloud-serviceregistry/consumer/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-cloud-serviceregistry</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-cloud-serviceregistry-consumer</artifactId>
diff --git a/camel-example-spring-cloud-serviceregistry/pom.xml b/camel-example-spring-cloud-serviceregistry/pom.xml
index c97dd26..05155f9 100644
--- a/camel-example-spring-cloud-serviceregistry/pom.xml
+++ b/camel-example-spring-cloud-serviceregistry/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-cloud-serviceregistry</artifactId>
diff --git a/camel-example-spring-cloud-serviceregistry/service/pom.xml b/camel-example-spring-cloud-serviceregistry/service/pom.xml
index cd10736..9a6fd0f 100644
--- a/camel-example-spring-cloud-serviceregistry/service/pom.xml
+++ b/camel-example-spring-cloud-serviceregistry/service/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-cloud-serviceregistry</artifactId>
-        <version>3.5.0-SNAPSHOT</version>
+        <version>3.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-cloud-serviceregistry-service</artifactId>


[camel-spring-boot-examples] 13/40: health check

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit 5d18472bb2a9403cc79697909a35fb826e98a0a9
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Jun 9 07:38:32 2020 +0200

    health check
---
 camel-example-spring-boot-health-checks/pom.xml    | 10 +++-
 .../readme.adoc                                    |  5 ++
 .../src/main/java/sample/camel/Application.java    |  1 +
 .../sample/camel/ApplicationConfiguration.java     | 62 ----------------------
 ...pplicationCheck.java => MonkeyHealthCheck.java} | 39 ++++++++------
 .../{Application.java => MyConfiguration.java}     | 23 ++++----
 .../{ApplicationCheck.java => MyRouteBuilder.java} | 42 ++++++---------
 .../src/main/resources/application.properties      | 61 +++++++++++++++------
 8 files changed, 108 insertions(+), 135 deletions(-)

diff --git a/camel-example-spring-boot-health-checks/pom.xml b/camel-example-spring-boot-health-checks/pom.xml
index f5dc7cb..13bc89e 100644
--- a/camel-example-spring-boot-health-checks/pom.xml
+++ b/camel-example-spring-boot-health-checks/pom.xml
@@ -70,7 +70,15 @@
         <!-- Camel -->
         <dependency>
             <groupId>org.apache.camel.springboot</groupId>
-            <artifactId>camel-stream-starter</artifactId>
+            <artifactId>camel-core-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-netty-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-management</artifactId>
         </dependency>
     </dependencies>
 
diff --git a/camel-example-spring-boot-health-checks/readme.adoc b/camel-example-spring-boot-health-checks/readme.adoc
index aede7b3..4d211e2 100644
--- a/camel-example-spring-boot-health-checks/readme.adoc
+++ b/camel-example-spring-boot-health-checks/readme.adoc
@@ -23,6 +23,11 @@ $ http://localhost:8080/actuator/health
 The returned response should include the health checks from Apache Camel,
 and as well two custom checks.
 
+=== JMX Management
+
+You can from JMX see the health-check status in the Camel tree under health and
+find the DefaultHealthCheck MBean.
+
 === Help and contributions
 
 If you hit any problem using Camel or have some feedback, then please
diff --git a/camel-example-spring-boot-health-checks/src/main/java/sample/camel/Application.java b/camel-example-spring-boot-health-checks/src/main/java/sample/camel/Application.java
index d7ee3f1..5c8aafa 100644
--- a/camel-example-spring-boot-health-checks/src/main/java/sample/camel/Application.java
+++ b/camel-example-spring-boot-health-checks/src/main/java/sample/camel/Application.java
@@ -25,6 +25,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
  */
 @SpringBootApplication
 public class Application {
+
     /**
      * A main method to start this application.
      */
diff --git a/camel-example-spring-boot-health-checks/src/main/java/sample/camel/ApplicationConfiguration.java b/camel-example-spring-boot-health-checks/src/main/java/sample/camel/ApplicationConfiguration.java
deleted file mode 100644
index aff4530..0000000
--- a/camel-example-spring-boot-health-checks/src/main/java/sample/camel/ApplicationConfiguration.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package sample.camel;
-
-import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.builder.RouteBuilder;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class ApplicationConfiguration {
-
-    @Bean
-    public RouteBuilder routesBuilder() {
-        return new RouteBuilder() {
-            public void configure() throws Exception {
-                // to be less verbose
-                errorHandler(defaultErrorHandler().logStackTrace(false).logExhaustedMessageHistory(false).logExhausted(false));
-
-                from("timer:foo?bridgeErrorHandler=true&period=4000")
-                    .routeId("foo")
-                    .process(e -> {
-                        throw new RuntimeCamelException("This is a forced exception to have health check monitor this failure (route=foo)"); 
-                    });
-                from("timer:bar?bridgeErrorHandler=true&period=5000")
-                    .routeId("bar")
-                    .process(e -> {
-                        throw new RuntimeCamelException("This is a forced exception to have health check monitor this failure (route=bar)");
-                    });
-                from("timer:slow?period=1000")
-                    .routeId("slow")
-                    .process(e -> {
-                        Thread.sleep(1200);
-                    });
-            }
-        };
-    }
-
-    @Bean(name = "my-check-1")
-    public ApplicationCheck applicationHealth1() {
-        return new ApplicationCheck("global", "my-check-1");
-    }
-
-    @Bean(name = "my-check-2")
-    public ApplicationCheck applicationHealth2() {
-        return new ApplicationCheck("local", "my-check-2");
-    }
-}
diff --git a/camel-example-spring-boot-health-checks/src/main/java/sample/camel/ApplicationCheck.java b/camel-example-spring-boot-health-checks/src/main/java/sample/camel/MonkeyHealthCheck.java
similarity index 59%
copy from camel-example-spring-boot-health-checks/src/main/java/sample/camel/ApplicationCheck.java
copy to camel-example-spring-boot-health-checks/src/main/java/sample/camel/MonkeyHealthCheck.java
index 9b73bc3..6ece658 100644
--- a/camel-example-spring-boot-health-checks/src/main/java/sample/camel/ApplicationCheck.java
+++ b/camel-example-spring-boot-health-checks/src/main/java/sample/camel/MonkeyHealthCheck.java
@@ -17,33 +17,38 @@
 package sample.camel;
 
 import java.util.Map;
-import java.util.UUID;
 
 import org.apache.camel.health.HealthCheckResultBuilder;
 import org.apache.camel.impl.health.AbstractHealthCheck;
 
-public class ApplicationCheck extends AbstractHealthCheck {
-    private State state;
-
-    public ApplicationCheck(String group, String id) {
-        super(group, id);
+/**
+ * A chaos monkey health check that reports UP or DOWN in a chaotic way.
+ *
+ * This is a custom implementation of a Camel {@link org.apache.camel.health.HealthCheck}
+ * which is automatic discovered if bound in the {@link org.apache.camel.spi.Registry} and
+ * used as part of Camel's health-check system.
+ */
+public class MonkeyHealthCheck extends AbstractHealthCheck {
 
-        this.state = State.UP;
+    private boolean up = true;
 
-        getConfiguration().setEnabled(true);
+    protected MonkeyHealthCheck() {
+        super("custom", "monkey");
     }
 
-
-    public State getState() {
-        return state;
+    @Override
+    protected void doCall(HealthCheckResultBuilder builder, Map<String, Object> options) {
+        builder.detail("monkey", "The chaos monkey was here");
+        if (up) {
+            builder.up();
+        } else {
+            builder.down();
+        }
     }
 
-    public void setState(State state) {
-        this.state = state;
+    public String chaos() {
+        up = !up;
+        return up ? "All is okay" : "Chaos monkey was here";
     }
 
-    @Override
-    protected void doCall(HealthCheckResultBuilder builder, Map<String, Object> options) {
-        builder.state(state).detail("random.value", UUID.randomUUID().toString());
-    }
 }
diff --git a/camel-example-spring-boot-health-checks/src/main/java/sample/camel/Application.java b/camel-example-spring-boot-health-checks/src/main/java/sample/camel/MyConfiguration.java
similarity index 65%
copy from camel-example-spring-boot-health-checks/src/main/java/sample/camel/Application.java
copy to camel-example-spring-boot-health-checks/src/main/java/sample/camel/MyConfiguration.java
index d7ee3f1..33259f2 100644
--- a/camel-example-spring-boot-health-checks/src/main/java/sample/camel/Application.java
+++ b/camel-example-spring-boot-health-checks/src/main/java/sample/camel/MyConfiguration.java
@@ -16,20 +16,15 @@
  */
 package sample.camel;
 
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
 
-//CHECKSTYLE:OFF
-/**
- * A sample Spring Boot application that starts the Camel routes.
- */
-@SpringBootApplication
-public class Application {
-    /**
-     * A main method to start this application.
-     */
-    public static void main(String[] args) {
-        SpringApplication.run(Application.class, args);
+@Configuration
+public class MyConfiguration {
+
+    @Bean(name = "monkey")
+    public MonkeyHealthCheck newMonkey() {
+        return new MonkeyHealthCheck();
     }
+
 }
-//CHECKSTYLE:ON
diff --git a/camel-example-spring-boot-health-checks/src/main/java/sample/camel/ApplicationCheck.java b/camel-example-spring-boot-health-checks/src/main/java/sample/camel/MyRouteBuilder.java
similarity index 53%
rename from camel-example-spring-boot-health-checks/src/main/java/sample/camel/ApplicationCheck.java
rename to camel-example-spring-boot-health-checks/src/main/java/sample/camel/MyRouteBuilder.java
index 9b73bc3..b1cbbe1 100644
--- a/camel-example-spring-boot-health-checks/src/main/java/sample/camel/ApplicationCheck.java
+++ b/camel-example-spring-boot-health-checks/src/main/java/sample/camel/MyRouteBuilder.java
@@ -16,34 +16,26 @@
  */
 package sample.camel;
 
-import java.util.Map;
-import java.util.UUID;
+import org.apache.camel.builder.RouteBuilder;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
 
-import org.apache.camel.health.HealthCheckResultBuilder;
-import org.apache.camel.impl.health.AbstractHealthCheck;
+@Component
+public class MyRouteBuilder extends RouteBuilder {
 
-public class ApplicationCheck extends AbstractHealthCheck {
-    private State state;
-
-    public ApplicationCheck(String group, String id) {
-        super(group, id);
-
-        this.state = State.UP;
-
-        getConfiguration().setEnabled(true);
-    }
-
-
-    public State getState() {
-        return state;
-    }
-
-    public void setState(State state) {
-        this.state = state;
-    }
+    // we can inject the bean via this annotation
+    @Autowired
+    MonkeyHealthCheck monkey;
 
     @Override
-    protected void doCall(HealthCheckResultBuilder builder, Map<String, Object> options) {
-        builder.state(state).detail("random.value", UUID.randomUUID().toString());
+    public void configure() throws Exception {
+        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/camel-example-spring-boot-health-checks/src/main/resources/application.properties b/camel-example-spring-boot-health-checks/src/main/resources/application.properties
index 2a89be8..9077b44 100644
--- a/camel-example-spring-boot-health-checks/src/main/resources/application.properties
+++ b/camel-example-spring-boot-health-checks/src/main/resources/application.properties
@@ -31,26 +31,55 @@ management.endpoint.health.show-details=always
 
 camel.springboot.name = SampleHealthChecks
 
-################################################################################
-#
-# health checks
-#
-################################################################################
+# enable JMX which allows to also control health check
+camel.springboot.jmx-enabled = true
 
-# Enable camel health check
-camel.health.enabled = true
+# enable supervised route controller which will startup routes in safe manner
+camel.springboot.route-controller-supervise-enabled = true
+
+# attempt up till 10 times to start a route (and exhaust if still failing)
+# when a route is exhausted then its taken out as being supervised and
+# will not take part of health-check either (UNKNOWN state)
+camel.springboot.route-controller-back-off-max-attempts = 10
+# when starting a route (and restarts) fails all attempts
+# then we can control whether the route should be influence the health-check
+# and report the route as either UNKNOWN or DOWN. Setting this option to true
+# will report it as DOWN otherwise its UNKNOWN
+###camel.springboot.route-controller-unhealthy-on-exhausted = true
 
-# Enable camel HealthCheck for routes.
+# enable health check (is automatic enabled if discovered on classpath)
+# global flag to enable/disable
+camel.health.enabled = true
+# context check is default included but we can turn it on|off
+camel.health.context-enabled = true
+# routes check is default included but we can turn it on|off
 camel.health.routes-enabled = true
+# registry check is default included but we can turn it on|off
+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
 
-# fine grained configuration for foo route
-camel.health.config[foo].parent=routes
-camel.health.config[foo].interval=10000
-camel.health.config[foo].failure-threshold=5
+# and configure each individually
+camel.health.config[timer].parent = routes
+camel.health.config[timer].interval = 5000
+camel.health.config[netty].parent = routes
+camel.health.config[netty].interval = 20000
+camel.health.config[netty].failure-threshold = 10
 
-# fine grained configuration for bar route
-camel.health.config[bar].parent=routes
-camel.health.config[bar].interval=10000
-camel.health.config[bar].failure-threshold=10
+# find grained routes configuration per route (support wildcards)
+# (enabled is default true for discovered health-checks)
+### camel.health.config[*].enabled = true
 
+# allow 5 failures with 10s apart as slack to handle routes being flaky
+# however if after 5 failures then the state will be regarded as DOWN onwards
+# (the route can recover and the state will then be UP)
+###camel.health.config[*].parent = routes
+###camel.health.config[*].interval = 10s
+###camel.health.config[*].failure-threshold = 5
 
+# properties used in the route
+myPeriod = 10s


[camel-spring-boot-examples] 19/40: Merge pull request #1 from zbendhiba/arangodb-example

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit 3e90cfeb7cf5674cdaddd64c44895d490e5f3118
Merge: 0257fd6 a7ba33b
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Aug 5 12:38:44 2020 +0200

    Merge pull request #1 from zbendhiba/arangodb-example
    
    camel-arangodb-starter example

 README.adoc                                        |  4 +-
 camel-example-spring-boot-arangodb/pom.xml         | 88 ++++++++++++++++++++++
 camel-example-spring-boot-arangodb/src/README.adoc | 50 ++++++++++++
 .../example/springboot/arangodb/Application.java   | 34 +++++++++
 .../example/springboot/arangodb/CamelRoute.java    | 37 +++++++++
 .../example/springboot/arangodb/MyBeanService.java | 39 ++++++++++
 .../src/main/resources/application.properties      | 23 ++++++
 pom.xml                                            |  1 +
 8 files changed, 275 insertions(+), 1 deletion(-)


[camel-spring-boot-examples] 11/40: health check

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit 066c0febd830a4b78a2f9f9a6963c131f0f485fb
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Jun 8 13:52:00 2020 +0200

    health check
---
 .../application/pom.xml                            | 111 ------------
 .../src/main/resources/application.properties      |  80 ---------
 camel-example-spring-boot-health-checks/pom.xml    |  61 ++++++-
 .../readme.adoc                                    | 199 +--------------------
 .../service/pom.xml                                |  89 ---------
 .../service/src/main/bash/consul-run-linux.sh      |  59 ------
 .../service/src/main/bash/consul-run-osx.sh        |  62 -------
 .../src/main/java/sample/service/Application.java  |  36 ----
 .../src/main/resources/application.properties      |  25 ---
 .../src/main/java/sample/camel/Application.java    |   0
 .../main/java/sample/camel/ApplicationCheck.java   |   0
 .../sample/camel/ApplicationConfiguration.java     |   8 +-
 .../src/main/resources/application.properties      |  54 +++---
 .../src/main/resources/application.properties      |   3 +
 14 files changed, 97 insertions(+), 690 deletions(-)

diff --git a/camel-example-spring-boot-health-checks/application/pom.xml b/camel-example-spring-boot-health-checks/application/pom.xml
deleted file mode 100644
index 945d877..0000000
--- a/camel-example-spring-boot-health-checks/application/pom.xml
+++ /dev/null
@@ -1,111 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.camel.springboot.example</groupId>
-        <artifactId>camel-example-spring-boot-health-checks</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>camel-example-spring-boot-health-checks-application</artifactId>
-    <name>Camel SB Examples :: Health Checks :: Application</name>
-
-    <properties>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <spring.boot-version>${spring-boot-version}</spring.boot-version>
-    </properties>
-
-    <dependencyManagement>
-        <dependencies>
-            <!-- Spring Boot BOM -->
-            <dependency>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-dependencies</artifactId>
-                <version>${spring.boot-version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-            <!-- Camel BOM -->
-            <dependency>
-                <groupId>org.apache.camel.springboot</groupId>
-                <artifactId>camel-spring-boot-dependencies</artifactId>
-                <version>${project.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-
-    <dependencies>
-        <!-- Spring Boot -->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.springframework.boot</groupId>
-                    <artifactId>spring-boot-starter-tomcat</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-undertow</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-actuator</artifactId>
-        </dependency>
-        <!-- Camel -->
-        <dependency>
-            <groupId>org.apache.camel.springboot</groupId>
-            <artifactId>camel-spring-boot-starter</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.springboot</groupId>
-            <artifactId>camel-stream-starter</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.springboot</groupId>
-            <artifactId>camel-consul-starter</artifactId>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-                <version>${spring-boot-version}</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>repackage</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-</project>
diff --git a/camel-example-spring-boot-health-checks/application/src/main/resources/application.properties b/camel-example-spring-boot-health-checks/application/src/main/resources/application.properties
deleted file mode 100644
index 15d0eb8..0000000
--- a/camel-example-spring-boot-health-checks/application/src/main/resources/application.properties
+++ /dev/null
@@ -1,80 +0,0 @@
-## ---------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-##      http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ---------------------------------------------------------------------------
-
-debug = false
-
-logging.level.org.springframework = INFO
-logging.level.org.apache.camel.spring.boot = INFO
-logging.level.org.apache.camel.health = DEBUG
-logging.level.org.apache.camel.impl.health = DEBUG
-logging.level.sample.camel = DEBUG
-
-management.endpoints.enabled-by-default = false
-management.endpoint.mappings.enabled = true
-management.endpoint.health.enabled = true
-management.endpoint.camelhealthchecks.enabled = true
-
-camel.springboot.name = SampleHealthChecks
-
-################################################################################
-#
-# health checks
-#
-################################################################################
-
-# Enable camel health indicator
-camel.health.indicator.enabled = true
-
-# Enable camel HealthCheck integration with spring's health indicator.
-camel.health.check.indicator.enabled = true
-
-# Enable camel HealthCheck for routes.
-camel.health.check.routes.enabled = true
-camel.health.check.routes.thresholds.exchanges-failed = 10
-camel.health.check.routes.threshold[bar].exchanges-failed = 20
-camel.health.check.routes.threshold[slow].inherit = false
-camel.health.check.routes.threshold[slow].last-processing-time.threshold = 1000
-camel.health.check.routes.threshold[slow].last-processing-time.failures = 5
-
-# HealthChecks can be pulled out from SpringBoot's health endpoint using either
-# the literal id or a regexp. Exclusion list can be applied to both the ID or the
-# Group as shown below:
-#
-#camel.health.check.indicator.exclusion.ids[0] = my-.*-2
-#camel.health.check.indicator.exclusion.groups[0] = global
-
-# Without the HealthCheckService running each invocation to either the Camel's
-# health check endpoint or SpringBoot's one results in an invocation of the check
-# whereas when enables, all the responses are cached until the check timeout is
-# reached or the invocation is forced.
-#
-#camel.health.check.service.enabled = true
-#camel.health.check.service.check-interval = 10000
-
-################################################################################
-#
-# Consul repository
-#
-# Make consul checks identified by http and file available to camel
-#
-################################################################################
-
-camel.component.consul.health.check.repository.enabled = true
-camel.component.consul.health.check.repository.url = http://localhost:8500
-camel.component.consul.health.check.repository.checks[0] = http
-camel.component.consul.health.check.repository.checks[1] = file
-
diff --git a/camel-example-spring-boot-health-checks/pom.xml b/camel-example-spring-boot-health-checks/pom.xml
index ca6c6a5..f5dc7cb 100644
--- a/camel-example-spring-boot-health-checks/pom.xml
+++ b/camel-example-spring-boot-health-checks/pom.xml
@@ -29,20 +29,65 @@
 
     <artifactId>camel-example-spring-boot-health-checks</artifactId>
     <name>Camel SB Examples :: Health Checks</name>
-    <description>An example showing how to work with Camel's Health Checks and Spring Boot</description>
-    <packaging>pom</packaging>
 
     <properties>
-        <category>Beginner</category>
-
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
         <spring.boot-version>${spring-boot-version}</spring.boot-version>
     </properties>
 
+    <dependencyManagement>
+        <dependencies>
+            <!-- Spring Boot BOM -->
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring.boot-version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <!-- Camel BOM -->
+            <dependency>
+                <groupId>org.apache.camel.springboot</groupId>
+                <artifactId>camel-spring-boot-dependencies</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <!-- Spring Boot -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-actuator</artifactId>
+        </dependency>
+        <!-- Camel -->
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-stream-starter</artifactId>
+        </dependency>
+    </dependencies>
 
-    <modules>
-        <module>service</module>
-        <module>application</module>
-    </modules>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring-boot-version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
 </project>
diff --git a/camel-example-spring-boot-health-checks/readme.adoc b/camel-example-spring-boot-health-checks/readme.adoc
index 2641562..aede7b3 100644
--- a/camel-example-spring-boot-health-checks/readme.adoc
+++ b/camel-example-spring-boot-health-checks/readme.adoc
@@ -6,209 +6,22 @@ NOTE: Some of the routes fail intentionally to have health check monitor their f
 
 === How to run
 
-* mvn clean package
-* service/src/main/bash/consul-run-linux.sh
-* mvn -pl service spring-boot:run
-* mvn -pl application spring-boot:run
-
-=== How to play with the example
-
-You can interact with the example using curl or httpie
-
-* Trigger the checks an gather the results:
-+
-[source,console]
-----
-$ http -b GET localhost:8080/camel/health/check
-----
-+
-[source,json]
-----
-[
-    {
-        "check": {
-            "id": "consul-file"
-        },
-        "status": "UP"
-    },
-    {
-        "check": {
-            "id": "consul-http"
-        },
-        "status": "UP"
-    },
-    {
-        "check": {
-            "group": "global",
-            "id": "my-check-1"
-        },
-        "status": "UP"
-    },
-    {
-        "check": {
-            "group": "local",
-            "id": "my-check-2"
-        },
-        "status": "UP"
-    }
-]
-----
-
-* Query the status of a named check
-+
-[source,console]
-----
-$ http -b GET localhost:8080/camel/health/check/consul-http
-----
-+
-[source,json]
-----
-{
-    "check": {
-        "configuration": {
-            "enabled": true,
-            "failureThreshold": 0,
-            "interval": "PT0S"
-        },
-        "id": "consul-http",
-        "metaData": {
-            "check.id": "consul-http",
-            "failure.count": 0,
-            "invocation.attempt.time": "2017-08-29T10:03:10.292+02:00[Europe/Rome]",
-            "invocation.count": 3,
-            "invocation.time": "2017-08-29T10:03:10.292+02:00[Europe/Rome]"
-        }
-    },
-    "details": {
-        "consul.check.id": "http",
-        "consul.check.status": "passing",
-        "consul.service.id": "",
-        "consul.service.name": "",
-        "failure.count": 0,
-        "invocation.count": 3,
-        "invocation.time": "2017-08-29T10:03:10.292+02:00[Europe/Rome]"
-    },
-    "status": "UP"
-}
-----
-+
-IMPORTANT: This call may result in a direct invocation of the check, the behavior is implementation dependant.
-
-
-* Trigger a named check
-+
 [source,console]
 ----
-$ http -b GET localhost:8080/camel/health/check/consul-http/invoke
-----
-+
-[source,json]
-----
-{
-    "check": {
-        "configuration": {
-            "enabled": true,
-            "failureThreshold": 0,
-            "interval": "PT0S"
-        },
-        "id": "consul-http",
-        "metaData": {
-            "check.id": "consul-http",
-            "failure.count": 0,
-            "invocation.attempt.time": "2017-08-29T10:05:02.729+02:00[Europe/Rome]",
-            "invocation.count": 14,
-            "invocation.time": "2017-08-29T10:05:02.729+02:00[Europe/Rome]"
-        }
-    },
-    "details": {
-        "consul.check.id": "http",
-        "consul.check.status": "passing",
-        "consul.service.id": "",
-        "consul.service.name": "",
-        "failure.count": 0,
-        "invocation.count": 14,
-        "invocation.time": "2017-08-29T10:05:02.729+02:00[Europe/Rome]"
-    },
-    "status": "UP"
-}
+mvn compile spring-boot:run
 ----
 
-* Check the application status using Spring-Boot's health endpoint:
-+
-[source,console]
-----
-$ http -b GET localhost:8080/health
-----
-+
-[source,json]
-----
-{
-    "camel": {
-        "contextStatus": "Started",
-        "name": "SampleHealthChecks",
-        "status": "UP",
-        "version": "2.20.0-SNAPSHOT"
-    },
-    "camel-health-checks": {
-        "consul-file": "UP",
-        "consul-http": "UP",
-        "my-check-1": "UP",
-        "my-check-2": "UP",
-        "status": "UP"
-    },
-    "diskSpace": {
-        "free": 120546111488,
-        "status": "UP",
-        "threshold": 10485760,
-        "total": 192459673600
-    },
-    "status": "UP"
-}
-----
+=== Health Check
 
-If you stop the `service` application, the Spring-Boot's health endpoint will report the `application` as un-healthy:
+You can query the health check of the application using Spring Boot actuator:
 
 [source,console]
 ----
-$ http -b GET localhost:8080/health
-----
-
-[source,json]
-----
-{
-    "camel": {
-        "contextStatus": "Started",
-        "name": "SampleHealthChecks",
-        "status": "UP",
-        "version": "2.20.0-SNAPSHOT"
-    },
-    "camel-health-checks": {
-        "consul-file": "UP",
-        "consul-http": "UP",
-        "my-check-1": "UP",
-        "my-check-2": "UP",
-        "status": "DOWN"
-    },
-    "diskSpace": {
-        "free": 120546017280,
-        "status": "UP",
-        "threshold": 10485760,
-        "total": 192459673600
-    },
-    "status": "DOWN"
-}
+$ http://localhost:8080/actuator/health
 ----
 
-=== Using the HealthCheckService
-
-The HealthCheckService can be enabled by setting the property `camel.health.check.service.enabled` to `true`. Once done every call to the Camel health check endpoint as well as the SpringBoot one will return the last known response or an error if the requested check has not yet been invoked.
-
-To force the service to refresh a check, you can use:
-
-[source,console]
-----
-$ http -b GET localhost:8080/camel/health/check/{id}/invoke
-----
+The returned response should include the health checks from Apache Camel,
+and as well two custom checks.
 
 === Help and contributions
 
diff --git a/camel-example-spring-boot-health-checks/service/pom.xml b/camel-example-spring-boot-health-checks/service/pom.xml
deleted file mode 100644
index aca716e..0000000
--- a/camel-example-spring-boot-health-checks/service/pom.xml
+++ /dev/null
@@ -1,89 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.camel.springboot.example</groupId>
-        <artifactId>camel-example-spring-boot-health-checks</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>camel-example-spring-boot-health-checks-service</artifactId>
-    <name>Camel SB Examples :: Health Checks :: Service</name>
-
-    <properties>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <spring.boot-version>${spring-boot-version}</spring.boot-version>
-    </properties>
-
-    <dependencyManagement>
-        <dependencies>
-            <!-- Spring Boot BOM -->
-            <dependency>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-dependencies</artifactId>
-                <version>${spring.boot-version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.springframework.boot</groupId>
-                    <artifactId>spring-boot-starter-tomcat</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-undertow</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-actuator</artifactId>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-                <version>${spring-boot-version}</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>repackage</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-</project>
diff --git a/camel-example-spring-boot-health-checks/service/src/main/bash/consul-run-linux.sh b/camel-example-spring-boot-health-checks/service/src/main/bash/consul-run-linux.sh
deleted file mode 100755
index 58e8b56..0000000
--- a/camel-example-spring-boot-health-checks/service/src/main/bash/consul-run-linux.sh
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/usr/bin/env bash
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-
-CONSUL_VER="1.0.8"
-CONSUL_ZIP="consul_${CONSUL_VER}_linux_amd64.zip"
-
-# cleanup
-rm -rf "target/consul-data"
-rm -rf "target/consul-config"
-rm -rf "target/consul"
-
-mkdir -p target/
-mkdir -p target/consul-data
-mkdir -p target/consul-config
-
-if [ ! -f target/${CONSUL_ZIP} ]; then
-    wget "https://releases.hashicorp.com/consul/${CONSUL_VER}/${CONSUL_ZIP}" -O target/${CONSUL_ZIP}
-fi
-
-cat > target/consul-config/checks.json <<EOF
-{
-  "checks": [{
-    "id": "http", "script": "curl www.google.com >/dev/null 2>&1", "interval": "10s"
-  }, {
-    "id": "file", "script": "ls /tmp/camel-check >/dev/null 2>&1", "interval": "10s"
-  }]
-}
-EOF
-
-unzip -d target target/${CONSUL_ZIP}
-
-target/consul \
-    agent \
-    -server \
-    -bootstrap \
-    -datacenter camel \
-    -advertise 127.0.0.1 \
-    -bind 0.0.0.0 \
-    -log-level trace \
-    -data-dir target/consul-data \
-    -config-dir target/consul-config \
-    -enable-script-checks \
-    -ui
diff --git a/camel-example-spring-boot-health-checks/service/src/main/bash/consul-run-osx.sh b/camel-example-spring-boot-health-checks/service/src/main/bash/consul-run-osx.sh
deleted file mode 100755
index a4241c6..0000000
--- a/camel-example-spring-boot-health-checks/service/src/main/bash/consul-run-osx.sh
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/usr/bin/env bash
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-
-CONSUL_VER="1.0.8"
-CONSUL_ZIP="consul_${CONSUL_VER}_darwin_amd64.zip"
-
-# cleanup
-rm -rf "target/consul-data"
-rm -rf "target/consul-config"
-rm -rf "target/consul"
-
-mkdir -p target/
-mkdir -p target/consul-data
-mkdir -p target/consul-config
-
-
-if [ ! -f target/$CONSUL_ZIP ]; then
-    echo Downloading: https://releases.hashicorp.com/consul/$CONSUL_VER/$CONSUL_ZIP 
-    curl -o target/$CONSUL_ZIP "https://releases.hashicorp.com/consul/$CONSUL_VER/$CONSUL_ZIP"
-fi
-
-cat > target/consul-config/checks.json <<EOF
-{
-  "checks": [{
-    "id": "http", "script": "curl www.google.com >/dev/null 2>&1", "interval": "10s"
-  }, {
-    "id": "file", "script": "ls /tmp/camel-check >/dev/null 2>&1", "interval": "10s"
-  }]
-}
-EOF
-
-unzip -d target target/$CONSUL_ZIP
-chmod +x target/consul
-
-target/consul \
-    agent \
-    -server \
-    -bootstrap \
-    -datacenter camel \
-    -advertise 127.0.0.1 \
-    -bind 0.0.0.0 \
-    -log-level trace \
-    -data-dir target/consul-data \
-    -config-dir target/consul-config \
-    -enable-script-checks \
-    -ui
diff --git a/camel-example-spring-boot-health-checks/service/src/main/java/sample/service/Application.java b/camel-example-spring-boot-health-checks/service/src/main/java/sample/service/Application.java
deleted file mode 100644
index 41b7a2d..0000000
--- a/camel-example-spring-boot-health-checks/service/src/main/java/sample/service/Application.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package sample.service;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-//CHECKSTYLE:OFF
-/**
- * A sample Spring Boot application that starts the Camel routes.
- */
-@SpringBootApplication
-public class Application {
-    /**
-     * A main method to start this application.
-     */
-    public static void main(String[] args) {
-        SpringApplication.run(Application.class, args);
-    }
-}
-//CHECKSTYLE:ON
-
diff --git a/camel-example-spring-boot-health-checks/service/src/main/resources/application.properties b/camel-example-spring-boot-health-checks/service/src/main/resources/application.properties
deleted file mode 100644
index 03aa57e..0000000
--- a/camel-example-spring-boot-health-checks/service/src/main/resources/application.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-## ---------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-##      http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ---------------------------------------------------------------------------
-
-debug = false
-
-logging.level.org.springframework = INFO
-
-server.port = 8081
-
-management.endpoints.enabled-by-default = false
-management.endpoint.health.enabled = true
diff --git a/camel-example-spring-boot-health-checks/application/src/main/java/sample/camel/Application.java b/camel-example-spring-boot-health-checks/src/main/java/sample/camel/Application.java
similarity index 100%
rename from camel-example-spring-boot-health-checks/application/src/main/java/sample/camel/Application.java
rename to camel-example-spring-boot-health-checks/src/main/java/sample/camel/Application.java
diff --git a/camel-example-spring-boot-health-checks/application/src/main/java/sample/camel/ApplicationCheck.java b/camel-example-spring-boot-health-checks/src/main/java/sample/camel/ApplicationCheck.java
similarity index 100%
rename from camel-example-spring-boot-health-checks/application/src/main/java/sample/camel/ApplicationCheck.java
rename to camel-example-spring-boot-health-checks/src/main/java/sample/camel/ApplicationCheck.java
diff --git a/camel-example-spring-boot-health-checks/application/src/main/java/sample/camel/ApplicationConfiguration.java b/camel-example-spring-boot-health-checks/src/main/java/sample/camel/ApplicationConfiguration.java
similarity index 87%
rename from camel-example-spring-boot-health-checks/application/src/main/java/sample/camel/ApplicationConfiguration.java
rename to camel-example-spring-boot-health-checks/src/main/java/sample/camel/ApplicationConfiguration.java
index 5131af9..aff4530 100644
--- a/camel-example-spring-boot-health-checks/application/src/main/java/sample/camel/ApplicationConfiguration.java
+++ b/camel-example-spring-boot-health-checks/src/main/java/sample/camel/ApplicationConfiguration.java
@@ -23,16 +23,20 @@ import org.springframework.context.annotation.Configuration;
 
 @Configuration
 public class ApplicationConfiguration {
+
     @Bean
     public RouteBuilder routesBuilder() {
         return new RouteBuilder() {
             public void configure() throws Exception {
-                from("timer:foo?period=1000")
+                // to be less verbose
+                errorHandler(defaultErrorHandler().logStackTrace(false).logExhaustedMessageHistory(false).logExhausted(false));
+
+                from("timer:foo?bridgeErrorHandler=true&period=4000")
                     .routeId("foo")
                     .process(e -> {
                         throw new RuntimeCamelException("This is a forced exception to have health check monitor this failure (route=foo)"); 
                     });
-                from("timer:bar?period=1000")
+                from("timer:bar?bridgeErrorHandler=true&period=5000")
                     .routeId("bar")
                     .process(e -> {
                         throw new RuntimeCamelException("This is a forced exception to have health check monitor this failure (route=bar)");
diff --git a/camel-example-spring-boot/src/main/resources/application.properties b/camel-example-spring-boot-health-checks/src/main/resources/application.properties
similarity index 56%
copy from camel-example-spring-boot/src/main/resources/application.properties
copy to camel-example-spring-boot-health-checks/src/main/resources/application.properties
index 7ec89a3..2a89be8 100644
--- a/camel-example-spring-boot/src/main/resources/application.properties
+++ b/camel-example-spring-boot-health-checks/src/main/resources/application.properties
@@ -15,24 +15,13 @@
 ## limitations under the License.
 ## ---------------------------------------------------------------------------
 
-# the name of Camel
-camel.springboot.name = MyCamel
+debug = false
 
-# what to say
-greeting = Hello World
-
-# how often to trigger the timer (millis)
-myPeriod = 2000
-
-# to watch bean introspection using java reflection usage
-# camel.springboot.bean-introspection-logging-level=INFO
-
-# to automatic shutdown the JVM after a period of time
-#camel.springboot.duration-max-seconds=60
-#camel.springboot.duration-max-messages=100
-
-# add for example: &repeatCount=5 to the timer endpoint to make Camel idle
-#camel.springboot.duration-max-idle-seconds=15
+logging.level.org.springframework = INFO
+logging.level.org.apache.camel.spring.boot = INFO
+logging.level.org.apache.camel.health = DEBUG
+logging.level.org.apache.camel.impl.health = DEBUG
+logging.level.sample.camel = DEBUG
 
 # expose actuator endpoint via HTTP
 management.endpoints.web.exposure.include=info,health
@@ -40,13 +29,28 @@ management.endpoints.web.exposure.include=info,health
 # show verbose health details (/actuator/health) so you can see Camel information also
 management.endpoint.health.show-details=always
 
-# to turn off Camel info in (/actuator/info)
-management.info.camel.enabled=true
-management.info.camel.verbose=true
+camel.springboot.name = SampleHealthChecks
+
+################################################################################
+#
+# health checks
+#
+################################################################################
+
+# Enable camel health check
+camel.health.enabled = true
+
+# Enable camel HealthCheck for routes.
+camel.health.routes-enabled = true
+
+# fine grained configuration for foo route
+camel.health.config[foo].parent=routes
+camel.health.config[foo].interval=10000
+camel.health.config[foo].failure-threshold=5
+
+# fine grained configuration for bar route
+camel.health.config[bar].parent=routes
+camel.health.config[bar].interval=10000
+camel.health.config[bar].failure-threshold=10
 
-# to configure logging levels
-#logging.level.org.springframework = INFO
-#logging.level.org.apache.camel.spring.boot = INFO
-#logging.level.org.apache.camel.impl = DEBUG
-#logging.level.sample.camel = DEBUG
 
diff --git a/camel-example-spring-boot/src/main/resources/application.properties b/camel-example-spring-boot/src/main/resources/application.properties
index 7ec89a3..c6342b5 100644
--- a/camel-example-spring-boot/src/main/resources/application.properties
+++ b/camel-example-spring-boot/src/main/resources/application.properties
@@ -34,6 +34,9 @@ myPeriod = 2000
 # add for example: &repeatCount=5 to the timer endpoint to make Camel idle
 #camel.springboot.duration-max-idle-seconds=15
 
+camel.health.registry-enabled = false
+camel.health[routes][timer].enabled = true
+
 # expose actuator endpoint via HTTP
 management.endpoints.web.exposure.include=info,health
 


[camel-spring-boot-examples] 29/40: Camel-example-spring-boot-rest-swagger: set Jackson in dependencyManagement section

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit 7d21d50a9b759c0c7e8491ac8e4edcc7e56284c1
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Aug 27 18:14:16 2020 +0200

    Camel-example-spring-boot-rest-swagger: set Jackson in dependencyManagement section
---
 camel-example-spring-boot-rest-swagger/pom.xml | 40 ++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/camel-example-spring-boot-rest-swagger/pom.xml b/camel-example-spring-boot-rest-swagger/pom.xml
index 03f050a..a322d3e 100644
--- a/camel-example-spring-boot-rest-swagger/pom.xml
+++ b/camel-example-spring-boot-rest-swagger/pom.xml
@@ -71,6 +71,46 @@
                 <artifactId>jackson-datatype-jsr310</artifactId>
                 <version>2.9.10</version>
             </dependency>
+            <dependency>
+                <groupId>com.fasterxml.jackson.module</groupId>
+                <artifactId>jackson-module-parameter-names</artifactId>
+                <version>2.9.10</version>
+            </dependency>
+            <dependency>
+                <groupId>com.fasterxml.jackson.core</groupId>
+                <artifactId>jackson-annotations</artifactId>
+                <version>2.9.10</version>
+            </dependency>
+            <dependency>
+                <groupId>com.fasterxml.jackson.datatype</groupId>
+                <artifactId>jackson-datatype-joda</artifactId>
+                <version>2.9.10</version>
+            </dependency>
+            <dependency>
+                <groupId>com.fasterxml.jackson.dataformat</groupId>
+                <artifactId>jackson-dataformat-yaml</artifactId>
+                <version>2.9.10</version>
+            </dependency>
+            <dependency>
+                <groupId>com.fasterxml.jackson.dataformat</groupId>
+                <artifactId>jackson-dataformat-xml</artifactId>
+                <version>2.9.10</version>
+            </dependency>
+            <dependency>
+                <groupId>com.fasterxml.jackson.module</groupId>
+                <artifactId>jackson-module-jaxb-annotations</artifactId>
+                <version>2.9.10</version>
+            </dependency>
+            <dependency>
+                <groupId>com.fasterxml.jackson.jaxrs</groupId>
+                <artifactId>jackson-jaxrs-json-provider</artifactId>
+                <version>2.9.10</version>
+            </dependency>
+            <dependency>
+                <groupId>com.fasterxml.jackson.jaxrs</groupId>
+                <artifactId>jackson-jaxrs-base</artifactId>
+                <version>2.9.10</version>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 


[camel-spring-boot-examples] 09/40: Update MyCamelRouter.java

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit e9045dc15d091d10c725725cd60af441619105cb
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon May 25 11:57:13 2020 +0200

    Update MyCamelRouter.java
---
 camel-example-spring-boot/src/main/java/sample/camel/MyCamelRouter.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/camel-example-spring-boot/src/main/java/sample/camel/MyCamelRouter.java b/camel-example-spring-boot/src/main/java/sample/camel/MyCamelRouter.java
index c7c1bcb..bc8dc22 100644
--- a/camel-example-spring-boot/src/main/java/sample/camel/MyCamelRouter.java
+++ b/camel-example-spring-boot/src/main/java/sample/camel/MyCamelRouter.java
@@ -29,7 +29,7 @@ public class MyCamelRouter extends RouteBuilder {
 
     @Override
     public void configure() throws Exception {
-        from("timer:hello?period={{timer.period}}").routeId("hello").routeGroup("hello-group")
+        from("timer:hello?period={{timer.period}}").routeId("hello")
                 .transform().method("myBean", "saySomething")
                 .filter(simple("${body} contains 'foo'"))
                     .to("log:foo")


[camel-spring-boot-examples] 22/40: Added camel-version property placeholder

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit 8c129bfc991511bcdeb8d4dc886a52f38aca63be
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Fri Aug 7 08:27:34 2020 +0200

    Added camel-version property placeholder
---
 pom.xml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/pom.xml b/pom.xml
index 948a524..46276f3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -81,6 +81,7 @@
         <!-- for symbolicName in OSGi examples we only want the artifactId, eg camel-example-sql -->
         <!-- as having org.apache.camel as prefix is not needed and makes the name very long -->
         <camel.osgi.symbolic.name>${project.artifactId}</camel.osgi.symbolic.name>
+        <camel-version>3.5.0-SNAPSHOT</camel-version>
         <skip.starting.camel.context>false</skip.starting.camel.context>
         <javax.servlet.api.version>4.0.1</javax.servlet.api.version>
         <camel.osgi.export.pkg />


[camel-spring-boot-examples] 17/40: Bump to 3.5.0-SNAPSHOT

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit 0257fd67a413b2a7721c3c5e9b4ca3ef28c470c3
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Wed Jul 22 17:52:30 2020 +0200

    Bump to 3.5.0-SNAPSHOT
---
 README.adoc                                                           | 4 ++--
 camel-example-spring-boot-activemq/pom.xml                            | 2 +-
 camel-example-spring-boot-amqp/pom.xml                                | 2 +-
 .../cluster-bootstrap/pom.xml                                         | 2 +-
 .../cluster-node/pom.xml                                              | 2 +-
 camel-example-spring-boot-clustered-route-controller/pom.xml          | 2 +-
 camel-example-spring-boot-fhir-auth-tx/pom.xml                        | 2 +-
 camel-example-spring-boot-fhir/pom.xml                                | 2 +-
 camel-example-spring-boot-geocoder/pom.xml                            | 2 +-
 .../hello-camel-grpc-client-kubernetes/pom.xml                        | 2 +-
 .../hello-camel-grpc-server-kubernetes/pom.xml                        | 2 +-
 camel-example-spring-boot-grpc-kubernetes/pom.xml                     | 2 +-
 camel-example-spring-boot-grpc/hello-camel-grpc-client/pom.xml        | 2 +-
 camel-example-spring-boot-grpc/hello-camel-grpc-server/pom.xml        | 2 +-
 camel-example-spring-boot-grpc/pom.xml                                | 2 +-
 camel-example-spring-boot-health-checks/pom.xml                       | 2 +-
 camel-example-spring-boot-hystrix/client/pom.xml                      | 2 +-
 camel-example-spring-boot-hystrix/pom.xml                             | 2 +-
 camel-example-spring-boot-hystrix/service1/pom.xml                    | 2 +-
 camel-example-spring-boot-hystrix/service2/pom.xml                    | 2 +-
 camel-example-spring-boot-infinispan/pom.xml                          | 2 +-
 camel-example-spring-boot-jira/pom.xml                                | 2 +-
 camel-example-spring-boot-kafka-avro/pom.xml                          | 2 +-
 camel-example-spring-boot-kafka-offsetrepository/pom.xml              | 2 +-
 camel-example-spring-boot-master/pom.xml                              | 2 +-
 camel-example-spring-boot-metrics/pom.xml                             | 2 +-
 camel-example-spring-boot-opentracing/client/pom.xml                  | 2 +-
 camel-example-spring-boot-opentracing/loggingtracer/pom.xml           | 2 +-
 camel-example-spring-boot-opentracing/pom.xml                         | 2 +-
 camel-example-spring-boot-opentracing/service1/pom.xml                | 2 +-
 camel-example-spring-boot-opentracing/service2/pom.xml                | 2 +-
 camel-example-spring-boot-pojo/pom.xml                                | 2 +-
 camel-example-spring-boot-rabbitmq/pom.xml                            | 2 +-
 camel-example-spring-boot-reactive-streams/pom.xml                    | 2 +-
 camel-example-spring-boot-resilience4j/client/pom.xml                 | 2 +-
 camel-example-spring-boot-resilience4j/client2/pom.xml                | 2 +-
 camel-example-spring-boot-resilience4j/pom.xml                        | 2 +-
 camel-example-spring-boot-resilience4j/service1/pom.xml               | 2 +-
 camel-example-spring-boot-resilience4j/service2/pom.xml               | 2 +-
 camel-example-spring-boot-rest-jpa/pom.xml                            | 2 +-
 camel-example-spring-boot-rest-openapi-simple/pom.xml                 | 2 +-
 camel-example-spring-boot-rest-openapi/pom.xml                        | 2 +-
 camel-example-spring-boot-rest-producer/pom.xml                       | 2 +-
 camel-example-spring-boot-rest-swagger-simple/pom.xml                 | 2 +-
 camel-example-spring-boot-rest-swagger/pom.xml                        | 2 +-
 camel-example-spring-boot-servicecall/consumer/pom.xml                | 2 +-
 camel-example-spring-boot-servicecall/pom.xml                         | 2 +-
 camel-example-spring-boot-servicecall/services/pom.xml                | 2 +-
 camel-example-spring-boot-strimzi/pom.xml                             | 2 +-
 camel-example-spring-boot-supervising-route-controller/pom.xml        | 2 +-
 camel-example-spring-boot-twitter-salesforce/pom.xml                  | 2 +-
 camel-example-spring-boot-undertow-spring-security/pom.xml            | 2 +-
 camel-example-spring-boot-validator/pom.xml                           | 2 +-
 camel-example-spring-boot-webhook/pom.xml                             | 2 +-
 camel-example-spring-boot-widget-gadget/pom.xml                       | 2 +-
 camel-example-spring-boot-xml/pom.xml                                 | 2 +-
 camel-example-spring-boot-zipkin/client/pom.xml                       | 2 +-
 camel-example-spring-boot-zipkin/pom.xml                              | 2 +-
 camel-example-spring-boot-zipkin/service1/pom.xml                     | 2 +-
 camel-example-spring-boot-zipkin/service2/pom.xml                     | 2 +-
 camel-example-spring-boot/pom.xml                                     | 2 +-
 camel-example-spring-cloud-servicecall/consumer/pom.xml               | 2 +-
 camel-example-spring-cloud-servicecall/pom.xml                        | 2 +-
 camel-example-spring-cloud-servicecall/service/pom.xml                | 2 +-
 camel-example-spring-cloud-serviceregistry/consumer/pom.xml           | 2 +-
 camel-example-spring-cloud-serviceregistry/pom.xml                    | 2 +-
 camel-example-spring-cloud-serviceregistry/service/pom.xml            | 2 +-
 pom.xml                                                               | 2 +-
 68 files changed, 69 insertions(+), 69 deletions(-)

diff --git a/README.adoc b/README.adoc
index 90ef95b..73d8d57 100644
--- a/README.adoc
+++ b/README.adoc
@@ -17,14 +17,14 @@ Number of Examples: 40 (0 deprecated)
 |===
 | Example | Category | Description
 
+| link:camel-example-spring-boot-health-checks/readme.adoc[Spring Boot Health Checks] (camel-example-spring-boot-health-checks) |  | 
+
 | link:camel-example-spring-boot-undertow-spring-security/readme.adoc[Spring Boot Undertow Spring Security] (camel-example-spring-boot-undertow-spring-security) | Advanced | Example on how to use the Camel Undertow component with spring security and Keycloak
 
 | link:camel-example-spring-boot-webhook/readme.adoc[Spring Boot Webhook] (camel-example-spring-boot-webhook) | Advanced | Example on how to use the Camel Webhook component
 
 | link:camel-example-spring-boot/readme.adoc[Spring Boot] (camel-example-spring-boot) | Beginner | An example showing how to work with Camel and Spring Boot
 
-| link:camel-example-spring-boot-health-checks/readme.adoc[Spring Boot Health Checks] (camel-example-spring-boot-health-checks) | Beginner | An example showing how to work with Camel's Health Checks and Spring Boot
-
 | link:camel-example-spring-boot-jira/README.adoc[Spring Boot Jira] (camel-example-spring-boot-jira) | Beginner | An example that uses Jira Camel API
 
 | link:camel-example-spring-boot-pojo/README.adoc[Spring Boot Pojo] (camel-example-spring-boot-pojo) | Beginner | An example showing how to work with Camel POJO routing with Spring Boot
diff --git a/camel-example-spring-boot-activemq/pom.xml b/camel-example-spring-boot-activemq/pom.xml
index 086a9ef..9bd8852 100644
--- a/camel-example-spring-boot-activemq/pom.xml
+++ b/camel-example-spring-boot-activemq/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-activemq</artifactId>
diff --git a/camel-example-spring-boot-amqp/pom.xml b/camel-example-spring-boot-amqp/pom.xml
index 5513b2f..a787a02 100644
--- a/camel-example-spring-boot-amqp/pom.xml
+++ b/camel-example-spring-boot-amqp/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-amqp</artifactId>
diff --git a/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/pom.xml b/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/pom.xml
index 25888e2..b3dbe00 100644
--- a/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/pom.xml
+++ b/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-clustered-route-controller</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-clustered-route-controller-cluster-bootstrap</artifactId>
diff --git a/camel-example-spring-boot-clustered-route-controller/cluster-node/pom.xml b/camel-example-spring-boot-clustered-route-controller/cluster-node/pom.xml
index 1c179f1..4dd7436 100644
--- a/camel-example-spring-boot-clustered-route-controller/cluster-node/pom.xml
+++ b/camel-example-spring-boot-clustered-route-controller/cluster-node/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-clustered-route-controller</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-clustered-route-controller-cluster-node</artifactId>
diff --git a/camel-example-spring-boot-clustered-route-controller/pom.xml b/camel-example-spring-boot-clustered-route-controller/pom.xml
index 42e6355..bebb2bc 100644
--- a/camel-example-spring-boot-clustered-route-controller/pom.xml
+++ b/camel-example-spring-boot-clustered-route-controller/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-clustered-route-controller</artifactId>
diff --git a/camel-example-spring-boot-fhir-auth-tx/pom.xml b/camel-example-spring-boot-fhir-auth-tx/pom.xml
index 20c59f0..dc1390d 100644
--- a/camel-example-spring-boot-fhir-auth-tx/pom.xml
+++ b/camel-example-spring-boot-fhir-auth-tx/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-fhir-auth-tx</artifactId>
diff --git a/camel-example-spring-boot-fhir/pom.xml b/camel-example-spring-boot-fhir/pom.xml
index c6ce1b5..0908c14 100644
--- a/camel-example-spring-boot-fhir/pom.xml
+++ b/camel-example-spring-boot-fhir/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-fhir</artifactId>
diff --git a/camel-example-spring-boot-geocoder/pom.xml b/camel-example-spring-boot-geocoder/pom.xml
index cdc220e..3936828 100644
--- a/camel-example-spring-boot-geocoder/pom.xml
+++ b/camel-example-spring-boot-geocoder/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-geocoder</artifactId>
diff --git a/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-client-kubernetes/pom.xml b/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-client-kubernetes/pom.xml
index 6bf0f26..674abc2 100644
--- a/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-client-kubernetes/pom.xml
+++ b/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-client-kubernetes/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-grpc-kubernetes</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-hello-grpc-client-kubernetes</artifactId>
diff --git a/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-server-kubernetes/pom.xml b/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-server-kubernetes/pom.xml
index a77fccc..86854e3 100644
--- a/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-server-kubernetes/pom.xml
+++ b/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-server-kubernetes/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-grpc-kubernetes</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-hello-grpc-server-kubernetes</artifactId>
diff --git a/camel-example-spring-boot-grpc-kubernetes/pom.xml b/camel-example-spring-boot-grpc-kubernetes/pom.xml
index 57cc09e..d095c0b 100644
--- a/camel-example-spring-boot-grpc-kubernetes/pom.xml
+++ b/camel-example-spring-boot-grpc-kubernetes/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-grpc-kubernetes</artifactId>
diff --git a/camel-example-spring-boot-grpc/hello-camel-grpc-client/pom.xml b/camel-example-spring-boot-grpc/hello-camel-grpc-client/pom.xml
index c026e2a..14f50b7 100644
--- a/camel-example-spring-boot-grpc/hello-camel-grpc-client/pom.xml
+++ b/camel-example-spring-boot-grpc/hello-camel-grpc-client/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-grpc</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-hello-grpc-client</artifactId>
diff --git a/camel-example-spring-boot-grpc/hello-camel-grpc-server/pom.xml b/camel-example-spring-boot-grpc/hello-camel-grpc-server/pom.xml
index f527150..0009db5 100644
--- a/camel-example-spring-boot-grpc/hello-camel-grpc-server/pom.xml
+++ b/camel-example-spring-boot-grpc/hello-camel-grpc-server/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-grpc</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-hello-grpc-server</artifactId>
diff --git a/camel-example-spring-boot-grpc/pom.xml b/camel-example-spring-boot-grpc/pom.xml
index 258d8d9..bdb94c9 100644
--- a/camel-example-spring-boot-grpc/pom.xml
+++ b/camel-example-spring-boot-grpc/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-grpc</artifactId>
diff --git a/camel-example-spring-boot-health-checks/pom.xml b/camel-example-spring-boot-health-checks/pom.xml
index 58fbdb3..23f7cb1 100644
--- a/camel-example-spring-boot-health-checks/pom.xml
+++ b/camel-example-spring-boot-health-checks/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-health-checks</artifactId>
diff --git a/camel-example-spring-boot-hystrix/client/pom.xml b/camel-example-spring-boot-hystrix/client/pom.xml
index fd4a07d..5d89f9e 100644
--- a/camel-example-spring-boot-hystrix/client/pom.xml
+++ b/camel-example-spring-boot-hystrix/client/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-hystrix</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-hystrix-client</artifactId>
diff --git a/camel-example-spring-boot-hystrix/pom.xml b/camel-example-spring-boot-hystrix/pom.xml
index 00ce7d2..74e18d3 100644
--- a/camel-example-spring-boot-hystrix/pom.xml
+++ b/camel-example-spring-boot-hystrix/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-hystrix</artifactId>
diff --git a/camel-example-spring-boot-hystrix/service1/pom.xml b/camel-example-spring-boot-hystrix/service1/pom.xml
index bc478fa..de7013b 100644
--- a/camel-example-spring-boot-hystrix/service1/pom.xml
+++ b/camel-example-spring-boot-hystrix/service1/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-hystrix</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-hystrix-service1</artifactId>
diff --git a/camel-example-spring-boot-hystrix/service2/pom.xml b/camel-example-spring-boot-hystrix/service2/pom.xml
index 6cb32fd..3959c24 100644
--- a/camel-example-spring-boot-hystrix/service2/pom.xml
+++ b/camel-example-spring-boot-hystrix/service2/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-hystrix</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-hystrix-service2</artifactId>
diff --git a/camel-example-spring-boot-infinispan/pom.xml b/camel-example-spring-boot-infinispan/pom.xml
index df34bc6..cbea9b4 100644
--- a/camel-example-spring-boot-infinispan/pom.xml
+++ b/camel-example-spring-boot-infinispan/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-infinispan</artifactId>
diff --git a/camel-example-spring-boot-jira/pom.xml b/camel-example-spring-boot-jira/pom.xml
index d0fdfb3..b61f4ce 100644
--- a/camel-example-spring-boot-jira/pom.xml
+++ b/camel-example-spring-boot-jira/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-jira</artifactId>
diff --git a/camel-example-spring-boot-kafka-avro/pom.xml b/camel-example-spring-boot-kafka-avro/pom.xml
index 16fc7d5..c051260 100644
--- a/camel-example-spring-boot-kafka-avro/pom.xml
+++ b/camel-example-spring-boot-kafka-avro/pom.xml
@@ -23,7 +23,7 @@
   <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
   <artifactId>camel-example-spring-boot-kafka-avro</artifactId>
diff --git a/camel-example-spring-boot-kafka-offsetrepository/pom.xml b/camel-example-spring-boot-kafka-offsetrepository/pom.xml
index 6739d0d..dcefd08 100644
--- a/camel-example-spring-boot-kafka-offsetrepository/pom.xml
+++ b/camel-example-spring-boot-kafka-offsetrepository/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-kafka-offsetrepository</artifactId>
diff --git a/camel-example-spring-boot-master/pom.xml b/camel-example-spring-boot-master/pom.xml
index 8cb718c..b4307d3 100644
--- a/camel-example-spring-boot-master/pom.xml
+++ b/camel-example-spring-boot-master/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-master</artifactId>
diff --git a/camel-example-spring-boot-metrics/pom.xml b/camel-example-spring-boot-metrics/pom.xml
index f74bef1..7dd5a40 100644
--- a/camel-example-spring-boot-metrics/pom.xml
+++ b/camel-example-spring-boot-metrics/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-metrics</artifactId>
diff --git a/camel-example-spring-boot-opentracing/client/pom.xml b/camel-example-spring-boot-opentracing/client/pom.xml
index 6dda49c..66bff07 100644
--- a/camel-example-spring-boot-opentracing/client/pom.xml
+++ b/camel-example-spring-boot-opentracing/client/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-opentracing</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-opentracing-client</artifactId>
diff --git a/camel-example-spring-boot-opentracing/loggingtracer/pom.xml b/camel-example-spring-boot-opentracing/loggingtracer/pom.xml
index e5b78e4..ade3413 100644
--- a/camel-example-spring-boot-opentracing/loggingtracer/pom.xml
+++ b/camel-example-spring-boot-opentracing/loggingtracer/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-opentracing</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-opentracing-loggingtracer</artifactId>
diff --git a/camel-example-spring-boot-opentracing/pom.xml b/camel-example-spring-boot-opentracing/pom.xml
index 42284e8..8befa92 100644
--- a/camel-example-spring-boot-opentracing/pom.xml
+++ b/camel-example-spring-boot-opentracing/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-opentracing</artifactId>
diff --git a/camel-example-spring-boot-opentracing/service1/pom.xml b/camel-example-spring-boot-opentracing/service1/pom.xml
index a772c45..7bbddf8 100644
--- a/camel-example-spring-boot-opentracing/service1/pom.xml
+++ b/camel-example-spring-boot-opentracing/service1/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-opentracing</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-opentracing-service1</artifactId>
diff --git a/camel-example-spring-boot-opentracing/service2/pom.xml b/camel-example-spring-boot-opentracing/service2/pom.xml
index 36ba182..4e1886f 100644
--- a/camel-example-spring-boot-opentracing/service2/pom.xml
+++ b/camel-example-spring-boot-opentracing/service2/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-opentracing</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-opentracing-service2</artifactId>
diff --git a/camel-example-spring-boot-pojo/pom.xml b/camel-example-spring-boot-pojo/pom.xml
index 22224f5..98f8c98 100644
--- a/camel-example-spring-boot-pojo/pom.xml
+++ b/camel-example-spring-boot-pojo/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-pojo</artifactId>
diff --git a/camel-example-spring-boot-rabbitmq/pom.xml b/camel-example-spring-boot-rabbitmq/pom.xml
index acea554..111a82c 100644
--- a/camel-example-spring-boot-rabbitmq/pom.xml
+++ b/camel-example-spring-boot-rabbitmq/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-rabbitmq</artifactId>
diff --git a/camel-example-spring-boot-reactive-streams/pom.xml b/camel-example-spring-boot-reactive-streams/pom.xml
index 1321b43..54f0efd 100644
--- a/camel-example-spring-boot-reactive-streams/pom.xml
+++ b/camel-example-spring-boot-reactive-streams/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-reactive-streams</artifactId>
diff --git a/camel-example-spring-boot-resilience4j/client/pom.xml b/camel-example-spring-boot-resilience4j/client/pom.xml
index bcf1b7a..2cef687 100644
--- a/camel-example-spring-boot-resilience4j/client/pom.xml
+++ b/camel-example-spring-boot-resilience4j/client/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-resilience4j</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-resilience4j-client</artifactId>
diff --git a/camel-example-spring-boot-resilience4j/client2/pom.xml b/camel-example-spring-boot-resilience4j/client2/pom.xml
index 11c39de..6e1926e 100644
--- a/camel-example-spring-boot-resilience4j/client2/pom.xml
+++ b/camel-example-spring-boot-resilience4j/client2/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-resilience4j</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-resilience4j-client2</artifactId>
diff --git a/camel-example-spring-boot-resilience4j/pom.xml b/camel-example-spring-boot-resilience4j/pom.xml
index 1bacaab..685619b 100644
--- a/camel-example-spring-boot-resilience4j/pom.xml
+++ b/camel-example-spring-boot-resilience4j/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-resilience4j</artifactId>
diff --git a/camel-example-spring-boot-resilience4j/service1/pom.xml b/camel-example-spring-boot-resilience4j/service1/pom.xml
index 385dd32..5ba5b1d 100644
--- a/camel-example-spring-boot-resilience4j/service1/pom.xml
+++ b/camel-example-spring-boot-resilience4j/service1/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-resilience4j</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-resilience4j-service1</artifactId>
diff --git a/camel-example-spring-boot-resilience4j/service2/pom.xml b/camel-example-spring-boot-resilience4j/service2/pom.xml
index ca90c74..cf23fb9 100644
--- a/camel-example-spring-boot-resilience4j/service2/pom.xml
+++ b/camel-example-spring-boot-resilience4j/service2/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-resilience4j</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-resilience4j-service2</artifactId>
diff --git a/camel-example-spring-boot-rest-jpa/pom.xml b/camel-example-spring-boot-rest-jpa/pom.xml
index 46cb70c..09bef8e 100644
--- a/camel-example-spring-boot-rest-jpa/pom.xml
+++ b/camel-example-spring-boot-rest-jpa/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-rest-jpa</artifactId>
diff --git a/camel-example-spring-boot-rest-openapi-simple/pom.xml b/camel-example-spring-boot-rest-openapi-simple/pom.xml
index bc719b9..7df25d0 100644
--- a/camel-example-spring-boot-rest-openapi-simple/pom.xml
+++ b/camel-example-spring-boot-rest-openapi-simple/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-rest-openapi-simple</artifactId>
diff --git a/camel-example-spring-boot-rest-openapi/pom.xml b/camel-example-spring-boot-rest-openapi/pom.xml
index be380d6..e88fe16 100644
--- a/camel-example-spring-boot-rest-openapi/pom.xml
+++ b/camel-example-spring-boot-rest-openapi/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-rest-openapi</artifactId>
diff --git a/camel-example-spring-boot-rest-producer/pom.xml b/camel-example-spring-boot-rest-producer/pom.xml
index 4cee1ef..bff7b1c 100644
--- a/camel-example-spring-boot-rest-producer/pom.xml
+++ b/camel-example-spring-boot-rest-producer/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-rest-producer</artifactId>
diff --git a/camel-example-spring-boot-rest-swagger-simple/pom.xml b/camel-example-spring-boot-rest-swagger-simple/pom.xml
index d130a8c..7c82101 100644
--- a/camel-example-spring-boot-rest-swagger-simple/pom.xml
+++ b/camel-example-spring-boot-rest-swagger-simple/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-rest-swagger-simple</artifactId>
diff --git a/camel-example-spring-boot-rest-swagger/pom.xml b/camel-example-spring-boot-rest-swagger/pom.xml
index 09646dd..ff62f51 100644
--- a/camel-example-spring-boot-rest-swagger/pom.xml
+++ b/camel-example-spring-boot-rest-swagger/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-rest-swagger</artifactId>
diff --git a/camel-example-spring-boot-servicecall/consumer/pom.xml b/camel-example-spring-boot-servicecall/consumer/pom.xml
index b515fbd..3916b4b 100644
--- a/camel-example-spring-boot-servicecall/consumer/pom.xml
+++ b/camel-example-spring-boot-servicecall/consumer/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-servicecall</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-servicecall-consumer</artifactId>
diff --git a/camel-example-spring-boot-servicecall/pom.xml b/camel-example-spring-boot-servicecall/pom.xml
index 231a451..bc437ae 100644
--- a/camel-example-spring-boot-servicecall/pom.xml
+++ b/camel-example-spring-boot-servicecall/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-servicecall</artifactId>
diff --git a/camel-example-spring-boot-servicecall/services/pom.xml b/camel-example-spring-boot-servicecall/services/pom.xml
index 78ce2ad..3627c91 100644
--- a/camel-example-spring-boot-servicecall/services/pom.xml
+++ b/camel-example-spring-boot-servicecall/services/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-servicecall</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-servicecall-services</artifactId>
diff --git a/camel-example-spring-boot-strimzi/pom.xml b/camel-example-spring-boot-strimzi/pom.xml
index 4d0af8e..c8dee81 100644
--- a/camel-example-spring-boot-strimzi/pom.xml
+++ b/camel-example-spring-boot-strimzi/pom.xml
@@ -23,7 +23,7 @@
 	<parent>
 		<groupId>org.apache.camel.springboot.example</groupId>
 		<artifactId>examples</artifactId>
-		<version>3.4.0-SNAPSHOT</version>
+		<version>3.5.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>camel-example-spring-boot-strimzi</artifactId>
diff --git a/camel-example-spring-boot-supervising-route-controller/pom.xml b/camel-example-spring-boot-supervising-route-controller/pom.xml
index 27eb978..8c3176e 100644
--- a/camel-example-spring-boot-supervising-route-controller/pom.xml
+++ b/camel-example-spring-boot-supervising-route-controller/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-supervising-route-controller</artifactId>
diff --git a/camel-example-spring-boot-twitter-salesforce/pom.xml b/camel-example-spring-boot-twitter-salesforce/pom.xml
index 6528e34..75f6f38 100644
--- a/camel-example-spring-boot-twitter-salesforce/pom.xml
+++ b/camel-example-spring-boot-twitter-salesforce/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-twitter-salesforce</artifactId>
diff --git a/camel-example-spring-boot-undertow-spring-security/pom.xml b/camel-example-spring-boot-undertow-spring-security/pom.xml
index f98408b..491b297 100644
--- a/camel-example-spring-boot-undertow-spring-security/pom.xml
+++ b/camel-example-spring-boot-undertow-spring-security/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>examples</artifactId>
         <groupId>org.apache.camel.springboot.example</groupId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/camel-example-spring-boot-validator/pom.xml b/camel-example-spring-boot-validator/pom.xml
index df26fd7..e350eed 100644
--- a/camel-example-spring-boot-validator/pom.xml
+++ b/camel-example-spring-boot-validator/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-validator</artifactId>
diff --git a/camel-example-spring-boot-webhook/pom.xml b/camel-example-spring-boot-webhook/pom.xml
index 2427872..8e5244c 100644
--- a/camel-example-spring-boot-webhook/pom.xml
+++ b/camel-example-spring-boot-webhook/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>examples</artifactId>
         <groupId>org.apache.camel.springboot.example</groupId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/camel-example-spring-boot-widget-gadget/pom.xml b/camel-example-spring-boot-widget-gadget/pom.xml
index 68c3f9a..f844b7a 100644
--- a/camel-example-spring-boot-widget-gadget/pom.xml
+++ b/camel-example-spring-boot-widget-gadget/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <artifactId>examples</artifactId>
         <groupId>org.apache.camel.springboot.example</groupId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/camel-example-spring-boot-xml/pom.xml b/camel-example-spring-boot-xml/pom.xml
index 1442fd7..5355640 100644
--- a/camel-example-spring-boot-xml/pom.xml
+++ b/camel-example-spring-boot-xml/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-xml</artifactId>
diff --git a/camel-example-spring-boot-zipkin/client/pom.xml b/camel-example-spring-boot-zipkin/client/pom.xml
index 08e183a..02a4a64 100644
--- a/camel-example-spring-boot-zipkin/client/pom.xml
+++ b/camel-example-spring-boot-zipkin/client/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-zipkin</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-zipkin-client</artifactId>
diff --git a/camel-example-spring-boot-zipkin/pom.xml b/camel-example-spring-boot-zipkin/pom.xml
index cb2b366..e3ff935 100644
--- a/camel-example-spring-boot-zipkin/pom.xml
+++ b/camel-example-spring-boot-zipkin/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-zipkin</artifactId>
diff --git a/camel-example-spring-boot-zipkin/service1/pom.xml b/camel-example-spring-boot-zipkin/service1/pom.xml
index 68e3172..ff88b90 100644
--- a/camel-example-spring-boot-zipkin/service1/pom.xml
+++ b/camel-example-spring-boot-zipkin/service1/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-zipkin</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-zipkin-service1</artifactId>
diff --git a/camel-example-spring-boot-zipkin/service2/pom.xml b/camel-example-spring-boot-zipkin/service2/pom.xml
index 1f96ab1..11e1608 100644
--- a/camel-example-spring-boot-zipkin/service2/pom.xml
+++ b/camel-example-spring-boot-zipkin/service2/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-boot-zipkin</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot-zipkin-service2</artifactId>
diff --git a/camel-example-spring-boot/pom.xml b/camel-example-spring-boot/pom.xml
index c22f0bb..b2987ce 100644
--- a/camel-example-spring-boot/pom.xml
+++ b/camel-example-spring-boot/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-boot</artifactId>
diff --git a/camel-example-spring-cloud-servicecall/consumer/pom.xml b/camel-example-spring-cloud-servicecall/consumer/pom.xml
index c8cb8c4..6e3f770 100644
--- a/camel-example-spring-cloud-servicecall/consumer/pom.xml
+++ b/camel-example-spring-cloud-servicecall/consumer/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-cloud-servicecall</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-cloud-servicecall-consumer</artifactId>
diff --git a/camel-example-spring-cloud-servicecall/pom.xml b/camel-example-spring-cloud-servicecall/pom.xml
index 447b8c8..28b858d 100644
--- a/camel-example-spring-cloud-servicecall/pom.xml
+++ b/camel-example-spring-cloud-servicecall/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-cloud-servicecall</artifactId>
diff --git a/camel-example-spring-cloud-servicecall/service/pom.xml b/camel-example-spring-cloud-servicecall/service/pom.xml
index ddb3307..b0af493 100644
--- a/camel-example-spring-cloud-servicecall/service/pom.xml
+++ b/camel-example-spring-cloud-servicecall/service/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-cloud-servicecall</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-cloud-servicecall-service</artifactId>
diff --git a/camel-example-spring-cloud-serviceregistry/consumer/pom.xml b/camel-example-spring-cloud-serviceregistry/consumer/pom.xml
index 3370b91..58e0634 100644
--- a/camel-example-spring-cloud-serviceregistry/consumer/pom.xml
+++ b/camel-example-spring-cloud-serviceregistry/consumer/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-cloud-serviceregistry</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-cloud-serviceregistry-consumer</artifactId>
diff --git a/camel-example-spring-cloud-serviceregistry/pom.xml b/camel-example-spring-cloud-serviceregistry/pom.xml
index 3702853..c97dd26 100644
--- a/camel-example-spring-cloud-serviceregistry/pom.xml
+++ b/camel-example-spring-cloud-serviceregistry/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>examples</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-cloud-serviceregistry</artifactId>
diff --git a/camel-example-spring-cloud-serviceregistry/service/pom.xml b/camel-example-spring-cloud-serviceregistry/service/pom.xml
index 16256eb..cd10736 100644
--- a/camel-example-spring-cloud-serviceregistry/service/pom.xml
+++ b/camel-example-spring-cloud-serviceregistry/service/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot.example</groupId>
         <artifactId>camel-example-spring-cloud-serviceregistry</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>camel-example-spring-cloud-serviceregistry-service</artifactId>
diff --git a/pom.xml b/pom.xml
index 52fe6df..5ada0c5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.camel.springboot</groupId>
         <artifactId>spring-boot</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>3.5.0-SNAPSHOT</version>
     </parent>
 
     <groupId>org.apache.camel.springboot.example</groupId>


[camel-spring-boot-examples] 30/40: Improved dependency-management in rest-swagger example

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit dd9f3eb64fdb8db457c9ecd6467ac6e8c470c22d
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Fri Aug 28 11:46:56 2020 +0200

    Improved dependency-management in rest-swagger example
---
 camel-example-spring-boot-rest-swagger/pom.xml | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

diff --git a/camel-example-spring-boot-rest-swagger/pom.xml b/camel-example-spring-boot-rest-swagger/pom.xml
index a322d3e..83d8870 100644
--- a/camel-example-spring-boot-rest-swagger/pom.xml
+++ b/camel-example-spring-boot-rest-swagger/pom.xml
@@ -32,6 +32,7 @@
     <properties>
         <category>Rest</category>
         <spring.boot-version>${spring-boot-version}</spring.boot-version>
+        <jackson.swagger.version>2.9.10</jackson.swagger.version>
     </properties>
 
     <!-- Spring-Boot and Camel BOM -->
@@ -54,62 +55,62 @@
             <dependency>
                 <groupId>com.fasterxml.jackson.core</groupId>
                 <artifactId>jackson-databind</artifactId>
-                <version>2.9.10</version>
+                <version>${jackson.swagger.version}</version>
             </dependency>
             <dependency>
                 <groupId>com.fasterxml.jackson.core</groupId>
                 <artifactId>jackson-core</artifactId>
-                <version>2.9.10</version>
+                <version>${jackson.swagger.version}</version>
             </dependency>
             <dependency>
                 <groupId>com.fasterxml.jackson.datatype</groupId>
                 <artifactId>jackson-datatype-jdk8</artifactId>
-                <version>2.9.10</version>
+                <version>${jackson.swagger.version}</version>
             </dependency>
             <dependency>
                 <groupId>com.fasterxml.jackson.datatype</groupId>
                 <artifactId>jackson-datatype-jsr310</artifactId>
-                <version>2.9.10</version>
+                <version>${jackson.swagger.version}</version>
             </dependency>
             <dependency>
                 <groupId>com.fasterxml.jackson.module</groupId>
                 <artifactId>jackson-module-parameter-names</artifactId>
-                <version>2.9.10</version>
+                <version>${jackson.swagger.version}</version>
             </dependency>
             <dependency>
                 <groupId>com.fasterxml.jackson.core</groupId>
                 <artifactId>jackson-annotations</artifactId>
-                <version>2.9.10</version>
+                <version>${jackson.swagger.version}</version>
             </dependency>
             <dependency>
                 <groupId>com.fasterxml.jackson.datatype</groupId>
                 <artifactId>jackson-datatype-joda</artifactId>
-                <version>2.9.10</version>
+                <version>${jackson.swagger.version}</version>
             </dependency>
             <dependency>
                 <groupId>com.fasterxml.jackson.dataformat</groupId>
                 <artifactId>jackson-dataformat-yaml</artifactId>
-                <version>2.9.10</version>
+                <version>${jackson.swagger.version}</version>
             </dependency>
             <dependency>
                 <groupId>com.fasterxml.jackson.dataformat</groupId>
                 <artifactId>jackson-dataformat-xml</artifactId>
-                <version>2.9.10</version>
+                <version>${jackson.swagger.version}</version>
             </dependency>
             <dependency>
                 <groupId>com.fasterxml.jackson.module</groupId>
                 <artifactId>jackson-module-jaxb-annotations</artifactId>
-                <version>2.9.10</version>
+                <version>${jackson.swagger.version}</version>
             </dependency>
             <dependency>
                 <groupId>com.fasterxml.jackson.jaxrs</groupId>
                 <artifactId>jackson-jaxrs-json-provider</artifactId>
-                <version>2.9.10</version>
+                <version>${jackson.swagger.version}</version>
             </dependency>
             <dependency>
                 <groupId>com.fasterxml.jackson.jaxrs</groupId>
                 <artifactId>jackson-jaxrs-base</artifactId>
-                <version>2.9.10</version>
+                <version>${jackson.swagger.version}</version>
             </dependency>
         </dependencies>
     </dependencyManagement>


[camel-spring-boot-examples] 06/40: Removed badges

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit 2abe8406f7b82b21b2129eb69465ededabac8606
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu May 21 13:17:23 2020 +0200

    Removed badges
---
 README.adoc | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/README.adoc b/README.adoc
index 86aeef1..90ef95b 100644
--- a/README.adoc
+++ b/README.adoc
@@ -1,15 +1,8 @@
 # Welcome to the Apache Camel Spring-Boot Examples
 
-![master build](https://github.com/apache/camel-spring-boot-examples/workflows/master%20build/badge.svg)
-[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.apache.camel/apache-camel/badge.svg?style=flat-square)](https://maven-badges.herokuapp.com/maven-central/org.apache.camel/apache-camel)
-[![Javadocs](http://www.javadoc.io/badge/org.apache.camel/apache-camel.svg?color=brightgreen)](http://www.javadoc.io/doc/org.apache.camel/camel-core)
-[![Stack Overflow](https://img.shields.io/:stack%20overflow-apache--camel-brightgreen.svg)](http://stackoverflow.com/questions/tagged/apache-camel)
-[![Gitter](https://img.shields.io/gitter/room/apache/apache-camel.js.svg)](https://gitter.im/apache/apache-camel)
-[![Twitter](https://img.shields.io/twitter/follow/ApacheCamel.svg?label=Follow&style=social)](https://twitter.com/ApacheCamel)
-
 = Introduction
 
-This directory contains the various examples for working with Apache
+This project contains the various examples for working with Apache
 Camel Spring Boot. The examples can be run using Maven. When using the Maven
 command, Maven will attempt to download the required dependencies from a
 central repository to your local repository.


[camel-spring-boot-examples] 01/40: Moved examples in their repository, first commit

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit c293aa5e495b65f4d5558b4ac1952e008aa5a6dc
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu May 21 12:39:03 2020 +0200

    Moved examples in their repository, first commit
---
 .gitignore                                         |   27 +
 README.adoc                                        |  115 ++
 camel-example-spring-boot-activemq/pom.xml         |  113 ++
 camel-example-spring-boot-activemq/readme.adoc     |   31 +
 .../java/sample/camel/SampleAmqApplication.java    |   30 +
 .../java/sample/camel/SampleAutowiredAmqRoute.java |   35 +
 .../src/main/resources/application.properties      |   26 +
 .../sample/camel/SampleAmqApplicationTests.java    |   43 +
 camel-example-spring-boot-amqp/pom.xml             |  131 ++
 camel-example-spring-boot-amqp/readme.adoc         |   36 +
 .../src/main/data/ReadMe.txt                       |   43 +
 .../src/main/java/sample/camel/AmqpConfig.java     |   86 ++
 .../java/sample/camel/SampleAmqApplication.java    |   32 +
 .../sample/camel/SampleAutowiredAmqpRoute.java     |   46 +
 .../src/main/resources/application.properties      |   25 +
 .../sample/camel/SampleAmqApplicationTests.java    |   43 +
 .../cluster-bootstrap/pom.xml                      |   64 +
 .../camel/examples/cluster/ClusterBootstrap.java   |   36 +
 .../cluster/ClusterBootstrapConfiguration.java     |   44 +
 .../src/main/resources/application.properties      |   23 +
 .../cluster-node/pom.xml                           |  100 ++
 .../apache/camel/examples/cluster/ClusterNode.java |   36 +
 .../examples/cluster/ClusterNodeConfiguration.java |   47 +
 .../src/main/resources/application.properties      |   47 +
 .../pom.xml                                        |   47 +
 .../readme.adoc                                    |   30 +
 camel-example-spring-boot-fhir-auth-tx/pom.xml     |  155 +++
 camel-example-spring-boot-fhir-auth-tx/readme.adoc |   64 +
 .../src/main/data/patients.csv                     |    2 +
 .../main/java/sample/camel/MyCamelApplication.java |   37 +
 .../src/main/java/sample/camel/MyCamelRouter.java  |   64 +
 .../src/main/resources/application.properties      |   54 +
 .../java/sample/camel/MyCamelApplicationTest.java  |   55 +
 camel-example-spring-boot-fhir/pom.xml             |  154 +++
 camel-example-spring-boot-fhir/readme.adoc         |   62 +
 .../src/main/data/hl7v2.patient                    |    1 +
 .../main/java/sample/camel/MyCamelApplication.java |   36 +
 .../src/main/java/sample/camel/MyCamelRouter.java  |   72 +
 .../src/main/resources/application.properties      |   50 +
 .../java/sample/camel/MyCamelApplicationTest.java  |   55 +
 camel-example-spring-boot-geocoder/README.adoc     |  117 ++
 camel-example-spring-boot-geocoder/pom.xml         |  119 ++
 .../example/springboot/geocoder/Application.java   |   34 +
 .../springboot/geocoder/CamelGeocoderRoute.java    |   46 +
 .../src/main/resources/application.properties      |   47 +
 .../springboot/geocoder/ApplicationTest.java       |   54 +
 .../README.adoc                                    |  132 ++
 .../hello-camel-grpc-client-kubernetes/pom.xml     |  172 +++
 .../camel/example/springboot/grpc/Application.java |   34 +
 .../example/springboot/grpc/CamelGrpcRoute.java    |   45 +
 .../src/main/proto/hellocamel.proto                |   39 +
 .../src/main/resources/application.properties      |   19 +
 .../hello-camel-grpc-server-kubernetes/pom.xml     |  175 +++
 .../camel/examples/grpc/HelloCamelServer.java      |   81 ++
 .../src/main/proto/hellocamel.proto                |   39 +
 camel-example-spring-boot-grpc-kubernetes/pom.xml  |   47 +
 camel-example-spring-boot-grpc/README.adoc         |   68 +
 .../hello-camel-grpc-client/pom.xml                |  131 ++
 .../camel/example/springboot/grpc/Application.java |   34 +
 .../example/springboot/grpc/CamelGrpcRoute.java    |   45 +
 .../src/main/proto/hellocamel.proto                |   39 +
 .../src/main/resources/application.properties      |   19 +
 .../hello-camel-grpc-server/pom.xml                |  117 ++
 .../camel/examples/grpc/HelloCamelServer.java      |   81 ++
 .../src/main/proto/hellocamel.proto                |   39 +
 camel-example-spring-boot-grpc/pom.xml             |   45 +
 .../application/pom.xml                            |  111 ++
 .../src/main/java/sample/camel/Application.java    |   35 +
 .../main/java/sample/camel/ApplicationCheck.java   |   49 +
 .../sample/camel/ApplicationConfiguration.java     |   58 +
 .../src/main/resources/application.properties      |   80 ++
 camel-example-spring-boot-health-checks/pom.xml    |   48 +
 .../readme.adoc                                    |  221 +++
 .../service/pom.xml                                |   89 ++
 .../service/src/main/bash/consul-run-linux.sh      |   59 +
 .../service/src/main/bash/consul-run-osx.sh        |   62 +
 .../src/main/java/sample/service/Application.java  |   36 +
 .../src/main/resources/application.properties      |   25 +
 camel-example-spring-boot-hystrix/README.adoc      |   93 ++
 camel-example-spring-boot-hystrix/client/pom.xml   |   92 ++
 .../main/java/sample/camel/ClientApplication.java  |   48 +
 .../src/main/java/sample/camel/ClientRoute.java    |   44 +
 .../src/main/java/sample/camel/CounterBean.java    |   30 +
 .../client/src/main/resources/META-INF/LICENSE.txt |  203 +++
 .../client/src/main/resources/META-INF/NOTICE.txt  |   11 +
 .../client/src/main/resources/META-INF/beans.xml   |   20 +
 .../src/main/resources/application.properties      |   28 +
 .../client/src/main/resources/log4j2.properties    |   25 +
 .../images/hystrix-web-console.png                 |  Bin 0 -> 50646 bytes
 camel-example-spring-boot-hystrix/pom.xml          |   45 +
 camel-example-spring-boot-hystrix/service1/pom.xml |   96 ++
 .../java/sample/camel/Service1Application.java     |   37 +
 .../src/main/java/sample/camel/Service1Route.java  |   33 +
 .../src/main/resources/META-INF/LICENSE.txt        |  203 +++
 .../src/main/resources/META-INF/NOTICE.txt         |   11 +
 .../src/main/resources/application.properties      |   25 +
 camel-example-spring-boot-hystrix/service2/pom.xml |  108 ++
 .../java/sample/camel/Service2Application.java     |   34 +
 .../src/main/java/sample/camel/Service2Route.java  |   31 +
 .../src/main/resources/META-INF/LICENSE.txt        |  203 +++
 .../src/main/resources/META-INF/NOTICE.txt         |   11 +
 .../service2/src/main/resources/log4j2.properties  |   25 +
 camel-example-spring-boot-infinispan/README.adoc   |   30 +
 camel-example-spring-boot-infinispan/pom.xml       |  101 ++
 .../example/springboot/infinispan/Application.java |   34 +
 .../infinispan/CamelInfinispanRoute.java           |   42 +
 .../src/main/resources/application.properties      |   21 +
 camel-example-spring-boot-jira/README.adoc         |   27 +
 camel-example-spring-boot-jira/pom.xml             |  127 ++
 .../apache/camel/example/jira/AddIssueRoute.java   |   58 +
 .../org/apache/camel/example/jira/Application.java |   34 +
 .../apache/camel/example/jira/AttachFileRoute.java |   43 +
 .../camel/example/jira/NewCommentsRoute.java       |   45 +
 .../src/main/resources/application.properties      |   24 +
 .../src/main/resources/logback.xml                 |   46 +
 camel-example-spring-boot-kafka-avro/README.adoc   |   74 +
 camel-example-spring-boot-kafka-avro/pom.xml       |  189 +++
 .../camel/example/kafka/avro/Application.java      |   37 +
 .../camel/example/kafka/avro/AvroRouteBuilder.java |   36 +
 .../kafka/avro/CustomKafkaAvroDeserializer.java    |   68 +
 .../kafka/avro/CustomKafkaAvroSerializer.java      |   75 +
 .../avro/KafkaAvroMessageConsumerProcessor.java    |   32 +
 .../kafka/avro/KafkaAvroMessageProcessor.java      |   36 +
 .../example/kafka/avro/KafkaAvroProcessor.java     |   40 +
 .../src/main/resources/application.properties      |   32 +
 .../src/main/resources/avro/employee.avsc          |   19 +
 .../src/main/resources/log4j2.properties           |   23 +
 .../src/main/resources/register_schema.py          |   48 +
 .../src/main/resources/spring/camel-context.xml    |   34 +
 .../README.adoc                                    |   62 +
 .../pom.xml                                        |  130 ++
 .../kafka/offsetRepository/KafkaProcessor.java     |   39 +
 .../kafka/offsetRepository/OffsetRepoApp.java      |   37 +
 .../src/main/resources/application.properties      |   33 +
 .../src/main/resources/log4j2.properties           |   23 +
 .../src/main/resources/offsetStateRepo.dat         |    1 +
 .../src/main/resources/spring/camel-context.xml    |   55 +
 camel-example-spring-boot-master/pom.xml           |   99 ++
 camel-example-spring-boot-master/readme.adoc       |   27 +
 .../apache/camel/examples/master/MasterNode.java   |   36 +
 .../examples/master/MasterNodeConfiguration.java   |   47 +
 .../src/main/resources/application.properties      |   43 +
 camel-example-spring-boot-metrics/README.adoc      |   59 +
 camel-example-spring-boot-metrics/pom.xml          |  127 ++
 .../example/spring/boot/metrics/Application.java   |  120 ++
 .../src/main/resources/application.properties      |   19 +
 camel-example-spring-boot-opentracing/README.adoc  |   71 +
 .../client/pom.xml                                 |  131 ++
 .../main/java/sample/camel/ClientApplication.java  |   33 +
 .../src/main/java/sample/camel/ClientRoute.java    |   36 +
 .../src/main/java/sample/camel/CounterBean.java    |   32 +
 .../client/src/main/resources/META-INF/LICENSE.txt |  203 +++
 .../client/src/main/resources/META-INF/NOTICE.txt  |   11 +
 .../client/src/main/resources/META-INF/beans.xml   |   20 +
 .../client/src/main/resources/log4j2.properties    |   25 +
 .../loggingtracer/pom.xml                          |   63 +
 .../sample/opentracing/logging/LoggingTracer.java  |   46 +
 .../src/main/resources/META-INF/LICENSE.txt        |  203 +++
 .../src/main/resources/META-INF/NOTICE.txt         |   11 +
 .../src/main/resources/META-INF/beans.xml          |   20 +
 .../META-INF/services/io.opentracing.Tracer        |   18 +
 .../src/main/resources/log4j2.properties           |   25 +
 camel-example-spring-boot-opentracing/pom.xml      |   48 +
 .../service1/pom.xml                               |  103 ++
 .../java/sample/camel/Service1Application.java     |   41 +
 .../src/main/java/sample/camel/Service1Route.java  |   36 +
 .../src/main/resources/META-INF/LICENSE.txt        |  203 +++
 .../src/main/resources/META-INF/NOTICE.txt         |   11 +
 .../src/main/resources/application.properties      |   25 +
 .../service2/pom.xml                               |  108 ++
 .../java/sample/camel/Service2Application.java     |   41 +
 .../src/main/java/sample/camel/Service2Route.java  |   35 +
 .../src/main/resources/META-INF/LICENSE.txt        |  203 +++
 .../src/main/resources/META-INF/NOTICE.txt         |   11 +
 .../service2/src/main/resources/log4j2.properties  |   25 +
 camel-example-spring-boot-pojo/README.adoc         |   32 +
 camel-example-spring-boot-pojo/pom.xml             |  112 ++
 .../src/main/java/sample/camel/Application.java    |   37 +
 .../src/main/java/sample/camel/MagicNumber.java    |   28 +
 .../src/main/java/sample/camel/NumberPojo.java     |   49 +
 .../src/main/java/sample/camel/NumberRoute.java    |   34 +
 .../src/main/resources/application.properties      |   25 +
 camel-example-spring-boot-rabbitmq/pom.xml         |  138 ++
 camel-example-spring-boot-rabbitmq/readme.adoc     |   35 +
 .../java/sample/camel/SampleCamelApplication.java  |   48 +
 .../main/java/sample/camel/SampleCamelRouter.java  |   40 +
 .../src/main/resources/application.properties      |   45 +
 camel-example-spring-boot-reactive-streams/pom.xml |  120 ++
 .../readme.adoc                                    |   32 +
 .../streams/BasicCamelToReactorExample.java        |   97 ++
 .../streams/BasicCamelToReactorInOutExample.java   |  157 +++
 .../streams/BasicReactorToCamelExample.java        |   88 ++
 .../streams/BasicReactorToCamelInOutExample.java   |   90 ++
 .../reactive/streams/ClientAPIRestExample.java     |   84 ++
 .../reactive/streams/ClientAPIWorkflowExample.java |   89 ++
 .../example/reactive/streams/RestExample.java      |   81 ++
 .../streams/app/ReactiveStreamsSpringBootApp.java  |   31 +
 .../src/main/resources/META-INF/LICENSE.txt        |  203 +++
 .../src/main/resources/META-INF/NOTICE.txt         |   11 +
 .../src/main/resources/META-INF/spring.factories   |   42 +
 .../src/main/resources/application.yml             |   31 +
 camel-example-spring-boot-resilience4j/README.adoc |   86 ++
 .../client/pom.xml                                 |   92 ++
 .../main/java/sample/camel/ClientApplication.java  |   35 +
 .../src/main/java/sample/camel/ClientRoute.java    |   44 +
 .../src/main/java/sample/camel/CounterBean.java    |   30 +
 .../client/src/main/resources/META-INF/LICENSE.txt |  203 +++
 .../client/src/main/resources/META-INF/NOTICE.txt  |   11 +
 .../client/src/main/resources/META-INF/beans.xml   |   20 +
 .../src/main/resources/application.properties      |   31 +
 .../client/src/main/resources/log4j2.properties    |   23 +
 .../client2/pom.xml                                |  112 ++
 .../main/java/sample/camel/Client2Application.java |   36 +
 .../src/main/java/sample/camel/Client2Route.java   |   42 +
 .../src/main/java/sample/camel/CounterBean.java    |   27 +
 .../src/main/resources/META-INF/LICENSE.txt        |  203 +++
 .../client2/src/main/resources/META-INF/NOTICE.txt |   11 +
 .../client2/src/main/resources/META-INF/beans.xml  |   20 +
 .../src/main/resources/application.properties      |   29 +
 .../client2/src/main/resources/log4j2.properties   |   23 +
 camel-example-spring-boot-resilience4j/pom.xml     |   46 +
 .../service1/pom.xml                               |   96 ++
 .../java/sample/camel/Service1Application.java     |   37 +
 .../src/main/java/sample/camel/Service1Route.java  |   33 +
 .../src/main/resources/META-INF/LICENSE.txt        |  203 +++
 .../src/main/resources/META-INF/NOTICE.txt         |   11 +
 .../src/main/resources/application.properties      |   25 +
 .../service2/pom.xml                               |  104 ++
 .../java/sample/camel/Service2Application.java     |   34 +
 .../src/main/java/sample/camel/Service2Route.java  |   31 +
 .../src/main/resources/META-INF/LICENSE.txt        |  203 +++
 .../src/main/resources/META-INF/NOTICE.txt         |   11 +
 .../service2/src/main/resources/log4j2.properties  |   25 +
 camel-example-spring-boot-rest-jpa/README.adoc     |   86 ++
 camel-example-spring-boot-rest-jpa/pom.xml         |  152 ++
 .../example/spring/boot/rest/jpa/Application.java  |   84 ++
 .../camel/example/spring/boot/rest/jpa/Book.java   |   59 +
 .../spring/boot/rest/jpa/BookRepository.java       |   22 +
 .../example/spring/boot/rest/jpa/Database.java     |   38 +
 .../camel/example/spring/boot/rest/jpa/Order.java  |   80 ++
 .../spring/boot/rest/jpa/OrderRepository.java      |   22 +
 .../example/spring/boot/rest/jpa/OrderService.java |   38 +
 .../src/main/resources/application-dev.yml         |   37 +
 .../src/main/resources/application.yml             |   57 +
 .../src/main/resources/data.sql                    |   21 +
 .../spring/boot/rest/jpa/ApplicationTest.java      |   88 ++
 .../src/test/resources/application.yml             |   29 +
 .../README.adoc                                    |   41 +
 .../pom.xml                                        |  104 ++
 .../camel/example/RestOpenApiApplication.java      |   72 +
 camel-example-spring-boot-rest-openapi/README.adoc |   86 ++
 camel-example-spring-boot-rest-openapi/pom.xml     |  127 ++
 .../camel/example/springboot/Application.java      |   34 +
 .../camel/example/springboot/CamelRouter.java      |   88 ++
 .../org/apache/camel/example/springboot/User.java  |   60 +
 .../camel/example/springboot/UserService.java      |   50 +
 .../camel/example/springboot/UserServiceImpl.java  |   51 +
 .../src/main/resources/application.properties      |   41 +
 camel-example-spring-boot-rest-producer/pom.xml    |  134 ++
 .../readme.adoc                                    |   38 +
 .../src/main/java/sample/camel/PetController.java  |   45 +
 .../main/java/sample/camel/RestApplication.java    |   37 +
 .../src/main/java/sample/camel/RestRoute.java      |   41 +
 .../src/main/resources/application.properties      |   25 +
 .../README.adoc                                    |   41 +
 .../pom.xml                                        |  104 ++
 .../camel/example/RestSwaggerApplication.java      |   68 +
 camel-example-spring-boot-rest-swagger/README.adoc |   86 ++
 camel-example-spring-boot-rest-swagger/pom.xml     |  123 ++
 .../camel/example/springboot/Application.java      |   34 +
 .../camel/example/springboot/CamelRouter.java      |   88 ++
 .../org/apache/camel/example/springboot/User.java  |   65 +
 .../camel/example/springboot/UserService.java      |   50 +
 .../camel/example/springboot/UserServiceImpl.java  |   51 +
 .../src/main/resources/application.properties      |   41 +
 camel-example-spring-boot-servicecall/README.adoc  |   78 ++
 .../consumer/pom.xml                               |  144 ++
 .../example/ServiceCallConsumerApplication.java    |   37 +
 .../ServiceCallConsumerAutoConfiguration.java      |   51 +
 .../src/main/resources/application.properties      |   42 +
 .../consumer/src/main/resources/logback.xml        |   36 +
 camel-example-spring-boot-servicecall/pom.xml      |   45 +
 .../services/pom.xml                               |  113 ++
 .../services/src/main/bash/consul-run-linux.sh     |   51 +
 .../services/src/main/bash/consul-run-osx.sh       |   52 +
 .../apache/camel/example/ServiceApplication.java   |   74 +
 .../src/main/resources/application.properties      |   25 +
 .../src/main/resources/consul/services.json        |   19 +
 .../services/src/main/resources/logback.xml        |   36 +
 camel-example-spring-boot-strimzi/.gitignore       |    1 +
 camel-example-spring-boot-strimzi/README.adoc      |  272 ++++
 camel-example-spring-boot-strimzi/pom.xml          |  129 ++
 .../prepare-truststore.sh                          |   11 +
 .../route-diagram.png                              |  Bin 0 -> 10741 bytes
 .../src/main/fabric8/deployment.yml                |   24 +
 .../apache/camel/example/strimzi/Application.java  |   33 +
 .../camel/example/strimzi/StrimziRouteBuilder.java |   39 +
 .../main/resources/application-local.properties    |   27 +
 .../src/main/resources/application.properties      |   27 +
 .../main/resources/kafka-ephemeral-kubernetes.yaml |   25 +
 .../main/resources/kafka-ephemeral-openshift.yaml  |   27 +
 .../pom.xml                                        |  141 ++
 .../readme.adoc                                    |   35 +
 .../src/main/java/sample/camel/Application.java    |   37 +
 .../main/java/sample/camel/ApplicationRoutes.java  |   50 +
 .../src/main/resources/application.properties      |   45 +
 .../README.adoc                                    |  126 ++
 .../pom.xml                                        |  125 ++
 .../org/apache/camel/example/mention/Contact.java  |   61 +
 .../mention/TwitterSalesforceApplication.java      |   34 +
 .../example/mention/TwitterSalesforceRoute.java    |   43 +
 .../src/main/resources/META-INF/LICENSE.txt        |  203 +++
 .../src/main/resources/META-INF/NOTICE.txt         |   11 +
 .../src/main/resources/application.properties      |   39 +
 .../pom.xml                                        |   81 ++
 .../readme.adoc                                    |   67 +
 .../realm-export.json                              | 1446 ++++++++++++++++++++
 .../camel/undertow/spring/boot/Application.java    |   46 +
 .../src/main/resources/application.properties      |   24 +
 camel-example-spring-boot-validator/pom.xml        |  127 ++
 camel-example-spring-boot-validator/readme.adoc    |   34 +
 .../main/java/sample/camel/GreetingValidator.java  |   47 +
 .../src/main/java/sample/camel/SampleBean.java     |   38 +
 .../java/sample/camel/SampleCamelApplication.java  |   37 +
 .../main/java/sample/camel/SampleCamelRouter.java  |   42 +
 .../src/main/resources/application.properties      |   28 +
 .../sample/camel/SampleCamelApplicationTest.java   |   47 +
 camel-example-spring-boot-webhook/pom.xml          |  104 ++
 camel-example-spring-boot-webhook/readme.adoc      |   72 +
 .../apache/camel/example/webhook/Application.java  |   46 +
 .../src/main/resources/application.properties      |   22 +
 camel-example-spring-boot-widget-gadget/pom.xml    |  139 ++
 .../src/main/data/order1.json                      |    7 +
 .../src/main/data/order2.json                      |    7 +
 .../src/main/java/sample/camel/AmqpConfig.java     |   67 +
 .../src/main/java/sample/camel/OrderRoute.java     |   36 +
 .../main/java/sample/camel/WidgetGadgetApp.java    |   27 +
 .../main/java/sample/camel/WidgetGadgetRoute.java  |   42 +
 .../src/main/resources/application.properties      |   21 +
 camel-example-spring-boot-xml/pom.xml              |  144 ++
 camel-example-spring-boot-xml/readme.adoc          |   46 +
 .../src/main/java/sample/camel/SampleBean.java     |   38 +
 .../java/sample/camel/SampleCamelApplication.java  |   40 +
 .../src/main/resources/application.properties      |   44 +
 .../src/main/resources/my-camel.xml                |   40 +
 .../test/java/sample/camel/FooApplicationTest.java |   52 +
 .../sample/camel/SampleCamelApplicationTest.java   |   49 +
 camel-example-spring-boot-zipkin/README.adoc       |  127 ++
 camel-example-spring-boot-zipkin/client/pom.xml    |  126 ++
 .../main/java/sample/camel/ClientApplication.java  |   42 +
 .../src/main/java/sample/camel/ClientRoute.java    |   36 +
 .../src/main/java/sample/camel/CounterBean.java    |   32 +
 .../client/src/main/resources/META-INF/LICENSE.txt |  203 +++
 .../client/src/main/resources/META-INF/NOTICE.txt  |   11 +
 .../client/src/main/resources/META-INF/beans.xml   |   20 +
 .../client/src/main/resources/log4j2.properties    |   25 +
 .../images/zipkin-web-console-1.png                |  Bin 0 -> 47985 bytes
 .../images/zipkin-web-console-2.png                |  Bin 0 -> 132664 bytes
 camel-example-spring-boot-zipkin/pom.xml           |   45 +
 camel-example-spring-boot-zipkin/service1/pom.xml  |   96 ++
 .../java/sample/camel/Service1Application.java     |   42 +
 .../src/main/java/sample/camel/Service1Route.java  |   36 +
 .../src/main/resources/META-INF/LICENSE.txt        |  203 +++
 .../src/main/resources/META-INF/NOTICE.txt         |   11 +
 .../src/main/resources/application.properties      |   38 +
 camel-example-spring-boot-zipkin/service2/pom.xml  |  108 ++
 .../java/sample/camel/Service2Application.java     |   33 +
 .../src/main/java/sample/camel/Service2Route.java  |   46 +
 .../src/main/resources/META-INF/LICENSE.txt        |  203 +++
 .../src/main/resources/META-INF/NOTICE.txt         |   11 +
 .../service2/src/main/resources/log4j2.properties  |   25 +
 camel-example-spring-boot/pom.xml                  |  155 +++
 camel-example-spring-boot/readme.adoc              |   51 +
 .../src/main/java/sample/camel/MyBean.java         |   38 +
 .../main/java/sample/camel/MyCamelApplication.java |   37 +
 .../src/main/java/sample/camel/MyCamelRouter.java  |   40 +
 .../src/main/resources/application.properties      |   52 +
 .../sample/camel/FooApplicationJUnit5Test.java     |   52 +
 .../test/java/sample/camel/FooApplicationTest.java |   53 +
 .../sample/camel/MyCamelApplicationJUnit5Test.java |   48 +
 .../java/sample/camel/MyCamelApplicationTest.java  |   49 +
 camel-example-spring-cloud-servicecall/README.adoc |   68 +
 .../consumer/pom.xml                               |  134 ++
 .../apache/camel/example/ConsumerApplication.java  |   64 +
 .../src/main/resources/application.properties      |   40 +
 .../consumer/src/main/resources/logback.xml        |   36 +
 camel-example-spring-cloud-servicecall/pom.xml     |   44 +
 .../service/pom.xml                                |  104 ++
 .../service/src/main/bash/consul-run-linux.sh      |   50 +
 .../service/src/main/bash/consul-run-osx.sh        |   50 +
 .../apache/camel/example/ServiceApplication.java   |   71 +
 .../src/main/resources/application.properties      |   25 +
 .../src/main/resources/consul/services.json        |   19 +
 .../service/src/main/resources/logback.xml         |   36 +
 .../README.adoc                                    |   72 +
 .../consumer/pom.xml                               |  142 ++
 .../apache/camel/example/ConsumerApplication.java  |   57 +
 .../src/main/resources/application.properties      |   44 +
 camel-example-spring-cloud-serviceregistry/pom.xml |   45 +
 .../service/pom.xml                                |  129 ++
 .../apache/camel/example/ServiceApplication.java   |   51 +
 .../src/main/resources/application.properties      |   39 +
 pom.xml                                            |  197 +++
 403 files changed, 25954 insertions(+)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..5d69a55
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,27 @@
+target
+*.iml
+*.ipr
+*.iws
+.idea
+.DS_Store
+.classpath
+.ekstazi
+.project
+.settings
+.checkstyle
+*.log
+test-salesforce-login.properties
+dependency-reduced-pom.xml
+id_file
+components/camel-solr/data
+*.epoch
+.factorypath
+.pmd
+.sts4-cache
+log-camel-lsp.out
+.vscode
+*.code-workspace
+components/camel-cxf/activemq-data
+*.swp
+.flattened-pom.xml
+.java-version
diff --git a/README.adoc b/README.adoc
new file mode 100644
index 0000000..d4820ea
--- /dev/null
+++ b/README.adoc
@@ -0,0 +1,115 @@
+# Welcome to the Apache Camel Examples
+
+= Introduction
+
+This directory contains the various examples for working with Apache
+Camel. The examples can be run using Maven. When using the Maven
+command, Maven will attempt to download the required dependencies from a
+central repository to your local repository.
+View the individual example READMEs for details.
+
+== Examples
+
+// examples: START
+Number of Examples: 40 (0 deprecated)
+
+[width="100%",cols="4,2,4",options="header"]
+|===
+| Example | Category | Description
+
+| link:camel-example-spring-boot-undertow-spring-security/readme.adoc[Spring Boot Undertow Spring Security] (camel-example-spring-boot-undertow-spring-security) | Advanced | Example on how to use the Camel Undertow component with spring security and Keycloak
+
+| link:camel-example-spring-boot-webhook/readme.adoc[Spring Boot Webhook] (camel-example-spring-boot-webhook) | Advanced | Example on how to use the Camel Webhook component
+
+| link:camel-example-spring-boot/readme.adoc[Spring Boot] (camel-example-spring-boot) | Beginner | An example showing how to work with Camel and Spring Boot
+
+| link:camel-example-spring-boot-health-checks/readme.adoc[Spring Boot Health Checks] (camel-example-spring-boot-health-checks) | Beginner | An example showing how to work with Camel's Health Checks and Spring Boot
+
+| link:camel-example-spring-boot-jira/README.adoc[Spring Boot Jira] (camel-example-spring-boot-jira) | Beginner | An example that uses Jira Camel API
+
+| link:camel-example-spring-boot-pojo/README.adoc[Spring Boot Pojo] (camel-example-spring-boot-pojo) | Beginner | An example showing how to work with Camel POJO routing with Spring Boot
+
+| link:camel-example-spring-boot-rest-openapi-simple/README.adoc[REST OpenApi] (camel-example-spring-boot-rest-openapi-simple) | Beginner | This example shows how to call a Rest service defined using OpenApi specification
+
+| link:camel-example-spring-boot-rest-swagger-simple/README.adoc[REST Swagger] (camel-example-spring-boot-rest-swagger-simple) | Beginner | This example shows how to call a Rest service defined using Swagger specification
+
+| link:camel-example-spring-boot-xml/readme.adoc[Spring Boot XML] (camel-example-spring-boot-xml) | Beginner | An example showing how to work with Camel routes in XML files and Spring Boot
+
+| link:camel-example-spring-boot-grpc/README.adoc[gRPC Spring Boot] (camel-example-spring-boot-grpc) | Cloud | An example showing the Camel gRPC component with Spring Boot
+
+| link:camel-example-spring-boot-grpc-kubernetes/README.adoc[gRPC Kubernetes] (camel-example-spring-boot-grpc-kubernetes) | Cloud | An example showing the Camel gRPC component with Spring Boot running on Kubernetes
+
+| link:camel-example-spring-boot-infinispan/README.adoc[Spring Boot Infinispan] (camel-example-spring-boot-infinispan) | Cloud | An example showing the Camel Infinispan component with Spring Boot
+
+| link:camel-example-spring-boot-servicecall/README.adoc[Spring Boot ServiceCall] (camel-example-spring-boot-servicecall) | Cloud | An example showing how to work with Camel ServiceCall EIP and Spring Boot
+
+| link:camel-example-spring-cloud-servicecall/README.adoc[Spring Cloud Servicecall] (camel-example-spring-cloud-servicecall) | Cloud | An example showing how to work with Camel ServiceCall EIP and Spring Cloud
+
+| link:camel-example-spring-cloud-serviceregistry/README.adoc[Spring Cloud ServiceRegistry] (camel-example-spring-cloud-serviceregistry) | Cloud | An example showing how to work with Camel Service registry and Spring Cloud
+
+| link:camel-example-spring-boot-clustered-route-controller/readme.adoc[Spring Boot Clustered Route Controller] (camel-example-spring-boot-clustered-route-controller) | Clustering | An example showing how to work with Camel's Clustered Route Controller and Spring Boot
+
+| link:camel-example-spring-boot-master/readme.adoc[Spring Boot Master] (camel-example-spring-boot-master) | Clustering | An example showing how to work with Camel's Master component and Spring Boot
+
+| link:camel-example-spring-boot-rest-jpa/README.adoc[Spring Boot REST JPA] (camel-example-spring-boot-rest-jpa) | Database | An example demonstrating how to use Camel REST DSL with JPA to expose a RESTful API that performs CRUD
+        operations on a database
+    
+
+| link:camel-example-spring-boot-hystrix/README.adoc[Spring Boot Hystrix] (camel-example-spring-boot-hystrix) | EIP | An example showing how to use Hystrix EIP as circuit breaker in Camel routes
+
+| link:camel-example-spring-boot-resilience4j/README.adoc[Spring Boot Resilience4j] (camel-example-spring-boot-resilience4j) | EIP | An example showing how to use Resilience4j EIP as circuit breaker in Camel routes
+
+| link:camel-example-spring-boot-fhir/readme.adoc[Spring Boot Fhir] (camel-example-spring-boot-fhir) | Health Care | An example showing how to work with Camel, FHIR and Spring Boot
+
+| link:camel-example-spring-boot-fhir-auth-tx/readme.adoc[Spring Boot Fhir Auth Tx] (camel-example-spring-boot-fhir-auth-tx) | Health Care | An example showing how to work with Camel, FHIR Authorization, FHIR Transaction and Spring Boot
+    
+
+| link:camel-example-spring-boot-validator/readme.adoc[Validator Spring Boot] (camel-example-spring-boot-validator) | Input/Output Type Contract | An example showing how to work with declarative validation and Spring Boot
+
+| link:camel-example-spring-boot-metrics/README.adoc[Spring Boot Metrics] (camel-example-spring-boot-metrics) | Management and Monitoring | An example showing how to work with Camel and Spring Boot and report metrics to Graphite
+
+| link:camel-example-spring-boot-opentracing/README.adoc[OpenTracing] (camel-example-spring-boot-opentracing) | Management and Monitoring | An example showing how to trace incoming and outgoing messages from Camel with OpenTracing
+    
+
+| link:camel-example-spring-boot-supervising-route-controller/readme.adoc[Spring Boot Supervising Route Controller] (camel-example-spring-boot-supervising-route-controller) | Management and Monitoring | An example showing how to work with Camel's Supervising Route Controller and Spring Boot
+
+| link:camel-example-spring-boot-zipkin/README.adoc[Spring Boot Zipkin] (camel-example-spring-boot-zipkin) | Management and Monitoring | An example showing how to trace incoming and outgoing messages from Camel with Zipkin
+
+| link:camel-example-spring-boot-activemq/readme.adoc[Spring Boot Activemq] (camel-example-spring-boot-activemq) | Messaging | An example showing how to work with Camel, ActiveMQ and Spring Boot
+
+| link:camel-example-spring-boot-amqp/readme.adoc[Spring Boot Amqp] (camel-example-spring-boot-amqp) | Messaging | An example showing how to work with Camel, ActiveMQ Amqp and Spring Boot
+
+| link:camel-example-spring-boot-kafka-avro/README.adoc[Spring Boot Kafka Avro] (camel-example-spring-boot-kafka-avro) | Messaging | An example for Kafka avro
+
+| link:camel-example-spring-boot-kafka-offsetrepository/README.adoc[Spring Boot Kafka Offsetrepository] (camel-example-spring-boot-kafka-offsetrepository) | Messaging | An example for Kafka offsetrepository
+
+| link:camel-example-spring-boot-rabbitmq/readme.adoc[Spring Boot Rabbitmq] (camel-example-spring-boot-rabbitmq) | Messaging | An example showing how to work with Camel and RabbitMQ
+
+| link:camel-example-spring-boot-strimzi/README.adoc[Spring Boot Strimzi] (camel-example-spring-boot-strimzi) | Messaging | Camel example which a route is defined in XML for Strimzi integration on Openshift/Kubernetes
+
+| link:camel-example-spring-boot-widget-gadget/readme.md[Spring Boot Widget Gadget] (camel-example-spring-boot-widget-gadget) | Messaging | The widget and gadget example from EIP book, running on Spring Boot
+
+| link:camel-example-spring-boot-reactive-streams/readme.adoc[Spring Boot Reactive Streams] (camel-example-spring-boot-reactive-streams) | Reactive | An example that shows how Camel can exchange data using reactive streams with Spring Boot reactor
+    
+
+| link:camel-example-spring-boot-geocoder/README.adoc[Spring Boot Geocoder] (camel-example-spring-boot-geocoder) | Rest | An example showing the Camel Geocoder component via REST DSL with Spring Boot
+
+| link:camel-example-spring-boot-rest-openapi/README.adoc[Spring Boot Rest Openapi] (camel-example-spring-boot-rest-openapi) | Rest | An example showing Camel REST DSL and OpenApi with Spring Boot
+
+| link:camel-example-spring-boot-rest-producer/readme.adoc[Spring Boot Rest Producer] (camel-example-spring-boot-rest-producer) | Rest | An example showing how to use Camel Rest to call a REST service
+
+| link:camel-example-spring-boot-rest-swagger/README.adoc[Spring Boot Rest Swagger] (camel-example-spring-boot-rest-swagger) | Rest | An example showing Camel REST DSL and Swagger with Spring Boot
+
+| link:camel-example-spring-boot-twitter-salesforce/README.adoc[Spring Boot Twitter Salesforce] (camel-example-spring-boot-twitter-salesforce) | Social | Twitter mentions is created as contacts in Salesforce
+|===
+// examples: END
+
+== Help and contributions
+
+If you hit any problem using Camel or have some feedback, 
+then please https://camel.apache.org/support.html[let us know].
+
+We also love contributors, 
+so https://camel.apache.org/contributing.html[get involved] :-)
+
+The Camel riders!
diff --git a/camel-example-spring-boot-activemq/pom.xml b/camel-example-spring-boot-activemq/pom.xml
new file mode 100644
index 0000000..086a9ef
--- /dev/null
+++ b/camel-example-spring-boot-activemq/pom.xml
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>examples</artifactId>
+        <version>3.4.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-example-spring-boot-activemq</artifactId>
+    <name>Camel SB Examples :: ActiveMQ</name>
+    <description>An example showing how to work with Camel, ActiveMQ and Spring Boot</description>
+
+    <properties>
+        <category>Messaging</category>
+
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <spring.boot-version>${spring-boot-version}</spring.boot-version>
+    </properties>
+
+    <dependencyManagement>
+
+        <dependencies>
+            <!-- Spring Boot BOM -->
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring.boot-version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+
+            <!-- Camel BOM -->
+            <dependency>
+                <groupId>org.apache.camel.springboot</groupId>
+                <artifactId>camel-spring-boot-dependencies</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+
+    </dependencyManagement>
+
+    <dependencies>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
+
+        <!-- Camel -->
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-activemq-starter</artifactId>
+        </dependency>
+
+        <!-- test -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-test-spring</artifactId>
+            <version>${camel-version}</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring-boot-version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/camel-example-spring-boot-activemq/readme.adoc b/camel-example-spring-boot-activemq/readme.adoc
new file mode 100644
index 0000000..9d18362
--- /dev/null
+++ b/camel-example-spring-boot-activemq/readme.adoc
@@ -0,0 +1,31 @@
+== Camel Example Spring Boot and ActiveMQ
+
+This example shows how to work with a simple Apache Camel application using Spring Boot and Apache ActiveMQ.
+
+=== Preparing ActiveMQ brokers
+
+From Apache ActiveMQ you can download the broker as a `.zip` or `.tar.gz` file.
+
+Unzip/tar the archive, and start a terminal.
+
+Change directory to the unzipped directory and start the broker.
+
+    bin/activemq console
+
+Which runs the broker in the foreground and logs to the console.
+
+=== How to run the example
+
+You can run this example using
+
+    mvn spring-boot:run
+
+=== Help and contributions
+
+If you hit any problem using Camel or have some feedback, then please
+https://camel.apache.org/support.html[let us know].
+
+We also love contributors, so
+https://camel.apache.org/contributing.html[get involved] :-)
+
+The Camel riders!
diff --git a/camel-example-spring-boot-activemq/src/main/java/sample/camel/SampleAmqApplication.java b/camel-example-spring-boot-activemq/src/main/java/sample/camel/SampleAmqApplication.java
new file mode 100644
index 0000000..6890811
--- /dev/null
+++ b/camel-example-spring-boot-activemq/src/main/java/sample/camel/SampleAmqApplication.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package sample.camel;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+//CHECKSTYLE:OFF
+@SpringBootApplication
+public class SampleAmqApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(SampleAmqApplication.class, args);
+    }
+}
+// CHECKSTYLE:ON
diff --git a/camel-example-spring-boot-activemq/src/main/java/sample/camel/SampleAutowiredAmqRoute.java b/camel-example-spring-boot-activemq/src/main/java/sample/camel/SampleAutowiredAmqRoute.java
new file mode 100644
index 0000000..51ff06d
--- /dev/null
+++ b/camel-example-spring-boot-activemq/src/main/java/sample/camel/SampleAutowiredAmqRoute.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package sample.camel;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.springframework.stereotype.Component;
+
+@Component
+public class SampleAutowiredAmqRoute extends RouteBuilder {
+
+    @Override
+    public void configure() throws Exception {
+        from("activemq:foo")
+            .to("log:sample");
+
+        from("timer:bar")
+            .setBody(constant("Hello from Camel"))
+            .to("activemq:foo");
+    }
+
+}
diff --git a/camel-example-spring-boot-activemq/src/main/resources/application.properties b/camel-example-spring-boot-activemq/src/main/resources/application.properties
new file mode 100644
index 0000000..fb00b51
--- /dev/null
+++ b/camel-example-spring-boot-activemq/src/main/resources/application.properties
@@ -0,0 +1,26 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+# to keep the JVM running
+camel.springboot.main-run-controller = true
+
+# setup camel-activemq-starter with the url of the remote broker
+# you can change the port number to 61617 and reconfigure conf/activemq.xml to use port 61617 instead of 61616
+# to try using a different port than the default
+camel.component.activemq.broker-url=tcp://localhost:61616
+
+
diff --git a/camel-example-spring-boot-activemq/src/test/java/sample/camel/SampleAmqApplicationTests.java b/camel-example-spring-boot-activemq/src/test/java/sample/camel/SampleAmqApplicationTests.java
new file mode 100644
index 0000000..4243bda
--- /dev/null
+++ b/camel-example-spring-boot-activemq/src/test/java/sample/camel/SampleAmqApplicationTests.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package sample.camel;
+
+import java.util.concurrent.TimeUnit;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.builder.NotifyBuilder;
+import org.apache.camel.test.spring.CamelSpringBootRunner;
+import org.junit.Ignore;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import static org.junit.Assert.assertTrue;
+
+@RunWith(CamelSpringBootRunner.class)
+@SpringBootTest(classes = SampleAmqApplication.class)
+public class SampleAmqApplicationTests {
+    @Autowired
+    private CamelContext camelContext;
+
+    @Ignore("Requires a running activemq broker")
+    public void shouldProduceMessages() throws Exception {
+        NotifyBuilder notify = new NotifyBuilder(camelContext).whenDone(1).create();
+
+        assertTrue(notify.matches(10, TimeUnit.SECONDS));
+    }
+}
diff --git a/camel-example-spring-boot-amqp/pom.xml b/camel-example-spring-boot-amqp/pom.xml
new file mode 100644
index 0000000..5513b2f
--- /dev/null
+++ b/camel-example-spring-boot-amqp/pom.xml
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>examples</artifactId>
+        <version>3.4.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-example-spring-boot-amqp</artifactId>
+    <name>Camel SB Examples :: Amqp</name>
+    <description>An example showing how to work with Camel, ActiveMQ Amqp and Spring Boot</description>
+
+    <properties>
+        <category>Messaging</category>
+
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <spring.boot-version>${spring-boot-version}</spring.boot-version>
+    </properties>
+
+    <dependencyManagement>
+
+        <dependencies>
+            <!-- Spring Boot BOM -->
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring.boot-version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+
+            <!-- Camel BOM -->
+            <dependency>
+                <groupId>org.apache.camel.springboot</groupId>
+                <artifactId>camel-spring-boot-dependencies</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+
+    </dependencyManagement>
+
+    <dependencies>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-tomcat</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-undertow</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-amqp-starter</artifactId>
+        </dependency>
+
+        <!-- Camel -->
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-spring-boot-starter</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-amqp</artifactId>
+            <version>${camel-version}</version>
+        </dependency>
+
+
+        <!-- test -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-test-spring</artifactId>
+            <version>${camel-version}</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring-boot-version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/camel-example-spring-boot-amqp/readme.adoc b/camel-example-spring-boot-amqp/readme.adoc
new file mode 100644
index 0000000..50fba31
--- /dev/null
+++ b/camel-example-spring-boot-amqp/readme.adoc
@@ -0,0 +1,36 @@
+== Camel Example Spring Boot and ActiveMQ AMQP
+
+This example shows how to work with a simple Apache Camel application using Spring Boot and Apache ActiveMQ.
+
+=== Preparing ActiveMQ brokers
+
+From Apache ActiveMQ you can download the broker as a `.zip` or `.tar.gz` file.
+
+Unzip/tar the archive, and start a terminal.
+
+Change directory to the unzipped directory and start the broker.
+
+    bin/activemq console
+
+Which runs the broker in the foreground and logs to the console.
+
+=== How to run the example
+
+You can run this example using
+
+    mvn spring-boot:run
+
+=== Using Camel components
+
+Apache Camel provides 200+ components which you can use to integrate and route messages between many systems
+and data formats. To use any of these Camel components, add the component as a dependency to your project.
+
+=== Help and contributions
+
+If you hit any problem using Camel or have some feedback, then please
+https://camel.apache.org/support.html[let us know].
+
+We also love contributors, so
+https://camel.apache.org/contributing.html[get involved] :-)
+
+The Camel riders!
diff --git a/camel-example-spring-boot-amqp/src/main/data/ReadMe.txt b/camel-example-spring-boot-amqp/src/main/data/ReadMe.txt
new file mode 100644
index 0000000..c384fbd
--- /dev/null
+++ b/camel-example-spring-boot-amqp/src/main/data/ReadMe.txt
@@ -0,0 +1,43 @@
+example project which connects to A-MQ 7 from Fuse 7, using remote A-MQ address
+
+There is the code, from that project, which instantiates component, and sends message
+
+public class CamelRoute extends RouteBuilder {
+
+	@Override
+	public void configure() throws Exception {
+			JmsComponent component = createArtemisComponent();
+			getContext().addComponent("artemis", component);
+		
+			from("timer://foo?fixedRate=true&period=60000&repeatCount=2")
+				.setBody().constant("HELLO")
+				.to("artemis:queue:test")
+				.log("Sent --> ${body}")
+			;	
+	}
+
+	private JmsComponent createArtemisComponent() {
+
+		ActiveMQJMSConnectionFactory connectionFactory= new ActiveMQJMSConnectionFactory("tcp://localhost:61616");
+		connectionFactory.setUser("admin");
+		connectionFactory.setPassword("admin");
+
+		JmsComponent component = new JmsComponent();
+		component.setConnectionFactory(connectionFactory);
+		
+		return component;
+	}
+}
+
+Please see pom file, I don't specify pom versions, because they come in the BOM
+
+    <dependency>
+    <groupId>org.apache.activemq</groupId>
+    <artifactId>artemis-jms-client</artifactId>
+    </dependency>
+     <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-jms</artifactId>
+    </dependency>
+
+
diff --git a/camel-example-spring-boot-amqp/src/main/java/sample/camel/AmqpConfig.java b/camel-example-spring-boot-amqp/src/main/java/sample/camel/AmqpConfig.java
new file mode 100644
index 0000000..d981fbc
--- /dev/null
+++ b/camel-example-spring-boot-amqp/src/main/java/sample/camel/AmqpConfig.java
@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package sample.camel;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class AmqpConfig {
+
+    @Value("${AMQP_HOST}")
+    private String amqpHost;
+    @Value("${AMQP_SERVICE_PORT}")
+    private String amqpPort;
+    @Value("${AMQP_SERVICE_USERNAME}")
+    private String userName;
+    @Value("${AMQP_SERVICE_PASSWORD}")
+    private String pass;
+    @Value("${AMQP_REMOTE_URI}")
+    private String remoteUri;
+
+    public String getAmqpHost() {
+        return amqpHost;
+    }
+
+    public void setAmqpHost(String amqpHost) {
+        this.amqpHost = amqpHost;
+    }
+
+    public String getAmqpPort() {
+        return amqpPort;
+    }
+
+    public void setAmqpPort(String amqpPort) {
+        this.amqpPort = amqpPort;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getPass() {
+        return pass;
+    }
+
+    public void setPass(String pass) {
+        this.pass = pass;
+    }
+
+    public String getRemoteUri() {
+        return remoteUri;
+    }
+    
+    public void setRemoteUri(String remoteUri) {
+        this.remoteUri = remoteUri;
+    }
+
+    @Bean
+    public org.apache.qpid.jms.JmsConnectionFactory amqpConnectionFactory() {
+        org.apache.qpid.jms.JmsConnectionFactory jmsConnectionFactory = new org.apache.qpid.jms.JmsConnectionFactory();
+        jmsConnectionFactory.setRemoteURI(remoteUri);
+        jmsConnectionFactory.setUsername(userName);
+        jmsConnectionFactory.setPassword(pass);
+        return jmsConnectionFactory;
+    }
+
+}
diff --git a/camel-example-spring-boot-amqp/src/main/java/sample/camel/SampleAmqApplication.java b/camel-example-spring-boot-amqp/src/main/java/sample/camel/SampleAmqApplication.java
new file mode 100644
index 0000000..bd7b327
--- /dev/null
+++ b/camel-example-spring-boot-amqp/src/main/java/sample/camel/SampleAmqApplication.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package sample.camel;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+//CHECKSTYLE:OFF
+@SpringBootApplication
+@EnableAutoConfiguration
+public class SampleAmqApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(SampleAmqApplication.class, args);
+    }
+}
+// CHECKSTYLE:ON
diff --git a/camel-example-spring-boot-amqp/src/main/java/sample/camel/SampleAutowiredAmqpRoute.java b/camel-example-spring-boot-amqp/src/main/java/sample/camel/SampleAutowiredAmqpRoute.java
new file mode 100644
index 0000000..671643d
--- /dev/null
+++ b/camel-example-spring-boot-amqp/src/main/java/sample/camel/SampleAutowiredAmqpRoute.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package sample.camel;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.qpid.jms.JmsConnectionFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.stereotype.Component;
+
+@Component
+public class SampleAutowiredAmqpRoute extends RouteBuilder {
+
+    @Autowired JmsConnectionFactory amqpConnectionFactory;
+    @Bean
+    public org.apache.camel.component.amqp.AMQPComponent amqpConnection() {
+        org.apache.camel.component.amqp.AMQPComponent amqp = new org.apache.camel.component.amqp.AMQPComponent();
+        amqp.setConnectionFactory(amqpConnectionFactory);
+        return amqp;
+    }
+
+    @Override
+    public void configure() throws Exception {
+        from("file:src/main/data?noop=true")
+            .to("amqp:queue:SCIENCEQUEUE");
+
+        /*from("timer:bar")
+            .setBody(constant("Hello from Camel"))
+            .to("amqp:queue:SCIENCEQUEUE");*/
+    }
+
+}
diff --git a/camel-example-spring-boot-amqp/src/main/resources/application.properties b/camel-example-spring-boot-amqp/src/main/resources/application.properties
new file mode 100644
index 0000000..e70b0d5
--- /dev/null
+++ b/camel-example-spring-boot-amqp/src/main/resources/application.properties
@@ -0,0 +1,25 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+#You can use this property to override the default autowired broker-url
+
+camel.springboot.main-run-controller = true
+AMQP_REMOTE_URI=amqp://localhost:5672
+AMQP_HOST=localhost
+AMQP_SERVICE_PORT=5672
+AMQP_SERVICE_USERNAME=admin
+AMQP_SERVICE_PASSWORD=admin
diff --git a/camel-example-spring-boot-amqp/src/test/java/sample/camel/SampleAmqApplicationTests.java b/camel-example-spring-boot-amqp/src/test/java/sample/camel/SampleAmqApplicationTests.java
new file mode 100644
index 0000000..4243bda
--- /dev/null
+++ b/camel-example-spring-boot-amqp/src/test/java/sample/camel/SampleAmqApplicationTests.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package sample.camel;
+
+import java.util.concurrent.TimeUnit;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.builder.NotifyBuilder;
+import org.apache.camel.test.spring.CamelSpringBootRunner;
+import org.junit.Ignore;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import static org.junit.Assert.assertTrue;
+
+@RunWith(CamelSpringBootRunner.class)
+@SpringBootTest(classes = SampleAmqApplication.class)
+public class SampleAmqApplicationTests {
+    @Autowired
+    private CamelContext camelContext;
+
+    @Ignore("Requires a running activemq broker")
+    public void shouldProduceMessages() throws Exception {
+        NotifyBuilder notify = new NotifyBuilder(camelContext).whenDone(1).create();
+
+        assertTrue(notify.matches(10, TimeUnit.SECONDS));
+    }
+}
diff --git a/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/pom.xml b/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/pom.xml
new file mode 100644
index 0000000..25888e2
--- /dev/null
+++ b/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/pom.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>camel-example-spring-boot-clustered-route-controller</artifactId>
+        <version>3.4.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-example-spring-boot-clustered-route-controller-cluster-bootstrap</artifactId>
+    <name>Camel SB Examples :: CRC :: Bootstrap</name>
+    <description>Bootstrap an Atomix Cluster (single node)</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+            <version>${spring-boot-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>io.atomix</groupId>
+            <artifactId>atomix-all</artifactId>
+            <version>${atomix-version}</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring-boot-version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/src/main/java/org/apache/camel/examples/cluster/ClusterBootstrap.java b/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/src/main/java/org/apache/camel/examples/cluster/ClusterBootstrap.java
new file mode 100644
index 0000000..17793ea
--- /dev/null
+++ b/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/src/main/java/org/apache/camel/examples/cluster/ClusterBootstrap.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.examples.cluster;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+//CHECKSTYLE:OFF
+/**
+ * A sample Spring Boot application that starts the Atomix bootstrap node.
+ */
+@SpringBootApplication
+public class ClusterBootstrap {
+
+    /**
+     * A main method to start this application.
+     */
+    public static void main(String[] args) {
+        SpringApplication.run(ClusterBootstrap.class, args);
+    }
+}
+//CHECKSTYLE:ON
\ No newline at end of file
diff --git a/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/src/main/java/org/apache/camel/examples/cluster/ClusterBootstrapConfiguration.java b/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/src/main/java/org/apache/camel/examples/cluster/ClusterBootstrapConfiguration.java
new file mode 100644
index 0000000..2f900a6
--- /dev/null
+++ b/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/src/main/java/org/apache/camel/examples/cluster/ClusterBootstrapConfiguration.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.examples.cluster;
+
+import io.atomix.AtomixReplica;
+import io.atomix.catalyst.transport.Address;
+import io.atomix.catalyst.transport.netty.NettyTransport;
+import io.atomix.copycat.server.storage.Storage;
+import io.atomix.copycat.server.storage.StorageLevel;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class ClusterBootstrapConfiguration {
+    @Value("${cluster.address}")
+    private String address;
+
+    @Bean(destroyMethod = "shutdown")
+    public AtomixReplica atomix() {
+        return AtomixReplica.builder(new Address(address))
+            .withTransport(new NettyTransport())
+            .withStorage(Storage.builder()
+                .withStorageLevel(StorageLevel.MEMORY)
+                .build())
+            .build()
+            .bootstrap()
+            .join();
+    }
+}
diff --git a/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/src/main/resources/application.properties b/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/src/main/resources/application.properties
new file mode 100644
index 0000000..32d417f
--- /dev/null
+++ b/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/src/main/resources/application.properties
@@ -0,0 +1,23 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+debug = false
+
+logging.level.org.springframework = INFO
+logging.level.io.atomix = DEBUG
+
+cluster.address = 127.0.0.1:8700
diff --git a/camel-example-spring-boot-clustered-route-controller/cluster-node/pom.xml b/camel-example-spring-boot-clustered-route-controller/cluster-node/pom.xml
new file mode 100644
index 0000000..1c179f1
--- /dev/null
+++ b/camel-example-spring-boot-clustered-route-controller/cluster-node/pom.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>camel-example-spring-boot-clustered-route-controller</artifactId>
+        <version>3.4.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-example-spring-boot-clustered-route-controller-cluster-node</artifactId>
+    <name>Camel SB Examples :: CRC :: Node</name>
+    <description>Bootstrap an Camel Cluster Node</description>
+
+    <dependencyManagement>
+        <dependencies>
+            <!-- Spring Boot BOM -->
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring.boot-version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <!-- Camel BOM -->
+            <dependency>
+                <groupId>org.apache.camel.springboot</groupId>
+                <artifactId>camel-spring-boot-dependencies</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-tomcat</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-undertow</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-atomix-starter</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring-boot-version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/camel-example-spring-boot-clustered-route-controller/cluster-node/src/main/java/org/apache/camel/examples/cluster/ClusterNode.java b/camel-example-spring-boot-clustered-route-controller/cluster-node/src/main/java/org/apache/camel/examples/cluster/ClusterNode.java
new file mode 100644
index 0000000..d5a5a18
--- /dev/null
+++ b/camel-example-spring-boot-clustered-route-controller/cluster-node/src/main/java/org/apache/camel/examples/cluster/ClusterNode.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.examples.cluster;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+//CHECKSTYLE:OFF
+/**
+ * A sample Spring Boot application that starts the Camel routes.
+ */
+@SpringBootApplication
+public class ClusterNode {
+
+    /**
+     * A main method to start this application.
+     */
+    public static void main(String[] args) {
+        SpringApplication.run(ClusterNode.class, args);
+    }
+}
+//CHECKSTYLE:ON
diff --git a/camel-example-spring-boot-clustered-route-controller/cluster-node/src/main/java/org/apache/camel/examples/cluster/ClusterNodeConfiguration.java b/camel-example-spring-boot-clustered-route-controller/cluster-node/src/main/java/org/apache/camel/examples/cluster/ClusterNodeConfiguration.java
new file mode 100644
index 0000000..edc9b97
--- /dev/null
+++ b/camel-example-spring-boot-clustered-route-controller/cluster-node/src/main/java/org/apache/camel/examples/cluster/ClusterNodeConfiguration.java
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.examples.cluster;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class ClusterNodeConfiguration {
+
+    @Bean
+    public RouteBuilder routeBuilder() {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                // This route is configured to be local (see application.properties)
+                // so it will be started regardless of the leadership status if
+                // this node.
+                from("timer:heartbeat?period=10000")
+                    .routeId("heartbeat")
+                    .log("HeartBeat route (timer) {{node.id}} ...");
+
+                // This route is configured to be clustered so it will be started
+                // by the controller only when this node is leader
+                from("timer:clustered?period=5000")
+                    .routeId("clustered")
+                    .log("Clustered route (timer) {{node.id}} ...");
+            }
+        };
+    }
+
+}
diff --git a/camel-example-spring-boot-clustered-route-controller/cluster-node/src/main/resources/application.properties b/camel-example-spring-boot-clustered-route-controller/cluster-node/src/main/resources/application.properties
new file mode 100644
index 0000000..9bdcc4d
--- /dev/null
+++ b/camel-example-spring-boot-clustered-route-controller/cluster-node/src/main/resources/application.properties
@@ -0,0 +1,47 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+debug = false
+
+logging.level.org.springframework = INFO
+logging.level.io.atomix = DEBUG
+logging.level.org.apache.camel.cluster = DEBUG
+logging.level.org.apache.camel.impl.cluster = DEBUG
+logging.level.org.apache.camel.component.atomix = DEBUG
+logging.level.org.apache.camel.examples.cluster = DEBUG
+
+management.endpoints.enabled-by-default = false
+management.endpoints.jmx.enabled = false
+management.endpoint.health.enabled = true
+
+management.server.port = -1
+
+node.id = ${random.uuid}
+
+camel.springboot.name = SampleClusteredRouteController
+camel.springboot.jmx-enabled = false
+
+camel.clustered.controller.enabled = true
+camel.clustered.controller.namespace = camel
+camel.clustered.controller.initial-delay = 5000
+
+camel.clustered.controller.routes.heartbeat.clustered = false
+
+camel.component.atomix.cluster.service.enabled = true
+camel.component.atomix.cluster.service.mode = client
+camel.component.atomix.cluster.service.nodes = localhost:8700
+camel.component.atomix.cluster.service.id = ${node.id}
diff --git a/camel-example-spring-boot-clustered-route-controller/pom.xml b/camel-example-spring-boot-clustered-route-controller/pom.xml
new file mode 100644
index 0000000..42e6355
--- /dev/null
+++ b/camel-example-spring-boot-clustered-route-controller/pom.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>examples</artifactId>
+        <version>3.4.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-example-spring-boot-clustered-route-controller</artifactId>
+    <name>Camel SB Examples :: Clustered Route Controller</name>
+    <description>An example showing how to work with Camel's Clustered Route Controller and Spring Boot</description>
+    <packaging>pom</packaging>
+
+    <properties>
+        <category>Clustering</category>
+
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <spring.boot-version>${spring-boot-version}</spring.boot-version>
+    </properties>
+
+    <modules>
+        <module>cluster-bootstrap</module>
+        <module>cluster-node</module>
+    </modules>
+</project>
diff --git a/camel-example-spring-boot-clustered-route-controller/readme.adoc b/camel-example-spring-boot-clustered-route-controller/readme.adoc
new file mode 100644
index 0000000..aa3471f
--- /dev/null
+++ b/camel-example-spring-boot-clustered-route-controller/readme.adoc
@@ -0,0 +1,30 @@
+== Camel Clustered Route Controller Example Spring Boot
+
+This example shows how to work with a simple Apache Camel application using Spring Boot and a Clustered Route Controller.
+
+=== How to run
+
+1. build the project:
+    mvn clean package
+
+2. in a shell, run the cluster node
+
+    mvn -pl cluster-bootstrap spring-boot:run
+
+3. in a separate shell, run the first camel node
+
+    mvn -pl cluster-node spring-boot:run
+
+4. in a separate shell, run the second camel node
+
+    mvn -pl cluster-node spring-boot:run
+
+=== Help and contributions
+
+If you hit any problem using Camel or have some feedback, then please
+https://camel.apache.org/support.html[let us know].
+
+We also love contributors, so
+https://camel.apache.org/contributing.html[get involved] :-)
+
+The Camel riders!
diff --git a/camel-example-spring-boot-fhir-auth-tx/pom.xml b/camel-example-spring-boot-fhir-auth-tx/pom.xml
new file mode 100644
index 0000000..20c59f0
--- /dev/null
+++ b/camel-example-spring-boot-fhir-auth-tx/pom.xml
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>examples</artifactId>
+        <version>3.4.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-example-spring-boot-fhir-auth-tx</artifactId>
+    <name>Camel SB Examples :: FHIR :: Transaction</name>
+    <description>An example showing how to work with Camel, FHIR Authorization, FHIR Transaction and Spring Boot
+    </description>
+
+    <properties>
+        <category>Health Care</category>
+
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <spring.boot-version>${spring-boot-version}</spring.boot-version>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <!-- Spring Boot BOM -->
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring.boot-version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <!-- Camel BOM -->
+            <dependency>
+                <groupId>org.apache.camel.springboot</groupId>
+                <artifactId>camel-spring-boot-dependencies</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+
+        <!-- Spring Boot -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-tomcat</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-undertow</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+
+        <!-- Camel -->
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-spring-boot-starter</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-fhir</artifactId>
+            <version>${camel-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-csv</artifactId>
+            <version>${camel-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-management</artifactId>
+            <version>${camel-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>ca.uhn.hapi</groupId>
+            <artifactId>hapi-structures-v24</artifactId>
+        </dependency>
+
+        <!-- test -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-test-spring</artifactId>
+            <version>${camel-version}</version>
+            <scope>test</scope>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring-boot-version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.camel</groupId>
+                <artifactId>camel-maven-plugin</artifactId>
+                <version>${camel-version}</version>
+                <!-- allows to fail if not all routes are fully covered during testing -->
+                <!--
+                        <configuration>
+                          <failOnError>true</failOnError>
+                        </configuration>
+                -->
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/camel-example-spring-boot-fhir-auth-tx/readme.adoc b/camel-example-spring-boot-fhir-auth-tx/readme.adoc
new file mode 100644
index 0000000..94fecd4
--- /dev/null
+++ b/camel-example-spring-boot-fhir-auth-tx/readme.adoc
@@ -0,0 +1,64 @@
+:experimental:
+== FHIR Authorization and Transaction Example - Spring Boot
+
+=== Introduction
+
+This is an example application of the `camel-fhir` component. We'll be using `camel-spring-boot` as well for an easy setup.
+
+The Camel route is located in the `MyCamelRouter` class.
+
+This example will read patients stored in csv files from a directory and convert them to FHIR dtsu3 patients and upload them to a configured FHIR server. Each file is uploaded in a new transaction.
+
+The example assumes you have a running FHIR server at your disposal, which is configured for basic authentication.
+You may use [hapi-fhir-jpa-server-example](https://github.com/rkorytkowski/hapi-fhir/tree/basic-auth/hapi-fhir-jpaserver-example). You can start it up by running `mvn jetty:run`.
+
+By default, the example uses `\http://localhost:8080/hapi-fhir-jpaserver-example/baseDstu3` as the FHIR server URL, DSTU3 as the FHIR version, BASIC authentication (`admin` as username and `Admin123` as password) and `target/work/fhir/input`
+as the directory to look for csv patients. 
+
+However, you can edit the `application.properties` file to change the defaults and provide your own configuration.
+
+There is an example of a test in the `MyCamelApplicationTest` class, which mocks out the FHIR server, thus can be run without the FHIR server.
+
+=== Build
+
+You can build this example using:
+
+```sh
+$ mvn package
+```
+
+=== Run
+
+You can run this example using:
+
+```sh
+$ mvn spring-boot:run
+```
+
+When the Camel application runs, you should see a folder created under `target/work/fhir/input`. Copy the file `hl7v2.patient`
+located in the `src/main/data` folder into it. You should see the following output:
+```
+2018-07-24 11:52:51.615  INFO 30666 --- [work/fhir/input] fhir-example: Converting hl7v2.patient
+2018-07-24 11:52:52.700  INFO 30666 --- [work/fhir/input] fhir-example: Inserting Patient: {"resourceType":"Patient","id":"100005056","name":[{"family":"Freeman","given":["Vincent"]}]}
+2018-07-24 11:52:56.995  INFO 30666 --- [ #2 - CamelFhir] fhir-example: Patient created successfully: ca.uhn.fhir.rest.api.MethodOutcome@270f03f1
+```
+
+The Camel application can be stopped pressing kbd:[Ctrl+c] in the shell.
+
+=== To get health check
+
+To show a summary of spring boot health check
+
+----
+curl -XGET -s http://localhost:8080/actuator/health
+----
+
+=== Help and contributions
+
+If you hit any problem using Camel or have some feedback, 
+then please https://camel.apache.org/support.html[let us know].
+
+We also love contributors, 
+so https://camel.apache.org/contributing.html[get involved] :-)
+
+The Camel riders!
diff --git a/camel-example-spring-boot-fhir-auth-tx/src/main/data/patients.csv b/camel-example-spring-boot-fhir-auth-tx/src/main/data/patients.csv
new file mode 100644
index 0000000..a78f61b
--- /dev/null
+++ b/camel-example-spring-boot-fhir-auth-tx/src/main/data/patients.csv
@@ -0,0 +1,2 @@
+1a,Bob,Smith
+2a,Simon,Smith
\ No newline at end of file
diff --git a/camel-example-spring-boot-fhir-auth-tx/src/main/java/sample/camel/MyCamelApplication.java b/camel-example-spring-boot-fhir-auth-tx/src/main/java/sample/camel/MyCamelApplication.java
new file mode 100644
index 0000000..fd92927
--- /dev/null
+++ b/camel-example-spring-boot-fhir-auth-tx/src/main/java/sample/camel/MyCamelApplication.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package sample.camel;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * A sample Spring Boot application that starts the Camel routes.
+ */
+// CHECKSTYLE:OFF
+@SpringBootApplication
+public class MyCamelApplication {
+
+    /**
+     * A main method to start this application.
+     */
+    public static void main(String[] args) {
+        SpringApplication.run(MyCamelApplication.class, args);
+    }
+
+}
+// CHECKSTYLE:ON
\ No newline at end of file
diff --git a/camel-example-spring-boot-fhir-auth-tx/src/main/java/sample/camel/MyCamelRouter.java b/camel-example-spring-boot-fhir-auth-tx/src/main/java/sample/camel/MyCamelRouter.java
new file mode 100644
index 0000000..583e466
--- /dev/null
+++ b/camel-example-spring-boot-fhir-auth-tx/src/main/java/sample/camel/MyCamelRouter.java
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package sample.camel;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.camel.LoggingLevel;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.http.ProtocolException;
+import org.hl7.fhir.dstu3.model.Patient;
+import org.springframework.stereotype.Component;
+
+/**
+ * A simple Camel route that triggers from a file and pushes to a FHIR server.
+ * <p/>
+ * Use <tt>@Component</tt> to make Camel auto detect this route when starting.
+ */
+@Component
+public class MyCamelRouter extends RouteBuilder {
+
+    @Override
+    public void configure() throws Exception {
+        from("file:{{input}}").routeId("fhir-example")
+            .onException(ProtocolException.class)
+                .handled(true)
+                .log(LoggingLevel.ERROR, "Error connecting to FHIR server with URL:{{serverUrl}}, please check the application.properties file ${exception.message}")
+            .end()
+            .log("Converting ${file:name}")
+            .unmarshal().csv()
+            .process(exchange -> {
+                List<Patient> bundle = new ArrayList<>();
+                @SuppressWarnings("unchecked")
+                List<List<String>> patients = (List<List<String>>) exchange.getIn().getBody();
+                for (List<String> patient: patients) {
+                    Patient fhirPatient = new Patient();
+                    fhirPatient.setId(patient.get(0));
+                    fhirPatient.addName().addGiven(patient.get(1));
+                    fhirPatient.getNameFirstRep().setFamily(patient.get(2));
+                    bundle.add(fhirPatient);
+                }
+                exchange.getIn().setBody(bundle);
+            })
+            // create Patient in our FHIR server
+            .to("fhir://transaction/withResources?inBody=resources&serverUrl={{serverUrl}}&username={{serverUser}}&password={{serverPassword}}&fhirVersion={{fhirVersion}}")
+            // log the outcome
+            .log("Patients created successfully: ${body}");
+    }
+
+}
diff --git a/camel-example-spring-boot-fhir-auth-tx/src/main/resources/application.properties b/camel-example-spring-boot-fhir-auth-tx/src/main/resources/application.properties
new file mode 100644
index 0000000..52b6099
--- /dev/null
+++ b/camel-example-spring-boot-fhir-auth-tx/src/main/resources/application.properties
@@ -0,0 +1,54 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+serverUrl=http://localhost:8080/hapi-fhir-jpaserver-example/baseDstu3
+serverUser=admin
+serverPassword=Admin123
+
+fhirVersion=DSTU3
+
+input=target/work/fhir/input
+
+# the name of Camel
+camel.springboot.name = MyCamel
+
+server.port=0
+
+# to automatic shutdown the JVM after a period of time
+#camel.springboot.duration-max-seconds=60
+#camel.springboot.duration-max-messages=100
+
+# add for example: &repeatCount=5 to the timer endpoint to make Camel idle
+#camel.springboot.duration-max-idle-seconds=15
+
+# expose actuator endpoint via HTTP
+management.endpoints.web.exposure.include=info,health
+
+# show verbose health details (/actuator/health) so you can see Camel information also
+management.endpoint.health.show-details=always
+
+# to turn off Camel info in (/actuator/info)
+management.info.camel.enabled=true
+management.info.camel.verbose=true
+
+
+# to configure logging levels
+#logging.level.org.springframework = INFO
+#logging.level.org.apache.camel.spring.boot = INFO
+#logging.level.org.apache.camel.impl = DEBUG
+#logging.level.sample.camel = DEBUG
+
diff --git a/camel-example-spring-boot-fhir-auth-tx/src/test/java/sample/camel/MyCamelApplicationTest.java b/camel-example-spring-boot-fhir-auth-tx/src/test/java/sample/camel/MyCamelApplicationTest.java
new file mode 100644
index 0000000..44e6005
--- /dev/null
+++ b/camel-example-spring-boot-fhir-auth-tx/src/test/java/sample/camel/MyCamelApplicationTest.java
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package sample.camel;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.apache.camel.EndpointInject;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.spring.CamelSpringBootRunner;
+import org.apache.camel.test.spring.EnableRouteCoverage;
+import org.apache.camel.test.spring.MockEndpointsAndSkip;
+import org.apache.commons.io.FileUtils;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@RunWith(CamelSpringBootRunner.class)
+@SpringBootTest(classes = MyCamelApplication.class,
+    properties = "input = target/work/fhir/testinput")
+@EnableRouteCoverage
+@MockEndpointsAndSkip("fhir*")
+public class MyCamelApplicationTest {
+
+    @EndpointInject("mock:fhir:transaction/withResources")
+    private MockEndpoint mock;
+
+    @Before
+    public void copyData() throws IOException {
+        FileUtils.copyDirectory(new File("src/main/data"), new File("target/work/fhir/testinput"));
+    }
+
+    @Test
+    public void shouldPushConvertedCsvtoFhir() throws Exception {
+        mock.expectedMessageCount(1);
+
+        mock.assertIsSatisfied();
+    }
+
+}
diff --git a/camel-example-spring-boot-fhir/pom.xml b/camel-example-spring-boot-fhir/pom.xml
new file mode 100644
index 0000000..c6ce1b5
--- /dev/null
+++ b/camel-example-spring-boot-fhir/pom.xml
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>examples</artifactId>
+        <version>3.4.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-example-spring-boot-fhir</artifactId>
+    <name>Camel SB Examples :: FHIR</name>
+    <description>An example showing how to work with Camel, FHIR and Spring Boot</description>
+
+    <properties>
+        <category>Health Care</category>
+
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <spring.boot-version>${spring-boot-version}</spring.boot-version>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <!-- Spring Boot BOM -->
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring.boot-version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <!-- Camel BOM -->
+            <dependency>
+                <groupId>org.apache.camel.springboot</groupId>
+                <artifactId>camel-spring-boot-dependencies</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+
+        <!-- Spring Boot -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-tomcat</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-undertow</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+
+        <!-- Camel -->
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-spring-boot-starter</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-fhir</artifactId>
+            <version>${camel-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-hl7</artifactId>
+            <version>${camel-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-management</artifactId>
+            <version>${camel-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>ca.uhn.hapi</groupId>
+            <artifactId>hapi-structures-v24</artifactId>
+        </dependency>
+
+        <!-- test -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-test-spring</artifactId>
+            <version>${camel-version}</version>
+            <scope>test</scope>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring-boot-version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.camel</groupId>
+                <artifactId>camel-maven-plugin</artifactId>
+                <version>${camel-version}</version>
+                <!-- allows to fail if not all routes are fully covered during testing -->
+                <!--
+                        <configuration>
+                          <failOnError>true</failOnError>
+                        </configuration>
+                -->
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/camel-example-spring-boot-fhir/readme.adoc b/camel-example-spring-boot-fhir/readme.adoc
new file mode 100644
index 0000000..a8ee54a
--- /dev/null
+++ b/camel-example-spring-boot-fhir/readme.adoc
@@ -0,0 +1,62 @@
+= FHIR Example - Spring Boot
+
+== Introduction
+
+This is an example application of the `camel-fhir` component. We'll be using `camel-spring-boot` as well for an easy setup.
+
+The Camel route is located in the `MyCamelRouter` class.
+
+This example will read HL7V2 patients from a directory and convert them to FHIR dtsu3 patients and upload them to a configured FHIR server. 
+
+The example assumes you have a running FHIR server at your disposal.
+You may use https://github.com/jamesagnew/hapi-fhir/tree/master/hapi-fhir-jpaserver-example[hapi-fhir-jpa-server-example].
+
+By default, the example uses `\http://localhost:8080/baseDstu3` as the FHIR server URL, DSTU3 as the FHIR version and `target/work/fhir/input`
+as the directory to look for HL7V2 patients.
+However, you can edit the `application.properties` file to override the defaults and provide your own configuration.
+
+There is an example of a test in the `MyCamelApplicationTest` class, which mocks out the FHIR server, thus can be run without the FHIR server.
+
+== Build
+
+You can build this example using:
+
+```sh
+$ mvn package
+```
+
+== Run
+
+You can run this example using:
+
+```sh
+$ mvn spring-boot:run
+```
+
+When the Camel application runs, you should see a folder created under `target/work/fhir/input`. Copy the file `hl7v2.patient`
+located in the `src/main/data` folder into it. You should see the following output:
+```
+2018-07-24 11:52:51.615  INFO 30666 --- [work/fhir/input] fhir-example: Converting hl7v2.patient
+2018-07-24 11:52:52.700  INFO 30666 --- [work/fhir/input] fhir-example: Inserting Patient: {"resourceType":"Patient","id":"100005056","name":[{"family":"Freeman","given":["Vincent"]}]}
+2018-07-24 11:52:56.995  INFO 30666 --- [ #2 - CamelFhir] fhir-example: Patient created successfully: ca.uhn.fhir.rest.api.MethodOutcome@270f03f1
+```
+
+The Camel application can be stopped pressing kbd:[Ctrl+c] in the shell.
+
+== To get health check
+
+To show a summary of spring boot health check
+
+----
+curl -XGET -s http://localhost:8080/actuator/health
+----
+
+=== Help and contributions
+
+If you hit any problem using Camel or have some feedback, 
+then please https://camel.apache.org/support.html[let us know].
+
+We also love contributors, 
+so https://camel.apache.org/contributing.html[get involved] :-)
+
+The Camel riders!
diff --git a/camel-example-spring-boot-fhir/src/main/data/hl7v2.patient b/camel-example-spring-boot-fhir/src/main/data/hl7v2.patient
new file mode 100644
index 0000000..b5ecbe7
--- /dev/null
+++ b/camel-example-spring-boot-fhir/src/main/data/hl7v2.patient
@@ -0,0 +1 @@
+MSH|^~\&|Amalga HIS|BUM|New Tester|MS|20111121103141||ORU^R01|2847970-201111211031|P|2.4|||AL|NE|764|ASCII|||
PID||100005056|100005056||Freeman^Vincent^""^^""|""|19810813000000|F||CA|Street 1^""^""^""^34000^SGP^^""~""^""^""^""^Danling Street 5th^THA^^""||326-2275^PRN^PH^^66^675~476-5059^ORN^CP^^66^359~(123)456-7890^ORN^FX^^66^222~^NET^X.400^a@a.a~^NET^X.400^dummy@hotmail.com|(123)456-7890^WPN^PH^^66|UNK|S|BUD||BP000111899|D99999^""||CA|Bangkok|||THA||THA|""|N
PV1||OPD   ||||""^""^""||||CNSLT|||||C|VIP|||6262618|PB1||||||||||||||||||||||||20101208134638
PV2|||^Unknown|""^""||||""|""|0||""|||||||||||||||||||||||||||||HP1
ORC|NW|""|BMC1102771601|""|CM||^^^^^""|||||||||""^""^^^""
OBR|1|""|BMC1102771601|""^Brain (CT)||20111028124215||||||||||||||||||CTSCAN|F||^^^^^ROUTINE|||""||||||""|||||||||||^""
OBX|1|FT|""^Brain (CT)||++++ text of report goes here +++|||REQAT|||FINAL|||20111121103040||75929^Gosselin^Angelina
\ No newline at end of file
diff --git a/camel-example-spring-boot-fhir/src/main/java/sample/camel/MyCamelApplication.java b/camel-example-spring-boot-fhir/src/main/java/sample/camel/MyCamelApplication.java
new file mode 100644
index 0000000..21192e5
--- /dev/null
+++ b/camel-example-spring-boot-fhir/src/main/java/sample/camel/MyCamelApplication.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package sample.camel;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+//CHECKSTYLE:OFF
+/**
+ * A sample Spring Boot application that starts the Camel routes.
+ */
+@SpringBootApplication
+public class MyCamelApplication {
+
+    /**
+     * A main method to start this application.
+     */
+    public static void main(String[] args) {
+        SpringApplication.run(MyCamelApplication.class, args);
+    }
+
+}
diff --git a/camel-example-spring-boot-fhir/src/main/java/sample/camel/MyCamelRouter.java b/camel-example-spring-boot-fhir/src/main/java/sample/camel/MyCamelRouter.java
new file mode 100644
index 0000000..f33e7fc
--- /dev/null
+++ b/camel-example-spring-boot-fhir/src/main/java/sample/camel/MyCamelRouter.java
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package sample.camel;
+
+import ca.uhn.hl7v2.HL7Exception;
+import ca.uhn.hl7v2.model.v24.message.ORU_R01;
+import ca.uhn.hl7v2.model.v24.segment.PID;
+import org.apache.camel.LoggingLevel;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.http.ProtocolException;
+import org.hl7.fhir.dstu3.model.Patient;
+import org.springframework.stereotype.Component;
+
+/**
+ * A simple Camel route that triggers from a file and posts to a FHIR server.
+ * <p/>
+ * Use <tt>@Component</tt> to make Camel auto detect this route when starting.
+ */
+@Component
+public class MyCamelRouter extends RouteBuilder {
+
+    @Override
+    public void configure() throws Exception {
+        from("file:{{input}}").routeId("fhir-example")
+                .onException(ProtocolException.class)
+                    .handled(true)
+                    .log(LoggingLevel.ERROR, "Error connecting to FHIR server with URL:{{serverUrl}}, please check the application.properties file ${exception.message}")
+                    .end()
+                .onException(HL7Exception.class)
+                    .handled(true)
+                    .log(LoggingLevel.ERROR, "Error unmarshalling ${file:name} ${exception.message}")
+                    .end()
+                .log("Converting ${file:name}")
+                // unmarshall file to hl7 message
+                .unmarshal().hl7()
+                // very simple mapping from a HLV2 patient to dstu3 patient
+                .process(exchange -> {
+                    ORU_R01 msg = exchange.getIn().getBody(ORU_R01.class);
+                    final PID pid = msg.getPATIENT_RESULT().getPATIENT().getPID();
+                    String surname = pid.getPatientName()[0].getFamilyName().getFn1_Surname().getValue();
+                    String name = pid.getPatientName()[0].getGivenName().getValue();
+                    String patientId = msg.getPATIENT_RESULT().getPATIENT().getPID().getPatientID().getCx1_ID().getValue();
+                    Patient patient = new Patient();
+                    patient.addName().addGiven(name);
+                    patient.getNameFirstRep().setFamily(surname);
+                    patient.setId(patientId);
+                    exchange.getIn().setBody(patient);
+                })
+                // marshall to JSON for logging
+                .marshal().fhirJson("{{fhirVersion}}")
+                .log("Inserting Patient: ${body}")
+                // create Patient in our FHIR server
+                .to("fhir://create/resource?inBody=resourceAsString&serverUrl={{serverUrl}}&fhirVersion={{fhirVersion}}")
+                // log the outcome
+                .log("Patient created successfully: ${body}");
+    }
+
+}
diff --git a/camel-example-spring-boot-fhir/src/main/resources/application.properties b/camel-example-spring-boot-fhir/src/main/resources/application.properties
new file mode 100644
index 0000000..a15f72c
--- /dev/null
+++ b/camel-example-spring-boot-fhir/src/main/resources/application.properties
@@ -0,0 +1,50 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+serverUrl=http://localhost:8080/baseDstu3
+
+fhirVersion=DSTU3
+
+input=target/work/fhir/input
+
+# the name of Camel
+camel.springboot.name = MyCamel
+
+server.port=0
+
+# to automatic shutdown the JVM after a period of time
+#camel.springboot.duration-max-seconds=60
+#camel.springboot.duration-max-messages=100
+
+# add for example: &repeatCount=5 to the timer endpoint to make Camel idle
+#camel.springboot.duration-max-idle-seconds=15
+
+# expose actuator endpoint via HTTP
+management.endpoints.web.exposure.include=info,health
+
+# show verbose health details (/actuator/health) so you can see Camel information also
+management.endpoint.health.show-details=always
+
+# to turn off Camel info in (/actuator/info)
+management.info.camel.enabled=false
+
+# to configure logging levels
+#logging.level.org.springframework = INFO
+#logging.level.org.apache.camel.spring.boot = INFO
+#logging.level.org.apache.camel.impl = DEBUG
+#logging.level.sample.camel = DEBUG
+
diff --git a/camel-example-spring-boot-fhir/src/test/java/sample/camel/MyCamelApplicationTest.java b/camel-example-spring-boot-fhir/src/test/java/sample/camel/MyCamelApplicationTest.java
new file mode 100644
index 0000000..2d1618a
--- /dev/null
+++ b/camel-example-spring-boot-fhir/src/test/java/sample/camel/MyCamelApplicationTest.java
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package sample.camel;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.apache.camel.EndpointInject;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.spring.CamelSpringBootRunner;
+import org.apache.camel.test.spring.EnableRouteCoverage;
+import org.apache.camel.test.spring.MockEndpointsAndSkip;
+import org.apache.commons.io.FileUtils;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@RunWith(CamelSpringBootRunner.class)
+@SpringBootTest(classes = MyCamelApplication.class,
+    properties = "input = target/work/fhir/testinput")
+@EnableRouteCoverage
+@MockEndpointsAndSkip("fhir*")
+public class MyCamelApplicationTest {
+
+    @EndpointInject("mock:fhir:create/resource")
+    private MockEndpoint mock;
+
+    @Before
+    public void copyData() throws IOException {
+        FileUtils.copyDirectory(new File("src/main/data"), new File("target/work/fhir/testinput"));
+    }
+
+    @Test
+    public void shouldPushConvertedHl7toFhir() throws Exception {
+        mock.expectedBodiesReceived("{\"resourceType\":\"Patient\",\"id\":\"100005056\",\"name\":[{\"family\":\"Freeman\",\"given\":[\"Vincent\"]}]}");
+        
+        mock.assertIsSatisfied();
+    }
+
+}
diff --git a/camel-example-spring-boot-geocoder/README.adoc b/camel-example-spring-boot-geocoder/README.adoc
new file mode 100644
index 0000000..2ac68e0
--- /dev/null
+++ b/camel-example-spring-boot-geocoder/README.adoc
@@ -0,0 +1,117 @@
+== Spring Boot Example with Camel REST DSL, Geocoder and Swagger
+
+=== Introduction
+
+This example illustrates how to use https://projects.spring.io/spring-boot/[Spring Boot] with http://camel.apache.org[Camel]. It provides a simple REST service that is created with http://camel.apache.org/rest-dsl.html[Camel REST DSL], using  the http://camel.apache.org/geocoder.html[Geocoder component] and documented with http://swagger.io[Swagger].
+
+The project uses the `camel-spring-boot-starter` and `camel-geocoder-starter` dependencies as Spring Boot starter dependencies for Camel that simplify the Maven configuration.
+
+The project was based on it's `camel-example-spring-boot-rest-swagger` sibling.
+
+=== Build
+
+You can build this example using:
+
+    $ mvn package
+
+=== Run
+
+You can run this example using:
+
+    $ mvn spring-boot:run
+
+You should see the following output when the application is launched:
+
+----
+[...]
+  .   ____          _            __ _ _
+ /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
+( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
+ \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
+  '  |____| .__|_| |_|_| |_\__, | / / / /
+ =========|_|==============|___/=/_/_/_/
+ :: Spring Boot ::        (v2.0.0.RELEASE)
+[...]
+2018-03-30 16:28:56.354  INFO 29880 --- [           main] o.a.c.e.springboot.geocoder.Application  : Started Application in 4.806 seconds (JVM running for 5.435)
+----
+
+After the Spring Boot application is started, you can open the following URL in your web browser to access the REST endpoint and request the address for "Paris": http://localhost:8080/camel/geocoder/?address=Paris
+
+You can also access the REST endpoint from the command line:
+
+    $ curl http://localhost:8080/camel/geocoder/?address=Paris
+
+You'll need to setup the google Maps API credentials to make this example work.
+
+The command will produce the following output:
+
+----
+{
+  "status" : "OK",
+  "results" : [ {
+    "types" : [ "locality", "political" ],
+    "formattedAddress" : "Paris, France",
+    "addressComponents" : [ {
+      "longName" : "Paris",
+      "shortName" : "Paris",
+      "types" : [ "locality", "political" ]
+    }, {
+      "longName" : "Paris",
+      "shortName" : "Paris",
+      "types" : [ "administrative_area_level_2", "political" ]
+    }, {
+      "longName" : "Île-de-France",
+      "shortName" : "Île-de-France",
+      "types" : [ "administrative_area_level_1", "political" ]
+    }, {
+      "longName" : "France",
+      "shortName" : "FR",
+      "types" : [ "country", "political" ]
+    } ],
+    "geometry" : {
+      "location" : {
+        "lat" : 48.856614,
+        "lng" : 2.3522219
+      },
+      "locationType" : "APPROXIMATE",
+      "viewport" : {
+        "southwest" : {
+          "lat" : 48.815573,
+          "lng" : 2.225193
+        },
+        "northeast" : {
+          "lat" : 48.9021449,
+          "lng" : 2.4699208
+        }
+      },
+      "bounds" : {
+        "southwest" : {
+          "lat" : 48.815573,
+          "lng" : 2.224199
+        },
+        "northeast" : {
+          "lat" : 48.9021449,
+          "lng" : 2.4699208
+        }
+      }
+    },
+    "partialMatch" : false
+  } ]
+}
+----
+
+The Swagger documentation is located at: http://localhost:8080/camel/api-doc and can be retrieved with the following command:
+
+    $ curl http://localhost:8080/camel/api-doc
+
+The Spring Boot application can be stopped pressing `[CTRL]`+`[C]` in the shell.
+
+=== Help and contributions
+
+If you hit any problem using Camel or have some feedback, then please
+https://camel.apache.org/support.html[let us know].
+
+We also love contributors, so
+https://camel.apache.org/contributing.html[get involved] :-)
+
+The Camel riders!
diff --git a/camel-example-spring-boot-geocoder/pom.xml b/camel-example-spring-boot-geocoder/pom.xml
new file mode 100644
index 0000000..cdc220e
--- /dev/null
+++ b/camel-example-spring-boot-geocoder/pom.xml
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>examples</artifactId>
+        <version>3.4.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-example-spring-boot-geocoder</artifactId>
+    <name>Camel SB Examples :: Geocoder and REST DSL</name>
+    <description>An example showing the Camel Geocoder component via REST DSL with Spring Boot</description>
+
+    <properties>
+        <category>Rest</category>
+        <spring.boot-version>${spring-boot-version}</spring.boot-version>
+        <skipTests>true</skipTests>
+    </properties>
+
+    <!-- Spring-Boot and Camel BOM -->
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring.boot-version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.springboot</groupId>
+                <artifactId>camel-spring-boot-dependencies</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <!-- Spring Boot -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+
+        <!-- Camel -->
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-servlet-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-jackson-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-geocoder-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-swagger-java-starter</artifactId>
+        </dependency>
+
+        <!-- Test -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-test</artifactId>
+            <version>${camel-version}</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring.boot-version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/camel-example-spring-boot-geocoder/src/main/java/org/apache/camel/example/springboot/geocoder/Application.java b/camel-example-spring-boot-geocoder/src/main/java/org/apache/camel/example/springboot/geocoder/Application.java
new file mode 100644
index 0000000..dd38f43
--- /dev/null
+++ b/camel-example-spring-boot-geocoder/src/main/java/org/apache/camel/example/springboot/geocoder/Application.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.example.springboot.geocoder;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+// CHECKSTYLE:OFF
+@SpringBootApplication
+public class Application {
+
+    /**
+     * Main method to start the application.
+     */
+    public static void main(String[] args) {
+        SpringApplication.run(Application.class, args);
+    }
+
+}
+// CHECKSTYLE:ON
diff --git a/camel-example-spring-boot-geocoder/src/main/java/org/apache/camel/example/springboot/geocoder/CamelGeocoderRoute.java b/camel-example-spring-boot-geocoder/src/main/java/org/apache/camel/example/springboot/geocoder/CamelGeocoderRoute.java
new file mode 100644
index 0000000..1dd354b
--- /dev/null
+++ b/camel-example-spring-boot-geocoder/src/main/java/org/apache/camel/example/springboot/geocoder/CamelGeocoderRoute.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.example.springboot.geocoder;
+
+import com.google.maps.model.GeocodingResult;
+import org.apache.camel.builder.RouteBuilder;
+import org.springframework.stereotype.Component;
+
+import static org.apache.camel.model.rest.RestParamType.query;
+
+/**
+ * A simple Camel REST DSL route example using the Geocoder component and documented with Swagger
+ */
+@Component
+public class CamelGeocoderRoute extends RouteBuilder {
+
+    @Override
+    public void configure() throws Exception {
+        // rest-dsl is also configured in the application.properties file
+
+        rest("/geocoder").description("Geocoder REST service")
+            .consumes("application/json")
+            .produces("application/json")
+
+            .get().description("Geocoder address lookup").outType(GeocodingResult[].class)
+                .param().name("address").type(query).description("The address to lookup").dataType("string").endParam()
+                .responseMessage().code(200).message("Geocoder successful").endResponseMessage()
+                // call the geocoder to lookup details from the provided address
+                .toD("geocoder:address:${header.address})");
+    }
+
+}
diff --git a/camel-example-spring-boot-geocoder/src/main/resources/application.properties b/camel-example-spring-boot-geocoder/src/main/resources/application.properties
new file mode 100644
index 0000000..13fc86e
--- /dev/null
+++ b/camel-example-spring-boot-geocoder/src/main/resources/application.properties
@@ -0,0 +1,47 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+camel.springboot.name=Geocoder
+
+# use servlet as the component
+# (this can be omitted as camel will lookup on the classpath and discover it automatic)
+camel.rest.component=servlet
+
+# host and port for the rest service
+camel.rest.port=8080
+# resolve the hostname to be localhost
+camel.rest.host-name-resolver=localhostname
+camel.rest.context-path=/camel
+
+# turn on cors on the rest service
+camel.rest.enable-cors=true
+# we can configure additional headers if we like
+#camel.rest.cors-headers.foo=bar
+
+# turn on json binding
+camel.rest.binding-mode=json
+
+# output in pretty print mode
+camel.rest.data-format-property.prettyPrint=true
+
+# context path for swagger api docs
+camel.rest.api-context-path=/api-doc
+
+# swagger api properties
+camel.rest.api-property.api.title=Geocoder API
+camel.rest.api-property.api.version=1.0.0
+camel.rest.api-property.cors=true
diff --git a/camel-example-spring-boot-geocoder/src/test/java/org/apache/camel/example/springboot/geocoder/ApplicationTest.java b/camel-example-spring-boot-geocoder/src/test/java/org/apache/camel/example/springboot/geocoder/ApplicationTest.java
new file mode 100644
index 0000000..7df248c
--- /dev/null
+++ b/camel-example-spring-boot-geocoder/src/test/java/org/apache/camel/example/springboot/geocoder/ApplicationTest.java
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.example.springboot.geocoder;
+
+import com.google.maps.model.GeocodingResult;
+import org.apache.camel.CamelContext;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
+import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.core.ParameterizedTypeReference;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.Assert.assertNotNull;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
+public class ApplicationTest {
+
+    @Autowired
+    private TestRestTemplate restTemplate;
+
+    @Autowired
+    private CamelContext camelContext;
+
+    @Test
+    public void geocoderAddressTest() {
+        ResponseEntity<GeocodingResult[]> response = restTemplate.exchange("/camel/geocoder?address=Paris",
+            HttpMethod.GET, null, new ParameterizedTypeReference<GeocodingResult[]>() { });
+        assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+        GeocodingResult[] res = response.getBody();
+        assertNotNull(res);
+    }
+}
diff --git a/camel-example-spring-boot-grpc-kubernetes/README.adoc b/camel-example-spring-boot-grpc-kubernetes/README.adoc
new file mode 100644
index 0000000..cf32508
--- /dev/null
+++ b/camel-example-spring-boot-grpc-kubernetes/README.adoc
@@ -0,0 +1,132 @@
+# Spring Boot Example with gRPC on Kubernetes
+
+= Introduction
+
+This example demonstrates how you can use Camel-gRPC Starter component. The example is composed of a standalone gRPC server and a Camel Spring-boot gRPC route acting as client. We will run this example on Minikube (0.21.0)
+
+== Server
+
+You can build the server under the directory hello-camel-grpc-server with:
+
+    $ mvn clean install 
+
+and then run the server with
+
+    $ mvn -Pkubernetes-install fabric8:deploy
+
+then check your pod status with
+
+    $ kubectl get pods
+
+[source,bash]
+----
+NAME                                                          READY     STATUS    RESTARTS   AGE
+camel-example-hello-grpc-server-kubernetes-2604940788-g47hr   1/1       Running   0          13s
+----
+
+and get the logs
+
+    $ kubectl logs camel-example-hello-grpc-server-kubernetes-2604940788-g47hr
+
+You should see the following output:
+
+[source,bash]
+----
+Aug 30, 2017 7:31:11 AM org.apache.camel.examples.grpc.HelloCamelServer start
+INFO: Server started. I'm listening on 8080
+----
+
+== Run the client
+
+You can build the client example under the directory hello-camel-grpc-client with:
+
+    $ mvn clean install
+
+and then run the server with
+
+    $ mvn -Pkubernetes-install fabric8:deploy
+
+then check your pod status with
+
+    $ kubectl get pods
+
+[source,bash]
+----
+NAME                                                          READY     STATUS    RESTARTS   AGE
+camel-example-hello-grpc-client-kubernetes-1594657646-ptrkn   1/1       Running   0          15s
+camel-example-hello-grpc-server-kubernetes-2604940788-g47hr   1/1       Running   0          7m
+
+----
+
+and get the logs
+
+    $ kubectl logs camel-example-hello-grpc-client-kubernetes-1594657646-ptrkn
+
+And you should see this output in the console.
+
+[source,bash]
+----
+2017-08-30 07:38:50.753:INFO:ifasjipjsoejs.Server:jetty-8.y.z-SNAPSHOT
+2017-08-30 07:38:50.787:INFO:ifasjipjsoejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:9779
+
+  .   ____          _            __ _ _
+ /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
+( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
+ \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
+  '  |____| .__|_| |_|_| |_\__, | / / / /
+ =========|_|==============|___/=/_/_/_/
+ :: Spring Boot ::        (v1.5.6.RELEASE)
+
+2017-08-30 07:38:51.742  INFO 1 --- [           main] o.a.c.e.springboot.grpc.Application      : Starting Application v2.20.0-SNAPSHOT on camel-example-hello-grpc-client-kubernetes-1594657646-ptrkn with PID 1 (/deployments/camel-example-hello-grpc-client-kubernetes-2.20.0-SNAPSHOT.jar started by root in /deployments)
+2017-08-30 07:38:51.744  INFO 1 --- [           main] o.a.c.e.springboot.grpc.Application      : No active profile set, falling back to default profiles: default
+2017-08-30 07:38:51.899  INFO 1 --- [           main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@5faeada1: startup date [Wed Aug 30 07:38:51 GMT 2017]; root of context hierarchy
+2017-08-30 07:38:53.236  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.apache.camel.spring.boot.CamelAutoConfiguration' of type [org.apache.camel.spring.boot.CamelAutoConfiguration$$EnhancerBySpringCGLIB$$bd99dea4] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2017-08-30 07:38:54.109  INFO 1 --- [           main] o.a.c.i.converter.DefaultTypeConverter   : Type converters loaded (core: 192, classpath: 1)
+2017-08-30 07:38:54.906  INFO 1 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
+2017-08-30 07:38:54.976  INFO 1 --- [           main] o.a.camel.spring.boot.RoutesCollector    : Loading additional Camel XML routes from: classpath:camel/*.xml
+2017-08-30 07:38:54.977  INFO 1 --- [           main] o.a.camel.spring.boot.RoutesCollector    : Loading additional Camel XML rests from: classpath:camel-rest/*.xml
+2017-08-30 07:38:54.977  INFO 1 --- [           main] o.a.camel.spring.boot.RoutesCollector    : Starting CamelMainRunController to ensure the main thread keeps running
+2017-08-30 07:38:54.980  INFO 1 --- [inRunController] o.a.camel.spring.SpringCamelContext      : Apache Camel 2.20.0-SNAPSHOT (CamelContext: gRPC) is starting
+2017-08-30 07:38:54.983  INFO 1 --- [inRunController] o.a.c.m.ManagedManagementStrategy        : JMX is enabled
+2017-08-30 07:38:55.005  INFO 1 --- [           main] o.a.c.e.springboot.grpc.Application      : Started Application in 3.745 seconds (JVM running for 4.657)
+2017-08-30 07:38:55.308  INFO 1 --- [inRunController] o.a.camel.spring.SpringCamelContext      : StreamCaching is not in use. If using streams then its recommended to enable stream caching. See more details at http://camel.apache.org/stream-caching.html
+2017-08-30 07:38:55.387  INFO 1 --- [inRunController] o.a.camel.component.grpc.GrpcProducer    : Creating channel to the remote gRPC server grpc-server:80
+2017-08-30 07:38:55.544  INFO 1 --- [inRunController] o.a.camel.spring.SpringCamelContext      : Route: route1 started and consuming from: timer://foo?period=10000&repeatCount=5
+2017-08-30 07:38:55.545  INFO 1 --- [inRunController] o.a.camel.spring.SpringCamelContext      : Total 1 routes, of which 1 are started
+2017-08-30 07:38:55.546  INFO 1 --- [inRunController] o.a.camel.spring.SpringCamelContext      : Apache Camel 2.20.0-SNAPSHOT (CamelContext: gRPC) started in 0.565 seconds
+2017-08-30 07:38:57.443  INFO 1 --- [2 - timer://foo] route1                                   : Received message: "Hello Camel"
+
+2017-08-30 07:39:06.556  INFO 1 --- [2 - timer://foo] route1                                   : Received message: "Hello Camel"
+
+2017-08-30 07:39:16.551  INFO 1 --- [2 - timer://foo] route1                                   : Received message: "Hello Camel"
+
+2017-08-30 07:39:26.551  INFO 1 --- [2 - timer://foo] route1                                   : Received message: "Hello Camel"
+
+2017-08-30 07:39:36.551  INFO 1 --- [2 - timer://foo] route1                                   : Received message: "Hello Camel"
+
+----
+
+== Cleanup
+
+Undeploy server and client
+```
+$ cd hello-camel-grpc-client-kubernetes
+$ mvn -Pkubernetes-install fabric8:undeploy
+$ cd ../hello-camel-grpc-server-kubernetes
+$ mvn -Pkubernetes-install fabric8:undeploy
+```
+Make sure no pod is running
+```
+$ kubectl get pods
+No resources found.
+```
+
+=== Help and contributions
+
+If you hit any problem using Camel or have some feedback, 
+then please https://camel.apache.org/support.html[let us know].
+
+We also love contributors, 
+so https://camel.apache.org/contributing.html[get involved] :-)
+
+The Camel riders!
diff --git a/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-client-kubernetes/pom.xml b/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-client-kubernetes/pom.xml
new file mode 100644
index 0000000..6bf0f26
--- /dev/null
+++ b/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-client-kubernetes/pom.xml
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>camel-example-spring-boot-grpc-kubernetes</artifactId>
+        <version>3.4.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-example-spring-boot-hello-grpc-client-kubernetes</artifactId>
+    <name>Camel SB Examples :: gRPC :: Kubernetes :: Client</name>
+    <description>An example showing the Camel gRPC component with Spring Boot runnning on Kubernetes</description>
+
+    <properties>
+        <category>Cloud</category>
+        <spring.boot-version>${spring-boot-version}</spring.boot-version>
+        <!-- gRPC requires strong own of the Google Guava version -->
+        <google-guava-version>${grpc-guava-version}</google-guava-version>
+    </properties>
+
+    <!-- Spring-Boot and Camel BOM -->
+    <dependencyManagement>
+        <dependencies>
+            <!-- Spring Boot BOM -->
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring.boot-version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <!-- Camel BOM -->
+            <dependency>
+                <groupId>org.apache.camel.springboot</groupId>
+                <artifactId>camel-spring-boot-dependencies</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+
+        <!-- Camel -->
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-grpc-starter</artifactId>
+        </dependency>
+
+        <!-- Test -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-test</artifactId>
+            <version>${camel-version}</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <extensions>
+            <extension>
+                <groupId>kr.motd.maven</groupId>
+                <artifactId>os-maven-plugin</artifactId>
+                <version>${os-maven-plugin-version}</version>
+            </extension>
+        </extensions>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring.boot-version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.xolstice.maven.plugins</groupId>
+                <artifactId>protobuf-maven-plugin</artifactId>
+                <version>${protobuf-maven-plugin-version}</version>
+                <configuration>
+                    <protocArtifact>com.google.protobuf:protoc:${protobuf-version}:exe:${os.detected.classifier}
+                    </protocArtifact>
+                    <pluginId>grpc-java</pluginId>
+                    <pluginArtifact>io.grpc:protoc-gen-grpc-java:${grpc-version}:exe:${os.detected.classifier}
+                    </pluginArtifact>
+                    <checkStaleness>true</checkStaleness>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>compile</goal>
+                            <goal>compile-custom</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+    <profiles>
+        <profile>
+            <id>kubernetes-install</id>
+            <build>
+                <defaultGoal>install</defaultGoal>
+                <plugins>
+                    <plugin>
+                        <groupId>io.fabric8</groupId>
+                        <artifactId>fabric8-maven-plugin</artifactId>
+                        <version>${fabric8-maven-plugin-version}</version>
+                        <configuration>
+                            <generator>
+                                <config>
+                                    <java-exec>
+                                        <mainClass>org.apache.camel.example.springboot.grpc.Application</mainClass>
+                                    </java-exec>
+                                </config>
+                            </generator>
+                            <enricher>
+                                <config>
+                                    <fmp-service>
+                                        <name>grpc-client</name>
+                                    </fmp-service>
+                                </config>
+                            </enricher>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>resource</goal>
+                                    <goal>build</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+</project>
diff --git a/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-client-kubernetes/src/main/java/org/apache/camel/example/springboot/grpc/Application.java b/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-client-kubernetes/src/main/java/org/apache/camel/example/springboot/grpc/Application.java
new file mode 100644
index 0000000..07fb7c7
--- /dev/null
+++ b/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-client-kubernetes/src/main/java/org/apache/camel/example/springboot/grpc/Application.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.example.springboot.grpc;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+// CHECKSTYLE:OFF
+@SpringBootApplication
+public class Application {
+
+    /**
+     * Main method to start the application.
+     */
+    public static void main(String[] args) {
+        SpringApplication.run(Application.class, args);
+    }
+
+}
+// CHECKSTYLE:ON
diff --git a/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-client-kubernetes/src/main/java/org/apache/camel/example/springboot/grpc/CamelGrpcRoute.java b/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-client-kubernetes/src/main/java/org/apache/camel/example/springboot/grpc/CamelGrpcRoute.java
new file mode 100644
index 0000000..e32969e
--- /dev/null
+++ b/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-client-kubernetes/src/main/java/org/apache/camel/example/springboot/grpc/CamelGrpcRoute.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.example.springboot.grpc;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.examples.CamelHelloRequest;
+import org.springframework.stereotype.Component;
+
+/**
+ * A simple Camel gRPC route example using Spring-boot
+ */
+@Component
+public class CamelGrpcRoute extends RouteBuilder {
+
+    @Override
+    public void configure() throws Exception {
+
+        CamelHelloRequest request = CamelHelloRequest.newBuilder().setName("Camel").build();
+        from("timer://foo?period=10000&repeatCount=5").process(new Processor() {
+
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setBody(request, CamelHelloRequest.class);
+
+            }
+        }).to("grpc://grpc-server:8080/org.apache.camel.examples.CamelHello?method=sayHelloToCamel&synchronous=true").log("Received ${body}");
+    }
+
+}
diff --git a/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-client-kubernetes/src/main/proto/hellocamel.proto b/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-client-kubernetes/src/main/proto/hellocamel.proto
new file mode 100644
index 0000000..787ae12
--- /dev/null
+++ b/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-client-kubernetes/src/main/proto/hellocamel.proto
@@ -0,0 +1,39 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+syntax = "proto3";
+
+option java_multiple_files = true;
+option java_package = "org.apache.camel.examples";
+option java_outer_classname = "HelloCamelProto";
+
+package org.apache.camel.examples;
+
+// The camel hello service definition.
+service CamelHello {
+  // Sends a greeting
+  rpc SayHelloToCamel (CamelHelloRequest) returns (CamelHelloReply) {}
+}
+
+// The request message containing the user's name.
+message CamelHelloRequest {
+  string name = 1;
+}
+
+// The response message containing the greetings
+message CamelHelloReply {
+  string message = 1;
+}
diff --git a/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-client-kubernetes/src/main/resources/application.properties b/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-client-kubernetes/src/main/resources/application.properties
new file mode 100644
index 0000000..fbf3831
--- /dev/null
+++ b/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-client-kubernetes/src/main/resources/application.properties
@@ -0,0 +1,19 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+camel.springboot.name=gRPC
+camel.springboot.main-run-controller=true
diff --git a/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-server-kubernetes/pom.xml b/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-server-kubernetes/pom.xml
new file mode 100644
index 0000000..a77fccc
--- /dev/null
+++ b/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-server-kubernetes/pom.xml
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>camel-example-spring-boot-grpc-kubernetes</artifactId>
+        <version>3.4.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-example-spring-boot-hello-grpc-server-kubernetes</artifactId>
+    <name>Camel SB Examples :: gRPC :: Kubernetes :: Server</name>
+    <description>An example showing a simple gRPC server running on Kubernetes</description>
+
+    <properties>
+        <main.class>org.apache.camel.examples.grpc.HelloCamelServer</main.class>
+        <!-- gRPC requires strong own of the Google Guava version -->
+        <google-guava-version>${grpc-guava-version}</google-guava-version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-netty</artifactId>
+            <version>${grpc-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-protobuf</artifactId>
+            <version>${grpc-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-stub</artifactId>
+            <version>${grpc-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>javax.annotation</groupId>
+            <artifactId>javax.annotation-api</artifactId>
+            <version>${javax-annotation-api-version}</version>
+        </dependency>
+    </dependencies>
+    <build>
+        <extensions>
+            <extension>
+                <groupId>kr.motd.maven</groupId>
+                <artifactId>os-maven-plugin</artifactId>
+                <version>${os-maven-plugin-version}</version>
+            </extension>
+        </extensions>
+
+        <plugins>
+            <plugin>
+                <groupId>org.xolstice.maven.plugins</groupId>
+                <artifactId>protobuf-maven-plugin</artifactId>
+                <version>${protobuf-maven-plugin-version}</version>
+                <configuration>
+                    <protocArtifact>com.google.protobuf:protoc:${protobuf-version}:exe:${os.detected.classifier}
+                    </protocArtifact>
+                    <pluginId>grpc-java</pluginId>
+                    <pluginArtifact>io.grpc:protoc-gen-grpc-java:${grpc-version}:exe:${os.detected.classifier}
+                    </pluginArtifact>
+                    <checkStaleness>true</checkStaleness>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>compile</goal>
+                            <goal>compile-custom</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-enforcer-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>enforce</id>
+                        <goals>
+                            <goal>enforce</goal>
+                        </goals>
+                        <configuration>
+                            <rules>
+                                <requireUpperBoundDeps />
+                            </rules>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>exec-maven-plugin</artifactId>
+                <configuration>
+                    <mainClass>org.apache.camel.examples.grpc.HelloCamelServer</mainClass>
+                    <includePluginDependencies>false</includePluginDependencies>
+                </configuration>
+            </plugin>
+            <plugin>
+                <!-- NOTE: We don't need a groupId specification because the group
+                  is org.apache.maven.plugins ...which is assumed by default. -->
+                <artifactId>maven-assembly-plugin</artifactId>
+                <configuration>
+                    <descriptorRefs>
+                        <descriptorRef>jar-with-dependencies</descriptorRef>
+                    </descriptorRefs>
+                    <archive>
+                        <manifest>
+                            <mainClass>org.apache.camel.examples.grpc.HelloCamelServer</mainClass>
+                        </manifest>
+                    </archive>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>make-assembly</id> <!-- this is used for inheritance merges -->
+                        <phase>package</phase> <!-- bind to the packaging phase -->
+                        <goals>
+                            <goal>single</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+    <profiles>
+        <profile>
+            <id>kubernetes-install</id>
+            <build>
+                <defaultGoal>install</defaultGoal>
+                <plugins>
+                    <plugin>
+                        <groupId>io.fabric8</groupId>
+                        <artifactId>fabric8-maven-plugin</artifactId>
+                        <version>${fabric8-maven-plugin-version}</version>
+                        <configuration>
+                            <enricher>
+                                <config>
+                                    <fmp-service>
+                                        <name>grpc-server</name>
+                                    </fmp-service>
+                                </config>
+                            </enricher>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>resource</goal>
+                                    <goal>build</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+</project>
\ No newline at end of file
diff --git a/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-server-kubernetes/src/main/java/org/apache/camel/examples/grpc/HelloCamelServer.java b/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-server-kubernetes/src/main/java/org/apache/camel/examples/grpc/HelloCamelServer.java
new file mode 100644
index 0000000..f60433e
--- /dev/null
+++ b/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-server-kubernetes/src/main/java/org/apache/camel/examples/grpc/HelloCamelServer.java
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.examples.grpc;
+
+import java.io.IOException;
+import java.util.logging.Logger;
+
+import io.grpc.Server;
+import io.grpc.ServerBuilder;
+import io.grpc.stub.StreamObserver;
+import org.apache.camel.examples.CamelHelloGrpc;
+import org.apache.camel.examples.CamelHelloReply;
+import org.apache.camel.examples.CamelHelloRequest;
+
+/**
+ * Server that manages startup/shutdown of a server.
+ */
+public class HelloCamelServer {
+    private static final Logger LOG = Logger.getLogger(HelloCamelServer.class.getName());
+
+    private Server server;
+
+    private void start() throws IOException {
+        /* The port on which the server should run */
+        int port = 8080;
+        server = ServerBuilder.forPort(port).addService(new HelloCamelImpl()).build().start();
+        LOG.info("Server started. I'm listening on " + port);
+        Runtime.getRuntime().addShutdownHook(new Thread() {
+            @Override
+            public void run() {
+                HelloCamelServer.this.stop();
+            }
+        });
+    }
+
+    private void stop() {
+        if (server != null) {
+            server.shutdown();
+        }
+    }
+
+    private void blockUntilShutdown() throws InterruptedException {
+        if (server != null) {
+            server.awaitTermination();
+        }
+    }
+
+    /**
+     * Main needed to launch server from command line
+     */
+    public static void main(String[] args) throws IOException, InterruptedException {
+        final HelloCamelServer server = new HelloCamelServer();
+        server.start();
+        server.blockUntilShutdown();
+    }
+
+    static class HelloCamelImpl extends CamelHelloGrpc.CamelHelloImplBase {
+
+        @Override
+        public void sayHelloToCamel(CamelHelloRequest req, StreamObserver<CamelHelloReply> responseObserver) {
+            CamelHelloReply reply = CamelHelloReply.newBuilder().setMessage("Hello " + req.getName()).build();
+            responseObserver.onNext(reply);
+            responseObserver.onCompleted();
+        }
+    }
+
+}
diff --git a/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-server-kubernetes/src/main/proto/hellocamel.proto b/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-server-kubernetes/src/main/proto/hellocamel.proto
new file mode 100644
index 0000000..787ae12
--- /dev/null
+++ b/camel-example-spring-boot-grpc-kubernetes/hello-camel-grpc-server-kubernetes/src/main/proto/hellocamel.proto
@@ -0,0 +1,39 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+syntax = "proto3";
+
+option java_multiple_files = true;
+option java_package = "org.apache.camel.examples";
+option java_outer_classname = "HelloCamelProto";
+
+package org.apache.camel.examples;
+
+// The camel hello service definition.
+service CamelHello {
+  // Sends a greeting
+  rpc SayHelloToCamel (CamelHelloRequest) returns (CamelHelloReply) {}
+}
+
+// The request message containing the user's name.
+message CamelHelloRequest {
+  string name = 1;
+}
+
+// The response message containing the greetings
+message CamelHelloReply {
+  string message = 1;
+}
diff --git a/camel-example-spring-boot-grpc-kubernetes/pom.xml b/camel-example-spring-boot-grpc-kubernetes/pom.xml
new file mode 100644
index 0000000..57cc09e
--- /dev/null
+++ b/camel-example-spring-boot-grpc-kubernetes/pom.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>examples</artifactId>
+        <version>3.4.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-example-spring-boot-grpc-kubernetes</artifactId>
+    <packaging>pom</packaging>
+    <name>Camel SB Examples :: gRPC :: Kubernetes</name>
+    <description>An example showing the Camel gRPC component with Spring Boot running on Kubernetes</description>
+
+    <properties>
+        <category>Cloud</category>
+        <title>gRPC Kubernetes</title>
+        <!-- gRPC requires strong own of the Google Guava version -->
+        <google-guava-version>${grpc-guava-version}</google-guava-version>
+    </properties>
+
+    <modules>
+        <module>hello-camel-grpc-server-kubernetes</module>
+        <module>hello-camel-grpc-client-kubernetes</module>
+    </modules>
+
+</project>
diff --git a/camel-example-spring-boot-grpc/README.adoc b/camel-example-spring-boot-grpc/README.adoc
new file mode 100644
index 0000000..2cf4861
--- /dev/null
+++ b/camel-example-spring-boot-grpc/README.adoc
@@ -0,0 +1,68 @@
+== Spring Boot Example with gRPC
+
+=== Introduction
+
+This example demonstrates how you can use Camel-gRPC Starter component. The example is composed of a standalone gRPC server and a Camel Spring-boot gRPC route acting as client.
+
+=== Server
+
+You can build the server under the directory hello-camel-grpc-server with:
+
+    $ mvn clean install 
+
+and then run the server with
+
+    $ mvn exec:java
+
+You should see the following output:
+
+[source,bash]
+----
+Aug 08, 2017 8:00:00 AM org.apache.camel.examples.grpc.HelloCamelServer start
+INFO: Server started. I'm listening on 50051
+----
+
+=== Run the client
+
+You can build the client example under the directory hello-camel-grpc-client with:
+
+    $ mvn clean install
+
+and then run the example with
+
+    $ mvn spring-boot:run
+
+And you should see this output in the console.
+
+[source,bash]
+----
+2017-08-08 08:01:14.530  INFO 7096 --- [           main] o.a.c.e.springboot.grpc.Application      : Starting Application on ghost with PID 7096 (/home/oscerd/workspace/apache-camel/camel/examples/camel-example-spring-boot-grpc/hello-camel-grpc-client/target/classes started by oscerd in /home/oscerd/workspace/apache-camel/camel/examples/camel-example-spring-boot-grpc/hello-camel-grpc-client)
+2017-08-08 08:01:14.532  INFO 7096 --- [           main] o.a.c.e.springboot.grpc.Application      : No active profile set, falling back to default profiles: default
+2017-08-08 08:01:14.563  INFO 7096 --- [           main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@540ff973: startup date [Tue Aug 08 08:01:14 CEST 2017]; root of context hierarchy
+2017-08-08 08:01:15.177  INFO 7096 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.apache.camel.spring.boot.CamelAutoConfiguration' of type [org.apache.camel.spring.boot.CamelAutoConfiguration$$EnhancerBySpringCGLIB$$78492c0f] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2017-08-08 08:01:15.447  INFO 7096 --- [           main] o.a.c.i.converter.DefaultTypeConverter   : Type converters loaded (core: 192, classpath: 1)
+2017-08-08 08:01:15.844  INFO 7096 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
+2017-08-08 08:01:15.894  INFO 7096 --- [           main] o.a.camel.spring.boot.RoutesCollector    : Loading additional Camel XML routes from: classpath:camel/*.xml
+2017-08-08 08:01:15.894  INFO 7096 --- [           main] o.a.camel.spring.boot.RoutesCollector    : Loading additional Camel XML rests from: classpath:camel-rest/*.xml
+2017-08-08 08:01:15.895  INFO 7096 --- [           main] o.a.camel.spring.boot.RoutesCollector    : Starting CamelMainRunController to ensure the main thread keeps running
+2017-08-08 08:01:15.898  INFO 7096 --- [inRunController] o.a.camel.spring.SpringCamelContext      : Apache Camel 2.20.0-SNAPSHOT (CamelContext: gRPC) is starting
+2017-08-08 08:01:15.899  INFO 7096 --- [inRunController] o.a.c.m.ManagedManagementStrategy        : JMX is enabled
+2017-08-08 08:01:15.904  INFO 7096 --- [           main] o.a.c.e.springboot.grpc.Application      : Started Application in 1.897 seconds (JVM running for 7.75)
+2017-08-08 08:01:16.074  INFO 7096 --- [inRunController] o.a.camel.spring.SpringCamelContext      : StreamCaching is not in use. If using streams then its recommended to enable stream caching. See more details at http://camel.apache.org/stream-caching.html
+2017-08-08 08:01:16.118  INFO 7096 --- [inRunController] o.a.camel.component.grpc.GrpcProducer    : Creating channel to the remote gRPC server localhost:50051
+2017-08-08 08:01:16.214  INFO 7096 --- [inRunController] o.a.camel.spring.SpringCamelContext      : Route: route1 started and consuming from: timer://foo?period=10000&repeatCount=1
+2017-08-08 08:01:16.216  INFO 7096 --- [inRunController] o.a.camel.spring.SpringCamelContext      : Total 1 routes, of which 1 are started.
+2017-08-08 08:01:16.216  INFO 7096 --- [inRunController] o.a.camel.spring.SpringCamelContext      : Apache Camel 2.20.0-SNAPSHOT (CamelContext: gRPC) started in 0.319 seconds
+2017-08-08 08:01:17.534  INFO 7096 --- [2 - timer://foo] route1                                   : Received message: "Hello Camel"
+
+----
+
+=== Help and contributions
+
+If you hit any problem using Camel or have some feedback, then please
+https://camel.apache.org/support.html[let us know].
+
+We also love contributors, so
+https://camel.apache.org/contributing.html[get involved] :-)
+
+The Camel riders!
\ No newline at end of file
diff --git a/camel-example-spring-boot-grpc/hello-camel-grpc-client/pom.xml b/camel-example-spring-boot-grpc/hello-camel-grpc-client/pom.xml
new file mode 100644
index 0000000..c026e2a
--- /dev/null
+++ b/camel-example-spring-boot-grpc/hello-camel-grpc-client/pom.xml
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>camel-example-spring-boot-grpc</artifactId>
+        <version>3.4.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-example-hello-grpc-client</artifactId>
+    <name>Camel SB Examples :: gRPC :: Hello Camel Client</name>
+    <description>An example showing the Camel gRPC component with Spring Boot</description>
+
+    <properties>
+        <category>Cloud</category>
+        <spring.boot-version>${spring-boot-version}</spring.boot-version>
+        <!-- gRPC requires strong own of the Google Guava version -->
+        <google-guava-version>${grpc-guava-version}</google-guava-version>
+    </properties>
+
+    <!-- Spring-Boot and Camel BOM -->
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring.boot-version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.springboot</groupId>
+                <artifactId>camel-spring-boot-dependencies</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+
+        <!-- Camel -->
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-grpc-starter</artifactId>
+        </dependency>
+
+        <!-- Test -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-test</artifactId>
+            <version>${camel-version}</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <extensions>
+            <extension>
+                <groupId>kr.motd.maven</groupId>
+                <artifactId>os-maven-plugin</artifactId>
+                <version>${os-maven-plugin-version}</version>
+            </extension>
+        </extensions>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring.boot-version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.xolstice.maven.plugins</groupId>
+                <artifactId>protobuf-maven-plugin</artifactId>
+                <version>${protobuf-maven-plugin-version}</version>
+                <configuration>
+                    <protocArtifact>com.google.protobuf:protoc:${protobuf-version}:exe:${os.detected.classifier}
+                    </protocArtifact>
+                    <pluginId>grpc-java</pluginId>
+                    <pluginArtifact>io.grpc:protoc-gen-grpc-java:${grpc-version}:exe:${os.detected.classifier}
+                    </pluginArtifact>
+                    <checkStaleness>true</checkStaleness>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>compile</goal>
+                            <goal>compile-custom</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/camel-example-spring-boot-grpc/hello-camel-grpc-client/src/main/java/org/apache/camel/example/springboot/grpc/Application.java b/camel-example-spring-boot-grpc/hello-camel-grpc-client/src/main/java/org/apache/camel/example/springboot/grpc/Application.java
new file mode 100644
index 0000000..07fb7c7
--- /dev/null
+++ b/camel-example-spring-boot-grpc/hello-camel-grpc-client/src/main/java/org/apache/camel/example/springboot/grpc/Application.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.example.springboot.grpc;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+// CHECKSTYLE:OFF
+@SpringBootApplication
+public class Application {
+
+    /**
+     * Main method to start the application.
+     */
+    public static void main(String[] args) {
+        SpringApplication.run(Application.class, args);
+    }
+
+}
+// CHECKSTYLE:ON
diff --git a/camel-example-spring-boot-grpc/hello-camel-grpc-client/src/main/java/org/apache/camel/example/springboot/grpc/CamelGrpcRoute.java b/camel-example-spring-boot-grpc/hello-camel-grpc-client/src/main/java/org/apache/camel/example/springboot/grpc/CamelGrpcRoute.java
new file mode 100644
index 0000000..21c040a
--- /dev/null
+++ b/camel-example-spring-boot-grpc/hello-camel-grpc-client/src/main/java/org/apache/camel/example/springboot/grpc/CamelGrpcRoute.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.example.springboot.grpc;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.examples.CamelHelloRequest;
+import org.springframework.stereotype.Component;
+
+/**
+ * A simple Camel gRPC route example using Spring-boot
+ */
+@Component
+public class CamelGrpcRoute extends RouteBuilder {
+
+    @Override
+    public void configure() throws Exception {
+
+        CamelHelloRequest request = CamelHelloRequest.newBuilder().setName("Camel").build();
+        from("timer://foo?period=10000&repeatCount=5").process(new Processor() {
+
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setBody(request, CamelHelloRequest.class);
+
+            }
+        }).to("grpc://localhost:50051/org.apache.camel.examples.CamelHello?method=sayHelloToCamel&synchronous=true").log("Received ${body}");
+    }
+
+}
diff --git a/camel-example-spring-boot-grpc/hello-camel-grpc-client/src/main/proto/hellocamel.proto b/camel-example-spring-boot-grpc/hello-camel-grpc-client/src/main/proto/hellocamel.proto
new file mode 100644
index 0000000..787ae12
--- /dev/null
+++ b/camel-example-spring-boot-grpc/hello-camel-grpc-client/src/main/proto/hellocamel.proto
@@ -0,0 +1,39 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+syntax = "proto3";
+
+option java_multiple_files = true;
+option java_package = "org.apache.camel.examples";
+option java_outer_classname = "HelloCamelProto";
+
+package org.apache.camel.examples;
+
+// The camel hello service definition.
+service CamelHello {
+  // Sends a greeting
+  rpc SayHelloToCamel (CamelHelloRequest) returns (CamelHelloReply) {}
+}
+
+// The request message containing the user's name.
+message CamelHelloRequest {
+  string name = 1;
+}
+
+// The response message containing the greetings
+message CamelHelloReply {
+  string message = 1;
+}
diff --git a/camel-example-spring-boot-grpc/hello-camel-grpc-client/src/main/resources/application.properties b/camel-example-spring-boot-grpc/hello-camel-grpc-client/src/main/resources/application.properties
new file mode 100644
index 0000000..fbf3831
--- /dev/null
+++ b/camel-example-spring-boot-grpc/hello-camel-grpc-client/src/main/resources/application.properties
@@ -0,0 +1,19 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+camel.springboot.name=gRPC
+camel.springboot.main-run-controller=true
diff --git a/camel-example-spring-boot-grpc/hello-camel-grpc-server/pom.xml b/camel-example-spring-boot-grpc/hello-camel-grpc-server/pom.xml
new file mode 100644
index 0000000..f527150
--- /dev/null
+++ b/camel-example-spring-boot-grpc/hello-camel-grpc-server/pom.xml
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>camel-example-spring-boot-grpc</artifactId>
+        <version>3.4.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-example-hello-grpc-server</artifactId>
+    <name>Camel SB Examples :: gRPC :: Hello Camel Server</name>
+    <description>An example showing a simple gRPC server</description>
+
+    <properties>
+        <!-- gRPC requires strong own of the Google Guava version -->
+        <google-guava-version>${grpc-guava-version}</google-guava-version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-netty</artifactId>
+            <version>${grpc-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-protobuf</artifactId>
+            <version>${grpc-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-stub</artifactId>
+            <version>${grpc-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>javax.annotation</groupId>
+            <artifactId>javax.annotation-api</artifactId>
+            <version>${javax-annotation-api-version}</version>
+        </dependency>
+    </dependencies>
+    <build>
+        <extensions>
+            <extension>
+                <groupId>kr.motd.maven</groupId>
+                <artifactId>os-maven-plugin</artifactId>
+                <version>${os-maven-plugin-version}</version>
+            </extension>
+        </extensions>
+        <plugins>
+            <plugin>
+                <groupId>org.xolstice.maven.plugins</groupId>
+                <artifactId>protobuf-maven-plugin</artifactId>
+                <version>${protobuf-maven-plugin-version}</version>
+                <configuration>
+                    <protocArtifact>com.google.protobuf:protoc:${protobuf-version}:exe:${os.detected.classifier}
+                    </protocArtifact>
+                    <pluginId>grpc-java</pluginId>
+                    <pluginArtifact>io.grpc:protoc-gen-grpc-java:${grpc-version}:exe:${os.detected.classifier}
+                    </pluginArtifact>
+                    <checkStaleness>true</checkStaleness>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>compile</goal>
+                            <goal>compile-custom</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-enforcer-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>enforce</id>
+                        <goals>
+                            <goal>enforce</goal>
+                        </goals>
+                        <configuration>
+                            <rules>
+                                <requireUpperBoundDeps />
+                            </rules>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>exec-maven-plugin</artifactId>
+                <configuration>
+                    <mainClass>org.apache.camel.examples.grpc.HelloCamelServer</mainClass>
+                    <includePluginDependencies>false</includePluginDependencies>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/camel-example-spring-boot-grpc/hello-camel-grpc-server/src/main/java/org/apache/camel/examples/grpc/HelloCamelServer.java b/camel-example-spring-boot-grpc/hello-camel-grpc-server/src/main/java/org/apache/camel/examples/grpc/HelloCamelServer.java
new file mode 100644
index 0000000..547e4ff
--- /dev/null
+++ b/camel-example-spring-boot-grpc/hello-camel-grpc-server/src/main/java/org/apache/camel/examples/grpc/HelloCamelServer.java
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.examples.grpc;
+
+import java.io.IOException;
+import java.util.logging.Logger;
+
+import io.grpc.Server;
+import io.grpc.ServerBuilder;
+import io.grpc.stub.StreamObserver;
+import org.apache.camel.examples.CamelHelloGrpc;
+import org.apache.camel.examples.CamelHelloReply;
+import org.apache.camel.examples.CamelHelloRequest;
+
+/**
+ * Server that manages startup/shutdown of a server.
+ */
+public class HelloCamelServer {
+    private static final Logger LOG = Logger.getLogger(HelloCamelServer.class.getName());
+
+    private Server server;
+
+    private void start() throws IOException {
+        /* The port on which the server should run */
+        int port = 50051;
+        server = ServerBuilder.forPort(port).addService(new HelloCamelImpl()).build().start();
+        LOG.info("Server started. I'm listening on " + port);
+        Runtime.getRuntime().addShutdownHook(new Thread() {
+            @Override
+            public void run() {
+                HelloCamelServer.this.stop();
+            }
+        });
+    }
+
+    private void stop() {
+        if (server != null) {
+            server.shutdown();
+        }
+    }
+
+    private void blockUntilShutdown() throws InterruptedException {
+        if (server != null) {
+            server.awaitTermination();
+        }
+    }
+
+    /**
+     * Main needed to launch server from command line
+     */
+    public static void main(String[] args) throws IOException, InterruptedException {
+        final HelloCamelServer server = new HelloCamelServer();
+        server.start();
+        server.blockUntilShutdown();
+    }
+
+    static class HelloCamelImpl extends CamelHelloGrpc.CamelHelloImplBase {
+
+        @Override
+        public void sayHelloToCamel(CamelHelloRequest req, StreamObserver<CamelHelloReply> responseObserver) {
+            CamelHelloReply reply = CamelHelloReply.newBuilder().setMessage("Hello " + req.getName()).build();
+            responseObserver.onNext(reply);
+            responseObserver.onCompleted();
+        }
+    }
+
+}
diff --git a/camel-example-spring-boot-grpc/hello-camel-grpc-server/src/main/proto/hellocamel.proto b/camel-example-spring-boot-grpc/hello-camel-grpc-server/src/main/proto/hellocamel.proto
new file mode 100644
index 0000000..787ae12
--- /dev/null
+++ b/camel-example-spring-boot-grpc/hello-camel-grpc-server/src/main/proto/hellocamel.proto
@@ -0,0 +1,39 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+syntax = "proto3";
+
+option java_multiple_files = true;
+option java_package = "org.apache.camel.examples";
+option java_outer_classname = "HelloCamelProto";
+
+package org.apache.camel.examples;
+
+// The camel hello service definition.
+service CamelHello {
+  // Sends a greeting
+  rpc SayHelloToCamel (CamelHelloRequest) returns (CamelHelloReply) {}
+}
+
+// The request message containing the user's name.
+message CamelHelloRequest {
+  string name = 1;
+}
+
+// The response message containing the greetings
+message CamelHelloReply {
+  string message = 1;
+}
diff --git a/camel-example-spring-boot-grpc/pom.xml b/camel-example-spring-boot-grpc/pom.xml
new file mode 100644
index 0000000..258d8d9
--- /dev/null
+++ b/camel-example-spring-boot-grpc/pom.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>examples</artifactId>
+        <version>3.4.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-example-spring-boot-grpc</artifactId>
+    <packaging>pom</packaging>
+    <name>Camel SB Examples :: gRPC</name>
+    <description>An example showing the Camel gRPC component with Spring Boot</description>
+
+    <properties>
+        <category>Cloud</category>
+        <title>gRPC Spring Boot</title>
+    </properties>
+
+    <modules>
+        <module>hello-camel-grpc-server</module>
+        <module>hello-camel-grpc-client</module>
+    </modules>
+
+</project>
diff --git a/camel-example-spring-boot-health-checks/application/pom.xml b/camel-example-spring-boot-health-checks/application/pom.xml
new file mode 100644
index 0000000..945d877
--- /dev/null
+++ b/camel-example-spring-boot-health-checks/application/pom.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>camel-example-spring-boot-health-checks</artifactId>
+        <version>3.4.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-example-spring-boot-health-checks-application</artifactId>
+    <name>Camel SB Examples :: Health Checks :: Application</name>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <spring.boot-version>${spring-boot-version}</spring.boot-version>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <!-- Spring Boot BOM -->
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring.boot-version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <!-- Camel BOM -->
+            <dependency>
+                <groupId>org.apache.camel.springboot</groupId>
+                <artifactId>camel-spring-boot-dependencies</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <!-- Spring Boot -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-tomcat</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-undertow</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-actuator</artifactId>
+        </dependency>
+        <!-- Camel -->
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-stream-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-consul-starter</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring-boot-version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/camel-example-spring-boot-health-checks/application/src/main/java/sample/camel/Application.java b/camel-example-spring-boot-health-checks/application/src/main/java/sample/camel/Application.java
new file mode 100644
index 0000000..d7ee3f1
--- /dev/null
+++ b/camel-example-spring-boot-health-checks/application/src/main/java/sample/camel/Application.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package sample.camel;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+//CHECKSTYLE:OFF
+/**
+ * A sample Spring Boot application that starts the Camel routes.
+ */
+@SpringBootApplication
+public class Application {
+    /**
+     * A main method to start this application.
+     */
+    public static void main(String[] args) {
+        SpringApplication.run(Application.class, args);
+    }
+}
+//CHECKSTYLE:ON
diff --git a/camel-example-spring-boot-health-checks/application/src/main/java/sample/camel/ApplicationCheck.java b/camel-example-spring-boot-health-checks/application/src/main/java/sample/camel/ApplicationCheck.java
new file mode 100644
index 0000000..9b73bc3
--- /dev/null
+++ b/camel-example-spring-boot-health-checks/application/src/main/java/sample/camel/ApplicationCheck.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package sample.camel;
+
+import java.util.Map;
+import java.util.UUID;
+
+import org.apache.camel.health.HealthCheckResultBuilder;
+import org.apache.camel.impl.health.AbstractHealthCheck;
+
+public class ApplicationCheck extends AbstractHealthCheck {
+    private State state;
+
+    public ApplicationCheck(String group, String id) {
+        super(group, id);
+
+        this.state = State.UP;
+
+        getConfiguration().setEnabled(true);
+    }
+
+
+    public State getState() {
+        return state;
+    }
+
+    public void setState(State state) {
+        this.state = state;
+    }
+
+    @Override
+    protected void doCall(HealthCheckResultBuilder builder, Map<String, Object> options) {
+        builder.state(state).detail("random.value", UUID.randomUUID().toString());
+    }
+}
diff --git a/camel-example-spring-boot-health-checks/application/src/main/java/sample/camel/ApplicationConfiguration.java b/camel-example-spring-boot-health-checks/application/src/main/java/sample/camel/ApplicationConfiguration.java
new file mode 100644
index 0000000..5131af9
--- /dev/null
+++ b/camel-example-spring-boot-health-checks/application/src/main/java/sample/camel/ApplicationConfiguration.java
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package sample.camel;
+
+import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.builder.RouteBuilder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class ApplicationConfiguration {
+    @Bean
+    public RouteBuilder routesBuilder() {
+        return new RouteBuilder() {
+            public void configure() throws Exception {
+                from("timer:foo?period=1000")
+                    .routeId("foo")
+                    .process(e -> {
+                        throw new RuntimeCamelException("This is a forced exception to have health check monitor this failure (route=foo)"); 
+                    });
+                from("timer:bar?period=1000")
+                    .routeId("bar")
+                    .process(e -> {
+                        throw new RuntimeCamelException("This is a forced exception to have health check monitor this failure (route=bar)");
+                    });
+                from("timer:slow?period=1000")
+                    .routeId("slow")
+                    .process(e -> {
+                        Thread.sleep(1200);
+                    });
+            }
+        };
+    }
+
+    @Bean(name = "my-check-1")
+    public ApplicationCheck applicationHealth1() {
+        return new ApplicationCheck("global", "my-check-1");
+    }
+
+    @Bean(name = "my-check-2")
+    public ApplicationCheck applicationHealth2() {
+        return new ApplicationCheck("local", "my-check-2");
+    }
+}
diff --git a/camel-example-spring-boot-health-checks/application/src/main/resources/application.properties b/camel-example-spring-boot-health-checks/application/src/main/resources/application.properties
new file mode 100644
index 0000000..15d0eb8
--- /dev/null
+++ b/camel-example-spring-boot-health-checks/application/src/main/resources/application.properties
@@ -0,0 +1,80 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+debug = false
+
+logging.level.org.springframework = INFO
+logging.level.org.apache.camel.spring.boot = INFO
+logging.level.org.apache.camel.health = DEBUG
+logging.level.org.apache.camel.impl.health = DEBUG
+logging.level.sample.camel = DEBUG
+
+management.endpoints.enabled-by-default = false
+management.endpoint.mappings.enabled = true
+management.endpoint.health.enabled = true
+management.endpoint.camelhealthchecks.enabled = true
+
+camel.springboot.name = SampleHealthChecks
+
+################################################################################
+#
+# health checks
+#
+################################################################################
+
+# Enable camel health indicator
+camel.health.indicator.enabled = true
+
+# Enable camel HealthCheck integration with spring's health indicator.
+camel.health.check.indicator.enabled = true
+
+# Enable camel HealthCheck for routes.
+camel.health.check.routes.enabled = true
+camel.health.check.routes.thresholds.exchanges-failed = 10
+camel.health.check.routes.threshold[bar].exchanges-failed = 20
+camel.health.check.routes.threshold[slow].inherit = false
+camel.health.check.routes.threshold[slow].last-processing-time.threshold = 1000
+camel.health.check.routes.threshold[slow].last-processing-time.failures = 5
+
+# HealthChecks can be pulled out from SpringBoot's health endpoint using either
+# the literal id or a regexp. Exclusion list can be applied to both the ID or the
+# Group as shown below:
+#
+#camel.health.check.indicator.exclusion.ids[0] = my-.*-2
+#camel.health.check.indicator.exclusion.groups[0] = global
+
+# Without the HealthCheckService running each invocation to either the Camel's
+# health check endpoint or SpringBoot's one results in an invocation of the check
+# whereas when enables, all the responses are cached until the check timeout is
+# reached or the invocation is forced.
+#
+#camel.health.check.service.enabled = true
+#camel.health.check.service.check-interval = 10000
+
+################################################################################
+#
+# Consul repository
+#
+# Make consul checks identified by http and file available to camel
+#
+################################################################################
+
+camel.component.consul.health.check.repository.enabled = true
+camel.component.consul.health.check.repository.url = http://localhost:8500
+camel.component.consul.health.check.repository.checks[0] = http
+camel.component.consul.health.check.repository.checks[1] = file
+
diff --git a/camel-example-spring-boot-health-checks/pom.xml b/camel-example-spring-boot-health-checks/pom.xml
new file mode 100644
index 0000000..ca6c6a5
--- /dev/null
+++ b/camel-example-spring-boot-health-checks/pom.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>examples</artifactId>
+        <version>3.4.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-example-spring-boot-health-checks</artifactId>
+    <name>Camel SB Examples :: Health Checks</name>
+    <description>An example showing how to work with Camel's Health Checks and Spring Boot</description>
+    <packaging>pom</packaging>
+
+    <properties>
+        <category>Beginner</category>
+
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <spring.boot-version>${spring-boot-version}</spring.boot-version>
+    </properties>
+
+
+    <modules>
+        <module>service</module>
+        <module>application</module>
+    </modules>
+</project>
diff --git a/camel-example-spring-boot-health-checks/readme.adoc b/camel-example-spring-boot-health-checks/readme.adoc
new file mode 100644
index 0000000..2641562
--- /dev/null
+++ b/camel-example-spring-boot-health-checks/readme.adoc
@@ -0,0 +1,221 @@
+== Camel Health Checks and Spring Boot
+
+This example shows how to work with a simple Apache Camel application using Spring Boot.
+
+NOTE: Some of the routes fail intentionally to have health check monitor their failures
+
+=== How to run
+
+* mvn clean package
+* service/src/main/bash/consul-run-linux.sh
+* mvn -pl service spring-boot:run
+* mvn -pl application spring-boot:run
+
+=== How to play with the example
+
+You can interact with the example using curl or httpie
+
+* Trigger the checks an gather the results:
++
+[source,console]
+----
+$ http -b GET localhost:8080/camel/health/check
+----
++
+[source,json]
+----
+[
+    {
+        "check": {
+            "id": "consul-file"
+        },
+        "status": "UP"
+    },
+    {
+        "check": {
+            "id": "consul-http"
+        },
+        "status": "UP"
+    },
+    {
+        "check": {
+            "group": "global",
+            "id": "my-check-1"
+        },
+        "status": "UP"
+    },
+    {
+        "check": {
+            "group": "local",
+            "id": "my-check-2"
+        },
+        "status": "UP"
+    }
+]
+----
+
+* Query the status of a named check
++
+[source,console]
+----
+$ http -b GET localhost:8080/camel/health/check/consul-http
+----
++
+[source,json]
+----
+{
+    "check": {
+        "configuration": {
+            "enabled": true,
+            "failureThreshold": 0,
+            "interval": "PT0S"
+        },
+        "id": "consul-http",
+        "metaData": {
+            "check.id": "consul-http",
+            "failure.count": 0,
+            "invocation.attempt.time": "2017-08-29T10:03:10.292+02:00[Europe/Rome]",
+            "invocation.count": 3,
+            "invocation.time": "2017-08-29T10:03:10.292+02:00[Europe/Rome]"
+        }
+    },
+    "details": {
+        "consul.check.id": "http",
+        "consul.check.status": "passing",
+        "consul.service.id": "",
+        "consul.service.name": "",
+        "failure.count": 0,
+        "invocation.count": 3,
+        "invocation.time": "2017-08-29T10:03:10.292+02:00[Europe/Rome]"
+    },
+    "status": "UP"
+}
+----
++
+IMPORTANT: This call may result in a direct invocation of the check, the behavior is implementation dependant.
+
+
+* Trigger a named check
++
+[source,console]
+----
+$ http -b GET localhost:8080/camel/health/check/consul-http/invoke
+----
++
+[source,json]
+----
+{
+    "check": {
+        "configuration": {
+            "enabled": true,
+            "failureThreshold": 0,
+            "interval": "PT0S"
+        },
+        "id": "consul-http",
+        "metaData": {
+            "check.id": "consul-http",
+            "failure.count": 0,
+            "invocation.attempt.time": "2017-08-29T10:05:02.729+02:00[Europe/Rome]",
+            "invocation.count": 14,
+            "invocation.time": "2017-08-29T10:05:02.729+02:00[Europe/Rome]"
+        }
+    },
+    "details": {
+        "consul.check.id": "http",
+        "consul.check.status": "passing",
+        "consul.service.id": "",
+        "consul.service.name": "",
+        "failure.count": 0,
+        "invocation.count": 14,
+        "invocation.time": "2017-08-29T10:05:02.729+02:00[Europe/Rome]"
+    },
+    "status": "UP"
+}
+----
+
+* Check the application status using Spring-Boot's health endpoint:
++
+[source,console]
+----
+$ http -b GET localhost:8080/health
+----
++
+[source,json]
+----
+{
+    "camel": {
+        "contextStatus": "Started",
+        "name": "SampleHealthChecks",
+        "status": "UP",
+        "version": "2.20.0-SNAPSHOT"
+    },
+    "camel-health-checks": {
+        "consul-file": "UP",
+        "consul-http": "UP",
+        "my-check-1": "UP",
+        "my-check-2": "UP",
+        "status": "UP"
+    },
+    "diskSpace": {
+        "free": 120546111488,
+        "status": "UP",
+        "threshold": 10485760,
+        "total": 192459673600
+    },
+    "status": "UP"
+}
+----
+
+If you stop the `service` application, the Spring-Boot's health endpoint will report the `application` as un-healthy:
+
+[source,console]
+----
+$ http -b GET localhost:8080/health
+----
+
+[source,json]
+----
+{
+    "camel": {
+        "contextStatus": "Started",
+        "name": "SampleHealthChecks",
+        "status": "UP",
+        "version": "2.20.0-SNAPSHOT"
+    },
+    "camel-health-checks": {
+        "consul-file": "UP",
+        "consul-http": "UP",
+        "my-check-1": "UP",
+        "my-check-2": "UP",
+        "status": "DOWN"
+    },
+    "diskSpace": {
+        "free": 120546017280,
+        "status": "UP",
+        "threshold": 10485760,
+        "total": 192459673600
+    },
+    "status": "DOWN"
+}
+----
+
+=== Using the HealthCheckService
+
+The HealthCheckService can be enabled by setting the property `camel.health.check.service.enabled` to `true`. Once done every call to the Camel health check endpoint as well as the SpringBoot one will return the last known response or an error if the requested check has not yet been invoked.
+
+To force the service to refresh a check, you can use:
+
+[source,console]
+----
+$ http -b GET localhost:8080/camel/health/check/{id}/invoke
+----
+
+=== Help and contributions
+
+If you hit any problem using Camel or have some feedback, then please
+https://camel.apache.org/support.html[let us know].
+
+We also love contributors, so
+https://camel.apache.org/contributing.html[get involved] :-)
+
+The Camel riders!
diff --git a/camel-example-spring-boot-health-checks/service/pom.xml b/camel-example-spring-boot-health-checks/service/pom.xml
new file mode 100644
index 0000000..aca716e
--- /dev/null
+++ b/camel-example-spring-boot-health-checks/service/pom.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>camel-example-spring-boot-health-checks</artifactId>
+        <version>3.4.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-example-spring-boot-health-checks-service</artifactId>
+    <name>Camel SB Examples :: Health Checks :: Service</name>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <spring.boot-version>${spring-boot-version}</spring.boot-version>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <!-- Spring Boot BOM -->
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring.boot-version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-tomcat</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-undertow</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring-boot-version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/camel-example-spring-boot-health-checks/service/src/main/bash/consul-run-linux.sh b/camel-example-spring-boot-health-checks/service/src/main/bash/consul-run-linux.sh
new file mode 100755
index 0000000..58e8b56
--- /dev/null
+++ b/camel-example-spring-boot-health-checks/service/src/main/bash/consul-run-linux.sh
@@ -0,0 +1,59 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+
+CONSUL_VER="1.0.8"
+CONSUL_ZIP="consul_${CONSUL_VER}_linux_amd64.zip"
+
+# cleanup
+rm -rf "target/consul-data"
+rm -rf "target/consul-config"
+rm -rf "target/consul"
+
+mkdir -p target/
+mkdir -p target/consul-data
+mkdir -p target/consul-config
+
+if [ ! -f target/${CONSUL_ZIP} ]; then
+    wget "https://releases.hashicorp.com/consul/${CONSUL_VER}/${CONSUL_ZIP}" -O target/${CONSUL_ZIP}
+fi
+
+cat > target/consul-config/checks.json <<EOF
+{
+  "checks": [{
+    "id": "http", "script": "curl www.google.com >/dev/null 2>&1", "interval": "10s"
+  }, {
+    "id": "file", "script": "ls /tmp/camel-check >/dev/null 2>&1", "interval": "10s"
+  }]
+}
+EOF
+
+unzip -d target target/${CONSUL_ZIP}
+
+target/consul \
+    agent \
+    -server \
+    -bootstrap \
+    -datacenter camel \
+    -advertise 127.0.0.1 \
+    -bind 0.0.0.0 \
+    -log-level trace \
+    -data-dir target/consul-data \
+    -config-dir target/consul-config \
+    -enable-script-checks \
+    -ui
diff --git a/camel-example-spring-boot-health-checks/service/src/main/bash/consul-run-osx.sh b/camel-example-spring-boot-health-checks/service/src/main/bash/consul-run-osx.sh
new file mode 100755
index 0000000..a4241c6
--- /dev/null
+++ b/camel-example-spring-boot-health-checks/service/src/main/bash/consul-run-osx.sh
@@ -0,0 +1,62 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+
+CONSUL_VER="1.0.8"
+CONSUL_ZIP="consul_${CONSUL_VER}_darwin_amd64.zip"
+
+# cleanup
+rm -rf "target/consul-data"
+rm -rf "target/consul-config"
+rm -rf "target/consul"
+
+mkdir -p target/
+mkdir -p target/consul-data
+mkdir -p target/consul-config
+
+
+if [ ! -f target/$CONSUL_ZIP ]; then
+    echo Downloading: https://releases.hashicorp.com/consul/$CONSUL_VER/$CONSUL_ZIP 
+    curl -o target/$CONSUL_ZIP "https://releases.hashicorp.com/consul/$CONSUL_VER/$CONSUL_ZIP"
+fi
+
+cat > target/consul-config/checks.json <<EOF
+{
+  "checks": [{
+    "id": "http", "script": "curl www.google.com >/dev/null 2>&1", "interval": "10s"
+  }, {
+    "id": "file", "script": "ls /tmp/camel-check >/dev/null 2>&1", "interval": "10s"
+  }]
+}
+EOF
+
+unzip -d target target/$CONSUL_ZIP
+chmod +x target/consul
+
+target/consul \
+    agent \
+    -server \
+    -bootstrap \
+    -datacenter camel \
+    -advertise 127.0.0.1 \
+    -bind 0.0.0.0 \
+    -log-level trace \
+    -data-dir target/consul-data \
+    -config-dir target/consul-config \
+    -enable-script-checks \
+    -ui
diff --git a/camel-example-spring-boot-health-checks/service/src/main/java/sample/service/Application.java b/camel-example-spring-boot-health-checks/service/src/main/java/sample/service/Application.java
new file mode 100644
index 0000000..41b7a2d
--- /dev/null
+++ b/camel-example-spring-boot-health-checks/service/src/main/java/sample/service/Application.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package sample.service;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+//CHECKSTYLE:OFF
+/**
+ * A sample Spring Boot application that starts the Camel routes.
+ */
+@SpringBootApplication
+public class Application {
+    /**
+     * A main method to start this application.
+     */
+    public static void main(String[] args) {
+        SpringApplication.run(Application.class, args);
+    }
+}
+//CHECKSTYLE:ON
+
diff --git a/camel-example-spring-boot-health-checks/service/src/main/resources/application.properties b/camel-example-spring-boot-health-checks/service/src/main/resources/application.properties
new file mode 100644
index 0000000..03aa57e
--- /dev/null
+++ b/camel-example-spring-boot-health-checks/service/src/main/resources/application.properties
@@ -0,0 +1,25 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+debug = false
+
+logging.level.org.springframework = INFO
+
+server.port = 8081
+
+management.endpoints.enabled-by-default = false
+management.endpoint.health.enabled = true
diff --git a/camel-example-spring-boot-hystrix/README.adoc b/camel-example-spring-boot-hystrix/README.adoc
new file mode 100644
index 0000000..c346e61
--- /dev/null
+++ b/camel-example-spring-boot-hystrix/README.adoc
@@ -0,0 +1,93 @@
+== Hystrix Example
+
+=== Introduction
+
+This example shows how to use Camel with Hystrix EIP as circuit breaker
+in Camel routes
+
+The example includes three sub maven modules that implement
+
+* client
+* service1
+* service2
+
+Where client -> service1 client -> service2 (fallback)
+
+=== Configuration
+
+Service1 is configured in the
+`+src/main/java/sample/camel/Service1Application.java+` source code.
+Service2 is configured in the
+`+src/main/resources/application.properties+` properties file.
+
+=== Build
+
+You will need to compile this example first:
+
+[source,sh]
+----
+$ mvn compile
+----
+
+=== Run the example
+
+Then using three different shells and run service1 and service2 before
+the client.
+
+[source,sh]
+----
+$ cd service1
+$ mvn compile spring-boot:run
+----
+
+When service1 is ready then start service2
+
+[source,sh]
+----
+$ cd service2
+$ mvn compile camel:run
+----
+
+And then start the client that calls service1 every second.
+
+[source,sh]
+----
+$ cd client
+$ mvn compile spring-boot:run
+----
+
+You can then stop service1 and see that the client should fallback to
+call service2 in the Hystrix EIP circuit breaker. And then start service
+1 again and see the Hystrix EIP go back to normal.
+
+=== Hystrix web console
+
+You should be able to visualize the state of the Hystrix Circuit Breaker
+in the Hystrix Web Console.
+
+You can find instructions at Hystrix how to build and run the web
+console: https://github.com/Netflix/Hystrix/wiki/Dashboard
+
+For example using gradle, you can then access the web console locally
+at: `+http://localhost:7979/hystrix-dashboard+`.
+
+The stream is accessinble from the client at:
+`+http://localhost:8080/hystrix.stream+` which you can add as stream to
+the web console and then you should see the circuit breakers. In the
+screen shot below, we have just stopped service1, so the Hystrix EIP
+will execute the fallback via network, which is calling service2
+instead. If you start service 1 again then the Hystrix EIP should go
+back to green again.
+
+image:images/hystrix-web-console.png[Hystrix Web
+Console,title="Hystrix Web Console"]
+
+=== Help and contributions
+
+If you hit any problem using Camel or have some feedback, then please
+https://camel.apache.org/support.html[let us know].
+
+We also love contributors, so
+https://camel.apache.org/contributing.html[get involved] :-)
+
+The Camel riders!
diff --git a/camel-example-spring-boot-hystrix/client/pom.xml b/camel-example-spring-boot-hystrix/client/pom.xml
new file mode 100644
index 0000000..fd4a07d
--- /dev/null
+++ b/camel-example-spring-boot-hystrix/client/pom.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>camel-example-spring-boot-hystrix</artifactId>
+        <version>3.4.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-example-spring-boot-hystrix-client</artifactId>
+    <name>Camel SB Examples :: Hystrix :: Client</name>
+    <description>An example showing how to use Hystrix EIP as circuit breaker in Camel routes</description>
+
+    <properties>
+        <spring.boot-version>${spring-boot-version}</spring.boot-version>
+    </properties>
+
+    <!-- import Spring-Boot and Camel BOM -->
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring.boot-version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.springboot</groupId>
+                <artifactId>camel-spring-boot-dependencies</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+
+        <!-- spring-boot -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+
+        <!-- camel -->
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-http-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-hystrix-starter</artifactId>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring-boot-version}</version>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/camel-example-spring-boot-hystrix/client/src/main/java/sample/camel/ClientApplication.java b/camel-example-spring-boot-hystrix/client/src/main/java/sample/camel/ClientApplication.java
new file mode 100644
index 0000000..f864ae0
--- /dev/null
+++ b/camel-example-spring-boot-hystrix/client/src/main/java/sample/camel/ClientApplication.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package sample.camel;
+
+import org.apache.camel.component.hystrix.metrics.servlet.HystrixEventStreamServlet;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.ServletRegistrationBean;
+import org.springframework.context.annotation.Bean;
+
+/**
+ * A Spring Boot application that runs the Camel Hystrix client application that calls service 1 and service 2 (as fallback)
+ */
+@SpringBootApplication
+public class ClientApplication {
+
+    /**
+     * A main method to start this application.
+     */
+    public static void main(String[] args) {
+        SpringApplication.run(ClientApplication.class, args);
+    }
+
+    @Bean
+    public HystrixEventStreamServlet hystrixServlet() {
+        return new HystrixEventStreamServlet();
+    }
+
+    @Bean
+    public ServletRegistrationBean servletRegistrationBean() {
+        return new ServletRegistrationBean(new HystrixEventStreamServlet(), "/hystrix.stream");
+    }
+
+}
diff --git a/camel-example-spring-boot-hystrix/client/src/main/java/sample/camel/ClientRoute.java b/camel-example-spring-boot-hystrix/client/src/main/java/sample/camel/ClientRoute.java
new file mode 100644
index 0000000..4f72e30
--- /dev/null
+++ b/camel-example-spring-boot-hystrix/client/src/main/java/sample/camel/ClientRoute.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package sample.camel;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.springframework.stereotype.Component;
+
+@Component
+public class ClientRoute extends RouteBuilder {
+
+    @Override
+    public void configure() {
+        // you can configure the route rule with Java DSL here
+        from("timer:trigger?period=500").streamCaching()
+            .bean("counterBean")
+            .log(" Client request: ${body}")
+            .circuitBreaker()
+                // see application.properties how hystrix is configured
+                .to("http://localhost:9090/service1")
+            //.onFallback()
+            // we use a fallback without network that provides a repsonse message immediately
+            //    .transform().simple("Fallback ${body}")
+            .onFallbackViaNetwork()
+                // we use fallback via network where we call a 2nd service
+                .to("http://localhost:7070/service2")
+            .end()
+            .log("Client response: ${body}");
+    }
+
+}
diff --git a/camel-example-spring-boot-hystrix/client/src/main/java/sample/camel/CounterBean.java b/camel-example-spring-boot-hystrix/client/src/main/java/sample/camel/CounterBean.java
new file mode 100644
index 0000000..e5dc4cd
--- /dev/null
+++ b/camel-example-spring-boot-hystrix/client/src/main/java/sample/camel/CounterBean.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package sample.camel;
+
+import org.springframework.stereotype.Component;
+
+@Component("counterBean")
+public class CounterBean {
+
+    private int counter;
+
+    public String someMethod(String body) {
+        return "" + ++counter;
+    }
+
+}
diff --git a/camel-example-spring-boot-hystrix/client/src/main/resources/META-INF/LICENSE.txt b/camel-example-spring-boot-hystrix/client/src/main/resources/META-INF/LICENSE.txt
new file mode 100644
index 0000000..6b0b127
--- /dev/null
+++ b/camel-example-spring-boot-hystrix/client/src/main/resources/META-INF/LICENSE.txt
@@ -0,0 +1,203 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
diff --git a/camel-example-spring-boot-hystrix/client/src/main/resources/META-INF/NOTICE.txt b/camel-example-spring-boot-hystrix/client/src/main/resources/META-INF/NOTICE.txt
new file mode 100644
index 0000000..2e215bf
--- /dev/null
+++ b/camel-example-spring-boot-hystrix/client/src/main/resources/META-INF/NOTICE.txt
@@ -0,0 +1,11 @@
+   =========================================================================
+   ==  NOTICE file corresponding to the section 4 d of                    ==
+   ==  the Apache License, Version 2.0,                                   ==
+   ==  in this case for the Apache Camel distribution.                    ==
+   =========================================================================
+
+   This product includes software developed by
+   The Apache Software Foundation (http://www.apache.org/).
+
+   Please read the different LICENSE files present in the licenses directory of
+   this distribution.
diff --git a/camel-example-spring-boot-hystrix/client/src/main/resources/META-INF/beans.xml b/camel-example-spring-boot-hystrix/client/src/main/resources/META-INF/beans.xml
new file mode 100644
index 0000000..4d1f3eb
--- /dev/null
+++ b/camel-example-spring-boot-hystrix/client/src/main/resources/META-INF/beans.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<beans/>
\ No newline at end of file
diff --git a/camel-example-spring-boot-hystrix/client/src/main/resources/application.properties b/camel-example-spring-boot-hystrix/client/src/main/resources/application.properties
new file mode 100644
index 0000000..6dd33cf
--- /dev/null
+++ b/camel-example-spring-boot-hystrix/client/src/main/resources/application.properties
@@ -0,0 +1,28 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+server.port=8080
+
+# configure hystrix
+# when we have more than 5 requests per 10 seconds that 50%+ fails
+# then open circuit and call fallback immediately
+camel.hystrix.circuit-breaker-request-volume-threshold=5
+camel.hystrix.circuit-breaker-error-threshold-percentage=50
+camel.hystrix.metrics-rolling-percentile-window-in-milliseconds=10000
+
+# hystrix logging
+#logging.level.org.apache.camel.component.hystrix.processor=DEBUG
diff --git a/camel-example-spring-boot-hystrix/client/src/main/resources/log4j2.properties b/camel-example-spring-boot-hystrix/client/src/main/resources/log4j2.properties
new file mode 100644
index 0000000..6f76518
--- /dev/null
+++ b/camel-example-spring-boot-hystrix/client/src/main/resources/log4j2.properties
@@ -0,0 +1,25 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+appender.stdout.type = Console
+appender.stdout.name = stdout
+appender.stdout.layout.type = PatternLayout
+appender.stdout.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
+logger.zipkin.name = org.apache.camel.zipkin
+logger.zipkin.level = DEBUG
+rootLogger.level = INFO
+rootLogger.appenderRef.stdout.ref = stdout
diff --git a/camel-example-spring-boot-hystrix/images/hystrix-web-console.png b/camel-example-spring-boot-hystrix/images/hystrix-web-console.png
new file mode 100644
index 0000000..25fcb4a
Binary files /dev/null and b/camel-example-spring-boot-hystrix/images/hystrix-web-console.png differ
diff --git a/camel-example-spring-boot-hystrix/pom.xml b/camel-example-spring-boot-hystrix/pom.xml
new file mode 100644
index 0000000..00ce7d2
--- /dev/null
+++ b/camel-example-spring-boot-hystrix/pom.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>examples</artifactId>
+        <version>3.4.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-example-spring-boot-hystrix</artifactId>
+    <packaging>pom</packaging>
+    <name>Camel SB Examples :: Hystrix</name>
+    <description>An example showing how to use Hystrix EIP as circuit breaker in Camel routes</description>
+
+    <properties>
+        <category>EIP</category>
+    </properties>
+
+    <modules>
+        <module>client</module>
+        <module>service1</module>
+        <module>service2</module>
+    </modules>
+
+</project>
diff --git a/camel-example-spring-boot-hystrix/service1/pom.xml b/camel-example-spring-boot-hystrix/service1/pom.xml
new file mode 100644
index 0000000..bc478fa
--- /dev/null
+++ b/camel-example-spring-boot-hystrix/service1/pom.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>camel-example-spring-boot-hystrix</artifactId>
+        <version>3.4.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-example-spring-boot-hystrix-service1</artifactId>
+    <name>Camel SB Examples :: Hystrix :: Service 1</name>
+    <description>An example showing how to use Hystrix EIP as circuit breaker in Camel routes</description>
+
+    <properties>
+        <spring.boot-version>${spring-boot-version}</spring.boot-version>
+    </properties>
+
+    <!-- import Spring-Boot and Camel BOM -->
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring.boot-version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.springboot</groupId>
+                <artifactId>camel-spring-boot-dependencies</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+
+        <!-- spring-boot -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
+
+        <!-- camel -->
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-hystrix-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-jetty-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-http-starter</artifactId>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring-boot-version}</version>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/camel-example-spring-boot-hystrix/service1/src/main/java/sample/camel/Service1Application.java b/camel-example-spring-boot-hystrix/service1/src/main/java/sample/camel/Service1Application.java
new file mode 100644
index 0000000..0fd7a26
--- /dev/null
+++ b/camel-example-spring-boot-hystrix/service1/src/main/java/sample/camel/Service1Application.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package sample.camel;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+//CHECKSTYLE:OFF
+/**
+ * A Spring Boot application that runs Camel service 1
+ */
+@SpringBootApplication
+public class Service1Application {
+
+    /**
+     * A main method to start this application.
+     */
+    public static void main(String[] args) {
+        SpringApplication.run(Service1Application.class, args);
+    }
+
+}
+//CHECKSTYLE:ON
diff --git a/camel-example-spring-boot-hystrix/service1/src/main/java/sample/camel/Service1Route.java b/camel-example-spring-boot-hystrix/service1/src/main/java/sample/camel/Service1Route.java
new file mode 100644
index 0000000..4d82ea0
--- /dev/null
+++ b/camel-example-spring-boot-hystrix/service1/src/main/java/sample/camel/Service1Route.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package sample.camel;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.springframework.stereotype.Component;
+
+@Component
+public class Service1Route extends RouteBuilder {
+
+    @Override
+    public void configure() throws Exception {
+        from("jetty:http://0.0.0.0:{{service1.port}}/service1").routeId("service1").streamCaching()
+            .log("Service1 request: ${body}")
+            .transform(simple("Service1-${body}"))
+            .log("Service1 response: ${body}");
+    }
+
+}
diff --git a/camel-example-spring-boot-hystrix/service1/src/main/resources/META-INF/LICENSE.txt b/camel-example-spring-boot-hystrix/service1/src/main/resources/META-INF/LICENSE.txt
new file mode 100644
index 0000000..6b0b127
--- /dev/null
+++ b/camel-example-spring-boot-hystrix/service1/src/main/resources/META-INF/LICENSE.txt
@@ -0,0 +1,203 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
diff --git a/camel-example-spring-boot-hystrix/service1/src/main/resources/META-INF/NOTICE.txt b/camel-example-spring-boot-hystrix/service1/src/main/resources/META-INF/NOTICE.txt
new file mode 100644
index 0000000..2e215bf
--- /dev/null
+++ b/camel-example-spring-boot-hystrix/service1/src/main/resources/META-INF/NOTICE.txt
@@ -0,0 +1,11 @@
+   =========================================================================
+   ==  NOTICE file corresponding to the section 4 d of                    ==
+   ==  the Apache License, Version 2.0,                                   ==
+   ==  in this case for the Apache Camel distribution.                    ==
+   =========================================================================
+
+   This product includes software developed by
+   The Apache Software Foundation (http://www.apache.org/).
+
+   Please read the different LICENSE files present in the licenses directory of
+   this distribution.
diff --git a/camel-example-spring-boot-hystrix/service1/src/main/resources/application.properties b/camel-example-spring-boot-hystrix/service1/src/main/resources/application.properties
new file mode 100644
index 0000000..94a862b
--- /dev/null
+++ b/camel-example-spring-boot-hystrix/service1/src/main/resources/application.properties
@@ -0,0 +1,25 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+# the name of Camel
+camel.springboot.name=Service1
+camel.springboot.main-run-controller=true
+
+# the port number the service will use for accepting incoming HTTP requests
+service1.port=9090
+service2.port=7070
+
diff --git a/camel-example-spring-boot-hystrix/service2/pom.xml b/camel-example-spring-boot-hystrix/service2/pom.xml
new file mode 100644
index 0000000..6cb32fd
--- /dev/null
+++ b/camel-example-spring-boot-hystrix/service2/pom.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>camel-example-spring-boot-hystrix</artifactId>
+        <version>3.4.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-example-spring-boot-hystrix-service2</artifactId>
+    <name>Camel SB Examples :: Hystrix :: Service 2</name>
+    <description>An example showing how to use Hystrix EIP as circuit breaker in Camel routes</description>
+
+    <!-- import Camel BOM -->
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
+                <artifactId>camel-bom</artifactId>
+                <version>${camel-version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+
+        <!-- camel-core -->
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-main</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-hystrix</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-undertow</artifactId>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+
+        <plugins>
+            <!-- allows the routes to be run via 'mvn camel:run' -->
+            <plugin>
+                <groupId>org.apache.camel</groupId>
+                <artifactId>camel-maven-plugin</artifactId>
+                <version>${camel-version}</version>
+                <configuration>
+                    <mainClass>sample.camel.Service2Application</mainClass>
+                </configuration>
+                <dependencies>
+                    <!-- logging -->
+                    <dependency>
+                        <groupId>org.apache.logging.log4j</groupId>
+                        <artifactId>log4j-api</artifactId>
+                        <version>${log4j2-version}</version>
+                    </dependency>
+                    <dependency>
+                        <groupId>org.apache.logging.log4j</groupId>
+                        <artifactId>log4j-core</artifactId>
+                        <version>${log4j2-version}</version>
+                    </dependency>
+                    <dependency>
+                        <groupId>org.apache.logging.log4j</groupId>
+                        <artifactId>log4j-slf4j-impl</artifactId>
+                        <version>${log4j2-version}</version>
+                    </dependency>
+                    <dependency>
+                        <groupId>org.apache.logging.log4j</groupId>
+                        <artifactId>log4j-1.2-api</artifactId>
+                        <version>${log4j2-version}</version>
+                    </dependency>
+                </dependencies>
+            </plugin>
+        </plugins>
+
+    </build>
+
+</project>
diff --git a/camel-example-spring-boot-hystrix/service2/src/main/java/sample/camel/Service2Application.java b/camel-example-spring-boot-hystrix/service2/src/main/java/sample/camel/Service2Application.java
new file mode 100644
index 0000000..aacbdbc
--- /dev/null
+++ b/camel-example-spring-boot-hystrix/service2/src/main/java/sample/camel/Service2Application.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package sample.camel;
+
+import org.apache.camel.main.Main;
+
+//CHECKSTYLE:OFF
+/**
+ * A Java main that runs Camel service 2
+ */
+public class Service2Application {
+
+    public static void main(String[] args) throws Exception {
+        Main main = new Main();
+        main.configure().addRoutesBuilder(new Service2Route());
+        main.run();
+    }
+
+}
+//CHECKSTYLE:ON
diff --git a/camel-example-spring-boot-hystrix/service2/src/main/java/sample/camel/Service2Route.java b/camel-example-spring-boot-hystrix/service2/src/main/java/sample/camel/Service2Route.java
new file mode 100644
index 0000000..8e3ff80
--- /dev/null
+++ b/camel-example-spring-boot-hystrix/service2/src/main/java/sample/camel/Service2Route.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package sample.camel;
+
+import org.apache.camel.builder.RouteBuilder;
+
+public class Service2Route extends RouteBuilder {
+
+    @Override
+    public void configure() throws Exception {
+        from("undertow:http://0.0.0.0:7070/service2").routeId("service2").streamCaching()
+                .log(" Service2 request: ${body}")
+                .transform(simple("Service2-${body}"))
+                .log("Service2 response: ${body}");
+    }
+
+}
diff --git a/camel-example-spring-boot-hystrix/service2/src/main/resources/META-INF/LICENSE.txt b/camel-example-spring-boot-hystrix/service2/src/main/resources/META-INF/LICENSE.txt
new file mode 100644
index 0000000..6b0b127
--- /dev/null
+++ b/camel-example-spring-boot-hystrix/service2/src/main/resources/META-INF/LICENSE.txt
@@ -0,0 +1,203 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
diff --git a/camel-example-spring-boot-hystrix/service2/src/main/resources/META-INF/NOTICE.txt b/camel-example-spring-boot-hystrix/service2/src/main/resources/META-INF/NOTICE.txt
new file mode 100644
index 0000000..2e215bf
--- /dev/null
+++ b/camel-example-spring-boot-hystrix/service2/src/main/resources/META-INF/NOTICE.txt
@@ -0,0 +1,11 @@
+   =========================================================================
+   ==  NOTICE file corresponding to the section 4 d of                    ==
+   ==  the Apache License, Version 2.0,                                   ==
+   ==  in this case for the Apache Camel distribution.                    ==
+   =========================================================================
+
+   This product includes software developed by
+   The Apache Software Foundation (http://www.apache.org/).
+
+   Please read the different LICENSE files present in the licenses directory of
+   this distribution.
diff --git a/camel-example-spring-boot-hystrix/service2/src/main/resources/log4j2.properties b/camel-example-spring-boot-hystrix/service2/src/main/resources/log4j2.properties
new file mode 100644
index 0000000..6f76518
--- /dev/null
+++ b/camel-example-spring-boot-hystrix/service2/src/main/resources/log4j2.properties
@@ -0,0 +1,25 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+appender.stdout.type = Console
+appender.stdout.name = stdout
+appender.stdout.layout.type = PatternLayout
+appender.stdout.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
+logger.zipkin.name = org.apache.camel.zipkin
+logger.zipkin.level = DEBUG
+rootLogger.level = INFO
+rootLogger.appenderRef.stdout.ref = stdout
diff --git a/camel-example-spring-boot-infinispan/README.adoc b/camel-example-spring-boot-infinispan/README.adoc
new file mode 100644
index 0000000..cbc1aec
--- /dev/null
+++ b/camel-example-spring-boot-infinispan/README.adoc
@@ -0,0 +1,30 @@
+== Spring Boot Example with Infinispan
+
+=== Introduction
+
+This example demonstrates how you can use Camel-Infinispan Starter component. The example is really simple: put a key/value pair in a remote cache and get the same key.
+You'll need a running Infinispan server to run this example.
+
+=== Build
+
+You can build this example using:
+
+    $ mvn package
+
+=== Run
+
+You can run this example using:
+
+    $ mvn spring-boot:run
+
+And you should see output in the console.
+
+=== Help and contributions
+
+If you hit any problem using Camel or have some feedback, then please
+https://camel.apache.org/support.html[let us know].
+
+We also love contributors, so
+https://camel.apache.org/contributing.html[get involved] :-)
+
+The Camel riders!
diff --git a/camel-example-spring-boot-infinispan/pom.xml b/camel-example-spring-boot-infinispan/pom.xml
new file mode 100644
index 0000000..df34bc6
--- /dev/null
+++ b/camel-example-spring-boot-infinispan/pom.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>examples</artifactId>
+        <version>3.4.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-example-spring-boot-infinispan</artifactId>
+    <name>Camel SB Examples :: Infinispan</name>
+    <description>An example showing the Camel Infinispan component with Spring Boot</description>
+
+    <properties>
+        <category>Cloud</category>
+        <spring.boot-version>${spring-boot-version}</spring.boot-version>
+    </properties>
+
+    <!-- Spring-Boot and Camel BOM -->
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring.boot-version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.springboot</groupId>
+                <artifactId>camel-spring-boot-dependencies</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+
+        <!-- Camel -->
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-infinispan-starter</artifactId>
+        </dependency>
+
+        <!-- Test -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-test</artifactId>
+            <version>${camel-version}</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring.boot-version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/camel-example-spring-boot-infinispan/src/main/java/org/apache/camel/example/springboot/infinispan/Application.java b/camel-example-spring-boot-infinispan/src/main/java/org/apache/camel/example/springboot/infinispan/Application.java
new file mode 100644
index 0000000..b6c8e90
--- /dev/null
+++ b/camel-example-spring-boot-infinispan/src/main/java/org/apache/camel/example/springboot/infinispan/Application.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.example.springboot.infinispan;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+// CHECKSTYLE:OFF
+@SpringBootApplication
+public class Application {
+
+    /**
+     * Main method to start the application.
+     */
+    public static void main(String[] args) {
+        SpringApplication.run(Application.class, args);
+    }
+
+}
+// CHECKSTYLE:ON
diff --git a/camel-example-spring-boot-infinispan/src/main/java/org/apache/camel/example/springboot/infinispan/CamelInfinispanRoute.java b/camel-example-spring-boot-infinispan/src/main/java/org/apache/camel/example/springboot/infinispan/CamelInfinispanRoute.java
new file mode 100644
index 0000000..f93cb98
--- /dev/null
+++ b/camel-example-spring-boot-infinispan/src/main/java/org/apache/camel/example/springboot/infinispan/CamelInfinispanRoute.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.example.springboot.infinispan;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.infinispan.InfinispanConstants;
+import org.apache.camel.component.infinispan.InfinispanOperation;
+import org.springframework.stereotype.Component;
+
+/**
+ * A simple Camel Infinispan route example using Spring-boot
+ */
+@Component
+public class CamelInfinispanRoute extends RouteBuilder {
+
+    @Override
+    public void configure() throws Exception {
+        from("timer://foo?period=10000&repeatCount=1")
+        .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.PUT)
+        .setHeader(InfinispanConstants.KEY).constant("1")
+        .setHeader(InfinispanConstants.VALUE).constant("test")
+        .to("infinispan://default")
+        .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.GET)
+        .setHeader(InfinispanConstants.KEY).constant("1")
+        .to("infinispan://default").log("Received body: ${body}");
+    }
+
+}
diff --git a/camel-example-spring-boot-infinispan/src/main/resources/application.properties b/camel-example-spring-boot-infinispan/src/main/resources/application.properties
new file mode 100644
index 0000000..e7198c6
--- /dev/null
+++ b/camel-example-spring-boot-infinispan/src/main/resources/application.properties
@@ -0,0 +1,21 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+camel.springboot.name=Infinispan
+camel.springboot.main-run-controller=true
+camel.component.infinispan.hosts=localhost:11222
+
diff --git a/camel-example-spring-boot-jira/README.adoc b/camel-example-spring-boot-jira/README.adoc
new file mode 100644
index 0000000..7de5be9
--- /dev/null
+++ b/camel-example-spring-boot-jira/README.adoc
@@ -0,0 +1,27 @@
+== Jira API Example
+
+This example shows how to use Jira Camel Endpoint to retrieve new comments, add issue and add an attachment.
+
+=== How to run
+
+You can run this example using
+
+    mvn compile exec:java
+
+=== OAuth configuration
+
+This example uses OAuth authentication mechanism, then you should set the verificationCode, privateKey, accessToken in "application.properties" file.
+
+=== More information
+
+You can find more information about Apache Camel at the website: http://camel.apache.org/
+
+=== Help and contributions
+
+If you hit any problem using Camel or have some feedback, then please
+https://camel.apache.org/support.html[let us know].
+
+We also love contributors, so
+https://camel.apache.org/contributing.html[get involved] :-)
+
+The Camel riders!
diff --git a/camel-example-spring-boot-jira/pom.xml b/camel-example-spring-boot-jira/pom.xml
new file mode 100644
index 0000000..d0fdfb3
--- /dev/null
+++ b/camel-example-spring-boot-jira/pom.xml
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>examples</artifactId>
+        <version>3.4.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-example-spring-boot-jira</artifactId>
+    <name>Camel SB Examples :: Jira</name>
+    <description>An example that uses Jira Camel API</description>
+    <packaging>jar</packaging>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <category>Beginner</category>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring-boot-version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.springboot</groupId>
+                <artifactId>camel-spring-boot-dependencies</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-jira-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+            <version>26.0-jre</version>
+        </dependency>
+
+        <!-- Spring Boot -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-tomcat</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-undertow</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+    </dependencies>
+
+    <repositories>
+        <repository>
+            <id>atlassian-public</id>
+            <url>https://packages.atlassian.com/maven-external</url>
+        </repository>
+    </repositories>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring-boot-version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>exec-maven-plugin</artifactId>
+                <version>${exec-maven-plugin-version}</version>
+                <configuration>
+                    <mainClass>org.apache.camel.example.jira.Application</mainClass>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/camel-example-spring-boot-jira/src/main/java/org/apache/camel/example/jira/AddIssueRoute.java b/camel-example-spring-boot-jira/src/main/java/org/apache/camel/example/jira/AddIssueRoute.java
new file mode 100644
index 0000000..b39a857
--- /dev/null
+++ b/camel-example-spring-boot-jira/src/main/java/org/apache/camel/example/jira/AddIssueRoute.java
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.example.jira;
+
+import java.util.Date;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import static org.apache.camel.component.jira.JiraConstants.ISSUE_PRIORITY_NAME;
+import static org.apache.camel.component.jira.JiraConstants.ISSUE_PROJECT_KEY;
+import static org.apache.camel.component.jira.JiraConstants.ISSUE_SUMMARY;
+import static org.apache.camel.component.jira.JiraConstants.ISSUE_TYPE_NAME;
+
+@Component
+public class AddIssueRoute extends RouteBuilder {
+
+    private static final Logger LOG = LoggerFactory.getLogger(AddIssueRoute.class);
+
+    @Override
+    public void configure() {
+
+        LOG.info(" >>>>>>>>>>>>>>>>>>>>> jira example - add new issue");
+        // change the fields accordingly to your target jira server
+        from("timer://foo?fixedRate=true&period=50000")
+                .setHeader(ISSUE_PROJECT_KEY, () -> "COM")
+                .setHeader(ISSUE_TYPE_NAME, () -> "Bug")
+                .setHeader(ISSUE_SUMMARY, () -> "Example Demo Bug jira " + (new Date()))
+                .setHeader(ISSUE_PRIORITY_NAME, () -> "Low")
+
+                // uncomment to add a component
+                // .setHeader(ISSUE_COMPONENTS, () -> {
+                //     List<String> comps = new ArrayList<>();
+                //     comps.add("plugins");
+                //     return comps;
+                // })
+                .setBody(constant("A small description for a test issue. "))
+                .log("  JIRA new issue: ${body}")
+                .to("jira://addIssue");
+    }
+
+}
diff --git a/camel-example-spring-boot-jira/src/main/java/org/apache/camel/example/jira/Application.java b/camel-example-spring-boot-jira/src/main/java/org/apache/camel/example/jira/Application.java
new file mode 100644
index 0000000..5d8e0f3
--- /dev/null
+++ b/camel-example-spring-boot-jira/src/main/java/org/apache/camel/example/jira/Application.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.example.jira;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+//CHECKSTYLE:OFF
+@SpringBootApplication
+public class Application {
+
+    /**
+     * A main method to start this application.
+     */
+    public static void main(String[] args) {
+        SpringApplication.run(Application.class, args);
+    }
+
+}
+//CHECKSTYLE:ON
diff --git a/camel-example-spring-boot-jira/src/main/java/org/apache/camel/example/jira/AttachFileRoute.java b/camel-example-spring-boot-jira/src/main/java/org/apache/camel/example/jira/AttachFileRoute.java
new file mode 100644
index 0000000..2b0ad52
--- /dev/null
+++ b/camel-example-spring-boot-jira/src/main/java/org/apache/camel/example/jira/AttachFileRoute.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.example.jira;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import static org.apache.camel.component.jira.JiraConstants.ISSUE_KEY;
+
+@Component
+public class AttachFileRoute extends RouteBuilder {
+
+    private static final Logger LOG = LoggerFactory.getLogger(AttachFileRoute.class);
+
+    @Override
+    public void configure() {
+        LOG.info(" >>>>>>>>>>>>>>>>>>>>> jira example - add attachment");
+        // change the fields accordinly to your target jira server
+        from("file:///A_valid_directory?fileName=my_file.png&noop=true&delay=50000")
+                .setHeader(ISSUE_KEY, () -> "MYP-13")
+                .log("  JIRA attach: ${header.camelFileName} to MYP-13")
+                .to("jira://attach");
+
+
+    }
+
+}
diff --git a/camel-example-spring-boot-jira/src/main/java/org/apache/camel/example/jira/NewCommentsRoute.java b/camel-example-spring-boot-jira/src/main/java/org/apache/camel/example/jira/NewCommentsRoute.java
new file mode 100644
index 0000000..0965764
--- /dev/null
+++ b/camel-example-spring-boot-jira/src/main/java/org/apache/camel/example/jira/NewCommentsRoute.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.example.jira;
+
+import com.atlassian.jira.rest.client.api.domain.Comment;
+import org.apache.camel.builder.RouteBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+@Component
+public class NewCommentsRoute extends RouteBuilder {
+
+    private static final Logger LOG = LoggerFactory.getLogger(NewCommentsRoute.class);
+
+    @Override
+    public void configure() {
+
+        LOG.info(" >>>>>>>>>>>>>>>>>>>>> jira example - retrieve only new comments");
+        // change the fields accordinly to your target jira server
+        from("jira://newComments?jql=RAW(project=COM AND resolution = Unresolved)&delay=4000")
+                .process(exchange -> {
+                    Comment comment = (Comment) exchange.getIn().getBody();
+                    LOG.info("new jira comment id: {} - by: {}: {}", comment.getId(), comment.getAuthor().getDisplayName(),
+                            comment.getBody());
+                })
+                .to("mock:result");
+
+    }
+
+}
diff --git a/camel-example-spring-boot-jira/src/main/resources/application.properties b/camel-example-spring-boot-jira/src/main/resources/application.properties
new file mode 100644
index 0000000..ed269f7
--- /dev/null
+++ b/camel-example-spring-boot-jira/src/main/resources/application.properties
@@ -0,0 +1,24 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+# follow the tutorial on https://developer.atlassian.com/cloud/jira/platform/jira-rest-api-oauth-authentication/
+# to create the required fields
+camel.component.jira.verification-code=test
+camel.component.jira.consumer-key=test
+camel.component.jira.access-token=test
+camel.component.jira.private-key=test
+camel.component.jira.jira-url=https\://test.com
diff --git a/camel-example-spring-boot-jira/src/main/resources/logback.xml b/camel-example-spring-boot-jira/src/main/resources/logback.xml
new file mode 100644
index 0000000..eed78b4
--- /dev/null
+++ b/camel-example-spring-boot-jira/src/main/resources/logback.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<configuration>
+  <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+    <encoder>
+      <pattern>%d{HH:mm:ss.SSS} %level %-30.30logger - %msg%n</pattern>
+    </encoder>
+  </appender>
+
+
+  <logger name="org.apache.camel" level="info" additivity="false">
+    <appender-ref ref="CONSOLE"/>
+  </logger>
+  <!--
+  <logger name="com.atlassian" level="debug" additivity="false">
+    <appender-ref ref="CONSOLE"/>
+  </logger>
+
+  <logger name="com.google" level="debug" additivity="false">
+    <appender-ref ref="CONSOLE"/>
+  </logger>
+  -->
+  <logger name="org.apache.http" level="info" additivity="false">
+    <appender-ref ref="CONSOLE"/>
+  </logger>
+  <root level="info">
+    <appender-ref ref="CONSOLE"/>
+  </root>
+</configuration>
\ No newline at end of file
diff --git a/camel-example-spring-boot-kafka-avro/README.adoc b/camel-example-spring-boot-kafka-avro/README.adoc
new file mode 100644
index 0000000..189d23d
--- /dev/null
+++ b/camel-example-spring-boot-kafka-avro/README.adoc
@@ -0,0 +1,74 @@
+== Camel Kafka example
+
+=== Introduction
+
+An example which shows how to integrate Camel with Kafka avro  to make use of avro serialize/deserializer
+
+start confluent schema registry but before this kafka server should be started:
+./bin/schema-registry-start etc/schema-registry/schema-registry.properties
+
+register_schema.py is simple custom python script to register the employee.avsc schema in confluent schema registry
+python3.6 src/main/resources/register_schema.py http://localhost:8081 employees-avro src/main/resources/avro/employee.avsc
+Schema Registry URL: http://localhost:8081
+Topic: employees-avro
+Schema file: src/main/resources/avro/employee.avsc
+Success
+
+
+[camel-example-kafka-avro]$ curl --noproxy '*' http://localhost:8081/subjects/employees-avro-value/versions/1
+{"subject":"employees-avro-value","version":1,"id":2,"schema":"{\"type\":\"record\",\"name\":\"Employee\",\"namespace\":\"com.example.kafkatutorials\",\"fields\":[{\"name\":\"firstName\",\"type\":\"string\"},{\"name\":\"lastName\",\"type\":\"string\"},{\"name\":\"birthDate\",\"type\":\"long\"}]}"}
+
+To delete:
+curl -X DELETE http://localhost:8081/subjects/topic-value/versions/version-no
+
+=== Preparing Kafka
+
+This example requires that Kafka Server is up and running.
+
+    $ ${KAFKA}/bin/zookeeper-server-start.sh ${KAFKA}/config/zookeeper.properties
+    $ ${KAFKA}/bin/kafka-server-start.sh ${KAFKA}/config/server.properties
+
+You will need to create following topics before you run the examples.
+
+On windows run
+
+    $ ${KAFKA}/bin/kafka-topics.bat --create --zookeeper <zookeeper host ip>:<port> --replication-factor 1 --partitions 1 --topic employees-avro
+
+On linux run
+    
+    $ ${KAFKA}/bin/kafka-topics.sh --create --zookeeper <zookeeper host ip>:<port> --replication-factor 1 --partitions 1 --topic employees-avro
+
+=== Build
+
+You will need to compile this example first:
+
+    $ mvn compile
+
+=== Run
+
+Run the consumer first in separate shell 
+
+    $ mvn spring-boot:run
+
+camel-context.xml file has both kafka-producer and kafka-consumer routes defined to produce/consume messages to topic my-topic.
+
+Press `Ctrl-C` to exit.
+
+=== Configuration
+
+You can configure the details in the file:
+  `src/main/resources/application.properties`
+
+You can enable verbose logging by adjusting the `src/main/resources/log4j2.properties`
+  file as documented in the file.
+
+=== Help and contributions
+
+If you hit any problem using Camel or have some feedback, 
+then please https://camel.apache.org/support.html[let us know].
+
+We also love contributors, 
+so https://camel.apache.org/contributing.html[get involved] :-)
+
+The Camel riders!
+
diff --git a/camel-example-spring-boot-kafka-avro/pom.xml b/camel-example-spring-boot-kafka-avro/pom.xml
new file mode 100644
index 0000000..16fc7d5
--- /dev/null
+++ b/camel-example-spring-boot-kafka-avro/pom.xml
@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>examples</artifactId>
+        <version>3.4.0-SNAPSHOT</version>
+    </parent>
+
+  <artifactId>camel-example-spring-boot-kafka-avro</artifactId>
+  <name>Camel SB Examples :: Kafka :: Avro</name>
+  <description>An example for Kafka avro</description>
+
+    <properties>
+        <category>Messaging</category>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <spring.boot-version>${spring-boot-version}</spring.boot-version>
+    </properties>
+    
+    <!--necessary to resolve confluent dependencies-->
+    <repositories>
+        <repository>
+            <id>confluent</id>
+            <url>https://packages.confluent.io/maven/</url>
+        </repository>
+    </repositories>
+
+    <dependencyManagement>
+         <dependencies>
+            <!-- Spring Boot BOM -->
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring.boot-version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <!-- Camel BOM -->
+            <dependency>
+                <groupId>org.apache.camel.springboot</groupId>
+                <artifactId>camel-spring-boot-dependencies</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement> 
+
+    <dependencies>
+       
+        <!-- Spring Boot -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-tomcat</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-undertow</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-actuator</artifactId>
+        </dependency>
+
+        <!-- Camel -->
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-stream-starter</artifactId>
+        </dependency>
+
+        <!-- camel -->
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-core</artifactId>
+            <version>${camel-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-kafka</artifactId>
+            <version>${camel-version}</version>
+        </dependency>
+         <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-support</artifactId>
+            <version>${camel-version}</version>
+        </dependency>
+         <dependency>
+           <groupId>org.apache.camel</groupId>
+           <artifactId>camel-avro</artifactId>
+           <version>${camel-version}</version>
+         </dependency> 
+        <dependency>
+           <groupId>io.confluent</groupId>
+           <artifactId>kafka-avro-serializer</artifactId>
+           <version>${kafka-avro-serializer-version}</version>
+        </dependency> 
+    </dependencies>
+
+    <build>
+        <plugins>
+         <!--Avro plugin to  generated classes from schema-->
+            <!-- <plugin>
+                <groupId>org.apache.avro</groupId>
+                <artifactId>avro-maven-plugin</artifactId>
+                <version>${avro-version}</version>
+                <executions>
+                    <execution>
+                        <phase>generate-sources</phase>
+                        <goals>
+                            <goal>schema</goal>
+                            <goal>protocol</goal>
+                            <goal>idl-protocol</goal>
+                        </goals>
+                        <configuration>
+                            <sourceDirectory>${project.basedir}/src/main/resources/avro</sourceDirectory>
+                            <outputDirectory>${project.basedir}/src/main/java/</outputDirectory>
+                            <stringType>String</stringType>
+                            <createSetters>false</createSetters>
+                            <enableDecimalLogicalType>true</enableDecimalLogicalType>
+                            <fieldVisibility>private</fieldVisibility>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>  -->
+            <!--force discovery of generated classes-->
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>build-helper-maven-plugin</artifactId>
+                <version>3.0.0</version>
+                <executions>
+                    <execution>
+                        <id>add-source</id>
+                        <phase>generate-sources</phase>
+                        <goals>
+                            <goal>add-source</goal>
+                        </goals>
+                        <configuration>
+                            <sources>
+                                <source>target/generated-sources/avro</source>
+                            </sources>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring.boot-version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+    </project>
diff --git a/camel-example-spring-boot-kafka-avro/src/main/java/org/apache/camel/example/kafka/avro/Application.java b/camel-example-spring-boot-kafka-avro/src/main/java/org/apache/camel/example/kafka/avro/Application.java
new file mode 100644
index 0000000..de96d48
--- /dev/null
+++ b/camel-example-spring-boot-kafka-avro/src/main/java/org/apache/camel/example/kafka/avro/Application.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.example.kafka.avro;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.ImportResource;
+
+//CHECKSTYLE:OFF
+/**
+ * A sample Spring Boot application that starts the Camel routes.
+ */
+@SpringBootApplication
+@ImportResource({"classpath:spring/camel-context.xml"})
+public class Application {
+                                                                                                                                                                                          
+    // must have a main method spring-boot can run
+    public static void main(String[] args) {
+        SpringApplication.run(Application.class, args);
+    }
+
+}
+//CHECKSTYLE:ON
diff --git a/camel-example-spring-boot-kafka-avro/src/main/java/org/apache/camel/example/kafka/avro/AvroRouteBuilder.java b/camel-example-spring-boot-kafka-avro/src/main/java/org/apache/camel/example/kafka/avro/AvroRouteBuilder.java
new file mode 100644
index 0000000..e1c116a
--- /dev/null
+++ b/camel-example-spring-boot-kafka-avro/src/main/java/org/apache/camel/example/kafka/avro/AvroRouteBuilder.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.example.kafka.avro;
+
+import org.apache.camel.builder.RouteBuilder;
+
+public class AvroRouteBuilder extends RouteBuilder {
+
+    @Override
+    public void configure() throws Exception {
+
+        from("timer://foo?period={{period}}")
+        .setBody(constant("Hi This is Avro example"))
+        .process(new KafkaAvroMessageProcessor())
+            .to("kafka:{{producer.topic}}?brokers={{kafka.bootstrap.url}}&keySerializerClass=org.apache.kafka.common.serialization.StringSerializer&serializerClass=org.apache.camel.example.kafka.avro.CustomKafkaAvroSerializer");
+
+        from("timer://foo?period={{period}}")
+        .from("kafka:{{consumer.topic}}?brokers={{kafka.bootstrap.url}}&keyDeserializer=org.apache.kafka.common.serialization.StringDeserializer&valueDeserializer=org.apache.camel.example.kafka.avro.CustomKafkaAvroDeserializer")
+         .process(new KafkaAvroMessageConsumerProcessor())
+            .log("${body}");
+    }
+}
diff --git a/camel-example-spring-boot-kafka-avro/src/main/java/org/apache/camel/example/kafka/avro/CustomKafkaAvroDeserializer.java b/camel-example-spring-boot-kafka-avro/src/main/java/org/apache/camel/example/kafka/avro/CustomKafkaAvroDeserializer.java
new file mode 100644
index 0000000..30adb0a
--- /dev/null
+++ b/camel-example-spring-boot-kafka-avro/src/main/java/org/apache/camel/example/kafka/avro/CustomKafkaAvroDeserializer.java
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.example.kafka.avro;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import io.confluent.common.config.ConfigException;
+import io.confluent.kafka.schemaregistry.client.CachedSchemaRegistryClient;
+import io.confluent.kafka.serializers.AbstractKafkaAvroDeserializer;
+import io.confluent.kafka.serializers.KafkaAvroDeserializerConfig;
+import org.apache.kafka.common.serialization.Deserializer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class CustomKafkaAvroDeserializer extends AbstractKafkaAvroDeserializer  implements Deserializer<Object> {
+    private static final Logger LOG = LoggerFactory.getLogger(CustomKafkaAvroDeserializer.class);
+    private static final String SCHEMA_REGISTRY_URL = "http://localhost:8081";
+
+    @Override
+    public void configure(KafkaAvroDeserializerConfig config) {
+        LOG.info("ENTER CustomKafkaAvroDeserializer  : configure method ");
+        LOG.info("ENTER CustomKafkaAvroDeserializer  : SCHEMA_REGISTRY_URL " + SCHEMA_REGISTRY_URL);
+
+        try {
+
+            final List<String> schemas = Collections.singletonList(SCHEMA_REGISTRY_URL);
+            this.schemaRegistry = new CachedSchemaRegistryClient(schemas, Integer.MAX_VALUE);
+            this.useSpecificAvroReader = true;
+
+        } catch (ConfigException e) {
+            e.printStackTrace();
+            throw new org.apache.kafka.common.config.ConfigException(e.getMessage());
+        }
+        LOG.info("EXIT CustomKafkaAvroDeserializer  : configure method ");
+
+    }
+
+    @Override
+    public void configure(Map<String, ?> configs, boolean isKey) {
+        configure(null);
+    }
+
+    @Override
+    public Object deserialize(String s, byte[] bytes) {
+        LOG.info("ENTER CustomKafkaAvroDeserializer  : deserialize method ");
+        return deserialize(bytes).toString();
+    }
+  
+    @Override
+    public void close() {
+    }
+}
diff --git a/camel-example-spring-boot-kafka-avro/src/main/java/org/apache/camel/example/kafka/avro/CustomKafkaAvroSerializer.java b/camel-example-spring-boot-kafka-avro/src/main/java/org/apache/camel/example/kafka/avro/CustomKafkaAvroSerializer.java
new file mode 100644
index 0000000..8b30404
--- /dev/null
+++ b/camel-example-spring-boot-kafka-avro/src/main/java/org/apache/camel/example/kafka/avro/CustomKafkaAvroSerializer.java
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.example.kafka.avro;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import io.confluent.kafka.schemaregistry.client.CachedSchemaRegistryClient;
+import io.confluent.kafka.serializers.AbstractKafkaAvroSerializer;
+import io.confluent.kafka.serializers.AvroSchemaUtils;
+import io.confluent.kafka.serializers.KafkaAvroSerializerConfig;
+import org.apache.kafka.common.config.ConfigException;
+import org.apache.kafka.common.serialization.Serializer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class CustomKafkaAvroSerializer extends AbstractKafkaAvroSerializer  implements Serializer<Object> {
+
+    private static final Logger LOG = LoggerFactory.getLogger(CustomKafkaAvroSerializer.class);
+    private static final String SCHEMA_REGISTRY_URL = "http://localhost:8081";
+    private boolean useSpecificAvroReader = true;
+    private boolean isKey;
+
+    @Override
+    public void close() {
+    }
+
+
+    @Override
+    public byte[] serialize(String topic, Object record) {
+        LOG.info("****************serialize*******************************");
+        LOG.info("Serialize method: topic " + topic);
+        LOG.info("Serialize method: byte " + record);
+        return serializeImpl(
+             getSubjectName(topic, isKey, record, AvroSchemaUtils.getSchema(record)), record);
+    }
+
+    @Override
+    public void configure(KafkaAvroSerializerConfig config) {
+        LOG.info("ENTER CustomKafkaAvroDeserializer  : configure method ");
+        LOG.info("ENTER CustomKafkaAvroDeserializer  : SCHEMA_REGISTRY_URL " + SCHEMA_REGISTRY_URL);
+
+        try {
+            final List<String> schemas = Collections.singletonList(SCHEMA_REGISTRY_URL);
+            this.schemaRegistry = new CachedSchemaRegistryClient(schemas, Integer.MAX_VALUE);
+            this.useSpecificAvroReader = true;
+
+        } catch (ConfigException e) {
+            e.printStackTrace();
+            throw new org.apache.kafka.common.config.ConfigException(e.getMessage());
+        }
+        LOG.info("EXIT CustomKafkaAvroserializer  : configure method ");
+    }
+
+
+    @Override
+    public void configure(Map<String, ?> arg0, boolean arg1) {
+        configure(null);
+    }
+}
diff --git a/camel-example-spring-boot-kafka-avro/src/main/java/org/apache/camel/example/kafka/avro/KafkaAvroMessageConsumerProcessor.java b/camel-example-spring-boot-kafka-avro/src/main/java/org/apache/camel/example/kafka/avro/KafkaAvroMessageConsumerProcessor.java
new file mode 100644
index 0000000..fd06098
--- /dev/null
+++ b/camel-example-spring-boot-kafka-avro/src/main/java/org/apache/camel/example/kafka/avro/KafkaAvroMessageConsumerProcessor.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.example.kafka.avro;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class KafkaAvroMessageConsumerProcessor  implements Processor {
+    private static final Logger LOG = LoggerFactory.getLogger(KafkaAvroMessageConsumerProcessor.class);
+
+    public void process(Exchange exchange) throws Exception {
+        String body = exchange.getIn().getBody(String.class);
+        LOG.info("KafkaAvroMessageConsumerProcessor:" + body);
+    }
+
+}
diff --git a/camel-example-spring-boot-kafka-avro/src/main/java/org/apache/camel/example/kafka/avro/KafkaAvroMessageProcessor.java b/camel-example-spring-boot-kafka-avro/src/main/java/org/apache/camel/example/kafka/avro/KafkaAvroMessageProcessor.java
new file mode 100644
index 0000000..a4bb64a
--- /dev/null
+++ b/camel-example-spring-boot-kafka-avro/src/main/java/org/apache/camel/example/kafka/avro/KafkaAvroMessageProcessor.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.example.kafka.avro;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class KafkaAvroMessageProcessor  implements Processor {
+    private static final Logger LOG = LoggerFactory.getLogger(KafkaAvroProcessor.class);
+    public void process(Exchange exc) throws Exception {
+        //un-comment this after build
+       /* Employee emp = Employee.newBuilder()
+        .setFirstName("kakarla")
+        .setLastName("Ranjith")
+        .setBirthDate(new java.util.Date().getTime())
+        .build();
+        exc.getOut().setBody(emp);*/
+    }
+
+}
diff --git a/camel-example-spring-boot-kafka-avro/src/main/java/org/apache/camel/example/kafka/avro/KafkaAvroProcessor.java b/camel-example-spring-boot-kafka-avro/src/main/java/org/apache/camel/example/kafka/avro/KafkaAvroProcessor.java
new file mode 100644
index 0000000..6c0c0d0
--- /dev/null
+++ b/camel-example-spring-boot-kafka-avro/src/main/java/org/apache/camel/example/kafka/avro/KafkaAvroProcessor.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.example.kafka.avro;
+
+import java.util.List;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.component.kafka.KafkaConstants;
+import org.apache.kafka.clients.producer.RecordMetadata;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class KafkaAvroProcessor implements Processor {
+    private static final Logger LOG = LoggerFactory.getLogger(KafkaAvroProcessor.class);
+    
+    @Override
+    public void process(Exchange exc) throws Exception {
+        @SuppressWarnings("unchecked")
+        List<RecordMetadata> recordMetaData1 = (List<RecordMetadata>) exc.getIn().getHeader(KafkaConstants.KAFKA_RECORDMETA);
+        for (RecordMetadata rd: recordMetaData1) {
+            LOG.info("producer partition is:"  + rd.partition());
+            LOG.info("producer partition message is:"  + rd.toString());
+        }
+    }
+}
diff --git a/camel-example-spring-boot-kafka-avro/src/main/resources/application.properties b/camel-example-spring-boot-kafka-avro/src/main/resources/application.properties
new file mode 100644
index 0000000..5520947
--- /dev/null
+++ b/camel-example-spring-boot-kafka-avro/src/main/resources/application.properties
@@ -0,0 +1,32 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+## Modify value of kafka.host and kafka.port before running application
+
+kafka.bootstrap.url=localhost:9092,localhost:9093,localhost:9094
+
+# Producer properties
+producer.topic=employees-avro
+
+
+# Consumer properties 
+consumer.topic=employees-avro
+consumer.group=kafkaGroup
+consumer.maxPollRecords=5000
+
+partitionValue=0
+period=1000
diff --git a/camel-example-spring-boot-kafka-avro/src/main/resources/avro/employee.avsc b/camel-example-spring-boot-kafka-avro/src/main/resources/avro/employee.avsc
new file mode 100644
index 0000000..cd34a96
--- /dev/null
+++ b/camel-example-spring-boot-kafka-avro/src/main/resources/avro/employee.avsc
@@ -0,0 +1,19 @@
+{
+  "type": "record",
+  "name": "Employee",
+  "namespace": "com.example.kafkatutorials",
+  "fields": [
+    {
+      "name": "firstName",
+      "type": "string"
+    },
+    {
+      "name": "lastName",
+      "type": "string"
+    },
+    {
+      "name": "birthDate",
+      "type": "long"
+    }
+  ]
+}
diff --git a/camel-example-spring-boot-kafka-avro/src/main/resources/log4j2.properties b/camel-example-spring-boot-kafka-avro/src/main/resources/log4j2.properties
new file mode 100644
index 0000000..d406a9f
--- /dev/null
+++ b/camel-example-spring-boot-kafka-avro/src/main/resources/log4j2.properties
@@ -0,0 +1,23 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+appender.out.type = Console
+appender.out.name = out
+appender.out.layout.type = PatternLayout
+appender.out.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
+rootLogger.level = INFO
+rootLogger.appenderRef.out.ref = out
diff --git a/camel-example-spring-boot-kafka-avro/src/main/resources/register_schema.py b/camel-example-spring-boot-kafka-avro/src/main/resources/register_schema.py
new file mode 100644
index 0000000..f8e122b
--- /dev/null
+++ b/camel-example-spring-boot-kafka-avro/src/main/resources/register_schema.py
@@ -0,0 +1,48 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+import os
+import sys
+
+import requests
+
+schema_registry_url = sys.argv[1]
+topic = sys.argv[2]
+schema_file = sys.argv[3]
+
+aboslute_path_to_schema = os.path.join(os.getcwd(), schema_file)
+
+print("Schema Registry URL: " + schema_registry_url)
+print("Topic: " + topic)
+print("Schema file: " + schema_file)
+print
+
+with open(aboslute_path_to_schema, 'r') as content_file:
+    schema = content_file.read()
+
+payload = "{ \"schema\": \"" \
+          + schema.replace("\"", "\\\"").replace("\t", "").replace("\n", "") \
+          + "\" }"
+
+url = schema_registry_url + "/subjects/" + topic + "-value/versions"
+headers = {"Content-Type": "application/vnd.schemaregistry.v1+json"}
+
+r = requests.post(url, headers=headers, data=payload)
+if r.status_code == requests.codes.ok:
+    print("Success")
+else:
+    r.raise_for_status()
diff --git a/camel-example-spring-boot-kafka-avro/src/main/resources/spring/camel-context.xml b/camel-example-spring-boot-kafka-avro/src/main/resources/spring/camel-context.xml
new file mode 100644
index 0000000..886674f
--- /dev/null
+++ b/camel-example-spring-boot-kafka-avro/src/main/resources/spring/camel-context.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<!-- START SNIPPET: e1 -->
+<beans xmlns="http://www.springframework.org/schema/beans"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="           http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd            http://camel.apache.org/schema/spring       http://camel.apache.org/schema/spring/camel-spring.xsd">
+    <!-- END SNIPPET: e1 -->
+    <!-- START SNIPPET: e2 -->
+    <bean class="org.apache.camel.example.kafka.avro.AvroRouteBuilder" id="avroRouteBuilder"/>
+    <!-- END SNIPPET: e2 -->
+    <!-- START SNIPPET: e3 -->
+    <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
+        <propertyPlaceholder id="placeholder"
+			location="classpath:application.properties" />
+		<routeBuilder ref="avroRouteBuilder" />
+    </camelContext>
+    <!-- END SNIPPET: e3 -->
+</beans>
diff --git a/camel-example-spring-boot-kafka-offsetrepository/README.adoc b/camel-example-spring-boot-kafka-offsetrepository/README.adoc
new file mode 100644
index 0000000..098bc6e
--- /dev/null
+++ b/camel-example-spring-boot-kafka-offsetrepository/README.adoc
@@ -0,0 +1,62 @@
+== Camel Kafka example
+
+=== Introduction
+
+An example which shows how to integrate Camel with Kafka offsetRepository(consumer) to use in order to locally store the offset of each partition of the topic
+
+This project consists of the following examples:
+
+  1. Producer triggers with a timer and produces messages to the configured topic partition
+  2. Consumer consumes from configured topic by reading the offset value from locally stored file.
+
+=== Preparing Kafka
+
+This example requires that Kafka Server is up and running.
+
+    $ ${KAFKA}/bin/zookeeper-server-start.sh ${KAFKA}/config/zookeeper.properties
+
+    $ ${KAFKA}/bin/kafka-server-start.sh ${KAFKA}/config/server.properties
+
+You will need to create following topics before you run the examples.
+
+On windows run
+
+    $ ${KAFKA}/bin/kafka-topics.bat --create --zookeeper <zookeeper host ip>:<port> --replication-factor 1 --partitions 1 --topic my-topic
+
+On linux run
+ 
+    $ ${KAFKA}/bin/kafka-topics.sh --create --zookeeper <zookeeper host ip>:<port> --replication-factor 1 --partitions 1 --topic my-topic
+
+=== Build
+
+You will need to compile this example first:
+
+    $ mvn compile
+
+=== Run
+
+Run the consumer first in separate shell 
+
+    $ mvn spring-boot:run
+
+camel-context.xml file has both kafka-producer and kafka-consumer routes defined to produce/consume messages to topic my-topic.
+
+Press `Ctrl-C` to exit.
+
+=== Configuration
+
+You can configure the details in the file:
+  `src/main/resources/application.properties`
+
+You can enable verbose logging by adjusting the `src/main/resources/log4j2.properties`
+  file as documented in the file.
+
+=== Help and contributions
+
+If you hit any problem using Camel or have some feedback, 
+then please https://camel.apache.org/support.html[let us know].
+
+We also love contributors, 
+so https://camel.apache.org/contributing.html[get involved] :-)
+
+The Camel riders!
diff --git a/camel-example-spring-boot-kafka-offsetrepository/pom.xml b/camel-example-spring-boot-kafka-offsetrepository/pom.xml
new file mode 100644
index 0000000..6739d0d
--- /dev/null
+++ b/camel-example-spring-boot-kafka-offsetrepository/pom.xml
@@ -0,0 +1,130 @@
+<?xml version="1.0"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>examples</artifactId>
+        <version>3.4.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-example-spring-boot-kafka-offsetrepository</artifactId>
+    <name>Camel SB Examples :: Kafka :: offsetrepository</name>
+    <description>An example for Kafka offsetrepository</description>
+
+    <properties>
+        <category>Messaging</category>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <spring.boot-version>${spring-boot-version}</spring.boot-version>
+    </properties>
+
+    <dependencyManagement>
+         <dependencies>
+            <!-- Spring Boot BOM -->
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring.boot-version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <!-- Camel BOM -->
+            <dependency>
+                <groupId>org.apache.camel.springboot</groupId>
+                <artifactId>camel-spring-boot-dependencies</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement> 
+
+    <dependencies>
+       
+        <!-- Spring Boot -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-tomcat</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-undertow</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-actuator</artifactId>
+        </dependency>
+
+        <!-- Camel -->
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-stream-starter</artifactId>
+        </dependency>
+
+        <!-- camel -->
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-core</artifactId>
+            <version>${camel-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-kafka</artifactId>
+            <version>${camel-version}</version>
+        </dependency>
+         <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-support</artifactId>
+            <version>${camel-version}</version>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring-boot-version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/camel-example-spring-boot-kafka-offsetrepository/src/main/java/org/apache/camel/example/kafka/offsetRepository/KafkaProcessor.java b/camel-example-spring-boot-kafka-offsetrepository/src/main/java/org/apache/camel/example/kafka/offsetRepository/KafkaProcessor.java
new file mode 100644
index 0000000..71c9f2c
--- /dev/null
+++ b/camel-example-spring-boot-kafka-offsetrepository/src/main/java/org/apache/camel/example/kafka/offsetRepository/KafkaProcessor.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.example.kafka.offsetRepository;
+
+import java.util.List;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.component.kafka.KafkaConstants;
+import org.apache.kafka.clients.producer.RecordMetadata;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class KafkaProcessor implements Processor {
+    private static final Logger LOG = LoggerFactory.getLogger(KafkaProcessor.class);
+    
+    @Override
+    public void process(Exchange exc) throws Exception {
+        @SuppressWarnings("unchecked")
+        List<RecordMetadata> recordMetaData1 = (List<RecordMetadata>) exc.getIn().getHeader(KafkaConstants.KAFKA_RECORDMETA);
+        for (RecordMetadata rd: recordMetaData1) {
+            LOG.info("producer partition is:"  + rd.partition());
+        }
+    }
+}
diff --git a/camel-example-spring-boot-kafka-offsetrepository/src/main/java/org/apache/camel/example/kafka/offsetRepository/OffsetRepoApp.java b/camel-example-spring-boot-kafka-offsetrepository/src/main/java/org/apache/camel/example/kafka/offsetRepository/OffsetRepoApp.java
new file mode 100644
index 0000000..1f117ff
--- /dev/null
+++ b/camel-example-spring-boot-kafka-offsetrepository/src/main/java/org/apache/camel/example/kafka/offsetRepository/OffsetRepoApp.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.example.kafka.offsetRepository;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.ImportResource;
+
+//CHECKSTYLE:OFF
+/**
+ * A sample Spring Boot application that starts the Camel routes.
+ */
+@SpringBootApplication
+@ImportResource({"classpath:spring/camel-context.xml"})
+public class OffsetRepoApp {
+                                                                                                                                                                                          
+    // must have a main method spring-boot can run
+    public static void main(String[] args) {
+        SpringApplication.run(OffsetRepoApp.class, args);
+    }
+
+}
+//CHECKSTYLE:ON
diff --git a/camel-example-spring-boot-kafka-offsetrepository/src/main/resources/application.properties b/camel-example-spring-boot-kafka-offsetrepository/src/main/resources/application.properties
new file mode 100644
index 0000000..a1cada9
--- /dev/null
+++ b/camel-example-spring-boot-kafka-offsetrepository/src/main/resources/application.properties
@@ -0,0 +1,33 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+## Modify value of kafka.host and kafka.port before running application
+
+kafka.bootstrap.url=localhost:9092,localhost:9093,localhost:9094
+fileOffsetrepoPath=src/main/resources/offsetStateRepo.dat
+
+# Producer properties
+producer.topic=my-topic
+
+
+# Consumer properties 
+consumer.topic=my-topic
+consumer.group=kafkaGroup
+consumer.maxPollRecords=5000
+
+partitionValue=0
+period=1000
diff --git a/camel-example-spring-boot-kafka-offsetrepository/src/main/resources/log4j2.properties b/camel-example-spring-boot-kafka-offsetrepository/src/main/resources/log4j2.properties
new file mode 100644
index 0000000..d406a9f
--- /dev/null
+++ b/camel-example-spring-boot-kafka-offsetrepository/src/main/resources/log4j2.properties
@@ -0,0 +1,23 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+appender.out.type = Console
+appender.out.name = out
+appender.out.layout.type = PatternLayout
+appender.out.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
+rootLogger.level = INFO
+rootLogger.appenderRef.out.ref = out
diff --git a/camel-example-spring-boot-kafka-offsetrepository/src/main/resources/offsetStateRepo.dat b/camel-example-spring-boot-kafka-offsetrepository/src/main/resources/offsetStateRepo.dat
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/camel-example-spring-boot-kafka-offsetrepository/src/main/resources/offsetStateRepo.dat
@@ -0,0 +1 @@
+
diff --git a/camel-example-spring-boot-kafka-offsetrepository/src/main/resources/spring/camel-context.xml b/camel-example-spring-boot-kafka-offsetrepository/src/main/resources/spring/camel-context.xml
new file mode 100644
index 0000000..822f1a2
--- /dev/null
+++ b/camel-example-spring-boot-kafka-offsetrepository/src/main/resources/spring/camel-context.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<!-- START SNIPPET: e1 -->
+<beans xmlns="http://www.springframework.org/schema/beans"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="           http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd            http://camel.apache.org/schema/spring       http://camel.apache.org/schema/spring/camel-spring.xsd">
+    <!-- END SNIPPET: e1 -->
+    <!-- START SNIPPET: e2 -->
+    <bean class="org.apache.camel.component.kafka.KafkaComponent" id="kafka">
+        <property name="brokers" value="${kafka.bootstrap.url}"/>
+    </bean>
+    <bean class="java.io.File" id="filerepo">
+        <constructor-arg type="java.lang.String" value="${fileOffsetrepoPath}"/>
+    </bean>
+    <bean class="org.apache.camel.impl.engine.FileStateRepository"
+        factory-method="fileStateRepository" id="offsetRepo" init-method="doStart">
+        <constructor-arg ref="filerepo"/>
+    </bean>
+    <bean
+        class="org.apache.camel.example.kafka.offsetRepository.KafkaProcessor" id="kafkaProcessor"/>
+    <!-- END SNIPPET: e2 -->
+    <!-- START SNIPPET: e3 -->
+    <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
+        <route id="consumer-route1">
+            <from id="kafka-consumer-1" uri="kafka:{{consumer.topic}}?groupId={{consumer.group}}&amp;offsetRepository=##offsetRepo"/>
+            <log id="route-log-1" message="consumer >>> ${body}"/>
+        </route>
+        <route id="producer-route-1">
+            <from id="route-timer-1" uri="timer://foo?period={{period}}"/>
+            <setBody id="route-setBody-1">
+                <simple>This is first producer: ${id}</simple>
+            </setBody>
+            <to id="_kafka1" uri="kafka:{{producer.topic}}?partitionKey={{partitionValue}}&amp;key=${id}"/>
+            <log id="route-log-producer-1" message="producer >>> ${body}"/>
+            <bean id="_bean1" ref="kafkaProcessor"/>
+        </route>
+    </camelContext>
+    <!-- END SNIPPET: e3 -->
+</beans>
diff --git a/camel-example-spring-boot-master/pom.xml b/camel-example-spring-boot-master/pom.xml
new file mode 100644
index 0000000..8cb718c
--- /dev/null
+++ b/camel-example-spring-boot-master/pom.xml
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>examples</artifactId>
+        <version>3.4.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-example-spring-boot-master</artifactId>
+    <name>Camel SB Examples :: Master</name>
+    <description>An example showing how to work with Camel's Master component and Spring Boot</description>
+    <packaging>jar</packaging>
+
+    <properties>
+        <category>Clustering</category>
+
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <spring.boot-version>${spring-boot-version}</spring.boot-version>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <!-- Spring Boot BOM -->
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring.boot-version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <!-- Camel BOM -->
+            <dependency>
+                <groupId>org.apache.camel.springboot</groupId>
+                <artifactId>camel-spring-boot-dependencies</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-core-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-master-starter</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring-boot-version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/camel-example-spring-boot-master/readme.adoc b/camel-example-spring-boot-master/readme.adoc
new file mode 100644
index 0000000..60f44d8
--- /dev/null
+++ b/camel-example-spring-boot-master/readme.adoc
@@ -0,0 +1,27 @@
+== Camel Clustered Route Controller Example Spring Boot
+
+This example shows how to work with a simple Apache Camel application using Spring Boot and a Master component.
+
+=== How to run
+
+1. build the project:
+
+    mvn clean package
+
+2. in a separate shell, run the first camel node
+
+    mvn spring-boot:run
+
+3. in a separate shell, run the second camel node
+
+    mvn spring-boot:run
+
+=== Help and contributions
+
+If you hit any problem using Camel or have some feedback, then please
+https://camel.apache.org/support.html[let us know].
+
+We also love contributors, so
+https://camel.apache.org/contributing.html[get involved] :-)
+
+The Camel riders!
diff --git a/camel-example-spring-boot-master/src/main/java/org/apache/camel/examples/master/MasterNode.java b/camel-example-spring-boot-master/src/main/java/org/apache/camel/examples/master/MasterNode.java
new file mode 100644
index 0000000..1985a82
--- /dev/null
+++ b/camel-example-spring-boot-master/src/main/java/org/apache/camel/examples/master/MasterNode.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.examples.master;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+//CHECKSTYLE:OFF
+/**
+ * A sample Spring Boot application that starts the Camel routes.
+ */
+@SpringBootApplication
+public class MasterNode {
+
+    /**
+     * A main method to start this application.
+     */
+    public static void main(String[] args) {
+        SpringApplication.run(MasterNode.class, args);
+    }
+}
+//CHECKSTYLE:ON
diff --git a/camel-example-spring-boot-master/src/main/java/org/apache/camel/examples/master/MasterNodeConfiguration.java b/camel-example-spring-boot-master/src/main/java/org/apache/camel/examples/master/MasterNodeConfiguration.java
new file mode 100644
index 0000000..8746a4d
--- /dev/null
+++ b/camel-example-spring-boot-master/src/main/java/org/apache/camel/examples/master/MasterNodeConfiguration.java
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.examples.master;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class MasterNodeConfiguration {
+
+    @Bean
+    public RouteBuilder routeBuilder() {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                // This route is configured to be local (see application.properties)
+                // so it will be started regardless of the leadership status if
+                // this node.
+                from("timer:heartbeat?period=10000")
+                    .routeId("heartbeat")
+                    .log("HeartBeat route (timer) {{node.id}} ...");
+
+                // This route is configured to be clustered so it will be started
+                // by the controller only when this node is leader
+                from("master:{{node.namespace}}:timer:clustered?period=5000")
+                    .routeId("clustered")
+                    .log("Clustered route (timer) {{node.id}} ...");
+            }
+        };
+    }
+
+}
diff --git a/camel-example-spring-boot-master/src/main/resources/application.properties b/camel-example-spring-boot-master/src/main/resources/application.properties
new file mode 100644
index 0000000..92f43e3
--- /dev/null
+++ b/camel-example-spring-boot-master/src/main/resources/application.properties
@@ -0,0 +1,43 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+debug = false
+
+logging.level.org.springframework = INFO
+logging.level.io.atomix = DEBUG
+logging.level.org.apache.camel.cluster = DEBUG
+logging.level.org.apache.camel.impl.cluster = DEBUG
+logging.level.org.apache.camel.component.atomix = DEBUG
+logging.level.org.apache.camel.component.master = DEBUG
+logging.level.org.apache.camel.examples.cluster = DEBUG
+
+management.endpoints.enabled-by-default = false
+management.endpoints.jmx.enabled = false
+management.endpoint.health.enabled = true
+
+management.server.port = -1
+
+node.id = ${random.uuid}
+node.namespace = camel-master
+
+camel.springboot.name = SampleClusteredRouteController
+camel.springboot.main-run-controller = true
+camel.springboot.jmx-enabled = false
+
+camel.component.file.cluster.service.enabled = true
+camel.component.file.cluster.service.id = ${node.id}
+camel.component.file.cluster.service.root = ${java.io.tmpdir}
diff --git a/camel-example-spring-boot-metrics/README.adoc b/camel-example-spring-boot-metrics/README.adoc
new file mode 100644
index 0000000..1763342
--- /dev/null
+++ b/camel-example-spring-boot-metrics/README.adoc
@@ -0,0 +1,59 @@
+== Camel Spring Boot Metrics Example
+
+=== Introduction
+
+This example sends Camel route metrics to Graphite from a Spring Boot
+app.
+
+Please read *Configuration* first
+
+=== Build
+
+You will need to compile this example first:
+
+....
+mvn install
+....
+
+=== Run
+
+To run the example type
+
+....
+java -jar target/camel-example-spring-boot-metrics.jar
+....
+
+You will see logging from the ``Fast'' and ``Slow'' routes, and metrics
+will be sent to Graphite (or nc) every 5 seconds.
+
+=== Configuration
+
+Spring Boot auto-configures the `+com.codahale.metrics.MetricRegistry+`.
+See code comments in `+Application.java+` for further details.
+
+If you already have a Graphite server, make sure that UDP is enabled
+(set `+ENABLE_UDP_LISTENER = True+` in carbon.conf).
+
+If Graphite is not on your local machine, replace `+localhost+` in
+`+Application.java+` with the hostname or IP address of your Graphite
+server.
+
+If you want to use TCP instead of UDP, use
+`+com.codahale.metrics.graphite.Graphite+` instead of
+`+com.codahale.metrics.graphite.GraphiteUDP+`, as shown here:
+http://metrics.dropwizard.io/3.1.0/manual/graphite/
+
+If you can't be bothered to set up a Graphite server right now, you can
+simulate it by running `+nc -ul 2003+` on Linux. If you don't have
+`+nc+`, use `+yum search netcat+` to find a suitable package to install
+(e.g. nmap-ncat.x86_64).
+
+=== Help and contributions
+
+If you hit any problem using Camel or have some feedback, then please
+https://camel.apache.org/support.html[let us know].
+
+We also love contributors, so
+https://camel.apache.org/contributing.html[get involved] :-)
+
+The Camel riders!
diff --git a/camel-example-spring-boot-metrics/pom.xml b/camel-example-spring-boot-metrics/pom.xml
new file mode 100644
index 0000000..f74bef1
--- /dev/null
+++ b/camel-example-spring-boot-metrics/pom.xml
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.springboot.example</groupId>
+        <artifactId>examples</artifactId>
+        <version>3.4.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-example-spring-boot-metrics</artifactId>
+    <name>Camel SB Examples :: Metrics</name>
+    <description>An example showing how to work with Camel and Spring Boot and report metrics to Graphite</description>
+
+    <properties>
+        <category>Management and Monitoring</category>
+
+        <spring.boot-version>${spring-boot-version}</spring.boot-version>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring.boot-version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.springboot</groupId>
+                <artifactId>camel-spring-boot-dependencies</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-metrics-starter</artifactId>
+        </dependency>
+
+        <!-- web -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+
+        <!-- operations -->
+        <dependency>
+            <groupId>org.jolokia</groupId>
+            <artifactId>jolokia-core</artifactId>
+            <version>${jolokia-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+
+        <!-- metrics -->
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-graphite</artifactId>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+
+        <!-- we do not want version in the JAR name -->
+        <finalName>${project.artifactId}</finalName>
+
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring-boot-version}</version>
+                <configuration>
+                    <mainClass>org.apache.camel.example.spring.boot.metrics.Application</mainClass>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
+
+
+
+
diff --git a/camel-example-spring-boot-metrics/src/main/java/org/apache/camel/example/spring/boot/metrics/Application.java b/camel-example-spring-boot-metrics/src/main/java/org/apache/camel/example/spring/boot/metrics/Application.java
new file mode 100644
index 0000000..8507f25
--- /dev/null
+++ b/camel-example-spring-boot-metrics/src/main/java/org/apache/camel/example/spring/boot/metrics/Application.java
@@ -0,0 +1,120 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.example.spring.boot.metrics;
+
+import java.net.InetSocketAddress;
+import java.util.concurrent.TimeUnit;
+
+import com.codahale.metrics.MetricFilter;
+import com.codahale.metrics.MetricRegistry;
+import com.codahale.metrics.graphite.GraphiteReporter;
+import com.codahale.metrics.graphite.GraphiteSender;
+import com.codahale.metrics.graphite.GraphiteUDP;
+import org.apache.camel.CamelContext;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.metrics.routepolicy.MetricsRoutePolicyFactory;
+import org.apache.camel.spring.boot.CamelContextConfiguration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.Bean;
+
+/**
+ * A simple Spring Boot application, with a couple of timed camel routes
+ * configured with camel-metrics. Reports metrics to Graphite via
+ * dropwizard-metrics GraphiteUDP sender. Has standard spring-actuator endpoints
+ * such as /beans, /autoconfig, /metrics
+ */
+@SpringBootApplication
+public class Application {
+
+    private static final Logger LOG = LoggerFactory.getLogger(Application.class);
+
+    /**
+     * @param args no command line args required
+     */
+    public static void main(String[] args) {
+        LOG.info(" *** Starting Camel Metrics Example Application ***");
+        SpringApplication.run(Application.class, args);
+    }
+
+    /**
+     * Create reporter bean and tell Spring to call stop() when shutting down.
+     * UPD must be enabled in carbon.conf
+     * 
+     * @return graphite reporter
+     */
+    @Bean(destroyMethod = "stop")
+    public GraphiteReporter graphiteReporter() {
+        final GraphiteSender graphite = new GraphiteUDP(new InetSocketAddress("localhost", 2003));
+        final GraphiteReporter reporter = GraphiteReporter.forRegistry(metricRegistry()).prefixedWith("camel-spring-boot").convertRatesTo(TimeUnit.SECONDS)
+            .convertDurationsTo(TimeUnit.MILLISECONDS).filter(MetricFilter.ALL).build(graphite);
+        reporter.start(5, TimeUnit.SECONDS);
+        return reporter;
+    }
+
+    /**
+     * @return timed route that logs output every 6 seconds
+     */
+    @Bean
+    public RouteBuilder slowRoute() {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                from("timer://foo?period=6000").routeId("slow-route").setBody().constant("Slow hello world!").log("${body}");
+            }
+        };
+    }
+
+    /**
+     * @return timed route that logs output every 2 seconds
+     */
+    @Bean
+    public RouteBuilder fastRoute() {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                from("timer://foo?period=2000").routeId("fast-route").setBody().constant("Fast hello world!").log("${body}");
+            }
+        };
+    }
+    
+    @Bean
+    MetricRegistry metricRegistry() {
+        return new MetricRegistry();
+    }
+
+    @Bean
+    CamelContextConfiguration contextConfiguration() {
+        return new CamelContextConfiguration() {
+            @Override
+            public void beforeApplicationStart(CamelContext context) {
+                LOG.info("Configuring Camel metrics on all routes");
+                MetricsRoutePolicyFactory fac = new MetricsRoutePolicyFactory();
+                fac.setMetricsRegistry(metricRegistry());
+                context.addRoutePolicyFactory(fac);
+            }
+
+            @Override
+            public void afterApplicationStart(CamelContext camelContext) {
+                // noop
+            }
+        };
+    }
+
+}
diff --git a/camel-example-spring-boot-metrics/src/main/resources/application.properties b/camel-example-spring-boot-metrics/src/main/resources/application.properties
new file mode 100644
index 0000000..7b61257
--- /dev/null
+++ b/camel-example-spring-boot-metrics/src/main/resources/application.properties
@@ -0,0 +1,19 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+info.build.name=Example of sending camel metrics to Graphite
+camel.springboot.name=camel-example-spring-boot-metrics
diff --git a/camel-example-spring-boot-opentracing/README.adoc b/camel-example-spring-boot-opentracing/README.adoc
new file mode 100644
index 0000000..63190d7
--- /dev/null
+++ b/camel-example-spring-boot-opentracing/README.adoc
@@ -0,0 +1,71 @@
+== OpenTracing Example
+
+=== Introduction
+
+This example shows how to use Camel with OpenTracing to trace all
+incoming and outgoing Camel messages.
+
+The example uses a logging tracer (based on the MockTracer) to display
+tracing information on the console.
+
+The example includes four sub maven modules that implement
+
+* client
+* service1
+* service2
+* loggingtracer
+
+Where client -> service1 -> service2 using HTTP.
+
... 18814 lines suppressed ...


[camel-spring-boot-examples] 10/40: Polished example

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit d8729f5c3c982ddf66cf2a9c0d1b863daef49021
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon May 25 12:07:51 2020 +0200

    Polished example
---
 .../src/main/java/sample/camel/MyBean.java                |  6 ++++--
 .../src/main/java/sample/camel/MyCamelRouter.java         | 15 ++++++++++-----
 .../src/main/resources/application.properties             |  4 ++--
 3 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/camel-example-spring-boot/src/main/java/sample/camel/MyBean.java b/camel-example-spring-boot/src/main/java/sample/camel/MyBean.java
index 9651eaa..45b9aa8 100644
--- a/camel-example-spring-boot/src/main/java/sample/camel/MyBean.java
+++ b/camel-example-spring-boot/src/main/java/sample/camel/MyBean.java
@@ -28,11 +28,13 @@ import org.springframework.stereotype.Component;
 @Component("myBean")
 public class MyBean {
 
+    private int counter;
+
     @Value("${greeting}")
     private String say;
 
-    public String saySomething() {
-        return say;
+    public String saySomething(String body) {
+        return String.format("%s I am invoked %d times", say, ++counter);
     }
 
 }
diff --git a/camel-example-spring-boot/src/main/java/sample/camel/MyCamelRouter.java b/camel-example-spring-boot/src/main/java/sample/camel/MyCamelRouter.java
index bc8dc22..8321887 100644
--- a/camel-example-spring-boot/src/main/java/sample/camel/MyCamelRouter.java
+++ b/camel-example-spring-boot/src/main/java/sample/camel/MyCamelRouter.java
@@ -17,6 +17,7 @@
 package sample.camel;
 
 import org.apache.camel.builder.RouteBuilder;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 /**
@@ -27,13 +28,17 @@ import org.springframework.stereotype.Component;
 @Component
 public class MyCamelRouter extends RouteBuilder {
 
+    // we can use spring dependency injection
+    @Autowired
+    MyBean myBean;
+
     @Override
     public void configure() throws Exception {
-        from("timer:hello?period={{timer.period}}").routeId("hello")
-                .transform().method("myBean", "saySomething")
-                .filter(simple("${body} contains 'foo'"))
-                    .to("log:foo")
-                .end()
+        // start from a timer
+        from("timer:hello?period={{myPeriod}}").routeId("hello")
+                // and call the bean
+                .bean(myBean, "saySomething")
+                // and print it to system out via stream component
                 .to("stream:out");
     }
 
diff --git a/camel-example-spring-boot/src/main/resources/application.properties b/camel-example-spring-boot/src/main/resources/application.properties
index 7333594..7ec89a3 100644
--- a/camel-example-spring-boot/src/main/resources/application.properties
+++ b/camel-example-spring-boot/src/main/resources/application.properties
@@ -21,8 +21,8 @@ camel.springboot.name = MyCamel
 # what to say
 greeting = Hello World
 
-# how often to trigger the timer
-timer.period = 2000
+# how often to trigger the timer (millis)
+myPeriod = 2000
 
 # to watch bean introspection using java reflection usage
 # camel.springboot.bean-introspection-logging-level=INFO


[camel-spring-boot-examples] 20/40: arangodb sb example - README.adoc

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit d665f02a515982f329e60d028217d5699d2a3ffc
Author: Zineb Bendhiba <be...@gmail.com>
AuthorDate: Wed Aug 5 17:40:46 2020 +0200

    arangodb sb example - README.adoc
---
 camel-example-spring-boot-arangodb/{src => }/README.adoc | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/camel-example-spring-boot-arangodb/src/README.adoc b/camel-example-spring-boot-arangodb/README.adoc
similarity index 100%
rename from camel-example-spring-boot-arangodb/src/README.adoc
rename to camel-example-spring-boot-arangodb/README.adoc


[camel-spring-boot-examples] 37/40: Added new OpenTrace example with ElastiCo APM Tracer

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit 14cc33c0f8e9e8d296827a460f190307c143d983
Author: Andrii Mealshchenko <ja...@gmail.com>
AuthorDate: Thu Sep 17 20:56:13 2020 +0300

    Added new OpenTrace example with ElastiCo APM Tracer
---
 pom.xml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/pom.xml b/pom.xml
index 7df711d..33be20b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,6 +37,7 @@
         <module>camel-example-spring-boot</module>
         <module>camel-example-spring-boot-activemq</module>
         <module>camel-example-spring-boot-amqp</module>
+        <module>camel-example-spring-boot-apm-opentracing</module>
         <module>camel-example-spring-boot-arangodb</module>
         <module>camel-example-spring-boot-clustered-route-controller</module>
         <module>camel-example-spring-boot-fhir</module>


[camel-spring-boot-examples] 21/40: Merge pull request #2 from zbendhiba/arangodb-example

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit 492293af48b8722ba4533b047697879477f1fc89
Merge: 3e90cfe d665f02
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Wed Aug 5 17:49:29 2020 +0200

    Merge pull request #2 from zbendhiba/arangodb-example
    
    arangodb sb example - README.adoc

 camel-example-spring-boot-arangodb/{src => }/README.adoc | 0
 1 file changed, 0 insertions(+), 0 deletions(-)


[camel-spring-boot-examples] 26/40: Merge pull request #4 from zbendhiba/arangodb

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit 9c74ed3db302e83872ae3f4c6735a69e9ccdbcb5
Merge: 47b4325 70c7368
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Aug 24 14:07:22 2020 +0200

    Merge pull request #4 from zbendhiba/arangodb
    
    arangodb example : update spring-boot example du to update in component

 .../src/main/resources/application.properties                           | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


[camel-spring-boot-examples] 33/40: Make testing simpler

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git

commit 2744349dfa20104224ae2ec41336ad533123b40d
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Aug 31 11:21:48 2020 +0200

    Make testing simpler
---
 .../sample/camel/FooApplicationJUnit5Test.java     | 51 ----------------------
 1 file changed, 51 deletions(-)

diff --git a/camel-example-spring-boot/src/test/java/sample/camel/FooApplicationJUnit5Test.java b/camel-example-spring-boot/src/test/java/sample/camel/FooApplicationJUnit5Test.java
deleted file mode 100644
index c82a95b..0000000
--- a/camel-example-spring-boot/src/test/java/sample/camel/FooApplicationJUnit5Test.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package sample.camel;
-
-import java.util.concurrent.TimeUnit;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.builder.NotifyBuilder;
-import org.apache.camel.test.spring.junit5.CamelSpringBootTest;
-import org.apache.camel.test.spring.junit5.MockEndpoints;
-import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-
-
-import static org.junit.Assert.assertTrue;
-
-@CamelSpringBootTest
-@SpringBootTest(classes = MyCamelApplication.class,
-    properties = "greeting = Hello foo")
-@MockEndpoints("log:foo") // mock the log:foo endpoint => mock:log:foo which we then use in the testing
-//@Ignore // enable me to run this test as well so we can cover testing the route completely
-public class FooApplicationJUnit5Test {
-
-    @Autowired
-    private CamelContext camelContext;
-
-    @Test
-    public void shouldSayFoo() throws Exception {
-        // we expect that one or more messages is automatic done by the Camel
-        // route as it uses a timer to trigger
-        NotifyBuilder notify = new NotifyBuilder(camelContext).whenDone(1).create();
-
-        assertTrue(notify.matches(10, TimeUnit.SECONDS));
-    }
-
-}