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

davsclaus pushed a commit to branch exchange-factory
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/exchange-factory by this push:
     new 1907d7e  CAMEL-16222: PooledExchangeFactory experiment
1907d7e is described below

commit 1907d7e03da2b2e11a99c1a217d6318e42879a9a
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Wed Feb 24 09:06:10 2021 +0100

    CAMEL-16222: PooledExchangeFactory experiment
---
 .../camel/component/salesforce/SalesforceConsumer.java    |  3 ++-
 .../component/salesforce/SalesforceConsumerTest.java      | 15 ++++++++++++---
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git 
a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceConsumer.java
 
b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceConsumer.java
index 5299505..5f60fb1 100644
--- 
a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceConsumer.java
+++ 
b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceConsumer.java
@@ -142,7 +142,7 @@ public class SalesforceConsumer extends DefaultConsumer {
             LOG.debug("Received event {} on channel {}", channel.getId(), 
channel.getChannelId());
         }
 
-        final Exchange exchange = endpoint.createExchange();
+        final Exchange exchange = createExchange(false);
         final org.apache.camel.Message in = exchange.getIn();
 
         switch (messageKind) {
@@ -179,6 +179,7 @@ public class SalesforceConsumer extends DefaultConsumer {
                 final String msg = String.format("Unhandled exception: %s", 
ex.getMessage());
                 handleException(msg, new SalesforceException(msg, ex));
             }
+            releaseExchange(exchange, false);
         }
     }
 
diff --git 
a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceConsumerTest.java
 
b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceConsumerTest.java
index 29c8e60..603e5db 100644
--- 
a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceConsumerTest.java
+++ 
b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceConsumerTest.java
@@ -25,10 +25,12 @@ import java.util.Objects;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import org.apache.camel.AsyncProcessor;
 import org.apache.camel.CamelContext;
-import org.apache.camel.Exchange;
+import org.apache.camel.ExtendedCamelContext;
+import org.apache.camel.ExtendedExchange;
 import org.apache.camel.component.salesforce.api.dto.PlatformEvent;
 import 
org.apache.camel.component.salesforce.internal.streaming.SubscriptionHelper;
 import org.apache.camel.spi.ClassResolver;
+import org.apache.camel.spi.ExchangeFactory;
 import org.cometd.bayeux.Message;
 import org.cometd.bayeux.client.ClientSessionChannel;
 import org.cometd.common.HashMapMessage;
@@ -82,9 +84,11 @@ public class SalesforceConsumerTest {
 
     SalesforceEndpointConfig configuration = new SalesforceEndpointConfig();
     SalesforceEndpoint endpoint = mock(SalesforceEndpoint.class);
-    Exchange exchange = mock(Exchange.class);
+    ExtendedExchange exchange = mock(ExtendedExchange.class);
     org.apache.camel.Message in = mock(org.apache.camel.Message.class);
     AsyncProcessor processor = mock(AsyncProcessor.class);
+    ExtendedCamelContext context = mock(ExtendedCamelContext.class);
+    ExchangeFactory exchangeFactory = mock(ExchangeFactory.class);
     Message pushTopicMessage;
 
     @Mock
@@ -99,7 +103,12 @@ public class SalesforceConsumerTest {
     @BeforeEach
     public void setupMocks() {
         when(endpoint.getConfiguration()).thenReturn(configuration);
-        when(endpoint.createExchange()).thenReturn(exchange);
+        when(endpoint.getCamelContext()).thenReturn(context);
+        when(context.adapt(ExtendedCamelContext.class)).thenReturn(context);
+        when(context.getExchangeFactory()).thenReturn(exchangeFactory);
+        
when(exchangeFactory.newExchangeFactory(any())).thenReturn(exchangeFactory);
+        when(exchangeFactory.create(endpoint, false)).thenReturn(exchange);
+        when(exchange.adapt(ExtendedExchange.class)).thenReturn(exchange);
         when(exchange.getIn()).thenReturn(in);
         final SalesforceComponent component = mock(SalesforceComponent.class);
         when(endpoint.getComponent()).thenReturn(component);

Reply via email to