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 <[email protected]>
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");

Reply via email to