Skip to content

CAMEL-25750: camel-management, camel-console - the body types over JMX, in the route coverage dump and in a body-type console - #28181

Merged
davsclaus merged 3 commits into
feature/CAMEL-25750-body-type-registryfrom
feature/CAMEL-25750-body-type-dump
Oct 20, 2026
Merged

davsclaus merged 3 commits into
feature/CAMEL-25750-body-type-registryfrom
feature/CAMEL-25750-body-type-dump

Conversation

@davsclaus

@davsclaus davsclaus commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Stacked on #28178 (it needs the BodyTypeRegistry). Review that one first; this PR's own changes are the commits that are not in #28178 (it merges #28178's branch to keep up with it). It is independent of #28180.

This lets the body types a workload brought to each step be read and kept. For example, run the messages of the expected production workload in a test, then see what each EIP has been reached with. There are three ways to read them, besides the Java API (the BodyTypeRegistry context plugin):

  • JMX:

    • each processor has BodyTypes and BodyKinds (String[], kinds as null, payload, data or collection);
    • each route counts its steps reached with more than one type (VariedBodyTypes) and with bodies of more than one kind (MixedBodyKinds), which need attention.

    The route console now reads its variedBodyTypes/mixedBodyKinds from these attributes, instead of counting them itself.

  • The route coverage dump (dumpRoutesCoverageAsXml, which the Camel test kits write when route coverage is enabled) has bodyTypes and bodyKinds attributes on each step a message reached:

    <to bodyKinds="payload,data" bodyTypes="java.lang.String,java.util.LinkedHashMap" exchangesTotal="2" id="result"
        index="4" totalProcessingTime="0" uri="mock:result"/>
  • A new body-type dev console lists the steps a message has reached, per route, with their types and kinds. varied=true keeps only the steps reached with more than one type, and filter selects routes. The text form uses the same column as camel cmd route-structure.

The Message History docs get a "Dumping the body types" section, and the catalog gets the new console.

Tests

  • New ManagedBodyTypesTest (camel-management): the JMX attributes, the counts, nothing before a message, and the coverage dump.
  • New BodyTypeDevConsoleTest (camel-console): steps and kinds, varied, filter, nothing reached yet.
  • The whole camel-management suite (573) and the whole camel-console suite (258) pass locally, run against the changed core modules through a scratch local repository.

Claude Code on behalf of davsclaus

🤖 Generated with Claude Code

…X, in the route coverage dump and in a body-type console

So the body types a workload brought to each step can be read and kept, such as after a test run:
- JMX: each processor has BodyTypes and BodyKinds, and each route counts its steps reached with
  more than one type (VariedBodyTypes) and with more than one kind (MixedBodyKinds). The route
  console reads its counts from there.
- The route coverage dump (dumpRoutesCoverageAsXml, written by the Camel test kits) has bodyTypes
  and bodyKinds attributes on each step a message reached.
- The new body-type dev console lists those steps per route, with varied and filter options.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: Claus Ibsen <claus.ibsen@gmail.com>
davsclaus and others added 2 commits October 20, 2026 15:09
…coverage dump name the collection kind

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: Claus Ibsen <claus.ibsen@gmail.com>
@github-actions

Copy link
Copy Markdown
Contributor

🌟 Thank you for your contribution to the Apache Camel project! 🌟
🤖 CI automation will test this PR automatically.

🐫 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 have access to the summary.

⚠️ Be careful when sharing logs. Review their contents before sharing them publicly.

@davsclaus
davsclaus merged commit 2a64c4a into feature/CAMEL-25750-body-type-registry Oct 20, 2026
2 checks passed
@github-actions
github-actions Bot deleted the feature/CAMEL-25750-body-type-dump branch October 20, 2026 16:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant