Chapter 1. Components Overview
Abstract
This chapter provides a summary of all the components available for Apache Camel.
1.1. List of Components
Table of components
The following components are available for use with Apache Camel.
Component | Endpoint URI | Artifact ID | Description |
---|---|---|---|
ActiveMQ | activemq:[queue:|topic:]DestinationName | activemq-core | For JMS Messaging with Apache ActiveMQ. |
AHC | ahc:http[s]://Hostname[:Port][/ResourceUri] | camel-ahc | To call external HTTP services using Async Http Client |
AMQP | amqp:[queue:|topic:]DestinationName[?Options]] | camel-amqp | For messaging with the AMQP protocol. |
APNS |
apns:notify[?Options] apns:consumer[?Options] | camel-apns | For sending notifications to Apple iOS devices. |
Atom | atom://AtomUri[?Options] | camel-atom | Working with Apache Abdera for atom integration, such as consuming an atom feed. |
Avro | avro:http://Hostname[:Port][?Options] | camel-avro | Working with Apache Avro for data serialization. |
AWS-CW | aws-cw://Namespace[?Options] | camel-aws | For sending metrics to Amazon CloudWatch. |
AWS-DDB | aws-ddb://TableName[?Options] | camel-aws | For working with Amazon's DynamoDB (DDB). |
AWS-SDB | aws-sdb://DomainName[?Options] | camel-aws | For working with Amazon's SimpleDB (SDB). |
AWS-SES | aws-ses://From[?Options] | camel-aws | For working with Amazon's Simple Email Service (SES). |
AWS-S3 | aws-s3://BucketName[?Options] | camel-aws | For working with Amazon's Simple Storage Service (S3). |
AWS-SNS | aws-sns://TopicName[?Options] | camel-aws | For Messaging with Amazon's Simple Notification Service (SNS). |
AWS-SQS | aws-sqs://QueueName[?Options] | camel-aws | For Messaging with Amazon's Simple Queue Service (SQS). |
Bean | bean:BeanID[?methodName=Method] | camel-core | Uses the Bean Binding to bind message exchanges to beans in the Registry. Is also used for exposing and invoking POJO (Plain Old Java Objects). |
Bean Validation |
| camel-bean-validator | Validates the payload of a message using the Java Validation API (JSR 303 and JAXP Validation) and its reference implementation Hibernate Validator. |
Browse | browse: Name | camel-core | Provdes a simple BrowsableEndpoint which can be useful for testing, visualisation tools or debugging. The exchanges sent to the endpoint are all available to be browsed. |
Cache | cache://CacheName[?Options] | camel-cache | The cache component enables you to perform caching operations using EHCache as the Cache Implementation. |
Class | class:ClassName[?method=MethodName] | camel-core | Uses the Bean binding to bind message exchanges to beans in the registry. Is also used for exposing and invoking POJOs (Plain Old Java Objects). |
Cometd | cometd://Hostname[:Port]/ChannelName[?Options] | camel-cometd | A transport for working with the jetty implementation of the cometd/bayeux protocol. |
Context | context:CamelContextId:LocalEndpointName | camel-context | Refers to an endpoint in a different CamelContext . |
Crypto |
crypto:sign:Name[?Options] crypto:verify:Name[?Options] | camel-crypto | Sign and verify exchanges using the Signature Service of the Java Cryptographic Extension. |
CXF | cxf://Address[?Options] | camel-cxf | Working with Apache CXF for web services integration. |
CXF Bean | cxf:BeanName | camel-cxf | Proceess the exchange using a JAX WS or JAX RS annotated bean from the registry. |
CXFRS | cxfrs:bean:RsEndpoint[?Options] | camel-cxf | Provides integration with Apache CXF for connecting to JAX-RS services hosted in CXF. |
DataFormat | dataformat:Name:(marshal|unmarshal)[?Options] | camel-core | Enables you to marshal or unmarshal a message in one of the standard Camel data formats, by sending it to an endpoint. |
DataSet | dataset:Name[?Options] | camel-core | For load & soak testing the DataSet provides a way to create huge numbers of messages for sending to Components or asserting that they are consumed correctly. |
Direct | direct:EndpointID[?Options] | camel-core | Synchronous call (single-threaded) to another endpoint from same CamelContext. |
Direct-VM | direct-vm:EndpointID[?Options] | camel-core | Synchronous call (single-threaded) to another endpoint in another CamelContext running in the same JVM. |
Disruptor |
disruptor:Name[?Options] disruptor-vm:Name[?Options] | camel-disruptor | Similar to a SEDA endpoint, but uses a Disruptor instead of a blocking queue. |
DNS | dns:Operation | camel-dns | Look up domain information and run DNS queries using DNSJava |
EJB | ejb:EjbName[?method=MethodName] | camel-ejb | Uses the Bean binding to bind message exchanges to EJBs. It works like the Bean component, but just for accessing EJBs. Supports EJB 3.0 onwards. |
EventAdmin | eventadmin:topic | camel-eventadmin | |
Exec | exec://Executable[?Options] | camel-exec | Execute system command. |
Fabric | fabric:ClusterID[:PublishedURI][?Options] | fabric-camel | Look up or publish a fabric endpoint. |
facebook://[Endpoint][?Options] | camel-facebook | Provides access to all of the Facebook APIs accessible using Facebook4J. | |
File2 | file://DirectoryName[?Options] | camel-core | Sending messages to a file or polling a file or directory. |
Flatpack | flatpack:[fixed|delim]: ConfigFile | camel-flatpack | Processing fixed width or delimited files or messages using the FlatPack library |
FOP | fop:OutputFormat | camel-fop | Renders the message into different output formats using Apache FOP. |
Freemarker | freemarker: TemplateResource | camel-freemarker | Generates a response using a Freemarker template. |
FTP2 | ftp://[Username@]Hostname[:Port]/Directoryname[?Options] | camel-ftp | Sending and receiving files over FTP. |
GAuth | gauth://Name[?Options] | camel-gae | Used by web applications to implement a Google-specific OAuth consumer |
GHTTP |
ghttp:///Path[?Options] ghttp://Hostname[:Port]/Path[?Options] ghttps://Hostname[:Port]/Path[?Options] | camel-gae | Provides connectivity to the GAE URL fetch service and can also be used to receive messages from servlets. |
GLogin | glogin://Hostname[:Port][?Options] | camel-gae | Used by Camel applications outside Google App Engine (GAE) for programmatic login to GAE applications. |
GMail |
gmail://Username@gmail.com[?Options] gmail://Username@googlemail.com[?Options] | camel-gae | Supports sending of emails via the GAE mail service. |
GTask | gtask://QueueName | camel-gae | Supports asynchronous message processing on GAE using the task queueing service as a message queue. |
Geocoder |
geocoder:Address:Name[?Options] geocoder:latlng:Latitude,Longitude[?Options] | camel-geocoder | Looks up geocodes (latitude and longitude) for a given address, or performs reverse look-up. |
Guava EventBus | guava-eventbus:BusName[?EventClass=ClassName] | camel-guava-eventbus | The Google Guava EventBus allows publish-subscribe-style communication between components without requiring the components to explicitly register with one another (and thus be aware of each other). This component provides integration bridge between Camel and Google Guava EventBus infrastructure. |
Hazelcast | hazelcast://StoreType:CacheName[?Options] | camel-hazelcast | Hazelcast is a data grid entirely implemented in Java (single JAR). This component supports map, multimap, seda, queue, set, atomic number and simple cluster. |
HBase | hbase://Table[?Options] | camel-hbase | For reading/writing from/to an HBase store (Hadoop database). |
HDFS | hdfs://Path[?Options] | camel-hdfs | For reading/writing from/to an HDFS filesystem. |
HL7 | mina:tcp://Host[:Port] | camel-hl7 | For working with the HL7 MLLP protocol and the HL7 model using the HAPI library. |
HTTP | http://Hostname[:Port][/ResourceUri] | camel-http | For calling out to external HTTP servers, using Apache HTTP Client 3.x. |
HTTP4 | http://Hostname[:Port][/ResourceUri] | camel-http4 | For calling out to external HTTP servers, using Apache HTTP Client 4.x. |
iBATIS | ibatis:OperationName[?Options] | camel-ibatis | Performs a query, poll, insert, update or delete in a relational database using Apache iBATIS. |
IMap | imap://[UserName@]Host[:Port][?Options] | camel-mail | Receiving email using IMap. |
IRC | irc:Host[:Port]/#Room | camel-irc | For IRC communication. |
JavaSpace | javaspace:jini://Host[?Options] | camel-javaspace | Sending and receiving messages through JavaSpace. |
JBI |
jbi:service:serviceNamespace[sep]serviceName jbi:endpoint:serviceNamespace[sep]serviceName[sep]endpointName jbi:name:endpointName | camel-jbi | For JBI integration such as working with Apache ServiceMix. |
JClouds | jclouds:[Blobstore|ComputService]:Provider | camel-jclouds | For interacting with cloud compute & blobstore service via JClouds. |
JCR | jcr://UserName:Password@Repository/path/to/node | camel-jcr | Storing a message in a JCR (JSR-170) compliant repository like Apache Jackrabbit. |
JDBC | jdbc:DataSourceName[?Options] | camel-jdbc | For performing JDBC queries and operations. |
Jetty | jetty:http://Host[:Port][/ResourceUri] | camel-jetty | For exposing services over HTTP. |
Jing |
rng:LocalOrRemoteResource rnc:LocalOrRemoteResource | camel-jing | Validates the payload of a message using RelaxNG or RelaxNG compact syntax. |
JMS | jms:[temp:][queue:|topic:]DestinationName[?Options] | camel-jms | Working with JMS providers. |
JMX | jmx://Platform[?Options] | camel-jmx | For working with JMX notification listeners. |
JPA | jpa:[EntityClassName][?Options] | camel-jpa | For using a database as a queue via the JPA specification for working with OpenJPA, Hibernate or TopLink. |
Jsch | scp://Hostname/Destination | camel-jsch | Support for the scp protocol. |
JT400 | jt400://User:Pwd@System/PathToDTAQ | camel-jt400 | For integrating with data queues on an AS/400 (aka System i, IBM i, i5, ...) system. |
Kestrel | kestrel://[AddressList/]Queuename[?Options] | camel-kestrel | For producing to or consuming from Kestrel queues. |
Krati | krati://[PathToDatastore/][?Options] | camel-krati | For producing to or consuming to Krati datastores. |
Language | language://LanguageName[:Script][?Options] | camel-core | Executes language scripts. |
LDAP | ldap:Host[:Port]?base=...[&scope=Scope] | camel-ldap | Performing searches on LDAP servers (Scope must be one of object|onelevel|subtree ). |
LevelDB | N/A | camel-leveldb | A very lightweight and embeddable key-value database. |
List | list:ListID | camel-core | Provides a simple BrowsableEndpoint which can be useful for testing, visualisation tools or debugging. The exchanges sent to the endpoint are all available to be browsed. |
Log | log:LoggingCategory[?level=LoggingLevel] | camel-core | Uses Jakarta Commons Logging to log the message exchange to some underlying logging system like log4j. |
Lucene |
lucene:SearcherName:insert[?analyzer=Analyzer] lucene:SearcherName:query[?analyzer=Analyzer] | camel-lucene | Uses Apache Lucene to perform Java-based indexing and full text based searches using advanced analysis/tokenization capabilities. |
Master | REVISIT | ||
MINA |
mina:tcp://Hostname[:Port][?Options] mina:udp://Hostname[:Port][?Options] mina:multicast://Hostname[:Port][?Options] mina:vm://Hostname[:Port][?Options] | camel-mina | Working with Apache MINA. |
MINA2 |
mina2:tcp://Hostname[:Port][?Options] mina2:udp://Hostname[:Port][?Options] mina2:vm://Hostname[:Port][?Options] | camel-mina2 | Working with Apache MINA 2.x. |
Mock | mock:EndpointID | camel-core | For testing routes and mediation rules using mocks. |
MongoDB | mongodb:Connection[?Options] | camel-mongodb | Interacts with MongoDB databases and collections. Offers producer endpoints to perform CRUD-style operations and more against databases and collections, as well as consumer endpoints to listen on collections and dispatch objects to Camel routes. |
MQTT | mqtt:Name | camel-mqtt | Component for communicating with MQTT M2M message brokers |
MSV | msv:LocalOrRemoteResource | camel-msv | Validates the payload of a message using the MSV Library. |
Mustache | mustache:TemplateName[?Options] | camel-mustache | Enables you to process a message using a Mustache template. |
MVEL | mvel:TemplateName[?Options] | camel-mvel | Enables you to process a message using an MVEL template. |
MyBatis | mybatis:StatementName | camel-mybatis | Performs a query, poll, insert, update or delete in a relational database using MyBatis. |
Nagios | nagios://Host[:Port][?Options] | camel-nagios | Sending passive checks to Nagios using JSendNSCA. |
Netty |
netty:tcp://localhost:99999[?Options] netty:udp://Remotehost:99999/[?Options] | camel-netty | Working with TCP and UDP protocols using Java NIO based capabilities offered by the JBoss Netty community project. |
Netty HTTP | netty-http:http://Hostname[:Port][?Options] | camel-netty-http | An extension to the Netty component, facilitating the HTTP transport. |
NMR | nmr:serviceMixURI | servicemix-camel | For OSGi integration when working with Red Hat JBoss Fuse. Enables you to specify the URI of a ServiceMix endpoint. |
Pax-Logging | paxlogging:Appender | camel-paxlogging | |
POP | pop3://[UserName@]Host[:Port][?Options] | camel-mail | Receiving email using POP3 and JavaMail. |
Printer |
lpr://localhost[:Port]/default[?Options] lpr://RemoteHost[:Port]/path/to/printer[?Options] | camel-printer | Provides a way to direct payloads on a route to a printer. |
Properties | properties://Key[?Options] | camel-properties | Facilitates using property placeholders directly in endpoint URI definitions. |
Quartz |
quartz://[GroupName/]TimerName[?Options] quartz://GroupName/TimerName/CronExpression | camel-quartz | Provides a scheduled delivery of messages using the Quartz scheduler. |
Quartz2 |
quartz2://[GroupName/]TimerName[?Options] quartz2://GroupName/TimerName/CronExpression | camel-quartz2 | Provides a scheduled delivery of messages using the Quartz Scheduler 2.x. |
Quickfix |
quickfix-server:ConfigFile quickfix-client:ConfigFile | camel-quickfix | Implementation of the QuickFix for Java engine which allow to send/receive FIX messages. |
RabbitMQ | rabbitmq://Hostname[:Port]/ExchangeName[?Options] | camel-rabbitmq | Enables you to produce and consume messages from a RabbitMQ instance. |
Ref | ref:EndpointID | camel-core | Component for lookup of existing endpoints bound in the Registry. |
Restlet | restlet:RestletUrl[?Options] | camel-restlet | Component for consuming and producing Restful resources using Restlet. |
RMI | rmi://RmiRegistryHost:RmiRegistryPort/RegistryPath | camel-rmi | Working with RMI. |
Routebox | routebox:routeboxName[?Options] | camel-routebox | |
RSS | rss:Uri | camel-rss | Working with ROME for RSS integration, such as consuming an RSS feed. |
RNC | rnc:LocalOrRemoteResource | camel-jing | Validates the payload of a message using RelaxNG Compact Syntax. |
RNG | rng:LocalOrRemoteResource | camel-jing | Validates the payload of a message using RelaxNG. |
Salesforce | salesforce:Topic[?Options] | camel-salesforce | Enables producer and consumer endpoints to communicate with Salesforce using Java DTOs. |
SAP | sap:[destination:DestinationName|server:ServerName]rfcName[?Options] | camel-sap | Enables outbound and inbound communication to and from SAP systems using synchronous remote function calls, sRFC. |
Chapter 103, SAP NetWeaver | sap-netweaver:https://Hostname[:Port]/Path[?Options] | camel-sap-netweaver | Integrates with the SAP NetWeaver Gateway using HTTP transports. |
Scalate | scalate:TemplateName[?Options] | org.fusesource.scalate/scalate-camel | Uses the given Scalate template to transform the message. |
SEDA | seda:EndpointID | camel-core | Used to deliver messages to a java.util.concurrent.BlockingQueue, useful when creating SEDA style processing pipelines within the same CamelContext. |
SERVLET | servlet://RelativePath[?Options] | camel-servlet | Provides HTTP based endpoints for consuming HTTP requests that arrive at a HTTP endpoint and this endpoint is bound to a published Servlet. |
ServletListener | N/A | camel-servletlistener | Used for bootstrapping Camel applications in Web applications. |
SFTP | sftp://[Username@]Hostname[:Port]/Directoryname[?Options] | camel-ftp | Sending and receiving files over SFTP. |
Sip |
sip://User@Hostname[:Port][?Options] sips://User@Hostname[:Port][?Options] | camel-sip | Publish/subscribe communication capability using the telecom SIP protocol. RFC3903 - Session Initiation Protocol (SIP) Extension for Event |
SJMS | sjms:[queue:|topic:]destinationName[?Options] | camel-sjms | A JMS client for Camel that employs best practices for JMS client creation and configuration. |
SMPP | smpp://UserInfo@Host[:Port][?Options] | camel-smpp | To send and receive SMS using Short Messaging Service Center using the JSMPP library. |
SMTP | smtp://[UserName@]Host[:Port][?Options] | camel-mail | Sending email using SMTP and JavaMail. |
SNMP | snmp://Hostname[:Port][?Options] | camel-snmp | Gives you the ability to poll SNMP capable devices or receive traps. |
Solr | solr://Hostname[:Port]/Solr[?Options] | camel-solr | Uses the Solrj client API to interface with an Apache Lucene Solr server. |
Spring Batch | spring-batch:Job[?Options] | camel-spring-batch | To bridge Camel and Spring Batch. |
Spring Event | spring-event://dummy | camel-spring | Working with Spring ApplicationEvents. |
Spring Integration | spring-integration:DefaultChannelName[?Options] | camel-spring-integration | The bridge component of Camel and Spring Integration. |
Spring LDAP | spring-ldap:SpringLdapTemplate[?Options] | camel-spring-ldap | Provides a Camel wrapper for Spring LDAP. |
Spring Redis | spring-redis://Hostname[:Port][?Options] | camel-spring-redis | Enables sending and receiving messages from Redis, which is an advanced key-value store, where keys can contain strings, hashes, lists, sets and sorted sets. |
Spring Web Services | spring-ws:[MappingType:]Address[?Options] | camel-spring-ws | Client-side support for accessing web services, and server-side support for creating your own contract-first web services using Spring Web Services. |
SQL | sql:SqlQueryString[?Options] | camel-sql | Performing SQL queries using JDBC. |
SSH | ssh:[Username[:Password]@]Host[:Port][?Options] | camel-ssh | For sending commands to a SSH server. |
StAX | stax:ContentHandlerClassName | camel-stax | Process messages through a SAX ContentHandler. |
Stomp | stomp:queue:Destination[?Options] | camel-stomp | For sending messages to or receiving messages from a Stomp compliant broker, such as Apache ActiveMQ. |
Stream | stream:[in|out|err|header][?Options] | camel-stream | Read or write to an input/output/error/file stream rather like Unix pipes. |
String Template | string-template:TemplateURI[?Options] | camel-stringtemplate | Generates a response using a String Template. |
Stub | stub:SomeOtherCamelUri | camel-core | Allows you to stub out some physical middleware endpoint for easier testing or debugging. |
Test | test:RouterEndpointUri | camel-spring | Creates a Mock endpoint which expects to receive all the message bodies that could be polled from the given underlying endpoint. |
Timer | timer:EndpointID[?Options] | camel-core | A timer endpoint. |
twitter://[Endpoint][?Options] | camel-twitter | A Twitter endpoint. | |
UrlRewrite | N/A | camel-urlrewrite | Enables you to plug URL rewrite functionality into the HTTP, HTTP4, Jetty, or AHC components. |
Validation | validator:LocalOrRemoteResource | camel-spring | Validates the payload of a message using XML Schema and JAXP Validation. |
Velocity | velocity:TemplateURI[?Options] | camel-velocity | Generates a response using an Apache Velocity template. |
Vertx | vertx:ChannelName[?Options] | camel-vertx | For working with the Vertx Event Bus. |
VM | vm:EndpointID | camel-core | Used to deliver messages to a java.util.concurrent.BlockingQueue, useful when creating SEDA style processing pipelines within the same JVM. |
Weather | weather://DummyName[?Options] | camel-weather | Polls weather information from Open Weather Map: a site that provides free global weather and forecast information. |
Websocket | websocket://Hostname[:Port]/Path | camel-websocket | Communicating with Websocket clients. |
XML RPC | xmlrpc://ServerURI[?Options] | camel-xmlrpc | Provides a data format for XML, which allows serialization and deserialization of request messages and response message using Apache XmlRpc's bindary data format. |
XML Security | N/A | camel-xmlsecurity | Generate and validate XML signatures as described in the W3C standard XML Signature Syntax and Processing. |
XMPP | xmpp:Hostname[:Port][/Room] | camel-xmpp | Working with XMPP and Jabber. |
XQuery | xquery:TemplateURI | camel-saxon | Generates a response using an XQuery template. |
XSLT | xslt:TemplateURI[?Options] | camel-spring | Enables you to process a message using an XSLT template. |
Yammer | yammer:[function][?Options] | camel-yammer | Enables you to interact with the Yammer enterprise social network. |
Zookeeper | zookeeper://Hostname[:Port]/Path | camel-zookeeper | Working with ZooKeeper cluster(s). |