This is an automated email from the ASF dual-hosted git repository.

zregvart pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/master by this push:
     new b1df34a  CAMEL-11497: Migrate FAQ - remaining questions
b1df34a is described below

commit b1df34a45af6d1955c7d12b22cf36609b99e143d
Author: Tadayoshi Sato <[email protected]>
AuthorDate: Thu Oct 25 14:33:55 2018 +0900

    CAMEL-11497: Migrate FAQ - remaining questions
---
 docs/user-manual/en/backlog-tracer.adoc            |  2 +-
 docs/user-manual/en/faq.adoc                       | 44 +++++++------------
 .../exception-beandefinitionstoreexception.adoc    | 50 ++++++++++++++++++++++
 ...ption-javaxnamingnoinitialcontextexception.adoc | 36 ++++++++++++++++
 ...tion-orgapachecamelnosuchendpointexception.adoc | 25 +++++++++++
 .../faq/exception-orgxmlsaxsaxparseexception.adoc  | 26 +++++++++++
 .../en/faq/how-do-i-enable-debug-logging.adoc      | 33 ++++++++++++++
 .../faq/how-do-i-invoke-camel-routes-from-jbi.adoc | 34 +++++++++++++++
 ...ow-do-i-make-my-jms-endpoint-transactional.adoc | 31 ++++++++++++++
 ...do-i-set-the-mep-when-interacting-with-jbi.adoc | 34 +++++++++++++++
 .../en/faq/how-do-i-use-java-14-logging.adoc       | 20 +++++++++
 docs/user-manual/en/faq/how-do-i-use-log4j.adoc    | 47 ++++++++++++++++++++
 ...direct-event-seda-and-vm-endpoints-compare.adoc | 14 ++++++
 ...-do-the-timer-and-quartz-endpoints-compare.adoc |  8 ++++
 ...when-adding-and-removing-routes-at-runtime.adoc | 10 +++++
 ...o-many-noclassdeffoundexception-on-startup.adoc | 17 ++++++++
 ...use-too-many-threads-with-producertemplate.adoc | 29 +++++++++++++
 .../why-does-maven-not-download-dependencies.adoc  | 10 +++++
 ...jms-route-only-consume-one-message-at-once.adoc | 21 +++++++++
 docs/user-manual/en/graceful-shutdown.adoc         |  4 +-
 20 files changed, 463 insertions(+), 32 deletions(-)

diff --git a/docs/user-manual/en/backlog-tracer.adoc 
b/docs/user-manual/en/backlog-tracer.adoc
index 1ea0111..625af23 100644
--- a/docs/user-manual/en/backlog-tracer.adoc
+++ b/docs/user-manual/en/backlog-tracer.adoc
@@ -111,5 +111,5 @@ See Also
 * link:tracer-example.html[Tracer Example]
 * link:debugger.adoc[Debugger]
 * link:delay-interceptor.adoc[Delay Interceptor]
-* link:log.html[Log]
+* <<log-component,Log>>
 
diff --git a/docs/user-manual/en/faq.adoc b/docs/user-manual/en/faq.adoc
index e73138a..79483f9 100644
--- a/docs/user-manual/en/faq.adoc
+++ b/docs/user-manual/en/faq.adoc
@@ -124,7 +124,7 @@ Questions on using Apache Camel
 ==== Logging Questions
 
 Questions on logging output from Camel to a console, using the
-link:log.adoc[Log] endpoint or JDK 1.4 logging or Log4j etc
+<<log-component,Log>> endpoint or JDK 1.4 logging or Log4j etc
 
 * link:faq/how-do-i-enable-debug-logging.adoc[How do I enable debug logging?]
 * link:faq/how-do-i-use-java-14-logging.adoc[How do I use Java 1.4 logging?]
@@ -136,16 +136,11 @@ link:log.adoc[Log] endpoint or JDK 1.4 logging or Log4j 
etc
 Questions on using the various Camel link:components.adoc[Components]
 and link:endpoint.adoc[Endpoint] implementations
 
-* link:faq/how-do-i-invoke-camel-routes-from-jbi.adoc[How do I invoke Camel
-routes from JBI?]
-* link:faq/how-do-i-make-my-jms-endpoint-transactional.adoc[How Do I Make My
-JMS Endpoint Transactional?]
-* link:faq/how-do-i-set-the-mep-when-interacting-with-jbi.adoc[How do I set
-the MEP when interacting with JBI?]
-* link:faq/how-do-the-direct-event-seda-and-vm-endpoints-compare.adoc[How do
-the direct, event, seda and vm endpoints compare?]
-* link:faq/how-do-the-timer-and-quartz-endpoints-compare.adoc[How do the
-Timer and Quartz endpoints compare?]
+* link:faq/how-do-i-invoke-camel-routes-from-jbi.adoc[How do I invoke Camel 
routes from JBI?]
+* link:faq/how-do-i-make-my-jms-endpoint-transactional.adoc[How Do I Make My 
JMS Endpoint Transactional?]
+* link:faq/how-do-i-set-the-mep-when-interacting-with-jbi.adoc[How do I set 
the MEP when interacting with JBI?]
+* link:faq/how-do-the-direct-event-seda-and-vm-endpoints-compare.adoc[How do 
the direct, event, seda and vm endpoints compare?]
+* link:faq/how-do-the-timer-and-quartz-endpoints-compare.adoc[How do the Timer 
and Quartz endpoints compare?]
 
 [[FAQ-ComponentQuestions]]
 ==== Component Questions
@@ -157,30 +152,21 @@ Questions on using specific components
 
 Questions on using the <<jms-component,JMS>> endpoints in Camel
 
-* link:faq/why-does-my-jms-route-only-consume-one-message-at-once.adoc[Why
-does my JMS route only consume one message at once?]
+* link:faq/why-does-my-jms-route-only-consume-one-message-at-once.adoc[Why 
does my JMS route only consume one message at once?]
 
 [[FAQ-CommonProblems]]
 ==== Common Problems
 
 Common Problems that people have when riding the Camel
 
-* link:faq/exception-beandefinitionstoreexception.adoc[Exception -
-BeanDefinitionStoreException]
-* link:faq/exception-javaxnamingnoinitialcontextexception.adoc[Exception -
-javax.naming.NoInitialContextException]
-* link:faq/exception-orgapachecamelnosuchendpointexception.adoc[Exception -
-org.apache.camel.NoSuchEndpointException]
-* link:faq/exception-orgxmlsaxsaxparseexception.adoc[Exception -
-org.xml.sax.SAXParseException]
-* link:faq/memory-leak-when-adding-and-removing-routes-at-runtime.adoc[Memory
-leak when adding and removing routes at runtime]
-* 
link:faq/why-do-camel-throw-so-many-noclassdeffoundexception-on-startup.adoc[Why
-do Camel throw so many NoClassDefFoundException on startup?]
-* link:faq/why-does-camel-use-too-many-threads-with-producertemplate.adoc[Why
-does Camel use too many threads with ProducerTemplate?]
-* link:faq/why-does-maven-not-download-dependencies.adoc[Why does maven not
-download dependencies?]
+* link:faq/exception-beandefinitionstoreexception.adoc[Exception - 
BeanDefinitionStoreException]
+* link:faq/exception-javaxnamingnoinitialcontextexception.adoc[Exception - 
javax.naming.NoInitialContextException]
+* link:faq/exception-orgapachecamelnosuchendpointexception.adoc[Exception - 
org.apache.camel.NoSuchEndpointException]
+* link:faq/exception-orgxmlsaxsaxparseexception.adoc[Exception - 
org.xml.sax.SAXParseException]
+* link:faq/memory-leak-when-adding-and-removing-routes-at-runtime.adoc[Memory 
leak when adding and removing routes at runtime]
+* 
link:faq/why-do-camel-throw-so-many-noclassdeffoundexception-on-startup.adoc[Why
 do Camel throw so many NoClassDefFoundException on startup?]
+* link:faq/why-does-camel-use-too-many-threads-with-producertemplate.adoc[Why 
does Camel use too many threads with ProducerTemplate?]
+* link:faq/why-does-maven-not-download-dependencies.adoc[Why does maven not 
download dependencies?]
 
 [[FAQ-Acknowledgement]]
 ==== Acknowledgement
diff --git 
a/docs/user-manual/en/faq/exception-beandefinitionstoreexception.adoc 
b/docs/user-manual/en/faq/exception-beandefinitionstoreexception.adoc
new file mode 100644
index 0000000..2dfabe1
--- /dev/null
+++ b/docs/user-manual/en/faq/exception-beandefinitionstoreexception.adoc
@@ -0,0 +1,50 @@
+[[Exception-BeanDefinitionStoreException-BeanDefinitionStoreException]]
+=== BeanDefinitionStoreException
+
+If you use ActiveMQ 5.x that ships with Camel 1.x and you upgrade it to
+use Camel 2.0 you can get an exception while starting.
+
+----
+ERROR: java.lang.RuntimeException: Failed to execute start task. Reason:
+org.springframework.beans.factory.BeanDefinitionStoreException: Unrecognized
+xbean namespace mapping: http://activemq.apache.org/camel/schema/spring
+----
+
+The reason is basically that the XML namespace changed in Camel 2.0 as
+explained below.
+
+When Camel went from an ActiveMQ sub project to a top level apache
+project, they changed the URIs for their xml schemas to reflect this in
+Camel 2.0.
+
+To fix this, in `activemq.xml` change all occurrences of:
+
+[source,xml]
+----
+http://activemq.apache.org/camel/schema/spring
+----
+
+to
+
+[source,xml]
+----
+http://camel.apache.org/schema/spring
+----
+
+and
+
+[source,xml]
+----
+http://activemq.apache.org/camel/schema/spring/camel-spring.xsd
+----
+
+to
+
+[source,xml]
+----
+http://camel.apache.org/schema/spring/camel-spring.xsd
+----
+
+These will probably occur in the xsi:schemaLocation attribute of the top
+level beans tag (both) and in the xmlns attribute in the `camelContext`
+element (just the first).
diff --git 
a/docs/user-manual/en/faq/exception-javaxnamingnoinitialcontextexception.adoc 
b/docs/user-manual/en/faq/exception-javaxnamingnoinitialcontextexception.adoc
new file mode 100644
index 0000000..5d2bafa
--- /dev/null
+++ 
b/docs/user-manual/en/faq/exception-javaxnamingnoinitialcontextexception.adoc
@@ -0,0 +1,36 @@
+[[Exception-javax.naming.NoInitialContextException-Exceptionjavax.naming.NoInitialContextException]]
+=== Exception: `javax.naming.NoInitialContextException`
+
+If you try to use Camel without link:../spring.adoc[Spring] using code
+something like this:
+
+[source,java]
+----
+CamelContext context = new DefaultCamelContext();
+context.addRoutes(new MyRouteBuilder());
+
+context.start();
+----
+
+You might get an exception like this:
+
+----
+     [java] Caused by: javax.naming.NoInitialContextException: Need to specify 
class name in environment or system property, or as an applet parameter, or in 
an application resource file:  java.naming.factory.initial
+     [java]     at 
javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
+     [java]     at 
javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
+     [java]     at 
javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:284)
+     [java]     at javax.naming.InitialContext.lookup(InitialContext.java:351)
+     [java]     at 
org.apache.camel.impl.JndiRegistry.lookup(JndiRegistry.java:51)
+----
+
+This is because if you are not using Spring then the default
+link:../registry.adoc[Registry] implementation uses link:../jndi.adoc[JNDI].
+
+A simple workaround for this is to specify a JNDI provider. An easy fix
+is to create a file called `jndi.properties` on the classpath and give
+it this content...
+
+[source,java]
+----
+java.naming.factory.initial = 
org.apache.camel.util.jndi.CamelInitialContextFactory
+----
diff --git 
a/docs/user-manual/en/faq/exception-orgapachecamelnosuchendpointexception.adoc 
b/docs/user-manual/en/faq/exception-orgapachecamelnosuchendpointexception.adoc
new file mode 100644
index 0000000..9e66f53
--- /dev/null
+++ 
b/docs/user-manual/en/faq/exception-orgapachecamelnosuchendpointexception.adoc
@@ -0,0 +1,25 @@
+[[Exception-org.apache.camel.NoSuchEndpointException-Exceptionorg.apache.camel.NoSuchEndpointException]]
+=== Exception: `org.apache.camel.NoSuchEndpointException`
+
+The usual cause for this exception is a missing component JAR on the
+classpath. The exception detail message will tell you what the missing
+component is. You can solve the issue by adding the required JAR files
+to the classpath.
+
+===== Example:
+
+If you try to use the definition below without having `camel-jetty.jar` on
+the classpath, you'll run into this exception:
+----
+org.apache.camel.NoSuchEndpointException: No endpoint could be found for: 
jetty:http://localhost:8080/bus
+----
+
+[source,xml]
+----
+<camelContext id="camel" 
xmlns="http://activemq.apache.org/camel/schema/spring";>
+  <route>
+    <from uri="jetty:http://localhost:8080/bus"; />
+    <to uri="file://C:/tmp/something.xml" /> 
+  </route>
+</camelContext>
+----
diff --git a/docs/user-manual/en/faq/exception-orgxmlsaxsaxparseexception.adoc 
b/docs/user-manual/en/faq/exception-orgxmlsaxsaxparseexception.adoc
new file mode 100644
index 0000000..604519e
--- /dev/null
+++ b/docs/user-manual/en/faq/exception-orgxmlsaxsaxparseexception.adoc
@@ -0,0 +1,26 @@
+[[Exception-org.xml.sax.SAXParseException-Exceptionorg.xml.sax.SAXParseException]]
+=== Exception: `org.xml.sax.SAXParseException`
+
+----
+The reference to entity "..." must end with the ';' delimiter.
+----
+
+In the URIs used for specifying Camel endpoints, the `&` is used to
+separate the parameters. However, `&` also is a reserved character in
+XML.
+Because of this, you have to replace all & in your URIs by `+&amp;+` when
+using the Spring XML syntax to configure Camel routes.
+
+An example: this snippet of code in the link:../dsl.adoc[DSL]...
+
+[source,java]
+----
+from("timer://myTimer?fixedRate=true&delay=0&period=2000")
+----
+
+...matches this example in the Spring XML syntax:
+
+[source,java]
+----
+<from>timer://myTimer?fixedRate=true&amp;delay=0&amp;period=2000</from>
+----
diff --git a/docs/user-manual/en/faq/how-do-i-enable-debug-logging.adoc 
b/docs/user-manual/en/faq/how-do-i-enable-debug-logging.adoc
new file mode 100644
index 0000000..e6a8660
--- /dev/null
+++ b/docs/user-manual/en/faq/how-do-i-enable-debug-logging.adoc
@@ -0,0 +1,33 @@
+[[HowdoIenabledebuglogging-HowdoIenabledebuglogging]]
+=== How do I enable debug logging?
+
+Camel uses convention over configuration so sometimes it's useful to turn
+on debug logging to see how Camel is operating and to try and diagnose
+issues.
+
+Camel uses http://www.slf4j.org/[sfl4j] which allows you to configure
+logging via, among others:
+
+* http://logging.apache.org/log4j/[Log4j]
+* http://logback.qos.ch/[Logback]
+* 
https://docs.oracle.com/javase/8/docs/api/java/util/logging/package-summary.html[JDK
 Util Logging logging]
+
+To enable debug logging we recommend you
+link:how-do-i-use-log4j.adoc[use log4j for logging] then make sure your
+log4j.properties file enables DEBUG level logging for the
+`org.apache.camel` package.
+
+For example here is a `log4j.properties` file with debug Camel logging:
+enabled
+
+[source,java]
+----
+log4j.rootLogger=INFO, out
+
+log4j.logger.org.apache.camel=DEBUG
+
+log4j.appender.out=org.apache.log4j.ConsoleAppender
+log4j.appender.out.layout=org.apache.log4j.PatternLayout
+log4j.appender.out.layout.ConversionPattern=[%30.30t] %-30.30c{1} %-5p %m%n
+#log4j.appender.out.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - 
%m%n
+----
diff --git a/docs/user-manual/en/faq/how-do-i-invoke-camel-routes-from-jbi.adoc 
b/docs/user-manual/en/faq/how-do-i-invoke-camel-routes-from-jbi.adoc
new file mode 100644
index 0000000..4908a23
--- /dev/null
+++ b/docs/user-manual/en/faq/how-do-i-invoke-camel-routes-from-jbi.adoc
@@ -0,0 +1,34 @@
+[[HowdoIinvokeCamelroutesfromJBI-HowdoIinvokeCamelroutesfromJBI]]
+=== How do I invoke Camel routes from JBI?
+
+When you use the JBI endpoint as follows:
+
+[source,java]
+----
+from("jbi:endpoint:http://foo.bar.org/MyService/MyEndpoint";)
+----
+
+you automatically expose the endpoint to the NMR bus where service qname
+is:
+
+----
+{http://foo.bar.org}MyService
+----
+
+and endpoint name is `MyEndpoint`.
+
+Then if you send a message via the JBI NMR to this JBI endpoint then it
+will be sent to the above Camel route.
+
+Sending works in the same way. You use:
+
+[source,java]
+----
+to("jbi:endpoint:http://foo.bar.org/MyService/MyEndpoint";) 
+----
+
+to send messages to JBI endpoint deployed to the bus.
+
+I noticed that people are used to somehow 'declaring' endpoints in SMX.
+In Camel it is enough to simply start a flow from a jbi endpoint and
+Camel will create it automatically.
diff --git 
a/docs/user-manual/en/faq/how-do-i-make-my-jms-endpoint-transactional.adoc 
b/docs/user-manual/en/faq/how-do-i-make-my-jms-endpoint-transactional.adoc
new file mode 100644
index 0000000..ea9637e
--- /dev/null
+++ b/docs/user-manual/en/faq/how-do-i-make-my-jms-endpoint-transactional.adoc
@@ -0,0 +1,31 @@
+[[HowDoIMakeMyJMSEndpointTransactional-HowDoIMakeMyJMSEndpointTransactional]]
+=== How Do I Make My JMS Endpoint Transactional?
+
+I have a JMS route like this:
+
+[source,java]
+----
+from("activemq:Some.Queue")
+  .bean(MyProcessor.class);
+----
+
+[[HowDoIMakeMyJMSEndpointTransactional-Question]]
+==== Question:
+
+How Do I Make It Transactional?
+
+[[HowDoIMakeMyJMSEndpointTransactional-Answer]]
+==== Answer:
+
+There are examples in the <<transactionalClient-eip,Transactional Client>>
+and it is described in the _Enabling Transacted Consumption_
+section of <<jms-component,JMS>>. To make a session transactional
+set `transacted=true` flag on the JMS endpoint and configure
+a `transactionManager` on the link:../component.adoc[Component] or
+link:../endpoint.adoc[Endpoint].
+
+[[HowDoIMakeMyJMSEndpointTransactional-SeeAlso]]
+==== See Also
+
+* <<transactionalClient-eip,Transactional Client>>
+* <<jms-component,JMS>>
diff --git 
a/docs/user-manual/en/faq/how-do-i-set-the-mep-when-interacting-with-jbi.adoc 
b/docs/user-manual/en/faq/how-do-i-set-the-mep-when-interacting-with-jbi.adoc
new file mode 100644
index 0000000..9f56bfe
--- /dev/null
+++ 
b/docs/user-manual/en/faq/how-do-i-set-the-mep-when-interacting-with-jbi.adoc
@@ -0,0 +1,34 @@
+[[HowdoIsettheMEPwheninteractingwithJBI-HowdoIsettheMEPwheninteractingwithJBI]]
+=== How do I set the MEP when interacting with JBI?
+
+[[HowdoIsettheMEPwheninteractingwithJBI-Problem]]
+==== Problem
+
+If you are using the Camel JBI integration to send a
+`MessageExchange` to another JBI component from within your Camel route,
+Camel uses the MEP of the underlying Camel Exchange to determine the MEP
+of the JBI `MessageExchange`. An example:
+
+[source,java]
+----
+from(""timer://foo").to("jbi:endpoint:urn:translator:endpoint").to("log:test");
 //THIS WON'T WORK...
+----
+
+If the timer endpoint that starts the route sends a Camel exchange with
+an in-only MEP, the MEP for interacting with JBI will also be InOnly.
+Now imagine that the target JBI endpoint is in fact a
+http://servicemix.apache.org/servicemix-saxon.html[servicemix-saxon xslt 
endpoint],
+that really expects an InOut MEP. This would break the Camel
+route above.
+
+[[HowdoIsettheMEPwheninteractingwithJBI-Solution]]
+==== Solution
+
+For this case, you can override the MEP used from the Camel route
+like this, making sure that a JBI InOut `MessageExchange` is being used to
+interact with the `"urn:translation:endpoint"` endpoint.
+
+[source,java]
+----
+from("timer://foo").to("jbi:endpoint:urn:translator:endpoint?mep=in-out").to("log:test");
 //...BUT THIS WILL
+----
diff --git a/docs/user-manual/en/faq/how-do-i-use-java-14-logging.adoc 
b/docs/user-manual/en/faq/how-do-i-use-java-14-logging.adoc
new file mode 100644
index 0000000..8ba765d
--- /dev/null
+++ b/docs/user-manual/en/faq/how-do-i-use-java-14-logging.adoc
@@ -0,0 +1,20 @@
+[[HowdoIuseJava14logging-HowdoIuseJava14logging]]
+=== How do I use Java 1.4 logging?
+
+Camel uses http://www.slf4j.org/[sfl4j] which allows you to configure
+logging via, among others:
+
+* http://logging.apache.org/log4j/[Log4j]
+* http://logback.qos.ch/[Logback]
+* 
https://docs.oracle.com/javase/8/docs/api/java/util/logging/package-summary.html[JDK
 Util Logging logging]
+
+The quick way to enable Java 1.4 logging is to create a
+`commons-logging.properties` file on the classpath with this entry...
+
+[source,java]
+----
+org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
+#org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
+----
+
+Many thanks to Glen Mazza for figuring this out :smile:
diff --git a/docs/user-manual/en/faq/how-do-i-use-log4j.adoc 
b/docs/user-manual/en/faq/how-do-i-use-log4j.adoc
new file mode 100644
index 0000000..78436c9
--- /dev/null
+++ b/docs/user-manual/en/faq/how-do-i-use-log4j.adoc
@@ -0,0 +1,47 @@
+[[HowdoIuselog4j-HowdoIuseLog4j]]
+=== How do I use Log4j?
+
+Camel uses http://www.slf4j.org/[sfl4j] which allows you to configure
+logging via, among others:
+
+* http://logging.apache.org/log4j/[Log4j]
+* http://logback.qos.ch/[Logback]
+* 
https://docs.oracle.com/javase/8/docs/api/java/util/logging/package-summary.html[JDK
 Util Logging logging]
+
+The quick way to enable Log4j is to add log4j to your classpath or maven
+`pom.xml`. For example the following in your `pom.xml` should do the trick:
+
+[source,xml]
+----
+  <dependencies>
+    <dependency>
+      <groupId>commons-logging</groupId>
+      <artifactId>commons-logging</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+    </dependency>
+  </dependencies>
+----
+
+Then to configure log4j you need to add a `log4j.properties` or
+`log4j.xml` to your classpath (so they go in a directory which is on
+your classpath).
+
+Here's an example `log4j.properties` file:
+
+[source,java]
+----
+log4j.rootLogger=INFO, out
+
+#
+# uncomment the following line to enable debugging of Camel
+#
+#log4j.logger.org.apache.camel=DEBUG
+
+log4j.appender.out=org.apache.log4j.ConsoleAppender
+log4j.appender.out.layout=org.apache.log4j.PatternLayout
+log4j.appender.out.layout.ConversionPattern=[%30.30t] %-30.30c{1} %-5p %m%n
+#log4j.appender.out.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - 
%m%n
+----
diff --git 
a/docs/user-manual/en/faq/how-do-the-direct-event-seda-and-vm-endpoints-compare.adoc
 
b/docs/user-manual/en/faq/how-do-the-direct-event-seda-and-vm-endpoints-compare.adoc
new file mode 100644
index 0000000..aeacf1a
--- /dev/null
+++ 
b/docs/user-manual/en/faq/how-do-the-direct-event-seda-and-vm-endpoints-compare.adoc
@@ -0,0 +1,14 @@
+[[Howdothedirecteventsedaandvmendpointscompare-Howdothedirecteventsedaandvmendpointscompare]]
+=== How do the `direct`, `event`, `seda`, and `vm` endpoints compare?
+
+* <<vm-component,VM>> and <<seda-component,SEDA>> endpoints are basically the
+same; they both offer asychronous in memory SEDA queues; they differ in
+visibility -- endpoints are visible inside the same JVM or within the same
+CamelContext respectively.
+* <<direct-component,Direct>> uses no threading; it directly invokes the
+consumer when sending.
+* <<spring-event-component,Spring Event>> adds a listener to Spring's
+application events; so the consumer is invoked the same thread as Spring
+notifies events. Event differs in that the payload should be a Spring
+`ApplicationEvent` object whereas <<direct-component,Direct>>,
+<<seda-component,SEDA>> and <<vm-component,VM>> can use any payload.
diff --git 
a/docs/user-manual/en/faq/how-do-the-timer-and-quartz-endpoints-compare.adoc 
b/docs/user-manual/en/faq/how-do-the-timer-and-quartz-endpoints-compare.adoc
new file mode 100644
index 0000000..e6d29c6
--- /dev/null
+++ b/docs/user-manual/en/faq/how-do-the-timer-and-quartz-endpoints-compare.adoc
@@ -0,0 +1,8 @@
+[[HowdotheTimerandQuartzendpointscompare-HowdotheTimerandQuartzendpointscompare]]
+=== How do the Timer and Quartz endpoints compare?
+
+<<timer-component,Timer>> is a simple, non persistence timer using the
+JDK's in built timer mechanism.
+
+<<quartz-component,Quartz>> uses the Quartz library which uses a database
+to store timer events and supports distributed timers and cron notation.
diff --git 
a/docs/user-manual/en/faq/memory-leak-when-adding-and-removing-routes-at-runtime.adoc
 
b/docs/user-manual/en/faq/memory-leak-when-adding-and-removing-routes-at-runtime.adoc
new file mode 100644
index 0000000..68f703c
--- /dev/null
+++ 
b/docs/user-manual/en/faq/memory-leak-when-adding-and-removing-routes-at-runtime.adoc
@@ -0,0 +1,10 @@
+[[Memoryleakwhenaddingandremovingroutesatruntime-Memoryleakwhenaddingandremovingroutesatruntime]]
+=== Memory leak when adding and removing routes at runtime
+
+If you add and remove many routes at runtime, then take notice that
+link:camel-jmx.adoc[JMX] may take up memory when routes is added.
+As Camel cannot 100% reclaim all MBeans when removing a route (some
+resources may be shared by other routes, etc.).
+
+Therefore it's advised to disable JMX for new routes, by setting
+`registerNewRoutes=false`. See details at link:camel-jmx.adoc[JMX].
diff --git 
a/docs/user-manual/en/faq/why-do-camel-throw-so-many-noclassdeffoundexception-on-startup.adoc
 
b/docs/user-manual/en/faq/why-do-camel-throw-so-many-noclassdeffoundexception-on-startup.adoc
new file mode 100644
index 0000000..590729d
--- /dev/null
+++ 
b/docs/user-manual/en/faq/why-do-camel-throw-so-many-noclassdeffoundexception-on-startup.adoc
@@ -0,0 +1,17 @@
+[[WhydoCamelthrowsomanyNoClassDefFoundExceptiononstartup-WhydoCamelthrowsomanyNoClassDefFoundExceptiononstartup]]
+=== Why do Camel throw so many `NoClassDefFoundException` on startup?
+
+Camel uses a runtime strategy to discover features while it starts up.
+This is used to register components, languages, type converters, etc.
+
+If you are using the uber .jar (the big camel.jar) with all the Camel
+components in a single .jar filen, the this problem can typically
+occur.
+Especially the type converters is know to cause `NoClassDefFoundException`
+in the log during startup. The reasons is that some of these type
+converters rely on 3rd. party .jar files.
+
+To remedy this either add the missing .jars to the classpath, or stop
+using the big .jar and use the fine grained jars.
+
+See also link:how-do-i-use-a-big-uber-jar.adoc[How do I use a big (uber) JAR?]
diff --git 
a/docs/user-manual/en/faq/why-does-camel-use-too-many-threads-with-producertemplate.adoc
 
b/docs/user-manual/en/faq/why-does-camel-use-too-many-threads-with-producertemplate.adoc
new file mode 100644
index 0000000..25635ee
--- /dev/null
+++ 
b/docs/user-manual/en/faq/why-does-camel-use-too-many-threads-with-producertemplate.adoc
@@ -0,0 +1,29 @@
+[[WhydoesCamelusetoomanythreadswithProducerTemplate-WhydoesCamelusetoomanythreadswithProducerTemplate]]
+=== Why does Camel use too many threads with `ProducerTemplate`?
+
+A common reason is creating a new `ProducerTemplate` inside a `Processor` or
+link:../bean-integration.adoc[bean method invocation].
+
+You are not meant to create a `ProducerTemplate` for each message
+invocation; you are meant to create a single instance on startup and
+keep it around.
+
+Also when you have finished using the `ProducerTemplate` you should call
+the `stop()` method to close down all the resources it has been using.
+
+It's better to either explicitly create one on startup or get your IoC
+container (link:../spring.adoc[Spring] or link:../guice.adoc[Guice]) to inject
+it into your `Processor` or bean then it can take care of creating it and
+destroying all the resources when you have finished with it.
+
+For instance using link:../spring.adoc[Spring] you can define a template
+and have Spring handle the lifecycle of it:
+
+[source,java]
+----
+    <camelContext xmlns="http://activemq.apache.org/camel/schema/spring";>
+        <template id="template"/>
+    </camelContext>
+----
+
+Then you can refer to the ProducerTemplate with the id `template`.
diff --git 
a/docs/user-manual/en/faq/why-does-maven-not-download-dependencies.adoc 
b/docs/user-manual/en/faq/why-does-maven-not-download-dependencies.adoc
new file mode 100644
index 0000000..488cce1
--- /dev/null
+++ b/docs/user-manual/en/faq/why-does-maven-not-download-dependencies.adoc
@@ -0,0 +1,10 @@
+[[Whydoesmavennotdownloaddependencies-Whydoesmavennotdownloaddependencies]]
+=== Why does Maven not download dependencies?
+
+Maven uses HTTP to download its dependenices along with the dependencies
+of the Maven project (such as Camel).
+
+If you run Maven and it fails to download your required dependencies it's
+likely to be caused by your local firewall & HTTP proxy configurations.
+
+See the http://maven.apache.org/guides/mini/guide-proxies.html[Maven 
documentation for details of how to configure the HTTP proxy].
diff --git 
a/docs/user-manual/en/faq/why-does-my-jms-route-only-consume-one-message-at-once.adoc
 
b/docs/user-manual/en/faq/why-does-my-jms-route-only-consume-one-message-at-once.adoc
new file mode 100644
index 0000000..335d963
--- /dev/null
+++ 
b/docs/user-manual/en/faq/why-does-my-jms-route-only-consume-one-message-at-once.adoc
@@ -0,0 +1,21 @@
+[[WhydoesmyJMSrouteonlyconsumeonemessageatonce-WhydoesmyJMSrouteonlyconsumeonemessageatonce]]
+=== Why does my JMS route only consume one message at once?
+
+The default <<jms-component,JMS>> endpoint configuration defines
+*concurrentConsumers* to be 1 so only 1 message is processed
+concurrently at any point in time. To change this to make things more
+concurrent, just configure this value; either at the JMS component level
+or endpoint level.
+
+E.g.
+
+[source,java]
+----
+from("activemq:SomeQueue?concurrentConsumers=25").
+  bean(SomeCode.class);
+----
+
+[[WhydoesmyJMSrouteonlyconsumeonemessageatonce-SeeAlso]]
+==== See Also
+
+* <<jms-component,JMS>> for more configuration details
diff --git a/docs/user-manual/en/graceful-shutdown.adoc 
b/docs/user-manual/en/graceful-shutdown.adoc
index 2047fc1..b1a3dc1 100644
--- a/docs/user-manual/en/graceful-shutdown.adoc
+++ b/docs/user-manual/en/graceful-shutdown.adoc
@@ -159,7 +159,7 @@ For example in the route below we have two routes, where 
route 1 is
 dependent upon route 2. At shutdown we want route 1 to complete all its
 current messages and we also want the 2nd route to do this as well. So
 we can mark both routes to `Defer` but since route 1 is a
-link:seda.html[SEDA] based route its `Defer` by default (it uses
+<<seda-component,SEDA>> based route its `Defer` by default (it uses
 `ShutdownAware`).
 
 A Java DSL based example to defer shutting down the 2nd
@@ -446,7 +446,7 @@ The interface `org.apache.camel.spi.ShutdownAware` is an 
optional
 interface consumers can implement to have fine grained control during
 shutdown. The `ShutdownStrategy` must be able to deal with consumers
 which implement this interface. This interface was introduced to cater
-for in memory consumers such as link:seda.html[SEDA] which potentially
+for in memory consumers such as <<seda-component,SEDA>> which potentially
 have a number of pending messages on its internal in memory queues. What
 this allows is to let it control the shutdown process to let it complete
 its pending messages.

Reply via email to