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 cb507a0441fc3d9eb846e79ceb6baabf2bce67e8 Author: Guillaume Nodet <gno...@gmail.com> AuthorDate: Tue Mar 17 06:53:36 2020 +0100 Isolate org.apache.camel.reifier.* packages from model --- .../camel/builder/AdviceWithRouteBuilder.java | 4 +- .../camel/builder/ErrorHandlerBuilderRef.java | 3 ++ .../org/apache/camel/builder/RouteBuilder.java | 30 ------------- .../apache/camel/builder/TransformerBuilder.java | 4 +- .../org/apache/camel/builder/ValidatorBuilder.java | 4 +- .../org/apache/camel/impl/DefaultCamelContext.java | 52 ++++++++++++++++++++++ .../camel/impl/lw/ImmutableCamelContext.java | 29 ++++++++++++ .../org/apache/camel/model/ModelCamelContext.java | 15 +++++++ .../org/apache/camel/model/RouteDefinition.java | 3 +- .../camel/model/language/ExpressionDefinition.java | 10 +++-- .../reifier/errorhandler/ErrorHandlerReifier.java | 3 +- .../DefaultManagementObjectNameStrategy.java | 2 +- 12 files changed, 114 insertions(+), 45 deletions(-) diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/builder/AdviceWithRouteBuilder.java b/core/camel-core-engine/src/main/java/org/apache/camel/builder/AdviceWithRouteBuilder.java index 8c3bed3..15a0077 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/builder/AdviceWithRouteBuilder.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/builder/AdviceWithRouteBuilder.java @@ -26,7 +26,6 @@ import org.apache.camel.impl.engine.InterceptSendToMockEndpointStrategy; import org.apache.camel.model.ModelCamelContext; import org.apache.camel.model.ProcessorDefinition; import org.apache.camel.model.RouteDefinition; -import org.apache.camel.reifier.RouteReifier; import org.apache.camel.support.EndpointHelper; import org.apache.camel.support.PatternHelper; import org.apache.camel.util.ObjectHelper; @@ -89,8 +88,7 @@ public abstract class AdviceWithRouteBuilder extends RouteBuilder { */ public static RouteDefinition adviceWith(CamelContext camelContext, Object routeId, ThrowingConsumer<AdviceWithRouteBuilder, Exception> builder) throws Exception { RouteDefinition rd = findRouteDefinition(camelContext, routeId); - - return RouteReifier.adviceWith(rd, camelContext, new AdviceWithRouteBuilder() { + return camelContext.adapt(ModelCamelContext.class).adviceWith(rd, new AdviceWithRouteBuilder() { @Override public void configure() throws Exception { builder.accept(this); diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderRef.java b/core/camel-core-engine/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderRef.java index 0a7a6bc..b3a6806 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderRef.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderRef.java @@ -21,6 +21,9 @@ package org.apache.camel.builder; * reference */ public class ErrorHandlerBuilderRef extends ErrorHandlerBuilderSupport { + + public static final String DEFAULT_ERROR_HANDLER_BUILDER = "CamelDefaultErrorHandlerBuilder"; + private final String ref; private boolean supportTransacted; 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 d12a951..f6e4fce 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 @@ -27,9 +27,6 @@ import org.apache.camel.ExtendedCamelContext; import org.apache.camel.Ordered; import org.apache.camel.Route; import org.apache.camel.RoutesBuilder; -import org.apache.camel.ValueHolder; -import org.apache.camel.impl.transformer.TransformerKey; -import org.apache.camel.impl.validator.ValidatorKey; import org.apache.camel.model.FromDefinition; import org.apache.camel.model.InterceptDefinition; import org.apache.camel.model.InterceptFromDefinition; @@ -42,15 +39,8 @@ import org.apache.camel.model.RoutesDefinition; import org.apache.camel.model.rest.RestConfigurationDefinition; import org.apache.camel.model.rest.RestDefinition; import org.apache.camel.model.rest.RestsDefinition; -import org.apache.camel.model.transformer.TransformerDefinition; -import org.apache.camel.model.validator.ValidatorDefinition; -import org.apache.camel.reifier.transformer.TransformerReifier; -import org.apache.camel.reifier.validator.ValidatorReifier; -import org.apache.camel.spi.DataType; import org.apache.camel.spi.PropertiesComponent; import org.apache.camel.spi.RestConfiguration; -import org.apache.camel.spi.Transformer; -import org.apache.camel.spi.Validator; import org.apache.camel.util.ObjectHelper; import org.apache.camel.util.StringHelper; import org.apache.camel.util.function.ThrowingConsumer; @@ -554,16 +544,6 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild for (TransformerBuilder tdb : transformerBuilders) { tdb.configure(camelContext); } - - // create and register transformers on transformer registry - for (TransformerDefinition def : camelContext.getExtension(Model.class).getTransformers()) { - Transformer transformer = TransformerReifier.reifier(camelContext, def).createTransformer(); - camelContext.getTransformerRegistry().put(createTransformerKey(def), transformer); - } - } - - private static ValueHolder<String> createTransformerKey(TransformerDefinition def) { - return ObjectHelper.isNotEmpty(def.getScheme()) ? new TransformerKey(def.getScheme()) : new TransformerKey(new DataType(def.getFromType()), new DataType(def.getToType())); } protected void populateValidators() { @@ -574,16 +554,6 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild for (ValidatorBuilder vb : validatorBuilders) { vb.configure(camelContext); } - - // create and register validators on validator registry - for (ValidatorDefinition def : camelContext.getExtension(Model.class).getValidators()) { - Validator validator = ValidatorReifier.reifier(camelContext, def).createValidator(); - camelContext.getValidatorRegistry().put(createValidatorKey(def), validator); - } - } - - private static ValidatorKey createValidatorKey(ValidatorDefinition def) { - return new ValidatorKey(new DataType(def.getType())); } public RestsDefinition getRestCollection() { diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/builder/TransformerBuilder.java b/core/camel-core-engine/src/main/java/org/apache/camel/builder/TransformerBuilder.java index f309911..d8fe794 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/builder/TransformerBuilder.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/builder/TransformerBuilder.java @@ -18,7 +18,7 @@ package org.apache.camel.builder; import org.apache.camel.CamelContext; import org.apache.camel.model.DataFormatDefinition; -import org.apache.camel.model.Model; +import org.apache.camel.model.ModelCamelContext; import org.apache.camel.model.transformer.CustomTransformerDefinition; import org.apache.camel.model.transformer.DataFormatTransformerDefinition; import org.apache.camel.model.transformer.EndpointTransformerDefinition; @@ -188,6 +188,6 @@ public class TransformerBuilder { // force init of transformer registry camelContext.getTransformerRegistry(); - camelContext.getExtension(Model.class).getTransformers().add(transformer); + camelContext.adapt(ModelCamelContext.class).registerTransformer(transformer); } } diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/builder/ValidatorBuilder.java b/core/camel-core-engine/src/main/java/org/apache/camel/builder/ValidatorBuilder.java index 08d595b..631ba67 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/builder/ValidatorBuilder.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/builder/ValidatorBuilder.java @@ -19,7 +19,7 @@ package org.apache.camel.builder; import org.apache.camel.CamelContext; import org.apache.camel.Expression; import org.apache.camel.Predicate; -import org.apache.camel.model.Model; +import org.apache.camel.model.ModelCamelContext; import org.apache.camel.model.language.ExpressionDefinition; import org.apache.camel.model.validator.CustomValidatorDefinition; import org.apache.camel.model.validator.EndpointValidatorDefinition; @@ -169,6 +169,6 @@ public class ValidatorBuilder { camelContext.getValidatorRegistry(); validator.setType(type); - camelContext.getExtension(Model.class).getValidators().add(validator); + camelContext.adapt(ModelCamelContext.class).registerValidator(validator); } } diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultCamelContext.java b/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultCamelContext.java index 5321734..e4fa1d7 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultCamelContext.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultCamelContext.java @@ -25,14 +25,20 @@ import java.util.Map; import java.util.function.Function; import org.apache.camel.CamelContext; +import org.apache.camel.Expression; import org.apache.camel.FailedToStartRouteException; import org.apache.camel.Navigate; +import org.apache.camel.Predicate; import org.apache.camel.Processor; import org.apache.camel.Route; +import org.apache.camel.ValueHolder; +import org.apache.camel.builder.AdviceWithRouteBuilder; import org.apache.camel.health.HealthCheckRegistry; import org.apache.camel.impl.engine.DefaultRoute; import org.apache.camel.impl.engine.RouteService; import org.apache.camel.impl.engine.SimpleCamelContext; +import org.apache.camel.impl.transformer.TransformerKey; +import org.apache.camel.impl.validator.ValidatorKey; import org.apache.camel.model.DataFormatDefinition; import org.apache.camel.model.HystrixConfigurationDefinition; import org.apache.camel.model.Model; @@ -42,6 +48,7 @@ import org.apache.camel.model.Resilience4jConfigurationDefinition; import org.apache.camel.model.RouteDefinition; import org.apache.camel.model.RouteDefinitionHelper; import org.apache.camel.model.cloud.ServiceCallConfigurationDefinition; +import org.apache.camel.model.language.ExpressionDefinition; import org.apache.camel.model.rest.RestDefinition; import org.apache.camel.model.transformer.TransformerDefinition; import org.apache.camel.model.validator.ValidatorDefinition; @@ -49,12 +56,19 @@ import org.apache.camel.processor.channel.DefaultChannel; import org.apache.camel.reifier.RouteReifier; import org.apache.camel.reifier.dataformat.DataFormatReifier; import org.apache.camel.reifier.errorhandler.ErrorHandlerReifier; +import org.apache.camel.reifier.language.ExpressionReifier; +import org.apache.camel.reifier.transformer.TransformerReifier; +import org.apache.camel.reifier.validator.ValidatorReifier; import org.apache.camel.spi.BeanRepository; import org.apache.camel.spi.DataFormat; +import org.apache.camel.spi.DataType; import org.apache.camel.spi.ExecutorServiceManager; import org.apache.camel.spi.Registry; +import org.apache.camel.spi.Transformer; +import org.apache.camel.spi.Validator; import org.apache.camel.support.CamelContextHelper; import org.apache.camel.support.DefaultRegistry; +import org.apache.camel.util.ObjectHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -404,4 +418,42 @@ public class DefaultCamelContext extends SimpleCamelContext implements ModelCame .createErrorHandler(processor); } + @Override + public Expression createExpression(ExpressionDefinition definition) { + return ExpressionReifier.reifier(this, definition).createExpression(); + } + + @Override + public Predicate createPredicate(ExpressionDefinition definition) { + return ExpressionReifier.reifier(this, definition).createPredicate(); + } + + @Override + public RouteDefinition adviceWith(RouteDefinition definition, AdviceWithRouteBuilder builder) throws Exception { + return RouteReifier.adviceWith(definition, this, builder); + } + + @Override + public void registerValidator(ValidatorDefinition def) { + model.getValidators().add(def); + Validator validator = ValidatorReifier.reifier(this, def).createValidator(); + getValidatorRegistry().put(createValidatorKey(def), validator); + } + + private static ValueHolder<String> createValidatorKey(ValidatorDefinition def) { + return new ValidatorKey(new DataType(def.getType())); + } + + + @Override + public void registerTransformer(TransformerDefinition def) { + model.getTransformers().add(def); + Transformer transformer = TransformerReifier.reifier(this, def).createTransformer(); + getTransformerRegistry().put(createTransformerKey(def), transformer); + } + + private static ValueHolder<String> createTransformerKey(TransformerDefinition def) { + return ObjectHelper.isNotEmpty(def.getScheme()) ? new TransformerKey(def.getScheme()) : new TransformerKey(new DataType(def.getFromType()), new DataType(def.getToType())); + } + } diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/ImmutableCamelContext.java b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/ImmutableCamelContext.java index 2974e2f..62537e4 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/ImmutableCamelContext.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/ImmutableCamelContext.java @@ -34,10 +34,12 @@ import org.apache.camel.ConsumerTemplate; import org.apache.camel.Endpoint; import org.apache.camel.ErrorHandlerFactory; import org.apache.camel.Experimental; +import org.apache.camel.Expression; import org.apache.camel.ExtendedCamelContext; import org.apache.camel.FluentProducerTemplate; import org.apache.camel.GlobalEndpointConfiguration; import org.apache.camel.NoSuchLanguageException; +import org.apache.camel.Predicate; import org.apache.camel.Processor; import org.apache.camel.ProducerTemplate; import org.apache.camel.Route; @@ -48,6 +50,7 @@ import org.apache.camel.ShutdownRunningTask; import org.apache.camel.StartupListener; import org.apache.camel.TypeConverter; import org.apache.camel.ValueHolder; +import org.apache.camel.builder.AdviceWithRouteBuilder; import org.apache.camel.catalog.RuntimeCamelCatalog; import org.apache.camel.impl.DefaultCamelContext; import org.apache.camel.model.DataFormatDefinition; @@ -57,6 +60,7 @@ import org.apache.camel.model.ProcessorDefinition; import org.apache.camel.model.Resilience4jConfigurationDefinition; import org.apache.camel.model.RouteDefinition; import org.apache.camel.model.cloud.ServiceCallConfigurationDefinition; +import org.apache.camel.model.language.ExpressionDefinition; import org.apache.camel.model.rest.RestDefinition; import org.apache.camel.model.transformer.TransformerDefinition; import org.apache.camel.model.validator.ValidatorDefinition; @@ -1636,6 +1640,31 @@ public class ImmutableCamelContext implements ExtendedCamelContext, CatalogCamel return getModelCamelContext().getRouteFilter(); } + @Override + public Expression createExpression(ExpressionDefinition definition) { + return getModelCamelContext().createExpression(definition); + } + + @Override + public Predicate createPredicate(ExpressionDefinition definition) { + return getModelCamelContext().createPredicate(definition); + } + + @Override + public RouteDefinition adviceWith(RouteDefinition definition, AdviceWithRouteBuilder builder) throws Exception { + return getModelCamelContext().adviceWith(definition, builder); + } + + @Override + public void registerValidator(ValidatorDefinition validator) { + getModelCamelContext().registerValidator(validator); + } + + @Override + public void registerTransformer(TransformerDefinition transformer) { + getModelCamelContext().registerTransformer(transformer); + } + // // Immutable // diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/ModelCamelContext.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/ModelCamelContext.java index ea3eafb..4bf7672 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/model/ModelCamelContext.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/ModelCamelContext.java @@ -19,6 +19,12 @@ package org.apache.camel.model; import java.util.List; import org.apache.camel.CamelContext; +import org.apache.camel.Expression; +import org.apache.camel.Predicate; +import org.apache.camel.builder.AdviceWithRouteBuilder; +import org.apache.camel.model.language.ExpressionDefinition; +import org.apache.camel.model.transformer.TransformerDefinition; +import org.apache.camel.model.validator.ValidatorDefinition; /** * Model level interface for the {@link CamelContext} @@ -32,4 +38,13 @@ public interface ModelCamelContext extends CamelContext, Model { void startRouteDefinitions(List<RouteDefinition> routeDefinitions) throws Exception; + Expression createExpression(ExpressionDefinition definition); + + Predicate createPredicate(ExpressionDefinition definition); + + RouteDefinition adviceWith(RouteDefinition definition, AdviceWithRouteBuilder builder) throws Exception; + + void registerValidator(ValidatorDefinition validator); + + void registerTransformer(TransformerDefinition transformer); } diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/RouteDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/RouteDefinition.java index e7f194c..8968a34 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/model/RouteDefinition.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/RouteDefinition.java @@ -40,7 +40,6 @@ import org.apache.camel.builder.EndpointConsumerBuilder; import org.apache.camel.builder.ErrorHandlerBuilderRef; import org.apache.camel.model.rest.RestBindingDefinition; import org.apache.camel.model.rest.RestDefinition; -import org.apache.camel.reifier.errorhandler.ErrorHandlerReifier; import org.apache.camel.spi.AsEndpointUri; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.RoutePolicy; @@ -938,7 +937,7 @@ public class RouteDefinition extends OutputDefinition<RouteDefinition> implement } // return a reference to the default error handler - return new ErrorHandlerBuilderRef(ErrorHandlerReifier.DEFAULT_ERROR_HANDLER_BUILDER); + return new ErrorHandlerBuilderRef(ErrorHandlerBuilderRef.DEFAULT_ERROR_HANDLER_BUILDER); } public ErrorHandlerFactory getErrorHandlerFactory() { diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java index 6676439..d2326b7 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java @@ -32,7 +32,7 @@ import org.apache.camel.Exchange; import org.apache.camel.Expression; import org.apache.camel.ExpressionFactory; import org.apache.camel.Predicate; -import org.apache.camel.reifier.language.ExpressionReifier; +import org.apache.camel.model.ModelCamelContext; import org.apache.camel.spi.Metadata; import org.apache.camel.util.CollectionStringBuffer; import org.apache.camel.util.ObjectHelper; @@ -192,7 +192,11 @@ public class ExpressionDefinition implements Expression, Predicate, ExpressionFa @Override public Expression createExpression(CamelContext camelContext) { - return ExpressionReifier.reifier(camelContext, this).createExpression(); + return camelContext.adapt(ModelCamelContext.class).createExpression(this); + } + + public Predicate createPredicate(CamelContext camelContext) { + return camelContext.adapt(ModelCamelContext.class).createPredicate(this); } // @@ -215,7 +219,7 @@ public class ExpressionDefinition implements Expression, Predicate, ExpressionFa @Override public boolean matches(Exchange exchange) { if (predicate == null) { - predicate = ExpressionReifier.reifier(exchange.getContext(), this).createPredicate(); + predicate = createPredicate(exchange.getContext()); } ObjectHelper.notNull(predicate, "predicate"); return predicate.matches(exchange); diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/errorhandler/ErrorHandlerReifier.java b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/errorhandler/ErrorHandlerReifier.java index 5a67899..c74447d 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/errorhandler/ErrorHandlerReifier.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/errorhandler/ErrorHandlerReifier.java @@ -52,7 +52,6 @@ import org.apache.camel.util.ObjectHelper; public abstract class ErrorHandlerReifier<T extends ErrorHandlerBuilderSupport> extends AbstractReifier { - public static final String DEFAULT_ERROR_HANDLER_BUILDER = "CamelDefaultErrorHandlerBuilder"; private static final Map<Class<?>, BiFunction<Route, ErrorHandlerFactory, ErrorHandlerReifier<? extends ErrorHandlerFactory>>> ERROR_HANDLERS; static { Map<Class<?>, BiFunction<Route, ErrorHandlerFactory, ErrorHandlerReifier<? extends ErrorHandlerFactory>>> map = new HashMap<>(); @@ -248,7 +247,7 @@ public abstract class ErrorHandlerReifier<T extends ErrorHandlerBuilderSupport> * TransactedErrorHandlerBuilder in camel-spring. */ public static boolean isErrorHandlerFactoryConfigured(String ref) { - return !DEFAULT_ERROR_HANDLER_BUILDER.equals(ref); + return !ErrorHandlerBuilderRef.DEFAULT_ERROR_HANDLER_BUILDER.equals(ref); } public void addExceptionPolicy(ErrorHandlerSupport handlerSupport, OnExceptionDefinition exceptionType) { diff --git a/core/camel-management/src/main/java/org/apache/camel/management/DefaultManagementObjectNameStrategy.java b/core/camel-management/src/main/java/org/apache/camel/management/DefaultManagementObjectNameStrategy.java index e4e69ee..9c7cb3d 100644 --- a/core/camel-management/src/main/java/org/apache/camel/management/DefaultManagementObjectNameStrategy.java +++ b/core/camel-management/src/main/java/org/apache/camel/management/DefaultManagementObjectNameStrategy.java @@ -326,7 +326,7 @@ public class DefaultManagementObjectNameStrategy implements ManagementObjectName if (builder instanceof ErrorHandlerBuilderRef) { builderRef = (ErrorHandlerBuilderRef) builder; // does it refer to a non default error handler then do a 2nd lookup - if (!builderRef.getRef().equals(ErrorHandlerReifier.DEFAULT_ERROR_HANDLER_BUILDER)) { + if (!builderRef.getRef().equals(ErrorHandlerBuilderRef.DEFAULT_ERROR_HANDLER_BUILDER)) { refBuilder = ErrorHandlerReifier.lookupErrorHandlerFactory(route, builderRef.getRef(), false); if (refBuilder != null) { ref = builderRef.getRef();