= Extensions

Apache Camel Quarkus supports the following Camel artifacts as Quarkus Extensions

== Camel Components

// components: START
Number of Camel components: 63 in 54 JAR artifacts (0 deprecated)

[width="100%",cols="4,1,5",options="header"]
|===
| Component | Since | Description

| xref:extensions/ahc.adoc[AHC] (camel-quarkus-ahc) +
`ahc:httpUri` | 1.0.0-M3 | To call external HTTP services using Async Http Client.

| link:https://camel.apache.org/components/latest/ahc-ws-component.html[AHC Websocket] (camel-quarkus-ahc-ws) +
`ahc-ws:httpUri` | 1.0.0-M3 | To exchange data with external Websocket servers using Async Http Client.

| link:https://camel.apache.org/components/latest/aws-ec2-component.html[AWS EC2] (camel-quarkus-aws-ec2) +
`aws-ec2:label` | 1.0.0-M3 | The aws-ec2 is used for managing Amazon EC2 instances.

| link:https://camel.apache.org/components/latest/aws-ecs-component.html[AWS ECS] (camel-quarkus-aws-ecs) +
`aws-ecs:label` | 1.0.0-M1 | The aws-ecs is used for managing Amazon ECS

| link:https://camel.apache.org/components/latest/aws-eks-component.html[AWS EKS] (camel-quarkus-aws-eks) +
`aws-eks:label` | 0.2.0 | The aws-eks is used for managing Amazon EKS

| link:https://camel.apache.org/components/latest/aws-iam-component.html[AWS IAM] (camel-quarkus-aws-iam) +
`aws-iam:label` | 1.1.0 | The aws-iam is used for managing Amazon IAM

| link:https://camel.apache.org/components/latest/aws-kinesis-component.html[AWS Kinesis] (camel-quarkus-aws-kinesis) +
`aws-kinesis:streamName` | 1.0.0-M3 | The aws-kinesis component is for consuming and producing records from Amazon Kinesis Streams.

| link:https://camel.apache.org/components/latest/aws-kinesis-firehose-component.html[AWS Kinesis Firehose] (camel-quarkus-aws-kinesis) +
`aws-kinesis-firehose:streamName` | 1.0.0-M3 | The aws-kinesis-firehose component is used for producing Amazon's Kinesis Firehose streams.

| link:https://camel.apache.org/components/latest/aws-kms-component.html[AWS KMS] (camel-quarkus-aws-kms) +
`aws-kms:label` | 1.0.0-M1 | The aws-kms is used for managing Amazon KMS

| link:https://camel.apache.org/components/latest/aws-lambda-component.html[AWS Lambda] (camel-quarkus-aws-lambda) +
`aws-lambda:function` | 1.0.0-M3 | The aws-lambda is used for managing and invoking functions from Amazon Lambda.

| link:https://camel.apache.org/components/latest/aws-s3-component.html[AWS S3 Storage Service] (camel-quarkus-aws-s3) +
`aws-s3://bucketNameOrArn` | 0.2.0 | The aws-s3 component is used for storing and retrieving object from Amazon S3 Storage Service.

| link:https://camel.apache.org/components/latest/aws-sns-component.html[AWS Simple Notification System] (camel-quarkus-aws-sns) +
`aws-sns:topicNameOrArn` | 0.2.0 | The aws-sns component is used for sending messages to an Amazon Simple Notification Topic.

| link:https://camel.apache.org/components/latest/aws-sqs-component.html[AWS Simple Queue Service] (camel-quarkus-aws-sqs) +
`aws-sqs:queueNameOrArn` | 0.2.0 | The aws-sqs component is used for sending and receiving messages to Amazon's SQS service.

| link:https://camel.apache.org/components/latest/aws-translate-component.html[AWS Translate] (camel-quarkus-aws-translate) +
`aws-translate:label` | 1.0.0-M3 | The aws-kms is used for managing Amazon Translate

| link:https://camel.apache.org/components/latest/bean-component.html[Bean] (camel-quarkus-bean) +
`bean:beanName` | 0.2.0 | The bean component is for invoking Java beans from Camel.

| link:https://camel.apache.org/components/latest/bean-validator-component.html[Bean Validator] (camel-quarkus-bean-validator) +
`bean-validator:label` | 1.0.0-M1 | The Validator component performs bean validation of the message body using the Java Bean Validation API.

| link:https://camel.apache.org/components/latest/class-component.html[Class] (camel-quarkus-bean) +
`class:beanName` | 0.2.0 | The class component is for invoking Java classes (Java beans) from Camel.

| link:https://camel.apache.org/components/latest/consul-component.html[Consul] (camel-quarkus-consul) +
`consul:apiEndpoint` | 1.0.0-M3 | The camel consul component allows you to work with Consul, a distributed, highly available, datacenter-aware, service discovery and configuration system.

| link:https://camel.apache.org/components/latest/controlbus-component.html[Control Bus] (camel-quarkus-controlbus) +
`controlbus:command:language` | 0.4.0 | The controlbus component provides easy management of Camel applications based on the Control Bus EIP pattern.

| link:https://camel.apache.org/components/latest/dataformat-component.html[Data Format] (camel-quarkus-dataformat) +
`dataformat:name:operation` | 0.4.0 | The dataformat component is used for working with Data Formats as if it was a regular Component supporting Endpoints and URIs.

| link:https://camel.apache.org/components/latest/direct-component.html[Direct] (camel-quarkus-direct) +
`direct:name` | 0.2.0 | The direct component provides direct, synchronous call to another endpoint from the same CamelContext.

| xref:extensions/dozer.adoc[Dozer] (camel-quarkus-dozer) +
`dozer:name` | 1.0.0-M1 | The dozer component provides the ability to map between Java beans using the Dozer mapping library.

| link:https://camel.apache.org/components/latest/exec-component.html[Exec] (camel-quarkus-exec) +
`exec:executable` | 0.4.0 | The exec component can be used to execute OS system commands.

| xref:extensions/fhir.adoc[FHIR] (camel-quarkus-fhir) +
`fhir:apiName/methodName` | 0.3.0 | The fhir component is used for working with the FHIR protocol (health care).

| link:https://camel.apache.org/components/latest/file-component.html[File] (camel-quarkus-file) +
`file:directoryName` | 0.4.0 | The file component is used for reading or writing files.

| link:https://camel.apache.org/components/latest/ftp-component.html[FTP] (camel-quarkus-ftp) +
`ftp:host:port/directoryName` | 1.0.0-M1 | The \ftp component is used for uploading or downloading files from FTP servers.

| link:https://camel.apache.org/components/latest/ftps-component.html[FTPS] (camel-quarkus-ftp) +
`ftps:host:port/directoryName` | 1.0.0-M1 | The \ftps (FTP secure SSL/TLS) component is used for uploading or downloading files from FTP servers.

| xref:extensions/http.adoc[HTTP] (camel-quarkus-http) +
`http:httpUri` | 1.0.0-M3 | For calling out to external HTTP servers using Apache HTTP Client 4.x.

| link:https://camel.apache.org/components/latest/infinispan-component.html[Infinispan] (camel-quarkus-infinispan) +
`infinispan:cacheName` | 0.2.0 | For reading/writing from/to Infinispan distributed key/value store and data grid.

| link:https://camel.apache.org/components/latest/jdbc-component.html[JDBC] (camel-quarkus-jdbc) +
`jdbc:dataSourceName` | 0.2.0 | The jdbc component enables you to access databases through JDBC, where SQL queries are sent in the message body.

| link:https://camel.apache.org/components/latest/kafka-component.html[Kafka] (camel-quarkus-kafka) +
`kafka:topic` | 1.0.0-M1 | The kafka component allows messages to be sent to (or consumed from) Apache Kafka brokers.

| link:https://camel.apache.org/components/latest/log-component.html[Log] (camel-quarkus-log) +
`log:loggerName` | 0.2.0 | The log component logs message exchanges to the underlying logging mechanism.

| link:https://camel.apache.org/components/latest/mail-component.html[Mail] (camel-quarkus-mail) +
`imap:host:port` | 0.2.0 | To send or receive emails using imap/pop3 or smtp protocols.

| xref:extensions/microprofile-metrics.adoc[MicroProfile Metrics] (camel-quarkus-microprofile-metrics) +
`microprofile-metrics:metricType:metricName` | 0.2.0 | Camel metrics exposed with Eclipse MicroProfile Metrics

| xref:extensions/mongodb.adoc[MongoDB] (camel-quarkus-mongodb) +
`mongodb:connectionBean` | 1.0.0-M1 | Component for working with documents stored in MongoDB database.

| xref:extensions/netty.adoc[Netty] (camel-quarkus-netty) +
`netty:protocol:host:port` | 0.4.0 | Socket level networking using TCP or UDP with the Netty 4.x library.

| xref:extensions/netty-http.adoc[Netty HTTP] (camel-quarkus-netty-http) +
`netty-http:protocol:host:port/path` | 0.2.0 | Netty HTTP server and client using the Netty 4.x library.

| link:https://camel.apache.org/components/latest/olingo4-component.html[Olingo4] (camel-quarkus-olingo4) +
`olingo4:apiName/methodName` | 1.2.0 | Communicates with OData 4.0 services using Apache Olingo OData API.

| link:https://camel.apache.org/components/latest/paho-component.html[Paho] (camel-quarkus-paho) +
`paho:topic` | 0.2.0 | Component for communicating with MQTT message brokers using Eclipse Paho MQTT Client.

| link:https://camel.apache.org/components/latest/pdf-component.html[PDF] (camel-quarkus-pdf) +
`pdf:operation` | 0.3.1 | The pdf components provides the ability to create, modify or extract content from PDF documents.

| xref:extensions/platform-http.adoc[Platform HTTP] (camel-quarkus-platform-http) +
`platform-http:path` | 0.3.0 | HTTP service leveraging existing runtime platform HTTP server

| link:https://camel.apache.org/components/latest/reactive-streams-component.html[Reactive Streams] (camel-quarkus-reactive-streams) +
`reactive-streams:stream` | 1.0.0-M3 | Reactive Camel using reactive streams

| link:https://camel.apache.org/components/latest/rest-component.html[REST] (camel-quarkus-rest) +
`rest:method:path:uriTemplate` | 0.2.0 | The rest component is used for either hosting REST services (consumer) or calling external REST services (producer).

| link:https://camel.apache.org/components/latest/rest-api-component.html[REST API] (camel-quarkus-rest) +
`rest-api:path/contextIdPattern` | 0.2.0 | The rest-api component is used for providing Swagger API of the REST services which has been defined using the rest-dsl in Camel.

| link:https://camel.apache.org/components/latest/salesforce-component.html[Salesforce] (camel-quarkus-salesforce) +
`salesforce:operationName:topicName` | 0.2.0 | The salesforce component is used for integrating Camel with the massive Salesforce API.

| link:https://camel.apache.org/components/latest/scheduler-component.html[Scheduler] (camel-quarkus-scheduler) +
`scheduler:name` | 0.4.0 | The scheduler component is used for generating message exchanges when a scheduler fires.

| link:https://camel.apache.org/components/latest/seda-component.html[SEDA] (camel-quarkus-seda) +
`seda:name` | 1.0.0-M1 | The seda component provides asynchronous call to another endpoint from any CamelContext in the same JVM.

| link:https://camel.apache.org/components/latest/servlet-component.html[Servlet] (camel-quarkus-servlet) +
`servlet:contextPath` | 0.2.0 | To use a HTTP Servlet as entry for Camel routes when running in a servlet container.

| link:https://camel.apache.org/components/latest/sftp-component.html[SFTP] (camel-quarkus-ftp) +
`sftp:host:port/directoryName` | 1.0.0-M1 | The \sftp (FTP over SSH) component is used for uploading or downloading files from SFTP servers.

| link:https://camel.apache.org/components/latest/sjms-component.html[Simple JMS] (camel-quarkus-sjms) +
`sjms:destinationType:destinationName` | 1.0.0-M1 | The sjms component (simple jms) allows messages to be sent to (or consumed from) a JMS Queue or Topic (uses JMS 1.x API).

| link:https://camel.apache.org/components/latest/sjms-batch-component.html[Simple JMS Batch] (camel-quarkus-sjms) +
`sjms-batch:destinationName` | 1.0.0-M1 | The sjms-batch component is a specialized for highly performant, transactional batch consumption from a JMS queue.

| link:https://camel.apache.org/components/latest/sjms2-component.html[Simple JMS2] (camel-quarkus-sjms2) +
`sjms2:destinationType:destinationName` | 1.0.0-M1 | The sjms2 component (simple jms) allows messages to be sent to (or consumed from) a JMS Queue or Topic (uses JMS 2.x API).

| link:https://camel.apache.org/components/latest/slack-component.html[Slack] (camel-quarkus-slack) +
`slack:channel` | 0.3.0 | The slack component allows you to send messages to Slack.

| xref:extensions/sql.adoc[SQL] (camel-quarkus-sql) +
`sql:query` | 1.0.0-M2 | The sql component allows you to work with databases using JDBC SQL queries.

| xref:extensions/sql.adoc[SQL Stored Procedure] (camel-quarkus-sql) +
`sql-stored:template` | 1.0.0-M2 | The sql component allows you to work with databases using JDBC Stored Procedure queries.

| xref:extensions/stream.adoc[Stream] (camel-quarkus-stream) +
`stream:kind` | 1.2.0 | The stream: component provides access to the system-in, system-out and system-err streams as well as allowing streaming of file.

| link:https://camel.apache.org/components/latest/timer-component.html[Timer] (camel-quarkus-timer) +
`timer:timerName` | 0.2.0 | The timer component is used for generating message exchanges when a timer fires.

| link:https://camel.apache.org/components/latest/twitter-directmessage-component.html[Twitter Direct Message] (camel-quarkus-twitter) +
`twitter-directmessage:user` | 0.2.0 | The Twitter Direct Message Component consumes/produces user's direct messages.

| link:https://camel.apache.org/components/latest/twitter-search-component.html[Twitter Search] (camel-quarkus-twitter) +
`twitter-search:keywords` | 0.2.0 | The Twitter Search component consumes search results.

| link:https://camel.apache.org/components/latest/twitter-timeline-component.html[Twitter Timeline] (camel-quarkus-twitter) +
`twitter-timeline:timelineType` | 0.2.0 | The Twitter Timeline component consumes twitter timeline or update the status of specific user.

| link:https://camel.apache.org/components/latest/validator-component.html[Validator] (camel-quarkus-validator) +
`validator:resourceUri` | 0.4.0 | Validates the payload of a message using XML Schema and JAXP Validation.

| link:https://camel.apache.org/components/latest/vm-component.html[VM] (camel-quarkus-vm) +
`vm:name` | 0.3.0 | The vm component provides asynchronous call to another endpoint from the same CamelContext.

| xref:extensions/xslt.adoc[XSLT] (camel-quarkus-xslt) +
`xslt:resourceUri` | 0.4.0 | Transforms the message using a XSLT template.

|===
// components: END


== Camel Data Formats

// dataformats: START
Number of Camel data formats: 13 in 10 JAR artifacts (0 deprecated)

[width="100%",cols="4,1,5",options="header"]
|===
| Data Format | Since | Description

| link:https://camel.apache.org/components/latest/base64-dataformat.html[Base64] (camel-quarkus-base64) | 1.0.0-M1 | The Base64 data format is used for base64 encoding and decoding.

| link:https://camel.apache.org/components/latest/bindy-dataformat.html[Bindy CSV] (camel-quarkus-bindy) | 1.0.0 | The Bindy data format is used for working with flat payloads (such as CSV, delimited, fixed length formats, or FIX messages).

| link:https://camel.apache.org/components/latest/bindy-dataformat.html[Bindy Fixed Length] (camel-quarkus-bindy) | 1.0.0 | The Bindy data format is used for working with flat payloads (such as CSV, delimited, fixed length formats, or FIX messages).

| link:https://camel.apache.org/components/latest/bindy-dataformat.html[Bindy Key Value Pair] (camel-quarkus-bindy) | 1.0.0 | The Bindy data format is used for working with flat payloads (such as CSV, delimited, fixed length formats, or FIX messages).

| link:https://camel.apache.org/components/latest/csv-dataformat.html[CSV] (camel-quarkus-csv) | 0.2.0 | The CSV data format is used for handling CSV payloads.

| xref:extensions/fhir.adoc[FHIR JSon] (camel-quarkus-fhir) | 0.3.0 | The FHIR JSon data format is used to marshall/unmarshall to/from FHIR objects to/from JSON.

| xref:extensions/fhir.adoc[FHIR XML] (camel-quarkus-fhir) | 0.3.0 | The FHIR XML data format is used to marshall/unmarshall from/to FHIR objects to/from XML.

| link:https://camel.apache.org/components/latest/json-jackson-dataformat.html[JSon Jackson] (camel-quarkus-jackson) | 0.3.0 | JSon data format is used for unmarshal a JSon payload to POJO or to marshal POJO back to JSon payload.

| link:https://camel.apache.org/components/latest/mime-multipart-dataformat.html[MIME Multipart] (camel-quarkus-mail) | 0.2.0 | The MIME Multipart data format is used for marshalling Camel messages with attachments into MIME-Multipart message, and vise-versa.

| link:https://camel.apache.org/components/latest/tarfile-dataformat.html[Tar File] (camel-quarkus-tarfile) | 0.3.0 | The Tar File data format is a message compression and de-compression format of tar files.

| link:https://camel.apache.org/components/latest/tidyMarkup-dataformat.html[TidyMarkup] (camel-quarkus-tagsoup) | 1.0.0-M1 | TidyMarkup data format is used for parsing HTML and return it as pretty well-formed HTML.

| link:https://camel.apache.org/components/latest/yaml-snakeyaml-dataformat.html[YAML SnakeYAML] (camel-quarkus-snakeyaml) | 0.4.0 | YAML is a data format to marshal and unmarshal Java objects to and from YAML.

| link:https://camel.apache.org/components/latest/zipfile-dataformat.html[Zip File] (camel-quarkus-zipfile) | 0.2.0 | The Zip File data format is a message compression and de-compression format of zip files.
|===
// dataformats: END


== Camel Languages

// languages: START
Number of Camel languages: 9 in 3 JAR artifacts (0 deprecated)

[width="100%",cols="4,1,5",options="header"]
|===
| Language | Since | Description

| link:https://camel.apache.org/components/latest/bean-language.html[Bean method] (camel-quarkus-bean) | 0.2.0 | To use a Java bean (aka method call) in Camel expressions or predicates.

| link:https://camel.apache.org/components/latest/constant-language.html[Constant] (camel-quarkus-core) | 0.2.0 | To use a constant value in Camel expressions or predicates.

| link:https://camel.apache.org/components/latest/exchangeProperty-language.html[ExchangeProperty] (camel-quarkus-core) | 0.2.0 | To use a Camel Exchange property in expressions or predicates.

| link:https://camel.apache.org/components/latest/file-language.html[File] (camel-quarkus-core) | 0.2.0 | For expressions and predicates using the file/simple language.

| link:https://camel.apache.org/components/latest/header-language.html[Header] (camel-quarkus-core) | 0.2.0 | To use a Camel Message header in expressions or predicates.

| link:https://camel.apache.org/components/latest/jsonpath-language.html[JsonPath] (camel-quarkus-jsonpath) | 1.0.0-M3 | To use JsonPath in Camel expressions or predicates.

| link:https://camel.apache.org/components/latest/ref-language.html[Ref] (camel-quarkus-core) | 0.2.0 | Reference to an existing Camel expression or predicate, which is looked up from the Camel registry.

| link:https://camel.apache.org/components/latest/simple-language.html[Simple] (camel-quarkus-core) | 0.2.0 | To use Camels built-in Simple language in Camel expressions or predicates.

| link:https://camel.apache.org/components/latest/tokenize-language.html[Tokenize] (camel-quarkus-core) | 0.2.0 | To use Camel message body or header with a tokenizer in Camel expressions or predicates.
|===
// languages: END


== Miscellaneous Extensions

// others: START
Number of miscellaneous extensions: 9 in 9 JAR artifacts (0 deprecated)

[width="100%",cols="4,1,5",options="header"]
|===
| Extension | Since | Description

| (camel-quarkus-attachments) | 0.3.0 | Java Attachments support for Camel Message

| (camel-quarkus-core-cloud) | 0.2.0 | The Camel Quarkus core cloud module

| (camel-quarkus-core-xml) | 0.3.0 | Includes implementations of Java Architecture for XML Binding (JAXB) and Java API for XML Processing (JAXP)

| (camel-quarkus-endpointdsl) | 1.0.0-M3 | camel-quarkus-endpointdsl

| (camel-quarkus-hystrix) | 1.0.0-M1 | Circuit Breaker EIP using Netflix Hystrix

| (camel-quarkus-kotlin) | 1.0.0-M3 | camel-quarkus-kotlin

| xref:extensions/microprofile-health.adoc[camel-quarkus-microprofile-health]  | 0.3.0 | Bridging Eclipse MicroProfile Health with Camel health checks

| xref:extensions/opentracing.adoc[camel-quarkus-opentracing]  | 0.3.0 | Distributed tracing using OpenTracing

| (camel-quarkus-reactive-executor) | 0.3.0 | Reactive Executor for camel-core using Vert.x
|===
// others: END

