Chapter 3. Sample applications 3.1. Spring Boot Examples The Spring Boot examples repository contains a number of examples on how to integrate with Camel for a variety of use cases. They provide best practice advice and describe common patterns that we see in integration and messaging problems. The examples can be run using Maven. When using the mvn command, Maven will attempt to download the required dependencies from a central repository to your local repository. 3.2. Examples repository There are 61 examples: Example Category Description Deploy with devfile ActiveMQ (activemq) Messaging An example showing how to work with Camel, ActiveMQ openwire and Spring Boot No Actuator HTTP Metrics (actuator-http-metrics) Management and Monitoring Example on how to use Spring Boot's Actuator endpoints to gather info like mappings or metrics No Amqp (amqp) Messaging An example showing how to work with Camel, ActiveMQ Amqp and Spring Boot No AMQP Salesforce (amqp-salesforce) Messaging AMQP message sending is created as contacts in Salesforce No ArangoDB (arangodb) Database An example showing the Camel ArangoDb component with Spring Boot No artemis (artemis) Messaging An example showing how to work with Camel, ActiveMQ Artemis and Spring Boot No AWS2 S3 (aws2-s3) Cloud An example showing the Camel AWS2 S3 component with Spring Boot No Azure Event Hubs (azure-eventhubs) Cloud An example showing how to work with Camel, Azure Event Hubs and Spring Boot No Azure Service Bus (azure-servicebus) Cloud An example showing how to work with Camel, Azure Service Bus and Spring Boot No Endpoint DSL (camel-example-endpointdsl) Beginner Using type-safe Endpoint DSL No FHIR (fhir) Health Care An example showing how to work with Camel, FHIR and Spring Boot No Transaction (fhir-auth-tx) Health Care An example showing how to work with Camel, FHIR Authorization, FHIR Transaction and Spring Boot Yes Health Checks (health-checks) Health Care An example on how to work with health checks ib a simple Apache Camel application using Spring Boot. Yes HTTP SSL (http-ssl) Rest An example showing the Camel HTTP component with Spring Boot and SSL No Infinispan (infinispan) Cloud An example showing the Camel Infinispan component with Spring Boot No Jira (jira) Beginner An example that uses Jira Camel API No Jolokia (jolokia) Management and Monitoring An example that uses Jolokia to monitor and to manage Camel Routes No Avro (kafka-avro) Messaging An example for Kafka avro No offsetrepository (kafka-offsetrepository) Messaging An example for Kafka offsetrepository No Kamelet Chuck Norris (kamelet-chucknorris) Beginner How easy it is to create your own Kamelets Yes Custom Type Converter (load-balancer-eip) Beginner An example showing Load Balancer EIP with Camel and Spring Boot Yes Microsoft Exchange Oauth2 Authentication (mail-exchange-oauth2) Mail An example showing how to use Camel on Spring Boot to connect with IMAP protocol and access email data for Office 365 users using OAuth2 authentication No Master (master) Clustering An example showing how to work with Camel's Master component and Spring Boot No Metrics (metrics) Management and Monitoring An example showing how to work with Camel and Spring Boot and report metrics to Graphite Yes Monitoring (monitoring) Management and Monitoring Example on how to use Spring Boot's Actuator endpoints to gather info like mappings or metrics No Multiple pooled datasources with two-phase commit (muti-datasources-2pc) Database An example showing how to work with Camel and Spring Boot using multiple pooled datasources with two-phase commit No Observation (observation) Management and Monitoring An example showing how to trace incoming and outgoing messages from Camel with Micrometer Observation No OpenAPI Contract First (openapi-contract-first) Rest Contract First OpenAPI example No OpenTelemetry (opentelemetry) Management and Monitoring An example showing how to use Camel with OpenTelemetry No Paho MQTT5 Shared Subscriptions (paho-mqtt5-shared-subscriptions) Messaging An example showing how to set up multiple mqtt5 consumers that use shared subscription feature of MQTT5 Yes REST DSL and Platform HTTP (platform-http) Rest An example showing Camel REST DSL with platform HTTP No POJO Routing (pojo) Beginner An example showing how to work with Camel POJO routing with Spring Boot Yes Quartz (quartz) Beginner An example showing how to work with Camel Quartz and Camel Log with Spring Boot Yes RabbitMQ (rabbitmq) Messaging An example showing how to work with Camel and RabbitMQ No Reactive Streams (reactive-streams) Reactive An example that shows how Camel can exchange data using reactive streams with Spring Boot reactor Yes Resilience4j (resilience4j) EIP An example showing how to use Resilience4j EIP as circuit breaker in Camel routes No REST using CXF and OpenTelemetry (rest-cxf-opentelemetry) CXF An example showing Camel REST using CXF and OpenTelemetry with Spring Boot No REST DSL and OpenApi (rest-openapi) Rest An example showing Camel REST DSL and OpenApi with Spring Boot Yes OpenApi Simple (rest-openapi-simple) Beginner This example shows how to call a Rest service defined using OpenApi specification No REST DSL and OpenApi (rest-openapi-springdoc) Rest An example showing Camel REST DSL and OpenApi with a Springdoc UI in a Spring Boot application Yes Route Reload (route-reload) Beginner Live reload of routes if file is updated and saved Yes Routes Configuration (routes-configuration) Beginner Example with global routes configuration for error handling No Route Template (routetemplate) Beginner How to use route templates (parameterized routes) Yes XML (routetemplate-xml) Beginner How to use route templates (parameterized routes) in XML No Saga (saga) EIP This example shows how to work with a simple Apache Camel application using Spring Boot and Narayana LRA Coordinator to manage distributed actions implementing SAGA pattern No ServiceCall (servicecall) Cloud An example showing how to work with Camel ServiceCall EIP and Spring Boot No SOAP CXF (soap-cxf) CXF An example showing the Camel SOAP CXF No Camel Splitter EIP (splitter-eip) Beginner An example showing Splitter EIP with Camel and Spring Boot Yes Spring Boot (camel-example-spring-boot) Beginner An example showing how to work with Camel and Spring Boot No JTA (spring-boot-jta-jpa-autoconfigure) Advanced An example showing JTA with Spring Boot Autoconfiguration No JTA (spring-boot-jta-jpa-xml) Advanced An example showing JTA with Spring Boot using Spring XML configuration No Spring JDBC (spring-jdbc) Beginner Camel transacted routes integrating local Spring Transaction No Strimzi (strimzi) Messaging Camel example which a route is defined in XML for Strimzi integration on Openshift/Kubernetes No Supervising Route Controller (supervising-route-controller) Management and Monitoring An example showing how to work with Camel's Supervising Route Controller and Spring Boot Yes Tomcat JDBC (camel-example-spring-boot) Beginner An example showing how to deploy a Camel Spring Boot application in Tomcat using its JDBC Data Source No Custom Type Converter (type-converter) Beginner An example showing how to create custom type converter with Camel and Spring Boot Yes Validator (validator) Input/Output Type Contract An example showing how to work with declarative validation and Spring Boot Yes Webhook (webhook) Advanced Example on how to use the Camel Webhook component No Widget Gadget (widget-gadget) Messaging The widget and gadget example from EIP book, running on Spring Boot No XML (xml) Beginner An example showing how to work with Camel routes in XML files and Spring Boot Yes XML Import (xml-import) Beginner An example showing how to work with Spring XML files imported with embedded CamelContext Yes 3.3. Running Examples You should always use the latest release for the examples. To run the examples: Check out the tag for the latest release (currently camel-spring-boot-examples-4.8.3.redhat-00001): USD git checkout tags/camel-spring-boot-examples-4.8.3.redhat-00001 Install the root pom: USD mvn install Check the README for the example you want to run for additional steps. 3.4. Deploying examples You can deploy examples in OpenShift or dev-sandbox using devfiles. For more information about deploying the Camel Spring Boot applications on OpenShift Container Platform, see Apache Camel on OCP Best practices . Only some of the examples can be deployed with devfile. See the column "Deploy with devfile" in the examples table. Prerequisites If you haven't already, install odo (We recommend version 2.x) Procedure Log in to your openshift or dev-sandbox and create a new project. Here USDEXAMPLE is the name of the example you want to deploy: USD oc new-project csbex-USDEXAMPLE Create an odo component using the devfile.yaml USD odo create csb-ubi8 --app USDEXAMPLE To set the specific example you want to deploy as an env variable (SUB_FOLDER): USD odo config set --env SUB_FOLDER=USDEXAMPLE Then push it to openshift cluster: USD odo push Before you deploy an example, delete the .odo directory in your repository. This removes components related to any example. If you have an internal repository, set the MAVEN_MIRROR_URL environment with your maven repo before pushing: USD odo config set --env MAVEN_MIRROR_URL=https://my-maven-mirror/

Commands: