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) {