This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch fix/CAMEL-24076 in repository https://gitbox.apache.org/repos/asf/camel.git
commit 59aa8bdd73609fcef2478c482926add57a037614 Author: Claus Ibsen <[email protected]> AuthorDate: Wed Jul 15 16:19:39 2026 +0200 CAMEL-24076: camel-jms - Wire browseLimit config into queue endpoints Co-Authored-By: Claude Opus 4.6 <[email protected]> Signed-off-by: Claus Ibsen <[email protected]> --- .../component/activemq/ActiveMQQueueEndpoint.java | 13 ++++++++++++- .../component/activemq6/ActiveMQQueueEndpoint.java | 13 ++++++++++++- .../apache/camel/component/jms/JmsQueueEndpoint.java | 11 +++++++++++ .../camel/component/jms/BrowsableQueueTest.java | 20 +++++++++++++++++++- 4 files changed, 54 insertions(+), 3 deletions(-) diff --git a/components/camel-activemq/src/main/java/org/apache/camel/component/activemq/ActiveMQQueueEndpoint.java b/components/camel-activemq/src/main/java/org/apache/camel/component/activemq/ActiveMQQueueEndpoint.java index 6c31fc45a7d0..ea3531360a5c 100644 --- a/components/camel-activemq/src/main/java/org/apache/camel/component/activemq/ActiveMQQueueEndpoint.java +++ b/components/camel-activemq/src/main/java/org/apache/camel/component/activemq/ActiveMQQueueEndpoint.java @@ -37,7 +37,7 @@ import org.springframework.jms.core.JmsOperations; */ @ManagedResource(description = "Managed JMS Queue Endpoint") public class ActiveMQQueueEndpoint extends ActiveMQEndpoint implements JmsBrowsableEndpoint, BrowsableEndpoint { - private int maximumBrowseSize = 100; + private int maximumBrowseSize = -1; private final QueueBrowseStrategy queueBrowseStrategy; public ActiveMQQueueEndpoint(String uri, JmsComponent component, String destination, @@ -73,6 +73,17 @@ public class ActiveMQQueueEndpoint extends ActiveMQEndpoint implements JmsBrowsa queueBrowseStrategy = createQueueBrowseStrategy(); } + @Override + protected void doInit() throws Exception { + super.doInit(); + if (maximumBrowseSize < 0) { + JmsConfiguration config = getConfiguration(); + if (config != null) { + maximumBrowseSize = config.getBrowseLimit(); + } + } + } + @ManagedAttribute public int getMaximumBrowseSize() { return maximumBrowseSize; diff --git a/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/ActiveMQQueueEndpoint.java b/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/ActiveMQQueueEndpoint.java index f767b7d3c376..08cc688812cb 100644 --- a/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/ActiveMQQueueEndpoint.java +++ b/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/ActiveMQQueueEndpoint.java @@ -37,7 +37,7 @@ import org.springframework.jms.core.JmsOperations; */ @ManagedResource(description = "Managed JMS Queue Endpoint") public class ActiveMQQueueEndpoint extends ActiveMQEndpoint implements JmsBrowsableEndpoint, BrowsableEndpoint { - private int maximumBrowseSize = 100; + private int maximumBrowseSize = -1; private final QueueBrowseStrategy queueBrowseStrategy; public ActiveMQQueueEndpoint(String uri, JmsComponent component, String destination, @@ -73,6 +73,17 @@ public class ActiveMQQueueEndpoint extends ActiveMQEndpoint implements JmsBrowsa queueBrowseStrategy = createQueueBrowseStrategy(); } + @Override + protected void doInit() throws Exception { + super.doInit(); + if (maximumBrowseSize < 0) { + JmsConfiguration config = getConfiguration(); + if (config != null) { + maximumBrowseSize = config.getBrowseLimit(); + } + } + } + @ManagedAttribute public int getMaximumBrowseSize() { return maximumBrowseSize; diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsQueueEndpoint.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsQueueEndpoint.java index dd64a343ac43..b022040a3634 100644 --- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsQueueEndpoint.java +++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsQueueEndpoint.java @@ -68,6 +68,17 @@ public class JmsQueueEndpoint extends JmsEndpoint implements JmsBrowsableEndpoin queueBrowseStrategy = createQueueBrowseStrategy(); } + @Override + protected void doInit() throws Exception { + super.doInit(); + if (maximumBrowseSize < 0) { + JmsConfiguration config = getConfiguration(); + if (config != null) { + maximumBrowseSize = config.getBrowseLimit(); + } + } + } + @ManagedAttribute public int getMaximumBrowseSize() { return maximumBrowseSize; diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/BrowsableQueueTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/BrowsableQueueTest.java index 68c456a69278..c69aec8b4201 100644 --- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/BrowsableQueueTest.java +++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/BrowsableQueueTest.java @@ -101,6 +101,24 @@ public class BrowsableQueueTest extends AbstractJMSTest { } } + @Test + public void testSendMessagesThenBrowseQueueWithBrowseLimit() { + final String queueName = queueNameForClass("activemq:BrowsableQueueTest.d", this.getClass()); + // send some messages + for (int i = 0; i < expectedBodies.length; i++) { + Object expectedBody = expectedBodies[i]; + template.sendBodyAndHeader(queueName, expectedBody, "counter", i); + } + + // now lets browse the queue using the browseLimit URI option + JmsQueueEndpoint endpoint = getMandatoryEndpoint(queueName + "?browseLimit=6", JmsQueueEndpoint.class); + assertEquals(6, endpoint.getMaximumBrowseSize()); + assertEquals(6, endpoint.getBrowseLimit()); + List<Exchange> list = endpoint.getExchanges(); + LOG.debug("Received: {}", list); + assertEquals(6, list.size(), "Size of list"); + } + @Test public void testSendMessagesThenBrowseQueueNoMax() { final String queueName = queueNameForClass("activemq:BrowsableQueueTest.b", this.getClass()); @@ -113,7 +131,7 @@ public class BrowsableQueueTest extends AbstractJMSTest { // now lets browse the queue JmsQueueEndpoint endpoint = getMandatoryEndpoint(queueName, JmsQueueEndpoint.class); - assertEquals(-1, endpoint.getMaximumBrowseSize()); + assertEquals(100, endpoint.getMaximumBrowseSize()); List<Exchange> list = endpoint.getExchanges(); LOG.debug("Received: {}", list); assertEquals(8, endpoint.getExchanges().size(), "Size of list");
