You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gn...@apache.org on 2020/03/25 15:22:59 UTC
[camel] 01/11: Move Route.createErrorHandler to
ExtendedCamelContext to get rid of the DefaultModelRoute class
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 <gn...@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());