Skip to content

CAMEL-26864: camel-console - the processor-detail console names the route input by the id of its from, as the trace does - #29659

Merged
davsclaus merged 2 commits into
mainfrom
CAMEL-26864-from-node-id
Nov 12, 2026
Merged

davsclaus merged 2 commits into
mainfrom
CAMEL-26864-from-node-id

Conversation

@davsclaus

Copy link
Copy Markdown
Contributor

The "two ids" part of item 15 of CAMEL-26864 (the rest is #29658).

The trace said nodeId from1 for the from of route hello, while tui_get_processor_detail said its id is hello. The from has a node id of its own (from1, or the id given to it), and the tracer, the message history and the backlog debugger name it by that. The processor-detail developer console named it by the route id instead, which is already the routeId of its response.

  • camel-console: the route input of processor-detail (type: from) has the id of the from, read from the route dump as the other processors are. The route id stays when the dump has no id for the from. The field description, its generated JSON and the catalog copy say so.
  • camel-jbang TUI: the Diagram draws the from as the route's node, named by the route id (as the route structure has it), so its detail panel finds the from by the route id too. That also keeps it working with an app on an older Camel.
  • Upgrade guide 4.24: the changed id in the console's JSON.

The route structure (route-structure console, ModelToStructureDumper) still names the from line by the route id: that id is how the console reads the route statistics of the line, and how the Diagram and the Source tab find the route, so changing it would ripple far for no gain to a user.

Tests: ProcessorDetailFromIdTest (camel-console, with JMX; fails without the fix: expected: <from1> but was: <myRoute>), DiagramDetailFromIdTest (TUI).

Claude Code on behalf of Claus Ibsen

🤖 Generated with Claude Code

…oute input by the id of its from, as the trace does

The trace, the message history and the debugger name the from of a route by its node id (from1), while the processor-detail console named it by the route id, so an agent saw two ids for the same step. The TUI Diagram still finds the detail of the from by the route id it draws it with.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Claus Ibsen <claus.ibsen@gmail.com>
@davsclaus davsclaus added this to the 4.24.0 milestone Nov 11, 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.

LGTM. Clean, well-tested fix that aligns the processor-detail console's from-node ID with the tracer and message history.

The fix correctly reads the id attribute from the <from> element in the route XML dump, with a safe fallback to routeId if the dump fails or the element has no id. DiagramDetailSupport.findProcessorEntry now handles both old-style (routeId) and new-style (node id like from1) lookups, preserving backward compatibility with apps on older Camel. Both tests are solid — ProcessorDetailFromIdTest confirmed failing before the fix (expected: <from1> but was: <myRoute>), and DiagramDetailFromIdTest covers five scenarios including the backward-compat case.

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

@github-actions

github-actions Bot commented Nov 12, 2026 •

Copy link
Copy Markdown
Contributor

✅ Generated files are up to date

An earlier CI run reported uncommitted generated changes; the latest run no longer does.

Co-Authored-By: Claude Opus 5.5 <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.

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

Previous findings are all addressed — the second commit correctly regenerates the metadata JSON to reflect the updated @Metadata description. LGTM.

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
  • core/camel-console
  • docs
  • dsl/camel-jbang/camel-jbang-plugin-tui

🔁 1 test passed only after a retry on JDK 21 (1 retried attempt)

Recovered flaky tests on JDK 21 (1)
Module Test Failed attempts First failure
dsl/camel-jbang/camel-jbang-plugin-tui WebTerminalTest.aSessionRunsOnAJLineTerminalFedFromTheSocket 1 Condition with Lambda expression in org.apache.camel.dsl.jbang.core.commands.tui.WebTerminalTest 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: 19 of 722 tested, 25 compile-only — current: 19 all tested

Maveniverse Scalpel detected 19 affected modules (current approach: 19).

Skip-tests mode would test 19 modules (4 direct + 17 downstream), skip tests for 25 (generated code, meta-modules)

Modules Scalpel would test (19)
  • camel-cli-connector ← downstream of org.apache.camel:camel-console
  • camel-cli-debug ← downstream of org.apache.camel:camel-cli-connector
  • camel-console ← core/camel-console/src/generated/resources/META-INF/org/apache/camel/dev-console/processor-detail.json, core/camel-console/src/main/java/org/apache/camel/impl/console/ProcessorDetailDevConsole.java, core/camel-console/src/test/java/org/apache/camel/impl/console/ProcessorDetailFromIdTest.java
  • camel-core-all ← downstream of org.apache.camel:camel-console
  • camel-diagram ← downstream of org.apache.camel:camel-console
  • camel-jbang-console ← downstream of org.apache.camel:camel-console
  • camel-jbang-mcp ← downstream of org.apache.camel:camel-catalog
  • camel-jbang-plugin-mcp ← 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/DiagramDetailSupport.java, dsl/camel-jbang/camel-jbang-plugin-tui/src/test/java/org/apache/camel/dsl/jbang/core/commands/tui/DiagramDetailFromIdTest.java
  • camel-jbang-plugin-validate ← downstream of org.apache.camel:camel-yaml-dsl-validator
  • camel-jbang-run ← downstream of org.apache.camel:camel-catalog
  • camel-launcher-container ← downstream of org.apache.camel:camel-launcher
  • camel-mcp-server ← downstream of org.apache.camel:camel-platform-http-main
  • camel-micrometer-prometheus ← downstream of org.apache.camel:camel-platform-http-main
  • camel-oauth ← downstream of org.apache.camel:camel-platform-http-main
  • camel-observability-services ← downstream of org.apache.camel:camel-micrometer-prometheus
  • camel-platform-http-main ← downstream of org.apache.camel:camel-console
  • camel-yaml-dsl-validator ← downstream of org.apache.camel:camel-catalog
  • camel-yaml-dsl-validator-maven-plugin ← downstream of org.apache.camel:camel-yaml-dsl-validator
Modules with tests skipped (25)
  • apache-camel
  • camel-allcomponents
  • 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-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

All tested modules (46 modules, 7m 21s total)

Total reactor time: 7m 21s

Module Duration Status
Camel :: JBang :: MCP 59.4s SUCCESS
Camel :: Console 41.2s SUCCESS
Camel :: OAuth 31.7s SUCCESS
Camel :: YAML DSL :: Validator 29.4s SUCCESS
Camel :: JBang :: Plugin :: Validate 25.9s SUCCESS
Camel :: JBang :: Run 25.4s SUCCESS
Camel :: Catalog :: Camel Catalog 24.6s SUCCESS
Camel :: JBang :: Plugin :: Kubernetes 24.4s SUCCESS
Camel :: YAML DSL 21.6s SUCCESS
Camel :: Component DSL 20.3s SUCCESS
Camel :: Docs 15.8s SUCCESS
Camel :: Kamelet Main 15.7s SUCCESS
Camel :: Diagram 13.3s SUCCESS
Camel :: Platform HTTP :: Main 12.8s SUCCESS
Camel :: JBang :: Plugin :: Testing 11.8s SUCCESS
Camel :: Assembly 8.3s SUCCESS
Camel :: Catalog :: Camel Report Maven Plugin 7.9s SUCCESS
Camel :: Catalog :: Camel Route Parser 7.3s SUCCESS
Camel :: YAML DSL :: Deserializers 7.3s SUCCESS
Camel :: JBang :: Plugin :: Generate 5.9s SUCCESS
Camel :: All Components Sync point 4.8s SUCCESS
Camel :: YAML DSL :: Validator Maven Plugin 4.2s SUCCESS
Camel :: Catalog :: Maven 2.7s SUCCESS
Camel :: YAML DSL :: Maven Plugins 2.6s SUCCESS
Camel :: Micrometer :: Prometheus 2.5s SUCCESS
Camel :: JBang :: Plugin :: MCP 2.5s SUCCESS
Camel :: Catalog :: Suggest (deprecated) 2.4s SUCCESS
Camel :: Coverage 1.3s SUCCESS
Camel :: Catalog :: Dummy Component 1.2s SUCCESS
Camel :: JBang :: Console 0.9s SUCCESS
Camel :: Endpoint DSL :: Support 0.8s SUCCESS
Camel :: Observability Services 0.8s SUCCESS
Camel :: JBang :: Plugin :: Edit 0.8s SUCCESS
Camel :: JBang :: Integration tests 0.8s SUCCESS
Camel :: DSL :: CLI Debug 0.8s SUCCESS
Camel :: JBang :: Main 0.8s SUCCESS
Camel :: Launcher :: Container 0.7s SUCCESS
Camel :: Catalog :: Console 0.7s SUCCESS
Camel :: All Core Sync point 0.4s SUCCESS
Camel :: AI :: MCP Server n/a
Camel :: DSL :: CLI Connector n/a
Camel :: Endpoint DSL n/a
Camel :: Integration Tests n/a
Camel :: JBang :: Core n/a
Camel :: JBang :: Plugin :: TUI n/a
Camel :: Launcher n/a

Top 20 slowest modules:

  • Camel :: JBang :: MCP (59.4s)
  • Camel :: Console (41.2s)
  • Camel :: OAuth (31.7s)
  • Camel :: YAML DSL :: Validator (29.4s)
  • Camel :: JBang :: Plugin :: Validate (25.9s)
  • Camel :: JBang :: Run (25.4s)
  • Camel :: Catalog :: Camel Catalog (24.6s)
  • Camel :: JBang :: Plugin :: Kubernetes (24.4s)
  • Camel :: YAML DSL (21.6s)
  • Camel :: Component DSL (20.3s)
  • Camel :: Docs (15.8s)
  • Camel :: Kamelet Main (15.7s)
  • Camel :: Diagram (13.3s)
  • Camel :: Platform HTTP :: Main (12.8s)
  • Camel :: JBang :: Plugin :: Testing (11.8s)
  • Camel :: Assembly (8.3s)
  • Camel :: Catalog :: Camel Report Maven Plugin (7.9s)
  • Camel :: Catalog :: Camel Route Parser (7.3s)
  • Camel :: YAML DSL :: Deserializers (7.3s)
  • Camel :: JBang :: Plugin :: Generate (5.9s)

⚙️ View full build and test results

@davsclaus davsclaus added the bug Something isn't working label Nov 12, 2026
@davsclaus davsclaus self-assigned this Nov 12, 2026
@davsclaus
davsclaus merged commit 4d3b74b into main Nov 12, 2026
7 checks passed
@davsclaus
davsclaus deleted the CAMEL-26864-from-node-id branch November 12, 2026 13:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants