Author: dkulp Date: Thu Dec 22 16:07:09 2011 New Revision: 1222306 URL: http://svn.apache.org/viewvc?rev=1222306&view=rev Log: Merged revisions 1209051 via svnmerge from https://svn.apache.org/repos/asf/camel/trunk
........ r1209051 | ningjiang | 2011-12-01 07:36:09 -0500 (Thu, 01 Dec 2011) | 1 line CAMEL-4729 Supports to set the default value of SedaComponent ........ Modified: camel/branches/camel-2.8.x/ (props changed) camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/component/seda/SedaComponent.java camel/branches/camel-2.8.x/camel-core/src/test/java/org/apache/camel/component/seda/SedaEndpointTest.java Propchange: camel/branches/camel-2.8.x/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/component/seda/SedaComponent.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/component/seda/SedaComponent.java?rev=1222306&r1=1222305&r2=1222306&view=diff ============================================================================== --- camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/component/seda/SedaComponent.java (original) +++ camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/component/seda/SedaComponent.java Thu Dec 22 16:07: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/branches/camel-2.8.x/camel-core/src/test/java/org/apache/camel/component/seda/SedaEndpointTest.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/camel-core/src/test/java/org/apache/camel/component/seda/SedaEndpointTest.java?rev=1222306&r1=1222305&r2=1222306&view=diff ============================================================================== --- camel/branches/camel-2.8.x/camel-core/src/test/java/org/apache/camel/component/seda/SedaEndpointTest.java (original) +++ camel/branches/camel-2.8.x/camel-core/src/test/java/org/apache/camel/component/seda/SedaEndpointTest.java Thu Dec 22 16:07:09 2011 @@ -146,5 +146,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()); + } }