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

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

commit fd8bf9fdf664f23c5482734340f492a510ba01d7
Author: Claus Ibsen <[email protected]>
AuthorDate: Thu Nov 20 11:53:24 2025 +0100

    CAMEL-22693: Mark up EIP and endpoint headers that are of importance to 
make tooling, trouble shooting and development easier.
---
 .../apache/camel/catalog/main/important-headers.json   |  1 +
 .../org/apache/camel/catalog/models/split.json         |  2 +-
 .../src/main/java/org/apache/camel/Exchange.java       |  3 ++-
 .../META-INF/org/apache/camel/model/split.json         |  2 +-
 .../org/apache/camel/util/ImportantHeaderUtils.java    |  1 +
 .../jbang/core/commands/action/MessageTableHelper.java | 18 +++++++++++++-----
 6 files changed, 19 insertions(+), 8 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/main/important-headers.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/main/important-headers.json
index c5b0e2b95375..d31b507e34eb 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/main/important-headers.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/main/important-headers.json
@@ -1,5 +1,6 @@
 [
   "CamelAggregatedSize",
   "CamelFileName",
+  "CamelSplitIndex",
   "CamelSplitSize"
 ]
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/split.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/split.json
index 198495663989..e17f74d7b895 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/split.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/split.json
@@ -33,7 +33,7 @@
     "outputs": { "index": 18, "kind": "element", "displayName": "Outputs", 
"group": "common", "required": true, "type": "array", "javaType": 
"java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", 
"oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", 
"convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", 
"doFinally", "doTry", "dynamicRouter", "enrich", "filter", 
"idempotentConsumer", "intercept", "interceptFrom", "intercep [...]
   },
   "exchangeProperties": {
-    "CamelSplitIndex": { "index": 0, "kind": "exchangeProperty", 
"displayName": "Split Index", "label": "producer", "required": false, 
"javaType": "int", "deprecated": false, "autowired": false, "secret": false, 
"description": "A split counter that increases for each Exchange being split. 
The counter starts from 0." },
+    "CamelSplitIndex": { "index": 0, "kind": "exchangeProperty", 
"displayName": "Split Index", "label": "producer", "required": false, 
"javaType": "int", "deprecated": false, "autowired": false, "secret": false, 
"important": true, "description": "A split counter that increases for each 
Exchange being split. The counter starts from 0." },
     "CamelSplitComplete": { "index": 1, "kind": "exchangeProperty", 
"displayName": "Split Complete", "label": "producer", "required": false, 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "description": "Whether this Exchange is the last." },
     "CamelSplitSize": { "index": 2, "kind": "exchangeProperty", "displayName": 
"Split Size", "label": "producer", "required": false, "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "important": true, 
"description": "The total number of Exchanges that was split. This property is 
not applied for stream based splitting, except for the very last message 
because then Camel knows the total size." }
   }
diff --git a/core/camel-api/src/main/java/org/apache/camel/Exchange.java 
b/core/camel-api/src/main/java/org/apache/camel/Exchange.java
index 68684368c130..dc0f0e927070 100644
--- a/core/camel-api/src/main/java/org/apache/camel/Exchange.java
+++ b/core/camel-api/src/main/java/org/apache/camel/Exchange.java
@@ -274,7 +274,8 @@ public interface Exchange extends VariableAware {
     String SLIP_PRODUCER = "CamelSlipProducer";
     @Metadata(label = "split",
               description = "A split counter that increases for each Exchange 
being split. The counter starts from 0.",
-              javaType = "int")
+              javaType = "int",
+              important = true)
     String SPLIT_INDEX = "CamelSplitIndex";
     @Metadata(label = "split", description = "Whether this Exchange is the 
last.", javaType = "boolean")
     String SPLIT_COMPLETE = "CamelSplitComplete";
diff --git 
a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/split.json
 
b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/split.json
index 198495663989..e17f74d7b895 100644
--- 
a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/split.json
+++ 
b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/split.json
@@ -33,7 +33,7 @@
     "outputs": { "index": 18, "kind": "element", "displayName": "Outputs", 
"group": "common", "required": true, "type": "array", "javaType": 
"java.util.List<org.apache.camel.model.ProcessorDefinition<java.lang.Object>>", 
"oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", 
"convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", 
"doFinally", "doTry", "dynamicRouter", "enrich", "filter", 
"idempotentConsumer", "intercept", "interceptFrom", "intercep [...]
   },
   "exchangeProperties": {
-    "CamelSplitIndex": { "index": 0, "kind": "exchangeProperty", 
"displayName": "Split Index", "label": "producer", "required": false, 
"javaType": "int", "deprecated": false, "autowired": false, "secret": false, 
"description": "A split counter that increases for each Exchange being split. 
The counter starts from 0." },
+    "CamelSplitIndex": { "index": 0, "kind": "exchangeProperty", 
"displayName": "Split Index", "label": "producer", "required": false, 
"javaType": "int", "deprecated": false, "autowired": false, "secret": false, 
"important": true, "description": "A split counter that increases for each 
Exchange being split. The counter starts from 0." },
     "CamelSplitComplete": { "index": 1, "kind": "exchangeProperty", 
"displayName": "Split Complete", "label": "producer", "required": false, 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "description": "Whether this Exchange is the last." },
     "CamelSplitSize": { "index": 2, "kind": "exchangeProperty", "displayName": 
"Split Size", "label": "producer", "required": false, "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "important": true, 
"description": "The total number of Exchanges that was split. This property is 
not applied for stream based splitting, except for the very last message 
because then Camel knows the total size." }
   }
diff --git 
a/core/camel-util/src/main/java/org/apache/camel/util/ImportantHeaderUtils.java 
b/core/camel-util/src/main/java/org/apache/camel/util/ImportantHeaderUtils.java
index 1861151acf70..dac11bfe12e5 100644
--- 
a/core/camel-util/src/main/java/org/apache/camel/util/ImportantHeaderUtils.java
+++ 
b/core/camel-util/src/main/java/org/apache/camel/util/ImportantHeaderUtils.java
@@ -29,6 +29,7 @@ public final class ImportantHeaderUtils {
                     // IMPORTANT-HEADER-KEYS: START
                     "CamelAggregatedSize",
                     "CamelFileName",
+                    "CamelSplitIndex",
                     "CamelSplitSize"
             // IMPORTANT-HEADER-KEYS: END
             )));
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/MessageTableHelper.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/MessageTableHelper.java
index be60c311127d..064af5877800 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/MessageTableHelper.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/MessageTableHelper.java
@@ -166,7 +166,7 @@ public class MessageTableHelper {
             if (arr != null) {
                 for (Object o : arr) {
                     JsonObject jo = (JsonObject) o;
-                    rows.add(new TableRow("Property", jo.getString("type"), 
jo.getString("key"), jo.get("value")));
+                    rows.add(new TableRow("Property", jo.getString("type"), 
jo.getString("key"), jo.get("value"), jo.getBooleanOrDefault("important", 
false)));
                 }
             }
             // internal exchange properties
@@ -174,7 +174,7 @@ public class MessageTableHelper {
             if (arr != null) {
                 for (Object o : arr) {
                     JsonObject jo = (JsonObject) o;
-                    rows.add(new TableRow("Property", jo.getString("type"), 
jo.getString("key"), jo.get("value")));
+                    rows.add(new TableRow("Property", jo.getString("type"), 
jo.getString("key"), jo.get("value"), jo.getBooleanOrDefault("important", 
false)));
                 }
             }
             if (!rows.isEmpty()) {
@@ -220,7 +220,7 @@ public class MessageTableHelper {
                             }
                         }
                     }
-                    rows.add(new TableRow("Header", jo.getString("type"), key, 
value));
+                    rows.add(new TableRow("Header", jo.getString("type"), key, 
value, jo.getBooleanOrDefault("important", false)));
                 }
             }
             if (!rows.isEmpty()) {
@@ -322,11 +322,17 @@ public class MessageTableHelper {
         Object value;
         Long position;
         Long size;
+        Boolean important = Boolean.FALSE;
 
         TableRow(String kind, String type, String key, Object value) {
             this(kind, type, key, value, null, null);
         }
 
+        TableRow(String kind, String type, String key, Object value, Boolean 
important) {
+            this(kind, type, key, value, null, null);
+            this.important = important;
+        }
+
         TableRow(String kind, String type, String key, Object value, Long 
size, Long position) {
             this.kind = kind;
             this.type = type;
@@ -338,12 +344,14 @@ public class MessageTableHelper {
 
         String valueAsString() {
             if (value == null || "null".equals(value)) {
+                value = "null";
                 if (loggingColor) {
                     value = 
Ansi.ansi().fgBrightDefault().a(Ansi.Attribute.INTENSITY_FAINT).a(value).reset().toString();
-                } else {
-                    value = "null";
                 }
             }
+            if (loggingColor && important) {
+                value = 
Ansi.ansi().a(Ansi.Attribute.INTENSITY_BOLD).a(value).reset().toString();
+            }
             return value.toString();
         }
 

Reply via email to