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 5af52e2429fc camel-jbang - Allow --example to match by short name
without category prefix
5af52e2429fc is described below
commit 5af52e2429fc49b706ca3689b481eb6d1a8ab9de
Author: Claus Ibsen <[email protected]>
AuthorDate: Sat Jul 18 10:51:59 2026 +0200
camel-jbang - Allow --example to match by short name without category prefix
Co-Authored-By: Claude Opus 4.6 <[email protected]>
Signed-off-by: Claus Ibsen <[email protected]>
---
.../camel/dsl/jbang/core/common/ExampleHelper.java | 14 +++++++++++++-
.../dsl/jbang/core/common/ExampleHelperTest.java | 20 ++++++++++++++++++++
2 files changed, 33 insertions(+), 1 deletion(-)
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/ExampleHelper.java
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/ExampleHelper.java
index e1ba0ed1d2f8..b466bacbd454 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/ExampleHelper.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/ExampleHelper.java
@@ -64,18 +64,30 @@ public final class ExampleHelper {
}
public static JsonObject findExample(List<JsonObject> catalog, String
name) {
+ // first try exact match (e.g. "language/groovy")
for (JsonObject entry : catalog) {
if (name.equals(entry.getString("name"))) {
return entry;
}
}
+ // then try matching by short name without category prefix (e.g.
"groovy" matches "language/groovy")
+ for (JsonObject entry : catalog) {
+ if (name.equals(getShortName(entry))) {
+ return entry;
+ }
+ }
return null;
}
public static List<String> getExampleNames(List<JsonObject> catalog) {
List<String> names = new ArrayList<>();
for (JsonObject entry : catalog) {
- names.add(entry.getString("name"));
+ String name = entry.getString("name");
+ names.add(name);
+ String shortName = getShortName(entry);
+ if (!shortName.equals(name)) {
+ names.add(shortName);
+ }
}
return names;
}
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/common/ExampleHelperTest.java
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/common/ExampleHelperTest.java
index 965c3417fa03..72c46e504e5f 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/common/ExampleHelperTest.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/common/ExampleHelperTest.java
@@ -41,6 +41,22 @@ class ExampleHelperTest {
assertEquals("Circuit Breaker", entry.getString("title"));
}
+ @Test
+ void shouldFindExampleByShortName() {
+ List<JsonObject> catalog = ExampleHelper.loadCatalog();
+ JsonObject entry = ExampleHelper.findExample(catalog,
"circuit-breaker");
+ assertNotNull(entry);
+ assertEquals("eip/circuit-breaker", entry.getString("name"));
+ }
+
+ @Test
+ void shouldFindExampleByShortNameGroovy() {
+ List<JsonObject> catalog = ExampleHelper.loadCatalog();
+ JsonObject entry = ExampleHelper.findExample(catalog, "groovy");
+ assertNotNull(entry);
+ assertEquals("language/groovy", entry.getString("name"));
+ }
+
@Test
void shouldReturnNullForUnknownExample() {
List<JsonObject> catalog = ExampleHelper.loadCatalog();
@@ -161,5 +177,9 @@ class ExampleHelperTest {
assertTrue(names.contains("eip/circuit-breaker"));
assertTrue(names.contains("messaging/mqtt"));
assertTrue(names.contains("cloud/aws-sqs"));
+ // short names should also be included
+ assertTrue(names.contains("circuit-breaker"));
+ assertTrue(names.contains("mqtt"));
+ assertTrue(names.contains("aws-sqs"));
}
}