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 2020/01/20 15:29:09 UTC
[camel] 04/06: CAMEL-14419: Enrich EIP - Should wrap in UoW
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 5845e5de2d72844f62c52ba9ced9e6ffb44c6499
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Jan 20 15:15:02 2020 +0100
CAMEL-14419: Enrich EIP - Should wrap in UoW
---
.../TransactedInterceptUsingAdviceWithSendToEndpointTest.java | 2 +-
.../src/main/java/org/apache/camel/processor/Enricher.java | 4 +++-
.../src/main/java/org/apache/camel/reifier/EnrichReifier.java | 8 +++++++-
3 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/components/camel-spring/src/test/java/org/apache/camel/spring/interceptor/TransactedInterceptUsingAdviceWithSendToEndpointTest.java b/components/camel-spring/src/test/java/org/apache/camel/spring/interceptor/TransactedInterceptUsingAdviceWithSendToEndpointTest.java
index 47e4579..46a3248 100644
--- a/components/camel-spring/src/test/java/org/apache/camel/spring/interceptor/TransactedInterceptUsingAdviceWithSendToEndpointTest.java
+++ b/components/camel-spring/src/test/java/org/apache/camel/spring/interceptor/TransactedInterceptUsingAdviceWithSendToEndpointTest.java
@@ -56,7 +56,7 @@ public class TransactedInterceptUsingAdviceWithSendToEndpointTest extends Transa
}
private void addInterceptor(String routeId) throws Exception {
- RouteReifier.adviceWith(context.getRouteDefinitions().get(0), context, new AdviceWithRouteBuilder() {
+ RouteReifier.adviceWith(context.getRouteDefinition(routeId), context, new AdviceWithRouteBuilder() {
@Override
public void configure() throws Exception {
interceptSendToEndpoint("direct:(foo|bar)")
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/Enricher.java b/core/camel-base/src/main/java/org/apache/camel/processor/Enricher.java
index 411b36a..f484d0a 100644
--- a/core/camel-base/src/main/java/org/apache/camel/processor/Enricher.java
+++ b/core/camel-base/src/main/java/org/apache/camel/processor/Enricher.java
@@ -197,7 +197,9 @@ public class Enricher extends AsyncProcessorSupport implements IdAware, RouteIdA
}
// record timing for sending the exchange using the producer
final StopWatch watch = sw;
- AsyncProcessor ap = AsyncProcessorConverterHelper.convert(producer);
+ // make sure to wrap producer in unit of work
+ AsyncProcessor ap = AsyncProcessorConverterHelper.convert(new UnitOfWorkProducer(producer));
+ // wrap in UoW
boolean sync = ap.process(resourceExchange, new AsyncCallback() {
public void done(boolean doneSync) {
// we only have to handle async completion of the routing slip
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/EnrichReifier.java b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/EnrichReifier.java
index 98f4bc4..bd58305 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/EnrichReifier.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/EnrichReifier.java
@@ -22,6 +22,7 @@ import org.apache.camel.Expression;
import org.apache.camel.Processor;
import org.apache.camel.model.EnrichDefinition;
import org.apache.camel.model.ProcessorDefinition;
+import org.apache.camel.processor.CamelInternalProcessor;
import org.apache.camel.processor.Enricher;
import org.apache.camel.processor.aggregate.AggregationStrategyBeanAdapter;
import org.apache.camel.spi.RouteContext;
@@ -34,7 +35,6 @@ public class EnrichReifier extends ExpressionReifier<EnrichDefinition> {
@Override
public Processor createProcessor(RouteContext routeContext) throws Exception {
-
Expression exp = definition.getExpression().createExpression(routeContext);
boolean isShareUnitOfWork = definition.getShareUnitOfWork() != null && Boolean.parseBoolean(definition.getShareUnitOfWork());
boolean isIgnoreInvalidEndpoint = definition.getIgnoreInvalidEndpoint() != null && Boolean.parseBoolean(definition.getIgnoreInvalidEndpoint());
@@ -49,7 +49,13 @@ public class EnrichReifier extends ExpressionReifier<EnrichDefinition> {
if (definition.getAggregateOnException() != null) {
enricher.setAggregateOnException(Boolean.parseBoolean(definition.getAggregateOnException()));
}
+
return enricher;
+
+ // and wrap in unit of work
+// CamelInternalProcessor internal = new CamelInternalProcessor(enricher);
+// internal.addAdvice(new CamelInternalProcessor.UnitOfWorkProcessorAdvice(routeContext));
+// return internal;
}
private AggregationStrategy createAggregationStrategy(RouteContext routeContext) {