CAMEL-23226: Enhance Shell with rich prompt, banner, and auto-suggestions (#22170) * CAMEL-23226: Migrate Shell to JLine 4 Shell API Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * CAMEL-23226: Add POSIX, interactive, and script commands to JBang shell Add PosixCommandGroup (cd, ls, grep, cat, head, tail, etc.), InteractiveCommandGroup (nano, less, ttop), and enable script/variable commands for a richer shell experience. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * CAMEL-23226: Enhance Shell with alias persistence and init script support - Add DefaultAliasManager with persistence at ~/.camel-jbang-aliases for persistent alias/unalias commands - Add init script support via ~/.camel-jbang-init file - Remove scriptCommands(true) which requires a scriptRunner to function Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * CAMEL-23226: Enhance Shell with rich prompt, banner, and auto-suggestions Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * CAMEL-23226: Bump JLine to 4.0.8 for picocli argument completion JLine 4.0.8 includes jline/jline3#1708 which fixes PicocliCommandRegistry to use picocli's AutoComplete for proper tab completion of options, option values, positional parameters, and nested subcommands. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * CAMEL-23226: Restore help colors and completion styling in Shell - Restore HELP_COLORS variable for colored help output - Restore OTHERS_GROUP_NAME and COMPLETION_STYLE_GROUP variables - Use EnvironmentHelper.isColorEnabled() instead of duplicated logic - Use ShellBuilder import instead of FQCN where possible - Add TODO for replacing AutosuggestionWidgets with CommandTailTipWidgets (needs ShellBuilder to expose CommandDispatcher in onReaderReady callback) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * CAMEL-23226: Use CommandTailTipWidgets for unified autosuggestion and tooltips Replace AutosuggestionWidgets with CommandTailTipWidgets which provides both fish-style autosuggestion AND command description tooltips below the cursor line. This requires the JLine ShellBuilder.onReaderReady BiConsumer<LineReader, CommandDispatcher> API enhancement. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * CAMEL-23226: Bump JLine to 4.0.9 Includes: - BiConsumer<LineReader, CommandDispatcher> overload for ShellBuilder.onReaderReady - Deprecated no-op jansi()/jna() on TerminalBuilder for JLine 3 compatibility Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Apache Camel is an Open Source integration framework that empowers you to quickly and easily integrate various systems consuming or producing data.
Camel empowers you to define routing and mediation rules in a variety of domain-specific languages (DSL, such as Java, XML, Groovy and YAML). This means you get smart completion of routing rules in your IDE, whether in a Java or XML editor.
Apache Camel uses URIs to enable easier integration with all kinds of transport or messaging model including HTTP, ActiveMQ, JMS, JBI, SCA, MINA or CXF together with working with pluggable Data Format options. Apache Camel is a small library that has minimal dependencies for easy embedding in any Java application. Apache Camel lets you work with the same API regardless of the transport type, making it possible to interact with all the components provided out-of-the-box, with a good understanding of the API.
Apache Camel has powerful Bean Binding and integrated seamlessly with popular frameworks such as Spring, Quarkus, and CDI.
Apache Camel has extensive testing support allowing you to easily unit test your routes.
Apache Camel comes alongside several artifacts with components, data formats, languages, and kinds. The up-to-date list is available online at the Camel website:
Apache Camel comes with many examples. The up to date list is available online at GitHub:
To help you get started, try the following links:
Getting Started
https://camel.apache.org/getting-started.html
The beginner examples are another powerful alternative pathway for getting started with Apache Camel.
Building
https://camel.apache.org/camel-core/contributing/
Contributions
We welcome all kinds of contributions, the details of which are specified here:
https://github.com/apache/camel/blob/main/CONTRIBUTING.md
Please refer to the website for details of finding the issue tracker, email lists, GitHub, chat
Website: https://camel.apache.org/
GitHub (source): https://github.com/apache/camel
Issue tracker: https://issues.apache.org/jira/projects/CAMEL
Mailing-list: https://camel.apache.org/community/mailing-list/
Chat: https://camel.zulipchat.com/
StackOverflow: https://stackoverflow.com/questions/tagged/apache-camel
Twitter: https://twitter.com/ApacheCamel
Support
For additional help, support, we recommend referencing this page first:
https://camel.apache.org/community/support/
Getting Help
If you get stuck somewhere, please feel free to reach out to us on either StackOverflow, Chat, or the email mailing list.
Please help us make Apache Camel better — we appreciate any feedback you may have.
Enjoy!
The Camel riders!
The terms for software licensing are detailed in the LICENSE.txt file,
located in the working directory.