Generate components/etc tables with Antora
diff --git a/docs/antora.yml b/docs/antora.yml
index 55326b0..8c263ad 100644
--- a/docs/antora.yml
+++ b/docs/antora.yml
@@ -22,3 +22,8 @@
 display_version: Next (Pre-release)
 nav:
 - modules/ROOT/nav.adoc
+
+asciidoc:
+  attributes:
+    requires: "'util=camel-website-util,karaf=xref:js/karaf.js'"
+
diff --git a/docs/modules/ROOT/examples/js/karaf.js b/docs/modules/ROOT/examples/js/karaf.js
new file mode 100644
index 0000000..91d3be4
--- /dev/null
+++ b/docs/modules/ROOT/examples/js/karaf.js
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+const KARAF_GROUPID = 'org.apache.camel.karaf'
+
+module.exports = {
+  v: function (name, kind, $) {
+    return $[kind][name]
+  },
+
+  extensionRef: function (version, module, kind, $) {
+    const thing = $[kind]
+    const name = thing.name.startsWith('bindy') ? 'bindy' : thing.name
+    const pageName = kind === 'other' ? name : `${name}-${kind}`
+    if (thing.groupId === KARAF_GROUPID) {
+      return `xref:${pageName}.adoc[${thing.title}]`
+    }
+    return `xref:${version}@components:${module}:${pageName}.adoc[${thing.title}]`
+  },
+
+  deprecatedFilterComponent: function (items) {
+    return deprecatedFilter(items, 'component')
+  },
+
+  sortComponent: function (items) {
+    return sort(items, 'component')
+  },
+
+  deprecatedFilterDataformat: function (items) {
+    return deprecatedFilter(items, 'dataformat')
+  },
+
+  sortDataformat: function (items) {
+    return sort(items, 'dataformat')
+  },
+
+  deprecatedFilterLanguage: function (items) {
+    return deprecatedFilter(items, 'language')
+  },
+
+  sortLanguage: function (items) {
+    return sort(items, 'language')
+  },
+
+  deprecatedFilterMiscellaneous: function (items) {
+    return deprecatedFilter(items, 'other')
+  },
+
+  sortMiscellaneous: function (items) {
+    return sort(items, 'other')
+  },
+}
+
+function deprecatedFilter (items, kind) {
+  return items.filter((item) => item.$[kind].deprecated === true)
+}
+
+function sort (items, kind) {
+  return items.sort((f1, f2) => {
+      const t1 = f1.$[kind].title.toLowerCase()
+      const t2 = f2.$[kind].title.toLowerCase()
+      return t1 < t2 ? -1 : t1 > t2 ? 1 : 0
+    }
+  )
+}
diff --git a/docs/modules/ROOT/pages/components.adoc b/docs/modules/ROOT/pages/components.adoc
index c902355..3e1adc3 100644
--- a/docs/modules/ROOT/pages/components.adoc
+++ b/docs/modules/ROOT/pages/components.adoc
@@ -4,917 +4,40 @@
 
 == Camel Components
 
-// components: START
-Number of Camel components: 203 in 203 JAR artifacts (10 deprecated)
+:indexer-module: ROOT
+:indexer-rel-filter: json/components/*.json
+:indexer-kind: component
+:indexer-human-readable-kind: Component
+:indexer-human-readable-kind-plural: components
 
-[width="100%",cols="4,1,5",options="header"]
-|===
-| Component | Since | Description
-
-| xref:next@components::activemq-component.adoc[ActiveMQ] (camel-activemq) +
-`activemq:destinationType:destinationName` | 1.0 | Send messages to (or consume from) Apache ActiveMQ. This component extends the Camel JMS component.
-
-| xref:next@components::amqp-component.adoc[AMQP] (camel-amqp) +
-`amqp:destinationType:destinationName` | 1.2 | Messaging with AMQP protocol using Apache QPid Client.
-
-| xref:next@components::arangodb-component.adoc[ArangoDb] (camel-arangodb) +
-`arangodb:database` | 3.5 | Perform operations on ArangoDb when used as a Document Database, or as a Graph Database
-
-| xref:next@components::as2-component.adoc[AS2] (camel-as2) +
-`as2:apiName/methodName` | 2.22 | Transfer data securely and reliably using the AS2 protocol (RFC4130).
-
-| xref:next@components::asterisk-component.adoc[Asterisk] (camel-asterisk) +
-`asterisk:name` | 2.18 | Interact with Asterisk PBX Server.
-
-| xref:next@components::ahc-component.adoc[Async HTTP Client (AHC)] (camel-ahc) +
-`ahc:httpUri` | 2.8 | Call external HTTP services using Async Http Client.
-
-| xref:next@components::ahc-ws-component.adoc[Async HTTP Client (AHC) Websocket] (camel-ahc-ws) +
-`ahc-ws:httpUri` | 2.14 | Exchange data with external Websocket servers using Async Http Client.
-
-| xref:next@components::atom-component.adoc[Atom] (camel-atom) +
-`atom:feedUri` | 1.2 | Poll Atom RSS feeds.
-
-| xref:next@components::avro-component.adoc[Avro RPC] (camel-avro-rpc) +
-`avro:transport:host:port/messageName` | 2.10 | Produce or consume Apache Avro RPC services.
-
-| xref:next@components::aws2-athena-component.adoc[AWS Athena] (camel-aws2-athena) +
-`aws2-athena:label` | 3.4 | Access AWS Athena service using AWS SDK version 2.x.
-
-| xref:next@components::aws2-cw-component.adoc[AWS CloudWatch] (camel-aws2-cw) +
-`aws2-cw:namespace` | 3.1 | Sending metrics to AWS CloudWatch using AWS SDK version 2.x.
-
-| xref:next@components::aws2-ddb-component.adoc[AWS DynamoDB] (camel-aws2-ddb) +
-`aws2-ddb:tableName` | 3.1 | Store and retrieve data from AWS DynamoDB service using AWS SDK version 2.x.
-
-| xref:next@components::aws2-ec2-component.adoc[AWS Elastic Compute Cloud (EC2)] (camel-aws2-ec2) +
-`aws2-ec2:label` | 3.1 | Manage AWS EC2 instances using AWS SDK version 2.x.
-
-| xref:next@components::aws2-ecs-component.adoc[AWS Elastic Container Service (ECS)] (camel-aws2-ecs) +
-`aws2-ecs:label` | 3.1 | Manage AWS ECS cluster instances using AWS SDK version 2.x.
-
-| xref:next@components::aws2-eks-component.adoc[AWS Elastic Kubernetes Service (EKS)] (camel-aws2-eks) +
-`aws2-eks:label` | 3.1 | Manage AWS EKS cluster instances using AWS SDK version 2.x.
-
-| xref:next@components::aws2-eventbridge-component.adoc[AWS Eventbridge] (camel-aws2-eventbridge) +
-`aws2-eventbridge://eventbusNameOrArn` | 3.6 | Manage AWS Eventbridge cluster instances using AWS SDK version 2.x.
-
-| xref:next@components::aws2-iam-component.adoc[AWS Identity and Access Management (IAM)] (camel-aws2-iam) +
-`aws2-iam:label` | 3.1 | Manage AWS IAM instances using AWS SDK version 2.x.
-
-| xref:next@components::aws2-kms-component.adoc[AWS Key Management Service (KMS)] (camel-aws2-kms) +
-`aws2-kms:label` | 3.1 | Manage keys stored in AWS KMS instances using AWS SDK version 2.x.
-
-| xref:next@components::aws2-kinesis-component.adoc[AWS Kinesis] (camel-aws2-kinesis) +
-`aws2-kinesis:streamName` | 3.2 | Consume and produce records from and to AWS Kinesis Streams using AWS SDK version 2.x.
-
-| xref:next@components::aws2-lambda-component.adoc[AWS Lambda] (camel-aws2-lambda) +
-`aws2-lambda:function` | 3.2 | Manage and invoke AWS Lambda functions using AWS SDK version 2.x.
-
-| xref:next@components::aws2-msk-component.adoc[AWS Managed Streaming for Apache Kafka (MSK)] (camel-aws2-msk) +
-`aws2-msk:label` | 3.1 | Manage AWS MSK instances using AWS SDK version 2.x.
-
-| xref:next@components::aws2-mq-component.adoc[AWS MQ] (camel-aws2-mq) +
-`aws2-mq:label` | 3.1 | Manage AWS MQ instances using AWS SDK version 2.x.
-
-| xref:next@components::aws2-s3-component.adoc[AWS S3 Storage Service] (camel-aws2-s3) +
-`aws2-s3://bucketNameOrArn` | 3.2 | Store and retrieve objects from AWS S3 Storage Service using AWS SDK version 2.x.
-
-| xref:next@components::aws-secrets-manager-component.adoc[AWS Secrets Manager] (camel-aws-secrets-manager) +
-`aws-secrets-manager:label` | 3.9 | Manage AWS Secrets Manager services using AWS SDK version 2.x.
-
-| xref:next@components::aws2-sts-component.adoc[AWS Security Token Service (STS)] (camel-aws2-sts) +
-`aws2-sts:label` | 3.5 | Manage AWS STS cluster instances using AWS SDK version 2.x.
-
-| xref:next@components::aws2-ses-component.adoc[AWS Simple Email Service (SES)] (camel-aws2-ses) +
-`aws2-ses:from` | 3.1 | Send e-mails through AWS SES service using AWS SDK version 2.x.
-
-| xref:next@components::aws2-sns-component.adoc[AWS Simple Notification System (SNS)] (camel-aws2-sns) +
-`aws2-sns:topicNameOrArn` | 3.1 | Send messages to an AWS Simple Notification Topic using AWS SDK version 2.x.
-
-| xref:next@components::aws2-sqs-component.adoc[AWS Simple Queue Service (SQS)] (camel-aws2-sqs) +
-`aws2-sqs:queueNameOrArn` | 3.1 | Send and receive messages to/from AWS SQS service using AWS SDK version 2.x.
-
-| xref:next@components::aws2-translate-component.adoc[AWS Translate] (camel-aws2-translate) +
-`aws2-translate:label` | 3.1 | Translate texts using AWS Translate and AWS SDK version 2.x.
-
-| xref:next@components::azure-eventhubs-component.adoc[Azure Event Hubs] (camel-azure-eventhubs) +
-`azure-eventhubs:namespace/eventHubName` | 3.5 | Send and receive events to/from Azure Event Hubs using AMQP protocol.
-
-| xref:next@components::azure-storage-blob-component.adoc[Azure Storage Blob Service] (camel-azure-storage-blob) +
-`azure-storage-blob:accountName/containerName` | 3.3 | Store and retrieve blobs from Azure Storage Blob Service.
-
-| xref:next@components::azure-storage-datalake-component.adoc[Azure Storage Datalake Service] (camel-azure-storage-datalake) +
-`azure-storage-datalake:accountName/fileSystemName` | 3.8 | Sends and receives files to/from Azure DataLake Storage.
-
-| xref:next@components::azure-storage-queue-component.adoc[Azure Storage Queue Service] (camel-azure-storage-queue) +
-`azure-storage-queue:accountName/queueName` | 3.3 | Stores and retrieves messages to/from Azure Storage Queue.
-
-| xref:next@components::bean-component.adoc[Bean] (camel-bean) +
-`bean:beanName` | 1.0 | Invoke methods of Java beans stored in Camel registry.
-
-| xref:next@components::bean-validator-component.adoc[Bean Validator] (camel-bean-validator) +
-`bean-validator:label` | 2.3 | Validate the message body using the Java Bean Validation API.
-
-| xref:next@components::beanstalk-component.adoc[Beanstalk] (camel-beanstalk) +
-`beanstalk:connectionSettings` | 2.15 | *deprecated* Retrieve and post-process Beanstalk jobs.
-
-| xref:next@components::box-component.adoc[Box] (camel-box) +
-`box:apiName/methodName` | 2.14 | Upload, download and manage files, folders, groups, collaborations, etc. on box.com.
-
-| xref:next@components::braintree-component.adoc[Braintree] (camel-braintree) +
-`braintree:apiName/methodName` | 2.17 | Process payments using Braintree Payments.
-
-| xref:next@components::browse-component.adoc[Browse] (camel-browse) +
-`browse:name` | 1.3 | Inspect the messages received on endpoints supporting BrowsableEndpoint.
-
-| xref:next@components::chatscript-component.adoc[ChatScript] (camel-chatscript) +
-`chatscript:host:port/botName` | 3.0 | Chat with a ChatScript Server.
-
-| xref:next@components::cm-sms-component.adoc[CM SMS Gateway] (camel-cm-sms) +
-`cm-sms:host` | 2.18 | Send SMS messages via CM SMS Gateway.
-
-| xref:next@components::cmis-component.adoc[CMIS] (camel-cmis) +
-`cmis:cmsUrl` | 2.11 | Read and write data from to/from a CMIS compliant content repositories.
-
-| xref:next@components::coap-component.adoc[CoAP] (camel-coap) +
-`coap:uri` | 2.16 | Send and receive messages to/from COAP capable devices.
-
-| xref:next@components::cometd-component.adoc[CometD] (camel-cometd) +
-`cometd:host:port/channelName` | 2.0 | Offers publish/subscribe, peer-to-peer (via a server), and RPC style messaging using the CometD/Bayeux protocol.
-
-| xref:next@components::consul-component.adoc[Consul] (camel-consul) +
-`consul:apiEndpoint` | 2.18 | Integrate with Consul service discovery and configuration store.
-
-| xref:next@components::controlbus-component.adoc[Control Bus] (camel-controlbus) +
-`controlbus:command:language` | 2.11 | Manage and monitor Camel routes.
-
-| xref:next@components::corda-component.adoc[Corda] (camel-corda) +
-`corda:node` | 2.23 | Perform operations against Corda blockchain platform using corda-rpc library.
-
-| xref:next@components::couchdb-component.adoc[CouchDB] (camel-couchdb) +
-`couchdb:protocol:hostname:port/database` | 2.11 | Consume changesets for inserts, updates and deletes in a CouchDB database, as well as get, save, update and delete documents from a CouchDB database.
-
-| xref:next@components::cron-component.adoc[Cron] (camel-cron) +
-`cron:name` | 3.1 | A generic interface for triggering events at times specified through the Unix cron syntax.
-
-| xref:next@components::crypto-component.adoc[Crypto (JCE)] (camel-crypto) +
-`crypto:cryptoOperation:name` | 2.3 | Sign and verify exchanges using the Signature Service of the Java Cryptographic Extension (JCE).
-
-| xref:next@components::cxf-component.adoc[CXF] (camel-cxf) +
-`cxf:beanId:address` | 1.0 | Expose SOAP WebServices using Apache CXF or connect to external WebServices using CXF WS client.
-
-| xref:next@components::dataformat-component.adoc[Data Format] (camel-dataformat) +
-`dataformat:name:operation` | 2.12 | Use a Camel Data Format as a regular Camel Component.
-
-| xref:next@components::dataset-component.adoc[Dataset] (camel-dataset) +
-`dataset:name` | 1.3 | Provide data for load and soak testing of your Camel application.
-
-| xref:next@components::djl-component.adoc[Deep Java Library] (camel-djl) +
-`djl:application` | 3.3 | Infer Deep Learning models from message exchanges data using Deep Java Library (DJL).
-
-| xref:next@components::digitalocean-component.adoc[DigitalOcean] (camel-digitalocean) +
-`digitalocean:operation` | 2.19 | Manage Droplets and resources within the DigitalOcean cloud.
-
-| xref:next@components::direct-component.adoc[Direct] (camel-direct) +
-`direct:name` | 1.0 | Call another endpoint from the same Camel Context synchronously.
-
-| xref:next@components::disruptor-component.adoc[Disruptor] (camel-disruptor) +
-`disruptor:name` | 2.12 | Provides asynchronous SEDA behavior using LMAX Disruptor.
-
-| xref:next@components::dns-component.adoc[DNS] (camel-dns) +
-`dns:dnsType` | 2.7 | Perform DNS queries using DNSJava.
-
-| xref:next@components::docker-component.adoc[Docker] (camel-docker) +
-`docker:operation` | 2.15 | Manage Docker containers.
-
-| xref:next@components::dozer-component.adoc[Dozer] (camel-dozer) +
-`dozer:name` | 2.15 | Map between Java beans using the Dozer mapping library.
-
-| xref:next@components::drill-component.adoc[Drill] (camel-drill) +
-`drill:host` | 2.19 | Perform queries against an Apache Drill cluster.
-
-| xref:next@components::dropbox-component.adoc[Dropbox] (camel-dropbox) +
-`dropbox:operation` | 2.14 | Upload, download and manage files, folders, groups, collaborations, etc on Dropbox.
-
-| xref:next@components::ehcache-component.adoc[Ehcache] (camel-ehcache) +
-`ehcache:cacheName` | 2.18 | Perform caching operations using Ehcache.
-
-| xref:next@components::elasticsearch-rest-component.adoc[Elasticsearch Rest] (camel-elasticsearch-rest) +
-`elasticsearch-rest:clusterName` | 2.21 | Send requests to ElasticSearch via REST API
-
-| xref:next@components::elsql-component.adoc[ElSQL] (camel-elsql) +
-`elsql:elsqlName:resourceUri` | 2.16 | *deprecated* Use ElSql to define SQL queries. Extends the SQL Component.
-
-| xref:next@components::exec-component.adoc[Exec] (camel-exec) +
-`exec:executable` | 2.3 | Execute commands on the underlying operating system.
-
-| xref:next@components::facebook-component.adoc[Facebook] (camel-facebook) +
-`facebook:methodName` | 2.14 | Send requests to Facebook APIs supported by Facebook4J.
-
-| xref:next@components::file-component.adoc[File] (camel-file) +
-`file:directoryName` | 1.0 | Read and write files.
-
-| xref:next@components::file-watch-component.adoc[File Watch] (camel-file-watch) +
-`file-watch:path` | 3.0 | Get notified about file events in a directory using java.nio.file.WatchService.
-
-| xref:next@components::flatpack-component.adoc[Flatpack] (camel-flatpack) +
-`flatpack:type:resourceUri` | 1.4 | Parse fixed width and delimited files using the FlatPack library.
-
-| xref:next@components::fop-component.adoc[FOP] (camel-fop) +
-`fop:outputType` | 2.10 | Render messages into PDF and other output formats supported by Apache FOP.
-
-| xref:next@components::freemarker-component.adoc[Freemarker] (camel-freemarker) +
-`freemarker:resourceUri` | 2.10 | Transform messages using FreeMarker templates.
-
-| xref:next@components::ftp-component.adoc[FTP] (camel-ftp) +
-`ftp:host:port/directoryName` | 1.1 | Upload and download files to/from FTP servers.
-
-| xref:next@components::ganglia-component.adoc[Ganglia] (camel-ganglia) +
-`ganglia:host:port` | 2.15 | *deprecated* Send metrics to Ganglia monitoring system.
-
-| xref:next@components::git-component.adoc[Git] (camel-git) +
-`git:localPath` | 2.16 | Perform operations on git repositories.
-
-| xref:next@components::github-component.adoc[GitHub] (camel-github) +
-`github:type/branchName` | 2.15 | Interact with the GitHub API.
-
-| xref:next@components::google-bigquery-component.adoc[Google BigQuery] (camel-google-bigquery) +
-`google-bigquery:projectId:datasetId:tableId` | 2.20 | Google BigQuery data warehouse for analytics.
-
-| xref:next@components::google-calendar-component.adoc[Google Calendar] (camel-google-calendar) +
-`google-calendar:apiName/methodName` | 2.15 | Perform various operations on a Google Calendar.
-
-| xref:next@components::google-drive-component.adoc[Google Drive] (camel-google-drive) +
-`google-drive:apiName/methodName` | 2.14 | Manage files in Google Drive.
-
-| xref:next@components::google-mail-component.adoc[Google Mail] (camel-google-mail) +
-`google-mail:apiName/methodName` | 2.15 | Manage messages in Google Mail.
-
-| xref:next@components::google-sheets-component.adoc[Google Sheets] (camel-google-sheets) +
-`google-sheets:apiName/methodName` | 2.23 | Manage spreadsheets in Google Sheets.
-
-| xref:next@components::grape-component.adoc[Grape] (camel-grape) +
-`grape:defaultCoordinates` | 2.16 | Fetch, load and manage additional jars dynamically after Camel Context was started.
-
-| xref:next@components::graphql-component.adoc[GraphQL] (camel-graphql) +
-`graphql:httpUri` | 3.0 | Send GraphQL queries and mutations to external systems.
-
-| xref:next@components::guava-eventbus-component.adoc[Guava EventBus] (camel-guava-eventbus) +
-`guava-eventbus:eventBusRef` | 2.10 | Send and receive messages to/from Guava EventBus.
-
-| xref:next@components::http-component.adoc[HTTP] (camel-http) +
-`http://httpUri` | 2.3 | Send requests to external HTTP servers using Apache HTTP Client 4.x.
-
-| xref:next@components::influxdb-component.adoc[InfluxDB] (camel-influxdb) +
-`influxdb:connectionBean` | 2.18 | Interact with InfluxDB, a time series database.
-
-| xref:next@components::iota-component.adoc[IOTA] (camel-iota) +
-`iota:name` | 2.23 | Manage financial transactions using IOTA distributed ledger.
-
-| xref:next@components::irc-component.adoc[IRC] (camel-irc) +
-`irc:hostname:port` | 1.1 | Send and receive messages to/from and IRC chat.
-
-| xref:next@components::ironmq-component.adoc[IronMQ] (camel-ironmq) +
-`ironmq:queueName` | 2.17 | Send and receive messages to/from IronMQ an elastic and durable hosted message queue as a service.
-
-| xref:next@components::websocket-jsr356-component.adoc[Javax Websocket] (camel-websocket-jsr356) +
-`websocket-jsr356:uri` | 2.23 | Expose websocket endpoints using JSR356.
-
-| xref:next@components::jcache-component.adoc[JCache] (camel-jcache) +
-`jcache:cacheName` | 2.17 | Perform caching operations against JSR107/JCache.
-
-| xref:next@components::jcr-component.adoc[JCR] (camel-jcr) +
-`jcr:host/base` | 1.3 | Read and write nodes to/from a JCR compliant content repository.
-
-| xref:next@components::jdbc-component.adoc[JDBC] (camel-jdbc) +
-`jdbc:dataSourceName` | 1.2 | Access databases through SQL and JDBC.
-
-| xref:next@components::jetty-component.adoc[Jetty] (camel-jetty) +
-`jetty:httpUri` | 1.2 | Expose HTTP endpoints using Jetty 9.
-
-| xref:next@components::websocket-component.adoc[Jetty Websocket] (camel-websocket) +
-`websocket:host:port/resourceUri` | 2.10 | Expose websocket endpoints using Jetty.
-
-| xref:next@components::jing-component.adoc[Jing] (camel-jing) +
-`jing:resourceUri` | 1.1 | *deprecated* Validate XML against a RelaxNG schema (XML Syntax or Compact Syntax) using Jing library.
-
-| xref:next@components::jms-component.adoc[JMS] (camel-jms) +
-`jms:destinationType:destinationName` | 1.0 | Sent and receive messages to/from a JMS Queue or Topic.
-
-| xref:next@components::jmx-component.adoc[JMX] (camel-jmx) +
-`jmx:serverURL` | 2.6 | Receive JMX notifications.
-
-| xref:next@components::jolt-component.adoc[JOLT] (camel-jolt) +
-`jolt:resourceUri` | 2.16 | JSON to JSON transformation using JOLT.
-
-| xref:next@components::jooq-component.adoc[JOOQ] (camel-jooq) +
-`jooq:entityType` | 3.0 | Store and retrieve Java objects from an SQL database using JOOQ.
-
-| xref:next@components::jpa-component.adoc[JPA] (camel-jpa) +
-`jpa:entityType` | 1.0 | Store and retrieve Java objects from databases using Java Persistence API (JPA).
-
-| xref:next@components::jslt-component.adoc[JSLT] (camel-jslt) +
-`jslt:resourceUri` | 3.1 | Query or transform JSON payloads using an JSLT.
-
-| xref:next@components::json-validator-component.adoc[JSON Schema Validator] (camel-json-validator) +
-`json-validator:resourceUri` | 2.20 | Validate JSON payloads using NetworkNT JSON Schema.
-
-| xref:next@components::jsonata-component.adoc[JSONata] (camel-jsonata) +
-`jsonata:resourceUri` | 3.5 | Transforms JSON payload using JSONata transformation.
-
-| xref:next@components::jt400-component.adoc[JT400] (camel-jt400) +
-`jt400:userID:password/systemName/objectPath.type` | 1.5 | Exchanges messages with an IBM i system using data queues, message queues, or program call. IBM i is the replacement for AS/400 and iSeries servers.
-
-| xref:next@components::kafka-component.adoc[Kafka] (camel-kafka) +
-`kafka:topic` | 2.13 | Sent and receive messages to/from an Apache Kafka broker.
-
-| xref:next@components::kamelet-component.adoc[Kamelet] (camel-kamelet) +
-`kamelet:templateId/routeId` | 3.8 | To call Kamelets
-
-| xref:next@components::kudu-component.adoc[Kudu] (camel-kudu) +
-`kudu:host:port/tableName` | 3.0 | Interact with Apache Kudu, a free and open source column-oriented data store of the Apache Hadoop ecosystem.
-
-| xref:next@components::language-component.adoc[Language] (camel-language) +
-`language:languageName:resourceUri` | 2.5 | Execute scripts in any of the languages supported by Camel.
-
-| xref:next@components::ldap-component.adoc[LDAP] (camel-ldap) +
-`ldap:dirContextName` | 1.5 | Perform searches on LDAP servers.
-
-| xref:next@components::ldif-component.adoc[LDIF] (camel-ldif) +
-`ldif:ldapConnectionName` | 2.20 | Perform updates on an LDAP server from an LDIF body content.
-
-| xref:next@components::log-component.adoc[Log] (camel-log) +
-`log:loggerName` | 1.1 | Log messages to the underlying logging mechanism.
-
-| xref:next@components::lucene-component.adoc[Lucene] (camel-lucene) +
-`lucene:host:operation` | 2.2 | Perform inserts or queries against Apache Lucene databases.
-
-| xref:next@components::lumberjack-component.adoc[Lumberjack] (camel-lumberjack) +
-`lumberjack:host:port` | 2.18 | Receive logs messages using the Lumberjack protocol.
-
-| xref:next@components::master-component.adoc[Master] (camel-master) +
-`master:namespace:delegateUri` | 2.20 | Have only a single consumer in a cluster consuming from a given endpoint; with automatic failover if the JVM dies.
-
-| xref:next@components::metrics-component.adoc[Metrics] (camel-metrics) +
-`metrics:metricsType:metricsName` | 2.14 | Collect various metrics directly from Camel routes using the DropWizard metrics library.
-
-| xref:next@components::micrometer-component.adoc[Micrometer] (camel-micrometer) +
-`micrometer:metricsType:metricsName` | 2.22 | Collect various metrics directly from Camel routes using the Micrometer library.
-
-| xref:next@components::mina-component.adoc[Mina] (camel-mina) +
-`mina:protocol:host:port` | 2.10 | Socket level networking using TCP or UDP with Apache Mina 2.x.
-
-| xref:next@components::minio-component.adoc[Minio] (camel-minio) +
-`minio:bucketName` | 3.5 | Store and retrieve objects from Minio Storage Service using Minio SDK.
-
-| xref:next@components::mllp-component.adoc[MLLP] (camel-mllp) +
-`mllp:hostname:port` | 2.17 | Communicate with external systems using the MLLP protocol.
-
-| xref:next@components::mock-component.adoc[Mock] (camel-mock) +
-`mock:name` | 1.0 | Test routes and mediation rules using mocks.
-
-| xref:next@components::mongodb-component.adoc[MongoDB] (camel-mongodb) +
-`mongodb:connectionBean` | 2.19 | Perform operations on MongoDB documents and collections.
-
-| xref:next@components::mongodb-gridfs-component.adoc[MongoDB GridFS] (camel-mongodb-gridfs) +
-`mongodb-gridfs:connectionBean` | 2.18 | Interact with MongoDB GridFS.
-
-| xref:next@components::msv-component.adoc[MSV] (camel-msv) +
-`msv:resourceUri` | 1.1 | *deprecated* Validate XML payloads using Multi-Schema Validator (MSV).
-
-| xref:next@components::mustache-component.adoc[Mustache] (camel-mustache) +
-`mustache:resourceUri` | 2.12 | Transform messages using a Mustache template.
-
-| xref:next@components::mvel-component.adoc[MVEL] (camel-mvel) +
-`mvel:resourceUri` | 2.12 | Transform messages using an MVEL template.
-
-| xref:next@components::mybatis-component.adoc[MyBatis] (camel-mybatis) +
-`mybatis:statement` | 2.7 | Performs a query, poll, insert, update or delete in a relational database using MyBatis.
-
-| xref:next@components::nagios-component.adoc[Nagios] (camel-nagios) +
-`nagios:host:port` | 2.3 | *deprecated* Send passive checks to Nagios using JSendNSCA.
-
-| xref:next@components::netty-component.adoc[Netty] (camel-netty) +
-`netty:protocol://host:port` | 2.14 | Socket level networking using TCP or UDP with Netty 4.x.
-
-| xref:next@components::netty-http-component.adoc[Netty HTTP] (camel-netty-http) +
-`netty-http:protocol://host:port/path` | 2.14 | Netty HTTP server and client using the Netty 4.x.
-
-| xref:next@components::nitrite-component.adoc[Nitrite] (camel-nitrite) +
-`nitrite:database` | 3.0 | Access Nitrite databases.
-
-| xref:next@components::nsq-component.adoc[NSQ] (camel-nsq) +
-`nsq:topic` | 2.23 | *deprecated* Send and receive messages from NSQ realtime distributed messaging platform.
-
-| xref:next@components::olingo2-component.adoc[Olingo2] (camel-olingo2) +
-`olingo2:apiName/methodName` | 2.14 | Communicate with OData 2.0 services using Apache Olingo.
-
-| xref:next@components::olingo4-component.adoc[Olingo4] (camel-olingo4) +
-`olingo4:apiName/methodName` | 2.19 | Communicate with OData 4.0 services using Apache Olingo OData API.
-
-| xref:eventadmin-component.adoc[OSGi EventAdmin] (camel-eventadmin) +
-`eventadmin:topic` | 2.6 | The eventadmin component can be used in an OSGi environment to receive OSGi EventAdmin events and process them.
-
-| xref:paxlogging-component.adoc[OSGi PAX Logging] (camel-paxlogging) +
-`paxlogging:appender` | 2.6 | The paxlogging component can be used in an OSGi environment to receive PaxLogging events and process them.
-
-| xref:next@components::paho-component.adoc[Paho] (camel-paho) +
-`paho:topic` | 2.16 | Communicate with MQTT message brokers using Eclipse Paho MQTT Client.
-
-| xref:next@components::pdf-component.adoc[PDF] (camel-pdf) +
-`pdf:operation` | 2.16 | Create, modify or extract content from PDF documents.
-
-| xref:next@components::pgevent-component.adoc[PostgresSQL Event] (camel-pgevent) +
-`pgevent:host:port/database/channel` | 2.15 | Send and receive PostgreSQL events via LISTEN and NOTIFY commands.
-
-| xref:next@components::pg-replication-slot-component.adoc[PostgresSQL Replication Slot] (camel-pg-replication-slot) +
-`pg-replication-slot:host:port/database/slot:outputPlugin` | 3.0 | Poll for PostgreSQL Write-Ahead Log (WAL) records using Streaming Replication Slots.
-
-| xref:next@components::pubnub-component.adoc[PubNub] (camel-pubnub) +
-`pubnub:channel` | 2.19 | Send and receive messages to/from PubNub data stream network for connected devices.
-
-| xref:next@components::quartz-component.adoc[Quartz] (camel-quartz) +
-`quartz:groupName/triggerName` | 2.12 | Schedule sending of messages using the Quartz 2.x scheduler.
-
-| xref:next@components::quickfix-component.adoc[QuickFix] (camel-quickfix) +
-`quickfix:configurationName` | 2.1 | Open a Financial Interchange (FIX) session using an embedded QuickFix/J engine.
-
-| xref:next@components::rabbitmq-component.adoc[RabbitMQ] (camel-rabbitmq) +
-`rabbitmq:exchangeName` | 2.12 | Send and receive messages from RabbitMQ instances.
-
-| xref:next@components::reactive-streams-component.adoc[Reactive Streams] (camel-reactive-streams) +
-`reactive-streams:stream` | 2.19 | Exchange messages with reactive stream processing libraries compatible with the reactive streams standard.
-
-| xref:next@components::ref-component.adoc[Ref] (camel-ref) +
-`ref:name` | 1.2 | Route messages to an endpoint looked up dynamically by name in the Camel Registry.
-
-| xref:next@components::rest-component.adoc[REST] (camel-rest) +
-`rest:method:path:uriTemplate` | 2.14 | Expose REST services or call external REST services.
-
-| xref:next@components::rest-openapi-component.adoc[REST OpenApi] (camel-rest-openapi) +
-`rest-openapi:specificationUri#operationId` | 3.1 | Configure REST producers based on an OpenAPI specification document delegating to a component implementing the RestProducerFactory interface.
-
-| xref:next@components::rest-swagger-component.adoc[REST Swagger] (camel-rest-swagger) +
-`rest-swagger:specificationUri#operationId` | 2.19 | Configure REST producers based on a Swagger (OpenAPI) specification document delegating to a component implementing the RestProducerFactory interface.
-
-| xref:next@components::robotframework-component.adoc[Robot Framework] (camel-robotframework) +
-`robotframework:resourceUri` | 3.0 | Pass camel exchanges to acceptence test written in Robot DSL.
-
-| xref:next@components::rss-component.adoc[RSS] (camel-rss) +
-`rss:feedUri` | 2.0 | Poll RSS feeds.
-
-| xref:next@components::saga-component.adoc[Saga] (camel-saga) +
-`saga:action` | 2.21 | Execute custom actions within a route using the Saga EIP.
-
-| xref:next@components::salesforce-component.adoc[Salesforce] (camel-salesforce) +
-`salesforce:operationName:topicName` | 2.12 | Communicate with Salesforce using Java DTOs.
-
-| xref:next@components::sap-netweaver-component.adoc[SAP NetWeaver] (camel-sap-netweaver) +
-`sap-netweaver:url` | 2.12 | Send requests to SAP NetWeaver Gateway using HTTP.
-
-| xref:next@components::scheduler-component.adoc[Scheduler] (camel-scheduler) +
-`scheduler:name` | 2.15 | Generate messages in specified intervals using java.util.concurrent.ScheduledExecutorService.
-
-| xref:next@components::schematron-component.adoc[Schematron] (camel-schematron) +
-`schematron:path` | 2.15 | Validate XML payload using the Schematron Library.
-
-| xref:next@components::seda-component.adoc[SEDA] (camel-seda) +
-`seda:name` | 1.1 | Asynchronously call another endpoint from any Camel Context in the same JVM.
-
-| xref:next@components::service-component.adoc[Service] (camel-service) +
-`service:delegateUri` | 2.22 | Register a Camel endpoint to a Service Registry (such as Consul, Etcd) and delegate to it.
-
-| xref:next@components::servicenow-component.adoc[ServiceNow] (camel-servicenow) +
-`servicenow:instanceName` | 2.18 | Interact with ServiceNow via its REST API.
-
-| xref:next@components::servlet-component.adoc[Servlet] (camel-servlet) +
-`servlet:contextPath` | 2.0 | Serve HTTP requests by a Servlet.
-
-| xref:next@components::sjms-component.adoc[Simple JMS] (camel-sjms) +
-`sjms:destinationType:destinationName` | 2.11 | Send and receive messages to/from a JMS Queue or Topic using plain JMS 1.x API.
-
-| xref:next@components::sjms2-component.adoc[Simple JMS2] (camel-sjms2) +
-`sjms2:destinationType:destinationName` | 2.19 | Send and receive messages to/from a JMS Queue or Topic using plain JMS 2.x API.
-
-| xref:next@components::sip-component.adoc[SIP] (camel-sip) +
-`sip:uri` | 2.5 | *deprecated* Send and receive messages using the SIP protocol (used in telecommunications).
-
-| xref:next@components::slack-component.adoc[Slack] (camel-slack) +
-`slack:channel` | 2.16 | Send and receive messages to/from Slack.
-
-| xref:next@components::smpp-component.adoc[SMPP] (camel-smpp) +
-`smpp:host:port` | 2.2 | Send and receive SMS messages using a SMSC (Short Message Service Center).
-
-| xref:next@components::snmp-component.adoc[SNMP] (camel-snmp) +
-`snmp:host:port` | 2.1 | Receive traps and poll SNMP (Simple Network Management Protocol) capable devices.
-
-| xref:next@components::solr-component.adoc[Solr] (camel-solr) +
-`solr:url` | 2.9 | Perform operations against Apache Lucene Solr.
-
-| xref:next@components::soroush-component.adoc[Soroush] (camel-soroush) +
-`soroush:action` | 3.0 | *deprecated* Send and receive messages as a Soroush chat bot.
-
-| xref:next@components::splunk-component.adoc[Splunk] (camel-splunk) +
-`splunk:name` | 2.13 | Publish or search for events in Splunk.
-
-| xref:next@components::spring-batch-component.adoc[Spring Batch] (camel-spring-batch) +
-`spring-batch:jobName` | 2.10 | Send messages to Spring Batch for further processing.
-
-| xref:next@components::spring-jdbc-component.adoc[Spring JDBC] (camel-spring-jdbc) +
-`spring-jdbc:dataSourceName` | 3.10 | Access databases through SQL and JDBC with Spring Transaction support.
-
-| xref:next@components::spring-ldap-component.adoc[Spring LDAP] (camel-spring-ldap) +
-`spring-ldap:templateName` | 2.11 | Perform searches in LDAP servers using filters as the message payload.
-
-| xref:next@components::spring-ws-component.adoc[Spring WebService] (camel-spring-ws) +
-`spring-ws:type:lookupKey:webServiceEndpointUri` | 2.6 | Access external web services as a client or expose your own web services.
-
-| xref:next@components::sql-component.adoc[SQL] (camel-sql) +
-`sql:query` | 1.4 | Perform SQL queries using Spring JDBC.
-
-| xref:next@components::ssh-component.adoc[SSH] (camel-ssh) +
-`ssh:host:port` | 2.10 | Execute commands on remote hosts using SSH.
-
-| xref:next@components::stax-component.adoc[StAX] (camel-stax) +
-`stax:contentHandlerClass` | 2.9 | Process XML payloads by a SAX ContentHandler.
-
-| xref:next@components::stomp-component.adoc[Stomp] (camel-stomp) +
-`stomp:destination` | 2.12 | Send and rececive messages to/from STOMP (Simple Text Oriented Messaging Protocol) compliant message brokers.
-
-| xref:next@components::stream-component.adoc[Stream] (camel-stream) +
-`stream:kind` | 1.3 | Read from system-in and write to system-out and system-err streams.
-
-| xref:next@components::string-template-component.adoc[String Template] (camel-stringtemplate) +
-`string-template:resourceUri` | 1.2 | Transform messages using StringTemplate engine.
-
-| xref:next@components::stub-component.adoc[Stub] (camel-stub) +
-`stub:name` | 2.10 | Stub out any physical endpoints while in development or testing.
-
-| xref:next@components::telegram-component.adoc[Telegram] (camel-telegram) +
-`telegram:type` | 2.18 | Send and receive messages acting as a Telegram Bot Telegram Bot API.
-
-| xref:next@components::thrift-component.adoc[Thrift] (camel-thrift) +
-`thrift:host:port/service` | 2.20 | Call and expose remote procedures (RPC) with Apache Thrift data format and serialization mechanism.
-
-| xref:next@components::tika-component.adoc[Tika] (camel-tika) +
-`tika:operation` | 2.19 | Parse documents and extract metadata and text using Apache Tika.
-
-| xref:next@components::timer-component.adoc[Timer] (camel-timer) +
-`timer:timerName` | 1.0 | Generate messages in specified intervals using java.util.Timer.
-
-| xref:next@components::twilio-component.adoc[Twilio] (camel-twilio) +
-`twilio:apiName/methodName` | 2.20 | Interact with Twilio REST APIs using Twilio Java SDK.
-
-| xref:next@components::validator-component.adoc[Validator] (camel-validator) +
-`validator:resourceUri` | 1.1 | Validate the payload using XML Schema and JAXP Validation.
-
-| xref:next@components::velocity-component.adoc[Velocity] (camel-velocity) +
-`velocity:resourceUri` | 1.2 | Transform messages using a Velocity template.
-
-| xref:next@components::vertx-component.adoc[Vert.x] (camel-vertx) +
-`vertx:address` | 2.12 | Send and receive messages to/from Vert.x Event Bus.
-
-| xref:next@components::vm-component.adoc[VM] (camel-vm) +
-`vm:name` | 1.1 | Call another endpoint in the same CamelContext asynchronously.
-
-| xref:next@components::weather-component.adoc[Weather] (camel-weather) +
-`weather:name` | 2.12 | Poll the weather information from Open Weather Map.
-
-| xref:next@components::web3j-component.adoc[Web3j Ethereum Blockchain] (camel-web3j) +
-`web3j:nodeAddress` | 2.22 | Interact with Ethereum nodes using web3j client API.
-
-| xref:next@components::webhook-component.adoc[Webhook] (camel-webhook) +
-`webhook:endpointUri` | 3.0 | Expose webhook endpoints to receive push notifications for other Camel components.
-
-| xref:next@components::wordpress-component.adoc[Wordpress] (camel-wordpress) +
-`wordpress:operation` | 2.21 | Manage posts and users using Wordpress API.
-
-| xref:next@components::workday-component.adoc[Workday] (camel-workday) +
-`workday:entity:path` | 3.1 | Detect and parse documents using Workday.
-
-| xref:next@components::xchange-component.adoc[XChange] (camel-xchange) +
-`xchange:name` | 2.21 | Access market data and trade on Bitcoin and Altcoin exchanges.
-
-| xref:next@components::xj-component.adoc[XJ] (camel-xj) +
-`xj:resourceUri` | 3.0 | Transform JSON and XML message using a XSLT.
-
-| xref:next@components::xmpp-component.adoc[XMPP] (camel-xmpp) +
-`xmpp:host:port/participant` | 1.0 | Send and receive messages to/from an XMPP chat server.
-
-| xref:next@components::xslt-component.adoc[XSLT] (camel-xslt) +
-`xslt:resourceUri` | 1.3 | Transforms XML payload using an XSLT template.
-
-| xref:next@components::xslt-saxon-component.adoc[XSLT Saxon] (camel-xslt-saxon) +
-`xslt-saxon:resourceUri` | 3.0 | Transform XML payloads using an XSLT template using Saxon.
-
-| xref:next@components::yammer-component.adoc[Yammer] (camel-yammer) +
-`yammer:function` | 2.12 | *deprecated* Interact with the Yammer enterprise social network.
-
-| xref:next@components::zendesk-component.adoc[Zendesk] (camel-zendesk) +
-`zendesk:methodName` | 2.19 | Manage Zendesk tickets, users, organizations, etc.
-
-| xref:next@components::zookeeper-component.adoc[ZooKeeper] (camel-zookeeper) +
-`zookeeper:serverUrls/path` | 2.9 | Manage ZooKeeper clusters.
-
-| xref:next@components::zookeeper-master-component.adoc[ZooKeeper Master] (camel-zookeeper-master) +
-`zookeeper-master:groupName:consumerEndpointUri` | 2.19 | Have only a single consumer in a cluster consuming from a given endpoint; with automatic failover if the JVM dies.
-
-|===
-// components: END
+include::partial$summary-table.adoc[]
 
 == Camel Data Formats
 
-// dataformats: START
-Number of Camel data formats: 48 in 40 JAR artifacts (0 deprecated)
+:indexer-module: dataformats
+:indexer-rel-filter: json/dataformats/*.json
+:indexer-kind: dataformat
+:indexer-human-readable-kind: Data Format
+:indexer-human-readable-kind-plural: dataformats
 
-[width="100%",cols="4,1,5",options="header"]
-|===
-| Data Format | Since | Description
-
-| xref:next@components:dataformats:any23-dataformat.adoc[Any23] +
-(camel-any23) | 3.0 | Extract RDF data from HTML documents.
-
-| xref:next@components:dataformats:asn1-dataformat.adoc[ASN.1 File] +
-(camel-asn1) | 2.20 | Encode and decode data structures using Abstract Syntax Notation One (ASN.1).
-
-| xref:next@components:dataformats:avro-dataformat.adoc[Avro] +
-(camel-avro) | 2.14 | Serialize and deserialize messages using Apache Avro binary data format.
-
-| xref:next@components:dataformats:avro-jackson-dataformat.adoc[Avro Jackson] +
-(camel-jackson-avro) | 3.10 | Marshal POJOs to Avro and back using Jackson.
-
-| xref:next@components:dataformats:barcode-dataformat.adoc[Barcode] +
-(camel-barcode) | 2.14 | Transform strings to various 1D/2D barcode bitmap formats and back.
-
-| xref:next@components:dataformats:base64-dataformat.adoc[Base64] +
-(camel-base64) | 2.11 | Encode and decode data using Base64.
-
-| xref:next@components:dataformats:beanio-dataformat.adoc[BeanIO] +
-(camel-beanio) | 2.10 | Marshal and unmarshal Java beans to and from flat files (such as CSV, delimited, or fixed length formats).
-
-| xref:next@components:dataformats:bindy-dataformat.adoc[Bindy CSV] +
-(camel-bindy) | 2.0 | Marshal and unmarshal between POJOs and Comma separated values (CSV) format using Camel Bindy
-
-| xref:next@components:dataformats:bindy-dataformat.adoc[Bindy Fixed Length] +
-(camel-bindy) | 2.0 | Marshal and unmarshal between POJOs and fixed field length format using Camel Bindy
-
-| xref:next@components:dataformats:bindy-dataformat.adoc[Bindy Key Value Pair] +
-(camel-bindy) | 2.0 | Marshal and unmarshal between POJOs and key-value pair (KVP) format using Camel Bindy
-
-| xref:next@components:dataformats:cbor-dataformat.adoc[CBOR] +
-(camel-cbor) | 3.0 | Unmarshal a CBOR payload to POJO and back.
-
-| xref:next@components:dataformats:crypto-dataformat.adoc[Crypto (Java Cryptographic Extension)] +
-(camel-crypto) | 2.3 | Encrypt and decrypt messages using Java Cryptography Extension (JCE).
-
-| xref:next@components:dataformats:csv-dataformat.adoc[CSV] +
-(camel-csv) | 1.3 | Handle CSV (Comma Separated Values) payloads.
-
-| xref:next@components:dataformats:fhirJson-dataformat.adoc[FHIR JSon] +
-(camel-fhir) | 2.21 | Marshall and unmarshall FHIR objects to/from JSON.
-
-| xref:next@components:dataformats:fhirXml-dataformat.adoc[FHIR XML] +
-(camel-fhir) | 2.21 | Marshall and unmarshall FHIR objects to/from XML.
-
-| xref:next@components:dataformats:flatpack-dataformat.adoc[Flatpack] +
-(camel-flatpack) | 2.1 | Marshal and unmarshal Java lists and maps to/from flat files (such as CSV, delimited, or fixed length formats) using Flatpack library.
-
-| xref:next@components:dataformats:grok-dataformat.adoc[Grok] +
-(camel-grok) | 3.0 | Unmarshal unstructured data to objects using Logstash based Grok patterns.
-
-| xref:next@components:dataformats:gzipdeflater-dataformat.adoc[GZip Deflater] +
-(camel-zip-deflater) | 2.0 | Compress and decompress messages using java.util.zip.GZIPStream.
-
-| xref:next@components:dataformats:hl7-dataformat.adoc[HL7] +
-(camel-hl7) | 2.0 | Marshal and unmarshal HL7 (Health Care) model objects using the HL7 MLLP codec.
-
-| xref:next@components:dataformats:ical-dataformat.adoc[iCal] +
-(camel-ical) | 2.12 | Marshal and unmarshal iCal (.ics) documents to/from model objects provided by the iCal4j library.
-
-| xref:next@components:dataformats:jacksonxml-dataformat.adoc[JacksonXML] +
-(camel-jacksonxml) | 2.16 | Unmarshal a XML payloads to POJOs and back using XMLMapper extension of Jackson.
-
-| xref:next@components:dataformats:jaxb-dataformat.adoc[JAXB] +
-(camel-jaxb) | 1.0 | Unmarshal XML payloads to POJOs and back using JAXB2 XML marshalling standard.
-
-| xref:next@components:dataformats:json-fastjson-dataformat.adoc[JSON Fastjson] +
-(camel-fastjson) | 2.20 | Marshal POJOs to JSON and back using Fastjson
-
-| xref:next@components:dataformats:json-gson-dataformat.adoc[JSON Gson] +
-(camel-gson) | 2.10 | Marshal POJOs to JSON and back using Gson
-
-| xref:next@components:dataformats:json-jackson-dataformat.adoc[JSON Jackson] +
-(camel-jackson) | 2.0 | Marshal POJOs to JSON and back using Jackson
-
-| xref:next@components:dataformats:json-johnzon-dataformat.adoc[JSON Johnzon] +
-(camel-johnzon) | 2.18 | Marshal POJOs to JSON and back using Johnzon
-
-| xref:next@components:dataformats:json-jsonb-dataformat.adoc[JSON JSON-B] +
-(camel-jsonb) | 3.7 | Marshal POJOs to JSON and back using JSON-B.
-
-| xref:next@components:dataformats:json-xstream-dataformat.adoc[JSON XStream] +
-(camel-xstream) | 2.0 | Marshal POJOs to JSON and back using XStream
-
-| xref:next@components:dataformats:jsonApi-dataformat.adoc[JSonApi] +
-(camel-jsonapi) | 3.0 | Marshal and unmarshal JSON:API resources using JSONAPI-Converter library.
-
-| xref:next@components:dataformats:lzf-dataformat.adoc[LZF Deflate Compression] +
-(camel-lzf) | 2.17 | Compress and decompress streams using LZF deflate algorithm.
-
-| xref:next@components:dataformats:mime-multipart-dataformat.adoc[MIME Multipart] +
-(camel-mail) | 2.17 | Marshal Camel messages with attachments into MIME-Multipart messages and back.
-
-| xref:next@components:dataformats:pgp-dataformat.adoc[PGP] +
-(camel-crypto) | 2.9 | Encrypt and decrypt messages using Java Cryptographic Extension (JCE) and PGP.
-
-| xref:next@components:dataformats:protobuf-dataformat.adoc[Protobuf] +
-(camel-protobuf) | 2.2 | Serialize and deserialize Java objects using Google's Protocol buffers.
-
-| xref:next@components:dataformats:protobuf-jackson-dataformat.adoc[Protobuf Jackson] +
-(camel-jackson-protobuf) | 3.10 | Marshal POJOs to Protobuf and back using Jackson.
-
-| xref:next@components:dataformats:rss-dataformat.adoc[RSS] +
-(camel-rss) | 2.1 | Transform from ROME SyndFeed Java Objects to XML and vice-versa.
-
-| xref:next@components:dataformats:soapjaxb-dataformat.adoc[SOAP] +
-(camel-soap) | 2.3 | Marshal Java objects to SOAP messages and back.
-
-| xref:next@components:dataformats:syslog-dataformat.adoc[Syslog] +
-(camel-syslog) | 2.6 | Marshall SyslogMessages to RFC3164 and RFC5424 messages and back.
-
-| xref:next@components:dataformats:tarfile-dataformat.adoc[Tar File] +
-(camel-tarfile) | 2.16 | Archive files into tarballs or extract files from tarballs.
-
-| xref:next@components:dataformats:thrift-dataformat.adoc[Thrift] +
-(camel-thrift) | 2.20 | Serialize and deserialize messages using Apache Thrift binary data format.
-
-| xref:next@components:dataformats:tidyMarkup-dataformat.adoc[TidyMarkup] +
-(camel-tagsoup) | 2.0 | Parse (potentially invalid) HTML into valid HTML or DOM.
-
-| xref:next@components:dataformats:univocity-csv-dataformat.adoc[uniVocity CSV] +
-(camel-univocity-parsers) | 2.15 | Marshal and unmarshal Java objects from and to CSV (Comma Separated Values) using UniVocity Parsers.
-
-| xref:next@components:dataformats:univocity-fixed-dataformat.adoc[uniVocity Fixed Length] +
-(camel-univocity-parsers) | 2.15 | Marshal and unmarshal Java objects from and to fixed length records using UniVocity Parsers.
-
-| xref:next@components:dataformats:univocity-tsv-dataformat.adoc[uniVocity TSV] +
-(camel-univocity-parsers) | 2.15 | Marshal and unmarshal Java objects from and to TSV (Tab-Separated Values) records using UniVocity Parsers.
-
-| xref:next@components:dataformats:secureXML-dataformat.adoc[XML Security] +
-(camel-xmlsecurity) | 2.0 | Encrypt and decrypt XML payloads using Apache Santuario.
-
-| xref:next@components:dataformats:xstream-dataformat.adoc[XStream] +
-(camel-xstream) | 1.3 | Marshal and unmarshal POJOs to/from XML using XStream library.
-
-| xref:next@components:dataformats:yaml-snakeyaml-dataformat.adoc[YAML SnakeYAML] +
-(camel-snakeyaml) | 2.17 | Marshal and unmarshal Java objects to and from YAML using SnakeYAML
-
-| xref:next@components:dataformats:zipdeflater-dataformat.adoc[Zip Deflate Compression] +
-(camel-zip-deflater) | 2.12 | Compress and decompress streams using java.util.zip.Deflater and java.util.zip.Inflater.
-
-| xref:next@components:dataformats:zipfile-dataformat.adoc[Zip File] +
-(camel-zipfile) | 2.11 | Compression and decompress streams using java.util.zip.ZipStream.
-|===
-// dataformats: END
+include::partial$summary-table.adoc[]
 
 == Camel Languages
 
-// languages: START
-Number of Camel languages: 20 in 13 JAR artifacts (0 deprecated)
+:indexer-module: languages
+:indexer-rel-filter: json/languages/*.json
+:indexer-kind: language
+:indexer-human-readable-kind: Language
+:indexer-human-readable-kind-plural: languages
 
-[width="100%",cols="4,1,5",options="header"]
-|===
-| Language | Since | Description
-
-| xref:next@components:languages:bean-language.adoc[Bean Method] +
-(camel-bean) | 1.3 | Calls a Java bean method.
-
-| xref:next@components:languages:constant-language.adoc[Constant] +
-(camel-core-languages) | 1.5 | A fixed value set only once during the route startup.
-
-| xref:next@components:languages:csimple-language.adoc[CSimple] +
-(camel-core-languages) | 3.7 | Evaluate a compiled simple expression.
-
-| xref:next@components:languages:datasonnet-language.adoc[DataSonnet] +
-(camel-datasonnet) | 3.7 | To use DataSonnet scripts for message transformations.
-
-| xref:next@components:languages:exchangeProperty-language.adoc[ExchangeProperty] +
-(camel-core-languages) | 2.0 | Gets a property from the Exchange.
-
-| xref:next@components:languages:file-language.adoc[File] +
-(camel-core-languages) | 1.1 | File related capabilities for the Simple language
-
-| xref:next@components:languages:groovy-language.adoc[Groovy] +
-(camel-groovy) | 1.3 | Evaluates a Groovy script.
-
-| xref:next@components:languages:header-language.adoc[Header] +
-(camel-core-languages) | 1.5 | Gets a header from the Exchange.
-
-| xref:next@components:languages:hl7terser-language.adoc[HL7 Terser] +
-(camel-hl7) | 2.11 | Get the value of a HL7 message field specified by terse location specification syntax.
-
-| xref:next@components:languages:joor-language.adoc[jOOR] +
-(camel-joor) | 3.7 | Evaluates a jOOR (Java compiled once at runtime) expression.
-
-| xref:next@components:languages:jsonpath-language.adoc[JSONPath] +
-(camel-jsonpath) | 2.13 | Evaluates a JSONPath expression against a JSON message body.
-
-| xref:next@components:languages:mvel-language.adoc[MVEL] +
-(camel-mvel) | 2.0 | Evaluates a MVEL template.
-
-| xref:next@components:languages:ognl-language.adoc[OGNL] +
-(camel-ognl) | 1.1 | Evaluates an OGNL expression (Apache Commons OGNL).
-
-| xref:next@components:languages:ref-language.adoc[Ref] +
-(camel-core-languages) | 2.8 | Uses an existing expression from the registry.
-
-| xref:next@components:languages:simple-language.adoc[Simple] +
-(camel-core-languages) | 1.1 | Evaluates a Camel simple expression.
-
-| xref:next@components:languages:spel-language.adoc[SpEL] +
-(camel-spring) | 2.7 | Evaluates a Spring expression (SpEL).
-
-| xref:next@components:languages:tokenize-language.adoc[Tokenize] +
-(camel-core-languages) | 2.0 | Tokenize text payloads using delimiter patterns.
-
-| xref:next@components:languages:xtokenize-language.adoc[XML Tokenize] +
-(camel-xml-jaxp) | 2.14 | Tokenize XML payloads.
-
-| xref:next@components:languages:xpath-language.adoc[XPath] +
-(camel-xpath) | 1.1 | Evaluates an XPath expression against an XML payload.
-
-| xref:next@components:languages:xquery-language.adoc[XQuery] +
-(camel-saxon) | 1.0 | Evaluates an XQuery expressions against an XML payload.
-|===
-// languages: END
-
+include::partial$summary-table.adoc[]
 
 == Miscellaneous Extensions
 
-// others: START
-Number of miscellaneous extensions: 19 in 19 JAR artifacts (4 deprecated)
+:indexer-module: others
+:indexer-rel-filter: json/others/*.json
+:indexer-kind: other
+:indexer-human-readable-kind: Miscellaneous
+:indexer-human-readable-kind-plural: miscellaneous extensions
 
-[width="100%",cols="4,1,5",options="header"]
-|===
-| Extension | Since | Description
-
-| xref:next@components:others:aws-xray.adoc[AWS XRay] +
-(camel-aws-xray) | 2.21 | Distributed tracing using AWS XRay
-
-| xref:blueprint.adoc[Blueprint] +
-(camel-blueprint) | 2.4 | Using Camel with OSGi Blueprint
-
-| xref:next@components:others:caffeine-lrucache.adoc[Caffeine Lrucache] +
-(camel-caffeine-lrucache) | 3.0 | *deprecated* Camel Caffeine LRUCache support
-
-| xref:next@components:others:headersmap.adoc[Headersmap] +
-(camel-headersmap) | 2.20 | Fast case-insensitive headers map implementation
-
-| xref:next@components:others:hystrix.adoc[Hystrix] +
-(camel-hystrix) | 2.18 | *deprecated* Circuit Breaker EIP using Netflix Hystrix
-
-| xref:next@components:others:jasypt.adoc[Jasypt] +
-(camel-jasypt) | 2.5 | Security using Jasypt
-
-| xref:kura.adoc[Kura] +
-(camel-kura) | 2.15 | Using Camel with Eclipse Kura (OSGi)
-
-| xref:next@components:others:leveldb.adoc[LevelDB] +
-(camel-leveldb) | 2.10 | Using LevelDB as persistent EIP store
-
-| xref:next@components:others:leveldb-legacy.adoc[LevelDB-legacy] +
-(camel-leveldb-legacy) | 2.10 | *deprecated* Using LevelDB as persistent EIP store
-
-| xref:next@components:others:lra.adoc[LRA] +
-(camel-lra) | 2.21 | Camel saga binding for Long-Running-Action framework
-
-| xref:next@components:others:openapi-java.adoc[Openapi Java] +
-(camel-openapi-java) | 3.1 | Rest-dsl support for using openapi doc
-
-| xref:next@components:others:opentelemetry.adoc[OpenTelemetry] +
-(camel-opentelemetry) | 3.5 | Distributed tracing using OpenTelemetry
-
-| xref:next@components:others:opentracing.adoc[OpenTracing] +
-(camel-opentracing) | 2.19 | Distributed tracing using OpenTracing
-
-| xref:next@components:others:reactor.adoc[Reactor] +
-(camel-reactor) | 2.20 | Reactor based back-end for Camel's reactive streams component
-
-| xref:next@components:others:shiro.adoc[Shiro] +
-(camel-shiro) | 2.5 | Security using Shiro
-
-| xref:next@components:others:swagger-java.adoc[Swagger Java] +
-(camel-swagger-java) | 2.16 | Rest-dsl support for using swagger api-doc
-
-| xref:next@components:others:test-spring.adoc[Test Spring] +
-(camel-test-spring) | 2.10 | *deprecated* Camel unit testing with Spring
-
-| xref:next@components:others:tracing.adoc[Tracing] +
-(camel-tracing) | 3.5 | Distributed tracing common interfaces
-
-| xref:next@components:others:zipkin.adoc[Zipkin] +
-(camel-zipkin) | 2.18 | Distributed message tracing using Zipkin
-|===
-// others: END
-
+include::partial$summary-table.adoc[]
diff --git a/docs/modules/ROOT/partials/summary-table.adoc b/docs/modules/ROOT/partials/summary-table.adoc
new file mode 100644
index 0000000..22b49e1
--- /dev/null
+++ b/docs/modules/ROOT/partials/summary-table.adoc
@@ -0,0 +1,7 @@
+There are indexCount:[relative="{indexer-rel-filter}",family="example"] {indexer-human-readable-kind-plural} in indexUniqueCount:[relative="{indexer-rel-filter}",family="example",format="$.{indexer-kind}.artifactId",contentAs=json] features (indexCount:[relative="{indexer-rel-filter}",family="example",transform=karaf.deprecatedFilter{indexer-human-readable-kind},contentAs=json,requires={requires}] deprecated)
+
+[width="100%",cols="3,3,1,5",options="header"]
+|===
+| {indexer-human-readable-kind} | Feature | Since | Description
+|===
+indexTable::[relative="{indexer-rel-filter}",family="example",cellformats="karaf.extensionRef('{page-component-version}','{indexer-module}','{indexer-kind}',$)|karaf.v('artifactId','{indexer-kind}', $)|karaf.v('firstVersion','{indexer-kind}', $)|util.description($.{indexer-kind})",contentAs=json,transform=karaf.sort{indexer-human-readable-kind},requires={requires}]