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 7616492cd1256c2e363476e088eace65d7765113 Author: Guillaume Nodet <gno...@gmail.com> AuthorDate: Mon Mar 16 06:59:37 2020 +0100 Move Route.createErrorHandler to ExtendedCamelContext to get rid of the DefaultModelRoute class --- .../org/apache/camel/ExtendedCamelContext.java | 3 ++ .../org/apache/camel/impl/engine/DefaultRoute.java | 3 +- .../camel/impl/engine/SimpleCamelContext.java | 6 ++++ .../org/apache/camel/impl/DefaultCamelContext.java | 8 +++++ .../org/apache/camel/impl/DefaultModelRoute.java | 38 ---------------------- .../camel/impl/lw/ImmutableCamelContext.java | 5 +++ .../impl/lw/RuntimeImmutableCamelContext.java | 6 ++++ .../org/apache/camel/reifier/RouteReifier.java | 3 +- 8 files changed, 31 insertions(+), 41 deletions(-) diff --git a/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java b/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java index 8b53752..a8ef4ea 100644 --- a/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java +++ b/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java @@ -584,4 +584,7 @@ public interface ExtendedCamelContext extends CamelContext { void addRoute(Route route); void removeRoute(Route route); + + Processor createErrorHandler(Route route, Processor processor) throws Exception; + } diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultRoute.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultRoute.java index c280ea1..d464456 100644 --- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultRoute.java +++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultRoute.java @@ -31,6 +31,7 @@ import org.apache.camel.CamelContext; import org.apache.camel.Consumer; import org.apache.camel.Endpoint; import org.apache.camel.ErrorHandlerFactory; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.NamedNode; import org.apache.camel.Navigate; import org.apache.camel.Processor; @@ -109,7 +110,7 @@ public class DefaultRoute extends ServiceSupport implements Route { @Override public Processor createErrorHandler(Processor processor) throws Exception { - throw new UnsupportedOperationException(); + return camelContext.adapt(ExtendedCamelContext.class).createErrorHandler(this, processor); } @Override diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java index e6cd59f..04f71cd 100644 --- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java +++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java @@ -24,6 +24,7 @@ import org.apache.camel.AsyncProcessor; import org.apache.camel.CamelContext; import org.apache.camel.Endpoint; import org.apache.camel.Processor; +import org.apache.camel.Route; import org.apache.camel.TypeConverter; import org.apache.camel.catalog.RuntimeCamelCatalog; import org.apache.camel.health.HealthCheckRegistry; @@ -388,4 +389,9 @@ public class SimpleCamelContext extends AbstractCamelContext { protected ExecutorServiceManager createExecutorServiceManager() { return new BaseExecutorServiceManager(getCamelContextReference()); } + + @Override + public Processor createErrorHandler(Route route, Processor processor) throws Exception { + throw new UnsupportedOperationException(); + } } 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 ba3fe6b..5321734 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 @@ -48,6 +48,7 @@ import org.apache.camel.model.validator.ValidatorDefinition; 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.spi.BeanRepository; import org.apache.camel.spi.DataFormat; import org.apache.camel.spi.ExecutorServiceManager; @@ -396,4 +397,11 @@ public class DefaultCamelContext extends SimpleCamelContext implements ModelCame } } } + + @Override + public Processor createErrorHandler(Route route, Processor processor) throws Exception { + return ErrorHandlerReifier.reifier(route, route.getErrorHandlerFactory()) + .createErrorHandler(processor); + } + } diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultModelRoute.java b/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultModelRoute.java deleted file mode 100644 index aae9095..0000000 --- a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultModelRoute.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.impl; - -import org.apache.camel.CamelContext; -import org.apache.camel.Endpoint; -import org.apache.camel.Processor; -import org.apache.camel.impl.engine.DefaultRoute; -import org.apache.camel.model.RouteDefinition; -import org.apache.camel.reifier.errorhandler.ErrorHandlerReifier; - -public class DefaultModelRoute extends DefaultRoute { - - public DefaultModelRoute(CamelContext camelContext, RouteDefinition definition, String id, - String description, Endpoint endpoint) { - super(camelContext, definition, id, description, endpoint); - } - - @Override - public Processor createErrorHandler(Processor processor) throws Exception { - return ErrorHandlerReifier.reifier(this, getErrorHandlerFactory()) - .createErrorHandler(processor); - } -} 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 f4da70e..2974e2f 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 @@ -1425,6 +1425,11 @@ public class ImmutableCamelContext implements ExtendedCamelContext, CatalogCamel getExtendedCamelContext().removeRoute(route); } + @Override + public Processor createErrorHandler(Route route, Processor processor) throws Exception { + return getExtendedCamelContext().createErrorHandler(route, processor); + } + // // CatalogCamelContext // diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/RuntimeImmutableCamelContext.java b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/RuntimeImmutableCamelContext.java index 47992fd..b397214 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/RuntimeImmutableCamelContext.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/RuntimeImmutableCamelContext.java @@ -1281,6 +1281,12 @@ public class RuntimeImmutableCamelContext implements ExtendedCamelContext, Catal throw new UnsupportedOperationException(); } + @Override + public Processor createErrorHandler(Route route, Processor processor) throws Exception { + // TODO: need to revisit this in order to support dynamic endpoints uri + throw new UnsupportedOperationException(); + } + // // CatalogCamelContext // diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/RouteReifier.java b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/RouteReifier.java index f670c24..ee32355 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/RouteReifier.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/RouteReifier.java @@ -35,7 +35,6 @@ import org.apache.camel.builder.AdviceWithRouteBuilder; import org.apache.camel.builder.AdviceWithTask; import org.apache.camel.builder.EndpointConsumerBuilder; import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.impl.DefaultModelRoute; import org.apache.camel.impl.engine.DefaultRoute; import org.apache.camel.model.Model; import org.apache.camel.model.ProcessorDefinition; @@ -264,7 +263,7 @@ public class RouteReifier extends ProcessorReifier<RouteDefinition> { // create route String id = definition.idOrCreate(camelContext.adapt(ExtendedCamelContext.class).getNodeIdFactory()); String desc = RouteDefinitionHelper.getRouteMessage(definition.toString()); - DefaultRoute route = new DefaultModelRoute(camelContext, definition, id, desc, endpoint); + DefaultRoute route = new DefaultRoute(camelContext, definition, id, desc, endpoint); // configure error handler route.setErrorHandlerFactory(definition.getErrorHandlerFactory());