This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 53373d63433e CAMEL-16861: Update docs
53373d63433e is described below
commit 53373d63433e150d055c38956514eef5f6df8574
Author: Claus Ibsen <[email protected]>
AuthorDate: Fri Feb 20 20:41:40 2026 +0100
CAMEL-16861: Update docs
---
.../ROOT/pages/improving-the-documentation.adoc | 53 ++++---
docs/user-manual/modules/ROOT/pages/injector.adoc | 4 +-
.../modules/ROOT/pages/integration-test.adoc | 3 +-
docs/user-manual/modules/ROOT/pages/java-dsl.adoc | 31 ++--
docs/user-manual/modules/ROOT/pages/jmx.adoc | 164 +++++++++++----------
docs/user-manual/modules/ROOT/pages/json.adoc | 2 +-
6 files changed, 136 insertions(+), 121 deletions(-)
diff --git
a/docs/user-manual/modules/ROOT/pages/improving-the-documentation.adoc
b/docs/user-manual/modules/ROOT/pages/improving-the-documentation.adoc
index 0acc4dd6da1f..7e7d2f516cda 100644
--- a/docs/user-manual/modules/ROOT/pages/improving-the-documentation.adoc
+++ b/docs/user-manual/modules/ROOT/pages/improving-the-documentation.adoc
@@ -4,22 +4,21 @@ The Apache Camel project loves your help with improving the
documentation, wheth
a tiny typo fix, or adding more details to an existing component, etc.
NOTE: This page only describes working with the 'documentation' portion of the
website.
-Other portions are written in markdown and built using Hugo.
+Other portions are written in Markdown and built using Hugo.
== Simple changes
-If there's an `edit this page` button at the top right of the page and you
wish to propose a simple change such as fixing a typo or rewording something,
use this xref:faq:how-do-i-edit-the-website.adoc[very simple process].
+If there's an `edit this page` button at the top right of the page, and you
wish to propose a simple change such as fixing a typo or rewording something,
use this xref:faq:how-do-i-edit-the-website.adoc[very simple process].
For more complicated changes, including changing xrefs, adding, removing or
renaming pages, and significant organizational changes, please use the process
described on this page.
== Where to find the documentation
-All of the documentation accessible in the left-hand navigation panel in the
documentation portion of the website is managed in the
link:https://asciidoc.org/[AsciiDoc format] and built with the
https://antora.org[Antora] static site generator.
-As of November 2021, by far the most capable Asciidoc editor is the Intellij
Asciidoc plugin, which works with all Intellij editor products including the
free IDEA Community Edition.
-The plugin preview is more capable than viewing a local Asciidoc file with a
browser plugin as it has some understanding of Antora structure.
+All the documentation accessible in the left-hand navigation panel in the
documentation portion of the website is managed in the
link:https://asciidoc.org/[AsciiDoc format] and built with the
https://antora.org[Antora] static site generator.
+As of November 2021, by far the most capable AsciiDoc editor is the Intellij
AsciiDoc plugin, which works with all Intellij editor products including the
free IDEA Community Edition.
+The plugin preview is more capable than viewing a local AsciiDoc file with a
browser plugin as it has some understanding of Antora structure.
Note that the only reliable way to preview your changes is with a full build
of the Antora portion of the website.
-The files have the extension `.adoc` and are managed in the Camel repositories.
-General documentation is usually directly editable.
+The files have the extension `.adoc` and are managed in the Camel
repositories. General documentation is usually directly editable.
Component specific documentation is partially or entirely generated from other
metadata sources which are in turn generated from the code, often from javadoc.
Altering generated documentation requires finding the original source, which
varies by project.
Editable pages are found in several different places in the repositories:
@@ -69,7 +68,8 @@ git clone https://github.com/apache/camel-website.git
=== Quick partial build
In your project, run
-[source,sh]
+
+[source,bash]
----
./local-build.sh quick
----
@@ -87,7 +87,8 @@ There is no obvious way to get back to your local pages.
You only have to do this once, and again whenever there are significant
changes to the website.
In your project, run
-[source,sh]
+
+[source,bash]
----
./local-build.sh full
----
@@ -97,10 +98,12 @@ This full build will also check that all xrefs into your
subproject branch are v
=== Subsequent partial continuous builds
After this full build completes, you can work on documentation with live
updates in your browser by running
-[source,sh]
+
+[source,bash]
----
./local-build.sh
----
+
This will do an initial build of just the current branch in the current
subproject, incorporating it into the full site built in the full build, start
a web server to serve the site, set up browser-sync on pages you are looking at
in your browser, and rebuild the (partial) site as it detects changes.
Depending on the amount of content generation Antora is doing, this may take
up to a minute or so.
@@ -112,6 +115,7 @@ If you rename or remove a page please do a full build or
check the PR build care
If you do a full build (`yarn build-all` or `yarn build` rather than `yarn
build:antora` or use of the `local-build.sh` script in a subproject) and have
Docker available locally you can view your build served with httpd by running
`local-httpd-in-docker.sh`.
This is especially valuable to check redirects set up with `page-aliases`.
+[#_creating_a_documentation_pull_request]
== Creating a documentation pull request.
NOTE: Simple changes such as typo fixes or rewording can usually be done
directly at GitHub after pressing the `edit this page` button at the top left
of each page.
@@ -143,8 +147,7 @@ The following process will work for any number of doc PRs
against any number of
. Locate the `- url` of the project(s) you are working with in the
`antora-playbook.yml` under `sources`, and locate the branch(es) you have
altered under that `- url`.
. Add something like this to the end of the `antora-playbook.yml`:
+
---
-[source,yml]
+[source,yaml]
----
- require: '@djencks/antora-source-map'
# log_level: trace #<1>
@@ -166,7 +169,7 @@ The following process will work for any number of doc PRs
against any number of
<5> List of modified branches: probably only one.
<6> Name of the branch your PR will merge into.
<7> Name of your PR branch.
---
++
. At this point you can test your playbook changes locally by running `yarn
build:antora` or `yarn build`.
. Commit the playbook changes, push to your fork of the `camel-website`
repository, and open a PR.
. If all goes well you will get an email telling you where the Netlify preview
is; this is also shown on the PR page.
@@ -201,24 +204,28 @@ In this section the word `component` means an Antora
component.
IMPORTANT: Antora components may be `distributed` which means that the content
comes from more than one place, possibly from different repositories.
For instance, the `components` component has content from the main camel
repository under the start_paths `docs/components` and
`core/camel-core-engine/src/main/docs` and from the `camel-spring-boot`
repository under `components-starter` and `docs/components`.
-Furthermore the content may not appear in the normal Antora structure but may
be collected from a more maven-project-friendly arrangement with an Antora
extension.
+Furthermore, the content may not appear in the normal Antora structure but may
be collected from a more maven-project-friendly arrangement with an Antora
extension.
=== xrefs within an (Antora) component
Generally there will never be a reason to refer from one version of a
component to another version.
To assure this happens without maintenance issues, leave out the version and
component segments from the xref, e.g. in the `components` component
-[source,adoc,subs=+attributes]
+[source,text]
+----
xref{blank}:eips:enterprise-integration-patterns.adoc[]
+----
-NOT
+*NOT*
-[source,adoc,subs=+attributes]
+[source,text]
+----
xref{blank}:next@components:eips:enterprise-integration-patterns.adoc[]
+----
Do this no matter how many locations the component is distributed over.
-An xref within the same module can leave out the module segment, although it
does no harm.
+A xref within the same module can leave out the module segment, although it
does no harm.
Do not specify the component name: if you do, the link will be to the `latest`
(non-prerelease, i.e., non-`next`) version, not the current version.
@@ -228,8 +235,10 @@ The user-manual component is
https://docs.antora.org/antora/3.0/component-with-n
Leave out the version segment.
For example, this will link to this page from anywhere in the documentation:
-[source,adoc]
+[source,text]
+----
xref:manual::improving-the-documentation.adoc[]
+----
=== Links between subprojects
@@ -261,7 +270,9 @@ NOTE: Setting these up is WIP
Use these attributes to refer to documentation for the related subproject, e.g.
-[source,adoc]
+[source,text]
+----
xref{blank}:{camel-version}@components:eips:enterprise-integration-patterns.adoc[]
+----
-If there's a missing attribute, please raise an issue rather than using a
concrete version.
\ No newline at end of file
+If there's a missing attribute, please raise an issue rather than using a
concrete version.
diff --git a/docs/user-manual/modules/ROOT/pages/injector.adoc
b/docs/user-manual/modules/ROOT/pages/injector.adoc
index c3c58aa0924f..5f5e92da9278 100644
--- a/docs/user-manual/modules/ROOT/pages/injector.adoc
+++ b/docs/user-manual/modules/ROOT/pages/injector.adoc
@@ -2,7 +2,5 @@
The
https://www.javadoc.io/doc/org.apache.camel/camel-api/current/org/apache/camel/spi/Injector.html[Injector]
-is a pluggable strategy to any IoC container such as
-Spring to be able to create and
-dependency-inject objects of a certain type.
+is a pluggable strategy to any runtime such as Spring Boot to be able to
create and dependency-inject objects of a certain type.
diff --git a/docs/user-manual/modules/ROOT/pages/integration-test.adoc
b/docs/user-manual/modules/ROOT/pages/integration-test.adoc
index 8942a9daf51a..77ef003424ba 100644
--- a/docs/user-manual/modules/ROOT/pages/integration-test.adoc
+++ b/docs/user-manual/modules/ROOT/pages/integration-test.adoc
@@ -6,10 +6,11 @@ A typical integration test scenario verifies the
collaboration of services and t
NOTE: Both unit testing and integration testing are essential in software
development to ensure the functionality and the compatibility with integrated
services. The combination of both results in a successful quality assurance of
your Camel application.
-== Citrus test framework
+== Citrus Test Framework
As an example of writing integration tests for Camel applications you can use
the
https://citfrusframework.org[Citrus] test framework.
+
Citrus is an Open Source Java testing framework with focus on integration
testing and messaging.
The framework provides a very good integration with Apache Camel.
diff --git a/docs/user-manual/modules/ROOT/pages/java-dsl.adoc
b/docs/user-manual/modules/ROOT/pages/java-dsl.adoc
index db537c161cf9..4d27c461e102 100644
--- a/docs/user-manual/modules/ROOT/pages/java-dsl.adoc
+++ b/docs/user-manual/modules/ROOT/pages/java-dsl.adoc
@@ -13,7 +13,7 @@ In the code below we create a new class called
`MyRouteBuilder` that extends the
In the `configure` method the Java DSL is at our disposal.
[source,java]
--------------------------------------------------------------------------
+----
import org.apache.camel.builder.RouteBuilder;
/**
@@ -38,28 +38,28 @@ public class MyRouteBuilder extends RouteBuilder {
}
}
--------------------------------------------------------------------------
+----
In the `configure` method we can define Camel xref:routes.adoc[Routes].
In the example above we have a single route, which pickup files (the `from`).
[source,java]
----------------------------------------
+----
from("file:src/data?noop=true")
----------------------------------------
+----
Then we use the xref:components:eips:choice-eip.adoc[Content-Based Router] EIP
(the `choice`) to route the message whether the person is from London or not.
[source,java]
--------------------------------------------------------
+----
.choice()
.when(xpath("/person/city = 'London'"))
.to("file:target/messages/uk")
.otherwise()
.to("file:target/messages/others");
--------------------------------------------------------
+----
=== Using Text Blocks for long URIs
@@ -94,11 +94,6 @@ rb -> rb.from("kafka:cheese").to("jms:queue:foo");
There is a bit more to this as the lambda route must be coded in a Java method
that returns an instance of `LambdaRouteBuilder`.
See more at the xref:lambda-route-builder.adoc[LambdaRouteBuilder]
documentation.
-
-== More Details
-
-For more details see xref:dsl.adoc[DSL], xref:routes.adoc[Routes], and
xref:processor.adoc[Processor].
-
=== The Java DSL under the hood
As mentioned in the Getting Started guide, you can use Camel's Java DSL in a
way that almost looks like a DSL. For instance:
@@ -110,14 +105,17 @@ As mentioned in the Getting Started guide, you can use
Camel's Java DSL in a way
----
RouteBuilder builder = new RouteBuilder() {
public void configure() {
- from("queue:a").filter(header("foo").isEqualTo("bar")).to("queue:b");
+ from("queue:a")
+ .filter(header("foo").isEqualTo("bar")).to("queue:b");
- from("queue:c").choice()
+ from("queue:c")
+ .choice()
.when(header("foo").isEqualTo("bar")).to("queue:d")
.when(header("foo").isEqualTo("cheese")).to("queue:e")
.otherwise().to("queue:f");
}
};
+
CamelContext myCamelContext = new DefaultCamelContext();
myCamelContext.addRoutes(builder);
----
@@ -131,4 +129,9 @@ The `RouteBuilder.from(String uri)` method invokes
`getEndpoint(uri)` on the `Ca
== More Information
-See xref:lambda-route-builder.adoc[Lambda Route Builder] for creating a
routing rule using the DSL, using Java lambda style.
+For more details see:
+
+- xref:dsl.adoc[DSL]
+- xref:routes.adoc[Routes],
+- xref:processor.adoc[Processor]
+- xref:lambda-route-builder.adoc[Lambda Route Builder]
diff --git a/docs/user-manual/modules/ROOT/pages/jmx.adoc
b/docs/user-manual/modules/ROOT/pages/jmx.adoc
index 4ea03a0a7153..fae600c4d003 100644
--- a/docs/user-manual/modules/ROOT/pages/jmx.adoc
+++ b/docs/user-manual/modules/ROOT/pages/jmx.adoc
@@ -25,7 +25,6 @@ The high level supported types of management objects are:
Most of these management objects also expose lifecycle operations in
addition to performance counter-attributes.
-
== Disabling or enabling Camel JMX
JMX is only enabled in Camel when the `camel-management` JAR is included on the
@@ -34,19 +33,24 @@ from the classpath.
It is also possible to enable or disable JMX via configuration as documented
below.
+[tabs]
+====
+
+JVM::
++
You can disable the JMX instrumentation agent by setting the Java VM system
property as follows:
-
++
[source,bash]
----
-Dorg.apache.camel.jmx.disabled=true
----
-The property value is treated as `boolean`.
-
+Spring XML::
++
Alternatively, add a `jmxAgent` element inside the `camelContext` element in
Spring XML configuration:
-
++
[source,xml]
----
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
@@ -55,71 +59,50 @@ Spring XML configuration:
</camelContext>
----
+Java::
++
In Java, you can disable JMX directly on the `CamelContext` as follows:
-
++
[source,java]
----
CamelContext camel = new DefaultCamelContext();
camel.disableJMX();
----
+Application Properties::
++
+And you can also disable JMX from `application.properties` such as when using
Spring Boot
++
+[source,properties]
+----
+camel.main.jmxEnabled = false
+----
+====
+
== Camel JMX configuration options
Camel JMX can be configured with the following options.
-[width="100%",cols="25%,25%,25%,25%",options="header",]
-|=======================================================================
-|Option |JVM System Property |Default Value |Description
-|`id` | | |*required* The JMX agent name
-
-|`usePlatformMBeanServer` |`org.apache.camel.jmx.usePlatformMBeanServer`
|`true`
-|Whether to use the MBeanServer from JVM.
-
-|`mbeanServerDefaultDomain`
-|`org.apache.camel.jmx.mbeanServerDefaultDomain` |`org.apache.camel`
-|The default JMX domain of the `MBeanServer`
-
-|`mbeanObjectDomainName` |`org.apache.camel.jmx.mbeanObjectDomainName`
|`org.apache.camel`
-|The JMX domain that all object names will use
+[width="100%",cols="1,1,2",options="header",]
+|===
+|Option |Default Value |Description
+|id | |*required* The JMX agent name
+|usePlatformMBeanServer |true |Whether to use the MBeanServer from JVM.
+|mbeanServerDefaultDomain|org.apache.camel |The default JMX domain of the
MBeanServer
+|mbeanObjectDomainName |org.apache.camel |The JMX domain that all object names
will use
+|mbeansLevel |Default |Configure the level for which MBeans are registered.
See section _Registering MBeans for specific resources only_ for more details.
+|onlyRegisterProcessorWithCustomId |false |If this option is enabled, then
only processors with a custom id set will be registered. This allows you to
filer out unwanted processors in the JMX console.
+|statisticsLevel |Default |Configure the level for whether performance
statistics is enabled for the MBean. See section _Configuring level of
granularity for performance statistics_ for more details.
+|includeHostName | false |Whether to include the hostname in the MBean naming.
+|useHostIPAddress |false |Whether to use hostname or IP Address in the service
url when creating the remote connector. By default, the hostname will be used.
+|loadStatisticsEnabled | false |Whether load statistics is enabled (gather
load statistics using a background thread per CamelContext).
+|endpointRuntimeStatisticsEnabled |true |Whether endpoint runtime statistics
is enabled (gather runtime usage of each incoming and outgoing endpoint).
+|mask |true |A flag that indicates whether to remove detected sensitive
information (such as passwords)from MBean names and attributes.
+|updateRouteEnabled |false |Whether to allow updating routes at runtime via
JMX using the ManagedRouteMBean. This is disabled by default, but can be
enabled for development and troubleshooting purposes, such as updating routes
in an existing running Camel via JMX and other tools.
+|===
+
+TIP: Every option can also be specified as a JVM system property, such as
`-Dorg.apache.camel.jmx.useHostIPAddress=true`.
-|`mbeansLevel` | |`Default`
-|Configure the level for which MBeans are registered.
-See section _Registering MBeans for specific resources only_ for more details.
-
-|`onlyRegisterProcessorWithCustomId`
-|`org.apache.camel.jmx.onlyRegisterProcessorWithCustomId` |`false`
-|If this option is enabled, then only processors with a
-custom id set will be registered. This allows you to filer out unwanted
-processors in the JMX console.
-
-|`statisticsLevel` | |`Default`
-|Configure the level for whether performance statistics is enabled for the
MBean.
-See section _Configuring level of granularity for performance statistics_ for
more details.
-
-|`includeHostName` |`org.apache.camel.jmx.includeHostName` | `false`
-|Whether to include the hostname in the MBean naming.
-
-|`useHostIPAddress` |`org.apache.camel.jmx.useHostIPAddress` |`false`
-|Whether to use hostname or IP Address in the service url
-when creating the remote connector. By default, the hostname will be
-used.
-
-|`loadStatisticsEnabled` |`org.apache.camel.jmx.loadStatisticsEnabled` |`false`
-|Whether load statistics is enabled (gather load statistics using a background
thread per CamelContext).
-
-|`endpointRuntimeStatisticsEnabled`
-|`org.apache.camel.jmx.endpointRuntimeStatisticsEnabled` |`true`
-|Whether endpoint runtime statistics is enabled (gather runtime
-usage of each incoming and outgoing endpoint).
-
-|`mask` |`org.apache.camel.jmx.mask` |`true`
-|A flag that indicates whether to remove detected sensitive information (such
as passwords)
-from MBean names and attributes.
-
-|`updateRouteEnabled` |`org.apache.camel.jmx.updateRouteEnabled` |`false`
-|Whether to allow updating routes at runtime via JMX using the
ManagedRouteMBean. This is disabled by default, but can be enabled for
development and troubleshooting purposes, such as updating routes in an
existing running Camel via JMX and other tools.
-
-|=======================================================================
=== Registering MBeans for specific resources only
@@ -128,29 +111,21 @@ when it starts up. However, you can specify a level to
control whether
MBeans are registered at startup. The levels are:
* `Default` - Camel will register MBeans for the context, all the routes and
the processors.
-
* `RoutesOnly` - Camel will register MBeans for the context and for all the
routes (not for any processor).
-
* `ContextOnly` - Camel will register MBeans for the context (neither for any
route nor for any processor).
=== Registering new MBeans for new routes, created by route templates, Kamelets
Camel provides the following settings to control when to register mbeans.
-[width="100%",cols="34%,33%,33%",options="header",]
-|=======================================================================
+[width="100%",cols="1,1,2",options="header",]
+|===
|Option |Default |Description
|`registerAlways` |`false` |If enabled then MBeans are always registered.
-
-|`registerNewRoutes` |`true` |If enabled then adding new routes after
-CamelContext has been started will also register
-MBeans from that given route.
-
+|`registerNewRoutes` |`true` |If enabled then adding new routes after
CamelContext has been started will also register MBeans from that given route.
|`registerRoutesCreateByKamelet` |`false` |If enabled then adding routes
created by Kamelet will also register MBeans from that given route.
-
|`registerRoutesCreateByTemplate` |`true` |If enabled then adding routes
created by route template (not Kamelet, see option above) will also register
MBeans from that given route.
-
-|=======================================================================
+|===
By default, Camel automatically registers MBeans for all routes configured at
startup. The `registerNewRoutes` option controls whether MBeans should also be
@@ -187,11 +162,19 @@ org.apache.camel:context=camel-1,type=context,name=camel-1
If you configure a name on the `CamelContext` then that name is part of
the `ObjectName` as well. For example, if we have:
+.Spring XML
[source,xml]
----
<camelContext id="myCamel" ...>
----
+Or in `application.properties`
+
+[source,properties]
+----
+camel.main.name = myCamel
+----
+
Then the MBean names will be as follows:
[source,text]
@@ -238,6 +221,13 @@ the `managementNamePattern` attribute:
<camelContext id="myCamel" managementNamePattern="#name#">
----
+This can also be configured in `application.properties`:
+
+[source,properties]
+----
+camel.main.jmxManagementNamePattern = #name#
+----
+
Then the MBean names will always be as follows:
[source,text]
@@ -259,16 +249,12 @@ enabled or not when Camel starts up. The levels are:
* `Default` - Camel will enable statistics for both routes and
processors (fine-grained).
-
* `Extended` - As default but with additional statistics gathered during
runtime such as fine-grained level of usage of endpoints and more.
-
* `RoutesOnly` - Camel will only enable statistics for routes (coarse
grained)
-
* `Off` - Camel will not use any statistics.
-
[NOTE]
====
*What does statistics enabled mean?*
@@ -279,16 +265,19 @@ last/total/min/max/mean processing time, first/last
failed time, etc.
====
-Using Java DSL, you set the statistics level by:
+[tabs]
+====
+Java::
++
[source,java]
----
// only enable routes when Camel starts
context.getManagementStrategy().setStatisticsLevel(ManagementStatisticsLevel.RoutesOnly);
----
-And from XML DSL you can do:
-
+Spring XML::
++
[source,xml]
----
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
@@ -297,6 +286,14 @@ And from XML DSL you can do:
</camelContext>
----
+Application Properties::
++
+[source,properties]
+----
+camel.main.jmxManagementStatisticsLevel = RoutesOnly
+----
+====
+
=== Performance load statistics
It is possible to include load statistics for CamelContext and Route MBeans.
@@ -304,7 +301,12 @@ These statistics are for average load based on the number
of in-flight
exchanges, measured over periods of 1, 5, and 15 minutes. This is similar to
load statistics on Unix systems.
-You can enable this by setting `loadStatisticsEnabled=true`.
+You can enable load statistics such as from `application.properties`:
+
+[source,properties]
+----
+camel.main.loadStatisticsEnabled = true
+----
== Hiding sensitive information
@@ -344,7 +346,7 @@ NOTE: make sure to properly secure the access to JMX
services for production wor
Exposing the JMX metrics with its native protocol may not always be possible
(ie, for firewall limitations, security, etc). In this case you may recur to
the availability of JSR 160 compatible Java Agents (for instance,
https://jolokia.org/reference/html/manual/agents.html#agents-jvm[Jolokia]),
which goal is to adapt the JMX interface with HTTP based protocol. With this
approach you can run you application attaching a Java Agent whose goal will be
to take care of exposing JMX via HTTP. A [...]
-[source, java]
+[source,bash]
----
java -javaagent:jsr160-javaagent.jar -jar my-camel-app.jar
----
@@ -353,14 +355,14 @@ will expose certain endpoints (depending on the
implementation) which would let
Depending on the implementation you will need to provide to a different set of
agent configuration. For example, if you're running Jolokia agent, then, you
will need to run this configuration to expose a plain HTTP unsecure service:
-[source, console]
+[source,bash]
----
java
-javaagent:jolokia-agent-jvm-2.1.1-javaagent.jar=protocol=http,useSslClientAuthentication=false,discoveryEnabled=false,host=*,extendedClientCheck=false
-jar my-camel-app.jar
----
From that moment onward you will be able to access the service via:
-[source, console]
+[source,bash]
----
$ curl http://localhost:8778/jolokia/list/org.apache.camel | jq | more
{
diff --git a/docs/user-manual/modules/ROOT/pages/json.adoc
b/docs/user-manual/modules/ROOT/pages/json.adoc
index 15e7972fc51f..a8094e78ee49 100644
--- a/docs/user-manual/modules/ROOT/pages/json.adoc
+++ b/docs/user-manual/modules/ROOT/pages/json.adoc
@@ -8,7 +8,7 @@ popular JSON libraries such as:
- Jackson
- Google GSon
-- Johnzon
+- JSonB
How to use JSON with Camel then see the documentation (for the JSON data
library of choice)
in the list of xref:components:dataformats:index.adoc[Data Formats].
\ No newline at end of file