This is an automated email from the ASF dual-hosted git repository. gnodet pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit cf948dbabacf5095acd68569dbbeb18aab8f5b48 Author: Guillaume Nodet <gno...@gmail.com> AuthorDate: Mon Feb 10 17:16:07 2020 +0100 Make RouteContext / CamelContext a constructor argument of the reifiers --- .../org/apache/camel/builder/RouteBuilder.java | 2 +- .../org/apache/camel/reifier/DelayReifier.java | 4 ++-- .../apache/camel/reifier/ExpressionReifier.java | 8 +++---- .../org/apache/camel/reifier/FilterReifier.java | 6 ++--- .../org/apache/camel/reifier/ProcessorReifier.java | 3 --- .../org/apache/camel/reifier/ThrottleReifier.java | 2 +- .../java/org/apache/camel/reifier/WhenReifier.java | 2 +- .../reifier/WhenSkipSendToEndpointReifier.java | 6 ++--- .../reifier/validator/CustomValidatorReifier.java | 14 ++++++------ .../validator/EndpointValidatorReifier.java | 10 ++++----- .../validator/PredicateValidatorReifier.java | 10 ++++----- .../camel/reifier/validator/ValidatorReifier.java | 26 ++++++++++++---------- .../core/xml/AbstractCamelContextFactoryBean.java | 2 +- 13 files changed, 46 insertions(+), 49 deletions(-) diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/builder/RouteBuilder.java b/core/camel-core-engine/src/main/java/org/apache/camel/builder/RouteBuilder.java index 4fc6bef..61f2a6a 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/builder/RouteBuilder.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/builder/RouteBuilder.java @@ -600,7 +600,7 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild // create and register validators on validator registry for (ValidatorDefinition def : camelContext.getExtension(Model.class).getValidators()) { - Validator validator = ValidatorReifier.reifier(def).createValidator(camelContext); + Validator validator = ValidatorReifier.reifier(camelContext, def).createValidator(); camelContext.getValidatorRegistry().put(createValidatorKey(def), validator); } } diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/DelayReifier.java b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/DelayReifier.java index 69bcd4f..8109f5b 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/DelayReifier.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/DelayReifier.java @@ -35,7 +35,7 @@ public class DelayReifier extends ExpressionReifier<DelayDefinition> { @Override public Processor createProcessor() throws Exception { Processor childProcessor = this.createChildProcessor(false); - Expression delay = createAbsoluteTimeDelayExpression(routeContext); + Expression delay = createAbsoluteTimeDelayExpression(); boolean async = definition.getAsyncDelayed() == null || Boolean.parseBoolean(definition.getAsyncDelayed()); boolean shutdownThreadPool = willCreateNewThreadPool(definition, async); @@ -48,7 +48,7 @@ public class DelayReifier extends ExpressionReifier<DelayDefinition> { return answer; } - private Expression createAbsoluteTimeDelayExpression(RouteContext routeContext) { + private Expression createAbsoluteTimeDelayExpression() { ExpressionDefinition expr = definition.getExpression(); if (expr != null) { return expr.createExpression(routeContext); diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/ExpressionReifier.java b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/ExpressionReifier.java index c70744e..30772b6 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/ExpressionReifier.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/ExpressionReifier.java @@ -31,22 +31,20 @@ abstract class ExpressionReifier<T extends ExpressionNode> extends ProcessorReif /** * Creates the {@link FilterProcessor} from the expression node. * - * @param routeContext the route context * @return the created {@link FilterProcessor} * @throws Exception is thrown if error creating the processor */ - protected FilterProcessor createFilterProcessor(RouteContext routeContext) throws Exception { + protected FilterProcessor createFilterProcessor() throws Exception { Processor childProcessor = createOutputsProcessor(); - return new FilterProcessor(createPredicate(routeContext), childProcessor); + return new FilterProcessor(createPredicate(), childProcessor); } /** * Creates the {@link Predicate} from the expression node. * - * @param routeContext the route context * @return the created predicate */ - protected Predicate createPredicate(RouteContext routeContext) { + protected Predicate createPredicate() { return definition.getExpression().createPredicate(routeContext); } diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/FilterReifier.java b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/FilterReifier.java index f18fe37..a440805 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/FilterReifier.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/FilterReifier.java @@ -30,14 +30,14 @@ public class FilterReifier extends ExpressionReifier<FilterDefinition> { @Override public FilterProcessor createProcessor() throws Exception { - return createFilterProcessor(routeContext); + return createFilterProcessor(); } @Override - protected FilterProcessor createFilterProcessor(RouteContext routeContext) throws Exception { + protected FilterProcessor createFilterProcessor() throws Exception { // filter EIP should have child outputs Processor childProcessor = this.createChildProcessor(true); - return new FilterProcessor(createPredicate(routeContext), childProcessor); + return new FilterProcessor(createPredicate(), childProcessor); } } diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/ProcessorReifier.java b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/ProcessorReifier.java index 0e0bd5c..cb43e6f 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/ProcessorReifier.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/ProcessorReifier.java @@ -41,7 +41,6 @@ import org.apache.camel.model.DelayDefinition; import org.apache.camel.model.DynamicRouterDefinition; import org.apache.camel.model.EnrichDefinition; import org.apache.camel.model.ExecutorServiceAwareDefinition; -import org.apache.camel.model.ExpressionNode; import org.apache.camel.model.FilterDefinition; import org.apache.camel.model.FinallyDefinition; import org.apache.camel.model.IdempotentConsumerDefinition; @@ -101,7 +100,6 @@ import org.apache.camel.model.WhenDefinition; import org.apache.camel.model.WhenSkipSendToEndpointDefinition; import org.apache.camel.model.WireTapDefinition; import org.apache.camel.model.cloud.ServiceCallDefinition; -import org.apache.camel.model.language.ExpressionDefinition; import org.apache.camel.processor.InterceptEndpointProcessor; import org.apache.camel.processor.Pipeline; import org.apache.camel.processor.channel.DefaultChannel; @@ -370,7 +368,6 @@ public abstract class ProcessorReifier<T extends ProcessorDefinition<?>> extends * <li>if none found, then <tt>null</tt> is returned.</li> * </ul> * - * @param routeContext the route context * @param name name which is appended to the thread name, when the * {@link ExecutorService} is created based * on a {@link org.apache.camel.spi.ThreadPoolProfile}. diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/ThrottleReifier.java b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/ThrottleReifier.java index f4c3dc6..7c69045 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/ThrottleReifier.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/ThrottleReifier.java @@ -66,7 +66,7 @@ public class ThrottleReifier extends ExpressionReifier<ThrottleDefinition> { return answer; } - private Expression createMaxRequestsPerPeriodExpression(RouteContext routeContext) { + private Expression createMaxRequestsPerPeriodExpression() { ExpressionDefinition expr = definition.getExpression(); if (expr != null) { return expr.createExpression(routeContext); diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/WhenReifier.java b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/WhenReifier.java index ce5dc57..53009eb 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/WhenReifier.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/WhenReifier.java @@ -29,6 +29,6 @@ public class WhenReifier extends ExpressionReifier<WhenDefinition> { @Override public FilterProcessor createProcessor() throws Exception { - return createFilterProcessor(routeContext); + return createFilterProcessor(); } } diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/WhenSkipSendToEndpointReifier.java b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/WhenSkipSendToEndpointReifier.java index 334fa91..d1facb2 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/WhenSkipSendToEndpointReifier.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/WhenSkipSendToEndpointReifier.java @@ -31,15 +31,15 @@ public class WhenSkipSendToEndpointReifier extends ExpressionReifier<WhenSkipSen @Override public FilterProcessor createProcessor() throws Exception { - return createFilterProcessor(routeContext); + return createFilterProcessor(); } @Override - protected Predicate createPredicate(RouteContext routeContext) { + protected Predicate createPredicate() { // we need to keep track whether the when matches or not, so delegate // the predicate and add the matches result as a property on the // exchange - final Predicate delegate = super.createPredicate(routeContext); + final Predicate delegate = super.createPredicate(); return new Predicate() { @Override public boolean matches(Exchange exchange) { diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/validator/CustomValidatorReifier.java b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/validator/CustomValidatorReifier.java index 42e612b..bca3380 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/validator/CustomValidatorReifier.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/validator/CustomValidatorReifier.java @@ -23,18 +23,18 @@ import org.apache.camel.spi.Validator; public class CustomValidatorReifier extends ValidatorReifier<CustomValidatorDefinition> { - public CustomValidatorReifier(ValidatorDefinition definition) { - super((CustomValidatorDefinition)definition); + public CustomValidatorReifier(CamelContext camelContext, ValidatorDefinition definition) { + super(camelContext, (CustomValidatorDefinition)definition); } @Override - protected Validator doCreateValidator(CamelContext context) { + protected Validator doCreateValidator() { if (definition.getRef() == null && definition.getClassName() == null) { throw new IllegalArgumentException("'ref' or 'type' must be specified for customValidator"); } Validator validator; if (definition.getRef() != null) { - validator = context.getRegistry().lookupByNameAndType(definition.getRef(), Validator.class); + validator = camelContext.getRegistry().lookupByNameAndType(definition.getRef(), Validator.class); if (validator == null) { throw new IllegalArgumentException("Cannot find validator with ref:" + definition.getRef()); } @@ -42,13 +42,13 @@ public class CustomValidatorReifier extends ValidatorReifier<CustomValidatorDefi throw new IllegalArgumentException(String.format("Validator '%s' is already in use. Please check if duplicate validator exists.", definition.getRef())); } } else { - Class<Validator> validatorClass = context.getClassResolver().resolveClass(definition.getClassName(), Validator.class); + Class<Validator> validatorClass = camelContext.getClassResolver().resolveClass(definition.getClassName(), Validator.class); if (validatorClass == null) { throw new IllegalArgumentException("Cannot find validator class: " + definition.getClassName()); } - validator = context.getInjector().newInstance(validatorClass, false); + validator = camelContext.getInjector().newInstance(validatorClass, false); } - validator.setCamelContext(context); + validator.setCamelContext(camelContext); return validator.setType(definition.getType()); } diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/validator/EndpointValidatorReifier.java b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/validator/EndpointValidatorReifier.java index b8364df..7652bce 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/validator/EndpointValidatorReifier.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/validator/EndpointValidatorReifier.java @@ -27,15 +27,15 @@ import org.apache.camel.spi.Validator; public class EndpointValidatorReifier extends ValidatorReifier<EndpointValidatorDefinition> { - public EndpointValidatorReifier(ValidatorDefinition definition) { - super((EndpointValidatorDefinition)definition); + public EndpointValidatorReifier(CamelContext camelContext, ValidatorDefinition definition) { + super(camelContext, (EndpointValidatorDefinition)definition); } @Override - protected Validator doCreateValidator(CamelContext context) { - Endpoint endpoint = definition.getUri() != null ? context.getEndpoint(definition.getUri()) : context.getRegistry().lookupByNameAndType(definition.getRef(), Endpoint.class); + protected Validator doCreateValidator() { + Endpoint endpoint = definition.getUri() != null ? camelContext.getEndpoint(definition.getUri()) : camelContext.getRegistry().lookupByNameAndType(definition.getRef(), Endpoint.class); SendProcessor processor = new SendProcessor(endpoint, ExchangePattern.InOut); - return new ProcessorValidator(context).setProcessor(processor).setType(definition.getType()); + return new ProcessorValidator(camelContext).setProcessor(processor).setType(definition.getType()); } } diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/validator/PredicateValidatorReifier.java b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/validator/PredicateValidatorReifier.java index 494af80..2c1b7f1 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/validator/PredicateValidatorReifier.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/validator/PredicateValidatorReifier.java @@ -26,15 +26,15 @@ import org.apache.camel.support.processor.PredicateValidatingProcessor; public class PredicateValidatorReifier extends ValidatorReifier<PredicateValidatorDefinition> { - public PredicateValidatorReifier(ValidatorDefinition definition) { - super((PredicateValidatorDefinition)definition); + public PredicateValidatorReifier(CamelContext camelContext, ValidatorDefinition definition) { + super(camelContext, (PredicateValidatorDefinition)definition); } @Override - protected Validator doCreateValidator(CamelContext context) { - Predicate pred = definition.getExpression().createPredicate(context); + protected Validator doCreateValidator() { + Predicate pred = createPredicate(definition.getExpression()); PredicateValidatingProcessor processor = new PredicateValidatingProcessor(pred); - return new ProcessorValidator(context).setProcessor(processor).setType(definition.getType()); + return new ProcessorValidator(camelContext).setProcessor(processor).setType(definition.getType()); } } diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/validator/ValidatorReifier.java b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/validator/ValidatorReifier.java index cc90525..8789f3b 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/validator/ValidatorReifier.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/validator/ValidatorReifier.java @@ -18,20 +18,21 @@ package org.apache.camel.reifier.validator; import java.util.HashMap; import java.util.Map; -import java.util.function.Function; +import java.util.function.BiFunction; import org.apache.camel.CamelContext; import org.apache.camel.model.validator.CustomValidatorDefinition; import org.apache.camel.model.validator.EndpointValidatorDefinition; import org.apache.camel.model.validator.PredicateValidatorDefinition; import org.apache.camel.model.validator.ValidatorDefinition; +import org.apache.camel.reifier.AbstractReifier; import org.apache.camel.spi.Validator; -public abstract class ValidatorReifier<T> { +public abstract class ValidatorReifier<T> extends AbstractReifier { - private static final Map<Class<?>, Function<ValidatorDefinition, ValidatorReifier<? extends ValidatorDefinition>>> VALIDATORS; + private static final Map<Class<?>, BiFunction<CamelContext, ValidatorDefinition, ValidatorReifier<? extends ValidatorDefinition>>> VALIDATORS; static { - Map<Class<?>, Function<ValidatorDefinition, ValidatorReifier<? extends ValidatorDefinition>>> map = new HashMap<>(); + Map<Class<?>, BiFunction<CamelContext, ValidatorDefinition, ValidatorReifier<? extends ValidatorDefinition>>> map = new HashMap<>(); map.put(CustomValidatorDefinition.class, CustomValidatorReifier::new); map.put(EndpointValidatorDefinition.class, EndpointValidatorReifier::new); map.put(PredicateValidatorDefinition.class, PredicateValidatorReifier::new); @@ -40,26 +41,27 @@ public abstract class ValidatorReifier<T> { protected final T definition; - public ValidatorReifier(T definition) { + public ValidatorReifier(CamelContext camelContext, T definition) { + super(camelContext); this.definition = definition; } - public static void registerReifier(Class<?> processorClass, Function<ValidatorDefinition, ValidatorReifier<? extends ValidatorDefinition>> creator) { + public static void registerReifier(Class<?> processorClass, BiFunction<CamelContext, ValidatorDefinition, ValidatorReifier<? extends ValidatorDefinition>> creator) { VALIDATORS.put(processorClass, creator); } - public static ValidatorReifier<? extends ValidatorDefinition> reifier(ValidatorDefinition definition) { - Function<ValidatorDefinition, ValidatorReifier<? extends ValidatorDefinition>> reifier = VALIDATORS.get(definition.getClass()); + public static ValidatorReifier<? extends ValidatorDefinition> reifier(CamelContext camelContext, ValidatorDefinition definition) { + BiFunction<CamelContext, ValidatorDefinition, ValidatorReifier<? extends ValidatorDefinition>> reifier = VALIDATORS.get(definition.getClass()); if (reifier != null) { - return reifier.apply(definition); + return reifier.apply(camelContext, definition); } throw new IllegalStateException("Unsupported definition: " + definition); } - public Validator createValidator(CamelContext context) { - return doCreateValidator(context); + public Validator createValidator() { + return doCreateValidator(); } - protected abstract Validator doCreateValidator(CamelContext context); + protected abstract Validator doCreateValidator(); } diff --git a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java index 21a6b70..6bce66e 100644 --- a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java +++ b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java @@ -498,7 +498,7 @@ public abstract class AbstractCamelContextFactoryBean<T extends ModelCamelContex if (getValidators() != null) { for (ValidatorDefinition def : getValidators().getValidators()) { // create and register validators on validator registry - Validator validator = ValidatorReifier.reifier(def).createValidator(getContext()); + Validator validator = ValidatorReifier.reifier(getContext(), def).createValidator(); getContext().getValidatorRegistry().put(createValidatorKey(def), validator); } }