You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by je...@apache.org on 2021/11/16 19:22:42 UTC

[camel] branch main updated: CAMEL-11078: camel-salesforce: Expose HTTP response code/message.

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

jeremyross 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 fdf484e  CAMEL-11078: camel-salesforce: Expose HTTP response code/message.
fdf484e is described below

commit fdf484e9244f5bf12ed346cbe0486ebf18b77aa2
Author: Jeremy Ross <je...@gmail.com>
AuthorDate: Tue Nov 16 13:21:21 2021 -0600

    CAMEL-11078: camel-salesforce: Expose HTTP response code/message.
---
 .../src/main/docs/salesforce-component.adoc                    |  3 +++
 .../salesforce/internal/client/AbstractClientBase.java         |  2 ++
 .../camel/component/salesforce/RestApiIntegrationTest.java     | 10 ++++++++++
 3 files changed, 15 insertions(+)

diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc b/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc
index fc310d0..1506fc0 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc
@@ -133,6 +133,9 @@ class MyProcessor implements Processor {
 }
 ----
 
+In addition, HTTP response status code and text are available as headers `Exchange.HTTP_RESPONSE_CODE` and
+`Exchange.HTTP_RESPONSE_TEXT`.
+
 == Supported Salesforce APIs
 
 The component supports the following Salesforce APIs
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/AbstractClientBase.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/AbstractClientBase.java
index 28aa214..66f0610 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/AbstractClientBase.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/AbstractClientBase.java
@@ -305,6 +305,8 @@ public abstract class AbstractClientBase extends ServiceSupport
                 answer.put(headerName, header.getValue());
             }
         }
+        answer.put(Exchange.HTTP_RESPONSE_CODE, String.valueOf(response.getStatus()));
+        answer.put(Exchange.HTTP_RESPONSE_TEXT, response.getReason());
 
         return answer;
     }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/RestApiIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/RestApiIntegrationTest.java
index 362f88e..31afd77 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/RestApiIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/RestApiIntegrationTest.java
@@ -26,6 +26,7 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.camel.CamelExecutionException;
+import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.salesforce.api.NoSuchSObjectException;
@@ -50,6 +51,7 @@ import org.apache.camel.component.salesforce.dto.generated.QueryRecordsContact;
 import org.apache.camel.component.salesforce.dto.generated.QueryRecordsLine_Item__c;
 import org.apache.camel.component.salesforce.dto.generated.Task;
 import org.apache.camel.component.salesforce.dto.generated.User;
+import org.apache.camel.support.DefaultExchange;
 import org.apache.camel.support.jsse.SSLContextParameters;
 import org.eclipse.jetty.client.HttpClient;
 import org.eclipse.jetty.client.api.ContentResponse;
@@ -204,6 +206,14 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
     }
 
     @Test
+    public void returnsHttpResponseStatusAndText() {
+        Exchange exchange = new DefaultExchange(context);
+        template().send("direct:query", exchange);
+        assertEquals("200", exchange.getOut().getHeader(Exchange.HTTP_RESPONSE_CODE));
+        assertNotNull(exchange.getOut().getHeader(Exchange.HTTP_RESPONSE_TEXT));
+    }
+
+    @Test
     public void testCreateUpdateDelete() throws Exception {
         final Merchandise__c merchandise = new Merchandise__c();
         merchandise.setName("Wee Wee Wee Plane");