You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by "davsclaus (via GitHub)" <gi...@apache.org> on 2026/09/20 11:11:00 UTC

[PR] CAMEL-24844: the message dump carries the body's size and says when the body is null; the camel-jbang history views and the history tool show the body's type and size per step [camel]

davsclaus opened a new pull request, #26627:
URL: https://github.com/apache/camel/pull/26627

   ## Description
   
   The runtime side of CAMEL-24844 on a live app: what the body is at every step, answered where people and agents look.
   
   **The message dump** (`MessageHelper.dumpAsJSon`, what every backlog tracer event carries, so the message-history console, `camel trace` and the history file the CLI writes all get it):
   - `"type": "null"` when the body is null; it said nothing before, which read like "not captured";
   - a `size` for text and byte bodies from the `MessageSizeStrategy` when it is enabled (the dev profile does): lengths only, nothing read or converted. Collections, arrays, files and stream caches already had one.
   
   **The camel-jbang history and error panels** parse the size and show it next to the type of each step's body, `Body: (String, 11 B)`.
   
   **The camel-jbang-mcp history tool** (`get_history`) gets `summary=true`: one entry per step with route, node, elapsed, and the body's type and size as it reached the step, without the bodies, headers and properties. The full dump of a last exchange costs thousands of tokens; the summary is what a small model reads to see where the body turned from text into a Map or bytes.
   
   Independent of #26626 (the message history entries and the failure table); together they give the type and size per step on every message (the history) and on the last completed one with its payloads (the tracer).
   
   ## Tests
   
   - camel-core `MessageHelperTest`: the size in the dump with the strategy enabled, and `"null"` for a null body.
   - camel-jbang-core `ToolRegistryTest`: the summary keeps route, node, elapsed, body type and size and drops the message.
   - camel-jbang-plugin-tui `StatusParserTest`: the size parsed from the dump, -1 without one; the prompt budget test still passes with the longer tool description.
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   
   https://claude.ai/code/session_01Bp3538HRBPMQkb5ta9xRaj


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] CAMEL-24844: the message dump carries the body's size and says when the body is null; the camel-jbang history views and the history tool show the body's type and size per step [camel]

Posted by "gnodet-bot (via GitHub)" <gi...@apache.org>.
gnodet-bot commented on code in PR #26627:
URL: https://github.com/apache/camel/pull/26627#discussion_r4056819269


##########
core/camel-support/src/main/java/org/apache/camel/support/MessageHelper.java:
##########
@@ -1109,6 +1110,17 @@ public static JsonObject dumpAsJSonObject(
                     jb.put("size", size);
                 }
             }
+            if (!jb.containsKey("size") && message.getExchange() != null && message.getExchange().getContext() != null) {
+                // the size of a text or byte body, from the message size strategy when it is enabled (the dev
+                // profile does): lengths only, nothing is read or converted (CAMEL-24844)
+                MessageSizeStrategy sizeStrategy = message.getExchange().getContext().getMessageSizeStrategy();
+                if (sizeStrategy != null && sizeStrategy.isEnabled()) {
+                    long size = sizeStrategy.computeBodySize(message);
+                    if (size >= 0) {

Review Comment:
   **Bug: null body gets `"size": 0` in the dump.**
   
   `DefaultMessageSizeStrategy.computeBodySize` returns `0` when the body is null (see its Javadoc and implementation). So the guard `size >= 0` passes and `"size": 0` is written into the JSON even when the body is null. A consumer (including the MCP `get_history` summary which calls `historySummary()` and surfaces `bodySize`) sees `{"type": "null", "size": 0}`, which is redundant — `"null"` already conveys absence — and inconsistent with the `StreamCache` handling above, which only emits `size` when `size > 0`.
   
   Change the guard to exclude zero:
   ```suggestion
                       if (size > 0) {
   ```
   
   Also extend the `testDumpAsJSonBodySizeAndNull` test: after `message.setBody(null)` assert `!out.contains("\"size\"")` to pin the contract.



##########
dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/HistoryTab.java:
##########
@@ -1388,7 +1388,7 @@ private void renderTraceStepDetail(Frame frame, Rect area, List<TraceEntry> step
                     headersChanged, prev != null ? prev.headers : null);
         }
         if (showTraceBody) {
-            addBodyLines(lines, entry.body, entry.bodyType, bodyChanged);
+            addBodyLines(lines, entry.body, entry.bodyType, entry.bodySize, bodyChanged);

Review Comment:
   **Propagation gap: `renderDiagramInfoPanel` and `ErrorsTab.renderDetail` silently drop `bodySize`.**
   
   `renderTraceStepDetail` (this line) and `renderHistoryDetail` (line 1676) now correctly pass `entry.bodySize` to `addBodyLines`. But two other render paths that read the same `TraceEntry`/`HistoryEntry` objects do not:
   
   1. **`renderDiagramInfoPanel`** (line 894): loads `body` and `bodyType` from the entry but has no `bodySize` local. Its inline body render (around line 1055) shows `(bodyType)` without size. Fix: add `long bodySize = -1;` alongside the other locals, populate it from `e.bodySize` in both `TraceEntry` and `HistoryEntry` branches, then use the same `detail` string that `addBodyLines` builds:
   ```java
   String detail = bodySize >= 0 ? bodyType + ", " + HeapHistogramTab.formatBytes(bodySize) : bodyType;
   ```
   
   2. **`ErrorsTab.renderDetail`**: calls `HistoryTab.addBodyLines(lines, ei.body, ei.bodyType, false)` — the 4-arg shim — so `ei.bodySize` (populated by the PR in `StatusParser.parseErrors`) is never displayed. Either call the 5-arg overload directly, or update the 4-arg shim to accept the size.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] CAMEL-24844: the message dump carries the body's size and says when the body is null; the camel-jbang history views and the history tool show the body's type and size per step [camel]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #26627:
URL: https://github.com/apache/camel/pull/26627#issuecomment-5749432351

   :star2: Thank you for your contribution to the Apache Camel project! :star2:
     :robot: CI automation will test this PR automatically.
   
     :camel: Apache Camel Committers, please review the following items:
   
     * First-time contributors **require MANUAL approval** for the GitHub Actions to run
     * You can use the command `/component-test (camel-)component-name1 (camel-)component-name2..` to request a test from the test bot although they are normally detected and executed by CI.
     * You can label PRs using `skip-tests` and `test-dependents` to fine-tune the checks executed by this PR.
     * Build and test logs are available in the summary page. **Only** [Apache Camel committers](https://camel.apache.org/community/team/#committers) have access to the summary.
     
     :warning: Be careful when sharing logs. Review their contents before sharing them publicly.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] CAMEL-24844: the message dump carries the body's size and says when the body is null; the camel-jbang history views and the history tool show the body's type and size per step [camel]

Posted by "davsclaus (via GitHub)" <gi...@apache.org>.
davsclaus merged PR #26627:
URL: https://github.com/apache/camel/pull/26627


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] CAMEL-24844: the message dump carries the body's size and says when the body is null; the camel-jbang history views and the history tool show the body's type and size per step [camel]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #26627:
URL: https://github.com/apache/camel/pull/26627#issuecomment-5749660326

   <!-- ci-tested-modules -->
   :test_tube: **CI tested the following changed modules:**
   
   - `core/camel-core`
   - `core/camel-support`
   - `docs`
   - `dsl/camel-jbang/camel-jbang-core`
   - `dsl/camel-jbang/camel-jbang-plugin-tui`
   
   > :information_source: Dependent modules were not tested because the total number of affected modules exceeded the threshold (50). Use the `test-dependents` label to force testing all dependents.
   
   ---
   
   <details><summary>:microscope: Scalpel shadow comparison — Scalpel: 562 of 692 tested, 26 compile-only — current: 563 all tested</summary>
   
   [Maveniverse Scalpel](https://github.com/maveniverse/scalpel) detected **590 affected modules** (current approach: 563).
   
   **Skip-tests mode would test 562 modules** (5 direct + 559 downstream), **skip tests for 26** (generated code, meta-modules)
   
   <details><summary>:warning: Modules only in Scalpel (28)</summary>
   
   - `apache-camel`
   - `camel-allcomponents`
   - `camel-catalog`
   - `camel-catalog-console`
   - `camel-catalog-maven`
   - `camel-catalog-suggest`
   - `camel-componentdsl`
   - `camel-endpointdsl`
   - `camel-endpointdsl-support`
   - `camel-itest`
   - `camel-jbang-core`
   - `camel-jbang-it`
   - `camel-jbang-main`
   - `camel-jbang-plugin-edit`
   - `camel-jbang-plugin-generate`
   - `camel-jbang-plugin-kubernetes`
   - `camel-jbang-plugin-test`
   - `camel-kamelet-main`
   - `camel-launcher`
   - `camel-report-maven-plugin`
   - `camel-route-parser`
   - `camel-salesforce-maven-plugin`
   - `camel-yaml-dsl`
   - `camel-yaml-dsl-deserializers`
   - `camel-yaml-dsl-maven-plugin`
   - `coverage`
   - `docs`
   - `dummy-component`
   
   </details>
   
   
   <details><summary>Modules only in current approach (1)</summary>
   
   - `camel-test-infra-core`
   
   </details>
   
   
   <details><summary>Modules Scalpel would test (562)</summary>
   
   - `archetypes` ← downstream of org.apache.camel:camel-support
   - `camel-a2a` ← downstream of org.apache.camel:camel-support
   - `camel-activemq` ← downstream of org.apache.camel:camel-core-model
   - `camel-activemq6` ← downstream of org.apache.camel:camel-core-model
   - `camel-ai-observability` ← downstream of org.apache.camel:camel-support
   - `camel-ai-observability-api` ← downstream of org.apache.camel:camel-support
   - `camel-ai-parent` ← downstream of org.apache.camel:camel-core-model
   - `camel-ai-resource` ← downstream of org.apache.camel:camel-support
   - `camel-ai-tool` ← downstream of org.apache.camel:camel-support
   - `camel-alibaba-common` ← downstream of org.apache.camel:camel-support
   - `camel-alibaba-eventbridge` ← downstream of org.apache.camel:camel-support
   - `camel-alibaba-fc` ← downstream of org.apache.camel:camel-support
   - `camel-alibaba-kms` ← downstream of org.apache.camel:camel-support
   - `camel-alibaba-mns` ← downstream of org.apache.camel:camel-support
   - `camel-alibaba-oss` ← downstream of org.apache.camel:camel-support
   - `camel-alibaba-ots` ← downstream of org.apache.camel:camel-support
   - `camel-alibaba-parent` ← downstream of org.apache.camel:camel-core-model
   - `camel-alibaba-sls` ← downstream of org.apache.camel:camel-support
   - `camel-alibaba-sms` ← downstream of org.apache.camel:camel-support
   - `camel-amqp` ← downstream of org.apache.camel:camel-core-model
   - `camel-api-component-maven-plugin` ← downstream of org.apache.camel:camel-test-junit6
   - `camel-arangodb` ← downstream of org.apache.camel:camel-support
   - `camel-archetype-api-component` ← downstream of org.apache.camel:camel-support
   - `camel-archetype-component` ← downstream of org.apache.camel:camel-support
   - `camel-archetype-dataformat` ← downstream of org.apache.camel:camel-support
   - `camel-archetype-java` ← downstream of org.apache.camel:camel-support
   - `camel-archetype-main` ← downstream of org.apache.camel:camel-support
   - `camel-as2` ← downstream of org.apache.camel:camel-support
   - `camel-as2-api` ← downstream of org.apache.camel:camel-core-model
   - `camel-as2-parent` ← downstream of org.apache.camel:camel-core-model
   - `camel-asn1` ← downstream of org.apache.camel:camel-support
   - `camel-asterisk` ← downstream of org.apache.camel:camel-support
   - `camel-atmosphere-websocket` ← downstream of org.apache.camel:camel-support
   - `camel-atom` ← downstream of org.apache.camel:camel-support
   - `camel-attachments` ← downstream of org.apache.camel:camel-support
   - `camel-avro` ← downstream of org.apache.camel:camel-support
   - `camel-avro-rpc` ← downstream of org.apache.camel:camel-support
   - `camel-avro-rpc-jetty` ← downstream of org.apache.camel:camel-core-model
   - `camel-avro-rpc-parent` ← downstream of org.apache.camel:camel-core-model
   - `camel-avro-rpc-spi` ← downstream of org.apache.camel:camel-core-model
   - `camel-aws-bedrock` ← downstream of org.apache.camel:camel-support
   - `camel-aws-cloudtrail` ← downstream of org.apache.camel:camel-support
   - `camel-aws-common` ← downstream of org.apache.camel:camel-support
   - `camel-aws-config` ← downstream of org.apache.camel:camel-support
   - `camel-aws-parameter-store` ← downstream of org.apache.camel:camel-support
   - `camel-aws-parent` ← downstream of org.apache.camel:camel-core-model
   - `camel-aws-secrets-manager` ← downstream of org.apache.camel:camel-support
   - `camel-aws-security-hub` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-athena` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-comprehend` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-cw` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-ddb` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-ec2` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-ecs` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-eks` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-eventbridge` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-iam` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-kinesis` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-kms` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-lambda` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-mq` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-msk` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-polly` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-redshift` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-rekognition` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-s3` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-s3-vectors` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-ses` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-sns` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-sqs` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-step-functions` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-sts` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-textract` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-timestream` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-transcribe` ← downstream of org.apache.camel:camel-support
   - `camel-aws2-translate` ← downstream of org.apache.camel:camel-support
   - `camel-azure-common` ← downstream of org.apache.camel:camel-core-model
   - `camel-azure-cosmosdb` ← downstream of org.apache.camel:camel-support
   - `camel-azure-eventgrid` ← downstream of org.apache.camel:camel-support
   - `camel-azure-eventhubs` ← downstream of org.apache.camel:camel-support
   - `camel-azure-files` ← downstream of org.apache.camel:camel-core-model
   - `camel-azure-functions` ← downstream of org.apache.camel:camel-support
   - `camel-azure-key-vault` ← downstream of org.apache.camel:camel-support
   - `camel-azure-parent` ← downstream of org.apache.camel:camel-core-model
   - `camel-azure-schema-registry` ← downstream of org.apache.camel:camel-support
   - `camel-azure-servicebus` ← downstream of org.apache.camel:camel-support
   - `camel-azure-storage-blob` ← downstream of org.apache.camel:camel-support
   - `camel-azure-storage-datalake` ← downstream of org.apache.camel:camel-support
   - `camel-azure-storage-queue` ← downstream of org.apache.camel:camel-support
   - `camel-barcode` ← downstream of org.apache.camel:camel-support
   - `camel-base` ← downstream of org.apache.camel:camel-support
   - `camel-base-engine` ← downstream of org.apache.camel:camel-base
   - `camel-base64` ← downstream of org.apache.camel:camel-support
   - `camel-bean` ← downstream of org.apache.camel:camel-support
   - `camel-bean-validator` ← downstream of org.apache.camel:camel-support
   - `camel-beanio` ← downstream of org.apache.camel:camel-support
   - `camel-bindy` ← downstream of org.apache.camel:camel-support
   - `camel-bonita` ← downstream of org.apache.camel:camel-support
   - `camel-box` ← downstream of org.apache.camel:camel-support
   - `camel-box-api` ← downstream of org.apache.camel:camel-core-model
   - `camel-box-parent` ← downstream of org.apache.camel:camel-core-model
   - `camel-braintree` ← downstream of org.apache.camel:camel-support
   - `camel-browse` ← downstream of org.apache.camel:camel-support
   - `camel-caffeine` ← downstream of org.apache.camel:camel-support
   - `camel-camunda` ← downstream of org.apache.camel:camel-support
   - `camel-cassandraql` ← downstream of org.apache.camel:camel-support
   - `camel-catalog-common` ← downstream of org.apache.camel:camel-support
   - `camel-cbor` ← downstream of org.apache.camel:camel-support
   - `camel-chatscript` ← downstream of org.apache.camel:camel-support
   - `camel-chunk` ← downstream of org.apache.camel:camel-support
   - `camel-cli-connector` ← downstream of org.apache.camel:camel-support
   - `camel-cli-debug` ← downstream of org.apache.camel:camel-cli-connector
   - `camel-clickhouse` ← downstream of org.apache.camel:camel-support
   - `camel-clickup` ← downstream of org.apache.camel:camel-support
   - `camel-cloudevents` ← downstream of org.apache.camel:camel-support
   - `camel-cluster` ← downstream of org.apache.camel:camel-core-model
   - `camel-cm-sms` ← downstream of org.apache.camel:camel-support
   - `camel-coap` ← downstream of org.apache.camel:camel-support
   - `camel-cometd` ← downstream of org.apache.camel:camel-support
   - `camel-console` ← downstream of org.apache.camel:camel-support
   - `camel-consul` ← downstream of org.apache.camel:camel-support
   - `camel-controlbus` ← downstream of org.apache.camel:camel-support
   - `camel-core` ← core/camel-core/src/test/java/org/apache/camel/util/MessageHelperTest.java
   - `camel-core-all` ← downstream of org.apache.camel:camel-support
   - `camel-core-engine` ← downstream of org.apache.camel:camel-support
   - `camel-core-languages` ← downstream of org.apache.camel:camel-support
   - `camel-core-model` ← downstream of org.apache.camel:camel-support
   - `camel-core-processor` ← downstream of org.apache.camel:camel-support
   - `camel-core-reifier` ← downstream of org.apache.camel:camel-support
   - `camel-core-xml` ← downstream of org.apache.camel:camel-core-engine
   - `camel-couchbase` ← downstream of org.apache.camel:camel-support
   - `camel-couchdb` ← downstream of org.apache.camel:camel-support
   - `camel-cron` ← downstream of org.apache.camel:camel-support
   - `camel-crypto` ← downstream of org.apache.camel:camel-support
   - `camel-crypto-pgp` ← downstream of org.apache.camel:camel-support
   - `camel-csv` ← downstream of org.apache.camel:camel-support
   - `camel-cxf-common` ← downstream of org.apache.camel:camel-support
   - `camel-cxf-parent` ← downstream of org.apache.camel:camel-core-model
   - `camel-cxf-rest` ← downstream of org.apache.camel:camel-support
   - `camel-cxf-soap` ← downstream of org.apache.camel:camel-support
   - `camel-cxf-spring-common` ← downstream of org.apache.camel:camel-support
   - `camel-cxf-spring-rest` ← downstream of org.apache.camel:camel-core-model
   - `camel-cxf-spring-soap` ← downstream of org.apache.camel:camel-core-model
   - `camel-cxf-spring-transport` ← downstream of org.apache.camel:camel-core-model
   - `camel-cxf-transport` ← downstream of org.apache.camel:camel-support
   - `camel-cyberark-vault` ← downstream of org.apache.camel:camel-support
   - `camel-dapr` ← downstream of org.apache.camel:camel-support
   - `camel-dataformat` ← downstream of org.apache.camel:camel-support
   - `camel-dataset` ← downstream of org.apache.camel:camel-core-model
   - `camel-datasonnet` ← downstream of org.apache.camel:camel-support
   - `camel-dataweave` ← downstream of org.apache.camel:camel-core-model
   - `camel-debezium-common` ← downstream of org.apache.camel:camel-support
   - `camel-debezium-common-parent` ← downstream of org.apache.camel:camel-support
   - `camel-debezium-db2` ← downstream of org.apache.camel:camel-core-model
   - `camel-debezium-maven-plugin` ← downstream of org.apache.camel:camel-support
   - `camel-debezium-mongodb` ← downstream of org.apache.camel:camel-core-model
   - `camel-debezium-mysql` ← downstream of org.apache.camel:camel-core-model
   - `camel-debezium-oracle` ← downstream of org.apache.camel:camel-core-model
   - `camel-debezium-parent` ← downstream of org.apache.camel:camel-core-model
   - `camel-debezium-postgres` ← downstream of org.apache.camel:camel-core-model
   - `camel-debezium-sqlserver` ← downstream of org.apache.camel:camel-core-model
   - `camel-debug` ← downstream of org.apache.camel:camel-support
   - `camel-dfdl` ← downstream of org.apache.camel:camel-support
   - `camel-dhis2` ← downstream of org.apache.camel:camel-support
   - `camel-dhis2-api` ← downstream of org.apache.camel:camel-support
   - `camel-dhis2-parent` ← downstream of org.apache.camel:camel-core-model
   - `camel-diagram` ← downstream of org.apache.camel:camel-core-model
   - `camel-direct` ← downstream of org.apache.camel:camel-support
   - `camel-disruptor` ← downstream of org.apache.camel:camel-support
   - `camel-djl` ← downstream of org.apache.camel:camel-support
   - `camel-dns` ← downstream of org.apache.camel:camel-support
   - `camel-docker` ← downstream of org.apache.camel:camel-support
   - `camel-docling` ← downstream of org.apache.camel:camel-support
   - `camel-drill` ← downstream of org.apache.camel:camel-support
   - `camel-dropbox` ← downstream of org.apache.camel:camel-support
   - `camel-dsl-modeline` ← downstream of org.apache.camel:camel-support
   - `camel-dsl-support` ← downstream of org.apache.camel:camel-support
   - `camel-duckdb` ← downstream of org.apache.camel:camel-support
   - `camel-dynamic-router` ← downstream of org.apache.camel:camel-support
   - `camel-ehcache` ← downstream of org.apache.camel:camel-support
   - `camel-elasticsearch` ← downstream of org.apache.camel:camel-support
   - `camel-elasticsearch-rest-client` ← downstream of org.apache.camel:camel-support
   - `camel-event` ← downstream of org.apache.camel:camel-support
   - `camel-exec` ← downstream of org.apache.camel:camel-support
   - `camel-fastjson` ← downstream of org.apache.camel:camel-support
   - `camel-fhir` ← downstream of org.apache.camel:camel-support
   - `camel-fhir-api` ← downstream of org.apache.camel:camel-support
   - `camel-fhir-parent` ← downstream of org.apache.camel:camel-core-model
   - `camel-file` ← downstream of org.apache.camel:camel-support
   - `camel-file-watch` ← downstream of org.apache.camel:camel-support
   - `camel-flatpack` ← downstream of org.apache.camel:camel-core-model
   - `camel-flink` ← downstream of org.apache.camel:camel-support
   - `camel-flowable` ← downstream of org.apache.camel:camel-support
   - `camel-fop` ← downstream of org.apache.camel:camel-support
   - `camel-fory` ← downstream of org.apache.camel:camel-support
   - `camel-freemarker` ← downstream of org.apache.camel:camel-support
   - `camel-ftp` ← downstream of org.apache.camel:camel-core-model
   - `camel-ftp-common` ← downstream of org.apache.camel:camel-core-model
   - `camel-geocoder` ← downstream of org.apache.camel:camel-support
   - `camel-git` ← downstream of org.apache.camel:camel-support
   - `camel-github2` ← downstream of org.apache.camel:camel-support
   - `camel-google-bigquery` ← downstream of org.apache.camel:camel-support
   - `camel-google-calendar` ← downstream of org.apache.camel:camel-support
   - `camel-google-common` ← downstream of org.apache.camel:camel-support
   - `camel-google-drive` ← downstream of org.apache.camel:camel-support
   - `camel-google-firestore` ← downstream of org.apache.camel:camel-support
   - `camel-google-functions` ← downstream of org.apache.camel:camel-support
   - `camel-google-mail` ← downstream of org.apache.camel:camel-support
   - `camel-google-parent` ← downstream of org.apache.camel:camel-core-model
   - `camel-google-pubsub` ← downstream of org.apache.camel:camel-support
   - `camel-google-secret-manager` ← downstream of org.apache.camel:camel-support
   - `camel-google-sheets` ← downstream of org.apache.camel:camel-support
   - `camel-google-speech-to-text` ← downstream of org.apache.camel:camel-support
   - `camel-google-storage` ← downstream of org.apache.camel:camel-support
   - `camel-google-text-to-speech` ← downstream of org.apache.camel:camel-support
   - `camel-google-vertexai` ← downstream of org.apache.camel:camel-support
   - `camel-google-vision` ← downstream of org.apache.camel:camel-support
   - `camel-graphql` ← downstream of org.apache.camel:camel-support
   - `camel-grok` ← downstream of org.apache.camel:camel-support
   - `camel-groovy` ← downstream of org.apache.camel:camel-support
   - `camel-grpc` ← downstream of org.apache.camel:camel-support
   - `camel-gson` ← downstream of org.apache.camel:camel-support
   - `camel-hashicorp-vault` ← downstream of org.apache.camel:camel-support
   - `camel-hazelcast` ← downstream of org.apache.camel:camel-support
   - `camel-health` ← downstream of org.apache.camel:camel-core-engine
   - `camel-hivemq` ← downstream of org.apache.camel:camel-support
   - `camel-hl7` ← downstream of org.apache.camel:camel-core-model
   - `camel-http` ← downstream of org.apache.camel:camel-core-model
   - `camel-http-base` ← downstream of org.apache.camel:camel-support
   - `camel-http-common` ← downstream of org.apache.camel:camel-support
   - `camel-huawei-parent` ← downstream of org.apache.camel:camel-core-model
   - `camel-huaweicloud-common` ← downstream of org.apache.camel:camel-support
   - `camel-huaweicloud-dms` ← downstream of org.apache.camel:camel-support
   - `camel-huaweicloud-frs` ← downstream of org.apache.camel:camel-support
   - `camel-huaweicloud-functiongraph` ← downstream of org.apache.camel:camel-support
   - `camel-huaweicloud-iam` ← downstream of org.apache.camel:camel-support
   - `camel-huaweicloud-imagerecognition` ← downstream of org.apache.camel:camel-support
   - `camel-huaweicloud-obs` ← downstream of org.apache.camel:camel-support
   - `camel-huaweicloud-smn` ← downstream of org.apache.camel:camel-support
   - `camel-huggingface` ← downstream of org.apache.camel:camel-support
   - `camel-ibm-cos` ← downstream of org.apache.camel:camel-support
   - `camel-ibm-parent` ← downstream of org.apache.camel:camel-core-model
   - `camel-ibm-secrets-manager` ← downstream of org.apache.camel:camel-support
   - `camel-ibm-watson-discovery` ← downstream of org.apache.camel:camel-support
   - `camel-ibm-watson-language` ← downstream of org.apache.camel:camel-support
   - `camel-ibm-watson-speech-to-text` ← downstream of org.apache.camel:camel-support
   - `camel-ibm-watson-text-to-speech` ← downstream of org.apache.camel:camel-support
   - `camel-ibm-watsonx-ai` ← downstream of org.apache.camel:camel-support
   - `camel-ibm-watsonx-data` ← downstream of org.apache.camel:camel-support
   - `camel-ical` ← downstream of org.apache.camel:camel-support
   - `camel-iggy` ← downstream of org.apache.camel:camel-support
   - `camel-ignite` ← downstream of org.apache.camel:camel-support
   - `camel-infinispan` ← downstream of org.apache.camel:camel-core-model
   - `camel-infinispan-common` ← downstream of org.apache.camel:camel-support
   - `camel-infinispan-embedded` ← downstream of org.apache.camel:camel-core-model
   - `camel-infinispan-parent` ← downstream of org.apache.camel:camel-core-model
   - `camel-influxdb` ← downstream of org.apache.camel:camel-support
   - `camel-influxdb2` ← downstream of org.apache.camel:camel-support
   - `camel-iso8583` ← downstream of org.apache.camel:camel-support
   - `camel-jackson` ← downstream of org.apache.camel:camel-core-model
   - `camel-jackson-avro` ← downstream of org.apache.camel:camel-support
   - `camel-jackson-protobuf` ← downstream of org.apache.camel:camel-support
   - `camel-jackson3` ← downstream of org.apache.camel:camel-core-model
   - `camel-jackson3-avro` ← downstream of org.apache.camel:camel-support
   - `camel-jackson3-protobuf` ← downstream of org.apache.camel:camel-support
   - `camel-jackson3xml` ← downstream of org.apache.camel:camel-support
   - `camel-jacksonxml` ← downstream of org.apache.camel:camel-support
   - `camel-jactl` ← downstream of org.apache.camel:camel-support
   - `camel-jandex` ← downstream of org.apache.camel:camel-support
   - `camel-jasypt` ← downstream of org.apache.camel:camel-base
   - `camel-java-io` ← downstream of org.apache.camel:camel-core-engine
   - `camel-java-joor-dsl` ← downstream of org.apache.camel:camel-core-languages
   - `camel-javascript` ← downstream of org.apache.camel:camel-support
   - `camel-jaxb` ← downstream of org.apache.camel:camel-core-model
   - `camel-jbang-console` ← downstream of org.apache.camel:camel-support
   - `camel-jbang-core` ← dsl/camel-jbang/camel-jbang-core/src/generated/resources/META-INF/camel-jbang-commands-metadata.json, dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelHistoryAction.java, dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/MessageTableHelper.java, dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ai/ToolRegistry.java, dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/action/CamelHistoryActionTest.java, dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ai/ToolRegistryTest.java
   - `camel-jbang-mcp` ← downstream of org.apache.camel:camel-jbang-core
   - `camel-jbang-plugin-mcp` ← downstream of org.apache.camel:camel-jbang-core
   - `camel-jbang-plugin-route-parser` ← downstream of org.apache.camel:camel-jbang-core
   - `camel-jbang-plugin-tui` ← dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/ErrorInfo.java, dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/ErrorsTab.java, dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/HistoryEntry.java, dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/HistoryTab.java, dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/StatusParser.java, dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/TraceEntry.java, dsl/camel-jbang/camel-jbang-plugin-tui/src/test/java/org/apache/camel/dsl/jbang/core/commands/tui/StatusParserTest.java
   - `camel-jbang-plugin-validate` ← downstream of org.apache.camel:camel-jbang-core
   - `camel-jcache` ← downstream of org.apache.camel:camel-support
   - `camel-jcr` ← downstream of org.apache.camel:camel-support
   - `camel-jdbc` ← downstream of org.apache.camel:camel-support
   - `camel-jetty` ← downstream of org.apache.camel:camel-support
   - `camel-jetty-common` ← downstream of org.apache.camel:camel-core-model
   - `camel-jfr` ← downstream of org.apache.camel:camel-support
   - `camel-jgroups` ← downstream of org.apache.camel:camel-support
   - `camel-jgroups-raft` ← downstream of org.apache.camel:camel-support
   - `camel-jira` ← downstream of org.apache.camel:camel-support
   - `camel-jms` ← downstream of org.apache.camel:camel-support
   - `camel-jmx` ← downstream of org.apache.camel:camel-support
   - `camel-jolt` ← downstream of org.apache.camel:camel-support
   - `camel-jooq` ← downstream of org.apache.camel:camel-support
   - `camel-joor` ← downstream of org.apache.camel:camel-support
   - `camel-jpa` ← downstream of org.apache.camel:camel-support
   - `camel-jq` ← downstream of org.apache.camel:camel-support
   - `camel-jsch` ← downstream of org.apache.camel:camel-core-model
   - `camel-jslt` ← downstream of org.apache.camel:camel-support
   - `camel-json-validator` ← downstream of org.apache.camel:camel-support
   - `camel-jsonapi` ← downstream of org.apache.camel:camel-support
   - `camel-jsonata` ← downstream of org.apache.camel:camel-support
   - `camel-jsonb` ← downstream of org.apache.camel:camel-support
   - `camel-jsonpath` ← downstream of org.apache.camel:camel-support
   - `camel-jsoup` ← downstream of org.apache.camel:camel-support
   - `camel-jt400` ← downstream of org.apache.camel:camel-support
   - `camel-jta` ← downstream of org.apache.camel:camel-support
   - `camel-jte` ← downstream of org.apache.camel:camel-support
   - `camel-kafka` ← downstream of org.apache.camel:camel-support
   - `camel-kamelet` ← downstream of org.apache.camel:camel-core-model
   - `camel-kamelet-main-support` ← downstream of org.apache.camel:camel-main
   - `camel-keycloak` ← downstream of org.apache.camel:camel-support
   - `camel-knative` ← downstream of org.apache.camel:camel-support
   - `camel-knative-api` ← downstream of org.apache.camel:camel-support
   - `camel-knative-http` ← downstream of org.apache.camel:camel-core-model
   - `camel-knative-parent` ← downstream of org.apache.camel:camel-core-model
   - `camel-kserve` ← downstream of org.apache.camel:camel-support
   - `camel-kubernetes` ← downstream of org.apache.camel:camel-support
   - `camel-kudu` ← downstream of org.apache.camel:camel-support
   - `camel-langchain4j-agent` ← downstream of org.apache.camel:camel-support
   - `camel-langchain4j-agent-api` ← downstream of org.apache.camel:camel-core-model
   - `camel-langchain4j-chat` ← downstream of org.apache.camel:camel-support
   - `camel-langchain4j-core` ← downstream of org.apache.camel:camel-support
   - `camel-langchain4j-embeddings` ← downstream of org.apache.camel:camel-support
   - `camel-langchain4j-embeddingstore` ← downstream of org.apache.camel:camel-support
   - `camel-langchain4j-embeddingstore-api` ← downstream of org.apache.camel:camel-core-model
   - `camel-langchain4j-ingest` ← downstream of org.apache.camel:camel-support
   - `camel-langchain4j-tokenizer` ← downstream of org.apache.camel:camel-support
   - `camel-langchain4j-web-search` ← downstream of org.apache.camel:camel-support
   - `camel-language` ← downstream of org.apache.camel:camel-support
   - `camel-launcher-container` ← downstream of org.apache.camel:camel-launcher
   - `camel-ldap` ← downstream of org.apache.camel:camel-support
   - `camel-ldif` ← downstream of org.apache.camel:camel-support
   - `camel-log` ← downstream of org.apache.camel:camel-support
   - `camel-lra` ← downstream of org.apache.camel:camel-core-model
   - `camel-lucene` ← downstream of org.apache.camel:camel-support
   - `camel-lumberjack` ← downstream of org.apache.camel:camel-support
   - `camel-lzf` ← downstream of org.apache.camel:camel-support
   - `camel-mail` ← downstream of org.apache.camel:camel-support
   - `camel-mail-microsoft-oauth` ← downstream of org.apache.camel:camel-core-model
   - `camel-main` ← downstream of org.apache.camel:camel-support
   - `camel-management` ← downstream of org.apache.camel:camel-core-engine
   - `camel-mapstruct` ← downstream of org.apache.camel:camel-support
   - `camel-master` ← downstream of org.apache.camel:camel-support
   - `camel-maven-plugin` ← downstream of org.apache.camel:camel-spring-main
   - `camel-mcp-server` ← downstream of org.apache.camel:camel-core-model
   - `camel-mcp-server-api` ← downstream of org.apache.camel:camel-support
   - `camel-mdc` ← downstream of org.apache.camel:camel-support
   - `camel-metrics` ← downstream of org.apache.camel:camel-support
   - `camel-micrometer` ← downstream of org.apache.camel:camel-support
   - `camel-micrometer-observability` ← downstream of org.apache.camel:camel-core-model
   - `camel-micrometer-prometheus` ← downstream of org.apache.camel:camel-core-model
   - `camel-microprofile-config` ← downstream of org.apache.camel:camel-support
   - `camel-microprofile-fault-tolerance` ← downstream of org.apache.camel:camel-support
   - `camel-microprofile-health` ← downstream of org.apache.camel:camel-core-model
   - `camel-microprofile-parent` ← downstream of org.apache.camel:camel-core-model
   - `camel-milo` ← downstream of org.apache.camel:camel-support
   - `camel-milvus` ← downstream of org.apache.camel:camel-support
   - `camel-mina` ← downstream of org.apache.camel:camel-support
   - `camel-mina-sftp` ← downstream of org.apache.camel:camel-core-model
   - `camel-minio` ← downstream of org.apache.camel:camel-support
   - `camel-mllp` ← downstream of org.apache.camel:camel-support
   - `camel-mock` ← downstream of org.apache.camel:camel-support
   - `camel-mongodb` ← downstream of org.apache.camel:camel-support
   - `camel-mongodb-gridfs` ← downstream of org.apache.camel:camel-support
   - `camel-mustache` ← downstream of org.apache.camel:camel-support
   - `camel-mvel` ← downstream of org.apache.camel:camel-support
   - `camel-mybatis` ← downstream of org.apache.camel:camel-core-model
   - `camel-nats` ← downstream of org.apache.camel:camel-support
   - `camel-neo4j` ← downstream of org.apache.camel:camel-support
   - `camel-netty` ← downstream of org.apache.camel:camel-support
   - `camel-netty-http` ← downstream of org.apache.camel:camel-core-model
   - `camel-oaipmh` ← downstream of org.apache.camel:camel-support
   - `camel-oauth` ← downstream of org.apache.camel:camel-support
   - `camel-observability-services` ← downstream of org.apache.camel:camel-core-model
   - `camel-observation` ← downstream of org.apache.camel:camel-support
   - `camel-ocsf` ← downstream of org.apache.camel:camel-support
   - `camel-ognl` ← downstream of org.apache.camel:camel-support
   - `camel-olingo2` ← downstream of org.apache.camel:camel-support
   - `camel-olingo2-api` ← downstream of org.apache.camel:camel-core-model
   - `camel-olingo2-parent` ← downstream of org.apache.camel:camel-core-model
   - `camel-olingo4` ← downstream of org.apache.camel:camel-support
   - `camel-olingo4-api` ← downstream of org.apache.camel:camel-support
   - `camel-olingo4-parent` ← downstream of org.apache.camel:camel-core-model
   - `camel-once` ← downstream of org.apache.camel:camel-support
   - `camel-opa` ← downstream of org.apache.camel:camel-support
   - `camel-openai` ← downstream of org.apache.camel:camel-support
   - `camel-openapi-java` ← downstream of org.apache.camel:camel-core-model
   - `camel-openapi-rest-dsl-generator` ← downstream of org.apache.camel:camel-core-engine
   - `camel-openapi-validator` ← downstream of org.apache.camel:camel-core-model
   - `camel-opensearch` ← downstream of org.apache.camel:camel-support
   - `camel-openstack` ← downstream of org.apache.camel:camel-support
   - `camel-opentelemetry` ← downstream of org.apache.camel:camel-support
   - `camel-opentelemetry-metrics` ← downstream of org.apache.camel:camel-support
   - `camel-opentelemetry2` ← downstream of org.apache.camel:camel-core-model
   - `camel-optaplanner` ← downstream of org.apache.camel:camel-support
   - `camel-paho` ← downstream of org.apache.camel:camel-support
   - `camel-paho-mqtt5` ← downstream of org.apache.camel:camel-support
   - `camel-parquet-avro` ← downstream of org.apache.camel:camel-support
   - `camel-pdf` ← downstream of org.apache.camel:camel-support
   - `camel-pg-replication-slot` ← downstream of org.apache.camel:camel-support
   - `camel-pgevent` ← downstream of org.apache.camel:camel-support
   - `camel-pgvector` ← downstream of org.apache.camel:camel-support
   - `camel-pinecone` ← downstream of org.apache.camel:camel-support
   - `camel-platform-http` ← downstream of org.apache.camel:camel-core-model
   - `camel-platform-http-jolokia` ← downstream of org.apache.camel:camel-support
   - `camel-platform-http-main` ← downstream of org.apache.camel:camel-core-model
   - `camel-platform-http-vertx` ← downstream of org.apache.camel:camel-core-model
   - `camel-plc4x` ← downstream of org.apache.camel:camel-support
   - `camel-pqc` ← downstream of org.apache.camel:camel-support
   - `camel-printer` ← downstream of org.apache.camel:camel-support
   - `camel-protobuf` ← downstream of org.apache.camel:camel-support
   - `camel-pubnub` ← downstream of org.apache.camel:camel-support
   - `camel-pulsar` ← downstream of org.apache.camel:camel-support
   - `camel-python` ← downstream of org.apache.camel:camel-support
   - `camel-python3` ← downstream of org.apache.camel:camel-support
   - `camel-qdrant` ← downstream of org.apache.camel:camel-support
   - `camel-quartz` ← downstream of org.apache.camel:camel-support
   - `camel-quickfix` ← downstream of org.apache.camel:camel-support
   - `camel-quickjs` ← downstream of org.apache.camel:camel-support
   - `camel-reactive-streams` ← downstream of org.apache.camel:camel-core-model
   - `camel-reactor` ← downstream of org.apache.camel:camel-support
   - `camel-redis` ← downstream of org.apache.camel:camel-support
   - `camel-ref` ← downstream of org.apache.camel:camel-support
   - `camel-resilience4j` ← downstream of org.apache.camel:camel-support
   - `camel-resilience4j-micrometer` ← downstream of org.apache.camel:camel-core-model
   - `camel-resourceresolver-github` ← downstream of org.apache.camel:camel-support
   - `camel-rest` ← downstream of org.apache.camel:camel-support
   - `camel-rest-openapi` ← downstream of org.apache.camel:camel-support
   - `camel-rest-postman` ← downstream of org.apache.camel:camel-support
   - `camel-restdsl-openapi-plugin` ← downstream of org.apache.camel:camel-servlet
   - `camel-robotframework` ← downstream of org.apache.camel:camel-support
   - `camel-rocketmq` ← downstream of org.apache.camel:camel-support
   - `camel-rss` ← downstream of org.apache.camel:camel-support
   - `camel-rxjava` ← downstream of org.apache.camel:camel-support
   - `camel-saga` ← downstream of org.apache.camel:camel-support
   - `camel-salesforce` ← downstream of org.apache.camel:camel-core-model
   - `camel-salesforce-codegen` ← downstream of org.apache.camel:camel-core-model
   - `camel-salesforce-parent` ← downstream of org.apache.camel:camel-core-model
   - `camel-sap-netweaver` ← downstream of org.apache.camel:camel-support
   - `camel-saxon` ← downstream of org.apache.camel:camel-core-model
   - `camel-scheduler` ← downstream of org.apache.camel:camel-support
   - `camel-schematron` ← downstream of org.apache.camel:camel-support
   - `camel-seda` ← downstream of org.apache.camel:camel-support
   - `camel-servicenow` ← downstream of org.apache.camel:camel-support
   - `camel-servicenow-maven-plugin` ← downstream of org.apache.camel:camel-core-model
   - `camel-servicenow-parent` ← downstream of org.apache.camel:camel-core-model
   - `camel-servlet` ← downstream of org.apache.camel:camel-support
   - `camel-shell` ← downstream of org.apache.camel:camel-support
   - `camel-shiro` ← downstream of org.apache.camel:camel-support
   - `camel-sjms` ← downstream of org.apache.camel:camel-support
   - `camel-sjms2` ← downstream of org.apache.camel:camel-support
   - `camel-slack` ← downstream of org.apache.camel:camel-support
   - `camel-smb` ← downstream of org.apache.camel:camel-support
   - `camel-smooks` ← downstream of org.apache.camel:camel-support
   - `camel-smpp` ← downstream of org.apache.camel:camel-support
   - `camel-snakeyaml` ← downstream of org.apache.camel:camel-support
   - `camel-snmp` ← downstream of org.apache.camel:camel-support
   - `camel-soap` ← downstream of org.apache.camel:camel-support
   - `camel-solr` ← downstream of org.apache.camel:camel-support
   - `camel-spiffe` ← downstream of org.apache.camel:camel-support
   - `camel-splunk-hec` ← downstream of org.apache.camel:camel-support
   - `camel-spring` ← downstream of org.apache.camel:camel-core-model
   - `camel-spring-ai-chat` ← downstream of org.apache.camel:camel-support
   - `camel-spring-ai-embeddings` ← downstream of org.apache.camel:camel-support
   - `camel-spring-ai-image` ← downstream of org.apache.camel:camel-support
   - `camel-spring-ai-parent` ← downstream of org.apache.camel:camel-core-model
   - `camel-spring-ai-vector-store` ← downstream of org.apache.camel:camel-support
   - `camel-spring-batch` ← downstream of org.apache.camel:camel-support
   - `camel-spring-cloud-config` ← downstream of org.apache.camel:camel-support
   - `camel-spring-jdbc` ← downstream of org.apache.camel:camel-core-model
   - `camel-spring-ldap` ← downstream of org.apache.camel:camel-support
   - `camel-spring-main` ← downstream of org.apache.camel:camel-core-model
   - `camel-spring-parent` ← downstream of org.apache.camel:camel-core-model
   - `camel-spring-rabbitmq` ← downstream of org.apache.camel:camel-support
   - `camel-spring-redis` ← downstream of org.apache.camel:camel-support
   - `camel-spring-security` ← downstream of org.apache.camel:camel-core-model
   - `camel-spring-ws` ← downstream of org.apache.camel:camel-support
   - `camel-spring-xml` ← downstream of org.apache.camel:camel-core-model
   - `camel-sql` ← downstream of org.apache.camel:camel-support
   - `camel-ssh` ← downstream of org.apache.camel:camel-support
   - `camel-state-store` ← downstream of org.apache.camel:camel-support
   - `camel-state-store-parent` ← downstream of org.apache.camel:camel-core-model
   - `camel-stax` ← downstream of org.apache.camel:camel-support
   - `camel-stitch` ← downstream of org.apache.camel:camel-support
   - `camel-stream` ← downstream of org.apache.camel:camel-support
   - `camel-streamcaching-test` ← downstream of org.apache.camel:camel-test-junit6
   - `camel-stringtemplate` ← downstream of org.apache.camel:camel-support
   - `camel-stripe` ← downstream of org.apache.camel:camel-support
   - `camel-stub` ← downstream of org.apache.camel:camel-core-model
   - `camel-support` ← core/camel-support/src/main/java/org/apache/camel/support/MessageHelper.java
   - `camel-swift` ← downstream of org.apache.camel:camel-support
   - `camel-syslog` ← downstream of org.apache.camel:camel-support
   - `camel-tahu` ← downstream of org.apache.camel:camel-support
   - `camel-tarfile` ← downstream of org.apache.camel:camel-core-model
   - `camel-telegram` ← downstream of org.apache.camel:camel-support
   - `camel-telemetry` ← downstream of org.apache.camel:camel-support
   - `camel-telemetry-dev` ← downstream of org.apache.camel:camel-core-model
   - `camel-tensorflow-serving` ← downstream of org.apache.camel:camel-support
   - `camel-test-infra-all` ← downstream of org.apache.camel:camel-test-infra-artemis
   - `camel-test-infra-artemis` ← downstream of org.apache.camel:camel-test-junit6
   - `camel-test-infra-cli` ← downstream of org.apache.camel:camel-support
   - `camel-test-infra-smb` ← downstream of org.apache.camel:camel-test-junit6
   - `camel-test-junit5` ← downstream of org.apache.camel:camel-support
   - `camel-test-junit6` ← downstream of org.apache.camel:camel-support
   - `camel-test-main-junit5` ← downstream of org.apache.camel:camel-core-model
   - `camel-test-main-junit6` ← downstream of org.apache.camel:camel-core-model
   - `camel-test-parent` ← downstream of org.apache.camel:camel-core-model
   - `camel-test-spring-junit5` ← downstream of org.apache.camel:camel-core-model
   - `camel-test-spring-junit6` ← downstream of org.apache.camel:camel-core-model
   - `camel-thrift` ← downstream of org.apache.camel:camel-support
   - `camel-thymeleaf` ← downstream of org.apache.camel:camel-support
   - `camel-tika` ← downstream of org.apache.camel:camel-support
   - `camel-timer` ← downstream of org.apache.camel:camel-support
   - `camel-tooling-maven` ← downstream of org.apache.camel:camel-support
   - `camel-toon` ← downstream of org.apache.camel:camel-support
   - `camel-tracing` ← downstream of org.apache.camel:camel-support
   - `camel-twilio` ← downstream of org.apache.camel:camel-support
   - `camel-twitter` ← downstream of org.apache.camel:camel-support
   - `camel-ubl` ← downstream of org.apache.camel:camel-support
   - `camel-undertow` ← downstream of org.apache.camel:camel-support
   - `camel-undertow-spring-security` ← downstream of org.apache.camel:camel-core-model
   - `camel-univocity-parsers` ← downstream of org.apache.camel:camel-support
   - `camel-validator` ← downstream of org.apache.camel:camel-support
   - `camel-velocity` ← downstream of org.apache.camel:camel-support
   - `camel-vertx` ← downstream of org.apache.camel:camel-support
   - `camel-vertx-common` ← downstream of org.apache.camel:camel-support
   - `camel-vertx-http` ← downstream of org.apache.camel:camel-core-model
   - `camel-vertx-parent` ← downstream of org.apache.camel:camel-core-model
   - `camel-vertx-websocket` ← downstream of org.apache.camel:camel-support
   - `camel-wal` ← downstream of org.apache.camel:camel-support
   - `camel-wasm` ← downstream of org.apache.camel:camel-support
   - `camel-weather` ← downstream of org.apache.camel:camel-support
   - `camel-weaviate` ← downstream of org.apache.camel:camel-support
   - `camel-web3j` ← downstream of org.apache.camel:camel-support
   - `camel-webhook` ← downstream of org.apache.camel:camel-support
   - `camel-whatsapp` ← downstream of org.apache.camel:camel-support
   - `camel-wordpress` ← downstream of org.apache.camel:camel-support
   - `camel-workday` ← downstream of org.apache.camel:camel-support
   - `camel-xchange` ← downstream of org.apache.camel:camel-support
   - `camel-xj` ← downstream of org.apache.camel:camel-core-model
   - `camel-xml-io` ← downstream of org.apache.camel:camel-core-engine
   - `camel-xml-io-dsl` ← downstream of org.apache.camel:camel-core-engine
   - `camel-xml-jaxb` ← downstream of org.apache.camel:camel-core-engine
   - `camel-xml-jaxb-dsl` ← downstream of org.apache.camel:camel-core-languages
   - `camel-xml-jaxb-dsl-test-definition` ← downstream of org.apache.camel:camel-support
   - `camel-xml-jaxb-dsl-test-spring` ← downstream of org.apache.camel:camel-support
   - `camel-xml-jaxp` ← downstream of org.apache.camel:camel-support
   - `camel-xmlsecurity` ← downstream of org.apache.camel:camel-support
   - `camel-xmpp` ← downstream of org.apache.camel:camel-support
   - `camel-xpath` ← downstream of org.apache.camel:camel-support
   - `camel-xslt` ← downstream of org.apache.camel:camel-support
   - `camel-xslt-saxon` ← downstream of org.apache.camel:camel-core-model
   - `camel-yaml-dsl-common` ← downstream of org.apache.camel:camel-core-engine
   - `camel-yaml-dsl-validator` ← downstream of org.apache.camel:camel-core-languages
   - `camel-yaml-dsl-validator-maven-plugin` ← downstream of org.apache.camel:camel-yaml-dsl-validator
   - `camel-yaml-io` ← downstream of org.apache.camel:camel-core-engine
   - `camel-zendesk` ← downstream of org.apache.camel:camel-support
   - `camel-zip-deflater` ← downstream of org.apache.camel:camel-support
   - `camel-zipfile` ← downstream of org.apache.camel:camel-support
   - `camel-zookeeper` ← downstream of org.apache.camel:camel-support
   - `camel-zookeeper-master` ← downstream of org.apache.camel:camel-support
   - `components` ← downstream of org.apache.camel:camel-core-model
   - `docs` ← docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-get-history.adoc
   
   </details>
   
   <details><summary>Modules with tests skipped (26)</summary>
   
   - `apache-camel`
   - `camel-allcomponents`
   - `camel-catalog`
   - `camel-catalog-console`
   - `camel-catalog-maven`
   - `camel-catalog-suggest`
   - `camel-componentdsl`
   - `camel-endpointdsl`
   - `camel-endpointdsl-support`
   - `camel-itest`
   - `camel-jbang-it`
   - `camel-jbang-main`
   - `camel-jbang-plugin-edit`
   - `camel-jbang-plugin-generate`
   - `camel-jbang-plugin-kubernetes`
   - `camel-jbang-plugin-test`
   - `camel-kamelet-main`
   - `camel-launcher`
   - `camel-report-maven-plugin`
   - `camel-route-parser`
   - `camel-salesforce-maven-plugin`
   - `camel-yaml-dsl`
   - `camel-yaml-dsl-deserializers`
   - `camel-yaml-dsl-maven-plugin`
   - `coverage`
   - `dummy-component`
   
   </details>
   
   > :information_source: Shadow mode — Scalpel observes but does not affect test execution. [Learn more](https://github.com/maveniverse/scalpel)
   
   </details>
   
   :warning: **Some tests are disabled on GitHub Actions** (`@DisabledIfSystemProperty(named = "ci.env.name")`) and require manual verification:
   
   - `dsl/camel-jbang/camel-jbang-core`: 2 test(s) disabled on GitHub Actions
   - `core/camel-core`: 2 test(s) disabled on GitHub Actions
   
   :bulb: **Manual integration tests recommended:**
   
   > You modified `dsl/camel-jbang/camel-jbang-core`. The related integration tests in `dsl/camel-jbang/camel-jbang-it` are excluded from CI. Consider running them manually:
   > ```
   > mvn verify -f dsl/camel-jbang/camel-jbang-it -Djbang-it-test
   > ```
   
   <details><summary>Build reactor — dependencies compiled but only changed modules were tested (5 modules, 1m 17s total)</summary>
   
   **Total reactor time:** 1m 17s
   
   | Module | Duration | Status |
   | --- | --- | --- |
   | Camel :: JBang :: Plugin :: TUI | 40.0s | SUCCESS |
   | Camel :: Docs | 21.5s | SUCCESS |
   | Camel :: Support | 15.5s | SUCCESS |
   | Camel :: Core | n/a |  |
   | Camel :: JBang :: Core | n/a |  |
   
   **Top 20 slowest modules:**
   - `Camel :: JBang :: Plugin :: TUI` (40.0s)
   - `Camel :: Docs` (21.5s)
   - `Camel :: Support` (15.5s)
   
   </details>
   
   ---
   :gear: [View full build and test results](https://github.com/apache/camel/actions/runs/35507808105)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] CAMEL-24844: the message dump carries the body's size and says when the body is null; the camel-jbang history views and the history tool show the body's type and size per step [camel]

Posted by "davsclaus (via GitHub)" <gi...@apache.org>.
davsclaus commented on code in PR #26627:
URL: https://github.com/apache/camel/pull/26627#discussion_r4056827558


##########
core/camel-support/src/main/java/org/apache/camel/support/MessageHelper.java:
##########
@@ -1109,6 +1110,17 @@ public static JsonObject dumpAsJSonObject(
                     jb.put("size", size);
                 }
             }
+            if (!jb.containsKey("size") && message.getExchange() != null && message.getExchange().getContext() != null) {
+                // the size of a text or byte body, from the message size strategy when it is enabled (the dev
+                // profile does): lengths only, nothing is read or converted (CAMEL-24844)
+                MessageSizeStrategy sizeStrategy = message.getExchange().getContext().getMessageSizeStrategy();
+                if (sizeStrategy != null && sizeStrategy.isEnabled()) {
+                    long size = sizeStrategy.computeBodySize(message);
+                    if (size >= 0) {

Review Comment:
   Applied in 6e65292cc0f0, with one difference from the suggestion: the guard is on the body being null, not on the size being zero, so an empty text or byte array keeps its `size: 0` (a real fact) while a null body gets no size at all. The test asserts both: no size for null, 0 for an empty string. Same rule as in #26626's history entries.



##########
dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/HistoryTab.java:
##########
@@ -1388,7 +1388,7 @@ private void renderTraceStepDetail(Frame frame, Rect area, List<TraceEntry> step
                     headersChanged, prev != null ? prev.headers : null);
         }
         if (showTraceBody) {
-            addBodyLines(lines, entry.body, entry.bodyType, bodyChanged);
+            addBodyLines(lines, entry.body, entry.bodyType, entry.bodySize, bodyChanged);

Review Comment:
   Both paths in 6e65292cc0f0: the diagram info panel carries a bodySize local from either entry type and renders the same `(type, size)` detail, and the error detail calls the five-argument addBodyLines with the entry's size.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org