This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot.git


The following commit(s) were added to refs/heads/main by this push:
     new 3a2c73dfea8 Regen
3a2c73dfea8 is described below

commit 3a2c73dfea8d409e48c5e77f145e476d0e819f8c
Author: Claus Ibsen <[email protected]>
AuthorDate: Mon Oct 5 22:01:49 2026 +0200

    Regen
---
 .../catalog/components/langchain4j-ingest.json     | 62 +++++++++---------
 .../camel/springboot/catalog/components/vertx.json |  2 +-
 .../src/main/docs/langchain4j-ingest.json          | 19 +++++-
 .../LangChain4jIngestComponentConfiguration.java   | 73 ++++++++++++++++++----
 .../camel-vertx-starter/src/main/docs/vertx.json   |  4 +-
 .../springboot/VertxComponentConfiguration.java    |  4 +-
 .../vertx/springboot/VertxComponentConverter.java  |  2 +-
 .../ROOT/pages/starters/langchain4j-ingest.adoc    | 10 +--
 .../modules/ROOT/pages/starters/vertx.adoc         |  2 +-
 9 files changed, 122 insertions(+), 56 deletions(-)

diff --git 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/langchain4j-ingest.json
 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/langchain4j-ingest.json
index e422028aa8f..a4f5aab2c2b 100644
--- 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/langchain4j-ingest.json
+++ 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/langchain4j-ingest.json
@@ -25,40 +25,44 @@
   },
   "componentProperties": {
     "configuration": { "index": 0, "kind": "property", "displayName": 
"Configuration", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"deprecated": false, "autowired": false, "secret": false, "description": "The 
configuration." },
-    "documentIdHeader": { "index": 1, "kind": "property", "displayName": 
"Document Id Header", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": 
"CamelLangChain4jIngestDocumentId", "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "Name of the header 
carrying [...]
-    "embeddingBatchSize": { "index": 2, "kind": "property", "displayName": 
"Embedding Batch Size", "group": "producer", "label": "", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 32, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "How many segments are 
embedded per request to the embedding model.  [...]
-    "embeddingModel": { "index": 3, "kind": "property", "displayName": 
"Embedding Model", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": "dev.langchain4j.model.embedding.EmbeddingModel", 
"deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "The EmbeddingModel to 
embed segm [...]
-    "embeddingStore": { "index": 4, "kind": "property", "displayName": 
"Embedding Store", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": 
"dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>",
 "deprecated": false, "deprecationNote": "", "autowired": true, "secret": 
false, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "descr [...]
-    "lazyStartProducer": { "index": 5, "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 [...]
-    "maxOverlapSize": { "index": 6, "kind": "property", "displayName": "Max 
Overlap Size", "group": "producer", "label": "", "required": false, "type": 
"integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 50, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "How much of the previous 
segment each segment repeats, in characters. Overl [...]
-    "maxSegmentSize": { "index": 7, "kind": "property", "displayName": "Max 
Segment Size", "group": "producer", "label": "", "required": false, "type": 
"integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 500, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "Maximum size of one 
segment, in characters." },
-    "autowiredEnabled": { "index": 8, "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 t [...]
-    "documentSplitter": { "index": 9, "kind": "property", "displayName": 
"Document Splitter", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"dev.langchain4j.data.document.DocumentSplitter", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "The DocumentSplitter 
deciding how a docume [...]
-    "idempotentRepository": { "index": 10, "kind": "property", "displayName": 
"Idempotent Repository", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.spi.IdempotentRepository", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "The IdempotentRepository 
remembering a [...]
-    "maxDocumentSize": { "index": 11, "kind": "property", "displayName": "Max 
Document Size", "group": "advanced", "label": "advanced", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 0, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "Maximum size of one 
document in characters, applied to the text a [...]
-    "documentFilter": { "index": 12, "kind": "property", "displayName": 
"Document Filter", "group": "filter", "label": "filter", "required": false, 
"type": "object", "javaType": "org.apache.camel.Predicate", "deprecated": 
false, "autowired": false, "secret": false, "supportSimpleExpression": true, 
"configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "A Predicate deciding 
whether a deliv [...]
-    "excludeId": { "index": 13, "kind": "property", "displayName": "Exclude 
Id", "group": "filter", "label": "filter", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "Comma-separated list of 
Ant-style patterns for document ids to skip. Exclusion wins over  [...]
-    "includeId": { "index": 14, "kind": "property", "displayName": "Include 
Id", "group": "filter", "label": "filter", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "Comma-separated list of 
Ant-style patterns the document id must match to be ingested. A n [...]
-    "minDocumentSize": { "index": 15, "kind": "property", "displayName": "Min 
Document Size", "group": "filter", "label": "filter", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 0, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "Minimum size of one 
document in characters; 0, the default, means no  [...]
+    "contentType": { "index": 1, "kind": "property", "displayName": "Content 
Type", "group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "MIME type of a media 
body, such as audio\/wav or image\/png, handed to the embedding model [...]
+    "documentIdHeader": { "index": 2, "kind": "property", "displayName": 
"Document Id Header", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": 
"CamelLangChain4jIngestDocumentId", "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "Name of the header 
carrying [...]
+    "embeddingBatchSize": { "index": 3, "kind": "property", "displayName": 
"Embedding Batch Size", "group": "producer", "label": "", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 32, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "How many segments are 
embedded per request to the embedding model.  [...]
+    "embeddingModel": { "index": 4, "kind": "property", "displayName": 
"Embedding Model", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": "dev.langchain4j.model.embedding.EmbeddingModel", 
"deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "The EmbeddingModel to 
embed segm [...]
+    "embeddingStore": { "index": 5, "kind": "property", "displayName": 
"Embedding Store", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": 
"dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>",
 "deprecated": false, "deprecationNote": "", "autowired": true, "secret": 
false, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "descr [...]
+    "lazyStartProducer": { "index": 6, "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 [...]
+    "maxOverlapSize": { "index": 7, "kind": "property", "displayName": "Max 
Overlap Size", "group": "producer", "label": "", "required": false, "type": 
"integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 50, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "How much of the previous 
segment each segment repeats, in characters. Overl [...]
+    "maxSegmentSize": { "index": 8, "kind": "property", "displayName": "Max 
Segment Size", "group": "producer", "label": "", "required": false, "type": 
"integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 500, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "Maximum size of one 
segment, in characters." },
+    "modality": { "index": 9, "kind": "property", "displayName": "Modality", 
"group": "producer", "label": "", "required": false, "type": "enum", 
"javaType": "org.apache.camel.component.langchain4j.ingest.IngestModality", 
"enum": [ "TEXT", "MEDIA" ], "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": "TEXT", "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "Wh [...]
+    "autowiredEnabled": { "index": 10, "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  [...]
+    "documentSplitter": { "index": 11, "kind": "property", "displayName": 
"Document Splitter", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"dev.langchain4j.data.document.DocumentSplitter", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "The DocumentSplitter 
deciding how a docum [...]
+    "idempotentRepository": { "index": 12, "kind": "property", "displayName": 
"Idempotent Repository", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.spi.IdempotentRepository", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "The IdempotentRepository 
remembering a [...]
+    "maxDocumentSize": { "index": 13, "kind": "property", "displayName": "Max 
Document Size", "group": "advanced", "label": "advanced", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 0, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "Maximum size of one 
document: characters of the text about to be  [...]
+    "documentFilter": { "index": 14, "kind": "property", "displayName": 
"Document Filter", "group": "filter", "label": "filter", "required": false, 
"type": "object", "javaType": "org.apache.camel.Predicate", "deprecated": 
false, "autowired": false, "secret": false, "supportSimpleExpression": true, 
"configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "A Predicate deciding 
whether a deliv [...]
+    "excludeId": { "index": 15, "kind": "property", "displayName": "Exclude 
Id", "group": "filter", "label": "filter", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "Comma-separated list of 
Ant-style patterns for document ids to skip. Exclusion wins over  [...]
+    "includeId": { "index": 16, "kind": "property", "displayName": "Include 
Id", "group": "filter", "label": "filter", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "Comma-separated list of 
Ant-style patterns the document id must match to be ingested. A n [...]
+    "minDocumentSize": { "index": 17, "kind": "property", "displayName": "Min 
Document Size", "group": "filter", "label": "filter", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 0, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "Minimum size of one 
document in characters (bytes with modality=media [...]
   },
   "headers": {
     "CamelLangChain4jIngestDocumentId": { "index": 0, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The stable document id of the ingested 
payload, read when the documentIdHeader endpoint option does not name another 
header. The CamelLangChain4jIngestDocumentId exchange property, when set, takes 
precedence over any header.", "c [...]
   },
   "properties": {
     "pipelineName": { "index": 0, "kind": "path", "displayName": "Pipeline 
Name", "group": "producer", "label": "", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The pipeline name, stamped 
on every written segment as the camel_ingest_pipeline metadata and used in 
error messages" },
-    "documentIdHeader": { "index": 1, "kind": "parameter", "displayName": 
"Document Id Header", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": 
"CamelLangChain4jIngestDocumentId", "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "Name of the header 
carryin [...]
-    "embeddingBatchSize": { "index": 2, "kind": "parameter", "displayName": 
"Embedding Batch Size", "group": "producer", "label": "", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 32, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "How many segments are 
embedded per request to the embedding model. [...]
-    "embeddingModel": { "index": 3, "kind": "parameter", "displayName": 
"Embedding Model", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": "dev.langchain4j.model.embedding.EmbeddingModel", 
"deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "The EmbeddingModel to 
embed seg [...]
-    "embeddingStore": { "index": 4, "kind": "parameter", "displayName": 
"Embedding Store", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": 
"dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>",
 "deprecated": false, "deprecationNote": "", "autowired": true, "secret": 
false, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "desc [...]
-    "maxOverlapSize": { "index": 5, "kind": "parameter", "displayName": "Max 
Overlap Size", "group": "producer", "label": "", "required": false, "type": 
"integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 50, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "How much of the previous 
segment each segment repeats, in characters. Over [...]
-    "maxSegmentSize": { "index": 6, "kind": "parameter", "displayName": "Max 
Segment Size", "group": "producer", "label": "", "required": false, "type": 
"integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 500, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "Maximum size of one 
segment, in characters." },
-    "lazyStartProducer": { "index": 7, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "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 produc [...]
-    "documentSplitter": { "index": 8, "kind": "parameter", "displayName": 
"Document Splitter", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"dev.langchain4j.data.document.DocumentSplitter", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "The DocumentSplitter 
deciding how a docum [...]
-    "idempotentRepository": { "index": 9, "kind": "parameter", "displayName": 
"Idempotent Repository", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.spi.IdempotentRepository", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "The IdempotentRepository 
remembering a [...]
-    "maxDocumentSize": { "index": 10, "kind": "parameter", "displayName": "Max 
Document Size", "group": "advanced", "label": "advanced", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 0, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "Maximum size of one 
document in characters, applied to the text  [...]
-    "documentFilter": { "index": 11, "kind": "parameter", "displayName": 
"Document Filter", "group": "filter", "label": "filter", "required": false, 
"type": "object", "javaType": "org.apache.camel.Predicate", "deprecated": 
false, "autowired": false, "secret": false, "supportSimpleExpression": true, 
"configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "A Predicate deciding 
whether a deli [...]
-    "excludeId": { "index": 12, "kind": "parameter", "displayName": "Exclude 
Id", "group": "filter", "label": "filter", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "Comma-separated list of 
Ant-style patterns for document ids to skip. Exclusion wins over [...]
-    "includeId": { "index": 13, "kind": "parameter", "displayName": "Include 
Id", "group": "filter", "label": "filter", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "Comma-separated list of 
Ant-style patterns the document id must match to be ingested. A  [...]
-    "minDocumentSize": { "index": 14, "kind": "parameter", "displayName": "Min 
Document Size", "group": "filter", "label": "filter", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 0, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "Minimum size of one 
document in characters; 0, the default, means no [...]
+    "contentType": { "index": 1, "kind": "parameter", "displayName": "Content 
Type", "group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "MIME type of a media 
body, such as audio\/wav or image\/png, handed to the embedding mode [...]
+    "documentIdHeader": { "index": 2, "kind": "parameter", "displayName": 
"Document Id Header", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": 
"CamelLangChain4jIngestDocumentId", "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "Name of the header 
carryin [...]
+    "embeddingBatchSize": { "index": 3, "kind": "parameter", "displayName": 
"Embedding Batch Size", "group": "producer", "label": "", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 32, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "How many segments are 
embedded per request to the embedding model. [...]
+    "embeddingModel": { "index": 4, "kind": "parameter", "displayName": 
"Embedding Model", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": "dev.langchain4j.model.embedding.EmbeddingModel", 
"deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "The EmbeddingModel to 
embed seg [...]
+    "embeddingStore": { "index": 5, "kind": "parameter", "displayName": 
"Embedding Store", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": 
"dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>",
 "deprecated": false, "deprecationNote": "", "autowired": true, "secret": 
false, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "desc [...]
+    "maxOverlapSize": { "index": 6, "kind": "parameter", "displayName": "Max 
Overlap Size", "group": "producer", "label": "", "required": false, "type": 
"integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 50, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "How much of the previous 
segment each segment repeats, in characters. Over [...]
+    "maxSegmentSize": { "index": 7, "kind": "parameter", "displayName": "Max 
Segment Size", "group": "producer", "label": "", "required": false, "type": 
"integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 500, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "Maximum size of one 
segment, in characters." },
+    "modality": { "index": 8, "kind": "parameter", "displayName": "Modality", 
"group": "producer", "label": "", "required": false, "type": "enum", 
"javaType": "org.apache.camel.component.langchain4j.ingest.IngestModality", 
"enum": [ "TEXT", "MEDIA" ], "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": "TEXT", "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "W [...]
+    "lazyStartProducer": { "index": 9, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "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 produc [...]
+    "documentSplitter": { "index": 10, "kind": "parameter", "displayName": 
"Document Splitter", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"dev.langchain4j.data.document.DocumentSplitter", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "The DocumentSplitter 
deciding how a docu [...]
+    "idempotentRepository": { "index": 11, "kind": "parameter", "displayName": 
"Idempotent Repository", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.spi.IdempotentRepository", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "The IdempotentRepository 
remembering  [...]
+    "maxDocumentSize": { "index": 12, "kind": "parameter", "displayName": "Max 
Document Size", "group": "advanced", "label": "advanced", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 0, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "Maximum size of one 
document: characters of the text about to be [...]
+    "documentFilter": { "index": 13, "kind": "parameter", "displayName": 
"Document Filter", "group": "filter", "label": "filter", "required": false, 
"type": "object", "javaType": "org.apache.camel.Predicate", "deprecated": 
false, "autowired": false, "secret": false, "supportSimpleExpression": true, 
"configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "A Predicate deciding 
whether a deli [...]
+    "excludeId": { "index": 14, "kind": "parameter", "displayName": "Exclude 
Id", "group": "filter", "label": "filter", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "Comma-separated list of 
Ant-style patterns for document ids to skip. Exclusion wins over [...]
+    "includeId": { "index": 15, "kind": "parameter", "displayName": "Include 
Id", "group": "filter", "label": "filter", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "Comma-separated list of 
Ant-style patterns the document id must match to be ingested. A  [...]
+    "minDocumentSize": { "index": 16, "kind": "parameter", "displayName": "Min 
Document Size", "group": "filter", "label": "filter", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 0, "configurationClass": 
"org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration", 
"configurationField": "configuration", "description": "Minimum size of one 
document in characters (bytes with modality=medi [...]
   }
 }
diff --git 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/vertx.json
 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/vertx.json
index 3997a37ae67..6a68532eada 100644
--- 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/vertx.json
+++ 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/vertx.json
@@ -32,7 +32,7 @@
     "bridgeErrorHandler": { "index": 5, "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 (if possible) occurred while the Camel consumer is trying 
to pickup incoming messages, or the like [...]
     "lazyStartProducer": { "index": 6, "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 [...]
     "autowiredEnabled": { "index": 7, "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 t [...]
-    "vertxFactory": { "index": 8, "kind": "property", "displayName": "Vertx 
Factory", "group": "advanced", "label": "advanced", "required": false, "type": 
"object", "javaType": "io.vertx.core.impl.VertxBuilder", "deprecated": false, 
"autowired": false, "secret": false, "description": "To use a custom 
VertxFactory implementation" }
+    "vertxFactory": { "index": 8, "kind": "property", "displayName": "Vertx 
Factory", "group": "advanced", "label": "advanced", "required": false, "type": 
"object", "javaType": "io.vertx.core.VertxBuilder", "deprecated": false, 
"autowired": false, "secret": false, "description": "To use a custom 
VertxFactory implementation" }
   },
   "properties": {
     "address": { "index": 0, "kind": "path", "displayName": "Address", 
"group": "common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Sets the event bus address used to 
communicate" },
diff --git 
a/components-starter/camel-langchain4j-ingest-starter/src/main/docs/langchain4j-ingest.json
 
b/components-starter/camel-langchain4j-ingest-starter/src/main/docs/langchain4j-ingest.json
index 1dec7112e12..9e60887a1bd 100644
--- 
a/components-starter/camel-langchain4j-ingest-starter/src/main/docs/langchain4j-ingest.json
+++ 
b/components-starter/camel-langchain4j-ingest-starter/src/main/docs/langchain4j-ingest.json
@@ -26,6 +26,12 @@
       "description": "The configuration. The option is a 
org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration 
type.",
       "sourceType": 
"org.apache.camel.component.langchain4j.ingest.springboot.LangChain4jIngestComponentConfiguration"
     },
+    {
+      "name": "camel.component.langchain4j-ingest.content-type",
+      "type": "java.lang.String",
+      "description": "MIME type of a media body, such as audio\/wav or 
image\/png, handed to the embedding model; matched case-insensitively, 
parameters after a semicolon are dropped. When not set, it is derived from the 
document id's file extension through Camel's own MIME table (the x- audio 
variants rewritten to their registered form): wav, mp3, flac, ogg, opus, m4a, 
aac, aiff, png, jpg, gif, webp, mp4, mov, webm (video), pdf and every other 
extension the table knows. A document whose [...]
+      "sourceType": 
"org.apache.camel.component.langchain4j.ingest.springboot.LangChain4jIngestComponentConfiguration"
+    },
     {
       "name": "camel.component.langchain4j-ingest.customizer.enabled",
       "type": "java.lang.Boolean",
@@ -34,7 +40,7 @@
     {
       "name": "camel.component.langchain4j-ingest.document-filter",
       "type": "org.apache.camel.Predicate",
-      "description": "A Predicate deciding whether a delivery is ingested, 
referenced as #bean:name and evaluated with the message body available. A 
rejected delivery is answered with a filtered result and releases its dedup 
claim. Runs after the id patterns and after the dedup claim, so a duplicate is 
answered skipped without the filter being evaluated. Not looked up by type on 
purpose - an application may hold unrelated predicates. The option is a 
org.apache.camel.Predicate type.",
+      "description": "A Predicate deciding whether a delivery is ingested, 
referenced as #bean:name and evaluated with the message body available. A 
rejected delivery is answered with a filtered result and releases its dedup 
claim. Runs after the id patterns and after the dedup claim, so a duplicate is 
answered skipped without the filter being evaluated. The body is still as the 
consumer delivered it, a file or stream say, not yet read as text or bytes. Not 
looked up by type on purpose - [...]
       "sourceType": 
"org.apache.camel.component.langchain4j.ingest.springboot.LangChain4jIngestComponentConfiguration"
     },
     {
@@ -103,7 +109,7 @@
     {
       "name": "camel.component.langchain4j-ingest.max-document-size",
       "type": "java.lang.Integer",
-      "description": "Maximum size of one document in characters, applied to 
the text about to be split; 0, the default, means no limit. The pipeline holds 
a document in memory whole, so the cap is the protection against oversized - on 
a consumer-fed pipeline, attacker-sized - payloads. An oversized document fails 
the exchange cleanly and, with a repository configured, releases its dedup 
claim.",
+      "description": "Maximum size of one document: characters of the text 
about to be split, or bytes of a media body with modality=media; 0, the 
default, means no limit. The pipeline holds a document in memory whole, so the 
cap is the protection against oversized - on a consumer-fed pipeline, 
attacker-sized - payloads. An oversized document fails the exchange cleanly 
and, with a repository configured, releases its dedup claim. With 
modality=media the size a file consumer announces in C [...]
       "sourceType": 
"org.apache.camel.component.langchain4j.ingest.springboot.LangChain4jIngestComponentConfiguration",
       "defaultValue": 0
     },
@@ -124,9 +130,16 @@
     {
       "name": "camel.component.langchain4j-ingest.min-document-size",
       "type": "java.lang.Integer",
-      "description": "Minimum size of one document in characters; 0, the 
default, means no minimum. A shorter document - boilerplate too small to carry 
retrievable content - is answered with a filtered result instead of being 
written, and releases its dedup claim like a blank one.",
+      "description": "Minimum size of one document in characters (bytes with 
modality=media); 0, the default, means no minimum. A shorter document - 
boilerplate too small to carry retrievable content - is answered with a 
filtered result instead of being written, and releases its dedup claim like a 
blank one.",
       "sourceType": 
"org.apache.camel.component.langchain4j.ingest.springboot.LangChain4jIngestComponentConfiguration",
       "defaultValue": 0
+    },
+    {
+      "name": "camel.component.langchain4j-ingest.modality",
+      "type": "org.apache.camel.component.langchain4j.ingest.IngestModality",
+      "description": "What the message body is. text, the default, is read as 
a String, split into segments and embedded segment by segment. media is read as 
bytes and embedded whole, as one vector: audio, an image, video or a PDF, told 
apart by the MIME type, each needing an embedding model whose 
supportedContentTypes() include the matching type - the endpoint refuses to 
start with a text-only model. In media mode the splitter options and 
embeddingBatchSize do not apply, documentSplitte [...]
+      "sourceType": 
"org.apache.camel.component.langchain4j.ingest.springboot.LangChain4jIngestComponentConfiguration",
+      "defaultValue": "text"
     }
   ],
   "hints": [],
diff --git 
a/components-starter/camel-langchain4j-ingest-starter/src/main/java/org/apache/camel/component/langchain4j/ingest/springboot/LangChain4jIngestComponentConfiguration.java
 
b/components-starter/camel-langchain4j-ingest-starter/src/main/java/org/apache/camel/component/langchain4j/ingest/springboot/LangChain4jIngestComponentConfiguration.java
index cbff5f998b9..8da6d1babd3 100644
--- 
a/components-starter/camel-langchain4j-ingest-starter/src/main/java/org/apache/camel/component/langchain4j/ingest/springboot/LangChain4jIngestComponentConfiguration.java
+++ 
b/components-starter/camel-langchain4j-ingest-starter/src/main/java/org/apache/camel/component/langchain4j/ingest/springboot/LangChain4jIngestComponentConfiguration.java
@@ -21,6 +21,8 @@ import dev.langchain4j.data.segment.TextSegment;
 import dev.langchain4j.model.embedding.EmbeddingModel;
 import dev.langchain4j.store.embedding.EmbeddingStore;
 import org.apache.camel.Predicate;
+import org.apache.camel.component.langchain4j.ingest.IngestModality;
+import 
org.apache.camel.component.langchain4j.ingest.LangChain4jIngestComponent;
 import 
org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration;
 import org.apache.camel.spi.IdempotentRepository;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
@@ -47,6 +49,21 @@ public class LangChain4jIngestComponentConfiguration
      * 
org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration 
type.
      */
     private LangChain4jIngestConfiguration configuration;
+    /**
+     * MIME type of a media body, such as audio/wav or image/png, handed to the
+     * embedding model; matched case-insensitively, parameters after a 
semicolon
+     * are dropped. When not set, it is derived from the document id's file
+     * extension through Camel's own MIME table (the x- audio variants 
rewritten
+     * to their registered form): wav, mp3, flac, ogg, opus, m4a, aac, aiff,
+     * png, jpg, gif, webp, mp4, mov, webm (video), pdf and every other
+     * extension the table knows. A document whose type cannot be determined,
+     * whose type is no medium (text/plain, say), or whose medium the model 
does
+     * not declare, fails the exchange before its dedup claim and before its
+     * body is read. Only valid with modality=media - with modality=text the
+     * endpoint refuses to start, the option being a sign that modality=media
+     * was forgotten.
+     */
+    private String contentType;
     /**
      * Name of the header carrying the document id, such as CamelAwsS3Key for 
an
      * S3 consumer or CamelKafkaKey for a Kafka one. The
@@ -99,6 +116,17 @@ public class LangChain4jIngestComponentConfiguration
      * Maximum size of one segment, in characters.
      */
     private Integer maxSegmentSize = 500;
+    /**
+     * What the message body is. text, the default, is read as a String, split
+     * into segments and embedded segment by segment. media is read as bytes 
and
+     * embedded whole, as one vector: audio, an image, video or a PDF, told
+     * apart by the MIME type, each needing an embedding model whose
+     * supportedContentTypes() include the matching type - the endpoint refuses
+     * to start with a text-only model. In media mode the splitter options and
+     * embeddingBatchSize do not apply, documentSplitter must not be set, and
+     * maxDocumentSize and minDocumentSize count bytes.
+     */
+    private IngestModality modality = IngestModality.TEXT;
     /**
      * Whether autowiring is enabled. This is used for automatic autowiring
      * options (the option must be marked as autowired) by looking up in the
@@ -137,12 +165,14 @@ public class LangChain4jIngestComponentConfiguration
      */
     private IdempotentRepository idempotentRepository;
     /**
-     * Maximum size of one document in characters, applied to the text about to
-     * be split; 0, the default, means no limit. The pipeline holds a document
-     * in memory whole, so the cap is the protection against oversized - on a
-     * consumer-fed pipeline, attacker-sized - payloads. An oversized document
-     * fails the exchange cleanly and, with a repository configured, releases
-     * its dedup claim.
+     * Maximum size of one document: characters of the text about to be split,
+     * or bytes of a media body with modality=media; 0, the default, means no
+     * limit. The pipeline holds a document in memory whole, so the cap is the
+     * protection against oversized - on a consumer-fed pipeline, 
attacker-sized
+     * - payloads. An oversized document fails the exchange cleanly and, with a
+     * repository configured, releases its dedup claim. With modality=media the
+     * size a file consumer announces in CamelFileLength is checked before the
+     * body is read.
      */
     private Integer maxDocumentSize = 0;
     /**
@@ -150,9 +180,10 @@ public class LangChain4jIngestComponentConfiguration
      * #bean:name and evaluated with the message body available. A rejected
      * delivery is answered with a filtered result and releases its dedup 
claim.
      * Runs after the id patterns and after the dedup claim, so a duplicate is
-     * answered skipped without the filter being evaluated. Not looked up by
-     * type on purpose - an application may hold unrelated predicates. The
-     * option is a org.apache.camel.Predicate type.
+     * answered skipped without the filter being evaluated. The body is still 
as
+     * the consumer delivered it, a file or stream say, not yet read as text or
+     * bytes. Not looked up by type on purpose - an application may hold
+     * unrelated predicates. The option is a org.apache.camel.Predicate type.
      */
     private Predicate documentFilter;
     /**
@@ -175,10 +206,10 @@ public class LangChain4jIngestComponentConfiguration
      */
     private String includeId;
     /**
-     * Minimum size of one document in characters; 0, the default, means no
-     * minimum. A shorter document - boilerplate too small to carry retrievable
-     * content - is answered with a filtered result instead of being written,
-     * and releases its dedup claim like a blank one.
+     * Minimum size of one document in characters (bytes with modality=media);
+     * 0, the default, means no minimum. A shorter document - boilerplate too
+     * small to carry retrievable content - is answered with a filtered result
+     * instead of being written, and releases its dedup claim like a blank one.
      */
     private Integer minDocumentSize = 0;
 
@@ -190,6 +221,14 @@ public class LangChain4jIngestComponentConfiguration
         this.configuration = configuration;
     }
 
+    public String getContentType() {
+        return contentType;
+    }
+
+    public void setContentType(String contentType) {
+        this.contentType = contentType;
+    }
+
     public String getDocumentIdHeader() {
         return documentIdHeader;
     }
@@ -246,6 +285,14 @@ public class LangChain4jIngestComponentConfiguration
         this.maxSegmentSize = maxSegmentSize;
     }
 
+    public IngestModality getModality() {
+        return modality;
+    }
+
+    public void setModality(IngestModality modality) {
+        this.modality = modality;
+    }
+
     public Boolean getAutowiredEnabled() {
         return autowiredEnabled;
     }
diff --git a/components-starter/camel-vertx-starter/src/main/docs/vertx.json 
b/components-starter/camel-vertx-starter/src/main/docs/vertx.json
index 563d45a65a7..8967e7b9f17 100644
--- a/components-starter/camel-vertx-starter/src/main/docs/vertx.json
+++ b/components-starter/camel-vertx-starter/src/main/docs/vertx.json
@@ -72,8 +72,8 @@
     },
     {
       "name": "camel.component.vertx.vertx-factory",
-      "type": "io.vertx.core.impl.VertxBuilder",
-      "description": "To use a custom VertxFactory implementation. The option 
is a io.vertx.core.impl.VertxBuilder type.",
+      "type": "io.vertx.core.VertxBuilder",
+      "description": "To use a custom VertxFactory implementation. The option 
is a io.vertx.core.VertxBuilder type.",
       "sourceType": 
"org.apache.camel.component.vertx.springboot.VertxComponentConfiguration"
     },
     {
diff --git 
a/components-starter/camel-vertx-starter/src/main/java/org/apache/camel/component/vertx/springboot/VertxComponentConfiguration.java
 
b/components-starter/camel-vertx-starter/src/main/java/org/apache/camel/component/vertx/springboot/VertxComponentConfiguration.java
index 6bbec92853b..2336716ecf2 100644
--- 
a/components-starter/camel-vertx-starter/src/main/java/org/apache/camel/component/vertx/springboot/VertxComponentConfiguration.java
+++ 
b/components-starter/camel-vertx-starter/src/main/java/org/apache/camel/component/vertx/springboot/VertxComponentConfiguration.java
@@ -17,8 +17,8 @@
 package org.apache.camel.component.vertx.springboot;
 
 import io.vertx.core.Vertx;
+import io.vertx.core.VertxBuilder;
 import io.vertx.core.VertxOptions;
-import io.vertx.core.impl.VertxBuilder;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
@@ -96,7 +96,7 @@ public class VertxComponentConfiguration
     private Boolean autowiredEnabled = true;
     /**
      * To use a custom VertxFactory implementation. The option is a
-     * io.vertx.core.impl.VertxBuilder type.
+     * io.vertx.core.VertxBuilder type.
      */
     private VertxBuilder vertxFactory;
 
diff --git 
a/components-starter/camel-vertx-starter/src/main/java/org/apache/camel/component/vertx/springboot/VertxComponentConverter.java
 
b/components-starter/camel-vertx-starter/src/main/java/org/apache/camel/component/vertx/springboot/VertxComponentConverter.java
index 271cc50a099..f981adc8528 100644
--- 
a/components-starter/camel-vertx-starter/src/main/java/org/apache/camel/component/vertx/springboot/VertxComponentConverter.java
+++ 
b/components-starter/camel-vertx-starter/src/main/java/org/apache/camel/component/vertx/springboot/VertxComponentConverter.java
@@ -42,7 +42,7 @@ public class VertxComponentConverter implements 
GenericConverter {
         Set<ConvertiblePair> answer = new LinkedHashSet<>();
         answer.add(new ConvertiblePair(String.class, 
io.vertx.core.Vertx.class));
         answer.add(new ConvertiblePair(String.class, 
io.vertx.core.VertxOptions.class));
-        answer.add(new ConvertiblePair(String.class, 
io.vertx.core.impl.VertxBuilder.class));
+        answer.add(new ConvertiblePair(String.class, 
io.vertx.core.VertxBuilder.class));
         return answer;
     }
 
diff --git 
a/docs/spring-boot/modules/ROOT/pages/starters/langchain4j-ingest.adoc 
b/docs/spring-boot/modules/ROOT/pages/starters/langchain4j-ingest.adoc
index eb858dfe55a..d7340e82b44 100644
--- a/docs/spring-boot/modules/ROOT/pages/starters/langchain4j-ingest.adoc
+++ b/docs/spring-boot/modules/ROOT/pages/starters/langchain4j-ingest.adoc
@@ -23,14 +23,15 @@ Please refer to the above links for usage and configuration 
details.
 
 == Spring Boot Auto-Configuration
 
-The starter supports 17 options, which are listed below.
+The starter supports 19 options, which are listed below.
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
 | camel.component.langchain4j-ingest.autowired-enabled | 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
 | camel.component.langchain4j-ingest.configuration | The configuration. The 
option is a 
org.apache.camel.component.langchain4j.ingest.LangChain4jIngestConfiguration 
type. |  | LangChain4jIngestConfiguration
-| camel.component.langchain4j-ingest.document-filter | A Predicate deciding 
whether a delivery is ingested, referenced as #bean:name and evaluated with the 
message body available. A rejected delivery is answered with a filtered result 
and releases its dedup claim. Runs after the id patterns and after the dedup 
claim, so a duplicate is answered skipped without the filter being evaluated. 
Not looked up by type on purpose - an application may hold unrelated 
predicates. The option is a org.a [...]
+| camel.component.langchain4j-ingest.content-type | MIME type of a media body, 
such as audio/wav or image/png, handed to the embedding model; matched 
case-insensitively, parameters after a semicolon are dropped. When not set, it 
is derived from the document id's file extension through Camel's own MIME table 
(the x- audio variants rewritten to their registered form): wav, mp3, flac, 
ogg, opus, m4a, aac, aiff, png, jpg, gif, webp, mp4, mov, webm (video), pdf and 
every other extension the t [...]
+| camel.component.langchain4j-ingest.document-filter | A Predicate deciding 
whether a delivery is ingested, referenced as #bean:name and evaluated with the 
message body available. A rejected delivery is answered with a filtered result 
and releases its dedup claim. Runs after the id patterns and after the dedup 
claim, so a duplicate is answered skipped without the filter being evaluated. 
The body is still as the consumer delivered it, a file or stream say, not yet 
read as text or bytes. N [...]
 | camel.component.langchain4j-ingest.document-id-header | Name of the header 
carrying the document id, such as CamelAwsS3Key for an S3 consumer or 
CamelKafkaKey for a Kafka one. The CamelLangChain4jIngestDocumentId exchange 
property, when set, takes precedence - a route that parses documents captures 
the id into that property before the parse, so a document cannot forge its own 
identity. An exchange without an id fails. | CamelLangChain4jIngestDocumentId | 
String
 | camel.component.langchain4j-ingest.document-splitter | The DocumentSplitter 
deciding how a document becomes segments, referenced as #bean:name - 
LangChain4j ships alternatives beside the default recursive one. When set, 
maxSegmentSize and maxOverlapSize are ignored (they parameterize the default 
splitter only). Segments returned without the identity metadata are re-stamped, 
so a custom splitter cannot break citation. Not looked up by type on purpose - 
an application may hold unrelated  [...]
 | camel.component.langchain4j-ingest.embedding-batch-size | How many segments 
are embedded per request to the embedding model. Providers with generous 
per-request limits ingest large documents faster with a bigger batch; a batch 
carries at most embeddingBatchSize x maxSegmentSize characters, so tune the two 
together against the provider's token limits. | 32 | Integer
@@ -41,8 +42,9 @@ The starter supports 17 options, which are listed below.
 | camel.component.langchain4j-ingest.idempotent-repository | The 
IdempotentRepository remembering already ingested document ids, referenced as 
#bean:name. When set, a delivery whose id was already written is answered with 
a skipped result instead of being re-ingested: first write wins per id. A blank 
document releases its claim, so a later, populated delivery under the same id 
still ingests. The claim is eager: a duplicate racing an in-flight first 
delivery is answered skipped even if th [...]
 | camel.component.langchain4j-ingest.include-id | Comma-separated list of 
Ant-style patterns the document id must match to be ingested. A non-matching 
delivery is answered with a filtered result, before the dedup claim and without 
reading the body. When not set, every id is accepted. Matching is 
case-sensitive, and a pattern only matches an id that agrees with it on a 
leading path separator - an id derived from an absolute path needs a pattern 
starting with one. See the component documen [...]
 | camel.component.langchain4j-ingest.lazy-start-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 pro [...]
-| camel.component.langchain4j-ingest.max-document-size | Maximum size of one 
document in characters, applied to the text about to be split; 0, the default, 
means no limit. The pipeline holds a document in memory whole, so the cap is 
the protection against oversized - on a consumer-fed pipeline, attacker-sized - 
payloads. An oversized document fails the exchange cleanly and, with a 
repository configured, releases its dedup claim. | 0 | Integer
+| camel.component.langchain4j-ingest.max-document-size | Maximum size of one 
document: characters of the text about to be split, or bytes of a media body 
with modality=media; 0, the default, means no limit. The pipeline holds a 
document in memory whole, so the cap is the protection against oversized - on a 
consumer-fed pipeline, attacker-sized - payloads. An oversized document fails 
the exchange cleanly and, with a repository configured, releases its dedup 
claim. With modality=media the  [...]
 | camel.component.langchain4j-ingest.max-overlap-size | How much of the 
previous segment each segment repeats, in characters. Overlap keeps a sentence 
split across a boundary retrievable from either side. | 50 | Integer
 | camel.component.langchain4j-ingest.max-segment-size | Maximum size of one 
segment, in characters. | 500 | Integer
-| camel.component.langchain4j-ingest.min-document-size | Minimum size of one 
document in characters; 0, the default, means no minimum. A shorter document - 
boilerplate too small to carry retrievable content - is answered with a 
filtered result instead of being written, and releases its dedup claim like a 
blank one. | 0 | Integer
+| camel.component.langchain4j-ingest.min-document-size | Minimum size of one 
document in characters (bytes with modality=media); 0, the default, means no 
minimum. A shorter document - boilerplate too small to carry retrievable 
content - is answered with a filtered result instead of being written, and 
releases its dedup claim like a blank one. | 0 | Integer
+| camel.component.langchain4j-ingest.modality | What the message body is. 
text, the default, is read as a String, split into segments and embedded 
segment by segment. media is read as bytes and embedded whole, as one vector: 
audio, an image, video or a PDF, told apart by the MIME type, each needing an 
embedding model whose supportedContentTypes() include the matching type - the 
endpoint refuses to start with a text-only model. In media mode the splitter 
options and embeddingBatchSize do  [...]
 |===
diff --git a/docs/spring-boot/modules/ROOT/pages/starters/vertx.adoc 
b/docs/spring-boot/modules/ROOT/pages/starters/vertx.adoc
index edae99d245f..c950ffe98d8 100644
--- a/docs/spring-boot/modules/ROOT/pages/starters/vertx.adoc
+++ b/docs/spring-boot/modules/ROOT/pages/starters/vertx.adoc
@@ -36,6 +36,6 @@ The starter supports 10 options, which are listed below.
 | camel.component.vertx.port | Port for creating an embedded clustered 
EventBus |  | Integer
 | camel.component.vertx.timeout | Timeout in seconds to wait for clustered 
Vertx EventBus to be ready. The default value is 60. | 60 | Integer
 | camel.component.vertx.vertx | To use the given vertx EventBus instead of 
creating a new embedded EventBus. The option is a io.vertx.core.Vertx type. |  
| Vertx
-| camel.component.vertx.vertx-factory | To use a custom VertxFactory 
implementation. The option is a io.vertx.core.impl.VertxBuilder type. |  | 
VertxBuilder
+| camel.component.vertx.vertx-factory | To use a custom VertxFactory 
implementation. The option is a io.vertx.core.VertxBuilder type. |  | 
VertxBuilder
 | camel.component.vertx.vertx-options | Options to use for creating vertx. The 
option is a io.vertx.core.VertxOptions type. |  | VertxOptions
 |===

Reply via email to