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");

Reply via email to