CAMEL-7421: Allow to configure the options from the endpoint which is standard way in Camel.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/c0597815 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/c0597815 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/c0597815 Branch: refs/heads/camel-2.14.x Commit: c05978155fc02761122deb92bc08af09ac48b837 Parents: 56a4347 Author: Claus Ibsen <davscl...@apache.org> Authored: Thu Dec 4 07:43:43 2014 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Thu Dec 4 07:47:53 2014 +0100 ---------------------------------------------------------------------- .../component/rabbitmq/RabbitMQEndpoint.java | 40 ++++++++++++++++ .../component/rabbitmq/RabbitMQProducer.java | 48 ++------------------ .../features/src/main/resources/features.xml | 1 + 3 files changed, 44 insertions(+), 45 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/c0597815/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQEndpoint.java b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQEndpoint.java index 645a572..f36fd82 100644 --- a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQEndpoint.java +++ b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQEndpoint.java @@ -95,6 +95,10 @@ public class RabbitMQEndpoint extends DefaultEndpoint { private String deadLetterQueue; //Dead letter exchange type. private String deadLetterExchangeType = "direct"; + //Maximum number of opened channel in pool + private int channelPoolMaxSize = 10; + //Maximum time (in milliseconds) waiting for channel + private long channelPoolMaxWait = 1000; public RabbitMQEndpoint() { } @@ -539,4 +543,40 @@ public class RabbitMQEndpoint extends DefaultEndpoint { public void setDeadLetterExchangeType(String deadLetterExchangeType) { this.deadLetterExchangeType = deadLetterExchangeType; } + + /** + * Get maximum number of opened channel in pool + * + * @return Maximum number of opened channel in pool + */ + public int getChannelPoolMaxSize() { + return channelPoolMaxSize; + } + + /** + * Set maximum number of opened channel in pool + * + * @param channelPoolMaxSize Maximum number of opened channel in pool + */ + public void setChannelPoolMaxSize(int channelPoolMaxSize) { + this.channelPoolMaxSize = channelPoolMaxSize; + } + + /** + * Get the maximum number of milliseconds to wait for a channel from the pool + * + * @return Maximum number of milliseconds waiting for a channel + */ + public long getChannelPoolMaxWait() { + return channelPoolMaxWait; + } + + /** + * Set the maximum number of milliseconds to wait for a channel from the pool + * + * @param channelPoolMaxWait Maximum number of milliseconds waiting for a channel + */ + public void setChannelPoolMaxWait(long channelPoolMaxWait) { + this.channelPoolMaxWait = channelPoolMaxWait; + } } http://git-wip-us.apache.org/repos/asf/camel/blob/c0597815/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQProducer.java ---------------------------------------------------------------------- diff --git a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQProducer.java b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQProducer.java index 54562d5..96bd516 100644 --- a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQProducer.java +++ b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQProducer.java @@ -35,18 +35,10 @@ import org.apache.commons.pool.impl.GenericObjectPool; public class RabbitMQProducer extends DefaultProducer { - private int closeTimeout = 30 * 1000; private Connection conn; - /** - * Maximum number of opened channel in pool - */ - private int channelPoolMaxSize = 10; - /** - * Maximum time (in milliseconds) waiting for channel - */ - private long channelPoolMaxWait = 1000; private ObjectPool<Channel> channelPool; private ExecutorService executorService; + private int closeTimeout = 30 * 1000; public RabbitMQProducer(RabbitMQEndpoint endpoint) throws IOException { super(endpoint); @@ -85,7 +77,8 @@ public class RabbitMQProducer extends DefaultProducer { log.debug("Created connection: {}", conn); log.trace("Creating channel pool..."); - channelPool = new GenericObjectPool<Channel>(new PoolableChannelFactory(this.conn), getChannelPoolMaxSize(), GenericObjectPool.WHEN_EXHAUSTED_BLOCK, getChannelPoolMaxWait()); + channelPool = new GenericObjectPool<Channel>(new PoolableChannelFactory(this.conn), getEndpoint().getChannelPoolMaxSize(), + GenericObjectPool.WHEN_EXHAUSTED_BLOCK, getEndpoint().getChannelPoolMaxWait()); if (getEndpoint().isDeclare()) { execute(new ChannelCallback<Void>() { @Override @@ -297,39 +290,4 @@ public class RabbitMQProducer extends DefaultProducer { this.closeTimeout = closeTimeout; } - /** - * Get maximum number of opened channel in pool - * - * @return Maximum number of opened channel in pool - */ - public int getChannelPoolMaxSize() { - return channelPoolMaxSize; - } - - /** - * Set maximum number of opened channel in pool - * - * @param channelPoolMaxSize Maximum number of opened channel in pool - */ - public void setChannelPoolMaxSize(int channelPoolMaxSize) { - this.channelPoolMaxSize = channelPoolMaxSize; - } - - /** - * Get the maximum number of milliseconds to wait for a channel from the pool - * - * @return Maximum number of milliseconds waiting for a channel - */ - public long getChannelPoolMaxWait() { - return channelPoolMaxWait; - } - - /** - * Set the maximum number of milliseconds to wait for a channel from the pool - * - * @param channelPoolMaxWait Maximum number of milliseconds waiting for a channel - */ - public void setChannelPoolMaxWait(long channelPoolMaxWait) { - this.channelPoolMaxWait = channelPoolMaxWait; - } } http://git-wip-us.apache.org/repos/asf/camel/blob/c0597815/platforms/karaf/features/src/main/resources/features.xml ---------------------------------------------------------------------- diff --git a/platforms/karaf/features/src/main/resources/features.xml b/platforms/karaf/features/src/main/resources/features.xml index 802044f..a2d1344 100644 --- a/platforms/karaf/features/src/main/resources/features.xml +++ b/platforms/karaf/features/src/main/resources/features.xml @@ -1020,6 +1020,7 @@ <feature name='camel-rabbitmq' version='${project.version}' resolver='(obr)' start-level='50'> <feature version='${project.version}'>camel-core</feature> <bundle dependency='true'>mvn:com.rabbitmq/amqp-client/${rabbitmq-amqp-client-version}</bundle> + <bundle dependency='true'>mvn:commons-pool/commons-pool/${commons-pool-version}</bundle> <bundle>mvn:org.apache.camel/camel-rabbitmq/${project.version}</bundle> </feature> <feature name='camel-restlet' version='${project.version}' resolver='(obr)' start-level='50'>