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/04/25 20:31:57 UTC
[camel] 02/02: CAMEL-15105: move the fromEndpoint instance to the extension
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 19c69d73efc55b608d30f1408eb833939e7f3b0c
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Tue Apr 25 18:53:29 2023 +0200
CAMEL-15105: move the fromEndpoint instance to the extension
---
.../src/main/java/org/apache/camel/ExchangeExtension.java | 5 +++++
.../src/main/java/org/apache/camel/support/AbstractExchange.java | 9 ++++-----
.../java/org/apache/camel/support/ExtendedExchangeExtension.java | 8 +++++++-
3 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/core/camel-api/src/main/java/org/apache/camel/ExchangeExtension.java b/core/camel-api/src/main/java/org/apache/camel/ExchangeExtension.java
index 9ce5fa7a014..8d412185d9f 100644
--- a/core/camel-api/src/main/java/org/apache/camel/ExchangeExtension.java
+++ b/core/camel-api/src/main/java/org/apache/camel/ExchangeExtension.java
@@ -43,6 +43,11 @@ public interface ExchangeExtension {
*/
void setFromEndpoint(Endpoint fromEndpoint);
+ /**
+ * Returns the endpoint which originated this message exchange. See {@link Exchange#getFromEndpoint()} for details.
+ **/
+ Endpoint getFromEndpoint();
+
/**
* Sets the route id which originated this message exchange. This method should typically only be called by the
* internal framework.
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 2ee35f307e8..b6ee98fda89 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
@@ -68,7 +68,6 @@ class AbstractExchange implements Exchange {
String exchangeId;
UnitOfWork unitOfWork;
ExchangePattern pattern;
- Endpoint fromEndpoint;
String fromRouteId;
List<Synchronization> onCompletions;
Boolean externalRedelivered;
@@ -104,29 +103,29 @@ class AbstractExchange implements Exchange {
this.context = parent.getContext();
this.pattern = parent.getPattern();
this.created = parent.getCreated();
- this.fromEndpoint = parent.getFromEndpoint();
this.fromRouteId = parent.getFromRouteId();
this.unitOfWork = parent.getUnitOfWork();
privateExtension = new ExtendedExchangeExtension(this);
+ privateExtension.setFromEndpoint(parent.getFromEndpoint());
}
public AbstractExchange(Endpoint fromEndpoint) {
this.context = fromEndpoint.getCamelContext();
this.pattern = fromEndpoint.getExchangePattern();
this.created = System.currentTimeMillis();
- this.fromEndpoint = fromEndpoint;
privateExtension = new ExtendedExchangeExtension(this);
+ privateExtension.setFromEndpoint(fromEndpoint);
}
public AbstractExchange(Endpoint fromEndpoint, ExchangePattern pattern) {
this.context = fromEndpoint.getCamelContext();
this.pattern = pattern;
this.created = System.currentTimeMillis();
- this.fromEndpoint = fromEndpoint;
privateExtension = new ExtendedExchangeExtension(this);
+ privateExtension.setFromEndpoint(fromEndpoint);
}
@Override
@@ -609,7 +608,7 @@ class AbstractExchange implements Exchange {
@Override
public Endpoint getFromEndpoint() {
- return fromEndpoint;
+ return privateExtension.getFromEndpoint();
}
@Override
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/ExtendedExchangeExtension.java b/core/camel-support/src/main/java/org/apache/camel/support/ExtendedExchangeExtension.java
index ae1934a9dbe..0972267c223 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/ExtendedExchangeExtension.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/ExtendedExchangeExtension.java
@@ -32,6 +32,7 @@ public class ExtendedExchangeExtension implements ExchangeExtension {
private final AbstractExchange exchange;
private Boolean errorHandlerHandled;
private boolean failureHandled;
+ private Endpoint fromEndpoint;
ExtendedExchangeExtension(AbstractExchange exchange) {
this.exchange = exchange;
@@ -39,7 +40,12 @@ public class ExtendedExchangeExtension implements ExchangeExtension {
@Override
public void setFromEndpoint(Endpoint fromEndpoint) {
- this.exchange.fromEndpoint = fromEndpoint;
+ this.fromEndpoint = fromEndpoint;
+ }
+
+ @Override
+ public Endpoint getFromEndpoint() {
+ return fromEndpoint;
}
@Override