This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push:
new 2ae5491 Regen
2ae5491 is described below
commit 2ae5491cc31c472d60de8c299718eb5086d2a323
Author: Claus Ibsen <[email protected]>
AuthorDate: Mon Dec 7 17:20:30 2020 +0100
Regen
---
apache-camel/src/main/descriptors/common-bin.xml | 1 +
.../apache/camel/catalog/components/github.json | 9 +-
.../camel/catalog/docs/github-component.adoc | 13 +-
.../camel/catalog/docs/vertx-kafka-component.adoc | 451 ---------------------
docs/components/modules/ROOT/nav.adoc | 1 +
.../modules/ROOT/pages/github-component.adoc | 13 +-
6 files changed, 24 insertions(+), 464 deletions(-)
diff --git a/apache-camel/src/main/descriptors/common-bin.xml
b/apache-camel/src/main/descriptors/common-bin.xml
index 29abf50..7538309 100644
--- a/apache-camel/src/main/descriptors/common-bin.xml
+++ b/apache-camel/src/main/descriptors/common-bin.xml
@@ -396,6 +396,7 @@
<include>org.apache.camel:camel-velocity</include>
<include>org.apache.camel:camel-vertx</include>
<include>org.apache.camel:camel-vertx-http</include>
+ <include>org.apache.camel:camel-vertx-kafka</include>
<include>org.apache.camel:camel-vertx-websocket</include>
<include>org.apache.camel:camel-vm</include>
<include>org.apache.camel:camel-weather</include>
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/github.json
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/github.json
index 2072e87..b8f8eee 100644
---
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/github.json
+++
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/github.json
@@ -24,16 +24,14 @@
"componentProperties": {
"bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error
Handler", "group": "consumer", "label": "consumer", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "description": "Allows for bridging the
consumer to the Camel routing Error Handler, which mean any exceptions occurred
while the consumer is trying to pickup incoming messages, or the likes, will
now be processed as a me [...]
"lazyStartProducer": { "kind": "property", "displayName": "Lazy Start
Producer", "group": "producer", "label": "producer", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "description": "Whether the producer
should be started lazy (on the first message). By starting lazy you can use
this to allow CamelContext and routes to startup in situations where a producer
may otherwise fail during star [...]
- "autowiredEnabled": { "kind": "property", "displayName": "Autowired
Enabled", "group": "advanced", "label": "advanced", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": true, "description": "Whether autowiring is
enabled. This is used for automatic autowiring options (the option must be
marked as autowired) by looking up in the registry to find if there is a single
instance of matching type, which t [...]
+ "autowiredEnabled": { "kind": "property", "displayName": "Autowired
Enabled", "group": "advanced", "label": "advanced", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": true, "description": "Whether autowiring is
enabled. This is used for automatic autowiring options (the option must be
marked as autowired) by looking up in the registry to find if there is a single
instance of matching type, which t [...]
+ "oauthToken": { "kind": "property", "displayName": "Oauth Token", "group":
"security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": true, "description": "GitHub OAuth token. Must be configured on
either component or endpoint." }
},
"properties": {
"type": { "kind": "path", "displayName": "Type", "group": "common",
"label": "", "required": true, "type": "object", "javaType":
"org.apache.camel.component.github.GitHubType", "enum": [ "CLOSEPULLREQUEST",
"PULLREQUESTCOMMENT", "COMMIT", "PULLREQUEST", "TAG", "PULLREQUESTSTATE",
"PULLREQUESTFILES", "GETCOMMITFILE", "CREATEISSUE", "EVENT" ], "deprecated":
false, "deprecationNote": "", "autowired": false, "secret": false,
"description": "What git operation to execute" },
"branchName": { "kind": "path", "displayName": "Branch Name", "group":
"consumer", "label": "consumer", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": false, "description": "Name of branch" },
- "oauthToken": { "kind": "parameter", "displayName": "Oauth Token",
"group": "common", "label": "", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": false, "description": "GitHub OAuth token, required unless username &
password are provided" },
- "password": { "kind": "parameter", "displayName": "Password", "group":
"common", "label": "", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "autowired": false, "secret": false,
"description": "GitHub password, required unless oauthToken is provided" },
"repoName": { "kind": "parameter", "displayName": "Repo Name", "group":
"common", "label": "", "required": true, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "GitHub repository name" },
"repoOwner": { "kind": "parameter", "displayName": "Repo Owner", "group":
"common", "label": "", "required": true, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "GitHub repository owner (organization)"
},
- "username": { "kind": "parameter", "displayName": "Username", "group":
"common", "label": "", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "autowired": false, "secret": false,
"description": "GitHub username, required unless oauthToken is provided" },
"bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error
Handler", "group": "consumer", "label": "consumer", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "description": "Allows for bridging the
consumer to the Camel routing Error Handler, which mean any exceptions occurred
while the consumer is trying to pickup incoming messages, or the likes, will
now be processed as a m [...]
"sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send
Empty Message When Idle", "group": "consumer", "label": "consumer", "required":
false, "type": "boolean", "javaType": "boolean", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": false, "description": "If
the polling consumer did not poll any files, you can enable this option to send
an empty message (no body) instead." },
"eventFetchStrategy": { "kind": "parameter", "displayName": "Event Fetch
Strategy", "group": "consumer (advanced)", "label": "consumer,advanced",
"required": false, "type": "object", "javaType":
"org.apache.camel.component.github.event.GitHubEventFetchStrategy",
"deprecated": false, "autowired": false, "secret": false, "description": "To
specify a custom strategy that configures how the EventsConsumer fetches
events." },
@@ -58,6 +56,7 @@
"schedulerProperties": { "kind": "parameter", "displayName": "Scheduler
Properties", "group": "scheduler", "label": "consumer,scheduler", "required":
false, "type": "object", "javaType": "java.util.Map<java.lang.String,
java.lang.Object>", "prefix": "scheduler.", "multiValue": true, "deprecated":
false, "autowired": false, "secret": false, "description": "To configure
additional properties when using a custom scheduler or any of the Quartz,
Spring based scheduler." },
"startScheduler": { "kind": "parameter", "displayName": "Start Scheduler",
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": true, "description": "Whether the scheduler
should be auto started." },
"timeUnit": { "kind": "parameter", "displayName": "Time Unit", "group":
"scheduler", "label": "consumer,scheduler", "required": false, "type":
"object", "javaType": "java.util.concurrent.TimeUnit", "enum": [ "NANOSECONDS",
"MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS" ],
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
"MILLISECONDS", "description": "Time unit for initialDelay and delay options."
},
- "useFixedDelay": { "kind": "parameter", "displayName": "Use Fixed Delay",
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": true, "description": "Controls if fixed delay
or fixed rate is used. See ScheduledExecutorService in JDK for details." }
+ "useFixedDelay": { "kind": "parameter", "displayName": "Use Fixed Delay",
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": true, "description": "Controls if fixed delay
or fixed rate is used. See ScheduledExecutorService in JDK for details." },
+ "oauthToken": { "kind": "parameter", "displayName": "Oauth Token",
"group": "security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": true, "description": "GitHub OAuth token. Must be configured on
either component or endpoint." }
}
}
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/github-component.adoc
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/github-component.adoc
index ba7671a..ca8aec1 100644
---
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/github-component.adoc
+++
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/github-component.adoc
@@ -49,10 +49,6 @@ for this component:
github://endpoint[?options]
---------------------------
-== Mandatory Options:
-
-Note that these can be configured directly through the endpoint.
-
// component options: START
The GitHub component supports 4 options, which are listed below.
@@ -128,8 +124,17 @@ with the following path and query parameters:
|===
// endpoint options: END
+== Configuring authentication
+
+The github component requires to be configured with an authentication token on
either the component or endpoint level.
+For example to set it on the component:
+[source,java]
+----
+GitHubComponent ghc = context.getComponent("github", GitHubComponent.class);
+ghc.setOauthToken("mytoken");
+----
== Consumer Endpoints:
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/vertx-kafka-component.adoc
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/vertx-kafka-component.adoc
deleted file mode 100644
index 4779f54..0000000
---
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/vertx-kafka-component.adoc
+++ /dev/null
@@ -1,451 +0,0 @@
-[[vertx-kafka-component]]
-= Vert.x Kafka Component
-:docTitle: Vert.x Kafka
-:artifactId: camel-vertx-kafka
-:description: Sent and receive messages to/from an Apache Kafka broker using
vert.x Kafka client
-:since: 3.7
-:supportLevel: Preview
-:component-header: Both producer and consumer are supported
-include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/vertx-kafka.adoc[opts=optional]
-
-
-*Since Camel {since}*
-
-*{component-header}*
-
-The Vert.x Kafka component is used for communicating with
-http://kafka.apache.org/[Apache Kafka] message broker using
https://vertx.io/docs/vertx-kafka-client/java/[Vert.x Kafka Client].
-This allows the component to work in a *full asynchronous* manner that results
on *efficiency and better performance* on both sides, *Camel Producer and Camel
Consumer*.
-
-[NOTE]
-====
-This component works very similar to
xref:components::kafka-component.adoc[Kafka Component]. However there are some
features that this component
-does not _yet_ support like manual offsets commits which allows for *at least
once* semantics, storing offsets in idempotent repository and topics patterns.
-However, these features may be added later as improvements to this component.
-====
-
-[NOTE]
-====
-Almost all the Kafka configuration for the component are *auto generated* from
Kafka Consumer/Producer configurations. It means that for example the Kafka
Consumer configuration
-`connections.max.idle.ms` will be generated as `connectionsMaxIdleMs` for the
endpoint option as well as the component option.
-====
-
-[source,xml]
-------------------------------------------------------------
-<dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-vertx-kafka</artifactId>
- <version>x.x.x</version>
- <!-- use the same version as your Camel core version -->
-</dependency>
-------------------------------------------------------------
-
-== URI format
-
-[source,java]
----------------------------
-vertx-kafka:topic[?options]
----------------------------
-
-Topic can be support a single topic or multiple topics concatenated with `,`.
For example, this simple route will consume some data from Kafka and write it
to a file:
-[source,java]
----------------------------
-from("vertx-kafka/test_topic1,test_topic_2?groupId=group1&autoOffsetReset=earliest&bootstrapServers=kafka1:9092,kafka2:9092")
-to("file://queuedirectory");
----------------------------
-
-== URI Options
-// endpoint options: START
-The Vert.x Kafka endpoint is configured using URI syntax:
-
-----
-vertx-kafka:topic
-----
-
-with the following path and query parameters:
-
-=== Path Parameters (1 parameters):
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *topic* | *Required* Name of the topic to use. On the consumer you can use
comma to separate multiple topics. A producer can only send a message to a
single topic. | | String
-|===
-
-
-=== Query Parameters (97 parameters):
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *additionalProperties* (common) | Sets additional properties for either
kafka consumer or kafka producer in case they can't be set directly on the
camel configurations (e.g: new Kafka properties that are not reflected yet in
Camel configurations), the properties have to be prefixed with
additionalProperties.. E.g:
additionalProperties.transactional.id=12345&additionalProperties.schema.registry.url=\http://localhost:8811/avro
| | Map
-| *bootstrapServers* (common) | A list of host/port pairs to use for
establishing the initial connection to the Kafka cluster. The client will make
use of all servers irrespective of which servers are specified here for
bootstrapping—this list only impacts the initial hosts used to discover
the full set of servers. This list should be in the form
host1:port1,host2:port2,.... Since these servers are just used for the initial
connection to discover the full cluster membership (which [...]
-| *clientDnsLookup* (common) | Controls how the client uses DNS lookups. If
set to use_all_dns_ips, connect to each returned IP address in sequence until a
successful connection is established. After a disconnection, the next IP is
used. Once all IPs have been used once, the client resolves the IP(s) from the
hostname again (both the JVM and the OS cache DNS name lookups, however). If
set to resolve_canonical_bootstrap_servers_only, resolve each bootstrap address
into a list of canonical [...]
-| *clientId* (common) | An id string to pass to the server when making
requests. The purpose of this is to be able to track the source of requests
beyond just ip/port by allowing a logical application name to be included in
server-side request logging. | | String
-| *connectionsMaxIdleMs* (common) | Close idle connections after the number of
milliseconds specified by this config. | 9m | long
-| *headerFilterStrategy* (common) | To use a custom HeaderFilterStrategy to
filter header to and from Camel message. | | HeaderFilterStrategy
-| *interceptorClasses* (common) | A list of classes to use as interceptors.
Implementing the org.apache.kafka.clients.producer.ProducerInterceptor
interface allows you to intercept (and possibly mutate) the records received by
the producer before they are published to the Kafka cluster. By default, there
are no interceptors. | | String
-| *metadataMaxAgeMs* (common) | The period of time in milliseconds after which
we force a refresh of metadata even if we haven't seen any partition leadership
changes to proactively discover any new brokers or partitions. | 5m | long
-| *metricReporters* (common) | A list of classes to use as metrics reporters.
Implementing the org.apache.kafka.common.metrics.MetricsReporter interface
allows plugging in classes that will be notified of new metric creation. The
JmxReporter is always included to register JMX statistics. | | String
-| *metricsNumSamples* (common) | The number of samples maintained to compute
metrics. | 2 | int
-| *metricsRecordingLevel* (common) | The highest recording level for metrics.
There are 2 enums and the value can be one of: INFO, DEBUG | INFO | String
-| *metricsSampleWindowMs* (common) | The window of time a metrics sample is
computed over. | 30s | long
-| *partitionId* (common) | The partition to which the record will be sent (or
null if no partition was specified) or read from a particular partition if set.
Header VertxKafkaConstants#PARTITION_ID If configured, it will take precedence
over this config | | Integer
-| *receiveBufferBytes* (common) | The size of the TCP receive buffer
(SO_RCVBUF) to use when reading data. If the value is -1, the OS default will
be used. | 32768 | int
-| *reconnectBackoffMaxMs* (common) | The maximum amount of time in
milliseconds to wait when reconnecting to a broker that has repeatedly failed
to connect. If provided, the backoff per host will increase exponentially for
each consecutive connection failure, up to this maximum. After calculating the
backoff increase, 20% random jitter is added to avoid connection storms. | 1s |
long
-| *reconnectBackoffMs* (common) | The base amount of time to wait before
attempting to reconnect to a given host. This avoids repeatedly connecting to a
host in a tight loop. This backoff applies to all connection attempts by the
client to a broker. | 50ms | long
-| *requestTimeoutMs* (common) | The configuration controls the maximum amount
of time the client will wait for the response of a request. If the response is
not received before the timeout elapses the client will resend the request if
necessary or fail the request if retries are exhausted. This should be larger
than replica.lag.time.max.ms (a broker configuration) to reduce the possibility
of message duplication due to unnecessary producer retries. | 30s | int
-| *retryBackoffMs* (common) | The amount of time to wait before attempting to
retry a failed request to a given topic partition. This avoids repeatedly
sending requests in a tight loop under some failure scenarios. | 100ms | long
-| *sendBufferBytes* (common) | The size of the TCP send buffer (SO_SNDBUF) to
use when sending data. If the value is -1, the OS default will be used. |
131072 | int
-| *allowAutoCreateTopics* (consumer) | Allow automatic topic creation on the
broker when subscribing to or assigning a topic. A topic being subscribed to
will be automatically created only if the broker allows for it using
auto.create.topics.enable broker configuration. This configuration must be set
to false when using brokers older than 0.11.0 | true | boolean
-| *autoCommitIntervalMs* (consumer) | The frequency in milliseconds that the
consumer offsets are auto-committed to Kafka if enable.auto.commit is set to
true. | 5s | int
-| *autoOffsetReset* (consumer) | What to do when there is no initial offset in
Kafka or if the current offset does not exist any more on the server (e.g.
because that data has been deleted): earliest: automatically reset the offset
to the earliest offsetlatest: automatically reset the offset to the latest
offsetnone: throw exception to the consumer if no previous offset is found for
the consumer's groupanything else: throw exception to the consumer. There are 3
enums and the value can be [...]
-| *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the
Camel routing Error Handler, which mean any exceptions occurred while the
consumer is trying to pickup incoming messages, or the likes, will now be
processed as a message and handled by the routing Error Handler. By default the
consumer will use the org.apache.camel.spi.ExceptionHandler to deal with
exceptions, that will be logged at WARN or ERROR level and ignored. | false |
boolean
-| *checkCrcs* (consumer) | Automatically check the CRC32 of the records
consumed. This ensures no on-the-wire or on-disk corruption to the messages
occurred. This check adds some overhead, so it may be disabled in cases seeking
extreme performance. | true | boolean
-| *clientRack* (consumer) | A rack identifier for this client. This can be any
string value which indicates where this client is physically located. It
corresponds with the broker config 'broker.rack' | | String
-| *defaultApiTimeoutMs* (consumer) | Specifies the timeout (in milliseconds)
for client APIs. This configuration is used as the default timeout for all
client operations that do not specify a timeout parameter. | 1m | int
-| *enableAutoCommit* (consumer) | If true the consumer's offset will be
periodically committed in the background. | true | boolean
-| *excludeInternalTopics* (consumer) | Whether internal topics matching a
subscribed pattern should be excluded from the subscription. It is always
possible to explicitly subscribe to an internal topic. | true | boolean
-| *fetchMaxBytes* (consumer) | The maximum amount of data the server should
return for a fetch request. Records are fetched in batches by the consumer, and
if the first record batch in the first non-empty partition of the fetch is
larger than this value, the record batch will still be returned to ensure that
the consumer can make progress. As such, this is not a absolute maximum. The
maximum record batch size accepted by the broker is defined via
message.max.bytes (broker config) or max. [...]
-| *fetchMaxWaitMs* (consumer) | The maximum amount of time the server will
block before answering the fetch request if there isn't sufficient data to
immediately satisfy the requirement given by fetch.min.bytes. | 500ms | int
-| *fetchMinBytes* (consumer) | The minimum amount of data the server should
return for a fetch request. If insufficient data is available the request will
wait for that much data to accumulate before answering the request. The default
setting of 1 byte means that fetch requests are answered as soon as a single
byte of data is available or the fetch request times out waiting for data to
arrive. Setting this to something greater than 1 will cause the server to wait
for larger amounts of da [...]
-| *groupId* (consumer) | A unique string that identifies the consumer group
this consumer belongs to. This property is required if the consumer uses either
the group management functionality by using subscribe(topic) or the Kafka-based
offset management strategy. | | String
-| *groupInstanceId* (consumer) | A unique identifier of the consumer instance
provided by the end user. Only non-empty strings are permitted. If set, the
consumer is treated as a static member, which means that only one instance with
this ID is allowed in the consumer group at any time. This can be used in
combination with a larger session timeout to avoid group rebalances caused by
transient unavailability (e.g. process restarts). If not set, the consumer will
join the group as a dynami [...]
-| *heartbeatIntervalMs* (consumer) | The expected time between heartbeats to
the consumer coordinator when using Kafka's group management facilities.
Heartbeats are used to ensure that the consumer's session stays active and to
facilitate rebalancing when new consumers join or leave the group. The value
must be set lower than session.timeout.ms, but typically should be set no
higher than 1/3 of that value. It can be adjusted even lower to control the
expected time for normal rebalances. [...]
-| *isolationLevel* (consumer) | Controls how to read messages written
transactionally. If set to read_committed, consumer.poll() will only return
transactional messages which have been committed. If set to read_uncommitted'
(the default), consumer.poll() will return all messages, even transactional
messages which have been aborted. Non-transactional messages will be returned
unconditionally in either mode. Messages will always be returned in offset
order. Hence, in read_committed mode, c [...]
-| *keyDeserializer* (consumer) | Deserializer class for key that implements
the org.apache.kafka.common.serialization.Deserializer interface. |
org.apache.kafka.common.serialization.StringDeserializer | String
-| *maxPartitionFetchBytes* (consumer) | The maximum amount of data
per-partition the server will return. Records are fetched in batches by the
consumer. If the first record batch in the first non-empty partition of the
fetch is larger than this limit, the batch will still be returned to ensure
that the consumer can make progress. The maximum record batch size accepted by
the broker is defined via message.max.bytes (broker config) or
max.message.bytes (topic config). See fetch.max.bytes f [...]
-| *maxPollIntervalMs* (consumer) | The maximum delay between invocations of
poll() when using consumer group management. This places an upper bound on the
amount of time that the consumer can be idle before fetching more records. If
poll() is not called before expiration of this timeout, then the consumer is
considered failed and the group will rebalance in order to reassign the
partitions to another member. For consumers using a non-null group.instance.id
which reach this timeout, parti [...]
-| *maxPollRecords* (consumer) | The maximum number of records returned in a
single call to poll(). | 500 | int
-| *partitionAssignmentStrategy* (consumer) | A list of class names or class
types, ordered by preference, of supported partition assignment strategies that
the client will use to distribute partition ownership amongst consumer
instances when group management is used.In addition to the default class
specified below, you can use the
org.apache.kafka.clients.consumer.RoundRobinAssignorclass for round robin
assignments of partitions to consumers. Implementing the
org.apache.kafka.clients.con [...]
-| *seekToOffset* (consumer) | Set if KafkaConsumer will read from a particular
offset on startup. This config will take precedence over seekTo config | | Long
-| *seekToPosition* (consumer) | Set if KafkaConsumer will read from beginning
or end on startup: beginning : read from beginning end : read from end. There
are 2 enums and the value can be one of: beginning, end | | String
-| *sessionTimeoutMs* (consumer) | The timeout used to detect client failures
when using Kafka's group management facility. The client sends periodic
heartbeats to indicate its liveness to the broker. If no heartbeats are
received by the broker before the expiration of this session timeout, then the
broker will remove this client from the group and initiate a rebalance. Note
that the value must be in the allowable range as configured in the broker
configuration by group.min.session.timeou [...]
-| *valueDeserializer* (consumer) | Deserializer class for value that
implements the org.apache.kafka.common.serialization.Deserializer interface. |
org.apache.kafka.common.serialization.StringDeserializer | String
-| *exceptionHandler* (consumer) | To let the consumer use a custom
ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this
option is not in use. By default the consumer will deal with exceptions, that
will be logged at WARN or ERROR level and ignored. | | ExceptionHandler
-| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer
creates an exchange. There are 3 enums and the value can be one of: InOnly,
InOut, InOptionalOut | | ExchangePattern
-| *acks* (producer) | The number of acknowledgments the producer requires the
leader to have received before considering a request complete. This controls
the durability of records that are sent. The following settings are allowed:
acks=0 If set to zero then the producer will not wait for any acknowledgment
from the server at all. The record will be immediately added to the socket
buffer and considered sent. No guarantee can be made that the server has
received the record in this case, a [...]
-| *batchSize* (producer) | The producer will attempt to batch records together
into fewer requests whenever multiple records are being sent to the same
partition. This helps performance on both the client and the server. This
configuration controls the default batch size in bytes. No attempt will be made
to batch records larger than this size. Requests sent to brokers will contain
multiple batches, one for each partition with data available to be sent. A
small batch size will make batchi [...]
-| *bufferMemory* (producer) | The total bytes of memory the producer can use
to buffer records waiting to be sent to the server. If records are sent faster
than they can be delivered to the server the producer will block for
max.block.ms after which it will throw an exception.This setting should
correspond roughly to the total memory the producer will use, but is not a hard
bound since not all memory the producer uses is used for buffering. Some
additional memory will be used for compres [...]
-| *compressionType* (producer) | The compression type for all data generated
by the producer. The default is none (i.e. no compression). Valid values are
none, gzip, snappy, lz4, or zstd. Compression is of full batches of data, so
the efficacy of batching will also impact the compression ratio (more batching
means better compression). | none | String
-| *deliveryTimeoutMs* (producer) | An upper bound on the time to report
success or failure after a call to send() returns. This limits the total time
that a record will be delayed prior to sending, the time to await
acknowledgement from the broker (if expected), and the time allowed for
retriable send failures. The producer may report failure to send a record
earlier than this config if either an unrecoverable error is encountered, the
retries have been exhausted, or the record is added [...]
-| *enableIdempotence* (producer) | When set to 'true', the producer will
ensure that exactly one copy of each message is written in the stream. If
'false', producer retries due to broker failures, etc., may write duplicates of
the retried message in the stream. Note that enabling idempotence requires
max.in.flight.requests.per.connection to be less than or equal to 5, retries to
be greater than 0 and acks must be 'all'. If these values are not explicitly
set by the user, suitable values [...]
-| *keySerializer* (producer) | Serializer class for key that implements the
org.apache.kafka.common.serialization.Serializer interface. |
org.apache.kafka.common.serialization.StringSerializer | String
-| *lazyStartProducer* (producer) | Whether the producer should be started lazy
(on the first message). By starting lazy you can use this to allow CamelContext
and routes to startup in situations where a producer may otherwise fail during
starting and cause the route to fail being started. By deferring this startup
to be lazy then the startup failure can be handled during routing messages via
Camel's routing error handlers. Beware that when the first message is processed
then creating and [...]
-| *lingerMs* (producer) | The producer groups together any records that arrive
in between request transmissions into a single batched request. Normally this
occurs only under load when records arrive faster than they can be sent out.
However in some circumstances the client may want to reduce the number of
requests even under moderate load. This setting accomplishes this by adding a
small amount of artificial delay—that is, rather than immediately sending
out a record the producer [...]
-| *maxBlockMs* (producer) | The configuration controls how long
KafkaProducer.send() and KafkaProducer.partitionsFor() will block.These methods
can be blocked either because the buffer is full or metadata
unavailable.Blocking in the user-supplied serializers or partitioner will not
be counted against this timeout. | 1m | long
-| *maxInFlightRequestsPer{zwsp}Connection* (producer) | The maximum number of
unacknowledged requests the client will send on a single connection before
blocking. Note that if this setting is set to be greater than 1 and there are
failed sends, there is a risk of message re-ordering due to retries (i.e., if
retries are enabled). | 5 | int
-| *maxRequestSize* (producer) | The maximum size of a request in bytes. This
setting will limit the number of record batches the producer will send in a
single request to avoid sending huge requests. This is also effectively a cap
on the maximum uncompressed record batch size. Note that the server has its own
cap on the record batch size (after compression if compression is enabled)
which may be different from this. | 1048576 | int
-| *metadataMaxIdleMs* (producer) | Controls how long the producer will cache
metadata for a topic that's idle. If the elapsed time since a topic was last
produced to exceeds the metadata idle duration, then the topic's metadata is
forgotten and the next access to it will force a metadata fetch request. | 5m |
long
-| *partitionerClass* (producer) | Partitioner class that implements the
org.apache.kafka.clients.producer.Partitioner interface. |
org.apache.kafka.clients.producer.internals.DefaultPartitioner | String
-| *retries* (producer) | Setting a value greater than zero will cause the
client to resend any record whose send fails with a potentially transient
error. Note that this retry is no different than if the client resent the
record upon receiving the error. Allowing retries without setting
max.in.flight.requests.per.connection to 1 will potentially change the ordering
of records because if two batches are sent to a single partition, and the first
fails and is retried but the second succeeds [...]
-| *transactionalId* (producer) | The TransactionalId to use for transactional
delivery. This enables reliability semantics which span multiple producer
sessions since it allows the client to guarantee that transactions using the
same TransactionalId have been completed prior to starting any new
transactions. If no TransactionalId is provided, then the producer is limited
to idempotent delivery. If a TransactionalId is configured, enable.idempotence
is implied. By default the TransactionI [...]
-| *transactionTimeoutMs* (producer) | The maximum amount of time in ms that
the transaction coordinator will wait for a transaction status update from the
producer before proactively aborting the ongoing transaction.If this value is
larger than the transaction.max.timeout.ms setting in the broker, the request
will fail with a InvalidTransactionTimeout error. | 1m | int
-| *valueSerializer* (producer) | Serializer class for value that implements
the org.apache.kafka.common.serialization.Serializer interface. |
org.apache.kafka.common.serialization.StringSerializer | String
-| *synchronous* (advanced) | Sets whether synchronous processing should be
strictly used, or Camel is allowed to use asynchronous processing (if
supported). | false | boolean
-| *saslClientCallbackHandlerClass* (security) | The fully qualified name of a
SASL client callback handler class that implements the
AuthenticateCallbackHandler interface. | | String
-| *saslJaasConfig* (security) | JAAS login context parameters for SASL
connections in the format used by JAAS configuration files. JAAS configuration
file format is described here. The format for the value is: 'loginModuleClass
controlFlag (optionName=optionValue);'. For brokers, the config must be
prefixed with listener prefix and SASL mechanism name in lower-case. For
example,
listener.name.sasl_ssl.scram-sha-256.sasl.jaas.config=com.example.ScramLoginModule
required; | | String
-| *saslKerberosKinitCmd* (security) | Kerberos kinit command path. |
/usr/bin/kinit | String
-| *saslKerberosMinTimeBefore{zwsp}Relogin* (security) | Login thread sleep
time between refresh attempts. | 60000 | long
-| *saslKerberosServiceName* (security) | The Kerberos principal name that
Kafka runs as. This can be defined either in Kafka's JAAS config or in Kafka's
config. | | String
-| *saslKerberosTicketRenewJitter* (security) | Percentage of random jitter
added to the renewal time. | 0.05 | double
-| *saslKerberosTicketRenewWindow{zwsp}Factor* (security) | Login thread will
sleep until the specified window factor of time from last refresh to ticket's
expiry has been reached, at which time it will try to renew the ticket. | 0.8 |
double
-| *saslLoginCallbackHandlerClass* (security) | The fully qualified name of a
SASL login callback handler class that implements the
AuthenticateCallbackHandler interface. For brokers, login callback handler
config must be prefixed with listener prefix and SASL mechanism name in
lower-case. For example,
listener.name.sasl_ssl.scram-sha-256.sasl.login.callback.handler.class=com.example.CustomScramLoginCallbackHandler
| | String
-| *saslLoginClass* (security) | The fully qualified name of a class that
implements the Login interface. For brokers, login config must be prefixed with
listener prefix and SASL mechanism name in lower-case. For example,
listener.name.sasl_ssl.scram-sha-256.sasl.login.class=com.example.CustomScramLogin
| | String
-| *saslLoginRefreshBufferSeconds* (security) | The amount of buffer time
before credential expiration to maintain when refreshing a credential, in
seconds. If a refresh would otherwise occur closer to expiration than the
number of buffer seconds then the refresh will be moved up to maintain as much
of the buffer time as possible. Legal values are between 0 and 3600 (1 hour); a
default value of 300 (5 minutes) is used if no value is specified. This value
and sasl.login.refresh.min.period. [...]
-| *saslLoginRefreshMinPeriod{zwsp}Seconds* (security) | The desired minimum
time for the login refresh thread to wait before refreshing a credential, in
seconds. Legal values are between 0 and 900 (15 minutes); a default value of 60
(1 minute) is used if no value is specified. This value and
sasl.login.refresh.buffer.seconds are both ignored if their sum exceeds the
remaining lifetime of a credential. Currently applies only to OAUTHBEARER. | 60
| short
-| *saslLoginRefreshWindowFactor* (security) | Login refresh thread will sleep
until the specified window factor relative to the credential's lifetime has
been reached, at which time it will try to refresh the credential. Legal values
are between 0.5 (50%) and 1.0 (100%) inclusive; a default value of 0.8 (80%) is
used if no value is specified. Currently applies only to OAUTHBEARER. | 0.8 |
double
-| *saslLoginRefreshWindowJitter* (security) | The maximum amount of random
jitter relative to the credential's lifetime that is added to the login refresh
thread's sleep time. Legal values are between 0 and 0.25 (25%) inclusive; a
default value of 0.05 (5%) is used if no value is specified. Currently applies
only to OAUTHBEARER. | 0.05 | double
-| *saslMechanism* (security) | SASL mechanism used for client connections.
This may be any mechanism for which a security provider is available. GSSAPI is
the default mechanism. | GSSAPI | String
-| *securityProtocol* (security) | Protocol used to communicate with brokers.
Valid values are: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL. | PLAINTEXT | String
-| *securityProviders* (security) | A list of configurable creator classes each
returning a provider implementing security algorithms. These classes should
implement the org.apache.kafka.common.security.auth.SecurityProviderCreator
interface. | | String
-| *sslCipherSuites* (security) | A list of cipher suites. This is a named
combination of authentication, encryption, MAC and key exchange algorithm used
to negotiate the security settings for a network connection using TLS or SSL
network protocol. By default all the available cipher suites are supported. |
| String
-| *sslEnabledProtocols* (security) | The list of protocols enabled for SSL
connections. The default is 'TLSv1.2,TLSv1.3' when running with Java 11 or
newer, 'TLSv1.2' otherwise. With the default value for Java 11, clients and
servers will prefer TLSv1.3 if both support it and fallback to TLSv1.2
otherwise (assuming both support at least TLSv1.2). This default should be fine
for most cases. Also see the config documentation for ssl.protocol. |
TLSv1.2,TLSv1.3 | String
-| *sslEndpointIdentification{zwsp}Algorithm* (security) | The endpoint
identification algorithm to validate server hostname using server certificate.
| https | String
-| *sslEngineFactoryClass* (security) | The class of type
org.apache.kafka.common.security.auth.SslEngineFactory to provide SSLEngine
objects. Default value is
org.apache.kafka.common.security.ssl.DefaultSslEngineFactory | | String
-| *sslKeymanagerAlgorithm* (security) | The algorithm used by key manager
factory for SSL connections. Default value is the key manager factory algorithm
configured for the Java Virtual Machine. | SunX509 | String
-| *sslKeyPassword* (security) | The password of the private key in the key
store file. This is optional for client. | | String
-| *sslKeystoreLocation* (security) | The location of the key store file. This
is optional for client and can be used for two-way authentication for client. |
| String
-| *sslKeystorePassword* (security) | The store password for the key store
file. This is optional for client and only needed if ssl.keystore.location is
configured. | | String
-| *sslKeystoreType* (security) | The file format of the key store file. This
is optional for client. | JKS | String
-| *sslProtocol* (security) | The SSL protocol used to generate the SSLContext.
The default is 'TLSv1.3' when running with Java 11 or newer, 'TLSv1.2'
otherwise. This value should be fine for most use cases. Allowed values in
recent JVMs are 'TLSv1.2' and 'TLSv1.3'. 'TLS', 'TLSv1.1', 'SSL', 'SSLv2' and
'SSLv3' may be supported in older JVMs, but their usage is discouraged due to
known security vulnerabilities. With the default value for this config and
'ssl.enabled.protocols', clients wil [...]
-| *sslProvider* (security) | The name of the security provider used for SSL
connections. Default value is the default security provider of the JVM. | |
String
-| *sslSecureRandomImplementation* (security) | The SecureRandom PRNG
implementation to use for SSL cryptography operations. | | String
-| *sslTrustmanagerAlgorithm* (security) | The algorithm used by trust manager
factory for SSL connections. Default value is the trust manager factory
algorithm configured for the Java Virtual Machine. | PKIX | String
-| *sslTruststoreLocation* (security) | The location of the trust store file. |
| String
-| *sslTruststorePassword* (security) | The password for the trust store file.
If a password is not set access to the truststore is still available, but
integrity checking is disabled. | | String
-| *sslTruststoreType* (security) | The file format of the trust store file. |
JKS | String
-|===
-// endpoint options: END
-
-== Component Options
-// component options: START
-The Vert.x Kafka component supports 98 options, which are listed below.
-
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *additionalProperties* (common) | Sets additional properties for either
kafka consumer or kafka producer in case they can't be set directly on the
camel configurations (e.g: new Kafka properties that are not reflected yet in
Camel configurations), the properties have to be prefixed with
additionalProperties.. E.g:
additionalProperties.transactional.id=12345&additionalProperties.schema.registry.url=\http://localhost:8811/avro
| | Map
-| *bootstrapServers* (common) | A list of host/port pairs to use for
establishing the initial connection to the Kafka cluster. The client will make
use of all servers irrespective of which servers are specified here for
bootstrapping—this list only impacts the initial hosts used to discover
the full set of servers. This list should be in the form
host1:port1,host2:port2,.... Since these servers are just used for the initial
connection to discover the full cluster membership (which [...]
-| *clientDnsLookup* (common) | Controls how the client uses DNS lookups. If
set to use_all_dns_ips, connect to each returned IP address in sequence until a
successful connection is established. After a disconnection, the next IP is
used. Once all IPs have been used once, the client resolves the IP(s) from the
hostname again (both the JVM and the OS cache DNS name lookups, however). If
set to resolve_canonical_bootstrap_servers_only, resolve each bootstrap address
into a list of canonical [...]
-| *clientId* (common) | An id string to pass to the server when making
requests. The purpose of this is to be able to track the source of requests
beyond just ip/port by allowing a logical application name to be included in
server-side request logging. | | String
-| *configuration* (common) | The component configurations | |
VertxKafkaConfiguration
-| *connectionsMaxIdleMs* (common) | Close idle connections after the number of
milliseconds specified by this config. | 9m | long
-| *headerFilterStrategy* (common) | To use a custom HeaderFilterStrategy to
filter header to and from Camel message. | | HeaderFilterStrategy
-| *interceptorClasses* (common) | A list of classes to use as interceptors.
Implementing the org.apache.kafka.clients.producer.ProducerInterceptor
interface allows you to intercept (and possibly mutate) the records received by
the producer before they are published to the Kafka cluster. By default, there
are no interceptors. | | String
-| *metadataMaxAgeMs* (common) | The period of time in milliseconds after which
we force a refresh of metadata even if we haven't seen any partition leadership
changes to proactively discover any new brokers or partitions. | 5m | long
-| *metricReporters* (common) | A list of classes to use as metrics reporters.
Implementing the org.apache.kafka.common.metrics.MetricsReporter interface
allows plugging in classes that will be notified of new metric creation. The
JmxReporter is always included to register JMX statistics. | | String
-| *metricsNumSamples* (common) | The number of samples maintained to compute
metrics. | 2 | int
-| *metricsRecordingLevel* (common) | The highest recording level for metrics.
There are 2 enums and the value can be one of: INFO, DEBUG | INFO | String
-| *metricsSampleWindowMs* (common) | The window of time a metrics sample is
computed over. | 30s | long
-| *partitionId* (common) | The partition to which the record will be sent (or
null if no partition was specified) or read from a particular partition if set.
Header VertxKafkaConstants#PARTITION_ID If configured, it will take precedence
over this config | | Integer
-| *receiveBufferBytes* (common) | The size of the TCP receive buffer
(SO_RCVBUF) to use when reading data. If the value is -1, the OS default will
be used. | 32768 | int
-| *reconnectBackoffMaxMs* (common) | The maximum amount of time in
milliseconds to wait when reconnecting to a broker that has repeatedly failed
to connect. If provided, the backoff per host will increase exponentially for
each consecutive connection failure, up to this maximum. After calculating the
backoff increase, 20% random jitter is added to avoid connection storms. | 1s |
long
-| *reconnectBackoffMs* (common) | The base amount of time to wait before
attempting to reconnect to a given host. This avoids repeatedly connecting to a
host in a tight loop. This backoff applies to all connection attempts by the
client to a broker. | 50ms | long
-| *requestTimeoutMs* (common) | The configuration controls the maximum amount
of time the client will wait for the response of a request. If the response is
not received before the timeout elapses the client will resend the request if
necessary or fail the request if retries are exhausted. This should be larger
than replica.lag.time.max.ms (a broker configuration) to reduce the possibility
of message duplication due to unnecessary producer retries. | 30s | int
-| *retryBackoffMs* (common) | The amount of time to wait before attempting to
retry a failed request to a given topic partition. This avoids repeatedly
sending requests in a tight loop under some failure scenarios. | 100ms | long
-| *sendBufferBytes* (common) | The size of the TCP send buffer (SO_SNDBUF) to
use when sending data. If the value is -1, the OS default will be used. |
131072 | int
-| *allowAutoCreateTopics* (consumer) | Allow automatic topic creation on the
broker when subscribing to or assigning a topic. A topic being subscribed to
will be automatically created only if the broker allows for it using
auto.create.topics.enable broker configuration. This configuration must be set
to false when using brokers older than 0.11.0 | true | boolean
-| *autoCommitIntervalMs* (consumer) | The frequency in milliseconds that the
consumer offsets are auto-committed to Kafka if enable.auto.commit is set to
true. | 5s | int
-| *autoOffsetReset* (consumer) | What to do when there is no initial offset in
Kafka or if the current offset does not exist any more on the server (e.g.
because that data has been deleted): earliest: automatically reset the offset
to the earliest offsetlatest: automatically reset the offset to the latest
offsetnone: throw exception to the consumer if no previous offset is found for
the consumer's groupanything else: throw exception to the consumer. There are 3
enums and the value can be [...]
-| *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the
Camel routing Error Handler, which mean any exceptions occurred while the
consumer is trying to pickup incoming messages, or the likes, will now be
processed as a message and handled by the routing Error Handler. By default the
consumer will use the org.apache.camel.spi.ExceptionHandler to deal with
exceptions, that will be logged at WARN or ERROR level and ignored. | false |
boolean
-| *checkCrcs* (consumer) | Automatically check the CRC32 of the records
consumed. This ensures no on-the-wire or on-disk corruption to the messages
occurred. This check adds some overhead, so it may be disabled in cases seeking
extreme performance. | true | boolean
-| *clientRack* (consumer) | A rack identifier for this client. This can be any
string value which indicates where this client is physically located. It
corresponds with the broker config 'broker.rack' | | String
-| *defaultApiTimeoutMs* (consumer) | Specifies the timeout (in milliseconds)
for client APIs. This configuration is used as the default timeout for all
client operations that do not specify a timeout parameter. | 1m | int
-| *enableAutoCommit* (consumer) | If true the consumer's offset will be
periodically committed in the background. | true | boolean
-| *excludeInternalTopics* (consumer) | Whether internal topics matching a
subscribed pattern should be excluded from the subscription. It is always
possible to explicitly subscribe to an internal topic. | true | boolean
-| *fetchMaxBytes* (consumer) | The maximum amount of data the server should
return for a fetch request. Records are fetched in batches by the consumer, and
if the first record batch in the first non-empty partition of the fetch is
larger than this value, the record batch will still be returned to ensure that
the consumer can make progress. As such, this is not a absolute maximum. The
maximum record batch size accepted by the broker is defined via
message.max.bytes (broker config) or max. [...]
-| *fetchMaxWaitMs* (consumer) | The maximum amount of time the server will
block before answering the fetch request if there isn't sufficient data to
immediately satisfy the requirement given by fetch.min.bytes. | 500ms | int
-| *fetchMinBytes* (consumer) | The minimum amount of data the server should
return for a fetch request. If insufficient data is available the request will
wait for that much data to accumulate before answering the request. The default
setting of 1 byte means that fetch requests are answered as soon as a single
byte of data is available or the fetch request times out waiting for data to
arrive. Setting this to something greater than 1 will cause the server to wait
for larger amounts of da [...]
-| *groupId* (consumer) | A unique string that identifies the consumer group
this consumer belongs to. This property is required if the consumer uses either
the group management functionality by using subscribe(topic) or the Kafka-based
offset management strategy. | | String
-| *groupInstanceId* (consumer) | A unique identifier of the consumer instance
provided by the end user. Only non-empty strings are permitted. If set, the
consumer is treated as a static member, which means that only one instance with
this ID is allowed in the consumer group at any time. This can be used in
combination with a larger session timeout to avoid group rebalances caused by
transient unavailability (e.g. process restarts). If not set, the consumer will
join the group as a dynami [...]
-| *heartbeatIntervalMs* (consumer) | The expected time between heartbeats to
the consumer coordinator when using Kafka's group management facilities.
Heartbeats are used to ensure that the consumer's session stays active and to
facilitate rebalancing when new consumers join or leave the group. The value
must be set lower than session.timeout.ms, but typically should be set no
higher than 1/3 of that value. It can be adjusted even lower to control the
expected time for normal rebalances. [...]
-| *isolationLevel* (consumer) | Controls how to read messages written
transactionally. If set to read_committed, consumer.poll() will only return
transactional messages which have been committed. If set to read_uncommitted'
(the default), consumer.poll() will return all messages, even transactional
messages which have been aborted. Non-transactional messages will be returned
unconditionally in either mode. Messages will always be returned in offset
order. Hence, in read_committed mode, c [...]
-| *keyDeserializer* (consumer) | Deserializer class for key that implements
the org.apache.kafka.common.serialization.Deserializer interface. |
org.apache.kafka.common.serialization.StringDeserializer | String
-| *maxPartitionFetchBytes* (consumer) | The maximum amount of data
per-partition the server will return. Records are fetched in batches by the
consumer. If the first record batch in the first non-empty partition of the
fetch is larger than this limit, the batch will still be returned to ensure
that the consumer can make progress. The maximum record batch size accepted by
the broker is defined via message.max.bytes (broker config) or
max.message.bytes (topic config). See fetch.max.bytes f [...]
-| *maxPollIntervalMs* (consumer) | The maximum delay between invocations of
poll() when using consumer group management. This places an upper bound on the
amount of time that the consumer can be idle before fetching more records. If
poll() is not called before expiration of this timeout, then the consumer is
considered failed and the group will rebalance in order to reassign the
partitions to another member. For consumers using a non-null group.instance.id
which reach this timeout, parti [...]
-| *maxPollRecords* (consumer) | The maximum number of records returned in a
single call to poll(). | 500 | int
-| *partitionAssignmentStrategy* (consumer) | A list of class names or class
types, ordered by preference, of supported partition assignment strategies that
the client will use to distribute partition ownership amongst consumer
instances when group management is used.In addition to the default class
specified below, you can use the
org.apache.kafka.clients.consumer.RoundRobinAssignorclass for round robin
assignments of partitions to consumers. Implementing the
org.apache.kafka.clients.con [...]
-| *seekToOffset* (consumer) | Set if KafkaConsumer will read from a particular
offset on startup. This config will take precedence over seekTo config | | Long
-| *seekToPosition* (consumer) | Set if KafkaConsumer will read from beginning
or end on startup: beginning : read from beginning end : read from end. There
are 2 enums and the value can be one of: beginning, end | | String
-| *sessionTimeoutMs* (consumer) | The timeout used to detect client failures
when using Kafka's group management facility. The client sends periodic
heartbeats to indicate its liveness to the broker. If no heartbeats are
received by the broker before the expiration of this session timeout, then the
broker will remove this client from the group and initiate a rebalance. Note
that the value must be in the allowable range as configured in the broker
configuration by group.min.session.timeou [...]
-| *valueDeserializer* (consumer) | Deserializer class for value that
implements the org.apache.kafka.common.serialization.Deserializer interface. |
org.apache.kafka.common.serialization.StringDeserializer | String
-| *acks* (producer) | The number of acknowledgments the producer requires the
leader to have received before considering a request complete. This controls
the durability of records that are sent. The following settings are allowed:
acks=0 If set to zero then the producer will not wait for any acknowledgment
from the server at all. The record will be immediately added to the socket
buffer and considered sent. No guarantee can be made that the server has
received the record in this case, a [...]
-| *batchSize* (producer) | The producer will attempt to batch records together
into fewer requests whenever multiple records are being sent to the same
partition. This helps performance on both the client and the server. This
configuration controls the default batch size in bytes. No attempt will be made
to batch records larger than this size. Requests sent to brokers will contain
multiple batches, one for each partition with data available to be sent. A
small batch size will make batchi [...]
-| *bufferMemory* (producer) | The total bytes of memory the producer can use
to buffer records waiting to be sent to the server. If records are sent faster
than they can be delivered to the server the producer will block for
max.block.ms after which it will throw an exception.This setting should
correspond roughly to the total memory the producer will use, but is not a hard
bound since not all memory the producer uses is used for buffering. Some
additional memory will be used for compres [...]
-| *compressionType* (producer) | The compression type for all data generated
by the producer. The default is none (i.e. no compression). Valid values are
none, gzip, snappy, lz4, or zstd. Compression is of full batches of data, so
the efficacy of batching will also impact the compression ratio (more batching
means better compression). | none | String
-| *deliveryTimeoutMs* (producer) | An upper bound on the time to report
success or failure after a call to send() returns. This limits the total time
that a record will be delayed prior to sending, the time to await
acknowledgement from the broker (if expected), and the time allowed for
retriable send failures. The producer may report failure to send a record
earlier than this config if either an unrecoverable error is encountered, the
retries have been exhausted, or the record is added [...]
-| *enableIdempotence* (producer) | When set to 'true', the producer will
ensure that exactly one copy of each message is written in the stream. If
'false', producer retries due to broker failures, etc., may write duplicates of
the retried message in the stream. Note that enabling idempotence requires
max.in.flight.requests.per.connection to be less than or equal to 5, retries to
be greater than 0 and acks must be 'all'. If these values are not explicitly
set by the user, suitable values [...]
-| *keySerializer* (producer) | Serializer class for key that implements the
org.apache.kafka.common.serialization.Serializer interface. |
org.apache.kafka.common.serialization.StringSerializer | String
-| *lazyStartProducer* (producer) | Whether the producer should be started lazy
(on the first message). By starting lazy you can use this to allow CamelContext
and routes to startup in situations where a producer may otherwise fail during
starting and cause the route to fail being started. By deferring this startup
to be lazy then the startup failure can be handled during routing messages via
Camel's routing error handlers. Beware that when the first message is processed
then creating and [...]
-| *lingerMs* (producer) | The producer groups together any records that arrive
in between request transmissions into a single batched request. Normally this
occurs only under load when records arrive faster than they can be sent out.
However in some circumstances the client may want to reduce the number of
requests even under moderate load. This setting accomplishes this by adding a
small amount of artificial delay—that is, rather than immediately sending
out a record the producer [...]
-| *maxBlockMs* (producer) | The configuration controls how long
KafkaProducer.send() and KafkaProducer.partitionsFor() will block.These methods
can be blocked either because the buffer is full or metadata
unavailable.Blocking in the user-supplied serializers or partitioner will not
be counted against this timeout. | 1m | long
-| *maxInFlightRequestsPer{zwsp}Connection* (producer) | The maximum number of
unacknowledged requests the client will send on a single connection before
blocking. Note that if this setting is set to be greater than 1 and there are
failed sends, there is a risk of message re-ordering due to retries (i.e., if
retries are enabled). | 5 | int
-| *maxRequestSize* (producer) | The maximum size of a request in bytes. This
setting will limit the number of record batches the producer will send in a
single request to avoid sending huge requests. This is also effectively a cap
on the maximum uncompressed record batch size. Note that the server has its own
cap on the record batch size (after compression if compression is enabled)
which may be different from this. | 1048576 | int
-| *metadataMaxIdleMs* (producer) | Controls how long the producer will cache
metadata for a topic that's idle. If the elapsed time since a topic was last
produced to exceeds the metadata idle duration, then the topic's metadata is
forgotten and the next access to it will force a metadata fetch request. | 5m |
long
-| *partitionerClass* (producer) | Partitioner class that implements the
org.apache.kafka.clients.producer.Partitioner interface. |
org.apache.kafka.clients.producer.internals.DefaultPartitioner | String
-| *retries* (producer) | Setting a value greater than zero will cause the
client to resend any record whose send fails with a potentially transient
error. Note that this retry is no different than if the client resent the
record upon receiving the error. Allowing retries without setting
max.in.flight.requests.per.connection to 1 will potentially change the ordering
of records because if two batches are sent to a single partition, and the first
fails and is retried but the second succeeds [...]
-| *transactionalId* (producer) | The TransactionalId to use for transactional
delivery. This enables reliability semantics which span multiple producer
sessions since it allows the client to guarantee that transactions using the
same TransactionalId have been completed prior to starting any new
transactions. If no TransactionalId is provided, then the producer is limited
to idempotent delivery. If a TransactionalId is configured, enable.idempotence
is implied. By default the TransactionI [...]
-| *transactionTimeoutMs* (producer) | The maximum amount of time in ms that
the transaction coordinator will wait for a transaction status update from the
producer before proactively aborting the ongoing transaction.If this value is
larger than the transaction.max.timeout.ms setting in the broker, the request
will fail with a InvalidTransactionTimeout error. | 1m | int
-| *valueSerializer* (producer) | Serializer class for value that implements
the org.apache.kafka.common.serialization.Serializer interface. |
org.apache.kafka.common.serialization.StringSerializer | String
-| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used
for automatic autowiring options (the option must be marked as autowired) by
looking up in the registry to find if there is a single instance of matching
type, which then gets configured on the component. This can be used for
automatic configuring JDBC data sources, JMS connection factories, AWS Clients,
etc. | true | boolean
-| *vertx* (advanced) | *Autowired* To use an existing vertx instead of
creating a new instance | | Vertx
-| *vertxOptions* (advanced) | To provide a custom set of vertx options for
configuring vertx | | VertxOptions
-| *saslClientCallbackHandlerClass* (security) | The fully qualified name of a
SASL client callback handler class that implements the
AuthenticateCallbackHandler interface. | | String
-| *saslJaasConfig* (security) | JAAS login context parameters for SASL
connections in the format used by JAAS configuration files. JAAS configuration
file format is described here. The format for the value is: 'loginModuleClass
controlFlag (optionName=optionValue);'. For brokers, the config must be
prefixed with listener prefix and SASL mechanism name in lower-case. For
example,
listener.name.sasl_ssl.scram-sha-256.sasl.jaas.config=com.example.ScramLoginModule
required; | | String
-| *saslKerberosKinitCmd* (security) | Kerberos kinit command path. |
/usr/bin/kinit | String
-| *saslKerberosMinTimeBefore{zwsp}Relogin* (security) | Login thread sleep
time between refresh attempts. | 60000 | long
-| *saslKerberosServiceName* (security) | The Kerberos principal name that
Kafka runs as. This can be defined either in Kafka's JAAS config or in Kafka's
config. | | String
-| *saslKerberosTicketRenewJitter* (security) | Percentage of random jitter
added to the renewal time. | 0.05 | double
-| *saslKerberosTicketRenewWindow{zwsp}Factor* (security) | Login thread will
sleep until the specified window factor of time from last refresh to ticket's
expiry has been reached, at which time it will try to renew the ticket. | 0.8 |
double
-| *saslLoginCallbackHandlerClass* (security) | The fully qualified name of a
SASL login callback handler class that implements the
AuthenticateCallbackHandler interface. For brokers, login callback handler
config must be prefixed with listener prefix and SASL mechanism name in
lower-case. For example,
listener.name.sasl_ssl.scram-sha-256.sasl.login.callback.handler.class=com.example.CustomScramLoginCallbackHandler
| | String
-| *saslLoginClass* (security) | The fully qualified name of a class that
implements the Login interface. For brokers, login config must be prefixed with
listener prefix and SASL mechanism name in lower-case. For example,
listener.name.sasl_ssl.scram-sha-256.sasl.login.class=com.example.CustomScramLogin
| | String
-| *saslLoginRefreshBufferSeconds* (security) | The amount of buffer time
before credential expiration to maintain when refreshing a credential, in
seconds. If a refresh would otherwise occur closer to expiration than the
number of buffer seconds then the refresh will be moved up to maintain as much
of the buffer time as possible. Legal values are between 0 and 3600 (1 hour); a
default value of 300 (5 minutes) is used if no value is specified. This value
and sasl.login.refresh.min.period. [...]
-| *saslLoginRefreshMinPeriod{zwsp}Seconds* (security) | The desired minimum
time for the login refresh thread to wait before refreshing a credential, in
seconds. Legal values are between 0 and 900 (15 minutes); a default value of 60
(1 minute) is used if no value is specified. This value and
sasl.login.refresh.buffer.seconds are both ignored if their sum exceeds the
remaining lifetime of a credential. Currently applies only to OAUTHBEARER. | 60
| short
-| *saslLoginRefreshWindowFactor* (security) | Login refresh thread will sleep
until the specified window factor relative to the credential's lifetime has
been reached, at which time it will try to refresh the credential. Legal values
are between 0.5 (50%) and 1.0 (100%) inclusive; a default value of 0.8 (80%) is
used if no value is specified. Currently applies only to OAUTHBEARER. | 0.8 |
double
-| *saslLoginRefreshWindowJitter* (security) | The maximum amount of random
jitter relative to the credential's lifetime that is added to the login refresh
thread's sleep time. Legal values are between 0 and 0.25 (25%) inclusive; a
default value of 0.05 (5%) is used if no value is specified. Currently applies
only to OAUTHBEARER. | 0.05 | double
-| *saslMechanism* (security) | SASL mechanism used for client connections.
This may be any mechanism for which a security provider is available. GSSAPI is
the default mechanism. | GSSAPI | String
-| *securityProtocol* (security) | Protocol used to communicate with brokers.
Valid values are: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL. | PLAINTEXT | String
-| *securityProviders* (security) | A list of configurable creator classes each
returning a provider implementing security algorithms. These classes should
implement the org.apache.kafka.common.security.auth.SecurityProviderCreator
interface. | | String
-| *sslCipherSuites* (security) | A list of cipher suites. This is a named
combination of authentication, encryption, MAC and key exchange algorithm used
to negotiate the security settings for a network connection using TLS or SSL
network protocol. By default all the available cipher suites are supported. |
| String
-| *sslEnabledProtocols* (security) | The list of protocols enabled for SSL
connections. The default is 'TLSv1.2,TLSv1.3' when running with Java 11 or
newer, 'TLSv1.2' otherwise. With the default value for Java 11, clients and
servers will prefer TLSv1.3 if both support it and fallback to TLSv1.2
otherwise (assuming both support at least TLSv1.2). This default should be fine
for most cases. Also see the config documentation for ssl.protocol. |
TLSv1.2,TLSv1.3 | String
-| *sslEndpointIdentification{zwsp}Algorithm* (security) | The endpoint
identification algorithm to validate server hostname using server certificate.
| https | String
-| *sslEngineFactoryClass* (security) | The class of type
org.apache.kafka.common.security.auth.SslEngineFactory to provide SSLEngine
objects. Default value is
org.apache.kafka.common.security.ssl.DefaultSslEngineFactory | | String
-| *sslKeymanagerAlgorithm* (security) | The algorithm used by key manager
factory for SSL connections. Default value is the key manager factory algorithm
configured for the Java Virtual Machine. | SunX509 | String
-| *sslKeyPassword* (security) | The password of the private key in the key
store file. This is optional for client. | | String
-| *sslKeystoreLocation* (security) | The location of the key store file. This
is optional for client and can be used for two-way authentication for client. |
| String
-| *sslKeystorePassword* (security) | The store password for the key store
file. This is optional for client and only needed if ssl.keystore.location is
configured. | | String
-| *sslKeystoreType* (security) | The file format of the key store file. This
is optional for client. | JKS | String
-| *sslProtocol* (security) | The SSL protocol used to generate the SSLContext.
The default is 'TLSv1.3' when running with Java 11 or newer, 'TLSv1.2'
otherwise. This value should be fine for most use cases. Allowed values in
recent JVMs are 'TLSv1.2' and 'TLSv1.3'. 'TLS', 'TLSv1.1', 'SSL', 'SSLv2' and
'SSLv3' may be supported in older JVMs, but their usage is discouraged due to
known security vulnerabilities. With the default value for this config and
'ssl.enabled.protocols', clients wil [...]
-| *sslProvider* (security) | The name of the security provider used for SSL
connections. Default value is the default security provider of the JVM. | |
String
-| *sslSecureRandomImplementation* (security) | The SecureRandom PRNG
implementation to use for SSL cryptography operations. | | String
-| *sslTrustmanagerAlgorithm* (security) | The algorithm used by trust manager
factory for SSL connections. Default value is the trust manager factory
algorithm configured for the Java Virtual Machine. | PKIX | String
-| *sslTruststoreLocation* (security) | The location of the trust store file. |
| String
-| *sslTruststorePassword* (security) | The password for the trust store file.
If a password is not set access to the truststore is still available, but
integrity checking is disabled. | | String
-| *sslTruststoreType* (security) | The file format of the trust store file. |
JKS | String
-|===
-// component options: END
-
-For more information about Producer/Consumer configuration:
-
-http://kafka.apache.org/documentation.html#newconsumerconfigs[http://kafka.apache.org/documentation.html#newconsumerconfigs]
-http://kafka.apache.org/documentation.html#producerconfigs[http://kafka.apache.org/documentation.html#producerconfigs]
-
-== Async Consumer and Producer
-
-This component implements the async Consumer and producer.
-
-This allows camel route to consume and produce events asynchronously without
blocking any threads.
-
-
-== Usage
-
-=== Message headers set by the component consumer
-The following headers are available when consuming messages from Kafka.
-
-[width="100%",cols="10%,10%,10%,70%",options="header",]
-|=======================================================================
-|Header |Variable Name |Type |Description
-
-|`CamelVertxKafkaPartitionId`| `VertxKafkaConstants.PARTITION_ID`|`Integer`|
The partition identifier where the message were consumed from.
-|`CamelVertxKafkaMessageKey`| `VertxKafkaConstants.MESSAGE_KEY`|`String`| The
message key.
-|`CamelVertxKafkaTopic`| `VertxKafkaConstants.TOPIC`|`String`| The topic from
where the message originated.
-|`CamelVertxKafkaOffset`| `VertxKafkaConstants.OFFSET`|`Long`| The offset of
the message in Kafka topic.
-|`CamelVertxKafkaHeaders`|
`VertxKafkaConstants.HEADERS`|`List<io.vertx.kafka.client.producer.KafkaHeader>`|
The record Kafka headers.
-|`CamelVertxKafkaTimestamp`| `VertxKafkaConstants.TIMESTAMP`|`Long`| The
timestamp of this record.
-|=======================================================================
-
-=== Message headers evaluated by the component producer
-Before sending a message to Kafka you can configure the following headers.
-
-[width="100%",cols="10%,10%,10%,70%",options="header",]
-|=======================================================================
-|Header |Variable Name |Type |Description
-
-|`CamelVertxKafkaPartitionId`| `VertxKafkaConstants.PARTITION_ID`|`Integer`|
Explicitly specify the partition identifier, for example partition `0`. This
will trigger the component to produce all the massages to the specified
partition.
-|`CamelVertxKafkaMessageKey`| `VertxKafkaConstants.MESSAGE_KEY`|`String`|
Explicitly specify the message key, if partition ID is not specified, this will
trigger the messages to go into the same partition.
-|`CamelVertxKafkaTopic`| `VertxKafkaConstants.TOPIC`|`String`| Explicitly
specify the topic to where produce the messages, this will be *preserved* in
case of header aggregation.
-|`CamelVertxKafkaOverrideTopic`|
`VertxKafkaConstants.OVERRIDE_TOPIC`|`String`| Explicitly specify the topic to
where produce the messages, this will *not be preserved* in case of header
aggregation and it will take *precedence* over `CamelVertxKafkaTopic`.
-|=======================================================================
-
-If you want to send a message to a dynamic topic then use
`VertxKafkaConstants.OVERRIDE_TOPIC` as its used as a one-time header
-that are not send along the message, as its removed in the producer.
-
-=== Message headers set by the component producer
-After the message is sent to Kafka, the following headers are available
-
-[width="100%",cols="10%,10%,10%,70%",options="header",]
-|=======================================================================
-|Header |Variable Name |Type |Description
-
-|`CamelVertxKafkaRecordMetadata`|
`VertxKafkaConstants.RECORD_METADATA`|`List<io.vertx.kafka.client.producer.RecordMetadata>`|
Produced record metadata.
-|=======================================================================
-
-=== Message body type
-Currently, the component supports the following value serializers for the body
message on the producer side:
-
-* `org.apache.kafka.common.serialization.StringSerializer`: *Default* produce
the message as `String`.
-* `org.apache.kafka.common.serialization.ByteArraySerializer`: Produce the
messages as `byte[]`.
-* `org.apache.kafka.common.serialization.ByteBufferSerializer` : Produce the
messages as `ByteBuffer`.
-
-On the consumer side, Camel will utilize Camel TypeConverter to automatically
convert the messages, or you can specify the marshal/unmarshal mechanism in the
route.
-
-=== Kafka Headers propagation
-
-When consuming messages from Kafka, Kafka record headers will be propagated to
camel exchange headers automatically.
-Producing flow backed by same behaviour - camel headers of particular exchange
will be propagated to kafka message headers.
-
-Since vertx kafka headers allows only `io.vertx.core.buffer.Buffer` values, in
order camel exchnage header to be propagated its value should be serialized to
`io.vertx.core.buffer.Buffer` in case the type is not supported by the
component, e.g `Float`,
-otherwise header will be skipped.
-
-Following header value types are supported when producing the message *from*
camel *to* kafka: `String`, `Integer`, `Long`, `Double`, `Boolean`, `byte[]`,
`io.vertx.core.buffer.Buffer`.
-
-Note: all headers propagated *from* kafka *to* camel exchange will contain
`io.vertx.core.buffer.Buffer` value by default.
-
-Having the support of `io.vertx.core.buffer.Buffer` header type, will allow
you un-wrap the header to any type without much knowledge in `byte[]`. For
example:
-```
-from("direct")
- .process(exchange -> {
- // set kafka header
- exchange.getIn().setHeader("MyHeader", 2.0);
- exchange.getIn().setBody("test event");
-})
-.to("vertx-kafka:test_topic?bootstrapServers=kafka9092")
-```
-Then later:
-```
-from("vertx-kafka:test_topic?bootstrapServers=kafka9092")
- .process(exchange -> {
- // get our kafka header
- Buffer headerBuffer = exchange.getIn().getHeader("MyHeader");
- System.out.println(headerBuffer.getDouble(0); // it will print 2.0
-})
-.to("direct)
-```
-
-By default all headers are being filtered by `KafkaHeaderFilterStrategy`.
-Strategy filters out headers which start with `Camel` or `org.apache.camel`
prefixes.
-
-=== Consumer Example
-Here is the minimal route you need in order to read messages from Kafka.
-
-[source,java]
-----
-from("vertx-kafka:test?bootstrapServers=localhost:9092")
- .log("Message received from Kafka : ${body}")
- .log(" on the topic ${headers[VertxKafkaConstants.TOPIC]}")
- .log(" on the partition ${headers[VertxKafkaConstants.PARTITION_ID]}")
- .log(" with the offset ${headers[VertxKafkaConstants.OFFSET]}")
- .log(" with the key ${headers[VertxKafkaConstants.MESSAGE_KEY]}")
-----
-
-If you need to consume messages from multiple topics you can use a comma
separated list of topic names
-
-[source,java]
-----
-from("vertx-kafka:test1,test2?bootstrapServers=localhost:9092")
- .log("Message received from Kafka : ${body}")
- .log(" on the topic ${headers[VertxKafkaConstants.TOPIC]}")
- .log(" on the partition ${headers[VertxKafkaConstants.PARTITION_ID]}")
- .log(" with the offset ${headers[VertxKafkaConstants.OFFSET]}")
- .log(" with the key ${headers[VertxKafkaConstants.MESSAGE_KEY]}")
-----
-
-=== Producer Example
-
-Here is the minimal route you need in order to write messages to Kafka.
-
-```
-from("direct")
- .process(exchange -> {
- // set kafka header
- exchange.getIn().setHeader("MyHeader", 2.0);
- // set message key
- exchange.getIn().setHeader(VertxKafkaConstants.MESSAGE_KEY, "123456");
- // set message body
- exchange.getIn().setBody("test event");
-})
-.to("vertx-kafka:test_topic?bootstrapServers=kafka9092")
-```
-
-Also, the component supports as well *aggregation* of messages by sending
events as *iterable* of either Exchanges/Messages or normal data (e.g: list of
Strings). For example:
-```
-from("direct:start")
-.process(exchange -> {
- final List<String> messages = new LinkedList<>();
- messages.add("Test String Message 1");
- messages.add("Test String Message 2");
- // send our messages to partition 0
- exchange.getIn().setHeader(VertxKafkaConstants.PARTITION_ID, 0);
- // set message body
- exchange.getIn().setBody(messages);
-})
-.to("vertx-kafka:test_topic?bootstrapServers=kafka9092")
-```
-
-
-include::camel-spring-boot::page$vertx-kafka-starter.adoc[]
diff --git a/docs/components/modules/ROOT/nav.adoc
b/docs/components/modules/ROOT/nav.adoc
index 4104888..406ed2b 100644
--- a/docs/components/modules/ROOT/nav.adoc
+++ b/docs/components/modules/ROOT/nav.adoc
@@ -337,6 +337,7 @@
** xref:velocity-component.adoc[Velocity]
** xref:vertx-component.adoc[Vert.x]
** xref:vertx-http-component.adoc[Vert.x HTTP Client]
+** xref:vertx-kafka-component.adoc[Vert.x Kafka]
** xref:vertx-websocket-component.adoc[Vert.x WebSocket]
** xref:vm-component.adoc[VM]
** xref:weather-component.adoc[Weather]
diff --git a/docs/components/modules/ROOT/pages/github-component.adoc
b/docs/components/modules/ROOT/pages/github-component.adoc
index 8b92578..cb9bee6 100644
--- a/docs/components/modules/ROOT/pages/github-component.adoc
+++ b/docs/components/modules/ROOT/pages/github-component.adoc
@@ -51,10 +51,6 @@ for this component:
github://endpoint[?options]
---------------------------
-== Mandatory Options:
-
-Note that these can be configured directly through the endpoint.
-
// component options: START
The GitHub component supports 4 options, which are listed below.
@@ -130,8 +126,17 @@ with the following path and query parameters:
|===
// endpoint options: END
+== Configuring authentication
+
+The github component requires to be configured with an authentication token on
either the component or endpoint level.
+For example to set it on the component:
+[source,java]
+----
+GitHubComponent ghc = context.getComponent("github", GitHubComponent.class);
+ghc.setOauthToken("mytoken");
+----
== Consumer Endpoints: