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

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


The following commit(s) were added to refs/heads/main by this push:
     new 4795374ef5d CAMEL-21511: camel-jbang - camel transform route with 
rest-dsl should not inline routes
4795374ef5d is described below

commit 4795374ef5d3f172ca9152d75f0b6402843cb34a
Author: Claus Ibsen <[email protected]>
AuthorDate: Fri Dec 6 13:38:34 2024 +0100

    CAMEL-21511: camel-jbang - camel transform route with rest-dsl should not 
inline routes
---
 .../camel/impl/DefaultDumpRoutesStrategy.java      | 171 +++++++++++----------
 .../org/apache/camel/processor/ContractAdvice.java |   4 -
 .../org/apache/camel/reifier/RouteReifier.java     |   9 +-
 .../java/org/apache/camel/main/KameletMain.java    |   2 +
 4 files changed, 95 insertions(+), 91 deletions(-)

diff --git 
a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultDumpRoutesStrategy.java
 
b/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultDumpRoutesStrategy.java
index 652f09a09ae..06b52e63da8 100644
--- 
a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultDumpRoutesStrategy.java
+++ 
b/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultDumpRoutesStrategy.java
@@ -223,34 +223,30 @@ public class DefaultDumpRoutesStrategy extends 
ServiceSupport implements DumpRou
             }
         }
 
-        if (include.contains("*") || include.contains("all") || 
include.contains("routes")) {
-            int size = model.getRouteDefinitions().size();
+        if (include.contains("*") || include.contains("all") || 
include.contains("rests")) {
+            int size = model.getRestDefinitions().size();
             if (size > 0) {
-                Map<Resource, RoutesDefinition> groups = new LinkedHashMap<>();
-                for (RouteDefinition route : model.getRouteDefinitions()) {
-                    if ((route.isRest() != null && route.isRest()) || 
(route.isTemplate() != null && route.isTemplate())) {
-                        // skip routes that are rest/templates
-                        continue;
-                    }
-                    Resource res = route.getResource();
+                Map<Resource, RestsDefinition> groups = new LinkedHashMap<>();
+                for (RestDefinition rest : model.getRestDefinitions()) {
+                    Resource res = rest.getResource();
                     if (res == null) {
                         res = dummy;
                     }
-                    RoutesDefinition routes = groups.computeIfAbsent(res, 
resource -> new RoutesDefinition());
-                    routes.getRoutes().add(route);
+                    RestsDefinition rests = groups.computeIfAbsent(res, 
resource -> new RestsDefinition());
+                    rests.getRests().add(rest);
                 }
                 StringBuilder sbLog = new StringBuilder();
-                for (Map.Entry<Resource, RoutesDefinition> entry : 
groups.entrySet()) {
-                    RoutesDefinition def = entry.getValue();
+                for (Map.Entry<Resource, RestsDefinition> entry : 
groups.entrySet()) {
+                    RestsDefinition def = entry.getValue();
                     Resource resource = entry.getKey();
 
                     StringBuilder sbLocal = new StringBuilder();
-                    doDumpYaml(camelContext, def, resource == dummy ? null : 
resource, dumper, "routes", sbLocal, sbLog);
+                    doDumpYaml(camelContext, def, resource == dummy ? null : 
resource, dumper, "rests", sbLocal, sbLog);
                     // dump each resource into its own file
-                    doDumpToDirectory(resource, sbLocal, "routes", "yaml", 
files);
+                    doDumpToDirectory(resource, sbLocal, "rests", "yaml", 
files);
                 }
                 if (!sbLog.isEmpty() && log) {
-                    LOG.info("Dumping {} routes as YAML", size);
+                    LOG.info("Dumping {} rests as YAML", size);
                     LOG.info("{}", sbLog);
                 }
             }
@@ -288,65 +284,70 @@ public class DefaultDumpRoutesStrategy extends 
ServiceSupport implements DumpRou
             }
         }
 
-        if (include.contains("*") || include.contains("all") || 
include.contains("rests")) {
-            int size = model.getRestDefinitions().size();
+        if (include.contains("*") || include.contains("all") || 
include.contains("routeTemplates")
+                || include.contains("route-templates")) {
+            int size = model.getRouteTemplateDefinitions().size();
             if (size > 0) {
-                Map<Resource, RestsDefinition> groups = new LinkedHashMap<>();
-                for (RestDefinition rest : model.getRestDefinitions()) {
-                    Resource res = rest.getResource();
+                Map<Resource, RouteTemplatesDefinition> groups = new 
LinkedHashMap<>();
+                for (RouteTemplateDefinition rt : 
model.getRouteTemplateDefinitions()) {
+                    Resource res = rt.getResource();
                     if (res == null) {
                         res = dummy;
                     }
-                    RestsDefinition rests = groups.computeIfAbsent(res, 
resource -> new RestsDefinition());
-                    rests.getRests().add(rest);
+                    RouteTemplatesDefinition rests = 
groups.computeIfAbsent(res, resource -> new RouteTemplatesDefinition());
+                    rests.getRouteTemplates().add(rt);
                 }
                 StringBuilder sbLog = new StringBuilder();
-                for (Map.Entry<Resource, RestsDefinition> entry : 
groups.entrySet()) {
-                    RestsDefinition def = entry.getValue();
+                for (Map.Entry<Resource, RouteTemplatesDefinition> entry : 
groups.entrySet()) {
+                    RouteTemplatesDefinition def = entry.getValue();
                     Resource resource = entry.getKey();
 
                     StringBuilder sbLocal = new StringBuilder();
-                    doDumpYaml(camelContext, def, resource == dummy ? null : 
resource, dumper, "rests", sbLocal, sbLog);
+                    doDumpYaml(camelContext, def, resource == dummy ? null : 
resource, dumper, "route-templates", sbLocal,
+                            sbLog);
                     // dump each resource into its own file
-                    doDumpToDirectory(resource, sbLocal, "rests", "yaml", 
files);
+                    doDumpToDirectory(resource, sbLocal, "route-templates", 
"yaml", files);
                 }
                 if (!sbLog.isEmpty() && log) {
-                    LOG.info("Dumping {} rests as YAML", size);
+                    LOG.info("Dumping {} route-templates as YAML", size);
                     LOG.info("{}", sbLog);
                 }
             }
         }
 
-        if (include.contains("*") || include.contains("all") || 
include.contains("routeTemplates")
-                || include.contains("route-templates")) {
-            int size = model.getRouteTemplateDefinitions().size();
+        if (include.contains("*") || include.contains("all") || 
include.contains("routes")) {
+            int size = model.getRouteDefinitions().size();
             if (size > 0) {
-                Map<Resource, RouteTemplatesDefinition> groups = new 
LinkedHashMap<>();
-                for (RouteTemplateDefinition rt : 
model.getRouteTemplateDefinitions()) {
-                    Resource res = rt.getResource();
+                Map<Resource, RoutesDefinition> groups = new LinkedHashMap<>();
+                for (RouteDefinition route : model.getRouteDefinitions()) {
+                    if ((route.isRest() != null && route.isRest()) || 
(route.isTemplate() != null && route.isTemplate())) {
+                        // skip routes that are rest/templates
+                        continue;
+                    }
+                    Resource res = route.getResource();
                     if (res == null) {
                         res = dummy;
                     }
-                    RouteTemplatesDefinition rests = 
groups.computeIfAbsent(res, resource -> new RouteTemplatesDefinition());
-                    rests.getRouteTemplates().add(rt);
+                    RoutesDefinition routes = groups.computeIfAbsent(res, 
resource -> new RoutesDefinition());
+                    routes.getRoutes().add(route);
                 }
                 StringBuilder sbLog = new StringBuilder();
-                for (Map.Entry<Resource, RouteTemplatesDefinition> entry : 
groups.entrySet()) {
-                    RouteTemplatesDefinition def = entry.getValue();
+                for (Map.Entry<Resource, RoutesDefinition> entry : 
groups.entrySet()) {
+                    RoutesDefinition def = entry.getValue();
                     Resource resource = entry.getKey();
 
                     StringBuilder sbLocal = new StringBuilder();
-                    doDumpYaml(camelContext, def, resource == dummy ? null : 
resource, dumper, "route-templates", sbLocal,
-                            sbLog);
+                    doDumpYaml(camelContext, def, resource == dummy ? null : 
resource, dumper, "routes", sbLocal, sbLog);
                     // dump each resource into its own file
-                    doDumpToDirectory(resource, sbLocal, "route-templates", 
"yaml", files);
+                    doDumpToDirectory(resource, sbLocal, "routes", "yaml", 
files);
                 }
                 if (!sbLog.isEmpty() && log) {
-                    LOG.info("Dumping {} route-templates as YAML", size);
+                    LOG.info("Dumping {} routes as YAML", size);
                     LOG.info("{}", sbLog);
                 }
             }
         }
+
     }
 
     protected void doDumpYaml(
@@ -462,35 +463,30 @@ public class DefaultDumpRoutesStrategy extends 
ServiceSupport implements DumpRou
             }
         }
 
-        if (include.contains("*") || include.contains("all") || 
include.contains("routes")) {
-            int size = model.getRouteDefinitions().size();
+        if (include.contains("*") || include.contains("all") || 
include.contains("rests")) {
+            int size = model.getRestDefinitions().size();
             if (size > 0) {
-                Map<Resource, RoutesDefinition> groups = new LinkedHashMap<>();
-                for (RouteDefinition route : model.getRouteDefinitions()) {
-                    if ((route.isRest() != null && route.isRest()) || 
(route.isTemplate() != null && route.isTemplate())) {
-                        // skip routes that are rest/templates
-                        continue;
-                    }
-                    Resource res = route.getResource();
+                Map<Resource, RestsDefinition> groups = new LinkedHashMap<>();
+                for (RestDefinition rest : model.getRestDefinitions()) {
+                    Resource res = rest.getResource();
                     if (res == null) {
                         res = dummy;
                     }
-                    RoutesDefinition routes = groups.computeIfAbsent(res, 
resource -> new RoutesDefinition());
-                    routes.getRoutes().add(route);
+                    RestsDefinition routes = groups.computeIfAbsent(res, 
resource -> new RestsDefinition());
+                    routes.getRests().add(rest);
                 }
                 StringBuilder sbLog = new StringBuilder();
-                for (Map.Entry<Resource, RoutesDefinition> entry : 
groups.entrySet()) {
-                    RoutesDefinition def = entry.getValue();
+                for (Map.Entry<Resource, RestsDefinition> entry : 
groups.entrySet()) {
+                    RestsDefinition def = entry.getValue();
                     Resource resource = entry.getKey();
 
                     StringBuilder sbLocal = new StringBuilder();
-                    doDumpXml(camelContext, def, resource == dummy ? null : 
resource, dumper, "route", "routes", sbLocal,
-                            sbLog);
+                    doDumpXml(camelContext, def, resource == dummy ? null : 
resource, dumper, "rest", "rests", sbLocal, sbLog);
                     // dump each resource into its own file
-                    doDumpToDirectory(resource, sbLocal, "routes", "xml", 
files);
+                    doDumpToDirectory(resource, sbLocal, "rests", "xml", 
files);
                 }
                 if (!sbLog.isEmpty() && log) {
-                    LOG.info("Dumping {} routes as XML", size);
+                    LOG.info("Dumping {} rests as XML", size);
                     LOG.info("{}", sbLog);
                 }
             }
@@ -529,61 +525,66 @@ public class DefaultDumpRoutesStrategy extends 
ServiceSupport implements DumpRou
             }
         }
 
-        if (include.contains("*") || include.contains("all") || 
include.contains("rests")) {
-            int size = model.getRestDefinitions().size();
+        if (include.contains("*") || include.contains("all") || 
include.contains("routeTemplates")
+                || include.contains("route-templates")) {
+            int size = model.getRouteTemplateDefinitions().size();
             if (size > 0) {
-                Map<Resource, RestsDefinition> groups = new LinkedHashMap<>();
-                for (RestDefinition rest : model.getRestDefinitions()) {
-                    Resource res = rest.getResource();
+                Map<Resource, RouteTemplatesDefinition> groups = new 
LinkedHashMap<>();
+                for (RouteTemplateDefinition rt : 
model.getRouteTemplateDefinitions()) {
+                    Resource res = rt.getResource();
                     if (res == null) {
                         res = dummy;
                     }
-                    RestsDefinition routes = groups.computeIfAbsent(res, 
resource -> new RestsDefinition());
-                    routes.getRests().add(rest);
+                    RouteTemplatesDefinition routes = 
groups.computeIfAbsent(res, resource -> new RouteTemplatesDefinition());
+                    routes.getRouteTemplates().add(rt);
                 }
                 StringBuilder sbLog = new StringBuilder();
-                for (Map.Entry<Resource, RestsDefinition> entry : 
groups.entrySet()) {
-                    RestsDefinition def = entry.getValue();
+                for (Map.Entry<Resource, RouteTemplatesDefinition> entry : 
groups.entrySet()) {
+                    RouteTemplatesDefinition def = entry.getValue();
                     Resource resource = entry.getKey();
 
                     StringBuilder sbLocal = new StringBuilder();
-                    doDumpXml(camelContext, def, resource == dummy ? null : 
resource, dumper, "rest", "rests", sbLocal, sbLog);
+                    doDumpXml(camelContext, def, resource == dummy ? null : 
resource, dumper, "routeTemplate",
+                            "route-templates", sbLocal, sbLog);
                     // dump each resource into its own file
-                    doDumpToDirectory(resource, sbLocal, "rests", "xml", 
files);
+                    doDumpToDirectory(resource, sbLocal, "route-templates", 
"xml", files);
                 }
                 if (!sbLog.isEmpty() && log) {
-                    LOG.info("Dumping {} rests as XML", size);
+                    LOG.info("Dumping {} route-templates as XML", size);
                     LOG.info("{}", sbLog);
                 }
             }
         }
 
-        if (include.contains("*") || include.contains("all") || 
include.contains("routeTemplates")
-                || include.contains("route-templates")) {
-            int size = model.getRouteTemplateDefinitions().size();
+        if (include.contains("*") || include.contains("all") || 
include.contains("routes")) {
+            int size = model.getRouteDefinitions().size();
             if (size > 0) {
-                Map<Resource, RouteTemplatesDefinition> groups = new 
LinkedHashMap<>();
-                for (RouteTemplateDefinition rt : 
model.getRouteTemplateDefinitions()) {
-                    Resource res = rt.getResource();
+                Map<Resource, RoutesDefinition> groups = new LinkedHashMap<>();
+                for (RouteDefinition route : model.getRouteDefinitions()) {
+                    if ((route.isRest() != null && route.isRest()) || 
(route.isTemplate() != null && route.isTemplate())) {
+                        // skip routes that are rest/templates
+                        continue;
+                    }
+                    Resource res = route.getResource();
                     if (res == null) {
                         res = dummy;
                     }
-                    RouteTemplatesDefinition routes = 
groups.computeIfAbsent(res, resource -> new RouteTemplatesDefinition());
-                    routes.getRouteTemplates().add(rt);
+                    RoutesDefinition routes = groups.computeIfAbsent(res, 
resource -> new RoutesDefinition());
+                    routes.getRoutes().add(route);
                 }
                 StringBuilder sbLog = new StringBuilder();
-                for (Map.Entry<Resource, RouteTemplatesDefinition> entry : 
groups.entrySet()) {
-                    RouteTemplatesDefinition def = entry.getValue();
+                for (Map.Entry<Resource, RoutesDefinition> entry : 
groups.entrySet()) {
+                    RoutesDefinition def = entry.getValue();
                     Resource resource = entry.getKey();
 
                     StringBuilder sbLocal = new StringBuilder();
-                    doDumpXml(camelContext, def, resource == dummy ? null : 
resource, dumper, "routeTemplate",
-                            "route-templates", sbLocal, sbLog);
+                    doDumpXml(camelContext, def, resource == dummy ? null : 
resource, dumper, "route", "routes", sbLocal,
+                            sbLog);
                     // dump each resource into its own file
-                    doDumpToDirectory(resource, sbLocal, "route-templates", 
"xml", files);
+                    doDumpToDirectory(resource, sbLocal, "routes", "xml", 
files);
                 }
                 if (!sbLog.isEmpty() && log) {
-                    LOG.info("Dumping {} route-templates as XML", size);
+                    LOG.info("Dumping {} routes as XML", size);
                     LOG.info("{}", sbLog);
                 }
             }
diff --git 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/ContractAdvice.java
 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ContractAdvice.java
index 6d6e698df5e..c6abf5db176 100644
--- 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/ContractAdvice.java
+++ 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/ContractAdvice.java
@@ -182,10 +182,6 @@ public class ContractAdvice implements 
CamelInternalProcessorAdvice<Object> {
         return false;
     }
 
-    private Class<?> getClazz(String type, CamelContext context) throws 
Exception {
-        return context.getClassResolver().resolveMandatoryClass(type);
-    }
-
     private void doValidate(Message message, DataType type) throws 
ValidationException {
         Validator validator = 
message.getExchange().getContext().resolveValidator(type);
         if (validator != null) {
diff --git 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/RouteReifier.java
 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/RouteReifier.java
index 7cd8082735a..57c709f9d85 100644
--- 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/RouteReifier.java
+++ 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/RouteReifier.java
@@ -316,8 +316,13 @@ public class RouteReifier extends 
ProcessorReifier<RouteDefinition> {
         // add advices
         if (definition.getRestBindingDefinition() != null) {
             try {
-                internal.addAdvice(
-                        new RestBindingReifier(route, 
definition.getRestBindingDefinition()).createRestBindingAdvice());
+                // when disabling bean or processor we should also disable 
rest-dsl binding advice
+                boolean disabled
+                        = 
"true".equalsIgnoreCase(route.getCamelContext().getGlobalOption(DISABLE_BEAN_OR_PROCESS_PROCESSORS));
+                if (!disabled) {
+                    internal.addAdvice(
+                            new RestBindingReifier(route, 
definition.getRestBindingDefinition()).createRestBindingAdvice());
+                }
             } catch (Exception e) {
                 throw RuntimeCamelException.wrapRuntimeCamelException(e);
             }
diff --git 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
index fc9c8bbe794..3b24e69b4c3 100644
--- 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
+++ 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
@@ -462,6 +462,8 @@ public class KameletMain extends MainCommandLineSupport {
             
answer.getGlobalOptions().put(ProcessorReifier.DISABLE_BEAN_OR_PROCESS_PROCESSORS,
 "true");
             // stub everything
             this.stubPattern = "*";
+            // turn off inlining routes
+            configure().rest().withInlineRoutes(false);
             blueprintXmlBeansHandler.setTransform(true);
         }
         if (silent) {

Reply via email to