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:24 UTC

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

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