Skip to content

camel-tui: Add run options form, properties editor, and F2 action improvements#23444

Merged
davsclaus merged 11 commits into
mainfrom
tui-run-options-and-features
May 22, 2026
Merged

camel-tui: Add run options form, properties editor, and F2 action improvements#23444
davsclaus merged 11 commits into
mainfrom
tui-run-options-and-features

Conversation

@davsclaus
Copy link
Copy Markdown
Contributor

Summary

  • Run options form: Replace the simple name-only input with a multi-field form (Name, Port, cycling Max seconds/messages/idle, Dev, Observe, Backlog trace checkboxes)
  • Properties editor: Second page in the run form showing editable application.properties from the selected example. Modified values passed as --prop=key=value. Press + to add custom properties
  • Application properties: Add application.properties to bundled examples (timer-log, cron-log, rest-api, routes) using {{placeholder}} syntax
  • Caption overlay: Ctrl+T or F2 menu to show typewriter-animated captions, supports multi-line via \n
  • Classpath viewer: F2 menu to display parsed Maven GAV coordinates of running integration JARs
  • Fuzzy filter: Reusable inline fuzzy search for list views (used in classpath popup)
  • Doctor dialog: F2 menu for integration health checks
  • Stop All: F2 menu to stop all running integrations
  • Emoji icons: Visual icons for F2 action menu items

Test plan

  • F2 → Run an example → press r → verify multi-field form with page navigation
  • Tab to properties page → edit values → Enter → verify --prop= args in launched command
  • Press + on properties page → add custom key:value → verify it's passed
  • Space on Max field → cycles between seconds/messages/idle
  • Ctrl+T → type caption → Enter → typewriter effect, hold, fade
  • F2 → Show Classpath → verify JAR list with fuzzy filter
  • F2 → Run Doctor → verify health check output
  • F2 → Stop All → verify confirmation and stop

🤖 Generated with Claude Code

davsclaus and others added 11 commits May 21, 2026 21:38
Runs 7 environment checks (Java, Camel, JBang, Maven, Container, Ports,
Disk Space) and displays results in a centered popup with emoji status
indicators.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When only integrations or only infra services are running, stops them
immediately. When both are running, shows a checkbox dialog to select
which groups to stop.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds a caption feature for recordings and education that displays
text with a typewriter animation, holds, then fades out.
Triggered via Ctrl+T or F2 menu. Supports multi-line via \n.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds a "Show Classpath" action that fetches the JARs from a running
integration via the jvm dev console and displays them in a scrollable
list with parsed Maven GAV coordinates. Camel JARs are highlighted.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds FuzzyFilter utility for fuzzy matching with character-level
highlighting. Integrates into the classpath viewer so typing
immediately filters the list with matched characters highlighted.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The Run dialog now provides Name, Port, Max seconds text fields
and Dev mode, Observe, Backlog trace checkboxes instead of just
a name input. Tab navigates between fields, Space toggles checkboxes.

Co-Authored-By: Claude <noreply@anthropic.com>
Use property placeholders in timer-log, cron-log, rest-api, and
routes examples so their values are configurable via properties.

Co-Authored-By: Claude <noreply@anthropic.com>
The Run dialog now has a second page for editing application.properties
from the selected example. Properties are loaded from bundled resources
or downloaded from GitHub for online examples. Modified values are
passed as --prop=key=value overrides when launching.

Co-Authored-By: Claude <noreply@anthropic.com>
Press + on the properties page to add a new key:value property.
Tab switches between key and value fields. Backspace on an empty
key removes the entry. Custom properties are passed as --prop=key=value.

Co-Authored-By: Claude <noreply@anthropic.com>
The Max field now cycles between Max seconds, Max messages, and
Max idle secs with Space. The corresponding --max-seconds,
--max-messages, or --max-idle-seconds flag is passed when launching.

Co-Authored-By: Claude <noreply@anthropic.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.

@github-actions github-actions Bot added the dsl label May 21, 2026
@github-actions
Copy link
Copy Markdown
Contributor

🧪 CI tested the following changed modules:

  • dsl/camel-cli-connector
  • dsl/camel-jbang/camel-jbang-core
  • dsl/camel-jbang/camel-jbang-plugin-tui

⚠️ Some tests are disabled on GitHub Actions (@DisabledIfSystemProperty(named = "ci.env.name")) and require manual verification:

  • dsl/camel-jbang/camel-jbang-core: 1 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
All tested modules (8 modules)
  • Camel :: DSL :: CLI Connector
  • Camel :: DSL :: CLI Debug
  • Camel :: JBang :: Core
  • Camel :: JBang :: MCP
  • Camel :: JBang :: Plugin :: Route Parser
  • Camel :: JBang :: Plugin :: TUI
  • Camel :: JBang :: Plugin :: Validate
  • Camel :: Launcher :: Container

⚙️ View full build and test results

@davsclaus davsclaus merged commit 47d0de5 into main May 22, 2026
6 checks passed
@davsclaus davsclaus deleted the tui-run-options-and-features branch May 22, 2026 05:00
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.

1 participant