This is an automated email from the ASF dual-hosted git repository.

orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 2ff4d248290846dc6d423ab8c13e910100c5b986
Author: Otavio Rodolfo Piske <[email protected]>
AuthorDate: Tue Apr 9 16:55:18 2024 +0200

    (chores) camel-core: cleaned up duplicated code
---
 .../apache/camel/model/RouteDefinitionHelper.java  | 39 ++++++++++++++++++++++
 .../org/apache/camel/model/RoutesDefinition.java   | 31 +++--------------
 .../core/xml/AbstractCamelContextFactoryBean.java  | 31 +++--------------
 3 files changed, 49 insertions(+), 52 deletions(-)

diff --git 
a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinitionHelper.java
 
b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinitionHelper.java
index 5b9f9b81bdf..973ed26d53b 100644
--- 
a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinitionHelper.java
+++ 
b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinitionHelper.java
@@ -24,6 +24,9 @@ import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Properties;
 import java.util.Set;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.function.Consumer;
+import java.util.function.Predicate;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.ErrorHandlerFactory;
@@ -34,6 +37,7 @@ import org.apache.camel.model.rest.VerbDefinition;
 import org.apache.camel.spi.NodeIdFactory;
 import org.apache.camel.support.CamelContextHelper;
 import org.apache.camel.support.EndpointHelper;
+import org.apache.camel.support.PatternHelper;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.URISupport;
 
@@ -794,4 +798,39 @@ public final class RouteDefinitionHelper {
         route = URISupport.sanitizeUri(route);
         return route;
     }
+
+    public static Predicate<RouteConfigurationDefinition> routesByIdOrPattern(
+            RouteDefinition route, String id) {
+        return g -> {
+            if (route.getRouteConfigurationId() != null) {
+                // if the route has a route configuration assigned then use 
pattern matching
+                return PatternHelper.matchPattern(g.getId(), id);
+            } else {
+                // global configurations have no id assigned or is a wildcard
+                return g.getId() == null || g.getId().equals(id);
+            }
+        };
+    }
+
+    public static Consumer<RouteConfigurationDefinition> 
getRouteConfigurationDefinitionConsumer(
+            RouteDefinition route, AtomicReference<ErrorHandlerDefinition> 
gcErrorHandler, List<OnExceptionDefinition> oe,
+            List<InterceptDefinition> icp, List<InterceptFromDefinition> 
ifrom, List<InterceptSendToEndpointDefinition> ito,
+            List<OnCompletionDefinition> oc) {
+        return g -> {
+            // there can only be one global error handler, so override 
previous, meaning
+            // that we will pick the last in the sort (take precedence)
+            if (g.getErrorHandler() != null) {
+                gcErrorHandler.set(g.getErrorHandler());
+            }
+
+            String aid = g.getId() == null ? "<default>" : g.getId();
+            // remember the id that was used on the route
+            route.addAppliedRouteConfigurationId(aid);
+            oe.addAll(g.getOnExceptions());
+            icp.addAll(g.getIntercepts());
+            ifrom.addAll(g.getInterceptFroms());
+            ito.addAll(g.getInterceptSendTos());
+            oc.addAll(g.getOnCompletions());
+        };
+    }
 }
diff --git 
a/core/camel-core-model/src/main/java/org/apache/camel/model/RoutesDefinition.java
 
b/core/camel-core-model/src/main/java/org/apache/camel/model/RoutesDefinition.java
index f67b702dabb..0caa1e9b2b4 100644
--- 
a/core/camel-core-model/src/main/java/org/apache/camel/model/RoutesDefinition.java
+++ 
b/core/camel-core-model/src/main/java/org/apache/camel/model/RoutesDefinition.java
@@ -37,11 +37,13 @@ import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.Resource;
 import org.apache.camel.spi.ResourceAware;
 import org.apache.camel.support.OrderedComparator;
-import org.apache.camel.support.PatternHelper;
 import org.apache.camel.util.OrderedLocationProperties;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static 
org.apache.camel.model.RouteDefinitionHelper.getRouteConfigurationDefinitionConsumer;
+import static org.apache.camel.model.RouteDefinitionHelper.routesByIdOrPattern;
+
 /**
  * A series of Camel routes
  */
@@ -314,31 +316,8 @@ public class RoutesDefinition extends 
OptionalIdentifiedDefinition<RoutesDefinit
                 for (String id : ids) {
                     // sort according to ordered
                     
globalConfigurations.stream().sorted(OrderedComparator.get())
-                            .filter(g -> {
-                                if (route.getRouteConfigurationId() != null) {
-                                    // if the route has a route configuration 
assigned then use pattern matching
-                                    return 
PatternHelper.matchPattern(g.getId(), id);
-                                } else {
-                                    // global configurations have no id 
assigned or is a wildcard
-                                    return g.getId() == null || 
g.getId().equals(id);
-                                }
-                            })
-                            .forEach(g -> {
-                                // there can only be one global error handler, 
so override previous, meaning
-                                // that we will pick the last in the sort 
(take precedence)
-                                if (g.getErrorHandler() != null) {
-                                    gcErrorHandler.set(g.getErrorHandler());
-                                }
-
-                                String aid = g.getId() == null ? "<default>" : 
g.getId();
-                                // remember the id that was used on the route
-                                route.addAppliedRouteConfigurationId(aid);
-                                oe.addAll(g.getOnExceptions());
-                                icp.addAll(g.getIntercepts());
-                                ifrom.addAll(g.getInterceptFroms());
-                                ito.addAll(g.getInterceptSendTos());
-                                oc.addAll(g.getOnCompletions());
-                            });
+                            .filter(routesByIdOrPattern(route, id))
+                            
.forEach(getRouteConfigurationDefinitionConsumer(route, gcErrorHandler, oe, 
icp, ifrom, ito, oc));
                 }
 
                 // set error handler before prepare
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 27dbd15420a..d31086ce978 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
@@ -141,13 +141,15 @@ import org.apache.camel.spi.Validator;
 import org.apache.camel.support.CamelContextHelper;
 import org.apache.camel.support.ObjectHelper;
 import org.apache.camel.support.OrderedComparator;
-import org.apache.camel.support.PatternHelper;
 import org.apache.camel.support.PluginHelper;
 import org.apache.camel.util.StringHelper;
 import org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static 
org.apache.camel.model.RouteDefinitionHelper.getRouteConfigurationDefinitionConsumer;
+import static org.apache.camel.model.RouteDefinitionHelper.routesByIdOrPattern;
+
 /**
  * A factory to create and initialize a {@link CamelContext} and install 
routes either explicitly configured or found by
  * searching the classpath for Java classes which extend {@link 
org.apache.camel.builder.RouteBuilder}.
@@ -632,31 +634,8 @@ public abstract class AbstractCamelContextFactoryBean<T 
extends ModelCamelContex
                     for (String id : ids) {
                         // sort according to ordered
                         
globalConfigurations.stream().sorted(OrderedComparator.get())
-                                .filter(g -> {
-                                    if (route.getRouteConfigurationId() != 
null) {
-                                        // if the route has a route 
configuration assigned then use pattern matching
-                                        return 
PatternHelper.matchPattern(g.getId(), id);
-                                    } else {
-                                        // global configurations have no id 
assigned or is a wildcard
-                                        return g.getId() == null || 
g.getId().equals(id);
-                                    }
-                                })
-                                .forEach(g -> {
-                                    // there can only be one global error 
handler, so override previous, meaning
-                                    // that we will pick the last in the sort 
(take precedence)
-                                    if (g.getErrorHandler() != null) {
-                                        errorHandler.set(g.getErrorHandler());
-                                    }
-
-                                    String aid = g.getId() == null ? 
"<default>" : g.getId();
-                                    // remember the id that was used on the 
route
-                                    route.addAppliedRouteConfigurationId(aid);
-                                    oe.addAll(g.getOnExceptions());
-                                    icp.addAll(g.getIntercepts());
-                                    ifrom.addAll(g.getInterceptFroms());
-                                    ito.addAll(g.getInterceptSendTos());
-                                    oc.addAll(g.getOnCompletions());
-                                });
+                                .filter(routesByIdOrPattern(route, id))
+                                
.forEach(getRouteConfigurationDefinitionConsumer(route, errorHandler, oe, icp, 
ifrom, ito, oc));
                     }
                 }
             }

Reply via email to