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

davsclaus pushed a commit to branch CAMEL-23595-citrus-metadata
in repository https://gitbox.apache.org/repos/asf/camel-jbang-examples.git

commit 303c48337b35c4ca8996eeec44e380aa86a86f3a
Author: Claus Ibsen <[email protected]>
AuthorDate: Thu May 21 12:03:04 2026 +0200

    CAMEL-23595: Add hasCitrusTests metadata to example catalog
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
---
 camel-jbang-example-catalog.json | 21 +++++++++++++++++++++
 generate-catalog.sh              | 15 +++++++++++++++
 2 files changed, 36 insertions(+)

diff --git a/camel-jbang-example-catalog.json b/camel-jbang-example-catalog.json
index cdd5c70..a45a48e 100644
--- a/camel-jbang-example-catalog.json
+++ b/camel-jbang-example-catalog.json
@@ -11,6 +11,7 @@
         ],
         "bundled": false,
         "requiresDocker": false,
+        "hasCitrusTests": false,
         "files": [
             "README.adoc",
             "application.properties",
@@ -32,6 +33,7 @@
         ],
         "bundled": false,
         "requiresDocker": false,
+        "hasCitrusTests": true,
         "files": [
             "README.adoc",
             "application.properties",
@@ -54,6 +56,7 @@
         ],
         "bundled": false,
         "requiresDocker": false,
+        "hasCitrusTests": true,
         "files": [
             "README.adoc",
             "application.properties",
@@ -71,6 +74,7 @@
         ],
         "bundled": true,
         "requiresDocker": false,
+        "hasCitrusTests": false,
         "files": [
             "README.adoc",
             "route.camel.yaml"
@@ -89,6 +93,7 @@
         ],
         "bundled": true,
         "requiresDocker": false,
+        "hasCitrusTests": false,
         "files": [
             "README.adoc",
             "cron-log.camel.yaml"
@@ -107,6 +112,7 @@
         ],
         "bundled": false,
         "requiresDocker": true,
+        "hasCitrusTests": false,
         "files": [
             "README.adoc",
             "application.properties",
@@ -128,6 +134,7 @@
         ],
         "bundled": false,
         "requiresDocker": false,
+        "hasCitrusTests": false,
         "files": [
             "README.adoc",
             "application.properties",
@@ -150,6 +157,7 @@
         ],
         "bundled": false,
         "requiresDocker": true,
+        "hasCitrusTests": true,
         "files": [
             "README.adoc",
             "application.properties",
@@ -170,6 +178,7 @@
         ],
         "bundled": true,
         "requiresDocker": false,
+        "hasCitrusTests": false,
         "files": [
             "README.adoc",
             "application.properties",
@@ -189,6 +198,7 @@
         ],
         "bundled": false,
         "requiresDocker": false,
+        "hasCitrusTests": false,
         "files": [
             "README.adoc",
             "application.properties",
@@ -208,6 +218,7 @@
         ],
         "bundled": false,
         "requiresDocker": false,
+        "hasCitrusTests": false,
         "files": [
             "README.adoc",
             "application.properties",
@@ -226,6 +237,7 @@
         ],
         "bundled": false,
         "requiresDocker": true,
+        "hasCitrusTests": true,
         "files": [
             "README.adoc",
             "application.properties",
@@ -248,6 +260,7 @@
         ],
         "bundled": false,
         "requiresDocker": false,
+        "hasCitrusTests": false,
         "files": [
             "README.adoc",
             "application.properties",
@@ -267,6 +280,7 @@
         ],
         "bundled": false,
         "requiresDocker": false,
+        "hasCitrusTests": true,
         "files": [
             "README.adoc",
             "application.properties",
@@ -287,6 +301,7 @@
         ],
         "bundled": false,
         "requiresDocker": false,
+        "hasCitrusTests": true,
         "files": [
             "README.adoc",
             "application.properties",
@@ -307,6 +322,7 @@
         ],
         "bundled": true,
         "requiresDocker": false,
+        "hasCitrusTests": false,
         "files": [
             "README.adoc",
             "rest-api.camel.yaml"
@@ -324,6 +340,7 @@
         ],
         "bundled": true,
         "requiresDocker": false,
+        "hasCitrusTests": false,
         "files": [
             "Greeter.java",
             "README.adoc",
@@ -344,6 +361,7 @@
         ],
         "bundled": false,
         "requiresDocker": false,
+        "hasCitrusTests": true,
         "files": [
             "README.adoc",
             "analyzer/application-dev.properties",
@@ -390,6 +408,7 @@
         ],
         "bundled": false,
         "requiresDocker": true,
+        "hasCitrusTests": false,
         "files": [
             "README.adoc",
             "application.properties",
@@ -409,6 +428,7 @@
         ],
         "bundled": true,
         "requiresDocker": false,
+        "hasCitrusTests": false,
         "files": [
             "README.adoc",
             "timer-log.camel.yaml"
@@ -426,6 +446,7 @@
         ],
         "bundled": true,
         "requiresDocker": false,
+        "hasCitrusTests": false,
         "files": [
             "README.adoc",
             "consumer.camel.yaml",
diff --git a/generate-catalog.sh b/generate-catalog.sh
index 61f248e..7bb591b 100755
--- a/generate-catalog.sh
+++ b/generate-catalog.sh
@@ -86,6 +86,20 @@ for dirpath, dirnames, filenames in 
sorted(os.walk(repo_root)):
 
     requires_docker = "compose.yaml" in filenames or "docker-compose.yaml" in 
filenames
 
+    # detect Citrus integration tests (also in sub-directories without own 
metadata)
+    has_citrus_tests = False
+    for sub_dirpath2, sub_dirnames2, sub_filenames2 in os.walk(dirpath):
+        sub_dirnames2[:] = [
+            d for d in sub_dirnames2
+            if not d.startswith(".") and d not in {"target", "node_modules"}
+            and not os.path.exists(os.path.join(sub_dirpath2, d, 
"metadata.json"))
+        ]
+        if os.path.basename(sub_dirpath2) == "test":
+            if any(f.endswith(".citrus.it.yaml") or 
f.endswith(".citrus.it.xml")
+                   for f in sub_filenames2):
+                has_citrus_tests = True
+                break
+
     entry = {
         "name": name,
         "title": meta["title"],
@@ -94,6 +108,7 @@ for dirpath, dirnames, filenames in 
sorted(os.walk(repo_root)):
         "tags": meta.get("tags", []),
         "bundled": meta.get("bundled", False),
         "requiresDocker": requires_docker,
+        "hasCitrusTests": has_citrus_tests,
         "files": files,
     }
     catalog.append(entry)

Reply via email to