You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2023/12/15 11:48:21 UTC

(camel) 02/02: CAMEL-20234: remove the endpoint-based constructor

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

orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit e34e84b10a4aa16953fdb3139c79a1f5d7cafc35
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Wed Dec 13 16:02:36 2023 -0300

    CAMEL-20234: remove the endpoint-based constructor
---
 .../bean/AbstractCamelInvocationHandler.java       |  4 ++--
 .../camel/impl/engine/PooledExchangeFactory.java   |  2 +-
 .../engine/PooledProcessorExchangeFactory.java     |  2 +-
 .../impl/engine/PrototypeExchangeFactory.java      |  2 +-
 .../engine/PrototypeProcessorExchangeFactory.java  |  2 +-
 .../component/dataset/DataSetTestEndpointTest.java |  2 +-
 .../PopulateInitialHeadersFailedIssueTest.java     |  2 +-
 .../component/ApiMethodPropertiesHelperTest.java   |  2 +-
 .../org/apache/camel/support/AbstractExchange.java | 13 -----------
 .../org/apache/camel/support/DefaultEndpoint.java  |  2 +-
 .../org/apache/camel/support/DefaultExchange.java  | 26 +++++++++++-----------
 .../camel/support/DefaultPooledExchange.java       | 23 ++++++++++---------
 12 files changed, 36 insertions(+), 46 deletions(-)

diff --git a/components/camel-bean/src/main/java/org/apache/camel/component/bean/AbstractCamelInvocationHandler.java b/components/camel-bean/src/main/java/org/apache/camel/component/bean/AbstractCamelInvocationHandler.java
index 7f97f7b265d..396c68ee55e 100644
--- a/components/camel-bean/src/main/java/org/apache/camel/component/bean/AbstractCamelInvocationHandler.java
+++ b/components/camel-bean/src/main/java/org/apache/camel/component/bean/AbstractCamelInvocationHandler.java
@@ -97,7 +97,7 @@ public abstract class AbstractCamelInvocationHandler implements InvocationHandle
     @SuppressWarnings("unchecked")
     protected Object invokeProxy(final Method method, final ExchangePattern pattern, Object[] args, boolean binding)
             throws Throwable {
-        final Exchange exchange = new DefaultExchange(endpoint, pattern);
+        final Exchange exchange = DefaultExchange.newFromEndpoint(endpoint, pattern);
 
         //Need to check if there are mutiple arguments and the parameters have no annotations for binding,
         //then use the original bean invocation.
@@ -172,7 +172,7 @@ public abstract class AbstractCamelInvocationHandler implements InvocationHandle
     }
 
     protected Object invokeWithBody(final Method method, Object body, final ExchangePattern pattern) throws Throwable {
-        final Exchange exchange = new DefaultExchange(endpoint, pattern);
+        final Exchange exchange = DefaultExchange.newFromEndpoint(endpoint, pattern);
         exchange.getIn().setBody(body);
 
         return doInvoke(method, exchange);
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 f072adbf0fd..24392c5f280 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
@@ -123,7 +123,7 @@ public final class PooledExchangeFactory extends PrototypeExchangeFactory {
     private PooledExchange createPooledExchange(Endpoint fromEndpoint, boolean autoRelease) {
         PooledExchange answer;
         if (fromEndpoint != null) {
-            answer = new DefaultPooledExchange(fromEndpoint);
+            answer = DefaultPooledExchange.newFromEndpoint(fromEndpoint);
         } else {
             answer = new DefaultPooledExchange(camelContext);
         }
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/PooledProcessorExchangeFactory.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/PooledProcessorExchangeFactory.java
index 2f5b96f8c3d..5faa371bb80 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/PooledProcessorExchangeFactory.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/PooledProcessorExchangeFactory.java
@@ -116,7 +116,7 @@ public class PooledProcessorExchangeFactory extends PrototypeProcessorExchangeFa
         Exchange answer = pool.poll();
         if (answer == null) {
             // create a new exchange as there was no free from the pool
-            answer = new DefaultPooledExchange(fromEndpoint, exchangePattern);
+            answer = DefaultPooledExchange.newFromEndpoint(fromEndpoint, exchangePattern);
             if (statisticsEnabled) {
                 statistics.created.increment();
             }
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/PrototypeExchangeFactory.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/PrototypeExchangeFactory.java
index a09aebf96cc..be8a697c10a 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/PrototypeExchangeFactory.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/PrototypeExchangeFactory.java
@@ -101,7 +101,7 @@ public class PrototypeExchangeFactory extends PooledObjectFactorySupport<Exchang
         if (statisticsEnabled) {
             statistics.created.increment();
         }
-        return new DefaultExchange(fromEndpoint);
+        return DefaultExchange.newFromEndpoint(fromEndpoint);
     }
 
     @Override
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/PrototypeProcessorExchangeFactory.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/PrototypeProcessorExchangeFactory.java
index 65de8f4966f..a8563983c9d 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/PrototypeProcessorExchangeFactory.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/PrototypeProcessorExchangeFactory.java
@@ -92,7 +92,7 @@ public class PrototypeProcessorExchangeFactory extends PooledObjectFactorySuppor
 
     @Override
     public Exchange create(Endpoint fromEndpoint, ExchangePattern exchangePattern) {
-        return new DefaultExchange(fromEndpoint, exchangePattern);
+        return DefaultExchange.newFromEndpoint(fromEndpoint, exchangePattern);
     }
 
     @Override
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/dataset/DataSetTestEndpointTest.java b/core/camel-core/src/test/java/org/apache/camel/component/dataset/DataSetTestEndpointTest.java
index 682dd112d59..2ac8646a72e 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/dataset/DataSetTestEndpointTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/dataset/DataSetTestEndpointTest.java
@@ -82,7 +82,7 @@ public class DataSetTestEndpointTest extends ContextTestSupport {
 
                 @Override
                 public Exchange createExchange(boolean autoRelease) {
-                    return new DefaultExchange(getEndpoint());
+                    return DefaultExchange.newFromEndpoint(getEndpoint());
                 }
 
                 @Override
diff --git a/core/camel-core/src/test/java/org/apache/camel/issues/PopulateInitialHeadersFailedIssueTest.java b/core/camel-core/src/test/java/org/apache/camel/issues/PopulateInitialHeadersFailedIssueTest.java
index 4abb5ddbd1c..abfeabcdf46 100644
--- a/core/camel-core/src/test/java/org/apache/camel/issues/PopulateInitialHeadersFailedIssueTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/issues/PopulateInitialHeadersFailedIssueTest.java
@@ -31,7 +31,7 @@ public class PopulateInitialHeadersFailedIssueTest extends ContextTestSupport {
 
     @Test
     public void testPopulateInitialHeadersFailed() throws Exception {
-        Exchange exchange = new DefaultExchange(context.getEndpoint("seda:start"));
+        Exchange exchange = DefaultExchange.newFromEndpoint(context.getEndpoint("seda:start"));
         exchange.setPattern(ExchangePattern.InOut);
         MyFaultMessage msg = new MyFaultMessage(exchange);
         exchange.setMessage(msg);
diff --git a/core/camel-core/src/test/java/org/apache/camel/support/component/ApiMethodPropertiesHelperTest.java b/core/camel-core/src/test/java/org/apache/camel/support/component/ApiMethodPropertiesHelperTest.java
index 2228bd74c2d..f500191353a 100644
--- a/core/camel-core/src/test/java/org/apache/camel/support/component/ApiMethodPropertiesHelperTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/support/component/ApiMethodPropertiesHelperTest.java
@@ -56,7 +56,7 @@ public class ApiMethodPropertiesHelperTest {
         MockEndpoint mock = new MockEndpoint(null, new MockComponent(camelContext));
 
         final HashMap<String, Object> properties = new HashMap<>();
-        final DefaultExchange exchange = new DefaultExchange(mock);
+        final DefaultExchange exchange = DefaultExchange.newFromEndpoint(mock);
         exchange.getIn().setHeader(PROPERTY_1, VALUE_1);
         exchange.getIn().setHeader(PROPERTY_2, VALUE_2);
         exchange.getIn().setHeader(PROPERTY_3, VALUE_3);
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/AbstractExchange.java b/core/camel-support/src/main/java/org/apache/camel/support/AbstractExchange.java
index 1a5b5e81009..6863605f176 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/AbstractExchange.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/AbstractExchange.java
@@ -133,19 +133,6 @@ abstract class AbstractExchange implements Exchange {
         }
     }
 
-    protected AbstractExchange(Endpoint fromEndpoint) {
-        this(fromEndpoint, fromEndpoint.getExchangePattern());
-    }
-
-    protected AbstractExchange(Endpoint fromEndpoint, ExchangePattern pattern) {
-        this.context = fromEndpoint.getCamelContext();
-        this.pattern = pattern;
-
-        internalProperties = new EnumMap<>(ExchangePropertyKey.class);
-        privateExtension = new ExtendedExchangeExtension(this);
-        privateExtension.setFromEndpoint(fromEndpoint);
-    }
-
     @Override
     public long getCreated() {
         return getClock().getCreated();
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/DefaultEndpoint.java b/core/camel-support/src/main/java/org/apache/camel/support/DefaultEndpoint.java
index 5cac9b3202c..67a4ac5d016 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/DefaultEndpoint.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/DefaultEndpoint.java
@@ -238,7 +238,7 @@ public abstract class DefaultEndpoint extends ServiceSupport implements Endpoint
 
     @Override
     public Exchange createExchange(ExchangePattern pattern) {
-        Exchange answer = new DefaultExchange(this, pattern);
+        Exchange answer = DefaultExchange.newFromEndpoint(this, pattern);
         configureExchange(answer);
         return answer;
     }
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/DefaultExchange.java b/core/camel-support/src/main/java/org/apache/camel/support/DefaultExchange.java
index 51bc0669bdb..77a34dbec27 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/DefaultExchange.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/DefaultExchange.java
@@ -63,16 +63,9 @@ public final class DefaultExchange extends AbstractExchange {
         this.timeInfo = parent.getClock();
     }
 
-    public DefaultExchange(Endpoint fromEndpoint) {
-        super(fromEndpoint);
-
-        this.timeInfo = new MonotonicClock();
-    }
-
-    public DefaultExchange(Endpoint fromEndpoint, ExchangePattern pattern) {
-        super(fromEndpoint, pattern);
-
-        this.timeInfo = new MonotonicClock();
+    @Override
+    public Clock getClock() {
+        return timeInfo;
     }
 
     @Override
@@ -80,8 +73,15 @@ public final class DefaultExchange extends AbstractExchange {
         return new DefaultExchange(this);
     }
 
-    @Override
-    public Clock getClock() {
-        return timeInfo;
+    public static DefaultExchange newFromEndpoint(Endpoint fromEndpoint) {
+        return newFromEndpoint(fromEndpoint, fromEndpoint.getExchangePattern());
+    }
+
+    public static DefaultExchange newFromEndpoint(Endpoint fromEndpoint, ExchangePattern exchangePattern) {
+        DefaultExchange exchange = new DefaultExchange(fromEndpoint.getCamelContext(), exchangePattern);
+
+        exchange.getExchangeExtension().setFromEndpoint(fromEndpoint);
+
+        return 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 cc09cbae7d4..a92fccb94e6 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
@@ -59,22 +59,14 @@ public final class DefaultPooledExchange extends AbstractExchange implements Poo
         }
     }
 
-    public DefaultPooledExchange(Endpoint fromEndpoint) {
-        super(fromEndpoint);
+    public DefaultPooledExchange(CamelContext context, ExchangePattern pattern) {
+        super(context, pattern);
         this.originalPattern = getPattern();
         this.properties = new ConcurrentHashMap<>(8);
 
         this.clock = new ResetableClock();
     }
 
-    public DefaultPooledExchange(Endpoint fromEndpoint, ExchangePattern pattern) {
-        super(fromEndpoint, pattern);
-        this.originalPattern = pattern;
-        this.properties = new ConcurrentHashMap<>(8);
-
-        this.clock = new ResetableClock();
-    }
-
     @Override
     AbstractExchange newCopy() {
         // NOTE: this is the same behavior as done previously from AbstractExchange when returning a copy.
@@ -186,4 +178,15 @@ public final class DefaultPooledExchange extends AbstractExchange implements Poo
         return clock;
     }
 
+    public static DefaultPooledExchange newFromEndpoint(Endpoint fromEndpoint) {
+        return newFromEndpoint(fromEndpoint, fromEndpoint.getExchangePattern());
+    }
+
+    public static DefaultPooledExchange newFromEndpoint(Endpoint fromEndpoint, ExchangePattern exchangePattern) {
+        DefaultPooledExchange exchange = new DefaultPooledExchange(fromEndpoint.getCamelContext(), exchangePattern);
+
+        exchange.getExchangeExtension().setFromEndpoint(fromEndpoint);
+
+        return exchange;
+    }
 }