You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2011/12/01 13:36:10 UTC
svn commit: r1209051 - in /camel/trunk/camel-core/src:
main/java/org/apache/camel/component/seda/SedaComponent.java
test/java/org/apache/camel/component/seda/SedaEndpointTest.java
Author: ningjiang
Date: Thu Dec 1 12:36:09 2011
New Revision: 1209051
URL: http://svn.apache.org/viewvc?rev=1209051&view=rev
Log:
CAMEL-4729 Supports to set the default value of SedaComponent
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/component/seda/SedaComponent.java
camel/trunk/camel-core/src/test/java/org/apache/camel/component/seda/SedaEndpointTest.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/seda/SedaComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/seda/SedaComponent.java?rev=1209051&r1=1209050&r2=1209051&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/seda/SedaComponent.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/seda/SedaComponent.java Thu Dec 1 12:36:09 2011
@@ -33,7 +33,25 @@ import org.apache.camel.impl.DefaultComp
*/
public class SedaComponent extends DefaultComponent {
protected final int maxConcurrentConsumers = 500;
+ protected int queueSize;
+ protected int defaultConcurrentConsumers = 1;
private final Map<String, BlockingQueue<Exchange>> queues = new HashMap<String, BlockingQueue<Exchange>>();
+
+ public void setQueueSize(int size) {
+ queueSize = size;
+ }
+
+ public int getQueueSize() {
+ return queueSize;
+ }
+
+ public void setConcurrentConsumers(int size) {
+ defaultConcurrentConsumers = size;
+ }
+
+ public int getConcurrentConsumers() {
+ return defaultConcurrentConsumers;
+ }
public synchronized BlockingQueue<Exchange> createQueue(String uri, Map<String, Object> parameters) {
String key = getQueueKey(uri);
@@ -48,7 +66,11 @@ public class SedaComponent extends Defau
if (size != null && size > 0) {
queue = new LinkedBlockingQueue<Exchange>(size);
} else {
- queue = new LinkedBlockingQueue<Exchange>();
+ if (getQueueSize() > 0) {
+ queue = new LinkedBlockingQueue<Exchange>(getQueueSize());
+ } else {
+ queue = new LinkedBlockingQueue<Exchange>();
+ }
}
queues.put(key, queue);
@@ -57,7 +79,7 @@ public class SedaComponent extends Defau
@Override
protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
- int consumers = getAndRemoveParameter(parameters, "concurrentConsumers", Integer.class, 1);
+ int consumers = getAndRemoveParameter(parameters, "concurrentConsumers", Integer.class, defaultConcurrentConsumers);
boolean limitConcurrentConsumers = getAndRemoveParameter(parameters, "limitConcurrentConsumers", Boolean.class, true);
if (limitConcurrentConsumers && consumers > maxConcurrentConsumers) {
throw new IllegalArgumentException("The limitConcurrentConsumers flag in set to true. ConcurrentConsumers cannot be set at a value greater than "
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/component/seda/SedaEndpointTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/seda/SedaEndpointTest.java?rev=1209051&r1=1209050&r2=1209051&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/component/seda/SedaEndpointTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/seda/SedaEndpointTest.java Thu Dec 1 12:36:09 2011
@@ -143,5 +143,16 @@ public class SedaEndpointTest extends Co
assertSame(seda, consumer.getEndpoint());
assertNotNull(consumer.toString());
}
+
+ public void testSedaDefaultValue() throws Exception {
+ SedaComponent sedaComponent = new SedaComponent();
+ sedaComponent.setQueueSize(300);
+ sedaComponent.setConcurrentConsumers(3);
+ context.addComponent("seda", sedaComponent);
+ SedaEndpoint seda = context.getEndpoint("seda://foo", SedaEndpoint.class);
+
+ assertEquals(300, seda.getSize());
+ assertEquals(3, seda.getConcurrentConsumers());
+ }
}