Skip to content

CAMEL-23236: Improve beginner UX with interactive init, examples, doctor, and contextual help#22211

Open
gnodet wants to merge 1 commit intomainfrom
copy-shroud
Open

CAMEL-23236: Improve beginner UX with interactive init, examples, doctor, and contextual help#22211
gnodet wants to merge 1 commit intomainfrom
copy-shroud

Conversation

@gnodet
Copy link
Copy Markdown
Contributor

@gnodet gnodet commented Mar 24, 2026

CAMEL-23236

Summary

Improve the beginner UX for Camel JBang by adding several features that help new users get started quickly:

  • Interactive init template picker: camel init --list presents an arrow-key selectable menu of available archetypes/templates
  • run --example: Bundled example routes (timer-log, cron-log, rest-api) that users can run immediately without creating files
  • doctor command: Diagnostic command that checks environment setup (Java version, Maven, Docker/Podman, etc.) and reports issues
  • Extended did-you-mean: More commands participate in typo correction suggestions
  • Context-aware shell banner: The interactive shell detects route files in the current directory and shows appropriate quick-start hints
  • KIT plugin type: Adds the kit plugin for AI-assisted project scaffolding

Test plan

  • camel init --list shows interactive template picker
  • camel run --example timer-log runs bundled example
  • camel doctor reports environment diagnostics
  • camel shell shows context-aware banner (with/without route files present)
  • Existing plugin tests pass with updated counts for KIT plugin
  • CI green on JDK 17/21/25

@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 build-all, build-dependents, 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 Mar 24, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Mar 24, 2026

🧪 CI tested the following changed modules:

  • docs
  • dsl/camel-jbang/camel-jbang-core

⚠️ 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 (6 modules)
  • 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

@github-actions
Copy link
Copy Markdown
Contributor

🧪 CI tested the following changed modules:

  • dsl/camel-jbang/camel-jbang-core
All tested modules (26 modules)
  • Camel :: Coverage
  • Camel :: Coverage [pom]
  • Camel :: JBang :: Core
  • Camel :: JBang :: Core [jar]
  • Camel :: JBang :: Integration tests
  • Camel :: JBang :: Integration tests [jar]
  • Camel :: JBang :: MCP
  • Camel :: JBang :: MCP [jar]
  • Camel :: JBang :: Main
  • Camel :: JBang :: Main [jar]
  • Camel :: JBang :: Plugin :: Edit
  • Camel :: JBang :: Plugin :: Edit [jar]
  • Camel :: JBang :: Plugin :: Generate
  • Camel :: JBang :: Plugin :: Generate [jar]
  • Camel :: JBang :: Plugin :: Kubernetes
  • Camel :: JBang :: Plugin :: Kubernetes [jar]
  • Camel :: JBang :: Plugin :: Route Parser
  • Camel :: JBang :: Plugin :: Route Parser [jar]
  • Camel :: JBang :: Plugin :: Testing
  • Camel :: JBang :: Plugin :: Testing [jar]
  • Camel :: JBang :: Plugin :: Validate
  • Camel :: JBang :: Plugin :: Validate [jar]
  • Camel :: Launcher
  • Camel :: Launcher [jar]
  • Camel :: Launcher :: Container
  • Camel :: Launcher :: Container [pom]

@github-actions github-actions Bot added the docs label Apr 30, 2026
…tor, and contextual help

- Add interactive template picker to camel init (--list flag, arrow-key selection)
- Add camel run --example for zero-to-running experience with bundled examples
- Add camel doctor diagnostic command for environment/dependency checks
- Extend did-you-mean suggestions to more commands in CatalogBaseCommand
- Add context-aware shell banner (detects route files, shows quick-start hints)
- Improve Camel-Kit discoverability (add KIT plugin type)
- Include bundled example route files (timer-log, cron-log, rest-api)

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