## Camel Components

This chapter provides information about supported camel components.

include::camel-activemq.adoc[]

include::camel-ahc.adoc[]

include::camel-ahc-ws.adoc[]

include::camel-amqp.adoc[]

include::camel-apns.adoc[]

include::camel-asterisk.adoc[]

include::camel-atmosphere-websocket.adoc[]

include::camel-atom.adoc[]

include::camel-atomix.adoc[]

include::camel-avro.adoc[]

include::camel-aws-cw.adoc[]

include::camel-aws-ddb.adoc[]

include::camel-aws-ddbstream.adoc[]

include::camel-aws-ec2.adoc[]

include::camel-aws-kinesis.adoc[]

include::camel-aws-s3.adoc[]

include::camel-aws-sdb.adoc[]

include::camel-aws-ses.adoc[]

include::camel-aws-sns.adoc[]

include::camel-aws-sqs.adoc[]

include::camel-aws-swf.adoc[]

include::camel-azure.adoc[]

include::camel-beanstalk.adoc[]

include::camel-bean-validator.adoc[]

include::camel-bindy.adoc[]

include::camel-box.adoc[]

include::camel-braintree.adoc[]

include::camel-caffeine.adoc[]

include::camel-cassandra.adoc[]

include::camel-cdi.adoc[]

include::camel-chronicle-engine.adoc[]

include::camel-chunk.adoc[]

include::camel-cm-sms.adoc[]

include::camel-cmis.adoc[]

include::camel-coap.adoc[]

include::camel-consul.adoc[]

include::camel-couchbase.adoc[]

include::camel-couchdb.adoc[]

include::camel-crypto.adoc[]

include::camel-crypto-cms.adoc[]

include::camel-cxf.adoc[]

include::camel-digitalocean.adoc[]

include::camel-disruptor.adoc[]

include::camel-disruptor-vm.adoc[]

include::camel-dns.adoc[]

include::camel-docker.adoc[]

include::camel-dozer.adoc[]

include::camel-dropbox.adoc[]

include::camel-ehcache.adoc[]

include::camel-ejb.adoc[]

include::camel-elasticsearch-rest.adoc[]

include::camel-elsql.adoc[]

include::camel-etcd.adoc[]

include::camel-exec.adoc[]

include::camel-facebook.adoc[]

include::camel-file2.adoc[]

include::camel-fop.adoc[]

include::camel-freemarker.adoc[]

include::camel-ftp.adoc[]

include::camel-ganglia.adoc[]

include::camel-geocoder.adoc[]

include::camel-git.adoc[]

include::camel-github.adoc[]

include::camel-google-bigquery.adoc[]

include::camel-google-calendar.adoc[]

include::camel-google-drive.adoc[]

include::camel-google-mail.adoc[]

include::camel-google-pubsub.adoc[]

include::camel-grpc.adoc[]

include::camel-guava-eventbus.adoc[]

include::camel-hazelcast.adoc[]

include::camel-hdfs2.adoc[]

include::camel-headersmap.adoc[]

include::camel-hipchat.adoc[]

include::camel-hl7.adoc[]

include::camel-http4.adoc[]

include::camel-hystrix.adoc[]

include::camel-iec60870.adoc[]

include::camel-influxdb.adoc[]

include::camel-ipfs.adoc[]

include::camel-irc.adoc[]

include::camel-jasypt.adoc[]

include::camel-jaxb.adoc[]

include::camel-jcache.adoc[]

include::camel-jclouds.adoc[]

include::camel-jcr.adoc[]

include::camel-jdbc.adoc[]

include::camel-jgroups.adoc[]

include::camel-jing.adoc[]

include::camel-jms.adoc[]

include::camel-jmx.adoc[]

include::camel-jolt.adoc[]

include::camel-jpa.adoc[]

include::camel-jsch.adoc[]

include::camel-json-validator.adoc[]

include::camel-jt400.adoc[]

include::camel-kafka.adoc[]

include::camel-kubernetes.adoc[]

include::camel-ldap.adoc[]

include::camel-ldif.adoc[]

include::camel-leveldb.adoc[]

include::camel-lra.adoc[]

include::camel-lucene.adoc[]

include::camel-lumberjack.adoc[]

include::camel-mail.adoc[]

include::camel-master.adoc[]

include::camel-metrics.adoc[]

include::camel-milo.adoc[]

include::camel-mina2.adoc[]

include::camel-mllp.adoc[]

include::camel-mongodb.adoc[]

include::camel-mongodb-gridfs.adoc[]

include::camel-mongodb3.adoc[]

include::camel-mqtt.adoc[]

include::camel-msv.adoc[]

include::camel-mustache.adoc[]

include::camel-mvel.adoc[]

include::camel-mybatis.adoc[]

include::camel-nagios.adoc[]

include::camel-nats.adoc[]

include::camel-netty4.adoc[]

include::camel-ognl.adoc[]

include::camel-olingo2.adoc[]

include::camel-olingo4.adoc[]

include::camel-openstack.adoc[]

include::camel-opentracing.adoc[]

include::camel-optaplanner.adoc[]

include::camel-paho.adoc[]

include::camel-pdf.adoc[]

include::camel-pgevent.adoc[]

include::camel-printer.adoc[]

include::camel-pubnub.adoc[]

include::camel-quartz2.adoc[]

include::camel-quickfix.adoc[]

include::camel-rabbitmq.adoc[]

include::camel-reactive-streams.adoc[]

include::camel-reactor.adoc[]

include::camel-ribbon.adoc[]

include::camel-rest.adoc[]

include::camel-rest-swagger.adoc[]

include::camel-rmi.adoc[]

include::camel-rss.adoc[]

include::camel-salesforce.adoc[]

include::camel-sap.adoc[]

include::camel-sap-netweaver.adoc[]

include::camel-saxon.adoc[]

include::camel-schematron.adoc[]

include::camel-script.adoc[]

include::camel-servicenow.adoc[]

include::camel-servlet.adoc[]

include::camel-shiro.adoc[]

include::camel-slack.adoc[]

include::camel-smpp.adoc[]

include::camel-snmp.adoc[]

include::camel-solr.adoc[]

include::camel-spring.adoc[]

include::camel-spring-batch.adoc[]

include::camel-spring-integration.adoc[]

include::camel-spring-javaconfig.adoc[]

include::camel-spring-ldap.adoc[]

include::camel-spring-redis.adoc[]

include::camel-spring-ws.adoc[]

include::camel-sip.adoc[]

include::camel-sjms.adoc[]

include::camel-sjms-batch.adoc[]

include::camel-sjms2.adoc[]

include::camel-slack.adoc[]

include::camel-splunk.adoc[]

include::camel-sql.adoc[]

include::camel-ssh.adoc[]

include::camel-stax.adoc[]

include::camel-stomp.adoc[]

include::camel-stream.adoc[]

include::camel-string-template.adoc[]

include::camel-swagger.adoc[]

include::camel-telegram.adoc[]

include::camel-thrift.adoc[]

include::camel-tika.adoc[]

include::camel-twilio.adoc[]

include::camel-twitter.adoc[]

include::camel-undertow.adoc[]

include::camel-velocity.adoc[]

include::camel-vertx.adoc[]

include::camel-weather.adoc[]

include::camel-wordpress.adoc[]

include::camel-xchange.adoc[]

include::camel-xmpp.adoc[]

include::camel-xstream.adoc[]

include::camel-yammer.adoc[]

include::camel-zendesk.adoc[]

include::camel-zipkin.adoc[]

include::camel-zookeeper.adoc[]

include::camel-zookeeper-master.adoc[]

### Adding Components

Adding support for additional Camel Components is easy

[discrete]
#### Add your modules.xml definition

A modules.xml descriptor defines the class loading behavior for your component. It should be placed together with the component's jar in `modules/system/layers/fuse/org/apache/camel/component`. Module dependencies should be setup for direct compile time dependencies.

Here is an example for the camel-ftp component

[source,xml,options="nowrap"]
<module xmlns="urn:jboss:module:1.1" name="org.apache.camel.component.ftp">
  <resources>
    <resource-root path="camel-ftp-2.14.0.jar" />
  </resources>
  <dependencies>
    <module name="com.jcraft.jsch" />
    <module name="javax.xml.bind.api" />
    <module name="org.apache.camel.core" />
    <module name="org.apache.commons.net" />
  </dependencies>
</module>

Make sure that you do not duplicate modules that are already available in {wildfly} and can be reused.

[discrete]
#### Add a reference to the component

To make this module visible by default to arbitrary JavaEE deployments add a reference to `modules/system/layers/fuse/org/apache/camel/component/main/module.xml`

[source,xml,options="nowrap"]
<module xmlns="urn:jboss:module:1.3" name="org.apache.camel.component">
  <dependencies>
    ...
    <module name="org.apache.camel.component.ftp" export="true" services="export"/>
  </dependencies>
</module>
