This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch filter-kamelet in repository https://gitbox.apache.org/repos/asf/camel.git
commit fdddb8df5210afb5ce310886d9092170490c3414 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Thu Feb 22 13:00:17 2024 +0100 CAMEL-18858: camel-core - Mark route as created by Kamelet so we know this, so we can filter out in tooling and whereelse (kamelet is a blackbox) --- .../java/org/apache/camel/component/kamelet/Kamelet.java | 2 ++ core/camel-api/src/main/java/org/apache/camel/Route.java | 1 + .../java/org/apache/camel/model/RouteDefinition.java | 16 +++++++++++++++- .../main/java/org/apache/camel/reifier/RouteReifier.java | 2 ++ .../camel/api/management/mbean/ManagedRouteMBean.java | 6 ++++++ .../org/apache/camel/management/mbean/ManagedRoute.java | 10 ++++++++++ .../java/org/apache/camel/xml/in/ModelParser.java | 1 + .../java/org/apache/camel/xml/out/ModelWriter.java | 1 + .../java/org/apache/camel/yaml/out/ModelWriter.java | 1 + 9 files changed, 39 insertions(+), 1 deletion(-) diff --git a/components/camel-kamelet/src/main/java/org/apache/camel/component/kamelet/Kamelet.java b/components/camel-kamelet/src/main/java/org/apache/camel/component/kamelet/Kamelet.java index bda62f27103..3db8c6f8250 100644 --- a/components/camel-kamelet/src/main/java/org/apache/camel/component/kamelet/Kamelet.java +++ b/components/camel-kamelet/src/main/java/org/apache/camel/component/kamelet/Kamelet.java @@ -130,6 +130,8 @@ public final class Kamelet { ObjectHelper.notNull(rid, PARAM_ROUTE_ID); RouteDefinition def = in.asRouteDefinition(); + // mark this as created from a kamelet + def.setKamelet(true); def.setLocation(in.getLocation()); def.setLineNumber(in.getLineNumber()); def.setId(rid); diff --git a/core/camel-api/src/main/java/org/apache/camel/Route.java b/core/camel-api/src/main/java/org/apache/camel/Route.java index a7d0f0cd054..e44c6263cf6 100644 --- a/core/camel-api/src/main/java/org/apache/camel/Route.java +++ b/core/camel-api/src/main/java/org/apache/camel/Route.java @@ -47,6 +47,7 @@ public interface Route extends RuntimeConfiguration { String NODE_PREFIX_ID_PROPERTY = "nodePrefixId"; String REST_PROPERTY = "rest"; String TEMPLATE_PROPERTY = "template"; + String KAMELET_PROPERTY = "kamelet"; String DESCRIPTION_PROPERTY = "description"; String CONFIGURATION_ID_PROPERTY = "configurationId"; String SUPERVISED = "supervised"; diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinition.java index 7b274a5ef1c..aa78b73fdc4 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinition.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinition.java @@ -86,6 +86,7 @@ public class RouteDefinition extends OutputDefinition<RouteDefinition> private boolean contextScopedErrorHandler = true; private Boolean rest; private Boolean template; + private Boolean kamelet; private RestDefinition restDefinition; private RestBindingDefinition restBindingDefinition; private InputTypeDefinition inputType; @@ -1178,7 +1179,7 @@ public class RouteDefinition extends OutputDefinition<RouteDefinition> } /** - * This route is created from a route template. + * This route is created from a route template (or from a Kamelet). */ public void setTemplate(Boolean template) { this.template = template; @@ -1190,6 +1191,19 @@ public class RouteDefinition extends OutputDefinition<RouteDefinition> return template; } + /** + * This route is created from a Kamelet. + */ + public void setKamelet(Boolean kamelet) { + this.kamelet = kamelet; + } + + @XmlAttribute + @Metadata(label = "advanced") + public Boolean isKamelet() { + return kamelet; + } + public RestDefinition getRestDefinition() { return restDefinition; } 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 31a92c2582e..a41d8cbf34c 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 @@ -395,6 +395,8 @@ public class RouteReifier extends ProcessorReifier<RouteDefinition> { routeProperties.put(Route.REST_PROPERTY, rest); String template = Boolean.toString(definition.isTemplate() != null && definition.isTemplate()); routeProperties.put(Route.TEMPLATE_PROPERTY, template); + String kamelet = Boolean.toString(definition.isKamelet() != null && definition.isKamelet()); + routeProperties.put(Route.KAMELET_PROPERTY, kamelet); if (definition.getAppliedRouteConfigurationIds() != null) { routeProperties.put(Route.CONFIGURATION_ID_PROPERTY, String.join(",", definition.getAppliedRouteConfigurationIds())); diff --git a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java index a431ce16d6a..e22e393b6a5 100644 --- a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java +++ b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java @@ -34,6 +34,12 @@ public interface ManagedRouteMBean extends ManagedPerformanceCounterMBean { @ManagedAttribute(description = "Route Group") String getRouteGroup(); + @ManagedAttribute(description = "Is this route created from a route template (or Kamelet)") + boolean isCreatedByRouteTemplate(); + + @ManagedAttribute(description = "Is this route created from a Kamelet") + boolean isCreatedByKamelet(); + @ManagedAttribute(description = "Route Properties") TabularData getRouteProperties(); diff --git a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java index 3cb8b1581f4..3d46f5f824f 100644 --- a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java +++ b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java @@ -129,6 +129,16 @@ public class ManagedRoute extends ManagedPerformanceCounter implements TimerList return route.getGroup(); } + @Override + public boolean isCreatedByRouteTemplate() { + return "true".equals(route.getProperties().getOrDefault(Route.TEMPLATE_PROPERTY, "false")); + } + + @Override + public boolean isCreatedByKamelet() { + return "true".equals(route.getProperties().getOrDefault(Route.KAMELET_PROPERTY, "false")); + } + @Override public TabularData getRouteProperties() { try { diff --git a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java index 1e3b60f0e2d..a1823324f52 100644 --- a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java +++ b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java @@ -1077,6 +1077,7 @@ public class ModelParser extends BaseParser { case "from": def.setInput(doParseFromDefinition()); break; case "inputType": def.setInputType(doParseInputTypeDefinition()); break; case "outputType": def.setOutputType(doParseOutputTypeDefinition()); break; + case "kamelet": def.setKamelet(Boolean.valueOf(doParseText())); break; case "rest": def.setRest(Boolean.valueOf(doParseText())); break; case "routeProperty": doAdd(doParsePropertyDefinition(), def.getRouteProperties(), def::setRouteProperties); break; case "template": def.setTemplate(Boolean.valueOf(doParseText())); break; diff --git a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/out/ModelWriter.java b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/out/ModelWriter.java index b476ea80af6..4101ef5bc7b 100644 --- a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/out/ModelWriter.java +++ b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/out/ModelWriter.java @@ -2098,6 +2098,7 @@ public class ModelWriter extends BaseWriter { doWriteAttribute("logMask", def.getLogMask()); doWriteAttribute("nodePrefixId", def.getNodePrefixId()); doWriteAttribute("messageHistory", def.getMessageHistory()); + doWriteAttribute("kamelet", toString(def.isKamelet())); doWriteAttribute("autoStartup", def.getAutoStartup()); doWriteAttribute("delayer", def.getDelayer()); doWriteAttribute("group", def.getGroup()); diff --git a/core/camel-yaml-io/src/generated/java/org/apache/camel/yaml/out/ModelWriter.java b/core/camel-yaml-io/src/generated/java/org/apache/camel/yaml/out/ModelWriter.java index d0e72f25c78..16468140df5 100644 --- a/core/camel-yaml-io/src/generated/java/org/apache/camel/yaml/out/ModelWriter.java +++ b/core/camel-yaml-io/src/generated/java/org/apache/camel/yaml/out/ModelWriter.java @@ -2098,6 +2098,7 @@ public class ModelWriter extends BaseWriter { doWriteAttribute("logMask", def.getLogMask()); doWriteAttribute("nodePrefixId", def.getNodePrefixId()); doWriteAttribute("messageHistory", def.getMessageHistory()); + doWriteAttribute("kamelet", toString(def.isKamelet())); doWriteAttribute("autoStartup", def.getAutoStartup()); doWriteAttribute("delayer", def.getDelayer()); doWriteAttribute("group", def.getGroup());