svn commit: r1459666 - /camel/trunk/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpNoConnectionTest.java

2013-03-22 Thread cmueller
Author: cmueller
Date: Fri Mar 22 08:48:14 2013
New Revision: 1459666

URL: http://svn.apache.org/r1459666
Log:
fixed unit test which fails from time to time

Modified:

camel/trunk/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpNoConnectionTest.java

Modified: 
camel/trunk/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpNoConnectionTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpNoConnectionTest.java?rev=1459666r1=1459665r2=1459666view=diff
==
--- 
camel/trunk/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpNoConnectionTest.java
 (original)
+++ 
camel/trunk/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpNoConnectionTest.java
 Fri Mar 22 08:48:14 2013
@@ -45,6 +45,7 @@ public class HttpNoConnectionTest extend
 String url = http4:// + getHostName() + : + getPort() + /search;
 // stop server so there are no connection
 localServer.stop();
+localServer.awaitTermination(1000);
 
 Exchange reply = template.request(url, null);
 Exception e = reply.getException();




svn commit: r1459670 - /camel/branches/camel-2.9.x/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpNoConnectionTest.java

2013-03-22 Thread cmueller
Author: cmueller
Date: Fri Mar 22 08:54:52 2013
New Revision: 1459670

URL: http://svn.apache.org/r1459670
Log:
fixed unit test which fails from time to time

Modified:

camel/branches/camel-2.9.x/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpNoConnectionTest.java

Modified: 
camel/branches/camel-2.9.x/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpNoConnectionTest.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpNoConnectionTest.java?rev=1459670r1=1459669r2=1459670view=diff
==
--- 
camel/branches/camel-2.9.x/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpNoConnectionTest.java
 (original)
+++ 
camel/branches/camel-2.9.x/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpNoConnectionTest.java
 Fri Mar 22 08:54:52 2013
@@ -45,6 +45,7 @@ public class HttpNoConnectionTest extend
 String url = http4:// + getHostName() + : + getPort() + /search;
 // stop server so there are no connection
 localServer.stop();
+localServer.awaitTermination(1000);
 
 Exchange reply = template.request(url, null);
 Exception e = reply.getException();




svn commit: r1459675 - /camel/trunk/components/camel-jsch/src/test/java/org/apache/camel/component/jsch/ScpSimpleProduceTest.java

2013-03-22 Thread cmueller
Author: cmueller
Date: Fri Mar 22 09:03:39 2013
New Revision: 1459675

URL: http://svn.apache.org/r1459675
Log:
fixed unit test which fails from time to time on slow boxes

Modified:

camel/trunk/components/camel-jsch/src/test/java/org/apache/camel/component/jsch/ScpSimpleProduceTest.java

Modified: 
camel/trunk/components/camel-jsch/src/test/java/org/apache/camel/component/jsch/ScpSimpleProduceTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-jsch/src/test/java/org/apache/camel/component/jsch/ScpSimpleProduceTest.java?rev=1459675r1=1459674r2=1459675view=diff
==
--- 
camel/trunk/components/camel-jsch/src/test/java/org/apache/camel/component/jsch/ScpSimpleProduceTest.java
 (original)
+++ 
camel/trunk/components/camel-jsch/src/test/java/org/apache/camel/component/jsch/ScpSimpleProduceTest.java
 Fri Mar 22 09:03:39 2013
@@ -35,7 +35,7 @@ public class ScpSimpleProduceTest extend
 
 String uri = getScpUri() + 
?username=adminpassword=adminknownHostsFile= + getKnownHostsFile();
 template.sendBodyAndHeader(uri, Hello World, Exchange.FILE_NAME, 
hello.txt);
-Thread.sleep(200);
+Thread.sleep(500);
 
 File file = new File(getScpPath() + /hello.txt);
 assertFileExists(file.getAbsolutePath());
@@ -48,7 +48,7 @@ public class ScpSimpleProduceTest extend
 
 String uri = getScpUri() + 
?username=adminpassword=adminknownHostsFile= + getKnownHostsFile();
 template.sendBodyAndHeader(uri, Bye World, Exchange.FILE_NAME, 
mysub/bye.txt);
-Thread.sleep(200);
+Thread.sleep(500);
 
 File file = new File(getScpPath() + /mysub/bye.txt);
 assertFileExists(file.getAbsolutePath());
@@ -61,7 +61,7 @@ public class ScpSimpleProduceTest extend
 
 String uri = getScpUri() + 
?username=adminpassword=adminknownHostsFile= + getKnownHostsFile();
 template.sendBodyAndHeader(uri, Farewell World, Exchange.FILE_NAME, 
mysub/mysubsub/farewell.txt);
-Thread.sleep(200);
+Thread.sleep(500);
 
 File file = new File(getScpPath() + /mysub/mysubsub/farewell.txt);
 assertFileExists(file.getAbsolutePath());
@@ -74,7 +74,7 @@ public class ScpSimpleProduceTest extend
 
 String uri = getScpUri() + 
?username=adminpassword=adminchmod=640knownHostsFile= + 
getKnownHostsFile();
 template.sendBodyAndHeader(uri, Bonjour Monde, Exchange.FILE_NAME, 
monde.txt);
-Thread.sleep(200);
+Thread.sleep(500);
 
 File file = new File(getScpPath() + /monde.txt);
 assertFileExists(file.getAbsolutePath());
@@ -89,7 +89,7 @@ public class ScpSimpleProduceTest extend
 
 String uri = getScpUri() + 
?username=adminprivateKeyFile=src/test/resources/camel-key.privprivateKeyFilePassphrase=passwordknownHostsFile=
 + getKnownHostsFile();
 template.sendBodyAndHeader(uri, Hallo Welt, Exchange.FILE_NAME, 
welt.txt);
-Thread.sleep(200);
+Thread.sleep(500);
 
 File file = new File(getScpPath() + /welt.txt);
 assertFileExists(file.getAbsolutePath());




svn commit: r1459676 - /camel/branches/camel-2.10.x/components/camel-jsch/src/test/java/org/apache/camel/component/jsch/ScpSimpleProduceTest.java

2013-03-22 Thread cmueller
Author: cmueller
Date: Fri Mar 22 09:06:26 2013
New Revision: 1459676

URL: http://svn.apache.org/r1459676
Log:
fixed unit test which fails from time to time on slow boxes

Modified:

camel/branches/camel-2.10.x/components/camel-jsch/src/test/java/org/apache/camel/component/jsch/ScpSimpleProduceTest.java

Modified: 
camel/branches/camel-2.10.x/components/camel-jsch/src/test/java/org/apache/camel/component/jsch/ScpSimpleProduceTest.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/components/camel-jsch/src/test/java/org/apache/camel/component/jsch/ScpSimpleProduceTest.java?rev=1459676r1=1459675r2=1459676view=diff
==
--- 
camel/branches/camel-2.10.x/components/camel-jsch/src/test/java/org/apache/camel/component/jsch/ScpSimpleProduceTest.java
 (original)
+++ 
camel/branches/camel-2.10.x/components/camel-jsch/src/test/java/org/apache/camel/component/jsch/ScpSimpleProduceTest.java
 Fri Mar 22 09:06:26 2013
@@ -37,6 +37,7 @@ public class ScpSimpleProduceTest extend
 
 String uri = getScpUri() + 
?username=adminpassword=adminknownHostsFile= + getKnownHostsFile();
 template.sendBodyAndHeader(uri, Hello World, Exchange.FILE_NAME, 
hello.txt);
+Thread.sleep(500);
 
 File file = new File(getScpPath() + /hello.txt).getAbsoluteFile();
 assertTrue(File should exist:  + file, file.exists());
@@ -49,6 +50,7 @@ public class ScpSimpleProduceTest extend
 
 String uri = getScpUri() + 
?username=adminpassword=adminknownHostsFile= + getKnownHostsFile();
 template.sendBodyAndHeader(uri, Bye World, Exchange.FILE_NAME, 
mysub/bye.txt);
+Thread.sleep(500);
 
 File file = new File(getScpPath() + 
/mysub/bye.txt).getAbsoluteFile();
 assertTrue(File should exist:  + file, file.exists());
@@ -61,6 +63,7 @@ public class ScpSimpleProduceTest extend
 
 String uri = getScpUri() + 
?username=adminpassword=adminknownHostsFile= + getKnownHostsFile();
 template.sendBodyAndHeader(uri, Farewell World, Exchange.FILE_NAME, 
mysub/mysubsub/farewell.txt);
+Thread.sleep(500);
 
 File file = new File(getScpPath() + 
/mysub/mysubsub/farewell.txt).getAbsoluteFile();
 assertTrue(File should exist:  + file, file.exists());
@@ -73,6 +76,7 @@ public class ScpSimpleProduceTest extend
 
 String uri = getScpUri() + 
?username=adminpassword=adminchmod=640knownHostsFile= + 
getKnownHostsFile();
 template.sendBodyAndHeader(uri, Bonjour Monde, Exchange.FILE_NAME, 
monde.txt);
+Thread.sleep(500);
 
 File file = new File(getScpPath() + /monde.txt).getAbsoluteFile();
 assertTrue(File should exist:  + file, file.exists());
@@ -87,6 +91,7 @@ public class ScpSimpleProduceTest extend
 
 String uri = getScpUri() + 
?username=adminprivateKeyFile=src/test/resources/camel-key.privprivateKeyFilePassphrase=passwordknownHostsFile=
 + getKnownHostsFile();
 template.sendBodyAndHeader(uri, Hallo Welt, Exchange.FILE_NAME, 
welt.txt);
+Thread.sleep(500);
 
 File file = new File(getScpPath() + /welt.txt).getAbsoluteFile();
 assertTrue(File should exist:  + file, file.exists());




svn commit: r1459679 - /camel/branches/camel-2.9.x/components/camel-jsch/src/test/java/org/apache/camel/component/jsch/ScpSimpleProduceTest.java

2013-03-22 Thread cmueller
Author: cmueller
Date: Fri Mar 22 09:08:00 2013
New Revision: 1459679

URL: http://svn.apache.org/r1459679
Log:
fixed unit test which fails from time to time on slow boxes

Modified:

camel/branches/camel-2.9.x/components/camel-jsch/src/test/java/org/apache/camel/component/jsch/ScpSimpleProduceTest.java

Modified: 
camel/branches/camel-2.9.x/components/camel-jsch/src/test/java/org/apache/camel/component/jsch/ScpSimpleProduceTest.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-jsch/src/test/java/org/apache/camel/component/jsch/ScpSimpleProduceTest.java?rev=1459679r1=1459678r2=1459679view=diff
==
--- 
camel/branches/camel-2.9.x/components/camel-jsch/src/test/java/org/apache/camel/component/jsch/ScpSimpleProduceTest.java
 (original)
+++ 
camel/branches/camel-2.9.x/components/camel-jsch/src/test/java/org/apache/camel/component/jsch/ScpSimpleProduceTest.java
 Fri Mar 22 09:08:00 2013
@@ -38,6 +38,7 @@ public class ScpSimpleProduceTest extend
 
 String uri = getScpUri() + 
?username=adminpassword=adminknownHostsFile= + getKnownHostsFile();
 template.sendBodyAndHeader(uri, Hello World, Exchange.FILE_NAME, 
hello.txt);
+Thread.sleep(500);
 
 File file = new File(getScpPath() + /hello.txt).getAbsoluteFile();
 assertTrue(File should exist:  + file, file.exists());
@@ -50,6 +51,7 @@ public class ScpSimpleProduceTest extend
 
 String uri = getScpUri() + 
?username=adminpassword=adminknownHostsFile= + getKnownHostsFile();
 template.sendBodyAndHeader(uri, Bye World, Exchange.FILE_NAME, 
mysub/bye.txt);
+Thread.sleep(500);
 
 File file = new File(getScpPath() + 
/mysub/bye.txt).getAbsoluteFile();
 assertTrue(File should exist:  + file, file.exists());
@@ -62,6 +64,7 @@ public class ScpSimpleProduceTest extend
 
 String uri = getScpUri() + 
?username=adminpassword=adminknownHostsFile= + getKnownHostsFile();
 template.sendBodyAndHeader(uri, Farewell World, Exchange.FILE_NAME, 
mysub/mysubsub/farewell.txt);
+Thread.sleep(500);
 
 File file = new File(getScpPath() + 
/mysub/mysubsub/farewell.txt).getAbsoluteFile();
 assertTrue(File should exist:  + file, file.exists());
@@ -74,6 +77,7 @@ public class ScpSimpleProduceTest extend
 
 String uri = getScpUri() + 
?username=adminpassword=adminchmod=640knownHostsFile= + 
getKnownHostsFile();
 template.sendBodyAndHeader(uri, Bonjour Monde, Exchange.FILE_NAME, 
monde.txt);
+Thread.sleep(500);
 
 File file = new File(getScpPath() + /monde.txt).getAbsoluteFile();
 assertTrue(File should exist:  + file, file.exists());
@@ -88,6 +92,7 @@ public class ScpSimpleProduceTest extend
 
 String uri = getScpUri() + 
?username=adminprivateKeyFile=src/test/resources/camel-key.privprivateKeyFilePassphrase=passwordknownHostsFile=
 + getKnownHostsFile();
 template.sendBodyAndHeader(uri, Hallo Welt, Exchange.FILE_NAME, 
welt.txt);
+Thread.sleep(500);
 
 File file = new File(getScpPath() + /welt.txt).getAbsoluteFile();
 assertTrue(File should exist:  + file, file.exists());




svn commit: r1459711 - /camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpSetNamesWithMultiDirectoriesTest.java

2013-03-22 Thread cmueller
Author: cmueller
Date: Fri Mar 22 11:05:41 2013
New Revision: 1459711

URL: http://svn.apache.org/r1459711
Log:
speed up a test which fails some time on slow CI servers

Modified:

camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpSetNamesWithMultiDirectoriesTest.java

Modified: 
camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpSetNamesWithMultiDirectoriesTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpSetNamesWithMultiDirectoriesTest.java?rev=1459711r1=1459710r2=1459711view=diff
==
--- 
camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpSetNamesWithMultiDirectoriesTest.java
 (original)
+++ 
camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpSetNamesWithMultiDirectoriesTest.java
 Fri Mar 22 11:05:41 2013
@@ -35,7 +35,7 @@ import org.junit.Test;
 public class FromFtpSetNamesWithMultiDirectoriesTest extends 
FtpServerTestSupport {
 
 private String getFtpUrl() {
-return ftp://admin@localhost:; + getPort() + 
/incoming?password=adminbinary=truerecursive=true;
+return ftp://admin@localhost:; + getPort() + 
/incoming?password=adminbinary=truerecursive=trueinitialDelay=0delay=100;
 }
 
 @Override




svn commit: r1459712 - /camel/branches/camel-2.10.x/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpSetNamesWithMultiDirectoriesTest.java

2013-03-22 Thread cmueller
Author: cmueller
Date: Fri Mar 22 11:06:59 2013
New Revision: 1459712

URL: http://svn.apache.org/r1459712
Log:
speed up a test which fails some time on slow CI servers

Modified:

camel/branches/camel-2.10.x/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpSetNamesWithMultiDirectoriesTest.java

Modified: 
camel/branches/camel-2.10.x/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpSetNamesWithMultiDirectoriesTest.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpSetNamesWithMultiDirectoriesTest.java?rev=1459712r1=1459711r2=1459712view=diff
==
--- 
camel/branches/camel-2.10.x/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpSetNamesWithMultiDirectoriesTest.java
 (original)
+++ 
camel/branches/camel-2.10.x/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpSetNamesWithMultiDirectoriesTest.java
 Fri Mar 22 11:06:59 2013
@@ -35,7 +35,7 @@ import org.junit.Test;
 public class FromFtpSetNamesWithMultiDirectoriesTest extends 
FtpServerTestSupport {
 
 private String getFtpUrl() {
-return ftp://admin@localhost:; + getPort() + 
/incoming?password=adminbinary=truerecursive=true;
+return ftp://admin@localhost:; + getPort() + 
/incoming?password=adminbinary=truerecursive=trueinitialDelay=0delay=100;
 }
 
 @Override




svn commit: r1459714 - /camel/branches/camel-2.9.x/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpSetNamesWithMultiDirectoriesTest.java

2013-03-22 Thread cmueller
Author: cmueller
Date: Fri Mar 22 11:10:46 2013
New Revision: 1459714

URL: http://svn.apache.org/r1459714
Log:
speed up a test which fails some time on slow CI servers

Modified:

camel/branches/camel-2.9.x/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpSetNamesWithMultiDirectoriesTest.java

Modified: 
camel/branches/camel-2.9.x/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpSetNamesWithMultiDirectoriesTest.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpSetNamesWithMultiDirectoriesTest.java?rev=1459714r1=1459713r2=1459714view=diff
==
--- 
camel/branches/camel-2.9.x/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpSetNamesWithMultiDirectoriesTest.java
 (original)
+++ 
camel/branches/camel-2.9.x/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpSetNamesWithMultiDirectoriesTest.java
 Fri Mar 22 11:10:46 2013
@@ -36,7 +36,7 @@ public class FromFtpSetNamesWithMultiDir
 // must user consumer. prefix on the parameters to the file component
 private String getFtpUrl() {
 return ftp://admin@localhost:; + getPort() + 
/incoming?password=adminbinary=true
-+ initialDelay=2500delay=5000recursive=true;
++ initialDelay=0delay=100recursive=true;
 }
 
 @Override




svn commit: r1459720 - in /camel/trunk/components/camel-jms/src: main/java/org/apache/camel/component/jms/ test/java/org/apache/camel/component/jms/

2013-03-22 Thread davsclaus
Author: davsclaus
Date: Fri Mar 22 11:17:15 2013
New Revision: 1459720

URL: http://svn.apache.org/r1459720
Log:
CAMEL-6199: Fixed camel-jms consumer to remove privte thread pools used by 
listener container, when the consumer is stopped. For example when people add 
and remove routes at runtime.

Added:

camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAddAndRemoveRouteManagementTest.java
  - copied, changed from r1459644, 
camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAllowNullBodyTest.java
Modified:

camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConsumer.java

camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java

Modified: 
camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConsumer.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConsumer.java?rev=1459720r1=1459719r2=1459720view=diff
==
--- 
camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConsumer.java
 (original)
+++ 
camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConsumer.java
 Fri Mar 22 11:17:15 2013
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.jms;
 
+import java.util.concurrent.ExecutorService;
 import javax.jms.Connection;
 
 import org.apache.camel.FailedToCreateConsumerException;
@@ -37,6 +38,8 @@ public class JmsConsumer extends Default
 private volatile AbstractMessageListenerContainer listenerContainer;
 private volatile EndpointMessageListener messageListener;
 private volatile boolean initialized;
+private volatile ExecutorService executorService;
+private volatile boolean shutdownExecutorService;
 
 public JmsConsumer(JmsEndpoint endpoint, Processor processor, 
AbstractMessageListenerContainer listenerContainer) {
 super(endpoint, processor);
@@ -76,6 +79,23 @@ public class JmsConsumer extends Default
 }
 
 /**
+ * Sets the {@link ExecutorService} the {@link 
AbstractMessageListenerContainer} is using (if any).
+ * p/
+ * The {@link AbstractMessageListenerContainer} may use a private thread 
pool, and then when this consumer
+ * is stopped, we need to shutdown this thread pool as well, to clean up 
all resources.
+ * If a shared thread pool is used by the {@link 
AbstractMessageListenerContainer} then the lifecycle
+ * of that shared thread pool is handled elsewhere (not by this consumer); 
and therefore
+ * the ttshutdownExecutorService/tt parameter should be ttfalse/tt.
+ *
+ * @param executorService the thread pool
+ * @param shutdownExecutorService whether to shutdown the thread pool when 
this consumer stops
+ */
+void setListenerContainerExecutorService(ExecutorService executorService, 
boolean shutdownExecutorService) {
+this.executorService = executorService;
+this.shutdownExecutorService = shutdownExecutorService;
+}
+
+/**
  * Starts the JMS listener container
  * p/
  * Can be used to start this consumer later if it was configured to not 
auto startup.
@@ -160,6 +180,12 @@ public class JmsConsumer extends Default
 // then we will use updated configuration from jms endpoint that may 
have been managed using JMX
 listenerContainer = null;
 messageListener = null;
+
+// shutdown thread pool if listener container was using a private 
thread pool
+if (shutdownExecutorService  executorService != null) {
+
getEndpoint().getCamelContext().getExecutorServiceManager().shutdownNow(executorService);
+}
+executorService = null;
 }
 
 @Override

Modified: 
camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java?rev=1459720r1=1459719r2=1459720view=diff
==
--- 
camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
 (original)
+++ 
camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
 Fri Mar 22 11:17:15 2013
@@ -183,6 +183,12 @@ public class JmsEndpoint extends Default
 log.debug(Using custom TaskExecutor: {} on listener 
container: {}, configuration.getTaskExecutor(), listenerContainer);
 }
 setContainerTaskExecutor(listenerContainer, 
configuration.getTaskExecutor());
+// we are using a shared thread pool that this listener container 
is using.
+// store a reference to the consumer, but we should not shutdown 
the thread pool when the 

svn commit: r1459721 - in /camel/branches/camel-2.10.x: ./ components/camel-jms/ components/camel-jms/src/main/java/org/apache/camel/component/jms/ components/camel-jms/src/test/java/org/apache/camel/

2013-03-22 Thread davsclaus
Author: davsclaus
Date: Fri Mar 22 11:17:59 2013
New Revision: 1459721

URL: http://svn.apache.org/r1459721
Log:
CAMEL-6199: Fixed camel-jms consumer to remove privte thread pools used by 
listener container, when the consumer is stopped. For example when people add 
and remove routes at runtime.

Added:

camel/branches/camel-2.10.x/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAddAndRemoveRouteManagementTest.java
  - copied unchanged from r1459720, 
camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAddAndRemoveRouteManagementTest.java
Modified:
camel/branches/camel-2.10.x/   (props changed)
camel/branches/camel-2.10.x/components/camel-jms/   (props changed)

camel/branches/camel-2.10.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConsumer.java

camel/branches/camel-2.10.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java

Propchange: camel/branches/camel-2.10.x/
--
  Merged /camel/trunk:r1459720

Propchange: camel/branches/camel-2.10.x/
--
Binary property 'svnmerge-integrated' - no diff available.

Propchange: camel/branches/camel-2.10.x/components/camel-jms/
--
  Merged /camel/trunk/components/camel-jms:r1459720

Modified: 
camel/branches/camel-2.10.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConsumer.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConsumer.java?rev=1459721r1=1459720r2=1459721view=diff
==
--- 
camel/branches/camel-2.10.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConsumer.java
 (original)
+++ 
camel/branches/camel-2.10.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConsumer.java
 Fri Mar 22 11:17:59 2013
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.jms;
 
+import java.util.concurrent.ExecutorService;
 import javax.jms.Connection;
 
 import org.apache.camel.FailedToCreateConsumerException;
@@ -37,6 +38,8 @@ public class JmsConsumer extends Default
 private volatile AbstractMessageListenerContainer listenerContainer;
 private volatile EndpointMessageListener messageListener;
 private volatile boolean initialized;
+private volatile ExecutorService executorService;
+private volatile boolean shutdownExecutorService;
 
 public JmsConsumer(JmsEndpoint endpoint, Processor processor, 
AbstractMessageListenerContainer listenerContainer) {
 super(endpoint, processor);
@@ -76,6 +79,23 @@ public class JmsConsumer extends Default
 }
 
 /**
+ * Sets the {@link ExecutorService} the {@link 
AbstractMessageListenerContainer} is using (if any).
+ * p/
+ * The {@link AbstractMessageListenerContainer} may use a private thread 
pool, and then when this consumer
+ * is stopped, we need to shutdown this thread pool as well, to clean up 
all resources.
+ * If a shared thread pool is used by the {@link 
AbstractMessageListenerContainer} then the lifecycle
+ * of that shared thread pool is handled elsewhere (not by this consumer); 
and therefore
+ * the ttshutdownExecutorService/tt parameter should be ttfalse/tt.
+ *
+ * @param executorService the thread pool
+ * @param shutdownExecutorService whether to shutdown the thread pool when 
this consumer stops
+ */
+void setListenerContainerExecutorService(ExecutorService executorService, 
boolean shutdownExecutorService) {
+this.executorService = executorService;
+this.shutdownExecutorService = shutdownExecutorService;
+}
+
+/**
  * Starts the JMS listener container
  * p/
  * Can be used to start this consumer later if it was configured to not 
auto startup.
@@ -160,6 +180,12 @@ public class JmsConsumer extends Default
 // then we will use updated configuration from jms endpoint that may 
have been managed using JMX
 listenerContainer = null;
 messageListener = null;
+
+// shutdown thread pool if listener container was using a private 
thread pool
+if (shutdownExecutorService  executorService != null) {
+
getEndpoint().getCamelContext().getExecutorServiceManager().shutdownNow(executorService);
+}
+executorService = null;
 }
 
 @Override

Modified: 
camel/branches/camel-2.10.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java?rev=1459721r1=1459720r2=1459721view=diff

svn commit: r1459727 - /camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/support/JmsTestSupport.java

2013-03-22 Thread cmueller
Author: cmueller
Date: Fri Mar 22 11:25:07 2013
New Revision: 1459727

URL: http://svn.apache.org/r1459727
Log:
the sjms tests should use dynamic ports to prevent port already in use 
exceptions

Modified:

camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/support/JmsTestSupport.java

Modified: 
camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/support/JmsTestSupport.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/support/JmsTestSupport.java?rev=1459727r1=1459726r2=1459727view=diff
==
--- 
camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/support/JmsTestSupport.java
 (original)
+++ 
camel/trunk/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/support/JmsTestSupport.java
 Fri Mar 22 11:25:07 2013
@@ -26,6 +26,7 @@ import org.apache.camel.Produce;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.sjms.SjmsComponent;
 import org.apache.camel.impl.DefaultCamelContext;
+import org.apache.camel.test.AvailablePortFinder;
 import org.apache.camel.test.junit4.CamelTestSupport;
 
 /**
@@ -33,9 +34,10 @@ import org.apache.camel.test.junit4.Came
  * for unit testing.
  */
 public class JmsTestSupport extends CamelTestSupport {
-private static final String BROKER_URI = tcp://localhost:3;
+
 @Produce
 protected ProducerTemplate template;
+private String brokerUri;
 private BrokerService broker;
 private Connection connection;
 private Session session;
@@ -49,11 +51,13 @@ public class JmsTestSupport extends Came
  */
 @Override
 protected void doPreSetup() throws Exception {
+brokerUri = tcp://localhost: + 
AvailablePortFinder.getNextAvailable(3);
+
 broker = new BrokerService();
 broker.setUseJmx(true);
 broker.setPersistent(false);
 broker.deleteAllMessages();
-broker.addConnector(BROKER_URI);
+broker.addConnector(brokerUri);
 broker.start();
 }
 
@@ -89,7 +93,7 @@ public class JmsTestSupport extends Came
 @Override
 protected CamelContext createCamelContext() throws Exception {
 CamelContext camelContext = super.createCamelContext();
-ActiveMQConnectionFactory connectionFactory = new 
ActiveMQConnectionFactory(BROKER_URI);
+ActiveMQConnectionFactory connectionFactory = new 
ActiveMQConnectionFactory(brokerUri);
 connection = connectionFactory.createConnection();
 connection.start();
 session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
@@ -107,5 +111,4 @@ public class JmsTestSupport extends Came
 public Session getSession() {
 return session;
 }
-
 }




svn commit: r1459797 - /camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java

2013-03-22 Thread davsclaus
Author: davsclaus
Date: Fri Mar 22 14:27:00 2013
New Revision: 1459797

URL: http://svn.apache.org/r1459797
Log:
Added more trace logging when lookup component/endpoint in case when OSGi plays 
tricks on us, and we dont know what the ... is going on.

Modified:

camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java?rev=1459797r1=1459796r2=1459797view=diff
==
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
 Fri Mar 22 14:27:00 2013
@@ -320,6 +320,9 @@ public class DefaultCamelContext extends
 Component component = components.get(name);
 if (component == null  autoCreateComponents) {
 try {
+if (log.isDebugEnabled()) {
+log.debug(Using ComponentResolver: {} to resolve 
component with name: {}, getComponentResolver(), name);
+}
 component = getComponentResolver().resolveComponent(name, 
this);
 if (component != null) {
 addComponent(name, component);
@@ -334,6 +337,7 @@ public class DefaultCamelContext extends
 throw new RuntimeCamelException(Cannot auto create 
component:  + name, e);
 }
 }
+log.trace(getComponent({}) - {}, name, component);
 return component;
 }
 }
@@ -469,10 +473,13 @@ public class DefaultCamelContext extends
 String splitURI[] = ObjectHelper.splitOnCharacter(uri, :, 2);
 if (splitURI[1] != null) {
 scheme = splitURI[0];
+log.trace(Endpoint uri: {} is from component with name: 
{}, uri, scheme);
 Component component = getComponent(scheme);
 
 // Ask the component to resolve the endpoint.
 if (component != null) {
+log.trace(Creating endpoint from uri: {} using 
component: {}, uri, component);
+
 // Have the component create the endpoint if it can.
 if (component.useRawUri()) {
 answer = component.createEndpoint(rawUri);
@@ -489,6 +496,7 @@ public class DefaultCamelContext extends
 if (answer == null) {
 // no component then try in registry and elsewhere
 answer = createEndpoint(uri);
+log.trace(No component to create endpoint from uri: {} 
fallback lookup in registry - {}, uri, answer);
 }
 
 if (answer != null) {




svn commit: r1459798 - in /camel/branches/camel-2.10.x: ./ camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java

2013-03-22 Thread davsclaus
Author: davsclaus
Date: Fri Mar 22 14:27:44 2013
New Revision: 1459798

URL: http://svn.apache.org/r1459798
Log:
Added more trace logging when lookup component/endpoint in case when OSGi plays 
tricks on us, and we dont know what the ... is going on.

Modified:
camel/branches/camel-2.10.x/   (props changed)

camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java

Propchange: camel/branches/camel-2.10.x/
--
  Merged /camel/trunk:r1459797

Propchange: camel/branches/camel-2.10.x/
--
Binary property 'svnmerge-integrated' - no diff available.

Modified: 
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java?rev=1459798r1=1459797r2=1459798view=diff
==
--- 
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
 (original)
+++ 
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
 Fri Mar 22 14:27:44 2013
@@ -311,6 +311,9 @@ public class DefaultCamelContext extends
 Component component = components.get(name);
 if (component == null  autoCreateComponents) {
 try {
+if (log.isDebugEnabled()) {
+log.debug(Using ComponentResolver: {} to resolve 
component with name: {}, getComponentResolver(), name);
+}
 component = getComponentResolver().resolveComponent(name, 
this);
 if (component != null) {
 addComponent(name, component);
@@ -325,6 +328,7 @@ public class DefaultCamelContext extends
 throw new RuntimeCamelException(Cannot auto create 
component:  + name, e);
 }
 }
+log.trace(getComponent({}) - {}, name, component);
 return component;
 }
 }
@@ -453,10 +457,13 @@ public class DefaultCamelContext extends
 String splitURI[] = ObjectHelper.splitOnCharacter(uri, :, 2);
 if (splitURI[1] != null) {
 scheme = splitURI[0];
+log.trace(Endpoint uri: {} is from component with name: 
{}, uri, scheme);
 Component component = getComponent(scheme);
 
 // Ask the component to resolve the endpoint.
 if (component != null) {
+log.trace(Creating endpoint from uri: {} using 
component: {}, uri, component);
+
 // Have the component create the endpoint if it can.
 answer = component.createEndpoint(uri);
 
@@ -469,6 +476,7 @@ public class DefaultCamelContext extends
 if (answer == null) {
 // no component then try in registry and elsewhere
 answer = createEndpoint(uri);
+log.trace(No component to create endpoint from uri: {} 
fallback lookup in registry - {}, uri, answer);
 }
 
 if (answer != null) {




svn commit: r1459809 - /camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintContainerRegistry.java

2013-03-22 Thread davsclaus
Author: davsclaus
Date: Fri Mar 22 14:35:28 2013
New Revision: 1459809

URL: http://svn.apache.org/r1459809
Log:
CAMEL-6199: Fixed camel-blueprint registry to return null when not found in 
registry.

Modified:

camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintContainerRegistry.java

Modified: 
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintContainerRegistry.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintContainerRegistry.java?rev=1459809r1=1459808r2=1459809view=diff
==
--- 
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintContainerRegistry.java
 (original)
+++ 
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintContainerRegistry.java
 Fri Mar 22 14:35:28 2013
@@ -40,7 +40,11 @@ public class BlueprintContainerRegistry 
 
 @Override
 public Object lookupByName(String name) {
-return blueprintContainer.getComponentInstance(name);
+try {
+return blueprintContainer.getComponentInstance(name);
+} catch (NoSuchComponentException e) {
+return null;
+}
 }
 
 @Override




svn commit: r1459811 - in /camel/branches/camel-2.10.x: ./ components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintContainerRegistry.java

2013-03-22 Thread davsclaus
Author: davsclaus
Date: Fri Mar 22 14:36:39 2013
New Revision: 1459811

URL: http://svn.apache.org/r1459811
Log:
CAMEL-6199: Fixed camel-blueprint registry to return null when not found in 
registry.

Modified:
camel/branches/camel-2.10.x/   (props changed)

camel/branches/camel-2.10.x/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintContainerRegistry.java

Propchange: camel/branches/camel-2.10.x/
--
  Merged /camel/trunk:r1459809

Propchange: camel/branches/camel-2.10.x/
--
Binary property 'svnmerge-integrated' - no diff available.

Modified: 
camel/branches/camel-2.10.x/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintContainerRegistry.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintContainerRegistry.java?rev=1459811r1=1459810r2=1459811view=diff
==
--- 
camel/branches/camel-2.10.x/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintContainerRegistry.java
 (original)
+++ 
camel/branches/camel-2.10.x/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintContainerRegistry.java
 Fri Mar 22 14:36:39 2013
@@ -38,7 +38,11 @@ public class BlueprintContainerRegistry 
 }
 
 public Object lookup(String name) {
-return blueprintContainer.getComponentInstance(name);
+try {
+return blueprintContainer.getComponentInstance(name);
+} catch (NoSuchComponentException e) {
+return null;
+}
 }
 
 public T T lookup(String name, ClassT type) {




svn commit: r1460015 - in /camel/trunk/components/camel-sql/src: main/java/org/apache/camel/component/sql/SqlComponent.java test/java/org/apache/camel/component/sql/SqlDataSourceTest.java

2013-03-22 Thread cmueller
Author: cmueller
Date: Fri Mar 22 21:49:03 2013
New Revision: 1460015

URL: http://svn.apache.org/r1460015
Log:
CAMEL-6076: deprecate the xxxRef options and provide the xxx option if it not 
exists yet - work in progress

Added:

camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlDataSourceTest.java
Modified:

camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlComponent.java

Modified: 
camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlComponent.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlComponent.java?rev=1460015r1=1460014r2=1460015view=diff
==
--- 
camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlComponent.java
 (original)
+++ 
camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlComponent.java
 Fri Mar 22 21:49:03 2013
@@ -42,10 +42,19 @@ public class SqlComponent extends Defaul
 
 @Override
 protected Endpoint createEndpoint(String uri, String remaining, 
MapString, Object parameters) throws Exception {
-String dataSourceRef = getAndRemoveParameter(parameters, 
dataSourceRef, String.class);
-if (dataSourceRef != null) {
-dataSource = CamelContextHelper.mandatoryLookup(getCamelContext(), 
dataSourceRef, DataSource.class);
+DataSource ds = resolveAndRemoveReferenceParameter(parameters, 
dataSource, DataSource.class);
+if (ds != null) {
+dataSource = ds;
 }
+
+//TODO cmueller: remove the 'dataSourceRef' lookup in Camel 3.0
+if (dataSource == null) {
+String dataSourceRef = getAndRemoveParameter(parameters, 
dataSourceRef, String.class);
+if (dataSourceRef != null) {
+dataSource = 
CamelContextHelper.mandatoryLookup(getCamelContext(), dataSourceRef, 
DataSource.class);
+}
+}
+
 String parameterPlaceholderSubstitute = 
getAndRemoveParameter(parameters, placeholder, String.class, #);
 
 JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

Added: 
camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlDataSourceTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlDataSourceTest.java?rev=1460015view=auto
==
--- 
camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlDataSourceTest.java
 (added)
+++ 
camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlDataSourceTest.java
 Fri Mar 22 21:49:03 2013
@@ -0,0 +1,86 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the License); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.sql;
+
+import java.util.List;
+import java.util.Map;
+
+
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.impl.JndiRegistry;
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.junit.After;
+import org.junit.Test;
+import org.springframework.jdbc.datasource.embedded.EmbeddedDatabase;
+import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
+import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
+
+public class SqlDataSourceTest extends CamelTestSupport {
+
+private EmbeddedDatabase db;
+
+@Override
+protected JndiRegistry createRegistry() throws Exception {
+JndiRegistry jndi = super.createRegistry();
+
+// this is the database we create with some initial data for our unit 
test
+db = new EmbeddedDatabaseBuilder()
+
.setType(EmbeddedDatabaseType.DERBY).addScript(sql/createAndPopulateDatabase.sql).build();
+
+jndi.bind(dataSource, db);
+
+return jndi;
+}
+
+@Test
+public void testSimpleBody() throws Exception {
+MockEndpoint mock = getMockEndpoint(mock:result);
+mock.expectedMessageCount(1);
+
+template.sendBody(direct:simple, 

[CONF] Apache Camel SQL Component

2013-03-22 Thread confluence







SQL Component
Page edited by Christian Mueller


 Changes (2)
 




...
|| Option || Type || Default || Description || | {{batch}} | {{boolean}} | {{false}} | *Camel 2.7.5, 2.8.4 and 2.9:* Execute SQL batch update statements. See notes below on how the treatment of the inbound message body changes if this is set to {{true}}. | 
| {{dataSourceRef}} | {{String}} | {{null}} | *Deprecated and will be removed in Camel 3.0:* Reference to a {{DataSource}} to look up in the registry. | 
| {{dataSource}} | {{String}} | {{null}} | *Camel 2.11:* Reference to a {{DataSource}} to look up in the registry. | 
| {{placeholder}} | {{String}} | {{#}} | *Camel 2.4:* Specifies a character that will be replaced to {{?}} in SQL query. Notice, that it is simple {{String.replaceAll()}} operation and no SQL parsing is involved (quoted strings will also change). This replacement is *only* happening if the endpoint is created using the {{SqlComponent}}. If you manually create the endpoint, then use the expected {{?}} sign instead. | | {{template.xxx}} | | {{null}} | Sets additional options on the Spring {{JdbcTemplate}} that is used behind the scenes to execute the queries. For instance, {{template.maxRows=10}}. For detailed documentation, see the [JdbcTemplate javadoc|http://static.springframework.org/spring/docs/2.5.x/api/org/springframework/jdbc/core/JdbcTemplate.html] documentation. | 
...


Full Content

SQL Component

The sql: component allows you to work with databases using JDBC queries. The difference between this component and JDBC component is that in case of SQL the query is a property of the endpoint and it uses message payload as parameters passed to the query.

This component uses spring-jdbc behind the scenes for the actual SQL handling.

Maven users will need to add the following dependency to their pom.xml for this component:


dependency
groupIdorg.apache.camel/groupId
artifactIdcamel-sql/artifactId
versionx.x.x/version
!-- use the same version as your Camel core version --
/dependency



The SQL component also supports:

	a JDBC based repository for the Idempotent Consumer EIP pattern. See further below.
	a JDBC based repository for the Aggregator EIP pattern. See further below.



URI format

In Camel 2.10 or older the SQL component can only be used as producer.
>From Camel 2.11 onwards this component can also be a consumer, eg from().

This component can be used as a Transactional Client.

The SQL component uses the following endpoint URI notation:



sql:select * from table where id=# order by name[?options]



From Camel 2.11 onwards you can use named parameters by using #:name style as shown:  


sql:select * from table where id=:#myId order by name[?options]



When using named parameters, Camel will lookup the names from, in the given precedence:
1. from message body if its a java.util.Map
2. from message headers

If a named parameter cannot be resolved, then an exception is thrown.

Notice that the standard ? symbol that denotes the parameters to an SQL query is substituted with the # symbol, because the ? symbol is used to specify options for the endpoint. The ? symbol replacement can be configured on endpoint basis.

You can append query options to the URI in the following format, ?option=valueoption=value...

Options




 Option 
 Type 
 Default 
 Description 


 batch 
 boolean 
 false 
 Camel 2.7.5, 2.8.4 and 2.9: Execute SQL batch update statements. See notes below on how the treatment of the inbound message body changes if this is set to true. 


 dataSourceRef 
 String 
 null 
 Deprecated and will be removed in Camel 3.0: Reference to a DataSource to look up in the registry. 


 dataSource 
 String 
 null 
 Camel 2.11: Reference to a DataSource to look up in the registry. 


 placeholder 
 String 
 # 
 Camel 2.4: Specifies a character that will be replaced to ? in SQL query. Notice, that it is simple String.replaceAll() operation and no SQL parsing is involved (quoted strings will also change). This replacement is only happening if the endpoint is created using the SqlComponent. If you manually create the endpoint, then use the expected ? sign instead. 


 template.xxx 

 null 
 Sets additional options on the Spring JdbcTemplate that is used behind the scenes to execute the queries. For instance, template.maxRows=10. For detailed documentation, see the JdbcTemplate javadoc documentation. 


 allowNamedParameters 
 boolean 
 true 
 Camel 2.11: Whether to allow using named parameters in the queries. 


 processingStrategy 


 Camel 2.11: SQL consumer only: Allows to plugin to use a custom org.apache.camel.component.sql.SqlProcessingStrategy to execute queries when the consumer has processed the rows/batch. 


 

svn commit: r1460024 - /camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java

2013-03-22 Thread cmueller
Author: cmueller
Date: Fri Mar 22 22:01:40 2013
New Revision: 1460024

URL: http://svn.apache.org/r1460024
Log:
CAMEL-6202: Missing log parameter placeholder in 
routepolicy.quartz.ScheduledRoutePolicy

Modified:

camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java

Modified: 
camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java?rev=1460024r1=1460023r2=1460024view=diff
==
--- 
camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java
 (original)
+++ 
camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java
 Fri Mar 22 22:01:40 2013
@@ -85,7 +85,7 @@ public abstract class ScheduledRoutePoli
 getScheduler().scheduleJob(jobDetail, trigger);
 
 if (LOG.isInfoEnabled()) {
-LOG.info(Scheduled trigger: {} for action: {} on route: , new 
Object[]{trigger.getFullName(), action, route.getId()});
+LOG.info(Scheduled trigger: {} for action: {} on route {}, new 
Object[]{trigger.getFullName(), action, route.getId()});
 }
 }
 




svn commit: r1460026 - /camel/branches/camel-2.10.x/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java

2013-03-22 Thread cmueller
Author: cmueller
Date: Fri Mar 22 22:03:01 2013
New Revision: 1460026

URL: http://svn.apache.org/r1460026
Log:
CAMEL-6202: Missing log parameter placeholder in 
routepolicy.quartz.ScheduledRoutePolicy

Modified:

camel/branches/camel-2.10.x/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java

Modified: 
camel/branches/camel-2.10.x/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java?rev=1460026r1=1460025r2=1460026view=diff
==
--- 
camel/branches/camel-2.10.x/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java
 (original)
+++ 
camel/branches/camel-2.10.x/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java
 Fri Mar 22 22:03:01 2013
@@ -85,7 +85,7 @@ public abstract class ScheduledRoutePoli
 getScheduler().scheduleJob(jobDetail, trigger);
 
 if (LOG.isInfoEnabled()) {
-LOG.info(Scheduled trigger: {} for action: {} on route: , new 
Object[]{trigger.getFullName(), action, route.getId()});
+LOG.info(Scheduled trigger: {} for action: {} on route {}, new 
Object[]{trigger.getFullName(), action, route.getId()});
 }
 }
 




svn commit: r1460027 - /camel/branches/camel-2.9.x/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java

2013-03-22 Thread cmueller
Author: cmueller
Date: Fri Mar 22 22:04:57 2013
New Revision: 1460027

URL: http://svn.apache.org/r1460027
Log:
CAMEL-6202: Missing log parameter placeholder in 
routepolicy.quartz.ScheduledRoutePolicy

Modified:

camel/branches/camel-2.9.x/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java

Modified: 
camel/branches/camel-2.9.x/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java?rev=1460027r1=1460026r2=1460027view=diff
==
--- 
camel/branches/camel-2.9.x/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java
 (original)
+++ 
camel/branches/camel-2.9.x/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java
 Fri Mar 22 22:04:57 2013
@@ -83,7 +83,7 @@ public abstract class ScheduledRoutePoli
 getScheduler().scheduleJob(jobDetail, trigger);
 
 if (LOG.isInfoEnabled()) {
-LOG.info(Scheduled trigger: {} for action: {} on route: , new 
Object[]{trigger.getFullName(), action, route.getId()});
+LOG.info(Scheduled trigger: {} for action: {} on route {}, new 
Object[]{trigger.getFullName(), action, route.getId()});
 }
 }
 




svn commit: r855622 - in /websites/production/camel/content: book-component-appendix.html sql-component.html

2013-03-22 Thread buildbot
Author: buildbot
Date: Fri Mar 22 22:26:52 2013
New Revision: 855622

Log:
Production update by buildbot for camel

Modified:
websites/production/camel/content/book-component-appendix.html
websites/production/camel/content/sql-component.html

Modified: websites/production/camel/content/book-component-appendix.html
==
--- websites/production/camel/content/book-component-appendix.html (original)
+++ websites/production/camel/content/book-component-appendix.html Fri Mar 22 
22:26:52 2013
@@ -16622,7 +16622,7 @@ sql:select * from table where id=:#myId 
 h3a shape=rect name=BookComponentAppendix-Options/aOptions/h3
 
 div class=confluenceTableSmalldiv class=table-wrap
-table class=confluenceTabletbodytrth colspan=1 rowspan=1 
class=confluenceTh Option /thth colspan=1 rowspan=1 
class=confluenceTh Type /thth colspan=1 rowspan=1 
class=confluenceTh Default /thth colspan=1 rowspan=1 
class=confluenceTh Description /th/trtrtd colspan=1 rowspan=1 
class=confluenceTd ttbatch/tt /tdtd colspan=1 rowspan=1 
class=confluenceTd ttboolean/tt /tdtd colspan=1 rowspan=1 
class=confluenceTd ttfalse/tt /tdtd colspan=1 rowspan=1 
class=confluenceTd bCamel 2.7.5, 2.8.4 and 2.9:/b Execute SQL batch 
update statements. See notes below on how the treatment of the inbound message 
body changes if this is set to tttrue/tt. /td/trtrtd colspan=1 
rowspan=1 class=confluenceTd ttdataSourceRef/tt /tdtd colspan=1 
rowspan=1 class=confluenceTd ttString/tt /tdtd colspan=1 
rowspan=1 class=confluenceTd ttnull/tt /tdtd colspan=1
  rowspan=1 class=confluenceTd Reference to a ttDataSource/tt to look 
up in the registry. /td/trtrtd colspan=1 rowspan=1 
class=confluenceTd ttplaceholder/tt /tdtd colspan=1 rowspan=1 
class=confluenceTd ttString/tt /tdtd colspan=1 rowspan=1 
class=confluenceTd tt#/tt /tdtd colspan=1 rowspan=1 
class=confluenceTd bCamel 2.4:/b Specifies a character that will be 
replaced to tt?/tt in SQL query. Notice, that it is simple 
ttString.replaceAll()/tt operation and no SQL parsing is involved (quoted 
strings will also change). This replacement is bonly/b happening if the 
endpoint is created using the ttSqlComponent/tt. If you manually create the 
endpoint, then use the expected tt?/tt sign instead. /td/trtrtd 
colspan=1 rowspan=1 class=confluenceTd tttemplate.lt;xxxgt;/tt 
/tdtd colspan=1 rowspan=1 class=confluenceTd#160;/tdtd 
colspan=1 rowspan=1 class=confluenceTd
  ttnull/tt /tdtd colspan=1 rowspan=1 class=confluenceTd Sets 
additional options on the Spring ttJdbcTemplate/tt that is used behind the 
scenes to execute the queries. For instance, tttemplate.maxRows=10/tt. For 
detailed documentation, see the a shape=rect class=external-link 
href=http://static.springframework.org/spring/docs/2.5.x/api/org/springframework/jdbc/core/JdbcTemplate.html;
 rel=nofollowJdbcTemplate javadoc/a documentation. /td/trtrtd 
colspan=1 rowspan=1 class=confluenceTd ttallowNamedParameters/tt 
/tdtd colspan=1 rowspan=1 class=confluenceTd ttboolean/tt 
/tdtd colspan=1 rowspan=1 class=confluenceTd tttrue/tt /tdtd 
colspan=1 rowspan=1 class=confluenceTd bCamel 2.11:/b Whether to 
allow using named parameters in the queries. /td/trtrtd colspan=1 
rowspan=1 class=confluenceTd ttprocessingStrategy/tt /tdtd 
colspan=1 rowspan=1 class=confluenceTd#160;
 /tdtd colspan=1 rowspan=1 class=confluenceTd#160;/tdtd 
colspan=1 rowspan=1 class=confluenceTd bCamel 2.11:/b bSQL 
consumer only:/b Allows to plugin to use a custom 
ttorg.apache.camel.component.sql.SqlProcessingStrategy/tt to execute 
queries when the consumer has processed the rows/batch. /td/trtrtd 
colspan=1 rowspan=1 class=confluenceTd ttprepareStatementStrategy/tt 
/tdtd colspan=1 rowspan=1 class=confluenceTd#160;/tdtd 
colspan=1 rowspan=1 class=confluenceTd#160;/tdtd colspan=1 
rowspan=1 class=confluenceTd bCamel 2.11:/b Allows to plugin to use a 
custom ttorg.apache.camel.component.sql.SqlPrepareStatementStrategy/tt to 
control preparation of the query and prepared statement. /td/trtrtd 
colspan=1 rowspan=1 class=confluenceTd ttconsumer.delay/tt /tdtd 
colspan=1 rowspan=1 class=confluenceTd ttlong/tt /tdtd 
colspan=1 rowspan=1 class=confluenceTd tt
 500/tt /tdtd colspan=1 rowspan=1 class=confluenceTd bCamel 
 2.11:/b bSQL consumer only:/b Delay in milliseconds between each poll. 
 /td/trtrtd colspan=1 rowspan=1 class=confluenceTd 
 ttconsumer.initialDelay/tt /tdtd colspan=1 rowspan=1 
 class=confluenceTd ttlong/tt /tdtd colspan=1 rowspan=1 
 class=confluenceTd tt1000/tt /tdtd colspan=1 rowspan=1 
 class=confluenceTd bCamel 2.11:/b bSQL consumer only:/b 
 Milliseconds before polling starts. /td/trtrtd colspan=1 rowspan=1 
 class=confluenceTd ttconsumer.useFixedDelay/tt /tdtd colspan=1 
 rowspan=1 class=confluenceTd ttboolean/tt /tdtd colspan=1 
 rowspan=1 class=confluenceTd ttfalse/tt /tdtd colspan=1 
 rowspan=1 class=confluenceTd bCamel 2.11:/b bSQL consumer 
 only:/b Set to tttrue/tt to use fixed delay