You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2021/02/24 06:55:28 UTC

[camel] branch exchange-factory updated (d880f83 -> 5d64f60)

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

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


    from d880f83  CAMEL-16222: PooledExchangeFactory experiment
     new 9069f06  CAMEL-16222: PooledExchangeFactory experiment
     new b54a41b  CAMEL-16222: PooledExchangeFactory experiment
     new 5d64f60  CAMEL-16222: PooledExchangeFactory experiment

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../main/java/org/apache/camel/PooledExchange.java | 12 ++++++--
 .../camel/impl/engine/PooledExchangeFactory.java   | 17 +++++++----
 .../camel-main-configuration-metadata.json         |  4 +--
 core/camel-main/src/main/docs/main.adoc            |  4 +--
 .../camel/main/DefaultConfigurationProperties.java | 35 +++++++++++++---------
 .../camel/support/DefaultPooledExchange.java       |  8 ++---
 6 files changed, 48 insertions(+), 32 deletions(-)


[camel] 01/03: CAMEL-16222: PooledExchangeFactory experiment

Posted by da...@apache.org.
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

commit 9069f06cf210813d9500aeeadb51e70b38ce30be
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Feb 24 07:25:06 2021 +0100

    CAMEL-16222: PooledExchangeFactory experiment
---
 .../src/main/java/org/apache/camel/PooledExchange.java    | 12 +++++++++---
 .../apache/camel/impl/engine/PooledExchangeFactory.java   | 15 +++++++++++----
 .../org/apache/camel/support/DefaultPooledExchange.java   |  8 +++-----
 3 files changed, 23 insertions(+), 12 deletions(-)

diff --git a/core/camel-api/src/main/java/org/apache/camel/PooledExchange.java b/core/camel-api/src/main/java/org/apache/camel/PooledExchange.java
index de0ad66..764ed2b 100644
--- a/core/camel-api/src/main/java/org/apache/camel/PooledExchange.java
+++ b/core/camel-api/src/main/java/org/apache/camel/PooledExchange.java
@@ -16,8 +16,6 @@
  */
 package org.apache.camel;
 
-import java.util.function.Function;
-
 import org.apache.camel.spi.ExchangeFactory;
 
 /**
@@ -28,11 +26,19 @@ import org.apache.camel.spi.ExchangeFactory;
 public interface PooledExchange extends ExtendedExchange {
 
     /**
+     * Task to execute when the exchange is done.
+     */
+    @FunctionalInterface
+    interface OnDoneTask {
+        void onDone(Exchange exchange);
+    }
+
+    /**
      * Registers a task to run when this exchange is done.
      * <p/>
      * <b>Important:</b> This API is NOT intended for Camel end users, but used internally by Camel itself.
      */
-    void onDone(Function<Exchange, Boolean> task);
+    void onDone(OnDoneTask task);
 
     /**
      * When the exchange is done being used.
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/PooledExchangeFactory.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/PooledExchangeFactory.java
index 4b228eb0..45237e9 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/PooledExchangeFactory.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/PooledExchangeFactory.java
@@ -42,10 +42,9 @@ import org.slf4j.LoggerFactory;
 public final class PooledExchangeFactory extends ServiceSupport
         implements ExchangeFactory, CamelContextAware, StaticService, NonManagedService {
 
-    // TODO: optimize onDone lambdas as they will be created per instance, and we can use static linked
-
     private static final Logger LOG = LoggerFactory.getLogger(PooledExchangeFactory.class);
 
+    private final ReleaseOnDoneTask onDone = new ReleaseOnDoneTask();
     private final Consumer consumer;
     private final ConcurrentLinkedQueue<Exchange> pool = new ConcurrentLinkedQueue<>();
     private final AtomicLong acquired = new AtomicLong();
@@ -153,7 +152,7 @@ public final class PooledExchangeFactory extends ServiceSupport
     }
 
     protected PooledExchange createPooledExchange(Endpoint fromEndpoint, boolean autoRelease) {
-        PooledExchange answer = null;
+        PooledExchange answer;
         if (fromEndpoint != null) {
             answer = new DefaultPooledExchange(fromEndpoint);
         } else {
@@ -162,7 +161,7 @@ public final class PooledExchangeFactory extends ServiceSupport
         answer.setAutoRelease(autoRelease);
         if (autoRelease) {
             // the consumer will either always be in auto release mode or not, so its safe to initialize the task only once when the exchange is created
-            answer.onDone(this::release);
+            answer.onDone(onDone);
         }
         return answer;
     }
@@ -189,4 +188,12 @@ public final class PooledExchangeFactory extends ServiceSupport
         discarded.set(0);
     }
 
+    private final class ReleaseOnDoneTask implements PooledExchange.OnDoneTask {
+
+        @Override
+        public void onDone(Exchange exchange) {
+            release(exchange);
+        }
+    }
+
 }
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/DefaultPooledExchange.java b/core/camel-support/src/main/java/org/apache/camel/support/DefaultPooledExchange.java
index fc4492f..b13e73b 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/DefaultPooledExchange.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/DefaultPooledExchange.java
@@ -16,8 +16,6 @@
  */
 package org.apache.camel.support;
 
-import java.util.function.Function;
-
 import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.Exchange;
@@ -30,7 +28,7 @@ import org.apache.camel.PooledExchange;
  */
 public final class DefaultPooledExchange extends AbstractExchange implements PooledExchange {
 
-    private Function<Exchange, Boolean> onDone;
+    private OnDoneTask onDone;
     private Class originalInClassType;
     private Message originalOut;
     private final ExchangePattern originalPattern;
@@ -70,7 +68,7 @@ public final class DefaultPooledExchange extends AbstractExchange implements Poo
     }
 
     @Override
-    public void onDone(Function<Exchange, Boolean> task) {
+    public void onDone(OnDoneTask task) {
         this.onDone = task;
     }
 
@@ -113,7 +111,7 @@ public final class DefaultPooledExchange extends AbstractExchange implements Poo
             this.errorHandlerHandled = null;
 
             if (onDone != null) {
-                onDone.apply(this);
+                onDone.onDone(this);
             }
         }
     }


[camel] 02/03: CAMEL-16222: PooledExchangeFactory experiment

Posted by da...@apache.org.
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

commit b54a41bab408eb88570c2a5ddd6bc3ab9e8a2786
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Feb 24 07:28:15 2021 +0100

    CAMEL-16222: PooledExchangeFactory experiment
---
 .../camel/impl/engine/PooledExchangeFactory.java   |  2 --
 .../camel/main/DefaultConfigurationProperties.java | 30 ++++++++++++++--------
 2 files changed, 20 insertions(+), 12 deletions(-)

diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/PooledExchangeFactory.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/PooledExchangeFactory.java
index 45237e9..6bfe639 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/PooledExchangeFactory.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/PooledExchangeFactory.java
@@ -24,7 +24,6 @@ import org.apache.camel.CamelContextAware;
 import org.apache.camel.Consumer;
 import org.apache.camel.Endpoint;
 import org.apache.camel.Exchange;
-import org.apache.camel.Experimental;
 import org.apache.camel.NonManagedService;
 import org.apache.camel.PooledExchange;
 import org.apache.camel.StaticService;
@@ -38,7 +37,6 @@ import org.slf4j.LoggerFactory;
 /**
  * Pooled {@link ExchangeFactory} that reuses {@link Exchange} instance from a pool.
  */
-@Experimental
 public final class PooledExchangeFactory extends ServiceSupport
         implements ExchangeFactory, CamelContextAware, StaticService, NonManagedService {
 
diff --git a/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationProperties.java b/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationProperties.java
index ef780a2..a62096a 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationProperties.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationProperties.java
@@ -16,7 +16,6 @@
  */
 package org.apache.camel.main;
 
-import org.apache.camel.Experimental;
 import org.apache.camel.LoggingLevel;
 import org.apache.camel.ManagementStatisticsLevel;
 import org.apache.camel.StartupSummaryLevel;
@@ -915,37 +914,32 @@ public abstract class DefaultConfigurationProperties<T> {
         this.routesExcludePattern = routesExcludePattern;
     }
 
-    @Experimental
     public boolean isLightweight() {
         return lightweight;
     }
 
     /**
-     * Experimental: Configure the context to be lightweight. This will trigger some optimizations and memory reduction
+     * Configure the context to be lightweight. This will trigger some optimizations and memory reduction
      * options. Lightweight context have some limitations. At this moment, dynamic endpoint destinations are not
      * supported.
      */
-    @Experimental
     public void setLightweight(boolean lightweight) {
         this.lightweight = lightweight;
     }
 
-    @Experimental
     public String getExchangeFactory() {
         return exchangeFactory;
     }
 
     /**
-     * Experimental: Controls whether to pool (reuse) exchanges or create new fresh exchanges (default). Using pooled
+     * Controls whether to pool (reuse) exchanges or create new fresh exchanges (default). Using pooled
      * will reduce JVM garbage collection overhead by avoiding to re-create Exchange instances per message each consumer
      * receives.
      */
-    @Experimental
     public void setExchangeFactory(String exchangeFactory) {
         this.exchangeFactory = exchangeFactory;
     }
 
-    @Experimental
     public boolean isExchangeFactoryStatisticsEnabled() {
         return exchangeFactoryStatisticsEnabled;
     }
@@ -953,7 +947,6 @@ public abstract class DefaultConfigurationProperties<T> {
     /**
      * Configures whether statistics is enabled on exchange factory.
      */
-    @Experimental
     public void setExchangeFactoryStatisticsEnabled(boolean exchangeFactoryStatisticsEnabled) {
         this.exchangeFactoryStatisticsEnabled = exchangeFactoryStatisticsEnabled;
     }
@@ -1808,13 +1801,30 @@ public abstract class DefaultConfigurationProperties<T> {
      * this should only be done on a JVM with a single Camel application (microservice like camel-main, camel-quarkus,
      * camel-spring-boot). As this affects the entire JVM where Camel JARs are on the classpath.
      */
-    @Experimental
     public T withLightweight(boolean lightweight) {
         this.lightweight = lightweight;
         return (T) this;
     }
 
     /**
+     * Controls whether to pool (reuse) exchanges or create new fresh exchanges (default). Using pooled
+     * will reduce JVM garbage collection overhead by avoiding to re-create Exchange instances per message each consumer
+     * receives.
+     */
+    public T withExchangeFactory(String exchangeFactory) {
+        this.exchangeFactory = exchangeFactory;
+        return (T) this;
+    }
+
+    /**
+     * Configures whether statistics is enabled on exchange factory.
+     */
+    public T withExchangeFactoryStatisticsEnabled(boolean exchangeFactoryStatisticsEnabled) {
+        this.exchangeFactoryStatisticsEnabled = exchangeFactoryStatisticsEnabled;
+        return (T) this;
+    }
+
+    /**
      * Sets the logging level used for logging route activity (such as starting and stopping routes). The default
      * logging level is DEBUG.
      */


[camel] 03/03: CAMEL-16222: PooledExchangeFactory experiment

Posted by da...@apache.org.
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

commit 5d64f60d574a6dd3c0bdbdb56f07851f610c3ec5
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Feb 24 07:54:31 2021 +0100

    CAMEL-16222: PooledExchangeFactory experiment
---
 .../META-INF/camel-main-configuration-metadata.json       |  4 ++--
 core/camel-main/src/main/docs/main.adoc                   |  4 ++--
 .../apache/camel/main/DefaultConfigurationProperties.java | 15 ++++++---------
 3 files changed, 10 insertions(+), 13 deletions(-)

diff --git a/core/camel-main/src/generated/resources/META-INF/camel-main-configuration-metadata.json b/core/camel-main/src/generated/resources/META-INF/camel-main-configuration-metadata.json
index 076f94a..6709f97 100644
--- a/core/camel-main/src/generated/resources/META-INF/camel-main-configuration-metadata.json
+++ b/core/camel-main/src/generated/resources/META-INF/camel-main-configuration-metadata.json
@@ -33,7 +33,7 @@
     { "name": "camel.main.endpointBridgeErrorHandler", "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN\/ERROR level and ignored. The default va [...]
     { "name": "camel.main.endpointLazyStartProducer", "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first mes [...]
     { "name": "camel.main.endpointRuntimeStatisticsEnabled", "description": "Sets whether endpoint runtime statistics is enabled (gathers runtime usage of each incoming and outgoing endpoints). The default value is false.", "sourceType": "org.apache.camel.main.DefaultConfigurationProperties", "type": "boolean", "javaType": "boolean" },
-    { "name": "camel.main.exchangeFactory", "description": "Experimental: Controls whether to pool (reuse) exchanges or create new fresh exchanges (default). Using pooled will reduce JVM garbage collection overhead by avoiding to re-create Exchange instances per message each consumer receives.", "sourceType": "org.apache.camel.main.DefaultConfigurationProperties", "type": "string", "javaType": "java.lang.String", "defaultValue": "default", "enum": [ "default", "pooled" ] },
+    { "name": "camel.main.exchangeFactory", "description": "Controls whether to pool (reuse) exchanges or create new fresh exchanges (default). Using pooled will reduce JVM garbage collection overhead by avoiding to re-create Exchange instances per message each consumer receives.", "sourceType": "org.apache.camel.main.DefaultConfigurationProperties", "type": "string", "javaType": "java.lang.String", "defaultValue": "default", "enum": [ "default", "pooled" ] },
     { "name": "camel.main.exchangeFactoryStatisticsEnabled", "description": "Configures whether statistics is enabled on exchange factory.", "sourceType": "org.apache.camel.main.DefaultConfigurationProperties", "type": "boolean", "javaType": "boolean" },
     { "name": "camel.main.fileConfigurations", "description": "Directory to load additional configuration files that contains configuration values that takes precedence over any other configuration. This can be used to refer to files that may have secret configuration that has been mounted on the file system for containers. You can specify a pattern to load from sub directories and a name pattern such as \/var\/app\/secret\/.properties, multiple directories can be separated by comma.", " [...]
     { "name": "camel.main.inflightRepositoryBrowseEnabled", "description": "Sets whether the inflight repository should allow browsing each inflight exchange. This is by default disabled as there is a very slight performance overhead when enabled.", "sourceType": "org.apache.camel.main.DefaultConfigurationProperties", "type": "boolean", "javaType": "boolean" },
@@ -42,7 +42,7 @@
     { "name": "camel.main.jmxEnabled", "description": "Enable JMX in your Camel application.", "sourceType": "org.apache.camel.main.DefaultConfigurationProperties", "type": "boolean", "javaType": "boolean", "defaultValue": true },
     { "name": "camel.main.jmxManagementNamePattern", "description": "The naming pattern for creating the CamelContext JMX management name. The default pattern is #name#", "sourceType": "org.apache.camel.main.DefaultConfigurationProperties", "type": "string", "javaType": "java.lang.String", "defaultValue": "#name#" },
     { "name": "camel.main.jmxManagementStatisticsLevel", "description": "Sets the JMX statistics level, the level can be set to Extended to gather additional information The default value is Default.", "sourceType": "org.apache.camel.main.DefaultConfigurationProperties", "type": "object", "javaType": "org.apache.camel.ManagementStatisticsLevel", "defaultValue": "Default", "enum": [ "Extended", "Default", "RoutesOnly", "Off" ] },
-    { "name": "camel.main.lightweight", "description": "Experimental: Configure the context to be lightweight. This will trigger some optimizations and memory reduction options. Lightweight context have some limitations. At this moment, dynamic endpoint destinations are not supported.", "sourceType": "org.apache.camel.main.DefaultConfigurationProperties", "type": "boolean", "javaType": "boolean" },
+    { "name": "camel.main.lightweight", "description": "Configure the context to be lightweight. This will trigger some optimizations and memory reduction options. Lightweight context have some limitations. At this moment, dynamic endpoint destinations are not supported.", "sourceType": "org.apache.camel.main.DefaultConfigurationProperties", "type": "boolean", "javaType": "boolean" },
     { "name": "camel.main.loadTypeConverters", "description": "Whether to load custom type converters by scanning classpath. This is used for backwards compatibility with Camel 2.x. Its recommended to migrate to use fast type converter loading by setting Converter(loader = true) on your custom type converter classes.", "sourceType": "org.apache.camel.main.DefaultConfigurationProperties", "type": "boolean", "javaType": "boolean" },
     { "name": "camel.main.logDebugMaxChars", "description": "Is used to limit the maximum length of the logging Camel message bodies. If the message body is longer than the limit, the log message is clipped. Use -1 to have unlimited length. Use for example 1000 to log at most 1000 characters.", "sourceType": "org.apache.camel.main.DefaultConfigurationProperties", "type": "integer", "javaType": "int" },
     { "name": "camel.main.logExhaustedMessageBody", "description": "Sets whether to log exhausted message body with message history. Default is false.", "sourceType": "org.apache.camel.main.DefaultConfigurationProperties", "type": "boolean", "javaType": "boolean" },
diff --git a/core/camel-main/src/main/docs/main.adoc b/core/camel-main/src/main/docs/main.adoc
index 9847bb0..38240f0 100644
--- a/core/camel-main/src/main/docs/main.adoc
+++ b/core/camel-main/src/main/docs/main.adoc
@@ -45,7 +45,7 @@ The following table lists all the options:
 | *camel.main.endpointBridgeError{zwsp}Handler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN/ERROR level and ignored. The default value is false. |  | boolean
 | *camel.main.endpointLazyStart{zwsp}Producer* | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed the [...]
 | *camel.main.endpointRuntime{zwsp}StatisticsEnabled* | Sets whether endpoint runtime statistics is enabled (gathers runtime usage of each incoming and outgoing endpoints). The default value is false. |  | boolean
-| *camel.main.exchangeFactory* | Experimental: Controls whether to pool (reuse) exchanges or create new fresh exchanges (default). Using pooled will reduce JVM garbage collection overhead by avoiding to re-create Exchange instances per message each consumer receives. | default | String
+| *camel.main.exchangeFactory* | Controls whether to pool (reuse) exchanges or create new fresh exchanges (default). Using pooled will reduce JVM garbage collection overhead by avoiding to re-create Exchange instances per message each consumer receives. | default | String
 | *camel.main.exchangeFactory{zwsp}StatisticsEnabled* | Configures whether statistics is enabled on exchange factory. |  | boolean
 | *camel.main.fileConfigurations* | Directory to load additional configuration files that contains configuration values that takes precedence over any other configuration. This can be used to refer to files that may have secret configuration that has been mounted on the file system for containers. You can specify a pattern to load from sub directories and a name pattern such as /var/app/secret/.properties, multiple directories can be separated by comma. |  | String
 | *camel.main.inflightRepository{zwsp}BrowseEnabled* | Sets whether the inflight repository should allow browsing each inflight exchange. This is by default disabled as there is a very slight performance overhead when enabled. |  | boolean
@@ -54,7 +54,7 @@ The following table lists all the options:
 | *camel.main.jmxEnabled* | Enable JMX in your Camel application. | true | boolean
 | *camel.main.jmxManagementName{zwsp}Pattern* | The naming pattern for creating the CamelContext JMX management name. The default pattern is #name# | #name# | String
 | *camel.main.jmxManagement{zwsp}StatisticsLevel* | Sets the JMX statistics level, the level can be set to Extended to gather additional information The default value is Default. | Default | ManagementStatisticsLevel
-| *camel.main.lightweight* | Experimental: Configure the context to be lightweight. This will trigger some optimizations and memory reduction options. Lightweight context have some limitations. At this moment, dynamic endpoint destinations are not supported. |  | boolean
+| *camel.main.lightweight* | Configure the context to be lightweight. This will trigger some optimizations and memory reduction options. Lightweight context have some limitations. At this moment, dynamic endpoint destinations are not supported. |  | boolean
 | *camel.main.loadTypeConverters* | Whether to load custom type converters by scanning classpath. This is used for backwards compatibility with Camel 2.x. Its recommended to migrate to use fast type converter loading by setting Converter(loader = true) on your custom type converter classes. |  | boolean
 | *camel.main.logDebugMaxChars* | Is used to limit the maximum length of the logging Camel message bodies. If the message body is longer than the limit, the log message is clipped. Use -1 to have unlimited length. Use for example 1000 to log at most 1000 characters. |  | int
 | *camel.main.logExhaustedMessage{zwsp}Body* | Sets whether to log exhausted message body with message history. Default is false. |  | boolean
diff --git a/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationProperties.java b/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationProperties.java
index a62096a..4b12a76 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationProperties.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationProperties.java
@@ -919,9 +919,8 @@ public abstract class DefaultConfigurationProperties<T> {
     }
 
     /**
-     * Configure the context to be lightweight. This will trigger some optimizations and memory reduction
-     * options. Lightweight context have some limitations. At this moment, dynamic endpoint destinations are not
-     * supported.
+     * Configure the context to be lightweight. This will trigger some optimizations and memory reduction options.
+     * Lightweight context have some limitations. At this moment, dynamic endpoint destinations are not supported.
      */
     public void setLightweight(boolean lightweight) {
         this.lightweight = lightweight;
@@ -932,9 +931,8 @@ public abstract class DefaultConfigurationProperties<T> {
     }
 
     /**
-     * Controls whether to pool (reuse) exchanges or create new fresh exchanges (default). Using pooled
-     * will reduce JVM garbage collection overhead by avoiding to re-create Exchange instances per message each consumer
-     * receives.
+     * Controls whether to pool (reuse) exchanges or create new fresh exchanges (default). Using pooled will reduce JVM
+     * garbage collection overhead by avoiding to re-create Exchange instances per message each consumer receives.
      */
     public void setExchangeFactory(String exchangeFactory) {
         this.exchangeFactory = exchangeFactory;
@@ -1807,9 +1805,8 @@ public abstract class DefaultConfigurationProperties<T> {
     }
 
     /**
-     * Controls whether to pool (reuse) exchanges or create new fresh exchanges (default). Using pooled
-     * will reduce JVM garbage collection overhead by avoiding to re-create Exchange instances per message each consumer
-     * receives.
+     * Controls whether to pool (reuse) exchanges or create new fresh exchanges (default). Using pooled will reduce JVM
+     * garbage collection overhead by avoiding to re-create Exchange instances per message each consumer receives.
      */
     public T withExchangeFactory(String exchangeFactory) {
         this.exchangeFactory = exchangeFactory;