You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ra...@apache.org on 2013/02/06 00:40:17 UTC
svn commit: r1442800 - in /camel/branches/camel-2.10.x/components/camel-jms:
./ src/main/java/org/apache/camel/component/jms/
src/test/java/org/apache/camel/component/jms/
Author: raulk
Date: Tue Feb 5 23:40:17 2013
New Revision: 1442800
URL: http://svn.apache.org/viewvc?rev=1442800&view=rev
Log:
CAMEL-5974 Make defaultTaskExecutorType a read-only managed attribute; add a setter in JmsComponent; add a test for component-level defaultTaskExecutorType
Modified:
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/JmsComponent.java
camel/branches/camel-2.10.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
camel/branches/camel-2.10.x/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDefaultTaskExecutorTypeTest.java
Propchange: camel/branches/camel-2.10.x/components/camel-jms/
------------------------------------------------------------------------------
Merged /camel/trunk/components/camel-jms:r1442799
Merged /camel/trunk:r1442799
Modified: camel/branches/camel-2.10.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java?rev=1442800&r1=1442799&r2=1442800&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java (original)
+++ camel/branches/camel-2.10.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java Tue Feb 5 23:40:17 2013
@@ -382,6 +382,10 @@ public class JmsComponent extends Defaul
public void setIncludeSentJMSMessageID(boolean includeSentJMSMessageID) {
getConfiguration().setIncludeSentJMSMessageID(includeSentJMSMessageID);
}
+
+ public void setDefaultTaskExecutorType(DefaultTaskExecutorType type) {
+ getConfiguration().setDefaultTaskExecutorType(type);
+ }
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
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=1442800&r1=1442799&r2=1442800&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java (original)
+++ camel/branches/camel-2.10.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java Tue Feb 5 23:40:17 2013
@@ -1063,6 +1063,7 @@ public class JmsEndpoint extends Default
configuration.setIncludeSentJMSMessageID(includeSentJMSMessageID);
}
+ @ManagedAttribute
public DefaultTaskExecutorType getDefaultTaskExecutorType() {
return configuration.getDefaultTaskExecutorType();
}
Modified: camel/branches/camel-2.10.x/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDefaultTaskExecutorTypeTest.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDefaultTaskExecutorTypeTest.java?rev=1442800&r1=1442799&r2=1442800&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDefaultTaskExecutorTypeTest.java (original)
+++ camel/branches/camel-2.10.x/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDefaultTaskExecutorTypeTest.java Tue Feb 5 23:40:17 2013
@@ -29,7 +29,9 @@ import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.test.junit4.CamelTestSupport;
import org.apache.camel.util.concurrent.ThreadHelper;
+import org.junit.Rule;
import org.junit.Test;
+import org.junit.rules.TestName;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -41,6 +43,7 @@ import static org.apache.camel.component
public class JmsDefaultTaskExecutorTypeTest extends CamelTestSupport {
private static final Logger LOG = LoggerFactory.getLogger(JmsDefaultTaskExecutorTypeTest.class);
+ @Rule public TestName name = new TestName();
@Test
public void testThreadPoolTaskExecutor() throws Exception {
@@ -87,6 +90,23 @@ public class JmsDefaultTaskExecutorTypeT
+ "800 with default behaviour", numberThreadsCreated >= 800);
}
+ @Test
+ public void testDefaultTaskExecutorThreadPoolAtComponentConfig() throws Exception {
+ // the default behaviour changes in this test, see createCamelContext method below
+ // the behaviour is the same as with testThreadPoolTaskExecutor test method above
+ context.startRoute("default");
+ Long beforeThreadCount = currentThreadCount();
+ getMockEndpoint("mock:result.default").expectedMessageCount(1000);
+ doSendMessages("foo.default", 500, 5, DefaultTaskExecutorType.ThreadPool);
+ Thread.sleep(100);
+ doSendMessages("foo.default", 500, 5, DefaultTaskExecutorType.ThreadPool);
+ assertMockEndpointsSatisfied();
+ Long numberThreadsCreated = currentThreadCount() - beforeThreadCount;
+ LOG.info("Number of threads created, testDefaultTaskExecutorThreadPoolAtComponentConfig: " + numberThreadsCreated);
+ assertTrue("Number of threads created should be equal or lower than "
+ + "100 with ThreadPoolTaskExecutor as a component default", numberThreadsCreated <= 100);
+ }
+
private Long currentThreadCount() throws NoSuchMethodException,
IllegalAccessException, InvocationTargetException {
Method m = ThreadHelper.class.getDeclaredMethod("nextThreadCounter", (Class<?>[]) null);
@@ -104,6 +124,9 @@ public class JmsDefaultTaskExecutorTypeT
jmsComponent.getConfiguration().setConcurrentConsumers(3);
jmsComponent.getConfiguration().setMaxConcurrentConsumers(10);
jmsComponent.getConfiguration().setReceiveTimeout(50);
+ if ("testDefaultTaskExecutorThreadPoolAtComponentConfig".equals(testName.getMethodName())) {
+ jmsComponent.getConfiguration().setDefaultTaskExecutorType(DefaultTaskExecutorType.ThreadPool);
+ }
camelContext.addComponent("activemq", jmsComponent);
return camelContext;
}