You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2024/02/25 07:16:11 UTC
(camel) 01/19: 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)
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 <cl...@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());