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
The following commit(s) were added to refs/heads/master by this push: new 7507f55 CAMEL-16298: camel-core - pollEnrich with endpoint-dsl should use EndpointConsumerBuilder 7507f55 is described below commit 7507f556c1bddffa9cc4249609fc96a4217865f2 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Wed Mar 3 17:39:30 2021 +0100 CAMEL-16298: camel-core - pollEnrich with endpoint-dsl should use EndpointConsumerBuilder --- .../camel/builder/EndpointConsumerBuilder.java | 12 ++++++++++ .../apache/camel/model/ProcessorDefinition.java | 21 ++++++++-------- ...xpressionTest.java => AwsS3PollEnrichTest.java} | 28 ++++++++++------------ .../SedaPollEnrichSimpleExpressionTest.java | 4 +++- 4 files changed, 39 insertions(+), 26 deletions(-) diff --git a/core/camel-core-model/src/main/java/org/apache/camel/builder/EndpointConsumerBuilder.java b/core/camel-core-model/src/main/java/org/apache/camel/builder/EndpointConsumerBuilder.java index aef4f28..9a273ff 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/builder/EndpointConsumerBuilder.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/builder/EndpointConsumerBuilder.java @@ -18,7 +18,9 @@ package org.apache.camel.builder; import java.util.Map; +import org.apache.camel.CamelContext; import org.apache.camel.EndpointConsumerResolver; +import org.apache.camel.Expression; /** * Type-safe endpoint DSL for building consumer endpoints. @@ -46,4 +48,14 @@ public interface EndpointConsumerBuilder extends EndpointConsumerResolver { */ void doSetMultiValueProperties(String name, String prefix, Map<String, Object> values); + /** + * Builds an expression of this endpoint url. This API is only intended for Camel internally. + */ + Expression expr(); + + /** + * Builds a dynamic expression of this endpoint url. This API is only intended for Camel internally. + */ + Expression expr(CamelContext camelContext); + } diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinition.java index 73413f8..25479ee 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinition.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinition.java @@ -43,6 +43,7 @@ import org.apache.camel.LoggingLevel; import org.apache.camel.Predicate; import org.apache.camel.Processor; import org.apache.camel.builder.DataFormatClause; +import org.apache.camel.builder.EndpointConsumerBuilder; import org.apache.camel.builder.EndpointProducerBuilder; import org.apache.camel.builder.EnrichClause; import org.apache.camel.builder.ExpressionBuilder; @@ -3176,7 +3177,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type> * @return the builder * @see org.apache.camel.processor.PollEnricher */ - public Type pollEnrich(EndpointProducerBuilder resourceUri) { + public Type pollEnrich(EndpointConsumerBuilder resourceUri) { return pollEnrich(resourceUri.expr(), -1, (String) null, false); } @@ -3196,7 +3197,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type> * @return the builder * @see org.apache.camel.processor.PollEnricher */ - public Type pollEnrich(EndpointProducerBuilder resourceUri, AggregationStrategy aggregationStrategy) { + public Type pollEnrich(EndpointConsumerBuilder resourceUri, AggregationStrategy aggregationStrategy) { return pollEnrich(resourceUri, -1, aggregationStrategy); } @@ -3218,7 +3219,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type> * @return the builder * @see org.apache.camel.processor.PollEnricher */ - public Type pollEnrich(EndpointProducerBuilder resourceUri, long timeout, AggregationStrategy aggregationStrategy) { + public Type pollEnrich(EndpointConsumerBuilder resourceUri, long timeout, AggregationStrategy aggregationStrategy) { return pollEnrich(resourceUri, timeout, aggregationStrategy, false); } @@ -3240,7 +3241,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type> * @return the builder * @see org.apache.camel.processor.PollEnricher */ - public Type pollEnrich(EndpointProducerBuilder resourceUri, long timeout, String aggregationStrategyRef) { + public Type pollEnrich(EndpointConsumerBuilder resourceUri, long timeout, String aggregationStrategyRef) { return pollEnrich(resourceUri, timeout, aggregationStrategyRef, false); } @@ -3279,7 +3280,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type> * additional data obtained from a <code>resourceUri</code> and with an aggregation strategy created using a fluent * builder using a {@link org.apache.camel.PollingConsumer} to poll the endpoint. */ - public EnrichClause<ProcessorDefinition<Type>> pollEnrichWith(EndpointProducerBuilder resourceUri) { + public EnrichClause<ProcessorDefinition<Type>> pollEnrichWith(EndpointConsumerBuilder resourceUri) { return pollEnrichWith(resourceUri, -1); } @@ -3288,7 +3289,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type> * additional data obtained from a <code>resourceUri</code> and with an aggregation strategy created using a fluent * builder using a {@link org.apache.camel.PollingConsumer} to poll the endpoint. */ - public EnrichClause<ProcessorDefinition<Type>> pollEnrichWith(EndpointProducerBuilder resourceUri, long timeout) { + public EnrichClause<ProcessorDefinition<Type>> pollEnrichWith(EndpointConsumerBuilder resourceUri, long timeout) { return pollEnrichWith(resourceUri, timeout, false); } @@ -3298,7 +3299,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type> * builder using a {@link org.apache.camel.PollingConsumer} to poll the endpoint. */ public EnrichClause<ProcessorDefinition<Type>> pollEnrichWith( - EndpointProducerBuilder resourceUri, long timeout, boolean aggregateOnException) { + EndpointConsumerBuilder resourceUri, long timeout, boolean aggregateOnException) { EnrichClause<ProcessorDefinition<Type>> clause = new EnrichClause<>(this); pollEnrich(resourceUri, timeout, clause, aggregateOnException); return clause; @@ -3400,7 +3401,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type> * @see org.apache.camel.processor.PollEnricher */ public Type pollEnrich( - @AsEndpointUri EndpointProducerBuilder resourceUri, long timeout, AggregationStrategy aggregationStrategy, + @AsEndpointUri EndpointConsumerBuilder resourceUri, long timeout, AggregationStrategy aggregationStrategy, boolean aggregateOnException) { return pollEnrich(resourceUri.expr(), timeout, aggregationStrategy, aggregateOnException); } @@ -3427,7 +3428,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type> * @see org.apache.camel.processor.PollEnricher */ public Type pollEnrich( - @AsEndpointUri EndpointProducerBuilder resourceUri, long timeout, String aggregationStrategyRef, + @AsEndpointUri EndpointConsumerBuilder resourceUri, long timeout, String aggregationStrategyRef, boolean aggregateOnException) { return pollEnrich(resourceUri.expr(), timeout, aggregationStrategyRef, aggregateOnException); } @@ -3449,7 +3450,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type> * @return the builder * @see org.apache.camel.processor.PollEnricher */ - public Type pollEnrich(@AsEndpointUri EndpointProducerBuilder resourceUri, long timeout) { + public Type pollEnrich(@AsEndpointUri EndpointConsumerBuilder resourceUri, long timeout) { return pollEnrich(resourceUri, timeout, (String) null); } diff --git a/core/camel-endpointdsl/src/test/java/org/apache/camel/builder/endpoint/SedaPollEnrichSimpleExpressionTest.java b/core/camel-endpointdsl/src/test/java/org/apache/camel/builder/endpoint/AwsS3PollEnrichTest.java similarity index 60% copy from core/camel-endpointdsl/src/test/java/org/apache/camel/builder/endpoint/SedaPollEnrichSimpleExpressionTest.java copy to core/camel-endpointdsl/src/test/java/org/apache/camel/builder/endpoint/AwsS3PollEnrichTest.java index 942986b..f944893 100644 --- a/core/camel-endpointdsl/src/test/java/org/apache/camel/builder/endpoint/SedaPollEnrichSimpleExpressionTest.java +++ b/core/camel-endpointdsl/src/test/java/org/apache/camel/builder/endpoint/AwsS3PollEnrichTest.java @@ -16,31 +16,29 @@ */ package org.apache.camel.builder.endpoint; -import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.test.junit5.CamelTestSupport; import org.junit.jupiter.api.Test; -public class SedaPollEnrichSimpleExpressionTest extends CamelTestSupport { +public class AwsS3PollEnrichTest extends CamelTestSupport { @Override - protected RouteBuilder createRouteBuilder() throws Exception { - return new EndpointRouteBuilder() { - @Override - public void configure() throws Exception { - from(direct("start")).pollEnrich(seda("${exchangeProperty.whereFrom}").timeout(1000)).to("mock:result"); - } - }; + public boolean isUseRouteBuilder() { + return false; } @Test public void test() throws Exception { - MockEndpoint resultEndpoint = getMockEndpoint("mock:result"); - resultEndpoint.expectedBodiesReceived("Hello World"); + context.addRoutes(new EndpointRouteBuilder() { + @Override + public void configure() throws Exception { + from("direct:start") + .pollEnrich(aws2S3("test-bucket").fileName("${body}")) + .to("mock:result"); - template.sendBody("seda:cheese", "Hello World"); - template.sendBodyAndProperty("direct:start", "Empty", "whereFrom", "cheese"); + } + }); + context.start(); - assertMockEndpointsSatisfied(); + context.stop(); } } diff --git a/core/camel-endpointdsl/src/test/java/org/apache/camel/builder/endpoint/SedaPollEnrichSimpleExpressionTest.java b/core/camel-endpointdsl/src/test/java/org/apache/camel/builder/endpoint/SedaPollEnrichSimpleExpressionTest.java index 942986b..beaefb8 100644 --- a/core/camel-endpointdsl/src/test/java/org/apache/camel/builder/endpoint/SedaPollEnrichSimpleExpressionTest.java +++ b/core/camel-endpointdsl/src/test/java/org/apache/camel/builder/endpoint/SedaPollEnrichSimpleExpressionTest.java @@ -28,7 +28,9 @@ public class SedaPollEnrichSimpleExpressionTest extends CamelTestSupport { return new EndpointRouteBuilder() { @Override public void configure() throws Exception { - from(direct("start")).pollEnrich(seda("${exchangeProperty.whereFrom}").timeout(1000)).to("mock:result"); + from(direct("start")) + .pollEnrich(seda("${exchangeProperty.whereFrom}").concurrentConsumers(1), 1000) + .to("mock:result"); } }; }