Components

A Component is essentially a factory of Endpoint instances.

You can explicitly configure Component instances and add them to a CamelContext in an IoC container like Spring or Guice, or they can be auto-discovered using URIs.

Components Included

Camel includes the following Component implementations via URIs.

important

Icon

Make sure to read How do I configure endpoints to learn more about configuring endpoints. For example how to refer to beans in the Registry or how to use raw values for password options, and using property placeholders etc.

Component / ArtifactId / URI

Description

AHC / camel-ahc

To call external HTTP services using Async Http Client

AHC-WS / camel-ahc-ws


 To exchange data with external Websocket servers using Async Http Client

AMQP / camel-amqp

For Messaging with AMQP protocol

APNS / camel-apns

For sending notifications to Apple iOS devices

Atmosphere-Websocket  / camel-atmosphere-websocket


 To exchange data with external Websocket clients using Atmosphere

Atom / camel-atom

Working with Apache Abdera for atom integration, such as consuming an atom feed.

Avro / camel-avro

Working with Apache Avro for data serialization.

AWS-CW / camel-aws

For working with Amazon's CloudWatch (CW).

AWS-DDB / camel-aws

For working with Amazon's DynamoDB (DDB).

AWS-SDB / camel-aws

For working with Amazon's SimpleDB (SDB).

AWS-SES / camel-aws

For working with Amazon's Simple Email Service (SES).

AWS-SNS / camel-aws

For Messaging with Amazon's Simple Notification Service (SNS).

AWS-SQS / camel-aws

For Messaging with Amazon's Simple Queue Service (SQS).

AWS-SWF / camel-aws

For Messaging with Amazon's Simple Workflow Service (SWF).

AWS-S3 / camel-aws

For working with Amazon's Simple Storage Service (S3).

Bean / 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).

Beanstalk / camel-beanstalk


For working with Amazon's Beanstalk.

Bean Validator / 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

Box / camel-box

For uploading, downloading and managing files, managing files, folders, groups, collaborations, etc. on Box.com.

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

Cache / camel-cache

The cache component facilitates creation of caching endpoints and processors using EHCache as the cache implementation.

Class / 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).

CMIS / camel-cmis

Uses the Apache Chemistry client API to interface with CMIS supporting CMS

Cometd / camel-cometd

Used to deliver messages using the jetty cometd implementation of the bayeux protocol

Context / camel-context

Used to refer to endpoints within a separate CamelContext to provide a simple black box composition approach so that routes can be combined into a CamelContext and then used as a black box component inside other routes in other CamelContexts

ControlBus / camel-core

ControlBus EIP that allows to send messages to Endpoints for managing and monitoring your Camel applications.

CouchDB / camel-couchdb

To integrate with Apache CouchDB.

Crypto (Digital Signatures) / camel-crypto

Used to sign and verify exchanges using the Signature Service of the Java Cryptographic Extension.

CXF / camel-cxf

Working with Apache CXF for web services integration

CXF Bean / camel-cxf

Proceess the exchange using a JAX WS or JAX RS annotated bean from the registry. Requires less configuration than the above CXF Component

CXFRS / camel-cxf

Working with Apache CXF for REST services integration

DataFormat / camel-core

for working with Data Formats as if it was a regular Component supporting Endpoints and URIs.

DataSet / 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 / camel-core

Synchronous call to another endpoint from same CamelContext.

Direct-VM / camel-core

Synchronous call to another endpoint in another CamelContext running in the same JVM.

DNS / camel-dns

To lookup domain information and run DNS queries using DNSJava

Disruptor / camel-disruptor

To provide the implementation of SEDA which is based on disruptor

Dropbox / camel-dropbox

The dropbox: component allows you to treat Dropbox remote folders as a producer or consumer of messages.

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

ElasticSearch / camel-elasticsearch

For interfacing with an ElasticSearch server.

Spring Event / camel-spring

Working with Spring ApplicationEvents

EventAdmin / camel-eventadmin

Receiving OSGi EventAdmin events

Exec / camel-exec

For executing system commands

Facebook / camel-facebook

Providing access to all of the Facebook APIs accessible using Facebook4J

File / camel-core

Sending messages to a file or polling a file or directory.

Flatpack / camel-flatpack

Processing fixed width or delimited files or messages using the FlatPack library

FOP / camel-fop

Renders the message into different output formats using Apache FOP

FreeMarker / camel-freemarker

Generates a response using a FreeMarker template

FTP / camel-ftp

Sending and receiving files over FTP.

FTPS / camel-ftp

Sending and receiving files over FTP Secure (TLS and SSL).

GAuth / camel-gae

Used by web applications to implement an OAuth consumer. See also Camel Components for Google App Engine.

GHttp / camel-gae

Provides connectivity to the URL fetch service of Google App Engine but can also be used to receive messages from servlets. See also Camel Components for Google App Engine.

GLogin / camel-gae

Used by Camel applications outside Google App Engine (GAE) for programmatic login to GAE applications. See also Camel Components for Google App Engine.

GTask / camel-gae

Supports asynchronous message processing on Google App Engine by using the task queueing service as message queue. See also Camel Components for Google App Engine.

Google Drive / camel-google-drive

Supports interaction with Google Drive's REST API.

GMail / camel-gae

Supports sending of emails via the mail service of Google App Engine. See also Camel Components for Google App Engine.

Gora/ camel-gora


Supports to work with NoSQL databases using the Apache Gora framework.

Geocoder / camel-geocoder

Supports looking up geocoders for an address, or reverse lookup geocoders from an address.

GitHub / camel-github

For interacting with GitHub

Google Guava EventBus / 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 / 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 support.

HBase / camel-hbase

For reading/writing from/to an HBase store (Hadoop database)

HDFS / camel-hdfs

For reading/writing from/to an HDFS filesystem using Hadoop 1.x

HDFS2 / camel-hdfs2

For reading/writing from/to an HDFS filesystem using Hadoop 2.x

HL7 / camel-hl7

For working with the HL7 MLLP protocol and the HL7 model using the HAPI library

Infinispan / camel-infinispan

For reading/writing from/to Infinispan distributed key/value store and data grid

HTTP / camel-http

For calling out to external HTTP servers using Apache HTTP Client 3.x

HTTP4 / camel-http4

For calling out to external HTTP servers using Apache HTTP Client 4.x

iBATIS / camel-ibatis

Performs a query, poll, insert, update or delete in a relational database using Apache iBATIS

IMAP / camel-mail

Receiving email using IMAP

IMAPS / camel-mail

...

IRC / camel-irc

For IRC communication

JavaSpace / camel-javaspace

Sending and receiving messages through JavaSpace

jclouds / camel-jclouds

For interacting with cloud compute & blobstore service via jclouds

JCR / camel-jcr

Storing a message in a JCR compliant repository like Apache Jackrabbit

JDBC / camel-jdbc

For performing JDBC queries and operations

Jetty / camel-jetty

For exposing services over HTTP

JGroups / camel-jgroups

The jgroups: component provides exchange of messages between Camel infrastructure and JGroups clusters.

JIRA / camel-jira

For interacting with JIRA

JMS / camel-jms

Working with JMS providers

JMX / camel-jmx

For working with JMX notification listeners

JPA / camel-jpa

For using a database as a queue via the JPA specification for working with OpenJPA, Hibernate or TopLink

Jsch / camel-jsch

Support for the scp protocol

JT/400 / camel-jt400

For integrating with data queues on an AS/400 (aka System i, IBM i, i5, ...) system

Kafka / camel-kafka


For producing to or consuming from Apache Kafka message brokers.

Kestrel / camel-kestrel

For producing to or consuming from Kestrel queues

Krati / camel-krati

For producing to or consuming to Krati datastores

Language / camel-core

Executes Languages scripts

LDAP / camel-ldap

Performing searches on LDAP servers (<scope> must be one of object|onelevel|subtree)

LinkedIn / camel-linkedin

Component for retrieving LinkedIn user profiles, connections, companies, groups, posts, etc. using LinkedIn REST API.

Log / camel-core

Uses Jakarta Commons Logging to log the message exchange to some underlying logging system like log4j

Lucene / camel-lucene

Uses Apache Lucene to perform Java-based indexing and full text based searches using advanced analysis/tokenization capabilities

Metrics / camel-metrics

Uses Metrics  to collect application statistics directly from Camel routes.

MINA / camel-mina

Working with Apache MINA 1.x

MINA2 / camel-mina2

Working with Apache MINA 2.x

Mock / camel-core

For testing routes and mediation rules using mocks

MongoDB / 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 / camel-mqtt

Component for communicating with MQTT M2M message brokers

MSV / camel-msv

Validates the payload of a message using the MSV Library

Mustache / camel-mustache

Generates a response using a Mustache template

MVEL / camel-mvel

Generates a response using an MVEL template

MyBatis / camel-mybatis

Performs a query, poll, insert, update or delete in a relational database using MyBatis

Nagios / camel-nagios

Sending passive checks to Nagios using JSendNSCA

Netty / camel-netty

Working with TCP and UDP protocols using Java NIO based capabilities offered by the Netty project

Netty4 / camel-netty4


 Working with TCP and UDP protocols using Java NIO based capabilities offered by the Netty project

Netty HTTP / camel-netty-http

Netty HTTP server and client using the Netty project

Netty4 HTTP / camel-netty4-http

 Netty HTTP server and client using the Netty project 4.x

Olingo2 / camel-olingo2

Communicates with OData 2.0 services using Apache Olingo 2.0.

Openshift / camel-openshift

To manage your Openshift applications.

OptaPlanner / camel-optaplanner

Solves the planning problem contained in a message with OptaPlanner.

Pax-Logging / camel-paxlogging

Receiving Pax-Logging events in OSGi

POP3 / camel-mail

Receiving email using POP3 and JavaMail

POP3S / camel-mail

...

Printer / camel-printer

The printer component facilitates creation of printer endpoints to local, remote and wireless printers. The endpoints provide the ability to print camel directed payloads when utilized on camel routes.

Properties / camel-core

The properties component facilitates using property placeholders directly in endpoint uri definitions.

Quartz / camel-quartz

Provides a scheduled delivery of messages using the Quartz 1.x scheduler

Quartz2 / camel-quartz2

Provides a scheduled delivery of messages using the Quartz 2.x scheduler

Quickfix / camel-quickfix

Implementation of the QuickFix for Java engine which allow to send/receive FIX messages

RabbitMQ / camel-rabbitmq

Component for integrating with RabbitMQ

Ref / camel-core

Component for lookup of existing endpoints bound in the Registry.

Rest / camel-core

Component for consuming Restful resources supporting the Rest DSL and plugins to other Camel rest components.

Restlet / camel-restlet

Component for consuming and producing Restful resources using Restlet

RMI / camel-rmi

Working with RMI

RNC / camel-jing

Validates the payload of a message using RelaxNG Compact Syntax

RNG / camel-jing

Validates the payload of a message using RelaxNG

Routebox / camel-routebox

Facilitates the creation of specialized endpoints that offer encapsulation and a strategy/map based indirection service to a collection of camel routes hosted in an automatically created or user injected camel context

RSS / camel-rss

Working with ROME for RSS integration, such as consuming an RSS feed.

Salesforce / camel-salesforce

To integrate with Salesforce

SAP NetWeaver / camel-sap-netweaver

To integrate with SAP NetWeaver Gateway

schematron / camel-schematron

Camel component of Schematron which supports to validate the XML instance documents.

SEDA / camel-core

Asynchronous call to another endpoint in the same Camel Context

SERVLET / camel-servlet

For exposing services over HTTP through the servlet which is deployed into the Web container.

SFTP / camel-ftp

Sending and receiving files over SFTP (FTP over SSH).

Sip / camel-sip

Publish/Subscribe communication capability using the Telecom SIP protocol. RFC3903 - Session Initiation Protocol (SIP) Extension for Event

SIPS / camel-sip

...

SJMS / camel-sjms

A ground up implementation of a JMS client

SMTP / camel-mail

Sending email using SMTP and JavaMail

SMTP / camel-mail

...

SMPP / camel-smpp

To send and receive SMS using Short Messaging Service Center using the JSMPP library

SMPPS / camel-smpp

...

SNMP / camel-snmp

Polling OID values and receiving traps using SNMP via SNMP4J library

Solr / camel-solr

Uses the Solrj client API to interface with an Apache Lucene Solr server

Spark-rest / camel-spark-rest


 For easily defining REST services endpoints using Spark REST Java library.

Splunk / camel-splunk

For working with Splunk

Spring Boot / camel-spring-boot


Camel auto-configuration for the Spring Boot applications.

SpringBatch / camel-spring-batch

To bridge Camel and Spring Batch

SpringIntegration / camel-spring-integration

The bridge component of Camel and Spring Integration

Spring LDAP / camel-spring-ldap

Camel wrapper for Spring LDAP

Spring Redis / camel-spring-redis

Component for consuming and producing from Redis key-value store Redis

Spring Web Services / 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 / camel-sql

Performing SQL queries using JDBC

SSH component / camel-ssh

For sending commands to a SSH server

StAX / camel-stax

Process messages through a SAX ContentHandler.

Stream / camel-stream

Read or write to an input/output/error/file stream rather like unix pipes

Stomp / camel-stomp

For communicating with Stomp compliant message brokers, like Apache ActiveMQ or ActiveMQ Apollo

StringTemplate / camel-stringtemplate

Generates a response using a String Template

Stub / camel-core

Allows you to stub out some physical middleware endpoint for easier testing or debugging

Test / camel-spring

Creates a Mock endpoint which expects to receive all the message bodies that could be polled from the given underlying endpoint

Timer / camel-core

Used to generate message exchanges when a timer fires You can only consume events from this endpoint.

Twitter / camel-twitter

A twitter endpoint

Validation / camel-core (camel-spring for Camel 2.8 or older)

Validates the payload of a message using XML Schema and JAXP Validation

Velocity / camel-velocity

Generates a response using an Apache Velocity template

Vertx / camel-vertx

Working with the vertx event bus

VM / camel-core

Asynchronous call to another endpoint in the same JVM

Weather / camel-weather

Polls the weather information from Open Weather Map

Websocket / camel-websocket

Communicating with Websocket clients

XML Security / camel-xmlsecurity

Used to sign and verify exchanges using the XML signature specification.

XMPP / camel-xmpp

Working with XMPP and Jabber

XQuery / camel-saxon

Generates a response using an XQuery template

XSLT / camel-core (camel-spring for Camel 2.8 or older)

Generates a response using an XSLT template

Yammer / camel-yammer

Allows you to interact with the Yammer enterprise social network

Zookeeper / camel-zookeeper

Working with ZooKeeper cluster(s)

 


External Components

The following components are not part of the standard Apache Camel distribution and are available under a variety of licenses but can be used to extend Camel's functionality.

Component / ArtifactId / URI

License

Description

ActiveMQ / activemq-camel

Apache

For JMS Messaging with Apache ActiveMQ

ActiveMQ Broker / activemq-camel

Apache

For internal message routing in the ActiveMQ broker using Camel.

Activiti / activiti-camel

Apache

For working with Activiti, a light-weight workflow and Business Process Management (BPM) platform which supports BPMN 2

Couchbase / camel-couchbase in camel-extra

 Couchbase Working with Couchbase NoSQL document database

Db4o / camel-db4o in camel-extra

GPL

For using a db4o datastore as a queue via the db4o library

Esper / camel-esper in camel-extra

GPL

Working with the Esper Library for Event Stream Processing

Fabric AMQ / mq-fabric-camel in fabric8

Apache

The amq: endpoint works exactly like the activemq: endpoint in Apache Camel; only it uses the fabric to automatically discover the broker. So there is no configuration required; it'll just work out of the box and automatically discover whatever ActiveMQ message brokers are available; with failover and load balancing.

Fabric Fabric / fabric-camel in fabric8

ApacheThe fabric: endpoint uses Fabric's discovery mechanism to expose physical sockets, HTTP endpoints, etc. into the runtime registry using a logical name so that clients can use the existing Camel Load Balancer.

Fabric Master / fabric-camel in fabric8

ApacheThe master: endpoint provides a way to ensure only a single consumer in a cluster consumes from a given endpoint; with automatic failover if that JVM dies.

Hibernate / camel-hibernate in camel-extra

GPL

For using a database as a queue via the Hibernate library

JBI / servicemix-camel

Apache

For JBI integration such as working with Apache ServiceMix

JCIFS / camel-jcifs in camel-extra

LGPL

This component provides access to remote file systems over the CIFS/SMB networking protocol by using the JCIFS library.

NMR / servicemix-nmr

Apache

Integration with the Normalized Message Router BUS in ServiceMix 4.x

RCode / camel-rcode in camel-extra

LGPL

Uses Rserve to integrate Camel with the statistics environment R

Scalate / scalate-camel

Apache

Uses the given Scalate template to transform the message

Smooks / camel-smooks in camel-extra.

GPL

For working with EDI parsing using the Smooks library. This component is deprecated as Smooks now provides Camel integration out of the box

Spring Neo4j / camel-spring-neo4j in camel-extra

to bee clarified

Component for producing to Neo4j datastore using the Spring Data Neo4j library

VirtualBox / camel-virtualbox in camel-extra.

GPL V2

The VitualBox component uses the webservice API that exposes VirtualBox functionality and consumes events generated by virtual machines.

ZeroMQ / camel-zeromq in camel-extra.

LGPL

The ZeroMQ component allows you to consumer or produce messages using ZeroMQ.

Poster

See Also

© 2004-2014 The Apache Software Foundation.
Apache Camel, Camel, Apache, the Apache feather logo, and the Apache Camel project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
Graphic Design By Hiram