camel-language-server is a server implementation that provides Camel DSL smartness. The server adheres to the language server protocol and can be used with any editor that supports the protocol. The server utilizes Apache Camel.
These clients are available:
Tutorial with manual configuration is provided for:
Help is welcome to provide more client implementations and tutorials. You can pick from this list.
On hover, the documentation of the Camel component is available.
On save, diagnostics on Camel URIs are updated:
resource
, open-api
, property-file
). It is providing relevant sibling files filtering out some IDEs configuration folders (.vscode
, .settings
, .theia
).Connection through WebSocket is supported. The server needs to be launched with --websocket
option.
The following extra parameters can be used:
--port=<port>
, default value is 8025
--hostname=<hostname>
, default value localhost
--contextPath=<contextPath>
, default value /
. It must start with a /
.Then, the connection can be made through
ws://<hostname>:<port><contextPath>/camel-language-server
.
For information, with all defaults, it is ws://localhost:8025/camel-language-server
.
It is possible to specify a specific version of the Camel catalog. This can be provided as Initialization Option or Workspace Configuration. The format is the same for both:
{
"camel": {
"Camel catalog version" : ...
}
}
Please note that the first time a version is used, it can take several seconds/minutes to have it available depending on the time to download the dependencies in the background.
When using a Red Hat productized version which contains redhat
in the version, the Maven Red Hat repository is automatically added.
To use other versions not available on Maven Central, additional repositories need to be configured on the host running the Camel Language Server. To configure it, follow these steps:
<ibiblio name="fuse" m2compatible="true" root="<https://<urlofYourMavenRepository>"/>
inside the chain nodeFor more information, check the Grape official documentation.
It is possible to specify a specific runtime provider of the Camel catalog. This can be provided as Initialization Option or Workspace Configuration. The format is the same for both:
{
"camel": {
"Camel catalog runtime provider" : ...
}
}
Currently supported providers can be found in CamelRuntimeProvider enum.
It is possible to specify a list of additional Camel components. This can be provided as Initialization Option or Workspace Configuration. The format is the same for both:
{
"camel": {
"extra-components" : [
...
]
}
}
There is document symbol for Camel Contexts and routes, on XML and Java DSL. In UI, for instance with VS Code, it means there are an outline, a breadcrumb and a Go To Document Symbol command.
When using the Camel Kafka component, the list of topics is dynamically retrieved from the Kafka Broker when available. By default, it tries to connect to localhost:9092
. To connect to another instance, a setting can be provided, following this pattern:
{
"camel": {
"Kafka Connection URL" : "localhost:9092"
}
}
ASL 2.0, See LICENSE file.