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 2024/01/29 14:01:01 UTC

(camel) 02/02: (chores) camel-spring-rabbitmq: cleaned up duplicated code

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 8ce801125f422a3faa03b6d3870f44b205e2279d
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Mon Jan 29 13:48:42 2024 +0100

    (chores) camel-spring-rabbitmq: cleaned up duplicated code
---
 .../springrabbit/SpringRabbitMQProducer.java       | 60 +++++++++++-----------
 1 file changed, 30 insertions(+), 30 deletions(-)

diff --git a/components/camel-spring-rabbitmq/src/main/java/org/apache/camel/component/springrabbit/SpringRabbitMQProducer.java b/components/camel-spring-rabbitmq/src/main/java/org/apache/camel/component/springrabbit/SpringRabbitMQProducer.java
index dbd09d74d57..73712e16f8c 100644
--- a/components/camel-spring-rabbitmq/src/main/java/org/apache/camel/component/springrabbit/SpringRabbitMQProducer.java
+++ b/components/camel-spring-rabbitmq/src/main/java/org/apache/camel/component/springrabbit/SpringRabbitMQProducer.java
@@ -126,25 +126,12 @@ public class SpringRabbitMQProducer extends DefaultAsyncProducer {
 
     protected boolean processInOut(Exchange exchange, AsyncCallback callback) {
         // header take precedence over endpoint
-        String exchangeName = (String) exchange.getMessage().removeHeader(SpringRabbitMQConstants.EXCHANGE_OVERRIDE_NAME);
-        if (exchangeName == null) {
-            exchangeName = getEndpoint().getExchangeName();
-        }
-        exchangeName = SpringRabbitMQHelper.isDefaultExchange(exchangeName) ? "" : exchangeName;
+        final String exchangeName = getExchangeName(exchange);
 
-        String routingKey = (String) exchange.getMessage().removeHeader(SpringRabbitMQConstants.ROUTING_OVERRIDE_KEY);
-        if (routingKey == null) {
-            routingKey = getEndpoint().getRoutingKey();
-        }
+        final String routingKey
+                = getValue(exchange, SpringRabbitMQConstants.ROUTING_OVERRIDE_KEY, getEndpoint().getRoutingKey());
 
-        Object body = exchange.getMessage().getBody();
-        Message msg;
-        if (body instanceof Message) {
-            msg = (Message) body;
-        } else {
-            MessageProperties mp = getEndpoint().getMessagePropertiesConverter().toMessageProperties(exchange);
-            msg = getEndpoint().getMessageConverter().toMessage(body, mp);
-        }
+        final Message msg = getMessage(exchange);
 
         try {
             // will use RabbitMQ direct reply-to
@@ -180,19 +167,7 @@ public class SpringRabbitMQProducer extends DefaultAsyncProducer {
         return true;
     }
 
-    protected boolean processInOnly(Exchange exchange, AsyncCallback callback) {
-        // header take precedence over endpoint
-        String exchangeName = (String) exchange.getMessage().removeHeader(SpringRabbitMQConstants.EXCHANGE_OVERRIDE_NAME);
-        if (exchangeName == null) {
-            exchangeName = getEndpoint().getExchangeName();
-        }
-        exchangeName = SpringRabbitMQHelper.isDefaultExchange(exchangeName) ? "" : exchangeName;
-
-        String routingKey = (String) exchange.getMessage().removeHeader(SpringRabbitMQConstants.ROUTING_OVERRIDE_KEY);
-        if (routingKey == null) {
-            routingKey = getEndpoint().getRoutingKey();
-        }
-
+    private Message getMessage(Exchange exchange) {
         Object body = exchange.getMessage().getBody();
         Message msg;
         if (body instanceof Message) {
@@ -201,6 +176,17 @@ public class SpringRabbitMQProducer extends DefaultAsyncProducer {
             MessageProperties mp = getEndpoint().getMessagePropertiesConverter().toMessageProperties(exchange);
             msg = getEndpoint().getMessageConverter().toMessage(body, mp);
         }
+        return msg;
+    }
+
+    protected boolean processInOnly(Exchange exchange, AsyncCallback callback) {
+        // header take precedence over endpoint
+        final String exchangeName = getExchangeName(exchange);
+
+        final String routingKey
+                = getValue(exchange, SpringRabbitMQConstants.ROUTING_OVERRIDE_KEY, getEndpoint().getRoutingKey());
+
+        final Message msg = getMessage(exchange);
 
         final String ex = exchangeName;
         final String rk = routingKey;
@@ -233,6 +219,20 @@ public class SpringRabbitMQProducer extends DefaultAsyncProducer {
         return true;
     }
 
+    private String getValue(Exchange exchange, String routingOverrideKey, String defaultValue) {
+        String routingKey = (String) exchange.getMessage().removeHeader(routingOverrideKey);
+        if (routingKey == null) {
+            return defaultValue;
+        }
+        return routingKey;
+    }
+
+    private String getExchangeName(Exchange exchange) {
+        String exchangeName
+                = getValue(exchange, SpringRabbitMQConstants.EXCHANGE_OVERRIDE_NAME, getEndpoint().getExchangeName());
+        return SpringRabbitMQHelper.isDefaultExchange(exchangeName) ? "" : exchangeName;
+    }
+
     /**
      * Pre tests the connection before starting the listening.
      * <p/>