You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2016/08/16 08:03:53 UTC

[29/51] [partial] camel git commit: CAMEL-9541: Use -component as suffix for component docs.

http://git-wip-us.apache.org/repos/asf/camel/blob/9c0b7baf/components/camel-cxf/src/main/docs/cxfrs.adoc
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/main/docs/cxfrs.adoc b/components/camel-cxf/src/main/docs/cxfrs.adoc
deleted file mode 100644
index 06fa687..0000000
--- a/components/camel-cxf/src/main/docs/cxfrs.adoc
+++ /dev/null
@@ -1,368 +0,0 @@
-[[CXFRS-CXFRSComponent]]
-CXFRS Component
-~~~~~~~~~~~~~~~
-
-[Note]
-====
-
-
-When using CXF as a consumer, the link:cxf-bean-component.html[CXF Bean
-Component] allows you to factor out how message payloads are received
-from their processing as a RESTful or SOAP web service. This has the
-potential of using a multitude of transports to consume web services.
-The bean component's configuration is also simpler and provides the
-fastest method to implement web services using Camel and CXF.
-
-====
-
-The *cxfrs:* component provides integration with
-http://cxf.apache.org[Apache CXF] for connecting to JAX-RS 1.1 and 2.0
-services hosted in CXF.
-
-Maven users will need to add the following dependency to their pom.xml
-for this component:
-
-[source,xml]
--------------------------------------------------------------------------------------
-<dependency>
-   <groupId>org.apache.camel</groupId>
-   <artifactId>camel-cxf</artifactId>
-   <version>x.x.x</version>  <!-- use the same version as your Camel core version -->
-</dependency>
--------------------------------------------------------------------------------------
-
-[[CXFRS-URIformat]]
-URI format
-^^^^^^^^^^
-
-[source,java]
------------------------
-cxfrs://address?options
------------------------
-
-Where *address* represents the CXF endpoint's address
-
-[source,java]
----------------------
-cxfrs:bean:rsEndpoint
----------------------
-
-Where *rsEndpoint* represents the spring bean's name which presents the
-CXFRS client or server
-
-For either style above, you can append options to the URI as follows:
-
-[source,java]
-------------------------------------------------------------------
-cxfrs:bean:cxfEndpoint?resourceClasses=org.apache.camel.rs.Example
-------------------------------------------------------------------
-
-[[CXFRS-Options]]
-Options
-^^^^^^^
-
-
-// component options: START
-The CXF-RS component supports 1 options which are listed below.
-
-
-
-{% raw %}
-[width="100%",cols="2s,1m,8",options="header"]
-|=======================================================================
-| Name | Java Type | Description
-| headerFilterStrategy | HeaderFilterStrategy | To use a custom HeaderFilterStrategy to filter header to and from Camel message.
-|=======================================================================
-{% endraw %}
-// component options: END
-
-
-
-// endpoint options: START
-The CXF-RS component supports 29 endpoint options which are listed below:
-
-{% raw %}
-[width="100%",cols="2s,1,1m,1m,5",options="header"]
-|=======================================================================
-| Name | Group | Default | Java Type | Description
-| beanId | common |  | String | To lookup an existing configured CxfRsEndpoint. Must used bean: as prefix.
-| address | common |  | String | The service publish address.
-| features | common |  | List | Set the feature list to the CxfRs endpoint.
-| loggingFeatureEnabled | common | false | boolean | This option enables CXF Logging Feature which writes inbound and outbound REST messages to log.
-| loggingSizeLimit | common |  | int | To limit the total size of number of bytes the logger will output when logging feature has been enabled.
-| modelRef | common |  | String | This option is used to specify the model file which is useful for the resource class without annotation. When using this option then the service class can be omitted to emulate document-only endpoints
-| providers | common |  | String | Set custom JAX-RS provider(s) list to the CxfRs endpoint. You can specify a string with a list of providers to lookup in the registy separated by comma.
-| resourceClasses | common |  | List | The resource classes which you want to export as REST service. Multiple classes can be separated by comma.
-| schemaLocations | common |  | List | Sets the locations of the schema(s) which can be used to validate the incoming XML or JAXB-driven JSON.
-| skipFaultLogging | common | false | boolean | This option controls whether the PhaseInterceptorChain skips logging the Fault that it catches.
-| bindingStyle | consumer | Default | BindingStyle | Sets how requests and responses will be mapped to/from Camel. Two values are possible: SimpleConsumer: This binding style processes request parameters multiparts etc. and maps them to IN headers IN attachments and to the message body. It aims to eliminate low-level processing of org.apache.cxf.message.MessageContentsList. It also also adds more flexibility and simplicity to the response mapping. Only available for consumers. Default: The default style. For consumers this passes on a MessageContentsList to the route requiring low-level processing in the route. This is the traditional binding style which simply dumps the org.apache.cxf.message.MessageContentsList coming in from the CXF stack onto the IN message body. The user is then responsible for processing it according to the contract defined by the JAX-RS method signature. Custom: allows you to specify a custom binding through the binding option.
-| bridgeErrorHandler | consumer | false | boolean | Allows for bridging the consumer to the Camel routing Error Handler which mean any exceptions occurred while the consumer is trying to pickup incoming messages or the likes will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions that will be logged at WARN/ERROR level and ignored.
-| exceptionHandler | consumer (advanced) |  | ExceptionHandler | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this options is not in use. By default the consumer will deal with exceptions that will be logged at WARN/ERROR level and ignored.
-| hostnameVerifier | producer |  | HostnameVerifier | The hostname verifier to be used. Use the notation to reference a HostnameVerifier from the registry.
-| sslContextParameters | producer |  | SSLContextParameters | The Camel SSL setting reference. Use the notation to reference the SSL Context.
-| throwExceptionOnFailure | producer | true | boolean | This option tells the CxfRsProducer to inspect return codes and will generate an Exception if the return code is larger than 207.
-| httpClientAPI | producer (advanced) | true | boolean | If it is true the CxfRsProducer will use the HttpClientAPI to invoke the service. If it is false the CxfRsProducer will use the ProxyClientAPI to invoke the service
-| ignoreDeleteMethodMessageBody | producer (advanced) | false | boolean | This option is used to tell CxfRsProducer to ignore the message body of the DELETE method when using HTTP API.
-| maxClientCacheSize | producer (advanced) | 10 | int | This option allows you to configure the maximum size of the cache. The implementation caches CXF clients or ClientFactoryBean in CxfProvider and CxfRsProvider.
-| binding | advanced |  | CxfRsBinding | To use a custom CxfBinding to control the binding between Camel Message and CXF Message.
-| bus | advanced |  | Bus | To use a custom configured CXF Bus.
-| continuationTimeout | advanced | 30000 | long | This option is used to set the CXF continuation timeout which could be used in CxfConsumer by default when the CXF server is using Jetty or Servlet transport.
-| cxfRsEndpointConfigurer | advanced |  | CxfRsEndpointConfigurer | This option could apply the implementation of org.apache.camel.component.cxf.jaxrs.CxfRsEndpointConfigurer which supports to configure the CXF endpoint in programmatic way. User can configure the CXF server and client by implementing configureServer/Client method of CxfEndpointConfigurer.
-| defaultBus | advanced | false | boolean | Will set the default bus when CXF endpoint create a bus by itself
-| exchangePattern | advanced | InOnly | ExchangePattern | Sets the default exchange pattern when creating an exchange
-| headerFilterStrategy | advanced |  | HeaderFilterStrategy | To use a custom HeaderFilterStrategy to filter header to and from Camel message.
-| performInvocation | advanced | false | boolean | When the option is true Camel will perform the invocation of the resource class instance and put the response object into the exchange for further processing.
-| propagateContexts | advanced | false | boolean | When the option is true JAXRS UriInfo HttpHeaders Request and SecurityContext contexts will be available to custom CXFRS processors as typed Camel exchange properties. These contexts can be used to analyze the current requests using JAX-RS API.
-| synchronous | advanced | false | boolean | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).
-|=======================================================================
-{% endraw %}
-// endpoint options: END
-
-
-You can also configure the CXF REST endpoint through the spring
-configuration. Since there are lots of difference between the CXF REST
-client and CXF REST Server, we provide different configuration for
-them. Please check out the
-http://svn.apache.org/repos/asf/camel/trunk/components/camel-cxf/src/main/resources/schema/cxfEndpoint.xsd[schema
-file] and https://cwiki.apache.org/CXF20DOC/JAX-RS[CXF JAX-RS
-documentation] for more information.
-
-[[CXFRS-HowtoconfiguretheRESTendpointinCamel]]
-How to configure the REST endpoint in Camel
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-In
-http://svn.apache.org/repos/asf/camel/trunk/components/camel-cxf/src/main/resources/schema/cxfEndpoint.xsd[camel-cxf
-schema file], there are two elements for the REST endpoint definition.
-*cxf:rsServer* for REST consumer, *cxf:rsClient* for REST producer. +
- You can find a Camel REST service route configuration example here.
-
-[[CXFRS-HowtooverridetheCXFproduceraddressfrommessageheader]]
-How to override the CXF producer address from message header
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The�`camel-cxfrs`�producer supports to override the services address by
-setting the message with the key of "CamelDestinationOverrideUrl".
-
-[source,java]
-----------------------------------------------------------------------------------------------
- // set up the service address from the message header to override the setting of CXF endpoint
- exchange.getIn().setHeader(Exchange.DESTINATION_OVERRIDE_URL, constant(getServiceAddress()));
-----------------------------------------------------------------------------------------------
-
-[[CXFRS-ConsumingaRESTRequest-SimpleBindingStyle]]
-Consuming a REST Request - Simple Binding Style
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-*Available as of Camel 2.11*
-
-The `Default` binding style is rather low-level, requiring the user to
-manually process the `MessageContentsList` object coming into the route.
-Thus, it tightly couples the route logic with the method signature and
-parameter indices of the JAX-RS operation. Somewhat inelegant, difficult
-and error-prone.
-
-In contrast, the `SimpleConsumer` binding style performs the following
-mappings, in order to *make the request data more accessible* to you
-within the Camel Message:
-
-* JAX-RS Parameters (@HeaderParam, @QueryParam, etc.) are injected as IN
-message headers. The header name matches the value of the annotation.
-* The request entity (POJO or other type) becomes the IN message body.
-If a single entity cannot be identified in the JAX-RS method signature,
-it falls back to the original `MessageContentsList`.
-* Binary `@Multipart` body parts become IN message attachments,
-supporting `DataHandler`, `InputStream`, `DataSource` and CXF's
-`Attachment` class.
-* Non-binary `@Multipart` body parts are mapped as IN message headers.
-The header name matches the Body Part name.
-
-Additionally, the following rules apply to the *Response mapping*:
-
-* If the message body type is different to `javax.ws.rs.core.Response`
-(user-built response), a new `Response` is created and the message body
-is set as the entity (so long it's not null). The response status code
-is taken from the `Exchange.HTTP_RESPONSE_CODE` header, or defaults to
-200 OK if not present.
-* If the message body type is equal to `javax.ws.rs.core.Response`, it
-means that the user has built a custom response, and therefore it is
-respected and it becomes the final response.
-* In all cases, Camel headers permitted by custom or default
-`HeaderFilterStrategy` are added to the HTTP response.
-
-[[CXFRS-EnablingtheSimpleBindingStyle]]
-Enabling the Simple Binding Style
-+++++++++++++++++++++++++++++++++
-
-This binding style can be activated by setting the `bindingStyle`
-parameter in the consumer endpoint to value `SimpleConsumer`:
-
-[source,java]
----------------------------------------------------------
-  from("cxfrs:bean:rsServer?bindingStyle=SimpleConsumer")
-    .to("log:TEST?showAll=true");
----------------------------------------------------------
-
-[[CXFRS-Examplesofrequestbindingwithdifferentmethodsignatures]]
-Examples of request binding with different method signatures
-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
-Below is a list of method signatures along with the expected result from
-the Simple binding.
-
-*`public Response doAction(BusinessObject request);`* +
- Request payload is placed in IN message body, replacing the original
-MessageContentsList.
-
-*`public Response doAction(BusinessObject request, @HeaderParam("abcd") String abcd, @QueryParam("defg") String defg);`* 
- Request payload placed in IN message body, replacing the original
-MessageContentsList. Both request params mapped as IN message headers
-with names abcd and defg.
-
-*`public Response doAction(@HeaderParam("abcd") String abcd, @QueryParam("defg") String defg);`* 
- Both request params mapped as IN message headers with names abcd and
-defg. The original MessageContentsList is preserved, even though it only
-contains the 2 parameters.
-
-*`public Response doAction(@Multipart(value="body1") BusinessObject request, @Multipart(value="body2") BusinessObject request2);`* 
- The first parameter is transferred as a header with name body1, and the
-second one is mapped as header body2. The original MessageContentsList
-is preserved as the IN message body.
-
-*`public Response doAction(InputStream abcd);`* 
- The InputStream is unwrapped from the MessageContentsList and preserved
-as the IN message body.
-
-*`public Response doAction(DataHandler abcd);`* 
- The DataHandler is unwrapped from the MessageContentsList and preserved
-as the IN message body.
-
-[[CXFRS-MoreexamplesoftheSimpleBindingStyle]]
-More examples of the Simple Binding Style
-+++++++++++++++++++++++++++++++++++++++++
-
-Given a JAX-RS resource class with this method:
-
-[source,java]
-------------------------------------------------------------------------------------------------------------------------------------------------
-    @POST @Path("/customers/{type}")
-    public Response newCustomer(Customer customer, @PathParam("type") String type, @QueryParam("active") @DefaultValue("true") boolean active) {
-        return null;
-    }
-------------------------------------------------------------------------------------------------------------------------------------------------
-
-Serviced by the following route:
-
-[source,java]
---------------------------------------------------------------------------------------------
-    from("cxfrs:bean:rsServer?bindingStyle=SimpleConsumer")
-        .recipientList(simple("direct:${header.operationName}"));
-
-    from("direct:newCustomer")
-        .log("Request: type=${header.type}, active=${header.active}, customerData=${body}");
---------------------------------------------------------------------------------------------
-
-The following HTTP request with XML payload (given that the Customer DTO
-is JAXB-annotated):
-
-[source,xml]
--------------------------------------
-POST /customers/gold?active=true
-
-Payload:
-<Customer>
-  <fullName>Raul Kripalani</fullName>
-  <country>Spain</country>
-  <project>Apache Camel</project>
-</Customer>
--------------------------------------
-
-Will print the message:
-
-[source,xml]
-----------------------------------------------------------------------------------
-Request: type=gold, active=true, customerData=<Customer.toString() representation>
-----------------------------------------------------------------------------------
-
-For more examples on how to process requests and write responses can be
-found
-https://svn.apache.org/repos/asf/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/simplebinding/[here].
-
-[[CXFRS-ConsumingaRESTRequest-DefaultBindingStyle]]
-Consuming a REST Request - Default Binding Style
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The�https://cwiki.apache.org/CXF20DOC/JAX-RS[CXF JAXRS front end]
-implements the https://jsr311.java.net/[JAX-RS (JSR-311) API], so we can
-export the resources classes as a REST service. And we leverage the
-http://cwiki.apache.org/confluence/display/CXF20DOC/Invokers[CXF Invoker
-API] to turn a REST request into a normal Java object method
-invocation. +
- Unlike the link:restlet.html[Camel Restlet]�component, you don't need
-to specify the URI template within your endpoint, CXF takes care of the
-REST request URI to resource class method mapping according to the
-JSR-311 specification. All you need to do in Camel is delegate this
-method request to a right processor or endpoint.
-
-Here is an example of a CXFRS route...
-
-And the corresponding resource class used to configure the endpoint...
-
-INFO:*Note about resource classes*
-
-By default, JAX-RS resource classes are *only*used to configure JAX-RS
-properties. Methods will *not* be executed during routing of messages to
-the endpoint. Instead, it is the responsibility of the route to do all
-processing.
-
-Note that starting from Camel 2.15 it is also sufficient to provide an
-interface only as opposed to a no-op service implementation class for
-the default mode.
-
-Starting from Camel 2.15, if a *performInvocation* option is enabled,
-the service implementation will be invoked first, the response will be
-set on the Camel exchange and the route execution will continue as
-usual. This can be useful for integrating the existing JAX-RS implementations into Camel routes and
-for post-processing JAX-RS Responses in custom processors.
-
-[[CXFRS-HowtoinvoketheRESTservicethroughcamel-cxfrsproducer]]
-How to invoke the REST service through camel-cxfrs producer
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The�https://cwiki.apache.org/CXF20DOC/JAX-RS[CXF JAXRS front end]
-implements
-https://cwiki.apache.org/CXF20DOC/JAX-RS+Client+API#JAX-RSClientAPI-Proxy-basedAPI[a
-proxy-based client API], with this API you can invoke the remote REST
-service through a proxy. The�`camel-cxfrs` producer is based on this
-https://cwiki.apache.org/CXF20DOC/JAX-RS+Client+API#JAX-RSClientAPI-Proxy-basedAPI[proxy
-API]. +
- You just need to specify the operation name in the message header and
-prepare the parameter in the message body, the camel-cxfrs�producer will
-generate right REST request for you.
-
-Here is an example:
-
-The�https://cwiki.apache.org/CXF20DOC/JAX-RS[CXF JAXRS front end] also
-provides
-https://cwiki.apache.org/confluence/display/CXF20DOC/JAX-RS+Client+API#JAX-RSClientAPI-CXFWebClientAPI[a
-http centric client API].�You can also invoke this API from
-`camel-cxfrs` producer. You need to specify the
-http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Exchange.html#HTTP_PATH[HTTP_PATH]
-and
-the�http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Exchange.html#HTTP_METHOD[HTTP_METHOD]�and
-let the�producer use the http centric client API by using the URI option
-*httpClientAPI* or by setting the message header
-http://camel.apache.org/maven/current/camel-cxf/apidocs/org/apache/camel/component/cxf/CxfConstants.html#CAMEL_CXF_RS_USING_HTTP_API[CxfConstants.CAMEL_CXF_RS_USING_HTTP_API].
-You can turn the response object to the type class specified with the
-message
-header�http://camel.apache.org/maven/current/camel-cxf/apidocs/org/apache/camel/component/cxf/CxfConstants.html#CAMEL_CXF_RS_RESPONSE_CLASS[CxfConstants.CAMEL_CXF_RS_RESPONSE_CLASS].
-
-From Camel 2.1, we also support to specify the query parameters from
-cxfrs URI for the CXFRS http centric client.
-
-Error formatting macro: snippet: java.lang.IndexOutOfBoundsException:
-Index: 20, Size: 20
-
-To support the Dynamical routing, you can override the URI's query
-parameters by using the CxfConstants.CAMEL_CXF_RS_QUERY_MAP header to
-set the parameter map for it.

http://git-wip-us.apache.org/repos/asf/camel/blob/9c0b7baf/components/camel-disruptor/src/main/docs/disruptor-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-disruptor/src/main/docs/disruptor-component.adoc b/components/camel-disruptor/src/main/docs/disruptor-component.adoc
new file mode 100644
index 0000000..c6d0da4
--- /dev/null
+++ b/components/camel-disruptor/src/main/docs/disruptor-component.adoc
@@ -0,0 +1,323 @@
+[[Disruptor-DisruptorComponent]]
+Disruptor Component
+~~~~~~~~~~~~~~~~~~~
+
+*Available as of Camel 2.12*
+
+The *disruptor:* component provides asynchronous
+http://www.eecs.harvard.edu/~mdw/proj/seda/[SEDA] behavior much as the
+standard SEDA Component, but utilizes a
+https://github.com/LMAX-Exchange/disruptor[Disruptor] instead of a
+http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/BlockingQueue.html[BlockingQueue]
+utilized by the standard link:seda.html[SEDA]. Alternatively, a
+
+*disruptor-vm:* endpoint is supported by this component, providing an
+alternative to the standard link:vm.html[VM]. As with the SEDA
+component, buffers of the *disruptor:* endpoints are only visible within
+a *single* link:camelcontext.html[CamelContext] and no support is
+provided for persistence or recovery. The buffers of the
+**disruptor-vm:** endpoints also provides support for communication
+across CamelContexts instances so you can use this mechanism to
+communicate across web applications (provided that *camel-disruptor.jar*
+is on the *system/boot* classpath).
+
+The main advantage of choosing to use the Disruptor Component over the
+SEDA or the VM Component is performance in use cases where there is high
+contention between producer(s) and/or multicasted or concurrent
+Consumers. In those cases, significant increases of throughput and
+reduction of latency has been observed. Performance in scenarios without
+contention is comparable to the SEDA and VM Components.
+
+The Disruptor is implemented with the intention of mimicing the
+behaviour and options of the SEDA and VM Components as much as possible.
+The main differences with the them are the following:
+
+* The buffer used is always bounded in size (default 1024 exchanges).
+* As a the buffer is always bouded, the default behaviour for the
+Disruptor is to block while the buffer is full instead of throwing an
+exception. This default behaviour may be configured on the component
+(see options).
+* The Disruptor enpoints don't implement the BrowsableEndpoint
+interface. As such, the exchanges currently in the Disruptor can't be
+retrieved, only the amount of exchanges.
+* The Disruptor requires its consumers (multicasted or otherwise) to be
+statically configured. Adding or removing consumers on the fly requires
+complete flushing of all pending exchanges in the Disruptor.
+* As a result of the reconfiguration: Data sent over a Disruptor is
+directly processed and 'gone' if there is at least one consumer, late
+joiners only get new exchanges published after they've joined.
+* The *pollTimeout* option is not supported by the Disruptor Component.
+* When a producer blocks on a full Disruptor, it does not respond to
+thread interrupts.
+
+Maven users will need to add the following dependency to their `pom.xml`
+for this component:
+
+[source,java]
+------------------------------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-disruptor</artifactId>
+    <version>x.x.x</version>
+    <!-- use the same version as your Camel core version -->
+</dependency>
+------------------------------------------------------------
+
+[[Disruptor-URIformat]]
+URI format
+^^^^^^^^^^
+
+[source,java]
+-----------------------------
+ disruptor:someName[?options]
+-----------------------------
+
+or
+
+[source,java]
+--------------------------------
+ disruptor-vm:someName[?options]
+--------------------------------
+
+Where **someName** can be any string that uniquely identifies the
+endpoint within the current link:camelcontext.html[CamelContext] (or
+across contexts in case of +
+ **disruptor-vm:**). +
+ You can append query options to the URI in the following format:
+
+[source,java]
+------------------------------
+  ?option=value&option=value&\u2026
+------------------------------
+
+[[Disruptor-Options]]
+Options
+^^^^^^^
+
+All the following options are valid for both the **disruptor:** and
+**disruptor-vm:** components.
+
+
+// component options: START
+The Disruptor component supports 7 options which are listed below.
+
+
+
+{% raw %}
+[width="100%",cols="2s,1m,8",options="header"]
+|=======================================================================
+| Name | Java Type | Description
+| defaultConcurrentConsumers | int | To configure the default number of concurrent consumers
+| defaultMultipleConsumers | boolean | To configure the default value for multiple consumers
+| defaultProducerType | DisruptorProducerType | To configure the default value for DisruptorProducerType The default value is Multi.
+| defaultWaitStrategy | DisruptorWaitStrategy | To configure the default value for DisruptorWaitStrategy The default value is Blocking.
+| defaultBlockWhenFull | boolean | To configure the default value for block when full The default value is true.
+| queueSize | int | To configure the ring buffer size
+| bufferSize | int | To configure the ring buffer size
+|=======================================================================
+{% endraw %}
+// component options: END
+
+
+
+// endpoint options: START
+The Disruptor component supports 13 endpoint options which are listed below:
+
+{% raw %}
+[width="100%",cols="2s,1,1m,1m,5",options="header"]
+|=======================================================================
+| Name | Group | Default | Java Type | Description
+| name | common |  | String | *Required* Name of queue
+| size | common | 1024 | int | The maximum capacity of the Disruptors ringbuffer Will be effectively increased to the nearest power of two. Notice: Mind if you use this option then its the first endpoint being created with the queue name that determines the size. To make sure all endpoints use same size then configure the size option on all of them or the first endpoint being created.
+| bridgeErrorHandler | consumer | false | boolean | Allows for bridging the consumer to the Camel routing Error Handler which mean any exceptions occurred while the consumer is trying to pickup incoming messages or the likes will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions that will be logged at WARN/ERROR level and ignored.
+| concurrentConsumers | consumer | 1 | int | Number of concurrent threads processing exchanges.
+| multipleConsumers | consumer | false | boolean | Specifies whether multiple consumers are allowed. If enabled you can use Disruptor for Publish-Subscribe messaging. That is you can send a message to the queue and have each consumer receive a copy of the message. When enabled this option should be specified on every consumer endpoint.
+| waitStrategy | consumer | Blocking | DisruptorWaitStrategy | Defines the strategy used by consumer threads to wait on new exchanges to be published. The options allowed are:Blocking Sleeping BusySpin and Yielding.
+| exceptionHandler | consumer (advanced) |  | ExceptionHandler | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this options is not in use. By default the consumer will deal with exceptions that will be logged at WARN/ERROR level and ignored.
+| blockWhenFull | producer | false | boolean | Whether a thread that sends messages to a full Disruptor will block until the ringbuffer's capacity is no longer exhausted. By default the calling thread will block and wait until the message can be accepted. By disabling this option an exception will be thrown stating that the queue is full.
+| producerType | producer | Multi | DisruptorProducerType | Defines the producers allowed on the Disruptor. The options allowed are: Multi to allow multiple producers and Single to enable certain optimizations only allowed when one concurrent producer (on one thread or otherwise synchronized) is active.
+| timeout | producer | 30000 | long | Timeout (in milliseconds) before a producer will stop waiting for an asynchronous task to complete. You can disable timeout by using 0 or a negative value.
+| waitForTaskToComplete | producer | IfReplyExpected | WaitForTaskToComplete | Option to specify whether the caller should wait for the async task to complete or not before continuing. The following three options are supported: Always Never or IfReplyExpected. The first two values are self-explanatory. The last value IfReplyExpected will only wait if the message is Request Reply based.
+| exchangePattern | advanced | InOnly | ExchangePattern | Sets the default exchange pattern when creating an exchange
+| synchronous | advanced | false | boolean | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).
+|=======================================================================
+{% endraw %}
+// endpoint options: END
+
+
+[[Disruptor-Waitstrategies]]
+Wait strategies
+^^^^^^^^^^^^^^^
+
+The wait strategy effects the type of waiting performed by the consumer
+threads that are currently waiting for the next exchange to be
+published. The following strategies can be chosen:
+
+[width="100%",cols="10%,45%,45%",options="header",]
+|=======================================================================
+|Name |Description |Advice
+
+|Blocking | Blocking strategy that uses a lock and condition variable for Consumers
+waiting on a barrier. | This strategy can be used when throughput and low-latency are not as
+important as CPU resource.
+
+|Sleeping |Sleeping strategy that initially spins, then uses a Thread.yield(), and
+eventually for the minimum number of nanos the OS and JVM will allow
+while the Consumers are waiting on a barrier. |This strategy is a good compromise between performance and CPU resource.
+Latency spikes can occur after quiet periods.
+
+|BusySpin |Busy Spin strategy that uses a busy spin loop for Consumers waiting on a
+barrier. |This strategy will use CPU resource to avoid syscalls which can
+introduce latency jitter. It is best used when threads can be bound to
+specific CPU cores.
+
+|Yielding |Yielding strategy that uses a Thread.yield() for Consumers waiting on a
+barrier after an initially spinning. |This strategy is a good compromise between performance and CPU resource
+without incurring significant latency spikes.
+|=======================================================================
+
+[[Disruptor-UseofRequestReply]]
+Use of Request Reply
+^^^^^^^^^^^^^^^^^^^^
+
+The Disruptor component supports using link:request-reply.html[Request
+Reply], where the caller will wait for the Async route to complete. For
+instance:
+
+[source,java]
+------------------------------------------------------------------------------
+from("mina:tcp://0.0.0.0:9876?textline=true&sync=true").to("disruptor:input");
+from("disruptor:input").to("bean:processInput").to("bean:createResponse");
+------------------------------------------------------------------------------
+
+In the route above, we have a TCP listener on port 9876 that accepts
+incoming requests. The request is routed to the _disruptor:input_
+buffer. As it is a link:request-reply.html[Request Reply] message, we
+wait for the response. When the consumer on the _disruptor:input_ buffer
+is complete, it copies the response to the original message response.
+
+[[Disruptor-Concurrentconsumers]]
+Concurrent consumers
+^^^^^^^^^^^^^^^^^^^^
+
+By default, the Disruptor endpoint uses a single consumer thread, but
+you can configure it to use concurrent consumer threads. So instead of
+thread pools you can use:
+
+[source,java]
+--------------------------------------------------------------
+from("disruptor:stageName?concurrentConsumers=5").process(...)
+--------------------------------------------------------------
+
+As for the difference between the two, note a thread pool can
+increase/shrink dynamically at runtime depending on load, whereas the
+number of concurrent consumers is always fixed and supported by the
+Disruptor internally so performance will be higher.
+
+[[Disruptor-Threadpools]]
+Thread pools
+^^^^^^^^^^^^
+
+Be aware that adding a thread pool to a Disruptor endpoint by doing
+something like:
+
+[source,java]
+--------------------------------------------------
+from("disruptor:stageName").thread(5).process(...)
+--------------------------------------------------
+
+Can wind up with adding a normal
+http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/BlockingQueue.html[BlockingQueue]
+to be used in conjunction with the Disruptor, effectively negating part
+of the performance gains achieved by using the Disruptor. Instead, it is
+advices to directly configure number of threads that process messages on
+a Disruptor endpoint using the concurrentConsumers option.
+
+[[Disruptor-Sample]]
+Sample
+^^^^^^
+
+In the route below we use the Disruptor to send the request to this
+async queue to be able to send a fire-and-forget message for further
+processing in another thread, and return a constant reply in this thread
+to the original caller.
+
+[source,java]
+-------------------------------------------------
+public void configure() throws Exception {
+    from("direct:start")
+        // send it to the disruptor that is async
+        .to("disruptor:next")
+        // return a constant response
+        .transform(constant("OK"));
+
+    from("disruptor:next").to("mock:result");
+}
+-------------------------------------------------
+
+Here we send a Hello World message and expects the reply to be OK.
+
+[source,java]
+-----------------------------------------------------------------
+Object out = template.requestBody("direct:start", "Hello World");
+assertEquals("OK", out);
+-----------------------------------------------------------------
+
+The "Hello World" message will be consumed from the Disruptor from
+another thread for further processing. Since this is from a unit test,
+it will be sent to a mock endpoint where we can do assertions in the
+unit test.
+
+[[Disruptor-UsingmultipleConsumers]]
+Using multipleConsumers
+^^^^^^^^^^^^^^^^^^^^^^^
+
+In this example we have defined two consumers and registered them as
+spring beans.
+
+[source,java]
+-------------------------------------------------------------------------------------------
+<!-- define the consumers as spring beans -->
+<bean id="consumer1" class="org.apache.camel.spring.example.FooEventConsumer"/>
+
+<bean id="consumer2" class="org.apache.camel.spring.example.AnotherFooEventConsumer"/>
+
+<camelContext xmlns="http://camel.apache.org/schema/spring">
+    <!-- define a shared endpoint which the consumers can refer to instead of using url -->
+    <endpoint id="foo" uri="disruptor:foo?multipleConsumers=true"/>
+</camelContext>
+-------------------------------------------------------------------------------------------
+
+Since we have specified multipleConsumers=true on the Disruptor foo
+endpoint we can have those two or more consumers receive their own copy
+of the message as a kind of pub-sub style messaging. As the beans are
+part of an unit test they simply send the message to a mock endpoint,
+but notice how we can use @Consume to consume from the Disruptor.
+
+[source,java]
+-------------------------------------------
+public class FooEventConsumer {
+
+    @EndpointInject(uri = "mock:result")
+    private ProducerTemplate destination;
+
+    @Consume(ref = "foo")
+    public void doSomething(String body) {
+        destination.sendBody("foo" + body);
+    }
+
+}
+-------------------------------------------
+
+[[Disruptor-Extractingdisruptorinformation]]
+Extracting disruptor information
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If needed, information such as buffer size, etc. can be obtained without
+using JMX in this fashion:
+
+[source,java]
+--------------------------------------------------------------------
+DisruptorEndpoint disruptor = context.getEndpoint("disruptor:xxxx");
+int size = disruptor.getBufferSize();
+--------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/camel/blob/9c0b7baf/components/camel-disruptor/src/main/docs/disruptor.adoc
----------------------------------------------------------------------
diff --git a/components/camel-disruptor/src/main/docs/disruptor.adoc b/components/camel-disruptor/src/main/docs/disruptor.adoc
deleted file mode 100644
index c6d0da4..0000000
--- a/components/camel-disruptor/src/main/docs/disruptor.adoc
+++ /dev/null
@@ -1,323 +0,0 @@
-[[Disruptor-DisruptorComponent]]
-Disruptor Component
-~~~~~~~~~~~~~~~~~~~
-
-*Available as of Camel 2.12*
-
-The *disruptor:* component provides asynchronous
-http://www.eecs.harvard.edu/~mdw/proj/seda/[SEDA] behavior much as the
-standard SEDA Component, but utilizes a
-https://github.com/LMAX-Exchange/disruptor[Disruptor] instead of a
-http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/BlockingQueue.html[BlockingQueue]
-utilized by the standard link:seda.html[SEDA]. Alternatively, a
-
-*disruptor-vm:* endpoint is supported by this component, providing an
-alternative to the standard link:vm.html[VM]. As with the SEDA
-component, buffers of the *disruptor:* endpoints are only visible within
-a *single* link:camelcontext.html[CamelContext] and no support is
-provided for persistence or recovery. The buffers of the
-**disruptor-vm:** endpoints also provides support for communication
-across CamelContexts instances so you can use this mechanism to
-communicate across web applications (provided that *camel-disruptor.jar*
-is on the *system/boot* classpath).
-
-The main advantage of choosing to use the Disruptor Component over the
-SEDA or the VM Component is performance in use cases where there is high
-contention between producer(s) and/or multicasted or concurrent
-Consumers. In those cases, significant increases of throughput and
-reduction of latency has been observed. Performance in scenarios without
-contention is comparable to the SEDA and VM Components.
-
-The Disruptor is implemented with the intention of mimicing the
-behaviour and options of the SEDA and VM Components as much as possible.
-The main differences with the them are the following:
-
-* The buffer used is always bounded in size (default 1024 exchanges).
-* As a the buffer is always bouded, the default behaviour for the
-Disruptor is to block while the buffer is full instead of throwing an
-exception. This default behaviour may be configured on the component
-(see options).
-* The Disruptor enpoints don't implement the BrowsableEndpoint
-interface. As such, the exchanges currently in the Disruptor can't be
-retrieved, only the amount of exchanges.
-* The Disruptor requires its consumers (multicasted or otherwise) to be
-statically configured. Adding or removing consumers on the fly requires
-complete flushing of all pending exchanges in the Disruptor.
-* As a result of the reconfiguration: Data sent over a Disruptor is
-directly processed and 'gone' if there is at least one consumer, late
-joiners only get new exchanges published after they've joined.
-* The *pollTimeout* option is not supported by the Disruptor Component.
-* When a producer blocks on a full Disruptor, it does not respond to
-thread interrupts.
-
-Maven users will need to add the following dependency to their `pom.xml`
-for this component:
-
-[source,java]
-------------------------------------------------------------
-<dependency>
-    <groupId>org.apache.camel</groupId>
-    <artifactId>camel-disruptor</artifactId>
-    <version>x.x.x</version>
-    <!-- use the same version as your Camel core version -->
-</dependency>
-------------------------------------------------------------
-
-[[Disruptor-URIformat]]
-URI format
-^^^^^^^^^^
-
-[source,java]
------------------------------
- disruptor:someName[?options]
------------------------------
-
-or
-
-[source,java]
---------------------------------
- disruptor-vm:someName[?options]
---------------------------------
-
-Where **someName** can be any string that uniquely identifies the
-endpoint within the current link:camelcontext.html[CamelContext] (or
-across contexts in case of +
- **disruptor-vm:**). +
- You can append query options to the URI in the following format:
-
-[source,java]
-------------------------------
-  ?option=value&option=value&\u2026
-------------------------------
-
-[[Disruptor-Options]]
-Options
-^^^^^^^
-
-All the following options are valid for both the **disruptor:** and
-**disruptor-vm:** components.
-
-
-// component options: START
-The Disruptor component supports 7 options which are listed below.
-
-
-
-{% raw %}
-[width="100%",cols="2s,1m,8",options="header"]
-|=======================================================================
-| Name | Java Type | Description
-| defaultConcurrentConsumers | int | To configure the default number of concurrent consumers
-| defaultMultipleConsumers | boolean | To configure the default value for multiple consumers
-| defaultProducerType | DisruptorProducerType | To configure the default value for DisruptorProducerType The default value is Multi.
-| defaultWaitStrategy | DisruptorWaitStrategy | To configure the default value for DisruptorWaitStrategy The default value is Blocking.
-| defaultBlockWhenFull | boolean | To configure the default value for block when full The default value is true.
-| queueSize | int | To configure the ring buffer size
-| bufferSize | int | To configure the ring buffer size
-|=======================================================================
-{% endraw %}
-// component options: END
-
-
-
-// endpoint options: START
-The Disruptor component supports 13 endpoint options which are listed below:
-
-{% raw %}
-[width="100%",cols="2s,1,1m,1m,5",options="header"]
-|=======================================================================
-| Name | Group | Default | Java Type | Description
-| name | common |  | String | *Required* Name of queue
-| size | common | 1024 | int | The maximum capacity of the Disruptors ringbuffer Will be effectively increased to the nearest power of two. Notice: Mind if you use this option then its the first endpoint being created with the queue name that determines the size. To make sure all endpoints use same size then configure the size option on all of them or the first endpoint being created.
-| bridgeErrorHandler | consumer | false | boolean | Allows for bridging the consumer to the Camel routing Error Handler which mean any exceptions occurred while the consumer is trying to pickup incoming messages or the likes will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions that will be logged at WARN/ERROR level and ignored.
-| concurrentConsumers | consumer | 1 | int | Number of concurrent threads processing exchanges.
-| multipleConsumers | consumer | false | boolean | Specifies whether multiple consumers are allowed. If enabled you can use Disruptor for Publish-Subscribe messaging. That is you can send a message to the queue and have each consumer receive a copy of the message. When enabled this option should be specified on every consumer endpoint.
-| waitStrategy | consumer | Blocking | DisruptorWaitStrategy | Defines the strategy used by consumer threads to wait on new exchanges to be published. The options allowed are:Blocking Sleeping BusySpin and Yielding.
-| exceptionHandler | consumer (advanced) |  | ExceptionHandler | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this options is not in use. By default the consumer will deal with exceptions that will be logged at WARN/ERROR level and ignored.
-| blockWhenFull | producer | false | boolean | Whether a thread that sends messages to a full Disruptor will block until the ringbuffer's capacity is no longer exhausted. By default the calling thread will block and wait until the message can be accepted. By disabling this option an exception will be thrown stating that the queue is full.
-| producerType | producer | Multi | DisruptorProducerType | Defines the producers allowed on the Disruptor. The options allowed are: Multi to allow multiple producers and Single to enable certain optimizations only allowed when one concurrent producer (on one thread or otherwise synchronized) is active.
-| timeout | producer | 30000 | long | Timeout (in milliseconds) before a producer will stop waiting for an asynchronous task to complete. You can disable timeout by using 0 or a negative value.
-| waitForTaskToComplete | producer | IfReplyExpected | WaitForTaskToComplete | Option to specify whether the caller should wait for the async task to complete or not before continuing. The following three options are supported: Always Never or IfReplyExpected. The first two values are self-explanatory. The last value IfReplyExpected will only wait if the message is Request Reply based.
-| exchangePattern | advanced | InOnly | ExchangePattern | Sets the default exchange pattern when creating an exchange
-| synchronous | advanced | false | boolean | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).
-|=======================================================================
-{% endraw %}
-// endpoint options: END
-
-
-[[Disruptor-Waitstrategies]]
-Wait strategies
-^^^^^^^^^^^^^^^
-
-The wait strategy effects the type of waiting performed by the consumer
-threads that are currently waiting for the next exchange to be
-published. The following strategies can be chosen:
-
-[width="100%",cols="10%,45%,45%",options="header",]
-|=======================================================================
-|Name |Description |Advice
-
-|Blocking | Blocking strategy that uses a lock and condition variable for Consumers
-waiting on a barrier. | This strategy can be used when throughput and low-latency are not as
-important as CPU resource.
-
-|Sleeping |Sleeping strategy that initially spins, then uses a Thread.yield(), and
-eventually for the minimum number of nanos the OS and JVM will allow
-while the Consumers are waiting on a barrier. |This strategy is a good compromise between performance and CPU resource.
-Latency spikes can occur after quiet periods.
-
-|BusySpin |Busy Spin strategy that uses a busy spin loop for Consumers waiting on a
-barrier. |This strategy will use CPU resource to avoid syscalls which can
-introduce latency jitter. It is best used when threads can be bound to
-specific CPU cores.
-
-|Yielding |Yielding strategy that uses a Thread.yield() for Consumers waiting on a
-barrier after an initially spinning. |This strategy is a good compromise between performance and CPU resource
-without incurring significant latency spikes.
-|=======================================================================
-
-[[Disruptor-UseofRequestReply]]
-Use of Request Reply
-^^^^^^^^^^^^^^^^^^^^
-
-The Disruptor component supports using link:request-reply.html[Request
-Reply], where the caller will wait for the Async route to complete. For
-instance:
-
-[source,java]
-------------------------------------------------------------------------------
-from("mina:tcp://0.0.0.0:9876?textline=true&sync=true").to("disruptor:input");
-from("disruptor:input").to("bean:processInput").to("bean:createResponse");
-------------------------------------------------------------------------------
-
-In the route above, we have a TCP listener on port 9876 that accepts
-incoming requests. The request is routed to the _disruptor:input_
-buffer. As it is a link:request-reply.html[Request Reply] message, we
-wait for the response. When the consumer on the _disruptor:input_ buffer
-is complete, it copies the response to the original message response.
-
-[[Disruptor-Concurrentconsumers]]
-Concurrent consumers
-^^^^^^^^^^^^^^^^^^^^
-
-By default, the Disruptor endpoint uses a single consumer thread, but
-you can configure it to use concurrent consumer threads. So instead of
-thread pools you can use:
-
-[source,java]
---------------------------------------------------------------
-from("disruptor:stageName?concurrentConsumers=5").process(...)
---------------------------------------------------------------
-
-As for the difference between the two, note a thread pool can
-increase/shrink dynamically at runtime depending on load, whereas the
-number of concurrent consumers is always fixed and supported by the
-Disruptor internally so performance will be higher.
-
-[[Disruptor-Threadpools]]
-Thread pools
-^^^^^^^^^^^^
-
-Be aware that adding a thread pool to a Disruptor endpoint by doing
-something like:
-
-[source,java]
---------------------------------------------------
-from("disruptor:stageName").thread(5).process(...)
---------------------------------------------------
-
-Can wind up with adding a normal
-http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/BlockingQueue.html[BlockingQueue]
-to be used in conjunction with the Disruptor, effectively negating part
-of the performance gains achieved by using the Disruptor. Instead, it is
-advices to directly configure number of threads that process messages on
-a Disruptor endpoint using the concurrentConsumers option.
-
-[[Disruptor-Sample]]
-Sample
-^^^^^^
-
-In the route below we use the Disruptor to send the request to this
-async queue to be able to send a fire-and-forget message for further
-processing in another thread, and return a constant reply in this thread
-to the original caller.
-
-[source,java]
--------------------------------------------------
-public void configure() throws Exception {
-    from("direct:start")
-        // send it to the disruptor that is async
-        .to("disruptor:next")
-        // return a constant response
-        .transform(constant("OK"));
-
-    from("disruptor:next").to("mock:result");
-}
--------------------------------------------------
-
-Here we send a Hello World message and expects the reply to be OK.
-
-[source,java]
------------------------------------------------------------------
-Object out = template.requestBody("direct:start", "Hello World");
-assertEquals("OK", out);
------------------------------------------------------------------
-
-The "Hello World" message will be consumed from the Disruptor from
-another thread for further processing. Since this is from a unit test,
-it will be sent to a mock endpoint where we can do assertions in the
-unit test.
-
-[[Disruptor-UsingmultipleConsumers]]
-Using multipleConsumers
-^^^^^^^^^^^^^^^^^^^^^^^
-
-In this example we have defined two consumers and registered them as
-spring beans.
-
-[source,java]
--------------------------------------------------------------------------------------------
-<!-- define the consumers as spring beans -->
-<bean id="consumer1" class="org.apache.camel.spring.example.FooEventConsumer"/>
-
-<bean id="consumer2" class="org.apache.camel.spring.example.AnotherFooEventConsumer"/>
-
-<camelContext xmlns="http://camel.apache.org/schema/spring">
-    <!-- define a shared endpoint which the consumers can refer to instead of using url -->
-    <endpoint id="foo" uri="disruptor:foo?multipleConsumers=true"/>
-</camelContext>
--------------------------------------------------------------------------------------------
-
-Since we have specified multipleConsumers=true on the Disruptor foo
-endpoint we can have those two or more consumers receive their own copy
-of the message as a kind of pub-sub style messaging. As the beans are
-part of an unit test they simply send the message to a mock endpoint,
-but notice how we can use @Consume to consume from the Disruptor.
-
-[source,java]
--------------------------------------------
-public class FooEventConsumer {
-
-    @EndpointInject(uri = "mock:result")
-    private ProducerTemplate destination;
-
-    @Consume(ref = "foo")
-    public void doSomething(String body) {
-        destination.sendBody("foo" + body);
-    }
-
-}
--------------------------------------------
-
-[[Disruptor-Extractingdisruptorinformation]]
-Extracting disruptor information
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-If needed, information such as buffer size, etc. can be obtained without
-using JMX in this fashion:
-
-[source,java]
---------------------------------------------------------------------
-DisruptorEndpoint disruptor = context.getEndpoint("disruptor:xxxx");
-int size = disruptor.getBufferSize();
---------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/camel/blob/9c0b7baf/components/camel-dns/src/main/docs/dns-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-dns/src/main/docs/dns-component.adoc b/components/camel-dns/src/main/docs/dns-component.adoc
new file mode 100644
index 0000000..d35a095
--- /dev/null
+++ b/components/camel-dns/src/main/docs/dns-component.adoc
@@ -0,0 +1,160 @@
+[[DNS-DNS]]
+DNS
+~~~
+
+*Available as of Camel 2.7*
+
+This is an additional component for Camel to run DNS queries, using
+DNSJava. The component is a thin layer on top of
+http://www.xbill.org/dnsjava/[DNSJava]. +
+ The component offers the following operations:
+
+* ip, to resolve a domain by its ip
+* lookup, to lookup information about the domain
+* dig, to run DNS queries
+
+INFO:*Requires SUN JVM*
+The DNSJava library requires running on the SUN JVM. +
+ If you use Apache ServiceMix or Apache Karaf, you'll need to adjust the
+`etc/jre.properties` file, to add `sun.net.spi.nameservice` to the list
+of Java platform packages exported. The server will need restarting
+before this change takes effect.
+
+Maven users will need to add the following dependency to their `pom.xml`
+for this component:
+
+[source,xml]
+------------------------------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-dns</artifactId>
+    <version>x.x.x</version>
+    <!-- use the same version as your Camel core version -->
+</dependency>
+------------------------------------------------------------
+
+[[DNS-URIformat]]
+URI format
+^^^^^^^^^^
+
+The URI scheme for a DNS component is as follows
+
+[source,java]
+-------------------------
+dns://operation[?options]
+-------------------------
+
+This component only supports producers.
+
+[[DNS-Options]]
+Options
+^^^^^^^
+
+
+// component options: START
+The DNS component has no options.
+// component options: END
+
+
+
+// endpoint options: START
+The DNS component supports 3 endpoint options which are listed below:
+
+{% raw %}
+[width="100%",cols="2s,1,1m,1m,5",options="header"]
+|=======================================================================
+| Name | Group | Default | Java Type | Description
+| dnsType | producer |  | DnsType | *Required* The type of the lookup.
+| exchangePattern | advanced | InOnly | ExchangePattern | Sets the default exchange pattern when creating an exchange
+| synchronous | advanced | false | boolean | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).
+|=======================================================================
+{% endraw %}
+// endpoint options: END
+
+
+[[DNS-Headers]]
+Headers
+^^^^^^^
+[width="100%",cols="10%,10%,10%,70%",options="header",]
+|=======================================================================
+
+|Header |Type |Operations |Description
+
+|dns.domain |String |ip |The domain name. Mandatory.
+
+|dns.name |String |lookup |The name to lookup. Mandatory.
+
+|dns.type |   | lookup, dig |The type of the lookup. Should match the values of `org.xbill.dns.Type`.
+Optional.
+
+|dns.class |   | lookup, dig |The DNS class of the lookup. Should match the values of
+`org.xbill.dns.DClass`. Optional.
+
+|dns.query |String |dig |The query itself. Mandatory.
+
+|dns.server |String |dig |The server in particular for the query. If none is given, the default
+one specified by the OS will be used. Optional.
+|=======================================================================
+
+[[DNS-Examples]]
+Examples
+^^^^^^^^
+
+[[DNS-IPlookup]]
+IP lookup
++++++++++
+
+[source,xml]
+--------------------------------------
+        <route id="IPCheck">
+            <from uri="direct:start"/>
+            <to uri="dns:ip"/>
+        </route>
+--------------------------------------
+
+This looks up a domain's IP. For example, www.example.com resolves to
+192.0.32.10. +
+ The IP address to lookup must be provided in the header with key
+`"dns.domain"`.
+
+[[DNS-DNSlookup]]
+DNS lookup
+++++++++++
+
+[source,xml]
+--------------------------------------
+        <route id="IPCheck">
+            <from uri="direct:start"/>
+            <to uri="dns:lookup"/>
+        </route>
+--------------------------------------
+
+This returns a set of DNS records associated with a domain. +
+ The name to lookup must be provided in the header with key
+`"dns.name"`.
+
+[[DNS-DNSDig]]
+DNS Dig
++++++++
+
+Dig is a Unix command-line utility to run DNS queries.
+
+[source,xml]
+--------------------------------------
+        <route id="IPCheck">
+            <from uri="direct:start"/>
+            <to uri="dns:dig"/>
+        </route>
+--------------------------------------
+
+The query must be provided in the header with key `"dns.query"`.
+
+[[DNS-SeeAlso]]
+See Also
+^^^^^^^^
+
+* link:configuring-camel.html[Configuring Camel]
+* link:component.html[Component]
+* link:endpoint.html[Endpoint]
+* link:getting-started.html[Getting Started]
+

http://git-wip-us.apache.org/repos/asf/camel/blob/9c0b7baf/components/camel-dns/src/main/docs/dns.adoc
----------------------------------------------------------------------
diff --git a/components/camel-dns/src/main/docs/dns.adoc b/components/camel-dns/src/main/docs/dns.adoc
deleted file mode 100644
index d35a095..0000000
--- a/components/camel-dns/src/main/docs/dns.adoc
+++ /dev/null
@@ -1,160 +0,0 @@
-[[DNS-DNS]]
-DNS
-~~~
-
-*Available as of Camel 2.7*
-
-This is an additional component for Camel to run DNS queries, using
-DNSJava. The component is a thin layer on top of
-http://www.xbill.org/dnsjava/[DNSJava]. +
- The component offers the following operations:
-
-* ip, to resolve a domain by its ip
-* lookup, to lookup information about the domain
-* dig, to run DNS queries
-
-INFO:*Requires SUN JVM*
-The DNSJava library requires running on the SUN JVM. +
- If you use Apache ServiceMix or Apache Karaf, you'll need to adjust the
-`etc/jre.properties` file, to add `sun.net.spi.nameservice` to the list
-of Java platform packages exported. The server will need restarting
-before this change takes effect.
-
-Maven users will need to add the following dependency to their `pom.xml`
-for this component:
-
-[source,xml]
-------------------------------------------------------------
-<dependency>
-    <groupId>org.apache.camel</groupId>
-    <artifactId>camel-dns</artifactId>
-    <version>x.x.x</version>
-    <!-- use the same version as your Camel core version -->
-</dependency>
-------------------------------------------------------------
-
-[[DNS-URIformat]]
-URI format
-^^^^^^^^^^
-
-The URI scheme for a DNS component is as follows
-
-[source,java]
--------------------------
-dns://operation[?options]
--------------------------
-
-This component only supports producers.
-
-[[DNS-Options]]
-Options
-^^^^^^^
-
-
-// component options: START
-The DNS component has no options.
-// component options: END
-
-
-
-// endpoint options: START
-The DNS component supports 3 endpoint options which are listed below:
-
-{% raw %}
-[width="100%",cols="2s,1,1m,1m,5",options="header"]
-|=======================================================================
-| Name | Group | Default | Java Type | Description
-| dnsType | producer |  | DnsType | *Required* The type of the lookup.
-| exchangePattern | advanced | InOnly | ExchangePattern | Sets the default exchange pattern when creating an exchange
-| synchronous | advanced | false | boolean | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).
-|=======================================================================
-{% endraw %}
-// endpoint options: END
-
-
-[[DNS-Headers]]
-Headers
-^^^^^^^
-[width="100%",cols="10%,10%,10%,70%",options="header",]
-|=======================================================================
-
-|Header |Type |Operations |Description
-
-|dns.domain |String |ip |The domain name. Mandatory.
-
-|dns.name |String |lookup |The name to lookup. Mandatory.
-
-|dns.type |   | lookup, dig |The type of the lookup. Should match the values of `org.xbill.dns.Type`.
-Optional.
-
-|dns.class |   | lookup, dig |The DNS class of the lookup. Should match the values of
-`org.xbill.dns.DClass`. Optional.
-
-|dns.query |String |dig |The query itself. Mandatory.
-
-|dns.server |String |dig |The server in particular for the query. If none is given, the default
-one specified by the OS will be used. Optional.
-|=======================================================================
-
-[[DNS-Examples]]
-Examples
-^^^^^^^^
-
-[[DNS-IPlookup]]
-IP lookup
-+++++++++
-
-[source,xml]
---------------------------------------
-        <route id="IPCheck">
-            <from uri="direct:start"/>
-            <to uri="dns:ip"/>
-        </route>
---------------------------------------
-
-This looks up a domain's IP. For example, www.example.com resolves to
-192.0.32.10. +
- The IP address to lookup must be provided in the header with key
-`"dns.domain"`.
-
-[[DNS-DNSlookup]]
-DNS lookup
-++++++++++
-
-[source,xml]
---------------------------------------
-        <route id="IPCheck">
-            <from uri="direct:start"/>
-            <to uri="dns:lookup"/>
-        </route>
---------------------------------------
-
-This returns a set of DNS records associated with a domain. +
- The name to lookup must be provided in the header with key
-`"dns.name"`.
-
-[[DNS-DNSDig]]
-DNS Dig
-+++++++
-
-Dig is a Unix command-line utility to run DNS queries.
-
-[source,xml]
---------------------------------------
-        <route id="IPCheck">
-            <from uri="direct:start"/>
-            <to uri="dns:dig"/>
-        </route>
---------------------------------------
-
-The query must be provided in the header with key `"dns.query"`.
-
-[[DNS-SeeAlso]]
-See Also
-^^^^^^^^
-
-* link:configuring-camel.html[Configuring Camel]
-* link:component.html[Component]
-* link:endpoint.html[Endpoint]
-* link:getting-started.html[Getting Started]
-

http://git-wip-us.apache.org/repos/asf/camel/blob/9c0b7baf/components/camel-docker/src/main/docs/docker-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-docker/src/main/docs/docker-component.adoc b/components/camel-docker/src/main/docs/docker-component.adoc
new file mode 100644
index 0000000..04e175e
--- /dev/null
+++ b/components/camel-docker/src/main/docs/docker-component.adoc
@@ -0,0 +1,210 @@
+[[Docker-CamelDockercomponent]]
+Camel Docker component
+~~~~~~~~~~~~~~~~~~~~~~
+
+*Available as of Camel 2.15*
+
+Camel component for communicating with Docker.
+
+The Docker Camel component leverages the
+https://github.com/docker-java/docker-java[docker-java]�via the
+https://docs.docker.com/reference/api/docker_remote_api[Docker Remote
+API].
+
+Maven users will need to add the following dependency to their `pom.xml`
+for this component:
+
+[source,xml]
+------------------------------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-docker</artifactId>
+    <version>x.x.x</version>
+    <!-- use the same version as your Camel core version -->
+</dependency>
+------------------------------------------------------------
+
+[[Docker-URIformat]]
+URI format
+^^^^^^^^^^
+
+[source,java]
+------------------------------
+docker://[operation]?[options]
+------------------------------
+
+Where *operation* is the specific action to perform on Docker.
+
+[[Docker-HeaderStrategy]]
+Header Strategy
+^^^^^^^^^^^^^^^
+
+All URI option can be passed as Header properties. Values found in a
+message header take precedence over URI parameters. A header property
+takes the form of a URI option prefixed with *CamelDocker* as shown
+below
+
+[width="100%",cols="50%,50%",options="header",]
+|=======================================================================
+|URI Option |Header Property
+
+|containerId |CamelDockerContainerId
+|=======================================================================
+
+[[Docker-GeneralOptions]]
+General Options
+^^^^^^^^^^^^^^^
+
+The following parameters can be used with any invocation of the
+component
+
+[width="100%",cols="10%,10%,70%,10%",options="header",]
+|=======================================================================
+|Option |Header |Description |Default Value
+
+|host |CamelDockerHost |*Mandatory:* Docker host |localhost
+
+|port |CamelDockerPort |*Mandatory:*�Docker port |2375
+
+|username |CamelDockerUserName |User name to authenticate with |
+
+|password |CamelDockerPassword |Password to authenticate with |
+
+|email |CamelDockerEmail |Email address associated with the user |
+
+|secure |CamelDockerSecure |Use HTTPS communication�|false
+
+|requestTimeout |CamelDockerRequestTimeout |Request timeout for response (in seconds) |30
+
+|certPath |CamelDockerCertPath |Location containing the SSL certificate chain |
+|=======================================================================
+�
+
+[[Docker-ConsumerOperations]]
+Consumer Operations
+^^^^^^^^^^^^^^^^^^^
+
+The consumer supports the following operations.
+
+[width="100%",cols="10%,10%,70%,10%",options="header",]
+|=======================================================================
+|Operation |Options |Description |Produces
+
+|events |initialRange |Monitor Docker events (Streaming) |Event
+|=======================================================================
+
+[[Docker-ProducerOperations]]
+Producer Operations
+^^^^^^^^^^^^^^^^^^^
+
+The following producer operations are available.
+
+[width="100%",cols="10%,10%,70%,10%",options="header",]
+|=======================================================================
+|Misc Operation |Options |Description |Returns
+
+|auth |  |Check auth configuration |
+
+|info |  |System wide information | Info
+
+|ping |  |Ping the Docker server |
+
+|version |  |Show the docker version information |Version
+
+|=======================================================================
+
+[width="100%",cols="10%,10%,60%,10%,10%",options="header",]
+|=======================================================================
+|Image Operation |Options |Description |Body Content |Returns
+
+|image/list |filter, showAll |List images |   | List<Image>
+
+|image/create |*repository* |Create an image |InputStream |CreateImageResponse
+
+|image/build |noCache, quiet, remove, tag |Build an image from Dockerfile via stdin |InputStream or File |InputStream
+
+|image/pull |*repository*, registry, tag |Pull an image from the registry�|  | InputStream
+
+|image/push |*name* |Push an image on the registry |  |InputStream 
+
+|image/search |*term* |Search for images |  | List<SearchItem>
+
+|image/remove |*imageId* |Remove an image |  |  
+
+|image/tag�|*imageId, repository, tag, force* |Tag an image into a repository |  |
+
+|image/inspect |*imageId* |Inspect an image |  | InspectImageResponse
+|=======================================================================
+
+
+[width="100%",cols="10%,30%,40%,10%,10%",options="header",]
+|=======================================================================
+|Container Operation |Options |Description |Body Content |Returns
+
+|container/list |showSize, showAll, before, since, limit, List containers |initialRange |  | List<Container>
+
+|container/create |*imageId*, name, exposedPorts, workingDir, disableNetwork, hostname,
+user, tty, stdInOpen, stdInOnce, memoryLimit, memorySwap, cpuShares,
+attachStdIn, attachStdOut, attachStdErr, env, cmd, dns, image,
+volumes, volumesFrom |Create a container�|CreateContainerResponse
+
+|container/start |*containerId*, binds, links, lxcConf, portBindings, privileged,
+publishAllPorts, dns, dnsSearch, volumesFrom, networkMode, devices, restartPolicy, 
+capAdd, capDrop |Start a container |  |
+
+|container/inspect |*containerId* |Inspect a container�|  | InspectContainerResponse
+
+|container/wait |*containerId* |Wait a container |Integer |
+
+|container/log |*containerId*, stdOut, stdErr, timestamps, followStream, tailAll, tail |Get container logs� |  |InputStream
+
+|container/attach |*containerId*, stdOut, stdErr, timestamps, logs, followStream |Attach to a container |  |InputStream
+
+|container/stop |*containerId*, timeout |Stop a container |  |
+
+|container/restart |*containerId*, timeout |Restart a container |  |
+
+|container/diff |*containerId* |Inspect changes on a container |  | ChangeLog
+
+|container/kill |*containerId*, signal |Kill a container |  |
+
+|container/top |*containerId*, psArgs |List processes running in a container |  | TopContainerResponse
+
+|container/pause |*containerId* |Pause a container |  |
+
+|container/unpause |*containerId* |Unpause a container |  |
+
+|container/commit |*containerId*, repository, message, tag, attachStdIn, attachStdOut,
+attachStdErr, cmd, disableNetwork, pause, env, exposedPorts, hostname, memory,
+memorySwap, openStdIn, portSpecs, stdInOnce, tty, user, volumes, hostname |Create a new image from a container's changes |String |
+
+|container/copyfile |*containerId*, *resource*, hostPath |Copy files or folders from a container |InputStream |
+
+|container/remove |*containerId*, force, removeVolumes�|Remove a container | |
+|=======================================================================
+
+[[Docker-Examples]]
+Examples
+^^^^^^^^
+
+The following example consumes events from Docker:
+
+[source,java]
+----------------------------------------------------------------------
+from("docker://events?host=192.168.59.103&port=2375").to("log:event");
+----------------------------------------------------------------------
+
+�
+
+The following example queries Docker for system wide information
+
+[source,java]
+-------------------------------------------------------------------
+from("docker://info?host=192.168.59.103&port=2375").to("log:info");
+-------------------------------------------------------------------
+
+�
+
+�
+
+�

http://git-wip-us.apache.org/repos/asf/camel/blob/9c0b7baf/components/camel-docker/src/main/docs/docker.adoc
----------------------------------------------------------------------
diff --git a/components/camel-docker/src/main/docs/docker.adoc b/components/camel-docker/src/main/docs/docker.adoc
deleted file mode 100644
index 04e175e..0000000
--- a/components/camel-docker/src/main/docs/docker.adoc
+++ /dev/null
@@ -1,210 +0,0 @@
-[[Docker-CamelDockercomponent]]
-Camel Docker component
-~~~~~~~~~~~~~~~~~~~~~~
-
-*Available as of Camel 2.15*
-
-Camel component for communicating with Docker.
-
-The Docker Camel component leverages the
-https://github.com/docker-java/docker-java[docker-java]�via the
-https://docs.docker.com/reference/api/docker_remote_api[Docker Remote
-API].
-
-Maven users will need to add the following dependency to their `pom.xml`
-for this component:
-
-[source,xml]
-------------------------------------------------------------
-<dependency>
-    <groupId>org.apache.camel</groupId>
-    <artifactId>camel-docker</artifactId>
-    <version>x.x.x</version>
-    <!-- use the same version as your Camel core version -->
-</dependency>
-------------------------------------------------------------
-
-[[Docker-URIformat]]
-URI format
-^^^^^^^^^^
-
-[source,java]
-------------------------------
-docker://[operation]?[options]
-------------------------------
-
-Where *operation* is the specific action to perform on Docker.
-
-[[Docker-HeaderStrategy]]
-Header Strategy
-^^^^^^^^^^^^^^^
-
-All URI option can be passed as Header properties. Values found in a
-message header take precedence over URI parameters. A header property
-takes the form of a URI option prefixed with *CamelDocker* as shown
-below
-
-[width="100%",cols="50%,50%",options="header",]
-|=======================================================================
-|URI Option |Header Property
-
-|containerId |CamelDockerContainerId
-|=======================================================================
-
-[[Docker-GeneralOptions]]
-General Options
-^^^^^^^^^^^^^^^
-
-The following parameters can be used with any invocation of the
-component
-
-[width="100%",cols="10%,10%,70%,10%",options="header",]
-|=======================================================================
-|Option |Header |Description |Default Value
-
-|host |CamelDockerHost |*Mandatory:* Docker host |localhost
-
-|port |CamelDockerPort |*Mandatory:*�Docker port |2375
-
-|username |CamelDockerUserName |User name to authenticate with |
-
-|password |CamelDockerPassword |Password to authenticate with |
-
-|email |CamelDockerEmail |Email address associated with the user |
-
-|secure |CamelDockerSecure |Use HTTPS communication�|false
-
-|requestTimeout |CamelDockerRequestTimeout |Request timeout for response (in seconds) |30
-
-|certPath |CamelDockerCertPath |Location containing the SSL certificate chain |
-|=======================================================================
-�
-
-[[Docker-ConsumerOperations]]
-Consumer Operations
-^^^^^^^^^^^^^^^^^^^
-
-The consumer supports the following operations.
-
-[width="100%",cols="10%,10%,70%,10%",options="header",]
-|=======================================================================
-|Operation |Options |Description |Produces
-
-|events |initialRange |Monitor Docker events (Streaming) |Event
-|=======================================================================
-
-[[Docker-ProducerOperations]]
-Producer Operations
-^^^^^^^^^^^^^^^^^^^
-
-The following producer operations are available.
-
-[width="100%",cols="10%,10%,70%,10%",options="header",]
-|=======================================================================
-|Misc Operation |Options |Description |Returns
-
-|auth |  |Check auth configuration |
-
-|info |  |System wide information | Info
-
-|ping |  |Ping the Docker server |
-
-|version |  |Show the docker version information |Version
-
-|=======================================================================
-
-[width="100%",cols="10%,10%,60%,10%,10%",options="header",]
-|=======================================================================
-|Image Operation |Options |Description |Body Content |Returns
-
-|image/list |filter, showAll |List images |   | List<Image>
-
-|image/create |*repository* |Create an image |InputStream |CreateImageResponse
-
-|image/build |noCache, quiet, remove, tag |Build an image from Dockerfile via stdin |InputStream or File |InputStream
-
-|image/pull |*repository*, registry, tag |Pull an image from the registry�|  | InputStream
-
-|image/push |*name* |Push an image on the registry |  |InputStream 
-
-|image/search |*term* |Search for images |  | List<SearchItem>
-
-|image/remove |*imageId* |Remove an image |  |  
-
-|image/tag�|*imageId, repository, tag, force* |Tag an image into a repository |  |
-
-|image/inspect |*imageId* |Inspect an image |  | InspectImageResponse
-|=======================================================================
-
-
-[width="100%",cols="10%,30%,40%,10%,10%",options="header",]
-|=======================================================================
-|Container Operation |Options |Description |Body Content |Returns
-
-|container/list |showSize, showAll, before, since, limit, List containers |initialRange |  | List<Container>
-
-|container/create |*imageId*, name, exposedPorts, workingDir, disableNetwork, hostname,
-user, tty, stdInOpen, stdInOnce, memoryLimit, memorySwap, cpuShares,
-attachStdIn, attachStdOut, attachStdErr, env, cmd, dns, image,
-volumes, volumesFrom |Create a container�|CreateContainerResponse
-
-|container/start |*containerId*, binds, links, lxcConf, portBindings, privileged,
-publishAllPorts, dns, dnsSearch, volumesFrom, networkMode, devices, restartPolicy, 
-capAdd, capDrop |Start a container |  |
-
-|container/inspect |*containerId* |Inspect a container�|  | InspectContainerResponse
-
-|container/wait |*containerId* |Wait a container |Integer |
-
-|container/log |*containerId*, stdOut, stdErr, timestamps, followStream, tailAll, tail |Get container logs� |  |InputStream
-
-|container/attach |*containerId*, stdOut, stdErr, timestamps, logs, followStream |Attach to a container |  |InputStream
-
-|container/stop |*containerId*, timeout |Stop a container |  |
-
-|container/restart |*containerId*, timeout |Restart a container |  |
-
-|container/diff |*containerId* |Inspect changes on a container |  | ChangeLog
-
-|container/kill |*containerId*, signal |Kill a container |  |
-
-|container/top |*containerId*, psArgs |List processes running in a container |  | TopContainerResponse
-
-|container/pause |*containerId* |Pause a container |  |
-
-|container/unpause |*containerId* |Unpause a container |  |
-
-|container/commit |*containerId*, repository, message, tag, attachStdIn, attachStdOut,
-attachStdErr, cmd, disableNetwork, pause, env, exposedPorts, hostname, memory,
-memorySwap, openStdIn, portSpecs, stdInOnce, tty, user, volumes, hostname |Create a new image from a container's changes |String |
-
-|container/copyfile |*containerId*, *resource*, hostPath |Copy files or folders from a container |InputStream |
-
-|container/remove |*containerId*, force, removeVolumes�|Remove a container | |
-|=======================================================================
-
-[[Docker-Examples]]
-Examples
-^^^^^^^^
-
-The following example consumes events from Docker:
-
-[source,java]
-----------------------------------------------------------------------
-from("docker://events?host=192.168.59.103&port=2375").to("log:event");
-----------------------------------------------------------------------
-
-�
-
-The following example queries Docker for system wide information
-
-[source,java]
--------------------------------------------------------------------
-from("docker://info?host=192.168.59.103&port=2375").to("log:info");
--------------------------------------------------------------------
-
-�
-
-�
-
-�