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:04:14 UTC

[50/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/camel-core/src/main/docs/controlbus.adoc
----------------------------------------------------------------------
diff --git a/camel-core/src/main/docs/controlbus.adoc b/camel-core/src/main/docs/controlbus.adoc
deleted file mode 100644
index 5aa3cea..0000000
--- a/camel-core/src/main/docs/controlbus.adoc
+++ /dev/null
@@ -1,211 +0,0 @@
-[[ControlBus-ControlBus]]
-ControlBus
-^^^^^^^^^^
-
-The http://www.eaipatterns.com/ControlBus.html[Control Bus] from the
-link:enterprise-integration-patterns.html[EIP patterns] allows for the
-integration system to be monitored and managed from within the
-framework.
-
-image:http://www.eaipatterns.com/img/ControlBus.gif[image]
-
-Use a Control Bus to manage an enterprise integration system. The
-Control Bus uses the same messaging mechanism used by the application
-data, but uses separate channels to transmit data that is relevant to
-the management of components involved in the message flow.
-
-In Camel you can manage and monitor using link:camel-jmx.html[JMX], or
-by using a Java API from the `CamelContext`, or from the
-`org.apache.camel.api.management` package, +
- or use the event notifier which has an example
-link:eventnotifier-to-log-details-about-all-sent-exchanges.html[here].
-
-From Camel 2.11 onwards we have introduced a new
-link:controlbus-component.html[ControlBus Component] that allows you to
-send messages to a control bus link:endpoint.html[Endpoint] that reacts
-accordingly.
-
-[[ControlBus-ControlBusComponent]]
-ControlBus Component
-~~~~~~~~~~~~~~~~~~~~
-
-*Available as of Camel 2.11*
-
-The *controlbus:* component provides easy management of Camel
-applications based on the link:controlbus.html[Control Bus] EIP
-pattern. 
-For example, by sending a message to an link:endpoint.html[Endpoint]
-you can control the lifecycle of routes, or gather performance
-statistics.
-
-[source,java]
-----------------------------
-controlbus:command[?options]
-----------------------------
-
-Where *command* can be any string to identify which type of command to
-use.
-
-[[ControlBus-Commands]]
-Commands
-^^^^^^^^
-
-[width="100%",cols="10%,90%",options="header",]
-|=======================================================================
-|Command |Description
-
-|`route` |To control routes using the `routeId` and `action` parameter.
-
-|`language` |Allows you to specify a link:language.html[Language] to use for
-evaluating the message body. If there is any result from the evaluation,
-then the result is put in the message body.
-|=======================================================================
-
-[[ControlBus-Options]]
-Options
-^^^^^^^
-
-
-// component options: START
-The Control Bus component has no options.
-// component options: END
-
-
-
-// endpoint options: START
-The Control Bus component supports 8 endpoint options which are listed below:
-
-{% raw %}
-[width="100%",cols="2s,1,1m,1m,5",options="header"]
-|=======================================================================
-| Name | Group | Default | Java Type | Description
-| command | producer |  | String | *Required* Command can be either route or language
-| language | producer |  | Language | Allows you to specify the name of a Language to use for evaluating the message body. If there is any result from the evaluation then the result is put in the message body.
-| action | producer |  | String | To denote an action that can be either: start stop or status. To either start or stop a route or to get the status of the route as output in the message body. You can use suspend and resume from Camel 2.11.1 onwards to either suspend or resume a route. And from Camel 2.11.1 onwards you can use stats to get performance statics returned in XML format; the routeId option can be used to define which route to get the performance stats for if routeId is not defined then you get statistics for the entire CamelContext.
-| async | producer | false | boolean | Whether to execute the control bus task asynchronously. Important: If this option is enabled then any result from the task is not set on the Exchange. This is only possible if executing tasks synchronously.
-| loggingLevel | producer | INFO | LoggingLevel | Logging level used for logging when task is done or if any exceptions occurred during processing the task.
-| routeId | producer |  | String | To specify a route by its id. The special keyword current indicates the current route.
-| 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
-
-
-You can append query options to the URI in the following format,
-`?option=value&option=value&...`
-
-[[ControlBus-Samples]]
-Samples
-^^^^^^^
-
-[[ControlBus-Usingroutecommand]]
-Using route command
-+++++++++++++++++++
-
-The route command allows you to do common tasks on a given route very
-easily, for example to start a route, you can send an empty message to
-this endpoint:
-
-[source,java]
----------------------------------------------------------------------
-template.sendBody("controlbus:route?routeId=foo&action=start", null);
----------------------------------------------------------------------
-
-To get the status of the route, you can do:
-
-[source,java]
--------------------------------------------------------------------------------------------------------
-String status = template.requestBody("controlbus:route?routeId=foo&action=status", null, String.class);
--------------------------------------------------------------------------------------------------------
-
-[[ControlBus-Gettingperformancestatistics]]
-Getting performance statistics
-
-*Available as of Camel 2.11.1*
-
-This requires JMX to be enabled (is by default) then you can get the
-performance statics per route, or for the
-link:camelcontext.html[CamelContext]. For example to get the statics for
-a route named foo, we can do:
-
-[source,java]
----------------------------------------------------------------------------------------------------
-String xml = template.requestBody("controlbus:route?routeId=foo&action=stats", null, String.class);
----------------------------------------------------------------------------------------------------
-
-The returned statics is in XML format. Its the same data you can get
-from JMX with the `dumpRouteStatsAsXml` operation on the
-`ManagedRouteMBean`.
-
-To get statics for the entire link:camelcontext.html[CamelContext] you
-just omit the routeId parameter as shown below:
-
-[source,java]
----------------------------------------------------------------------------------------
-String xml = template.requestBody("controlbus:route?action=stats", null, String.class);
----------------------------------------------------------------------------------------
-
-[[ControlBus-Usinglanguage]]
-Using link:simple.html[Simple] language
-+++++++++++++++++++++++++++++++++++++++
-
-You can use the link:simple.html[Simple] language with the control bus,
-for example to stop a specific route, you can send a message to the
-`"controlbus:language:simple"` endpoint containing the following
-message:
-
-[source,java]
-----------------------------------------------------------------------------------------
-template.sendBody("controlbus:language:simple", "${camelContext.stopRoute('myRoute')}");
-----------------------------------------------------------------------------------------
-
-As this is a void operation, no result is returned. However, if you want
-the route status you can do:
-
-[source,java]
-------------------------------------------------------------------------------------------------------------------------------
-String status = template.requestBody("controlbus:language:simple", "${camelContext.getRouteStatus('myRoute')}", String.class);
-------------------------------------------------------------------------------------------------------------------------------
-
-*Notice:* its easier to use the `route` command to control lifecycle of
-routes. The `language` command allows you to execute a language script
-that has stronger powers such as link:groovy.html[Groovy] or to some
-extend the link:simple.html[Simple] language.
-
-For example to shutdown Camel itself you can do:
-
-[source,java]
--------------------------------------------------------------------------------------
-template.sendBody("controlbus:language:simple?async=true", "${camelContext.stop()}");
--------------------------------------------------------------------------------------
-
-Notice we use `async=true` to stop Camel asynchronously as otherwise we
-would be trying to stop Camel while it was in-flight processing the
-message we sent to the control bus component.
-
-TIP:You can also use other languages such as link:groovy.html[Groovy], etc.
-
-[[ControlBus-SeeAlso]]
-See Also
-^^^^^^^^
-
-* link:configuring-camel.html[Configuring Camel]
-* link:component.html[Component]
-* link:endpoint.html[Endpoint]
-* link:getting-started.html[Getting Started]
-
-* link:controlbus.html[ControlBus] EIP
-* link:jmx.html[JMX] Component
-* Using link:camel-jmx.html[JMX] with Camel
-
-[[ControlBus-UsingThisPattern]]
-Using This Pattern
-++++++++++++++++++
-
-If you would like to use this EIP Pattern then please read the
-link:getting-started.html[Getting Started], you may also find the
-link:architecture.html[Architecture] useful particularly the description
-of link:endpoint.html[Endpoint] and link:uris.html[URIs]. Then you could
-try out some of the link:examples.html[Examples] first before trying
-this pattern out.

http://git-wip-us.apache.org/repos/asf/camel/blob/9c0b7baf/camel-core/src/main/docs/dataformat-component.adoc
----------------------------------------------------------------------
diff --git a/camel-core/src/main/docs/dataformat-component.adoc b/camel-core/src/main/docs/dataformat-component.adoc
new file mode 100644
index 0000000..78f7048
--- /dev/null
+++ b/camel-core/src/main/docs/dataformat-component.adoc
@@ -0,0 +1,88 @@
+[[DataFormatComponent-DataFormatComponent]]
+Data Format Component
+~~~~~~~~~~~~~~~~~~~~~
+
+*Available as of Camel 2.12*
+
+The *dataformat:* component allows to use link:data-format.html[Data
+Format] as a Camel link:component.html[Component].
+
+[[DataFormatComponent-URIformat]]
+URI format
+^^^^^^^^^^
+
+[source,java]
+---------------------------------------------
+dataformat:name:(marshal|unmarshal)[?options]
+---------------------------------------------
+
+Where *name* is the name of the link:data-format.html[Data Format]. And
+then followed by the operation which must either be `marshal` or
+`unmarshal`. The options is used for configuring the link:data-format.html[Data
+Format] in use. See the link:data-format.html[Data Format] documentation
+for which options it support.
+
+[[DataFormatComponent-Options]]
+DataFormat Options
+^^^^^^^^^^^^^^^^^^
+
+
+// component options: START
+The Data Format component has no options.
+// component options: END
+
+
+
+// endpoint options: START
+The Data Format component supports 4 endpoint options which are listed below:
+
+{% raw %}
+[width="100%",cols="2s,1,1m,1m,5",options="header"]
+|=======================================================================
+| Name | Group | Default | Java Type | Description
+| name | producer |  | String | *Required* Name of data format
+| operation | producer |  | String | *Required* Operation to use either marshal or unmarshal
+| 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
+
+
+[[DataFormatComponent-Samples]]
+Samples
+^^^^^^^
+
+For example to use the link:jaxb.html[JAXB] link:data-format.html[Data
+Format] we can do as follows:
+
+[source,java]
+-------------------------------------------------------------
+from("activemq:My.Queue").
+  to("dataformat:jaxb:unmarshal?contextPath=com.acme.model").
+  to("mqseries:Another.Queue");
+-------------------------------------------------------------
+
+And in XML DSL you do:
+
+[source,xml]
+-----------------------------------------------------------------------
+<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
+  <route>
+    <from uri="activemq:My.Queue"/>
+    <to uri="dataformat:jaxb:unmarshal?contextPath=com.acme.model"/>
+    <to uri="mqseries:Another.Queue"/>
+  </route>
+</camelContext>
+-----------------------------------------------------------------------
+
+[[DataFormatComponent-SeeAlso]]
+See Also
+^^^^^^^^
+
+* link:configuring-camel.html[Configuring Camel]
+* link:component.html[Component]
+* link:endpoint.html[Endpoint]
+* link:getting-started.html[Getting Started]
+* link:data-format.html[Data Format]
+

http://git-wip-us.apache.org/repos/asf/camel/blob/9c0b7baf/camel-core/src/main/docs/dataformat.adoc
----------------------------------------------------------------------
diff --git a/camel-core/src/main/docs/dataformat.adoc b/camel-core/src/main/docs/dataformat.adoc
deleted file mode 100644
index 78f7048..0000000
--- a/camel-core/src/main/docs/dataformat.adoc
+++ /dev/null
@@ -1,88 +0,0 @@
-[[DataFormatComponent-DataFormatComponent]]
-Data Format Component
-~~~~~~~~~~~~~~~~~~~~~
-
-*Available as of Camel 2.12*
-
-The *dataformat:* component allows to use link:data-format.html[Data
-Format] as a Camel link:component.html[Component].
-
-[[DataFormatComponent-URIformat]]
-URI format
-^^^^^^^^^^
-
-[source,java]
----------------------------------------------
-dataformat:name:(marshal|unmarshal)[?options]
----------------------------------------------
-
-Where *name* is the name of the link:data-format.html[Data Format]. And
-then followed by the operation which must either be `marshal` or
-`unmarshal`. The options is used for configuring the link:data-format.html[Data
-Format] in use. See the link:data-format.html[Data Format] documentation
-for which options it support.
-
-[[DataFormatComponent-Options]]
-DataFormat Options
-^^^^^^^^^^^^^^^^^^
-
-
-// component options: START
-The Data Format component has no options.
-// component options: END
-
-
-
-// endpoint options: START
-The Data Format component supports 4 endpoint options which are listed below:
-
-{% raw %}
-[width="100%",cols="2s,1,1m,1m,5",options="header"]
-|=======================================================================
-| Name | Group | Default | Java Type | Description
-| name | producer |  | String | *Required* Name of data format
-| operation | producer |  | String | *Required* Operation to use either marshal or unmarshal
-| 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
-
-
-[[DataFormatComponent-Samples]]
-Samples
-^^^^^^^
-
-For example to use the link:jaxb.html[JAXB] link:data-format.html[Data
-Format] we can do as follows:
-
-[source,java]
--------------------------------------------------------------
-from("activemq:My.Queue").
-  to("dataformat:jaxb:unmarshal?contextPath=com.acme.model").
-  to("mqseries:Another.Queue");
--------------------------------------------------------------
-
-And in XML DSL you do:
-
-[source,xml]
------------------------------------------------------------------------
-<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
-  <route>
-    <from uri="activemq:My.Queue"/>
-    <to uri="dataformat:jaxb:unmarshal?contextPath=com.acme.model"/>
-    <to uri="mqseries:Another.Queue"/>
-  </route>
-</camelContext>
------------------------------------------------------------------------
-
-[[DataFormatComponent-SeeAlso]]
-See Also
-^^^^^^^^
-
-* link:configuring-camel.html[Configuring Camel]
-* link:component.html[Component]
-* link:endpoint.html[Endpoint]
-* link:getting-started.html[Getting Started]
-* link:data-format.html[Data Format]
-

http://git-wip-us.apache.org/repos/asf/camel/blob/9c0b7baf/camel-core/src/main/docs/dataset-component.adoc
----------------------------------------------------------------------
diff --git a/camel-core/src/main/docs/dataset-component.adoc b/camel-core/src/main/docs/dataset-component.adoc
new file mode 100644
index 0000000..970c712
--- /dev/null
+++ b/camel-core/src/main/docs/dataset-component.adoc
@@ -0,0 +1,239 @@
+[[DataSet-DataSetComponent]]
+DataSet Component
+~~~~~~~~~~~~~~~~~
+
+link:testing.html[Testing] of distributed and asynchronous processing is
+notoriously difficult. The link:mock.html[Mock], link:test.html[Test]
+and link:dataset.html[DataSet] endpoints work great with the
+link:testing.html[Camel Testing Framework] to simplify your unit and
+integration testing using
+link:enterprise-integration-patterns.html[Enterprise Integration
+Patterns] and Camel's large range of link:components.html[Components]
+together with the powerful link:bean-integration.html[Bean Integration].
+
+The DataSet component provides a mechanism to easily perform load & soak
+testing of your system. It works by allowing you to create
+http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/component/dataset/DataSet.html[DataSet
+instances] both as a source of messages and as a way to assert that the
+data set is received.
+
+Camel will use the link:log.html[throughput logger] when sending
+dataset's.
+
+[[DataSet-URIformat]]
+URI format
+^^^^^^^^^^
+
+[source,java]
+----------------------
+dataset:name[?options]
+----------------------
+
+Where *name* is used to find the
+http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/component/dataset/DataSet.html[DataSet
+instance] in the link:registry.html[Registry]
+
+Camel ships with a support implementation of
+`org.apache.camel.component.dataset.DataSet`, the
+`org.apache.camel.component.dataset.DataSetSupport` class, that can be
+used as a base for implementing your own DataSet. Camel also ships with
+some implementations that can be used for testing:
+�`org.apache.camel.component.dataset.SimpleDataSet`,�`org.apache.camel.component.dataset.ListDataSet`
+and�`org.apache.camel.component.dataset.FileDataSet`, all of which
+extend `DataSetSupport`.
+
+[[DataSet-Options]]
+Options
+^^^^^^^
+
+
+// component options: START
+The Dataset component has no options.
+// component options: END
+
+
+
+// endpoint options: START
+The Dataset component supports 20 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 |  | DataSet | *Required* Name of DataSet to lookup in the registry
+| dataSetIndex | common | lenient | String | Controls the behaviour of the CamelDataSetIndex header. For Consumers: - off = the header will not be set - strict/lenient = the header will be set For Producers: - off = the header value will not be verified and will not be set if it is not present = strict = the header value must be present and will be verified = lenient = the header value will be verified if it is present and will be set if it is not present
+| 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.
+| initialDelay | consumer | 1000 | long | Time period in millis to wait before starting sending messages.
+| minRate | consumer | 0 | int | Wait until the DataSet contains at least this number of messages
+| preloadSize | consumer | 0 | long | Sets how many messages should be preloaded (sent) before the route completes its initialization
+| produceDelay | consumer | 3 | long | Allows a delay to be specified which causes a delay when a message is sent by the consumer (to simulate slow processing)
+| 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.
+| assertPeriod | producer | 0 | long | Sets a grace period after which the mock endpoint will re-assert to ensure the preliminary assertion is still valid. This is used for example to assert that exactly a number of messages arrives. For example if link expectedMessageCount(int) was set to 5 then the assertion is satisfied when 5 or more message arrives. To ensure that exactly 5 messages arrives then you would need to wait a little period to ensure no further message arrives. This is what you can use this link setAssertPeriod(long) method for. By default this period is disabled.
+| consumeDelay | producer | 0 | long | Allows a delay to be specified which causes a delay when a message is consumed by the producer (to simulate slow processing)
+| expectedCount | producer | -1 | int | Specifies the expected number of message exchanges that should be received by this endpoint. Beware: If you want to expect that 0 messages then take extra care as 0 matches when the tests starts so you need to set a assert period time to let the test run for a while to make sure there are still no messages arrived; for that use link setAssertPeriod(long). An alternative is to use NotifyBuilder and use the notifier to know when Camel is done routing some messages before you call the link assertIsSatisfied() method on the mocks. This allows you to not use a fixed assert period to speedup testing times. If you want to assert that exactly n'th message arrives to this mock endpoint then see also the link setAssertPeriod(long) method for further details.
+| reportGroup | producer |  | int | A number that is used to turn on throughput logging based on groups of the size.
+| resultMinimumWaitTime | producer | 0 | long | Sets the minimum expected amount of time (in millis) the link assertIsSatisfied() will wait on a latch until it is satisfied
+| resultWaitTime | producer | 0 | long | Sets the maximum amount of time (in millis) the link assertIsSatisfied() will wait on a latch until it is satisfied
+| retainFirst | producer | -1 | int | Specifies to only retain the first n'th number of received Exchanges. This is used when testing with big data to reduce memory consumption by not storing copies of every Exchange this mock endpoint receives. Important: When using this limitation then the link getReceivedCounter() will still return the actual number of received Exchanges. For example if we have received 5000 Exchanges and have configured to only retain the first 10 Exchanges then the link getReceivedCounter() will still return 5000 but there is only the first 10 Exchanges in the link getExchanges() and link getReceivedExchanges() methods. When using this method then some of the other expectation methods is not supported for example the link expectedBodiesReceived(Object...) sets a expectation on the first number of bodies received. You can configure both link setRetainFirst(int) and link setRetainLast(int) methods to limit both the first and last received.
+| retainLast | producer | -1 | int | Specifies to only retain the last n'th number of received Exchanges. This is used when testing with big data to reduce memory consumption by not storing copies of every Exchange this mock endpoint receives. Important: When using this limitation then the link getReceivedCounter() will still return the actual number of received Exchanges. For example if we have received 5000 Exchanges and have configured to only retain the last 20 Exchanges then the link getReceivedCounter() will still return 5000 but there is only the last 20 Exchanges in the link getExchanges() and link getReceivedExchanges() methods. When using this method then some of the other expectation methods is not supported for example the link expectedBodiesReceived(Object...) sets a expectation on the first number of bodies received. You can configure both link setRetainFirst(int) and link setRetainLast(int) methods to limit both the first and last received.
+| sleepForEmptyTest | producer | 0 | long | Allows a sleep to be specified to wait to check that this endpoint really is empty when link expectedMessageCount(int) is called with zero
+| copyOnExchange | producer (advanced) | true | boolean | Sets whether to make a deep copy of the incoming Exchange when received at this mock endpoint. Is by default true.
+| 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
+
+
+You can append query options to the URI in the following format,
+`?option=value&option=value&...`
+
+[[DataSet-ConfiguringDataSet]]
+Configuring DataSet
+^^^^^^^^^^^^^^^^^^^
+
+Camel will lookup in the link:registry.html[Registry] for a bean
+implementing the DataSet interface. So you can register your own DataSet
+as:
+
+[source,xml]
+--------------------------------------------------------
+   <bean id="myDataSet" class="com.mycompany.MyDataSet">
+      <property name="size" value="100"/>
+   </bean>
+--------------------------------------------------------
+
+[[DataSet-Example]]
+Example
+^^^^^^^
+
+For example, to test that a set of messages are sent to a queue and then
+consumed from the queue without losing any messages:
+
+[source,java]
+---------------------------------------------------------
+// send the dataset to a queue
+from("dataset:foo").to("activemq:SomeQueue");
+
+// now lets test that the messages are consumed correctly
+from("activemq:SomeQueue").to("dataset:foo");
+---------------------------------------------------------
+
+The above would look in the link:registry.html[Registry] to find the
+*foo* DataSet instance which is used to create the messages.
+
+Then you create a DataSet implementation, such as using the
+`SimpleDataSet` as described below, configuring things like how big the
+data set is and what the messages look like etc. �
+
+�
+
+[[DataSet-DataSetSupport(abstractclass)]]
+`DataSetSupport`�(abstract class)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The DataSetSupport abstract class is a nice starting point for new
+DataSets, and provides some useful features to derived classes.
+
+[[DataSet-PropertiesonDataSetSupport]]
+Properties on DataSetSupport
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+[width="100%",cols="10%,10%,10%,70%",options="header",]
+|=======================================================================
+|Property |Type |Default |Description
+
+|`defaultHeaders` |`Map<String,Object>` |`null` |Specifies the default message body. For SimpleDataSet it is a constant
+payload; though if you want to create custom payloads per message,
+create your own derivation of `DataSetSupport`.
+
+|`outputTransformer` |`org.apache.camel.Processor` |null |
+
+|`size` |`long` |`10` |Specifies how many messages to send/consume.
+
+|`reportCount` |`long` |`-1` |Specifies the number of messages to be received before reporting
+progress. Useful for showing progress of a large load test. If < 0, then
+`size` / 5, if is 0 then `size`, else set to `reportCount` value.
+|=======================================================================
+
+[[DataSet-SimpleDataSet]]
+`SimpleDataSet`
+^^^^^^^^^^^^^^^
+
+The `SimpleDataSet` extends `DataSetSupport`, and adds a default body.
+
+[[DataSet-AdditionalPropertiesonSimpleDataSet]]
+Additional Properties on SimpleDataSet
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+[width="100%",cols="10%,10%,10%,70%",options="header",]
+|=======================================================================
+|Property |Type |Default |Description
+
+|`defaultBody` |`Object` |`<hello>world!</hello>` |Specifies the default message body. By default, the `SimpleDataSet`
+produces the same constant payload for each exchange. If you want to
+customize the payload for each exchange, create a Camel `Processor` and
+configure the `SimpleDataSet` to use it by setting the
+`outputTransformer` property.
+|=======================================================================
+
+[[DataSet-ListDataSet(Camel2.17)]]
+`ListDataSet (Camel 2.17)`
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The List`DataSet`�extends�`DataSetSupport`, and adds a list of default
+bodies.
+
+[[DataSet-AdditionalPropertiesonListDataSet]]
+Additional Properties on ListDataSet
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+[width="100%",cols="10%,10%,10%,70%",options="header",]
+|=======================================================================
+|Property |Type |Default |Description
+
+|`defaultBodies` |`List<Object>` |`empty LinkedList<Object>` |Specifies the default message body. By default, the `ListDataSet`
+selects a constant payload from the list of `defaultBodies` using the
+`CamelDataSetIndex`. If you want to customize the payload, create a
+Camel `Processor` and configure the `ListDataSet` to use it by setting
+the `outputTransformer` property.
+
+|`size` |`long` |the size of the defaultBodies list |Specifies how many messages to send/consume. This value can be different
+from the size of the `defaultBodies` list. If the value is less than the
+size of the `defaultBodies` list, some of the list elements will not be
+used. If the value is greater than the size of the `defaultBodies` list,
+the payload for the exchange will be selected using the modulus of the
+`CamelDataSetIndex` and the size of the `defaultBodies` list (i.e.
+`CamelDataSetIndex % defaultBodies.size()` )
+|=======================================================================
+
+[[DataSet-FileDataSetCamel2.17]]
+FileDataSet (Camel 2.17)
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+The�`SimpleDataSet`�extends `ListDataSet`, and adds support for loading
+the bodies from a file.
+
+[[DataSet-AdditionalPropertiesonFileDataSet]]
+Additional Properties on FileDataSet
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+[width="100%",cols="10%,10%,10%,70%",options="header",]
+|=======================================================================
+|Property |Type |Default |Description
+
+|`sourceFile` |`File` |null |Specifies the source file for payloads
+
+|`delimiter` |`String` |\z |Specifies the delimiter pattern used by a `java.util.Scanner` to split
+the file into multiple payloads.
+|=======================================================================
+
+[[DataSet-SeeAlso]]
+See Also
+^^^^^^^^
+
+* link:configuring-camel.html[Configuring Camel]
+* link:component.html[Component]
+* link:endpoint.html[Endpoint]
+* link:getting-started.html[Getting Started]
+* link:spring-testing.html[Spring Testing]
+

http://git-wip-us.apache.org/repos/asf/camel/blob/9c0b7baf/camel-core/src/main/docs/dataset.adoc
----------------------------------------------------------------------
diff --git a/camel-core/src/main/docs/dataset.adoc b/camel-core/src/main/docs/dataset.adoc
deleted file mode 100644
index 970c712..0000000
--- a/camel-core/src/main/docs/dataset.adoc
+++ /dev/null
@@ -1,239 +0,0 @@
-[[DataSet-DataSetComponent]]
-DataSet Component
-~~~~~~~~~~~~~~~~~
-
-link:testing.html[Testing] of distributed and asynchronous processing is
-notoriously difficult. The link:mock.html[Mock], link:test.html[Test]
-and link:dataset.html[DataSet] endpoints work great with the
-link:testing.html[Camel Testing Framework] to simplify your unit and
-integration testing using
-link:enterprise-integration-patterns.html[Enterprise Integration
-Patterns] and Camel's large range of link:components.html[Components]
-together with the powerful link:bean-integration.html[Bean Integration].
-
-The DataSet component provides a mechanism to easily perform load & soak
-testing of your system. It works by allowing you to create
-http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/component/dataset/DataSet.html[DataSet
-instances] both as a source of messages and as a way to assert that the
-data set is received.
-
-Camel will use the link:log.html[throughput logger] when sending
-dataset's.
-
-[[DataSet-URIformat]]
-URI format
-^^^^^^^^^^
-
-[source,java]
-----------------------
-dataset:name[?options]
-----------------------
-
-Where *name* is used to find the
-http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/component/dataset/DataSet.html[DataSet
-instance] in the link:registry.html[Registry]
-
-Camel ships with a support implementation of
-`org.apache.camel.component.dataset.DataSet`, the
-`org.apache.camel.component.dataset.DataSetSupport` class, that can be
-used as a base for implementing your own DataSet. Camel also ships with
-some implementations that can be used for testing:
-�`org.apache.camel.component.dataset.SimpleDataSet`,�`org.apache.camel.component.dataset.ListDataSet`
-and�`org.apache.camel.component.dataset.FileDataSet`, all of which
-extend `DataSetSupport`.
-
-[[DataSet-Options]]
-Options
-^^^^^^^
-
-
-// component options: START
-The Dataset component has no options.
-// component options: END
-
-
-
-// endpoint options: START
-The Dataset component supports 20 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 |  | DataSet | *Required* Name of DataSet to lookup in the registry
-| dataSetIndex | common | lenient | String | Controls the behaviour of the CamelDataSetIndex header. For Consumers: - off = the header will not be set - strict/lenient = the header will be set For Producers: - off = the header value will not be verified and will not be set if it is not present = strict = the header value must be present and will be verified = lenient = the header value will be verified if it is present and will be set if it is not present
-| 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.
-| initialDelay | consumer | 1000 | long | Time period in millis to wait before starting sending messages.
-| minRate | consumer | 0 | int | Wait until the DataSet contains at least this number of messages
-| preloadSize | consumer | 0 | long | Sets how many messages should be preloaded (sent) before the route completes its initialization
-| produceDelay | consumer | 3 | long | Allows a delay to be specified which causes a delay when a message is sent by the consumer (to simulate slow processing)
-| 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.
-| assertPeriod | producer | 0 | long | Sets a grace period after which the mock endpoint will re-assert to ensure the preliminary assertion is still valid. This is used for example to assert that exactly a number of messages arrives. For example if link expectedMessageCount(int) was set to 5 then the assertion is satisfied when 5 or more message arrives. To ensure that exactly 5 messages arrives then you would need to wait a little period to ensure no further message arrives. This is what you can use this link setAssertPeriod(long) method for. By default this period is disabled.
-| consumeDelay | producer | 0 | long | Allows a delay to be specified which causes a delay when a message is consumed by the producer (to simulate slow processing)
-| expectedCount | producer | -1 | int | Specifies the expected number of message exchanges that should be received by this endpoint. Beware: If you want to expect that 0 messages then take extra care as 0 matches when the tests starts so you need to set a assert period time to let the test run for a while to make sure there are still no messages arrived; for that use link setAssertPeriod(long). An alternative is to use NotifyBuilder and use the notifier to know when Camel is done routing some messages before you call the link assertIsSatisfied() method on the mocks. This allows you to not use a fixed assert period to speedup testing times. If you want to assert that exactly n'th message arrives to this mock endpoint then see also the link setAssertPeriod(long) method for further details.
-| reportGroup | producer |  | int | A number that is used to turn on throughput logging based on groups of the size.
-| resultMinimumWaitTime | producer | 0 | long | Sets the minimum expected amount of time (in millis) the link assertIsSatisfied() will wait on a latch until it is satisfied
-| resultWaitTime | producer | 0 | long | Sets the maximum amount of time (in millis) the link assertIsSatisfied() will wait on a latch until it is satisfied
-| retainFirst | producer | -1 | int | Specifies to only retain the first n'th number of received Exchanges. This is used when testing with big data to reduce memory consumption by not storing copies of every Exchange this mock endpoint receives. Important: When using this limitation then the link getReceivedCounter() will still return the actual number of received Exchanges. For example if we have received 5000 Exchanges and have configured to only retain the first 10 Exchanges then the link getReceivedCounter() will still return 5000 but there is only the first 10 Exchanges in the link getExchanges() and link getReceivedExchanges() methods. When using this method then some of the other expectation methods is not supported for example the link expectedBodiesReceived(Object...) sets a expectation on the first number of bodies received. You can configure both link setRetainFirst(int) and link setRetainLast(int) methods to limit both the first and last received.
-| retainLast | producer | -1 | int | Specifies to only retain the last n'th number of received Exchanges. This is used when testing with big data to reduce memory consumption by not storing copies of every Exchange this mock endpoint receives. Important: When using this limitation then the link getReceivedCounter() will still return the actual number of received Exchanges. For example if we have received 5000 Exchanges and have configured to only retain the last 20 Exchanges then the link getReceivedCounter() will still return 5000 but there is only the last 20 Exchanges in the link getExchanges() and link getReceivedExchanges() methods. When using this method then some of the other expectation methods is not supported for example the link expectedBodiesReceived(Object...) sets a expectation on the first number of bodies received. You can configure both link setRetainFirst(int) and link setRetainLast(int) methods to limit both the first and last received.
-| sleepForEmptyTest | producer | 0 | long | Allows a sleep to be specified to wait to check that this endpoint really is empty when link expectedMessageCount(int) is called with zero
-| copyOnExchange | producer (advanced) | true | boolean | Sets whether to make a deep copy of the incoming Exchange when received at this mock endpoint. Is by default true.
-| 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
-
-
-You can append query options to the URI in the following format,
-`?option=value&option=value&...`
-
-[[DataSet-ConfiguringDataSet]]
-Configuring DataSet
-^^^^^^^^^^^^^^^^^^^
-
-Camel will lookup in the link:registry.html[Registry] for a bean
-implementing the DataSet interface. So you can register your own DataSet
-as:
-
-[source,xml]
---------------------------------------------------------
-   <bean id="myDataSet" class="com.mycompany.MyDataSet">
-      <property name="size" value="100"/>
-   </bean>
---------------------------------------------------------
-
-[[DataSet-Example]]
-Example
-^^^^^^^
-
-For example, to test that a set of messages are sent to a queue and then
-consumed from the queue without losing any messages:
-
-[source,java]
----------------------------------------------------------
-// send the dataset to a queue
-from("dataset:foo").to("activemq:SomeQueue");
-
-// now lets test that the messages are consumed correctly
-from("activemq:SomeQueue").to("dataset:foo");
----------------------------------------------------------
-
-The above would look in the link:registry.html[Registry] to find the
-*foo* DataSet instance which is used to create the messages.
-
-Then you create a DataSet implementation, such as using the
-`SimpleDataSet` as described below, configuring things like how big the
-data set is and what the messages look like etc. �
-
-�
-
-[[DataSet-DataSetSupport(abstractclass)]]
-`DataSetSupport`�(abstract class)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The DataSetSupport abstract class is a nice starting point for new
-DataSets, and provides some useful features to derived classes.
-
-[[DataSet-PropertiesonDataSetSupport]]
-Properties on DataSetSupport
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-[width="100%",cols="10%,10%,10%,70%",options="header",]
-|=======================================================================
-|Property |Type |Default |Description
-
-|`defaultHeaders` |`Map<String,Object>` |`null` |Specifies the default message body. For SimpleDataSet it is a constant
-payload; though if you want to create custom payloads per message,
-create your own derivation of `DataSetSupport`.
-
-|`outputTransformer` |`org.apache.camel.Processor` |null |
-
-|`size` |`long` |`10` |Specifies how many messages to send/consume.
-
-|`reportCount` |`long` |`-1` |Specifies the number of messages to be received before reporting
-progress. Useful for showing progress of a large load test. If < 0, then
-`size` / 5, if is 0 then `size`, else set to `reportCount` value.
-|=======================================================================
-
-[[DataSet-SimpleDataSet]]
-`SimpleDataSet`
-^^^^^^^^^^^^^^^
-
-The `SimpleDataSet` extends `DataSetSupport`, and adds a default body.
-
-[[DataSet-AdditionalPropertiesonSimpleDataSet]]
-Additional Properties on SimpleDataSet
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-[width="100%",cols="10%,10%,10%,70%",options="header",]
-|=======================================================================
-|Property |Type |Default |Description
-
-|`defaultBody` |`Object` |`<hello>world!</hello>` |Specifies the default message body. By default, the `SimpleDataSet`
-produces the same constant payload for each exchange. If you want to
-customize the payload for each exchange, create a Camel `Processor` and
-configure the `SimpleDataSet` to use it by setting the
-`outputTransformer` property.
-|=======================================================================
-
-[[DataSet-ListDataSet(Camel2.17)]]
-`ListDataSet (Camel 2.17)`
-^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The List`DataSet`�extends�`DataSetSupport`, and adds a list of default
-bodies.
-
-[[DataSet-AdditionalPropertiesonListDataSet]]
-Additional Properties on ListDataSet
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-[width="100%",cols="10%,10%,10%,70%",options="header",]
-|=======================================================================
-|Property |Type |Default |Description
-
-|`defaultBodies` |`List<Object>` |`empty LinkedList<Object>` |Specifies the default message body. By default, the `ListDataSet`
-selects a constant payload from the list of `defaultBodies` using the
-`CamelDataSetIndex`. If you want to customize the payload, create a
-Camel `Processor` and configure the `ListDataSet` to use it by setting
-the `outputTransformer` property.
-
-|`size` |`long` |the size of the defaultBodies list |Specifies how many messages to send/consume. This value can be different
-from the size of the `defaultBodies` list. If the value is less than the
-size of the `defaultBodies` list, some of the list elements will not be
-used. If the value is greater than the size of the `defaultBodies` list,
-the payload for the exchange will be selected using the modulus of the
-`CamelDataSetIndex` and the size of the `defaultBodies` list (i.e.
-`CamelDataSetIndex % defaultBodies.size()` )
-|=======================================================================
-
-[[DataSet-FileDataSetCamel2.17]]
-FileDataSet (Camel 2.17)
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-The�`SimpleDataSet`�extends `ListDataSet`, and adds support for loading
-the bodies from a file.
-
-[[DataSet-AdditionalPropertiesonFileDataSet]]
-Additional Properties on FileDataSet
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-[width="100%",cols="10%,10%,10%,70%",options="header",]
-|=======================================================================
-|Property |Type |Default |Description
-
-|`sourceFile` |`File` |null |Specifies the source file for payloads
-
-|`delimiter` |`String` |\z |Specifies the delimiter pattern used by a `java.util.Scanner` to split
-the file into multiple payloads.
-|=======================================================================
-
-[[DataSet-SeeAlso]]
-See Also
-^^^^^^^^
-
-* link:configuring-camel.html[Configuring Camel]
-* link:component.html[Component]
-* link:endpoint.html[Endpoint]
-* link:getting-started.html[Getting Started]
-* link:spring-testing.html[Spring Testing]
-

http://git-wip-us.apache.org/repos/asf/camel/blob/9c0b7baf/camel-core/src/main/docs/direct-component.adoc
----------------------------------------------------------------------
diff --git a/camel-core/src/main/docs/direct-component.adoc b/camel-core/src/main/docs/direct-component.adoc
new file mode 100644
index 0000000..7868d04
--- /dev/null
+++ b/camel-core/src/main/docs/direct-component.adoc
@@ -0,0 +1,119 @@
+[[Direct-DirectComponent]]
+Direct Component
+~~~~~~~~~~~~~~~~
+
+The *direct:* component provides direct, synchronous invocation of any
+consumers when a producer sends a message exchange. +
+ This endpoint can be used to connect existing routes in the *same*
+camel context.
+
+TIP: *Asynchronous*
+The link:seda.html[SEDA] component provides asynchronous invocation of
+any consumers when a producer sends a message exchange.
+
+TIP:*Connection to other camel contexts*
+The link:vm.html[VM] component provides connections between Camel
+contexts as long they run in the same *JVM*.
+
+[[Direct-URIformat]]
+URI format
+^^^^^^^^^^
+
+[source,text]
+-------------------------
+direct:someName[?options]
+-------------------------
+
+Where *someName* can be any string to uniquely identify the endpoint
+
+[[Direct-Options]]
+Options
+^^^^^^^
+
+
+// component options: START
+The Direct component supports 2 options which are listed below.
+
+
+
+{% raw %}
+[width="100%",cols="2s,1m,8",options="header"]
+|=======================================================================
+| Name | Java Type | Description
+| block | boolean | If sending a message to a direct endpoint which has no active consumer then we can tell the producer to block and wait for the consumer to become active.
+| timeout | long | The timeout value to use if block is enabled.
+|=======================================================================
+{% endraw %}
+// component options: END
+
+
+
+// endpoint options: START
+The Direct component supports 8 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 direct endpoint
+| 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.
+| block | producer | false | boolean | If sending a message to a direct endpoint which has no active consumer then we can tell the producer to block and wait for the consumer to become active.
+| failIfNoConsumers | producer | false | boolean | Whether the producer should fail by throwing an exception when sending to a DIRECT endpoint with no active consumers.
+| timeout | producer | 30000 | long | The timeout value to use if block is enabled.
+| 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
+
+
+[[Direct-Samples]]
+Samples
+^^^^^^^
+
+In the route below we use the direct component to link the two routes
+together:
+
+[source,java]
+-------------------------------------------
+from("activemq:queue:order.in")
+    .to("bean:orderServer?method=validate")
+    .to("direct:processOrder");
+
+from("direct:processOrder")
+    .to("bean:orderService?method=process")
+    .to("activemq:queue:order.out");
+-------------------------------------------
+
+And the sample using spring DSL:
+
+[source,xml]
+--------------------------------------------------
+   <route>
+     <from uri="activemq:queue:order.in"/>
+     <to uri="bean:orderService?method=validate"/>
+     <to uri="direct:processOrder"/>
+  </route>
+
+  <route>
+     <from uri="direct:processOrder"/>
+     <to uri="bean:orderService?method=process"/>
+     <to uri="activemq:queue:order.out"/>
+  </route>    
+--------------------------------------------------
+
+See also samples from the link:seda.html[SEDA] component, how they can
+be used together.
+
+[[Direct-SeeAlso]]
+See Also
+^^^^^^^^
+
+* link:configuring-camel.html[Configuring Camel]
+* link:component.html[Component]
+* link:endpoint.html[Endpoint]
+* link:getting-started.html[Getting Started]
+* link:seda.html[SEDA]
+* link:vm.html[VM]
+

http://git-wip-us.apache.org/repos/asf/camel/blob/9c0b7baf/camel-core/src/main/docs/direct-vm-component.adoc
----------------------------------------------------------------------
diff --git a/camel-core/src/main/docs/direct-vm-component.adoc b/camel-core/src/main/docs/direct-vm-component.adoc
new file mode 100644
index 0000000..24202a6
--- /dev/null
+++ b/camel-core/src/main/docs/direct-vm-component.adoc
@@ -0,0 +1,140 @@
+[[Direct-VM-DirectVMComponent]]
+Direct VM Component
+~~~~~~~~~~~~~~~~~~~
+
+*Available as of Camel 2.10*
+
+The *direct-vm:* component provides direct, synchronous invocation of
+any consumers in the JVM when a producer sends a message exchange. +
+ This endpoint can be used to connect existing routes in the same camel
+context, as well from other camel contexts in the *same* JVM.
+
+This component differs from the link:direct.html[Direct] component in
+that link:direct-vm.html[Direct-VM] supports communication across
+CamelContext instances - so you can use this mechanism to communicate
+across web applications (provided that camel-core.jar is on the
+system/boot classpath).
+
+At runtime you can swap in new consumers, by stopping the existing
+consumer(s) and start new consumers. +
+ But at any given time there can be at most only one active consumer for
+a given endpoint.
+
+This component allows also to connect routes deployed in different OSGI
+Bundles as you can see here after. Even if they are running in different
+bundles, the camel routes will use +
+ the same thread. That autorises to develop applications using
+Transactions - Tx.
+
+image:direct-vm.data/camel-direct-vm.png[image]
+
+[[Direct-VM-URIformat]]
+URI format
+^^^^^^^^^^
+
+[source,java]
+------------------
+direct-vm:someName
+------------------
+
+Where *someName* can be any string to uniquely identify the endpoint
+
+[[Direct-VM-Options]]
+Options
+^^^^^^^
+
+
+// component options: START
+The Direct VM component supports 4 options which are listed below.
+
+
+
+{% raw %}
+[width="100%",cols="2s,1m,8",options="header"]
+|=======================================================================
+| Name | Java Type | Description
+| block | boolean | If sending a message to a direct endpoint which has no active consumer then we can tell the producer to block and wait for the consumer to become active.
+| timeout | long | The timeout value to use if block is enabled.
+| headerFilterStrategy | HeaderFilterStrategy | Sets a HeaderFilterStrategy that will only be applied on producer endpoints (on both directions: request and response). Default value: none.
+| propagateProperties | boolean | Whether to propagate or not properties from the producer side to the consumer side and viceversa. Default value: true.
+|=======================================================================
+{% endraw %}
+// component options: END
+
+
+
+// endpoint options: START
+The Direct VM component supports 10 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 direct-vm endpoint
+| 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.
+| block | producer | false | boolean | If sending a message to a direct endpoint which has no active consumer then we can tell the producer to block and wait for the consumer to become active.
+| failIfNoConsumers | producer | false | boolean | Whether the producer should fail by throwing an exception when sending to a Direct-VM endpoint with no active consumers.
+| timeout | producer | 30000 | long | The timeout value to use if block is enabled.
+| headerFilterStrategy | producer (advanced) |  | HeaderFilterStrategy | Sets a HeaderFilterStrategy that will only be applied on producer endpoints (on both directions: request and response). Default value: none.
+| exchangePattern | advanced | InOnly | ExchangePattern | Sets the default exchange pattern when creating an exchange.
+| propagateProperties | advanced | false | Boolean | Whether to propagate or not properties from the producer side to the consumer side and viceversa. Default value: true.
+| 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
+
+
+[[Direct-VM-Samples]]
+Samples
+^^^^^^^
+
+In the route below we use the direct component to link the two routes
+together:
+
+[source,java]
+-------------------------------------------
+from("activemq:queue:order.in")
+    .to("bean:orderServer?method=validate")
+    .to("direct-vm:processOrder");
+-------------------------------------------
+
+And now in another CamelContext, such as another OSGi bundle
+
+[source,java]
+-------------------------------------------
+from("direct-vm:processOrder")
+    .to("bean:orderService?method=process")
+    .to("activemq:queue:order.out");
+-------------------------------------------
+
+And the sample using spring DSL:
+
+[source,xml]
+--------------------------------------------------
+   <route>
+     <from uri="activemq:queue:order.in"/>
+     <to uri="bean:orderService?method=validate"/>
+     <to uri="direct-vm:processOrder"/>
+  </route>
+
+  <route>
+     <from uri="direct-vm:processOrder"/>
+     <to uri="bean:orderService?method=process"/>
+     <to uri="activemq:queue:order.out"/>
+  </route>    
+--------------------------------------------------
+
+[[Direct-VM-SeeAlso]]
+See Also
+^^^^^^^^
+
+* link:configuring-camel.html[Configuring Camel]
+* link:component.html[Component]
+* link:endpoint.html[Endpoint]
+* link:getting-started.html[Getting Started]
+
+* link:direct.html[Direct]
+* link:seda.html[SEDA]
+* link:vm.html[VM]
+

http://git-wip-us.apache.org/repos/asf/camel/blob/9c0b7baf/camel-core/src/main/docs/direct-vm.adoc
----------------------------------------------------------------------
diff --git a/camel-core/src/main/docs/direct-vm.adoc b/camel-core/src/main/docs/direct-vm.adoc
deleted file mode 100644
index 24202a6..0000000
--- a/camel-core/src/main/docs/direct-vm.adoc
+++ /dev/null
@@ -1,140 +0,0 @@
-[[Direct-VM-DirectVMComponent]]
-Direct VM Component
-~~~~~~~~~~~~~~~~~~~
-
-*Available as of Camel 2.10*
-
-The *direct-vm:* component provides direct, synchronous invocation of
-any consumers in the JVM when a producer sends a message exchange. +
- This endpoint can be used to connect existing routes in the same camel
-context, as well from other camel contexts in the *same* JVM.
-
-This component differs from the link:direct.html[Direct] component in
-that link:direct-vm.html[Direct-VM] supports communication across
-CamelContext instances - so you can use this mechanism to communicate
-across web applications (provided that camel-core.jar is on the
-system/boot classpath).
-
-At runtime you can swap in new consumers, by stopping the existing
-consumer(s) and start new consumers. +
- But at any given time there can be at most only one active consumer for
-a given endpoint.
-
-This component allows also to connect routes deployed in different OSGI
-Bundles as you can see here after. Even if they are running in different
-bundles, the camel routes will use +
- the same thread. That autorises to develop applications using
-Transactions - Tx.
-
-image:direct-vm.data/camel-direct-vm.png[image]
-
-[[Direct-VM-URIformat]]
-URI format
-^^^^^^^^^^
-
-[source,java]
-------------------
-direct-vm:someName
-------------------
-
-Where *someName* can be any string to uniquely identify the endpoint
-
-[[Direct-VM-Options]]
-Options
-^^^^^^^
-
-
-// component options: START
-The Direct VM component supports 4 options which are listed below.
-
-
-
-{% raw %}
-[width="100%",cols="2s,1m,8",options="header"]
-|=======================================================================
-| Name | Java Type | Description
-| block | boolean | If sending a message to a direct endpoint which has no active consumer then we can tell the producer to block and wait for the consumer to become active.
-| timeout | long | The timeout value to use if block is enabled.
-| headerFilterStrategy | HeaderFilterStrategy | Sets a HeaderFilterStrategy that will only be applied on producer endpoints (on both directions: request and response). Default value: none.
-| propagateProperties | boolean | Whether to propagate or not properties from the producer side to the consumer side and viceversa. Default value: true.
-|=======================================================================
-{% endraw %}
-// component options: END
-
-
-
-// endpoint options: START
-The Direct VM component supports 10 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 direct-vm endpoint
-| 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.
-| block | producer | false | boolean | If sending a message to a direct endpoint which has no active consumer then we can tell the producer to block and wait for the consumer to become active.
-| failIfNoConsumers | producer | false | boolean | Whether the producer should fail by throwing an exception when sending to a Direct-VM endpoint with no active consumers.
-| timeout | producer | 30000 | long | The timeout value to use if block is enabled.
-| headerFilterStrategy | producer (advanced) |  | HeaderFilterStrategy | Sets a HeaderFilterStrategy that will only be applied on producer endpoints (on both directions: request and response). Default value: none.
-| exchangePattern | advanced | InOnly | ExchangePattern | Sets the default exchange pattern when creating an exchange.
-| propagateProperties | advanced | false | Boolean | Whether to propagate or not properties from the producer side to the consumer side and viceversa. Default value: true.
-| 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
-
-
-[[Direct-VM-Samples]]
-Samples
-^^^^^^^
-
-In the route below we use the direct component to link the two routes
-together:
-
-[source,java]
--------------------------------------------
-from("activemq:queue:order.in")
-    .to("bean:orderServer?method=validate")
-    .to("direct-vm:processOrder");
--------------------------------------------
-
-And now in another CamelContext, such as another OSGi bundle
-
-[source,java]
--------------------------------------------
-from("direct-vm:processOrder")
-    .to("bean:orderService?method=process")
-    .to("activemq:queue:order.out");
--------------------------------------------
-
-And the sample using spring DSL:
-
-[source,xml]
---------------------------------------------------
-   <route>
-     <from uri="activemq:queue:order.in"/>
-     <to uri="bean:orderService?method=validate"/>
-     <to uri="direct-vm:processOrder"/>
-  </route>
-
-  <route>
-     <from uri="direct-vm:processOrder"/>
-     <to uri="bean:orderService?method=process"/>
-     <to uri="activemq:queue:order.out"/>
-  </route>    
---------------------------------------------------
-
-[[Direct-VM-SeeAlso]]
-See Also
-^^^^^^^^
-
-* link:configuring-camel.html[Configuring Camel]
-* link:component.html[Component]
-* link:endpoint.html[Endpoint]
-* link:getting-started.html[Getting Started]
-
-* link:direct.html[Direct]
-* link:seda.html[SEDA]
-* link:vm.html[VM]
-

http://git-wip-us.apache.org/repos/asf/camel/blob/9c0b7baf/camel-core/src/main/docs/direct.adoc
----------------------------------------------------------------------
diff --git a/camel-core/src/main/docs/direct.adoc b/camel-core/src/main/docs/direct.adoc
deleted file mode 100644
index 7868d04..0000000
--- a/camel-core/src/main/docs/direct.adoc
+++ /dev/null
@@ -1,119 +0,0 @@
-[[Direct-DirectComponent]]
-Direct Component
-~~~~~~~~~~~~~~~~
-
-The *direct:* component provides direct, synchronous invocation of any
-consumers when a producer sends a message exchange. +
- This endpoint can be used to connect existing routes in the *same*
-camel context.
-
-TIP: *Asynchronous*
-The link:seda.html[SEDA] component provides asynchronous invocation of
-any consumers when a producer sends a message exchange.
-
-TIP:*Connection to other camel contexts*
-The link:vm.html[VM] component provides connections between Camel
-contexts as long they run in the same *JVM*.
-
-[[Direct-URIformat]]
-URI format
-^^^^^^^^^^
-
-[source,text]
--------------------------
-direct:someName[?options]
--------------------------
-
-Where *someName* can be any string to uniquely identify the endpoint
-
-[[Direct-Options]]
-Options
-^^^^^^^
-
-
-// component options: START
-The Direct component supports 2 options which are listed below.
-
-
-
-{% raw %}
-[width="100%",cols="2s,1m,8",options="header"]
-|=======================================================================
-| Name | Java Type | Description
-| block | boolean | If sending a message to a direct endpoint which has no active consumer then we can tell the producer to block and wait for the consumer to become active.
-| timeout | long | The timeout value to use if block is enabled.
-|=======================================================================
-{% endraw %}
-// component options: END
-
-
-
-// endpoint options: START
-The Direct component supports 8 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 direct endpoint
-| 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.
-| block | producer | false | boolean | If sending a message to a direct endpoint which has no active consumer then we can tell the producer to block and wait for the consumer to become active.
-| failIfNoConsumers | producer | false | boolean | Whether the producer should fail by throwing an exception when sending to a DIRECT endpoint with no active consumers.
-| timeout | producer | 30000 | long | The timeout value to use if block is enabled.
-| 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
-
-
-[[Direct-Samples]]
-Samples
-^^^^^^^
-
-In the route below we use the direct component to link the two routes
-together:
-
-[source,java]
--------------------------------------------
-from("activemq:queue:order.in")
-    .to("bean:orderServer?method=validate")
-    .to("direct:processOrder");
-
-from("direct:processOrder")
-    .to("bean:orderService?method=process")
-    .to("activemq:queue:order.out");
--------------------------------------------
-
-And the sample using spring DSL:
-
-[source,xml]
---------------------------------------------------
-   <route>
-     <from uri="activemq:queue:order.in"/>
-     <to uri="bean:orderService?method=validate"/>
-     <to uri="direct:processOrder"/>
-  </route>
-
-  <route>
-     <from uri="direct:processOrder"/>
-     <to uri="bean:orderService?method=process"/>
-     <to uri="activemq:queue:order.out"/>
-  </route>    
---------------------------------------------------
-
-See also samples from the link:seda.html[SEDA] component, how they can
-be used together.
-
-[[Direct-SeeAlso]]
-See Also
-^^^^^^^^
-
-* link:configuring-camel.html[Configuring Camel]
-* link:component.html[Component]
-* link:endpoint.html[Endpoint]
-* link:getting-started.html[Getting Started]
-* link:seda.html[SEDA]
-* link:vm.html[VM]
-