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());

Reply via email to