This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new bb62ee084c01 CAMEL-24076: camel-jms - Wire browseLimit config into
queue endpoints (#24735)
bb62ee084c01 is described below
commit bb62ee084c018c87b4b999ef17cc0fa1deb935bb
Author: Claus Ibsen <[email protected]>
AuthorDate: Wed Jul 15 18:02:48 2026 +0200
CAMEL-24076: camel-jms - Wire browseLimit config into queue endpoints
(#24735)
The browseLimit URI option was dead code — the generated configurer
routed it to JmsConfiguration.setBrowseLimit() but JmsQueueEndpoint
uses its own maximumBrowseSize field which was never populated from
the config. Wire configuration.getBrowseLimit() into JmsQueueEndpoint,
ActiveMQQueueEndpoint (camel-activemq), and ActiveMQQueueEndpoint
(camel-activemq6) via doInit().
Co-Authored-By: Claude Opus 4.6 <[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");