You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2022/08/31 07:14:34 UTC

[camel] branch main updated (475366b5f1d -> 77b02664c9a)

This is an automated email from the ASF dual-hosted git repository.

orpiske pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


    from 475366b5f1d Revert "Add spring-boot link in doc"
     new 5a8432af104 (chores) camel-jms: consolidate duplicated logic
     new d43bb0c8605 (chores) camel-jms: use final when possible
     new 77b02664c9a (chores) camel-jms: avoid needlessly traversing the correlation ID array

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../component/jms/DefaultQueueBrowseStrategy.java  | 58 ++++++++++------------
 .../component/jms/EndpointMessageListener.java     | 33 ++++++------
 .../camel/component/jms/JmsMessageHelper.java      |  1 +
 .../camel/component/jms/JmsPollingConsumer.java    |  4 +-
 .../component/jms/reply/QueueReplyManager.java     |  9 +---
 .../component/jms/reply/ReplyManagerSupport.java   |  8 +++
 .../jms/reply/TemporaryQueueReplyManager.java      |  6 +--
 ...essageIdAsCorrelationIdMessageSentCallback.java |  6 +--
 8 files changed, 56 insertions(+), 69 deletions(-)


[camel] 03/03: (chores) camel-jms: avoid needlessly traversing the correlation ID array

Posted by or...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 77b02664c9a346dcd946963ec55d76e82778adc3
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Tue Aug 30 17:18:22 2022 +0200

    (chores) camel-jms: avoid needlessly traversing the correlation ID array
---
 .../src/main/java/org/apache/camel/component/jms/JmsMessageHelper.java   | 1 +
 1 file changed, 1 insertion(+)

diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessageHelper.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessageHelper.java
index 0b80783d8a9..5083c904217 100644
--- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessageHelper.java
+++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessageHelper.java
@@ -435,6 +435,7 @@ public final class JmsMessageHelper {
                 for (byte b : bytes) {
                     if (b != 0) {
                         isNull = false;
+                        break;
                     }
                 }
             }


[camel] 01/03: (chores) camel-jms: consolidate duplicated logic

Posted by or...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 5a8432af10454ddf57b26df62df8f8711a916e6b
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Tue Aug 30 17:03:11 2022 +0200

    (chores) camel-jms: consolidate duplicated logic
---
 .../component/jms/DefaultQueueBrowseStrategy.java  | 58 ++++++++++------------
 .../component/jms/EndpointMessageListener.java     | 33 ++++++------
 .../component/jms/reply/QueueReplyManager.java     |  8 +--
 .../component/jms/reply/ReplyManagerSupport.java   |  9 ++++
 .../jms/reply/TemporaryQueueReplyManager.java      |  6 +--
 5 files changed, 51 insertions(+), 63 deletions(-)

diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultQueueBrowseStrategy.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultQueueBrowseStrategy.java
index 7b3648d9ac7..4f349f510f3 100644
--- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultQueueBrowseStrategy.java
+++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultQueueBrowseStrategy.java
@@ -20,7 +20,10 @@ import java.util.ArrayList;
 import java.util.Enumeration;
 import java.util.List;
 
+import javax.jms.JMSException;
 import javax.jms.Message;
+import javax.jms.QueueBrowser;
+import javax.jms.Session;
 
 import org.apache.camel.Exchange;
 import org.springframework.jms.core.BrowserCallback;
@@ -34,42 +37,31 @@ public class DefaultQueueBrowseStrategy implements QueueBrowseStrategy {
     @Override
     public List<Exchange> browse(JmsOperations template, String queue, final JmsBrowsableEndpoint endpoint) {
         if (endpoint.getSelector() != null) {
-            return template.browseSelected(queue, endpoint.getSelector(), (session, browser) -> {
-                int size = endpoint.getMaximumBrowseSize();
-                if (size <= 0) {
-                    size = Integer.MAX_VALUE;
-                }
-
-                // not the best implementation in the world as we have to browse
-                // the entire queue, which could be massive
-                List<Exchange> answer = new ArrayList<>();
-                Enumeration<?> iter = browser.getEnumeration();
-                for (int i = 0; i < size && iter.hasMoreElements(); i++) {
-                    Message message = (Message) iter.nextElement();
-                    Exchange exchange = endpoint.createExchange(message, session);
-                    answer.add(exchange);
-                }
-                return answer;
-            });
+            return template.browseSelected(queue, endpoint.getSelector(),
+                    (session, browser) -> doBrowse(endpoint, session, browser));
         } else {
-            return template.browse(queue, (session, browser) -> {
-                int size = endpoint.getMaximumBrowseSize();
-                if (size <= 0) {
-                    size = Integer.MAX_VALUE;
-                }
+            return template.browse(queue, (session, browser) -> doBrowse(endpoint, session, browser));
+        }
+    }
+
+    private static List<Exchange> doBrowse(JmsBrowsableEndpoint endpoint, Session session, QueueBrowser browser)
+            throws JMSException {
+        int size = endpoint.getMaximumBrowseSize();
+        if (size <= 0) {
+            size = Integer.MAX_VALUE;
+        }
+
+        // not the best implementation in the world as we have to browse
+        // the entire queue, which could be massive
+        List<Exchange> answer = new ArrayList<>();
+        Enumeration<?> iter = browser.getEnumeration();
 
-                // not the best implementation in the world as we have to browse
-                // the entire queue, which could be massive
-                List<Exchange> answer = new ArrayList<>();
-                Enumeration<?> iter = browser.getEnumeration();
-                for (int i = 0; i < size && iter.hasMoreElements(); i++) {
-                    Message message = (Message) iter.nextElement();
-                    Exchange exchange = endpoint.createExchange(message, session);
-                    answer.add(exchange);
-                }
-                return answer;
-            });
+        for (int i = 0; i < size && iter.hasMoreElements(); i++) {
+            Message message = (Message) iter.nextElement();
+            Exchange exchange = endpoint.createExchange(message, session);
+            answer.add(exchange);
         }
+        return answer;
     }
 
 }
diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/EndpointMessageListener.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/EndpointMessageListener.java
index a1b37966e43..3f2df72ced7 100644
--- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/EndpointMessageListener.java
+++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/EndpointMessageListener.java
@@ -397,16 +397,20 @@ public class EndpointMessageListener implements SessionAwareMessageListener {
             LOG.debug("Cannot send reply message as there is no replyDestination for: {}", out);
             return;
         }
-        getTemplate().send(replyDestination, session -> {
-            Message reply = endpoint.getBinding().makeJmsMessage(exchange, out, session, cause);
-            final String correlationID = determineCorrelationId(message);
-            reply.setJMSCorrelationID(correlationID);
+        getTemplate().send(replyDestination, session -> createMessage(message, exchange, out, cause, session));
+    }
 
-            if (LOG.isDebugEnabled()) {
-                LOG.debug("{} sending reply JMS message [correlationId:{}]: {}", endpoint, correlationID, reply);
-            }
-            return reply;
-        });
+    private Message createMessage(
+            Message message, Exchange exchange, org.apache.camel.Message out, Exception cause, Session session)
+            throws JMSException {
+        Message reply = endpoint.getBinding().makeJmsMessage(exchange, out, session, cause);
+        final String correlationID = determineCorrelationId(message);
+        reply.setJMSCorrelationID(correlationID);
+
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("{} sending reply JMS message [correlationId:{}]: {}", endpoint, correlationID, reply);
+        }
+        return reply;
     }
 
     protected void sendReply(
@@ -416,16 +420,7 @@ public class EndpointMessageListener implements SessionAwareMessageListener {
             LOG.debug("Cannot send reply message as there is no replyDestination for: {}", out);
             return;
         }
-        getTemplate().send(replyDestination, session -> {
-            Message reply = endpoint.getBinding().makeJmsMessage(exchange, out, session, cause);
-            final String correlationID = determineCorrelationId(message);
-            reply.setJMSCorrelationID(correlationID);
-
-            if (LOG.isDebugEnabled()) {
-                LOG.debug("{} sending reply JMS message [correlationId:{}]: {}", endpoint, correlationID, reply);
-            }
-            return reply;
-        });
+        getTemplate().send(replyDestination, session -> createMessage(message, exchange, out, cause, session));
     }
 
     protected Object getReplyToDestination(Message message) {
diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/QueueReplyManager.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/QueueReplyManager.java
index 6ba8fc38562..87412e5a92e 100644
--- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/QueueReplyManager.java
+++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/QueueReplyManager.java
@@ -29,6 +29,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.component.jms.ConsumerType;
 import org.apache.camel.component.jms.DefaultSpringErrorHandler;
+import org.apache.camel.component.jms.JmsEndpoint;
 import org.apache.camel.component.jms.MessageListenerContainerFactory;
 import org.apache.camel.component.jms.ReplyToType;
 import org.apache.camel.component.jms.SimpleJmsMessageListenerContainer;
@@ -296,11 +297,7 @@ public class QueueReplyManager extends ReplyManagerSupport {
             answer.setMaxConcurrentConsumers(endpoint.getReplyToMaxConcurrentConsumers());
         }
         answer.setConnectionFactory(endpoint.getConfiguration().getOrCreateConnectionFactory());
-        String clientId = endpoint.getClientId();
-        if (clientId != null) {
-            clientId += ".CamelReplyManager";
-            answer.setClientId(clientId);
-        }
+        setupClientId(endpoint, answer);
 
         // we cannot do request-reply over JMS with transaction
         answer.setSessionTransacted(false);
@@ -348,5 +345,4 @@ public class QueueReplyManager extends ReplyManagerSupport {
 
         return answer;
     }
-
 }
diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/ReplyManagerSupport.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/ReplyManagerSupport.java
index 1c4c3e0aa62..f69cf5bd63b 100644
--- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/ReplyManagerSupport.java
+++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/ReplyManagerSupport.java
@@ -45,6 +45,7 @@ import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.jms.listener.AbstractMessageListenerContainer;
+import org.springframework.jms.listener.DefaultMessageListenerContainer;
 
 /**
  * Base class for {@link ReplyManager} implementations.
@@ -300,4 +301,12 @@ public abstract class ReplyManagerSupport extends ServiceSupport implements Repl
         }
     }
 
+
+    protected static void setupClientId(JmsEndpoint endpoint, DefaultMessageListenerContainer answer) {
+        String clientId = endpoint.getClientId();
+        if (clientId != null) {
+            clientId += ".CamelReplyManager";
+            answer.setClientId(clientId);
+        }
+    }
 }
diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java
index 01bfdab12e2..6cddd1b1d4d 100644
--- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java
+++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java
@@ -146,11 +146,7 @@ public class TemporaryQueueReplyManager extends ReplyManagerSupport {
         } else {
             answer.setCacheLevel(DefaultMessageListenerContainer.CACHE_CONSUMER);
         }
-        String clientId = endpoint.getClientId();
-        if (clientId != null) {
-            clientId += ".CamelReplyManager";
-            answer.setClientId(clientId);
-        }
+        setupClientId(endpoint, answer);
 
         // we cannot do request-reply over JMS with transaction
         answer.setSessionTransacted(false);


[camel] 02/03: (chores) camel-jms: use final when possible

Posted by or...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit d43bb0c8605b2b9199a18e36b1db3203f6b9a0ed
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Tue Aug 30 17:10:04 2022 +0200

    (chores) camel-jms: use final when possible
---
 .../java/org/apache/camel/component/jms/JmsPollingConsumer.java     | 4 ++--
 .../org/apache/camel/component/jms/reply/QueueReplyManager.java     | 3 +--
 .../org/apache/camel/component/jms/reply/ReplyManagerSupport.java   | 1 -
 .../jms/reply/UseMessageIdAsCorrelationIdMessageSentCallback.java   | 6 +++---
 4 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsPollingConsumer.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsPollingConsumer.java
index 049b7ebe08e..9d61d9d7841 100644
--- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsPollingConsumer.java
+++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsPollingConsumer.java
@@ -29,8 +29,8 @@ import org.springframework.jms.support.destination.JmsDestinationAccessor;
  * A JMS {@link org.apache.camel.PollingConsumer}.
  */
 public class JmsPollingConsumer extends PollingConsumerSupport {
-    private JmsOperations template;
-    private JmsEndpoint jmsEndpoint;
+    private final JmsOperations template;
+    private final JmsEndpoint jmsEndpoint;
 
     public JmsPollingConsumer(JmsEndpoint endpoint, JmsOperations template) {
         super(endpoint);
diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/QueueReplyManager.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/QueueReplyManager.java
index 87412e5a92e..0d393d0aeda 100644
--- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/QueueReplyManager.java
+++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/QueueReplyManager.java
@@ -29,7 +29,6 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.component.jms.ConsumerType;
 import org.apache.camel.component.jms.DefaultSpringErrorHandler;
-import org.apache.camel.component.jms.JmsEndpoint;
 import org.apache.camel.component.jms.MessageListenerContainerFactory;
 import org.apache.camel.component.jms.ReplyToType;
 import org.apache.camel.component.jms.SimpleJmsMessageListenerContainer;
@@ -101,7 +100,7 @@ public class QueueReplyManager extends ReplyManagerSupport {
     }
 
     private final class DestinationResolverDelegate implements DestinationResolver {
-        private DestinationResolver delegate;
+        private final DestinationResolver delegate;
         private Destination destination;
 
         DestinationResolverDelegate(DestinationResolver delegate) {
diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/ReplyManagerSupport.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/ReplyManagerSupport.java
index f69cf5bd63b..08a0eb8f223 100644
--- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/ReplyManagerSupport.java
+++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/ReplyManagerSupport.java
@@ -301,7 +301,6 @@ public abstract class ReplyManagerSupport extends ServiceSupport implements Repl
         }
     }
 
-
     protected static void setupClientId(JmsEndpoint endpoint, DefaultMessageListenerContainer answer) {
         String clientId = endpoint.getClientId();
         if (clientId != null) {
diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/UseMessageIdAsCorrelationIdMessageSentCallback.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/UseMessageIdAsCorrelationIdMessageSentCallback.java
index 0419db4e372..83e6a2d14b3 100644
--- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/UseMessageIdAsCorrelationIdMessageSentCallback.java
+++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/UseMessageIdAsCorrelationIdMessageSentCallback.java
@@ -32,9 +32,9 @@ import static org.apache.camel.component.jms.JmsMessageHelper.getJMSMessageID;
  */
 public class UseMessageIdAsCorrelationIdMessageSentCallback implements MessageSentCallback {
 
-    private ReplyManager replyManager;
-    private String correlationId;
-    private long requestTimeout;
+    private final ReplyManager replyManager;
+    private final String correlationId;
+    private final long requestTimeout;
 
     public UseMessageIdAsCorrelationIdMessageSentCallback(ReplyManager replyManager, String correlationId,
                                                           long requestTimeout) {