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

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

commit e8e531daaab0d606fe8e0b5b9993fef88281590b
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Sat Feb 24 10:00:53 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 | 16 ++++++++++++++++
 .../java/org/apache/camel/impl/engine/DefaultRoute.java  | 15 +++++++++++++++
 .../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 +
 10 files changed, 69 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..d247d02240a 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";
@@ -70,6 +71,21 @@ public interface Route extends RuntimeConfiguration {
      */
     boolean isCustomId();
 
+    /**
+     * Whether this route is a Rest DSL route.
+     */
+    boolean isCreatedByRestDsl();
+
+    /**
+     * Whether this route was created from a route template (or a Kamelet).
+     */
+    boolean isCreatedByRouteTemplate();
+
+    /**
+     * Whether this route was created from a Kamelet.
+     */
+    boolean isCreatedByKamelet();
+
     /**
      * Gets the route group
      *
diff --git 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultRoute.java
 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultRoute.java
index 1e90f04be21..eab52da2dfd 100644
--- 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultRoute.java
+++ 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultRoute.java
@@ -141,6 +141,21 @@ public class DefaultRoute extends ServiceSupport 
implements Route {
         return "true".equals(properties.get(Route.CUSTOM_ID_PROPERTY));
     }
 
+    @Override
+    public boolean isCreatedByRestDsl() {
+        return "true".equals(properties.get(Route.REST_PROPERTY));
+    }
+
+    @Override
+    public boolean isCreatedByRouteTemplate() {
+        return "true".equals(properties.get(Route.TEMPLATE_PROPERTY));
+    }
+
+    @Override
+    public boolean isCreatedByKamelet() {
+        return "true".equals(properties.get(Route.KAMELET_PROPERTY));
+    }
+
     @Override
     public String getGroup() {
         return (String) properties.get(Route.GROUP_PROPERTY);
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());

Reply via email to