Skip to content

CAMEL-25750: camel-core, camel-jbang - keep the body types each step has been reached with, and use them in the hint, JMX, the coverage dump and the validator - #28178

Merged
davsclaus merged 14 commits into
mainfrom
feature/CAMEL-25750-body-type-registry
Oct 20, 2026
Merged

davsclaus merged 14 commits into
mainfrom
feature/CAMEL-25750-body-type-registry

Conversation

@davsclaus

@davsclaus davsclaus commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

The message history records the body type at each node, but only for one exchange: camel history shows the last one. This keeps, per node, every type the node has been reached with across all the messages, so a tool can show what the body was at each step. That includes a branch the last message did not take, and every type where they varied. This is CAMEL-25750. The registry is the base, and three parts build on it: the hint on a body error (was #28180), reading the types over JMX, in the route coverage dump and in a dev console (was #28181), and the validator using what a running app saw (was #28185, part 2 of the issue). The three were stacked on this PR and are merged into it, so CI builds them once.

The registry

  • BodyTypeRegistry (camel-api SPI, a context plugin): per route and node, the distinct body types in the order first seen, at most 8 per node. Each type also has a kind, for what a step can do with it:

    • null;
    • payload: text, bytes, a stream, a file, or a single value such as a number;
    • data: one Java object with fields to read, a Map or an object;
    • collection: many objects, a List, a Set or an array, or an iterator or a stream over them.

    A step reached with types of one kind is dynamic. A step reached with more than one kind needs attention: a step that writes or sends fails for the data, and one that reads fields fails for the payload.

  • Fed by all four message history factories (default, micrometer, metrics, opentelemetry) through DefaultMessageHistory.captureBody. So it costs nothing unless the message history is on, as the dev profile turns it on. A route's types are forgotten when the route is removed, so a reload never mixes two versions.

  • route-structure console: bodyTypes and bodyKinds on each processor line (JSON). In the text output, the types line up in a column after the code.

  • processor console: bodyTypes and bodyKinds per processor. The route console with processors=true includes them too, and that is what the Camel CLI's status file holds, so tools that read the status file get each step's body types with no extra action.

  • route console: variedBodyTypes and mixedBodyKinds per route. The CLI status file and camel_runtime_routes pass them on, so an AI that lists the routes sees them without asking.

  • camel cmd route-structure shows the column. --varied shows only the steps reached with more than one type.

  • AI and MCP tools: get_route_structure and camel_runtime_route_structure describe the fields and take varied=true.

  • Docs: a "Body types across messages" section on the Message History page, the Camel CLI diagnostics page, and the MCP tool table.

Source: orders.camel.yaml
--------------------------------------------------------------------------------
   1: route[orders]
   2:   from[file:inbox]
   5:     unmarshal[json]                body: GenericFile
   8:     to[http://stock/api/reserve]   body: LinkedHashMap | String (data and payload)
  11:     log[${body}]                   body: String | byte[]

Choices

  • Registered eagerly. The message history feeds the registry from many threads, and a lazy context plugin can be created twice on the first lookup. It's one small object per CamelContext.
  • Looked up once. Each factory looks the registry up in doInit and calls the new captureBody(exchange, registry). The old captureBody(exchange) stays, and does the lookup, for factories outside Camel.
  • Every kind is kept, also beyond the 8 types a node keeps, because a new kind is what needs attention. A node that has seen a type before records nothing more and takes no lock.
  • A single value counts as payload (a number, a boolean, an enum, a CharSequence), as a type converter turns it into text. This is only in BodyFacts.kindOf: isPayload, which the hints use, is unchanged.

The hint on a body error (was #28180)

When a step fails on the body and the message history is on, the hint now says when other messages have reached the same step with another kind of body:

${body.qty} ... the body is text (a String): unmarshal it first (unmarshal: json) to read its fields; other messages
reached this step with data (LinkedHashMap), so the body here depends on the path a message takes

The step is right for some messages, and a path to it is what differs, such as a branch that does not unmarshal. A person or a model reading the error then looks at the branches before the step, instead of changing the step itself. The benchmark runs showed exactly this case: some paths marshal or unmarshal, others don't.

How

  • BodyFacts.hint(...) appends the clause, so every caller gets it with no change: the bean OGNL read, Groovy, jsonpath, jq, unmarshal, the HTTP producer, the platform-http reply and the file write. It is the last part of every message, and it reads right also where a caller wraps the hint in parentheses.
  • The failing step is the last entry of the message history. Its kinds come from the registry; the kind of the current body is left out.
  • The new BodyTypeRegistry.getBodyTypes(routeId, nodeId, kind) gives the types of one kind. The default registry keeps each type with its kind in one array, so a reader never sees the two half-updated.
  • Without the message history, or when every message brought the same kind, nothing changes.
  • One sentence in the Message History docs (and the catalog copy).

Reading the body types: JMX, the route coverage dump, a dev console (was #28181)

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.

The validator uses what the running app saw (was #28185)

The YAML validator walks the body through the steps of each route, and stays quiet where the file does not say what the body is: after a consumer other than the file consumer, or after a to: it cannot follow. When an integration runs routes of the file, with the message history on as camel run --dev does, those gaps are now filled with what the integration saw:

route orders: simple reads a field of the body (${body.qty}), but the body here is still text, not parsed data - in
the running app, from: platform-http:/orders gave a ByteArrayInputStreamCache: unmarshal it first with the data format
of the payload (json, jacksonXml, csv, ...) to read its fields

So the next version of a file is checked against what the integration does with the current one. In dev mode a reload makes the registry forget the old route, so the facts always describe the version that runs. The checks reach camel validate source and the AI and MCP tools that validate before they write.

How

  • Validator:
    • ProjectFacts.observed, keyed from:<uri> / to:<uri> without the query, as RouteGraph.normalize keys the routes;
    • TextBodyFlow uses it where its walk would not know the body, at the start of a route and after a to:. The walk's own knowledge comes first: the file consumer still gives the file as read.
    • A single kind sets the state: payload is text, data and collection are parsed data. More than one kind stays unknown, so nothing is said.
    • Observed data has no data format, so the marshal advice becomes "add marshal with the data format to write (such as marshal: json)" instead of add marshal: null.
  • camel-jbang: ValidatorFacts.read gets the file name, and ObservedBodies does the work:
    • it lists ~/.camel for status files first, and stops there when no integration runs, which is most validations;
    • it finds the integration whose status has a route from the file, by path, or by name for a classpath source;
    • it asks that integration for its route structure, with a 3 second timeout; any failure means no facts;
    • it keeps the answer for 2 seconds, as a write validates the file before and after the change.
  • Deriving the facts (fromRouteStructure):
    • what a consumer gave is what the first step was reached with;
    • what a producer returned is what the next step of its block was reached with. A to that ends its block gives nothing, because the step after its block is reached by other paths too, and a toD has no endpoint of its own.
  • Docs: "What a running integration saw" on the Camel CLI validation page, and a pointer from the Message History section.

Also: when no integration runs, ObservedBodies keeps that answer for its 2 seconds too, so a write that validates twice lists ~/.camel once.

Not in this PR

Tests

The registry:

Run locally against the changed core modules, through a scratch local repository:

  • camel-core (27):
    • BodyTypeRegistryTest: types across exchanges, the branch the last message did not take, null, no message history, route removal;
    • DefaultBodyTypeRegistryTest: order, the cap, kinds beyond the cap, per route;
    • BodyFactsTest (kindOf);
    • the MessageHistory* and route removal tests.
  • camel-console: the whole module (255), including new route-structure tests for the kinds, the text column and the route console counts.
  • camel-jbang-core:
    • CamelRouteStructureActionTest: column, kinds, --varied table and JSON;
    • ToolRegistryTest: varied for the tool;
    • the AI tool tests (45).
  • camel-jbang-plugin-tui: AiPanelPromptBudgetTest still within budget.
  • camel-jbang-mcp: RuntimeToolsTest, RuntimeToolsWiringTest (31).
  • Components: the message history tests of camel-micrometer (the registry is fed through its factory), camel-metrics and camel-opentelemetry-metrics.

The hint:

  • New BodyFactsOtherBodiesTest (camel-core):
    • a message through the branch that makes data, then one with text: the read on the text says other messages brought data;
    • two messages with text: no clause.
  • DefaultBodyTypeRegistryTest: the types of one kind.
  • These still pass, unchanged: SimpleSyntaxHintsTest (33), BodyFactsTest, BodyTypeRegistryTest and the MessageHistory* tests, 58 in all.

JMX, coverage dump, console:

  • 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.

The validator:

  • TextBodyFlowTest:

    • an HTTP consumer observed giving a stream cache;
    • a sql call observed returning a List before a file write;
    • mixed kinds say nothing;
    • the file consumer wins over an observation.

    The whole validator module (272) passes.

  • ObservedBodiesTest: the derivation, on the JSON shape a real route-structure console returns, captured from a test run; merging across routes; and matching a route's source to a file.

  • ValidateWithObservedBodiesTest, end to end against a fake running integration (status file and answered action):

    • SourceValidator reports from what the integration saw;
    • an integration of another file is not asked.
  • The whole camel-jbang-core suite passes (2,374 + 237).

After merging the three into this branch, the new and changed test classes of all four pass together, run locally through a scratch local repository: camel-core (19), camel-console (9), camel-management (3), camel-micrometer (1), camel-yaml-dsl-validator (31) and camel-jbang-core (35).

Claude Code on behalf of davsclaus

🤖 Generated with Claude Code

…hed with, and show them with the route structure

The message history records the type of the body at each node for one exchange. The new
BodyTypeRegistry, a context plugin, keeps per node every distinct type across all the exchanges,
and its kind: null, payload (text, bytes, a stream, a file, a single value), data (a Map, a List,
an object) or iterator. All four message history factories feed it, with the registry looked up
once in doInit. A route's body types are forgotten when the route is removed.

The route-structure console, camel cmd route-structure, and the AI and MCP route structure tools
show the types and kinds of each step. A step reached with bodies of more than one kind needs
attention. --varied (varied=true for the tools) shows only the steps reached with more than one
type, and the route console counts them per route (variedBodyTypes, mixedBodyKinds).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: Claus Ibsen <claus.ibsen@gmail.com>
@davsclaus davsclaus added this to the 4.24.0 milestone Oct 20, 2026
@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.

@gnodet-bot gnodet-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clean implementation of a diagnostic-only BodyTypeRegistry SPI. The concurrency model (volatile arrays + synchronized mutation + copy-on-write) is correct and efficient for the read-heavy / write-rare access pattern. The MAX_TYPES_PER_NODE=8 cap prevents unbounded memory growth. The eager plugin registration avoids the double-creation race documented in the comment. All four message history factories are symmetrically updated (DefaultMessageHistoryFactory, MetricsMessageHistoryFactory, MicrometerMessageHistoryFactory, and OpenTelemetryMessageHistoryFactory all call the 2-arg captureBody). Test coverage is thorough: unit tests for DefaultBodyTypeRegistry, integration tests for BodyTypeRegistry lifecycle (including route removal), dev console tests for both JSON and text output, CLI and MCP tests for the varied filter.

This review was generated by an AI agent, Hermès on behalf of @gnodet.

…ges reached the step with another kind of body

When a step fails on the body and the message history is on, the hint of BodyFacts ends with what the
BodyTypeRegistry knows about the step: "; other messages reached this step with data (LinkedHashMap), so
the body here depends on the path a message takes". The step is right for those messages, and a path to it,
such as a branch that does not unmarshal, is what differs. BodyTypeRegistry.getBodyTypes(routeId, nodeId,
kind) gives the types of one kind.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: Claus Ibsen <claus.ibsen@gmail.com>
…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 5 commits October 20, 2026 15:07
Collection is easier to understand than iterator. Data is one Java object with
fields to read (a Map or an object), and a collection is many objects: a List, a Set or an array, or
an iterator or a stream over them. A step reached with a List by some messages and a Map by others now
needs attention too, such as a path that did not split.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: Claus Ibsen <claus.ibsen@gmail.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: Claus Ibsen <claus.ibsen@gmail.com>
…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>

@gnodet-bot gnodet-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Following up on my earlier review — no issues were raised previously, and the new commit holds up.

The commit renames Kind.ITERATOR to Kind.COLLECTION and corrects the kindOf() classification: ArrayList and arrays were previously DATA; they are now correctly COLLECTION since they implement Collection<?> / are arrays. The rename is propagated consistently across the SPI, implementation, all four message history factories, consoles, JBang CLI, MCP tools, and docs. The test in BodyFactsTest is updated to match — ArrayList → COLLECTION, iterator() → COLLECTION, and a new array case (String[] {"a"}) confirms array classification. The terminology change (iterator → collection) aligns the kind names with Java type semantics: a List is a collection, not just an iterator. No behavioral impact other than the reclassification of ArrayList from DATA to COLLECTION, which was a bug.

LGTM.

This review was generated by an AI agent, Hermès on behalf of @gnodet.

…alk with the body types a running app saw

The YAML validator walks the body through the steps of a route and says nothing where the file does not
tell what the body is: after a consumer other than the file consumer, or a to: it cannot follow. When an
integration runs routes of the file, camel-jbang asks it for its route structure and passes what each
consumer gave and each producer returned to the validator (ProjectFacts.observed). Where all those bodies
were of one kind, the walk knows the body there: text for a payload, parsed data for data or a
collection, and the existing checks apply with the origin in the message ("in the running app, from:
platform-http:/orders gave a ByteArrayInputStreamCache").

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

The processor console, and the route console with processors, has bodyTypes and bodyKinds per
processor. The status file of the Camel CLI has the routes with their processors, so the tools that
read it, such as the views of camel tui, get the body types of every step with no action.

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

@gnodet-bot gnodet-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Following up on my earlier review — no issues were raised previously, and the new commit holds up.

The commit extends the processor dev console JSON output with bodyTypes and bodyKinds, using the same BodyTypeRegistry lookup that was introduced in the earlier commits. The implementation delegates to ProcessorDevConsole.includeProcessorsJSon() (already called by RouteDevConsole when processors=true), so the body-type data is automatically available in the CLI status file and any tool reading the route console with processors. The null/empty guard (if (!types.isEmpty())) is correctly applied — fields are omitted when no message history has been recorded, consistent with the (only present when ...) documentation in the JSON schema. The test (RouteStructureDevConsoleTest) exercises the processors=true path on routeConsole (not processorConsole directly), which is the right surface to test since that is the path the CLI status file follows. The OpenAPI schema and the two JSON descriptor files are updated consistently with the Java change.

Note: the text output of ProcessorDevConsole (includeProcessorsText) does not show body types, but that is a deliberate scope limit — the PR description says the text column is on route-structure, not on the processor console text view. No gap.

LGTM.

This review was generated by an AI agent, Hermès on behalf of @gnodet.

davsclaus and others added 4 commits October 20, 2026 18:33
…ion runs; Javadoc paragraphs in BodyFacts

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: Claus Ibsen <claus.ibsen@gmail.com>
@davsclaus davsclaus changed the title CAMEL-25750: camel-core - keep the body types each step has been reached with, and show them with the route structure CAMEL-25750: camel-core, camel-jbang - keep the body types each step has been reached with, and use them in the hint, JMX, the coverage dump and the validator Oct 20, 2026

@gnodet-bot gnodet-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Following up on my earlier review — no issues were raised previously, and the new commits hold up. The TypeKind refactor maintains correct concurrent access invariants, the observed-bodies integration is well-guarded, and the refactoring of RouteDevConsole to delegate to JMX MBeans is a clean improvement. All five risk areas verified clean.

This review was generated by an AI agent, Hermès on behalf of @gnodet.

@github-actions

Copy link
Copy Markdown
Contributor

🧪 CI tested the following changed modules:

  • catalog/camel-catalog
  • components/camel-metrics
  • components/camel-micrometer
  • components/camel-opentelemetry-metrics
  • core/camel-api
  • core/camel-base-engine
  • core/camel-console
  • core/camel-core-engine
  • core/camel-core
  • core/camel-management-api
  • core/camel-management
  • core/camel-support
  • docs
  • dsl/camel-jbang/camel-jbang-core
  • dsl/camel-jbang/camel-jbang-mcp
  • dsl/camel-yaml-dsl/camel-yaml-dsl-validator

ℹ️ 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.

🔁 4 tests passed only after a retry on JDK 21 (4 retried attempts)

Recovered flaky tests on JDK 21 (4)
Module Test Failed attempts First failure
core/camel-core FileToFileNioLowBufferTest.testFileToFileNioLowBuffer 1 mock://result Content of file: /tmp/junit-18247866160154000194/out/helloee25f97e-f67d-4350-b58d-2ab2ee11d95e.txt. Expected: <1234567890123456789012345678901234567890> but was: <>
core/camel-core ThreadsRejectedExecutionTest.testThreadsRejectedAbortNoRedelivery 1 Expected 0 messages at mock:error but got 4 ==> expected: <0> but was: <4>
core/camel-core AggregateDiscardOnFailureTest.testAggregateDiscardOnAggregationFailureLast 1 mock://aggregated Body of message: 1. Expected: <DEF> but was: <DE>
core/camel-core TotalRequestsThrottlerRateDecreaseTest.testDecreaseWhileExchangesWaitForPermits 1 Condition with Lambda expression in org.apache.camel.processor.throttle.requests.TotalRequestsThrottlerRateDecreaseTest was not fulfilled within 5 seconds.

ℹ️ These tests did not fail the build. Surefire retried them and they passed.
Retries are enabled project-wide by surefire.rerunFailingTestsCount in parent/pom.xml.


🔬 Scalpel shadow comparison — Scalpel: 577 of 707 tested, 24 compile-only — current: 578 all tested

Maveniverse Scalpel detected 577 affected modules (current approach: 578).

Skip-tests mode would test 577 modules (16 direct + 564 downstream), skip tests for 24 (generated code, meta-modules)

Modules only in current approach (1)
  • camel-test-infra-core
Modules Scalpel would test (577)
  • 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 ← core/camel-api/src/main/java/org/apache/camel/spi/BodyTypeRegistry.java
  • 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-api
  • 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-api
  • 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-api
  • camel-base-engine ← core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java, core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultBodyTypeRegistry.java, core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultMessageHistoryFactory.java
  • 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-api
  • 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-console
  • 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-api
  • 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 ← core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/body-type.json, core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/processor.json, core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route-structure.json, core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/route.json, core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/dev-console/body-type, core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/dev-consoles.properties, core/camel-console/src/main/java/org/apache/camel/impl/console/BodyTypeDevConsole.java, core/camel-console/src/main/java/org/apache/camel/impl/console/ProcessorDevConsole.java, core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDevConsole.java, core/camel-console/src/main/java/org/apache/camel/impl/console/RouteStructureDevConsole.java, core/camel-console/src/test/java/org/apache/camel/impl/console/BodyTypeDevConsoleTest.java, core/camel-console/src/test/java/org/apache/camel/impl/console/RouteStructureDevConsoleTest.java
  • 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/impl/engine/DefaultBodyTypeRegistryTest.java, core/camel-core/src/test/java/org/apache/camel/processor/BodyTypeRegistryTest.java, core/camel-core/src/test/java/org/apache/camel/support/BodyFactsOtherBodiesTest.java, core/camel-core/src/test/java/org/apache/camel/support/BodyFactsTest.java
  • camel-core-all ← downstream of org.apache.camel:camel-api
  • camel-core-catalog ← downstream of org.apache.camel:camel-api
  • camel-core-engine ← core/camel-core-engine/src/main/docs/modules/eips/pages/message-history.adoc
  • camel-core-languages ← downstream of org.apache.camel:camel-api
  • camel-core-model ← downstream of org.apache.camel:camel-api
  • camel-core-processor ← downstream of org.apache.camel:camel-api
  • camel-core-reifier ← downstream of org.apache.camel:camel-api
  • 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-management
  • 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-console
  • 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-management
  • 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-core-engine
  • camel-file-watch ← downstream of org.apache.camel:camel-support
  • camel-flatpack ← downstream of org.apache.camel:camel-core-engine
  • 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-management
  • 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-api
  • camel-hivemq ← downstream of org.apache.camel:camel-support
  • camel-hl7 ← downstream of org.apache.camel:camel-core-engine
  • camel-http ← downstream of org.apache.camel:camel-management
  • 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-engine
  • 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-engine
  • 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-console
  • camel-jbang-mcp ← dsl/camel-jbang/camel-jbang-mcp/src/main/java/org/apache/camel/dsl/jbang/core/commands/mcp/RuntimeTools.java
  • camel-jbang-plugin-mcp ← downstream of org.apache.camel:camel-jbang-core
  • camel-jbang-plugin-tui ← downstream of org.apache.camel:camel-catalog
  • 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-management
  • 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-management
  • camel-jmx ← downstream of org.apache.camel:camel-management
  • 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-core-engine
  • camel-jte ← downstream of org.apache.camel:camel-support
  • camel-kafka ← downstream of org.apache.camel:camel-support
  • camel-kafka-common ← downstream of org.apache.camel:camel-support
  • camel-kafka-share ← downstream of org.apache.camel:camel-support
  • camel-kamelet ← downstream of org.apache.camel:camel-management
  • 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-api
  • 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-api
  • 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-engine
  • 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-api
  • camel-management ← core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java, core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java, core/camel-management/src/main/java/org/apache/camel/management/mbean/RouteCoverageXmlParser.java, core/camel-management/src/test/java/org/apache/camel/management/ManagedBodyTypesTest.java
  • camel-management-api ← core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedProcessorMBean.java, core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java
  • 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 ← components/camel-metrics/src/main/java/org/apache/camel/component/metrics/messagehistory/MetricsMessageHistoryFactory.java
  • camel-micrometer ← components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/messagehistory/MicrometerMessageHistoryFactory.java, components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/messagehistory/MicrometerMessageHistoryTest.java
  • camel-micrometer-observability ← downstream of org.apache.camel:camel-core-model
  • camel-micrometer-prometheus ← downstream of org.apache.camel:camel-micrometer
  • camel-microprofile-config ← downstream of org.apache.camel:camel-support
  • camel-microprofile-fault-tolerance ← downstream of org.apache.camel:camel-management
  • 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-management
  • camel-netty-http ← downstream of org.apache.camel:camel-management
  • 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-management
  • camel-observation ← downstream of org.apache.camel:camel-support
  • camel-ocsf ← downstream of org.apache.camel:camel-support
  • camel-odata ← 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-engine
  • camel-openapi-rest-dsl-generator ← downstream of org.apache.camel:camel-api
  • camel-openapi-validator ← downstream of org.apache.camel:camel-core-model
  • camel-openfeature ← downstream of org.apache.camel:camel-support
  • camel-openfga ← downstream of org.apache.camel:camel-support
  • 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 ← components/camel-opentelemetry-metrics/src/main/java/org/apache/camel/opentelemetry/metrics/messagehistory/OpenTelemetryMessageHistoryFactory.java
  • 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-console
  • camel-platform-http-vertx ← downstream of org.apache.camel:camel-management
  • 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-management
  • 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-engine
  • 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-management
  • camel-resilience4j-micrometer ← downstream of org.apache.camel:camel-micrometer
  • camel-resourceresolver-github ← downstream of org.apache.camel:camel-support
  • camel-rest ← downstream of org.apache.camel:camel-core-engine
  • 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-core-engine
  • 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-engine
  • camel-salesforce-codegen ← downstream of org.apache.camel:camel-core-model
  • camel-salesforce-maven-plugin ← 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-semantic ← downstream of org.apache.camel:camel-management
  • camel-semantic-openai ← downstream of org.apache.camel:camel-core-model
  • camel-semantic-typesafe-ai ← downstream of org.apache.camel:camel-core-model
  • camel-semantic-wolf-defender ← 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-engine
  • camel-servicenow-parent ← downstream of org.apache.camel:camel-core-model
  • camel-servlet ← downstream of org.apache.camel:camel-management
  • 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-engine
  • 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-engine
  • camel-spring-ws ← downstream of org.apache.camel:camel-support
  • camel-spring-xml ← downstream of org.apache.camel:camel-management
  • 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-management
  • 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/BodyFacts.java, core/camel-support/src/main/java/org/apache/camel/support/DefaultMessageHistory.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-api
  • 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-citrus ← downstream of org.apache.camel:camel-support
  • camel-test-dst ← downstream of org.apache.camel:camel-core-engine
  • 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-core-engine
  • camel-test-junit6 ← downstream of org.apache.camel:camel-core-engine
  • camel-test-main-junit5 ← downstream of org.apache.camel:camel-management
  • camel-test-main-junit6 ← downstream of org.apache.camel:camel-management
  • camel-test-parent ← downstream of org.apache.camel:camel-core-model
  • camel-test-spring-junit5 ← downstream of org.apache.camel:camel-management
  • camel-test-spring-junit6 ← downstream of org.apache.camel:camel-management
  • camel-thrift ← downstream of org.apache.camel:camel-support
  • camel-thymeleaf ← downstream of org.apache.camel:camel-management
  • 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-typesafe-ai ← downstream of org.apache.camel:camel-support
  • camel-ubl ← downstream of org.apache.camel:camel-support
  • camel-undertow ← downstream of org.apache.camel:camel-management
  • 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-management
  • 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-api
  • camel-xml-io-dsl ← downstream of org.apache.camel:camel-core-engine
  • camel-xml-jaxb ← downstream of org.apache.camel:camel-api
  • camel-xml-jaxb-dsl ← downstream of org.apache.camel:camel-core-languages
  • camel-xml-jaxb-dsl-test-definition ← downstream of org.apache.camel:camel-management
  • camel-xml-jaxb-dsl-test-spring ← downstream of org.apache.camel:camel-management
  • camel-xml-jaxp ← downstream of org.apache.camel:camel-api
  • 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 ← dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/ProjectFacts.java, dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/TextBodyFlow.java, dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/test/java/org/apache/camel/dsl/yaml/validator/TextBodyFlowTest.java
  • camel-yaml-dsl-validator-maven-plugin ← downstream of org.apache.camel:camel-yaml-dsl-validator
  • camel-yaml-io ← downstream of org.apache.camel:camel-api
  • 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-management
  • camel-zookeeper-master ← downstream of org.apache.camel:camel-support
  • components ← downstream of org.apache.camel:camel-core-model
Modules with tests skipped (24)
  • apache-camel
  • camel-allcomponents
  • 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-yaml-dsl
  • camel-yaml-dsl-deserializers
  • camel-yaml-dsl-maven-plugin
  • coverage
  • dummy-component

ℹ️ Shadow mode — Scalpel observes but does not affect test execution. Learn more

⚠️ 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
  • dsl/camel-jbang/camel-jbang-mcp: 2 test(s) disabled on GitHub Actions
  • core/camel-core: 4 test(s) disabled on GitHub Actions

💡 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
Build reactor — dependencies compiled but only changed modules were tested (16 modules, 3m 17s total)

Total reactor time: 3m 17s

Module Duration Status
Camel :: Opentelemetry Metrics 41.7s SUCCESS
Camel :: Metrics 24.8s SUCCESS
Camel :: Micrometer 22.5s SUCCESS
Camel :: Console 20.8s SUCCESS
Camel :: Catalog :: Camel Catalog 19.7s SUCCESS
Camel :: JBang :: MCP 18.5s SUCCESS
Camel :: Docs 14.5s SUCCESS
Camel :: YAML DSL :: Validator 13.3s SUCCESS
Camel :: API 8.5s SUCCESS
Camel :: Support 7.9s SUCCESS
Camel :: Base Engine 2.7s SUCCESS
Camel :: Core Engine 1.1s SUCCESS
Camel :: Management API 0.9s SUCCESS
Camel :: Core n/a
Camel :: JBang :: Core n/a
Camel :: Management n/a

Top 20 slowest modules:

  • Camel :: Opentelemetry Metrics (41.7s)
  • Camel :: Metrics (24.8s)
  • Camel :: Micrometer (22.5s)
  • Camel :: Console (20.8s)
  • Camel :: Catalog :: Camel Catalog (19.7s)
  • Camel :: JBang :: MCP (18.5s)
  • Camel :: Docs (14.5s)
  • Camel :: YAML DSL :: Validator (13.3s)
  • Camel :: API (8.5s)
  • Camel :: Support (7.9s)
  • Camel :: Base Engine (2.7s)
  • Camel :: Core Engine (1.1s)
  • Camel :: Management API (0.9s)

⚙️ View full build and test results

@davsclaus davsclaus self-assigned this Oct 20, 2026
@davsclaus davsclaus added the enhancement New feature or request label Oct 20, 2026
@davsclaus
davsclaus merged commit 120e7e0 into main Oct 20, 2026
7 checks passed
@github-actions
github-actions Bot deleted the feature/CAMEL-25750-body-type-registry branch October 20, 2026 20:06
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.

2 participants