= 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:micrometer/README.adoc[Micrometer] (camel-example-micrometer) | Advanced | An example showing how to work with Camel, Spring Java Config and Micrometer monitoring

| link:main/README.adoc[Main] (camel-example-main) | Beginner | An example for showing standalone Camel

| link:main-endpointdsl/README.adoc[Main Endpointdsl] (camel-example-main-endpointdsl) | Beginner | An example for showing standalone Camel with Endpoint DSL

| link:main-endpointdsl-aws2-s3/README.adoc[Main Endpointdsl Aws2 S3] (camel-example-main-endpointdsl-aws2-s3) | Beginner | An example for showing standalone Camel with Endpoint DSL and AWS2-S3

| link:main-endpointdsl-aws2-s3-kafka/README.adoc[Main Endpointdsl Aws2 S3 Kafka] (camel-example-main-endpointdsl-aws2-s3-kafka) | Beginner | An example for showing standalone Camel with Endpoint DSL and AWS2-S3 and Kafka

| link:main-health/README.adoc[Main Health] (camel-example-main-health) | Beginner | An example for showing standalone Camel with Health Checks

| link:main-joor/README.adoc[Main Joor] (camel-example-main-joor) | Beginner | An example for showing standalone Camel with jOOR runtime Java compiled

| link:main-lambda/README.adoc[Main Lambda] (camel-example-main-lambda) | Beginner | Camel routes lambda style

| link:main-tiny/README.adoc[Main Tiny] (camel-example-main-tiny) | Beginner | An example for showing standalone Camel with as few JARs on classpath as possible

| link:main-xml/README.adoc[Main Xml] (camel-example-main-xml) | Beginner | An example for showing standalone Camel using XML

| link:oaipmh/README.adoc[OAIPMH example] (camel-example-oaipmh) | Beginner | An example with OAIPMH component

| link:pojo-messaging/README.adoc[POJO Routing] (camel-example-pojo-messaging) | Beginner | An example showing how to produce and consume messages from Camel endpoints using annotated POJOs
    

| link:routeloader/README.adoc[Routeloader] (camel-example-routeloader) | Beginner | Example loading and compiling Java routes on startup

| link:routetemplate/README.adoc[Routetemplate] (camel-example-routetemplate) | Beginner | How to use route templates (parameterized routes)

| link:servlet-tomcat/README.adoc[Servlet Tomcat] (camel-example-servlet-tomcat) | Beginner | An example using Camel Servlet with Apache Tomcat

| link:spring/README.adoc[Spring] (camel-example-spring) | Beginner | An example showing how to work with Camel and Spring

| link:spring-javaconfig/README.adoc[Spring Java Config] (camel-example-spring-javaconfig) | Beginner | An example showing how to work with Camel and Spring Java Config

| link:spring-xquery/README.adoc[Spring XQuery] (camel-example-spring-xquery) | Beginner | An example using Spring XML to transform a message using XQuery

| link:main-endpointdsl-aws2/README[Main Endpointdsl Aws2] (camel-example-main-endpointdsl-aws2) | Cloud | An example for showing standalone Camel with multiple AWS2 components

| link:mongodb/README.adoc[Mongodb] (camel-example-mongodb) | Database | An example that uses Camel MongoDB component

| link:route-throttling/README.adoc[Route Throttling] (camel-example-route-throttling) | EIP | A client-server example using JMS transport where we on the server side can throttle the Camel
        route dynamically based on the flow of messages
    

| link:widget-gadget-cdi/README.adoc[Widget Gadget CDI] (camel-example-widget-gadget-cdi) | EIP | The widget and gadget example from the EIP book

| link:widget-gadget-java/README.adoc[Widget Gadget Java] (camel-example-widget-gadget-java) | EIP | The widget and gadget example from the EIP book

| link:widget-gadget-xml/README.adoc[Widget Gadget XML] (camel-example-widget-gadget-xml) | EIP | The widget and gadget example from the EIP book

| link:transformer-cdi/README.adoc[Transformer CDI] (camel-example-transformer-cdi) | Input/Output Type Contract | An example demonstrating declarative transformation along data type declaration using Java DSL and CDI
    

| link:transformer-demo/README.adoc[Transformer and Validator Spring XML] (camel-example-transformer-demo) | Input/Output Type Contract | An example demonstrating declarative transformation and validation along data type declaration using
        Spring DSL
    

| link:management/README.adoc[Management] (camel-example-management) | Management and Monitoring | An example for showing Camel JMX management

| link:splunk/README.adoc[Splunk] (camel-example-splunk) | Management and Monitoring | An example using Splunk

| link:main-artemis/README.adoc[Main Artemis] (camel-example-main-artemis) | Messaging | An example for showing standalone Camel with ActiveMQ Artemis

| link:netty-custom-correlation/README.adoc[Netty Custom Correlation] (camel-example-netty-custom-correlation) | Messaging | An example for showing Camel Netty with custom codec and correlation id

| link:spring-pulsar/README.adoc[Spring Pulsar] (camel-example-spring-pulsar) | Messaging | An example using Spring XML to talk to the Pulsar server from different kind of client techniques

| link:vertx-kafka/README.adoc[Vertx Kafka] (camel-example-vertx-kafka) | Messaging | An example for Vertx Kafka

| link:reactive-executor-vertx/README.adoc[Reactive Executor Vertx] (camel-example-reactive-executor-vertx) | Reactive | An example for showing using VertX as reactive executor with standalone Camel

| link:openapi-cdi/README.adoc[OpenApi CDI] (camel-example-openapi-cdi) | Rest | An example using REST DSL and OpenApi Java with CDI

| link:swagger-cdi/README.adoc[Swagger CDI] (camel-example-swagger-cdi) | Rest | An example using REST DSL and Swagger Java with CDI

| link:spring-security/README.adoc[Spring Security] (camel-example-spring-security) | Security | An example showing how to work with Camel and Spring Security

| link:salesforce-consumer/README.adoc[Salesforce Consumer] (camel-example-salesforce-consumer) | Social | An example that uses Salesforce Rest Streaming API

| link:telegram/README.adoc[Telegram] (camel-example-telegram) | Social | An example that uses Telegram API

| link:twitter-websocket/README.adoc[Twitter Websocket] (camel-example-twitter-websocket) | Social | An example that pushes new tweets to a web page using web-socket

| link:spring-ws/README.adoc[Spring WebService] (camel-example-spring-ws) | WebService | An example showing how to work with Camel and Spring Web Services
|===
// 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!
