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 673e155  CAMEL-16222: PooledExchangeFactory experiment
673e155 is described below

commit 673e155fb90613381474cde9fb63b08af2ba748b
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Mon Feb 22 17:19:10 2021 +0100

    CAMEL-16222: PooledExchangeFactory experiment
---
 .../apache/camel/websocket/jsr356/JSR356Consumer.java   |  2 +-
 .../camel/component/websocket/WebsocketConsumer.java    |  2 +-
 .../wordpress/consumer/AbstractWordpressConsumer.java   | 17 +++++++----------
 3 files changed, 9 insertions(+), 12 deletions(-)

diff --git 
a/components/camel-websocket-jsr356/src/main/java/org/apache/camel/websocket/jsr356/JSR356Consumer.java
 
b/components/camel-websocket-jsr356/src/main/java/org/apache/camel/websocket/jsr356/JSR356Consumer.java
index 82fdba8..ee43004 100644
--- 
a/components/camel-websocket-jsr356/src/main/java/org/apache/camel/websocket/jsr356/JSR356Consumer.java
+++ 
b/components/camel-websocket-jsr356/src/main/java/org/apache/camel/websocket/jsr356/JSR356Consumer.java
@@ -34,7 +34,7 @@ public class JSR356Consumer extends DefaultConsumer {
     private Runnable closeTask;
 
     private final BiConsumer<Session, Object> onMessage = (session, message) 
-> {
-        final Exchange exchange = getEndpoint().createExchange();
+        final Exchange exchange = createExchange(true);
         exchange.getIn().setHeader(JSR356Constants.SESSION, session);
         exchange.getIn().setBody(message);
         getAsyncProcessor().process(exchange, doneSync -> {
diff --git 
a/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketConsumer.java
 
b/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketConsumer.java
index 90cb62f..80a5f31 100644
--- 
a/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketConsumer.java
+++ 
b/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketConsumer.java
@@ -65,7 +65,7 @@ public class WebsocketConsumer extends DefaultConsumer 
implements WebsocketProdu
             final Object message,
             final InetSocketAddress remote) {
 
-        final Exchange exchange = getEndpoint().createExchange();
+        final Exchange exchange = createExchange(true);
 
         // set header and body
         exchange.getIn().setHeader(WebsocketConstants.REMOTE_ADDRESS, remote);
diff --git 
a/components/camel-wordpress/src/main/java/org/apache/camel/component/wordpress/consumer/AbstractWordpressConsumer.java
 
b/components/camel-wordpress/src/main/java/org/apache/camel/component/wordpress/consumer/AbstractWordpressConsumer.java
index c579fc5..9f403a7 100644
--- 
a/components/camel-wordpress/src/main/java/org/apache/camel/component/wordpress/consumer/AbstractWordpressConsumer.java
+++ 
b/components/camel-wordpress/src/main/java/org/apache/camel/component/wordpress/consumer/AbstractWordpressConsumer.java
@@ -64,26 +64,23 @@ public abstract class AbstractWordpressConsumer extends 
ScheduledPollConsumer {
      * @param configuration the endpoint configuration
      */
     protected void configureService(WordpressConfiguration configuration) {
-
+        // noop
     }
 
     @Override
     protected abstract int poll() throws Exception;
 
-    /**
-     * Message processor
-     * 
-     * @param result
-     */
     protected final void process(final Object result) {
-        Exchange exchange = getEndpoint().createExchange();
+        Exchange exchange = createExchange(false);
         try {
             exchange.getIn().setBody(result);
             getProcessor().process(exchange);
         } catch (Exception e) {
-            if (exchange.getException() != null) {
-                getExceptionHandler().handleException("Error processing 
exchange", exchange, exchange.getException());
-            }
+            exchange.setException(e);
+        }
+        if (exchange.getException() != null) {
+            getExceptionHandler().handleException("Error processing exchange", 
exchange, exchange.getException());
         }
+        releaseExchange(exchange, false);
     }
 }

Reply via email to