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 7f84524b650 [create-pull-request] automated change (#1860)
7f84524b650 is described below
commit 7f84524b6504e04697ac18e643b05d7f5952804a
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Wed Jul 22 10:23:57 2026 +0200
[create-pull-request] automated change (#1860)
Co-authored-by: oscerd <[email protected]>
---
.../catalog/components/aws-security-hub.json | 3 +-
.../catalog/components/aws2-transcribe.json | 11 ++-
.../catalog/components/langchain4j-agent.json | 4 +-
.../springboot/catalog/components/openai.json | 80 ++++++++++---------
.../springboot/catalog/components/opensearch.json | 15 ++--
.../camel-core-starter/src/main/docs/core.json | 45 ++++++++---
.../Resilience4jConfigurationDefinitionCommon.java | 89 +++++++++++++++++-----
.../springboot/OpenAIComponentConfiguration.java | 3 +-
.../src/main/docs/opensearch.json | 6 ++
.../OpensearchComponentConfiguration.java | 15 ++++
.../springboot/OpensearchComponentConverter.java | 2 +
.../modules/ROOT/pages/starters/core.adoc | 15 ++--
.../modules/ROOT/pages/starters/openai.adoc | 2 +-
.../modules/ROOT/pages/starters/opensearch.adoc | 3 +-
14 files changed, 209 insertions(+), 84 deletions(-)
diff --git
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/aws-security-hub.json
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/aws-security-hub.json
index 94a0f2bce26..f1d1b2df65a 100644
---
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/aws-security-hub.json
+++
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/aws-security-hub.json
@@ -68,7 +68,8 @@
"CamelAwsSecurityHubUnprocessedFindings": { "index": 17, "kind": "header",
"displayName": "", "group": "batchUpdateFindings", "label":
"batchUpdateFindings", "required": false, "javaType":
"List<BatchUpdateFindingsUnprocessedFinding>", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
list of findings that were not updated", "constantName":
"org.apache.camel.component.aws.securityhub.SecurityHubConstants#UNPROCESSED_FINDINGS"
},
"CamelAwsSecurityHubProcessedFindings": { "index": 18, "kind": "header",
"displayName": "", "group": "batchUpdateFindings", "label":
"batchUpdateFindings", "required": false, "javaType":
"List<AwsSecurityFindingIdentifier>", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "The list of findings
that were updated successfully", "constantName":
"org.apache.camel.component.aws.securityhub.SecurityHubConstants#PROCESSED_FINDINGS"
},
"CamelAwsSecurityHubFindingId": { "index": 19, "kind": "header",
"displayName": "", "group": "getFindingHistory", "label": "getFindingHistory",
"required": false, "javaType": "String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
finding ID to get history for", "constantName":
"org.apache.camel.component.aws.securityhub.SecurityHubConstants#FINDING_ID" },
- "CamelAwsSecurityHubProductArn": { "index": 20, "kind": "header",
"displayName": "", "group": "getFindingHistory", "label": "getFindingHistory",
"required": false, "javaType": "String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
product ARN for the finding", "constantName":
"org.apache.camel.component.aws.securityhub.SecurityHubConstants#PRODUCT_ARN" }
+ "CamelAwsSecurityHubProductArn": { "index": 20, "kind": "header",
"displayName": "", "group": "getFindingHistory", "label": "getFindingHistory",
"required": false, "javaType": "String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
product ARN for the finding", "constantName":
"org.apache.camel.component.aws.securityhub.SecurityHubConstants#PRODUCT_ARN" },
+ "CamelAwsSecurityHubFindingAggregatorArn": { "index": 21, "kind":
"header", "displayName": "", "group": "getFindingAggregator", "label":
"getFindingAggregator", "required": false, "javaType": "String", "deprecated":
false, "deprecationNote": "", "autowired": false, "secret": false,
"description": "The ARN of the finding aggregator to retrieve", "constantName":
"org.apache.camel.component.aws.securityhub.SecurityHubConstants#FINDING_AGGREGATOR_ARN"
}
},
"properties": {
"label": { "index": 0, "kind": "path", "displayName": "Label", "group":
"producer", "label": "", "required": true, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "Logical name" },
diff --git
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/aws2-transcribe.json
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/aws2-transcribe.json
index c6fa7520f7f..0efd20ca7f9 100644
---
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/aws2-transcribe.json
+++
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/aws2-transcribe.json
@@ -62,7 +62,16 @@
"CamelAwsTranscribeMedicalTranscriptionJobName": { "index": 10, "kind":
"header", "displayName": "", "group": "producer", "label": "producer",
"required": false, "javaType": "String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
name of the medical transcription job", "constantName":
"org.apache.camel.component.aws2.transcribe.Transcribe2Constants#MEDICAL_TRANSCRIPTION_JOB_NAME"
},
"CamelAwsTranscribeResourceArn": { "index": 11, "kind": "header",
"displayName": "", "group": "producer", "label": "producer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The Amazon Resource Name (ARN) of the
resource", "constantName":
"org.apache.camel.component.aws2.transcribe.Transcribe2Constants#RESOURCE_ARN"
},
"CamelAwsTranscribeTags": { "index": 12, "kind": "header", "displayName":
"", "group": "producer", "label": "producer", "required": false, "javaType":
"Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "A map of tags to assign to the
resource", "constantName":
"org.apache.camel.component.aws2.transcribe.Transcribe2Constants#TAGS" },
- "CamelAwsTranscribeTagKeys": { "index": 13, "kind": "header",
"displayName": "", "group": "producer", "label": "producer", "required": false,
"javaType": "List<String>", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "A list of tag keys to
remove from the resource", "constantName":
"org.apache.camel.component.aws2.transcribe.Transcribe2Constants#TAG_KEYS" }
+ "CamelAwsTranscribeTagKeys": { "index": 13, "kind": "header",
"displayName": "", "group": "producer", "label": "producer", "required": false,
"javaType": "List<String>", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "A list of tag keys to
remove from the resource", "constantName":
"org.apache.camel.component.aws2.transcribe.Transcribe2Constants#TAG_KEYS" },
+ "CamelAwsTranscribeMaxResults": { "index": 14, "kind": "header",
"displayName": "", "group": "producer", "label": "producer", "required": false,
"javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The maximum number of results to return
in a list operation", "constantName":
"org.apache.camel.component.aws2.transcribe.Transcribe2Constants#MAX_RESULTS" },
+ "CamelAwsTranscribeNextToken": { "index": 15, "kind": "header",
"displayName": "", "group": "producer", "label": "producer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The token to retrieve the next page of
a list operation", "constantName":
"org.apache.camel.component.aws2.transcribe.Transcribe2Constants#NEXT_TOKEN" },
+ "CamelAwsTranscribeVocabularyFileUri": { "index": 16, "kind": "header",
"displayName": "", "group": "producer", "label": "producer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The S3 location of the vocabulary or
vocabulary filter file", "constantName":
"org.apache.camel.component.aws2.transcribe.Transcribe2Constants#VOCABULARY_FILE_URI"
},
+ "CamelAwsTranscribeBaseModelName": { "index": 17, "kind": "header",
"displayName": "", "group": "producer", "label": "producer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The base model used when creating a
custom language model", "constantName":
"org.apache.camel.component.aws2.transcribe.Transcribe2Constants#BASE_MODEL_NAME"
},
+ "CamelAwsTranscribeInputDataS3Uri": { "index": 18, "kind": "header",
"displayName": "", "group": "producer", "label": "producer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The S3 location of the training data
for a custom language model", "constantName":
"org.apache.camel.component.aws2.transcribe.Transcribe2Constants#INPUT_DATA_S3_URI"
},
+ "CamelAwsTranscribeDataAccessRoleArn": { "index": 19, "kind": "header",
"displayName": "", "group": "producer", "label": "producer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The ARN of the IAM role granting access
to the training data or vocabulary file", "constantName":
"org.apache.camel.component.aws2.transcribe.Transcribe2Constants#DATA_ACCESS_ROLE_ARN"
},
+ "CamelAwsTranscribeOutputBucketName": { "index": 20, "kind": "header",
"displayName": "", "group": "producer", "label": "producer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The S3 bucket where the transcription
output is stored", "constantName":
"org.apache.camel.component.aws2.transcribe.Transcribe2Constants#OUTPUT_BUCKET_NAME"
},
+ "CamelAwsTranscribeSpecialty": { "index": 21, "kind": "header",
"displayName": "", "group": "producer", "label": "producer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The medical specialty of a medical
transcription job", "constantName":
"org.apache.camel.component.aws2.transcribe.Transcribe2Constants#SPECIALTY" },
+ "CamelAwsTranscribeType": { "index": 22, "kind": "header", "displayName":
"", "group": "producer", "label": "producer", "required": false, "javaType":
"String", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "The audio type of a medical transcription
job", "constantName":
"org.apache.camel.component.aws2.transcribe.Transcribe2Constants#TYPE" }
},
"properties": {
"label": { "index": 0, "kind": "path", "displayName": "Label", "group":
"producer", "label": "", "required": true, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.aws2.transcribe.Transcribe2Configuration",
"configurationField": "configuration", "description": "Logical name" },
diff --git
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/langchain4j-agent.json
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/langchain4j-agent.json
index 4d148b9f02b..c4575034b71 100644
---
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/langchain4j-agent.json
+++
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/langchain4j-agent.json
@@ -46,7 +46,9 @@
"CamelLangChain4jAgentFinishReason": { "index": 6, "kind": "header",
"displayName": "", "group": "producer", "label": "", "required": false,
"javaType": "dev.langchain4j.model.output.FinishReason", "enum": [ "STOP",
"LENGTH", "TOOL_EXECUTION", "CONTENT_FILTER", "OTHER" ], "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
Finish Reason.", "constantName":
"org.apache.camel.component.langchain4j.agent.api.Headers#FINISH_REASON" },
"CamelLangChain4jAgentInputTokenCount": { "index": 7, "kind": "header",
"displayName": "", "group": "producer", "label": "", "required": false,
"javaType": "int", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The Input Token Count.",
"constantName":
"org.apache.camel.component.langchain4j.agent.api.Headers#INPUT_TOKEN_COUNT" },
"CamelLangChain4jAgentOutputTokenCount": { "index": 8, "kind": "header",
"displayName": "", "group": "producer", "label": "", "required": false,
"javaType": "int", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The Output Token Count.",
"constantName":
"org.apache.camel.component.langchain4j.agent.api.Headers#OUTPUT_TOKEN_COUNT" },
- "CamelLangChain4jAgentTotalTokenCount": { "index": 9, "kind": "header",
"displayName": "", "group": "producer", "label": "", "required": false,
"javaType": "int", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The Total Token Count.",
"constantName":
"org.apache.camel.component.langchain4j.agent.api.Headers#TOTAL_TOKEN_COUNT" }
+ "CamelLangChain4jAgentTotalTokenCount": { "index": 9, "kind": "header",
"displayName": "", "group": "producer", "label": "", "required": false,
"javaType": "int", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The Total Token Count.",
"constantName":
"org.apache.camel.component.langchain4j.agent.api.Headers#TOTAL_TOKEN_COUNT" },
+ "CamelLangChain4jAgentSources": { "index": 10, "kind": "header",
"displayName": "", "group": "producer", "label": "", "required": false,
"javaType": "java.util.List<dev.langchain4j.rag.content.Content>",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "RAG sources retrieved during agent invocation.",
"constantName":
"org.apache.camel.component.langchain4j.agent.api.Headers#SOURCES" },
+ "CamelLangChain4jAgentToolExecutions": { "index": 11, "kind": "header",
"displayName": "", "group": "producer", "label": "", "required": false,
"javaType": "java.util.List<dev.langchain4j.service.tool.ToolExecution>",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "Tool executions performed during agent invocation.",
"constantName":
"org.apache.camel.component.langchain4j.agent.api.Headers#TOOL_EXECUTIONS" }
},
"properties": {
"agentId": { "index": 0, "kind": "path", "displayName": "Agent Id",
"group": "producer", "label": "", "required": true, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The Agent id" },
diff --git
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/openai.json
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/openai.json
index ff0d553c401..8a7c37a47eb 100644
---
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/openai.json
+++
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/openai.json
@@ -3,7 +3,7 @@
"kind": "component",
"name": "openai",
"title": "OpenAI",
- "description": "OpenAI endpoint for chat completion, embeddings, and audio
transcription.",
+ "description": "OpenAI endpoint for chat completion, embeddings, audio
transcription, audio translation, and text-to-speech.",
"deprecated": false,
"firstVersion": "4.17.0",
"label": "ai",
@@ -73,10 +73,15 @@
"CamelOpenAIAudioPrompt": { "index": 36, "kind": "header", "displayName":
"", "group": "producer", "label": "", "required": false, "javaType": "String",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "Optional text to guide the model's style or continue a
previous audio segment", "constantName":
"org.apache.camel.component.openai.OpenAIConstants#AUDIO_PROMPT" },
"CamelOpenAIAudioTimestampGranularities": { "index": 37, "kind": "header",
"displayName": "", "group": "producer", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "Comma-separated timestamp
granularities: word, segment, or word,segment (verbose_json only)",
"constantName":
"org.apache.camel.component.openai.OpenAIConstants#AUDIO_TIMESTAMP_GRANULARITIES"
},
"CamelOpenAIAudioDuration": { "index": 38, "kind": "header",
"displayName": "", "group": "producer", "label": "", "required": false,
"javaType": "Double", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "Duration of the audio in seconds
(verbose_json only)", "constantName":
"org.apache.camel.component.openai.OpenAIConstants#AUDIO_DURATION" },
- "CamelOpenAIAudioDetectedLanguage": { "index": 39, "kind": "header",
"displayName": "", "group": "producer", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "Language detected in the audio
(verbose_json only)", "constantName":
"org.apache.camel.component.openai.OpenAIConstants#AUDIO_DETECTED_LANGUAGE" }
+ "CamelOpenAIAudioDetectedLanguage": { "index": 39, "kind": "header",
"displayName": "", "group": "producer", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "Language detected in the audio
(verbose_json only)", "constantName":
"org.apache.camel.component.openai.OpenAIConstants#AUDIO_DETECTED_LANGUAGE" },
+ "CamelOpenAISpeechModel": { "index": 40, "kind": "header", "displayName":
"", "group": "producer", "label": "", "required": false, "javaType": "String",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The model to use for text-to-speech (e.g.,
gpt-4o-mini-tts, tts-1, tts-1-hd)", "constantName":
"org.apache.camel.component.openai.OpenAIConstants#SPEECH_MODEL" },
+ "CamelOpenAISpeechVoice": { "index": 41, "kind": "header", "displayName":
"", "group": "producer", "label": "", "required": false, "javaType": "String",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The voice to use for the generated audio (e.g., alloy,
echo, fable, onyx, nova, shimmer)", "constantName":
"org.apache.camel.component.openai.OpenAIConstants#SPEECH_VOICE" },
+ "CamelOpenAISpeechResponseFormat": { "index": 42, "kind": "header",
"displayName": "", "group": "producer", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The audio format for text-to-speech
output (mp3, opus, aac, flac, wav, pcm)", "constantName":
"org.apache.camel.component.openai.OpenAIConstants#SPEECH_RESPONSE_FORMAT" },
+ "CamelOpenAISpeechSpeed": { "index": 43, "kind": "header", "displayName":
"", "group": "producer", "label": "", "required": false, "javaType": "Double",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The speed of the generated audio (0.25 to 4.0, where 1.0
is normal speed)", "constantName":
"org.apache.camel.component.openai.OpenAIConstants#SPEECH_SPEED" },
+ "CamelOpenAISpeechInstructions": { "index": 44, "kind": "header",
"displayName": "", "group": "producer", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "Optional instructions to control the
voice of the generated audio (does not work with tts-1 or tts-1-hd)",
"constantName":
"org.apache.camel.component.openai.OpenAIConstants#SPEECH_INSTRUCTIONS" }
},
"properties": {
- "operation": { "index": 0, "kind": "path", "displayName": "Operation",
"group": "producer", "label": "", "required": true, "type": "enum", "javaType":
"org.apache.camel.component.openai.OpenAIOperations", "enum": [
"chat-completion", "embeddings", "tool-execution", "audio-transcription" ],
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The operation to perform: 'chat-completion',
'embeddings', 'tool-execution', or 'audio-transcription'" },
+ "operation": { "index": 0, "kind": "path", "displayName": "Operation",
"group": "producer", "label": "", "required": true, "type": "enum", "javaType":
"org.apache.camel.component.openai.OpenAIOperations", "enum": [
"chat-completion", "embeddings", "tool-execution", "audio-transcription",
"audio-translation", "audio-speech" ], "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "description": "The operation to
perform: 'chat-completion', 'embeddings', 'too [...]
"additionalBodyProperty": { "index": 1, "kind": "parameter",
"displayName": "Additional Body Property", "group": "producer", "label": "",
"required": false, "type": "object", "javaType":
"java.util.Map<java.lang.String, java.lang.Object>", "prefix":
"additionalBodyProperty.", "multiValue": true, "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configur [...]
"additionalHeader": { "index": 2, "kind": "parameter", "displayName":
"Additional Header", "group": "producer", "label": "", "required": false,
"type": "object", "javaType": "java.util.Map<java.lang.String,
java.lang.Object>", "prefix": "additionalHeader.", "multiValue": true,
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": true,
"security": "secret", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"config [...]
"additionalResponseHeader": { "index": 3, "kind": "parameter",
"displayName": "Additional Response Header", "group": "producer", "label": "",
"required": false, "type": "object", "javaType":
"java.util.Map<java.lang.String, java.lang.Object>", "prefix":
"additionalResponseHeader.", "multiValue": true, "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "co [...]
@@ -96,36 +101,43 @@
"embeddingModel": { "index": 17, "kind": "parameter", "displayName":
"Embedding Model", "group": "producer", "label": "", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "The model to use for
embeddings" },
"encodingFormat": { "index": 18, "kind": "parameter", "displayName":
"Encoding Format", "group": "producer", "label": "", "required": false, "type":
"enum", "javaType": "java.lang.String", "enum": [ "float", "base64" ],
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "defaultValue": "base64", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The format for embedding ou [...]
"jsonSchema": { "index": 19, "kind": "parameter", "displayName": "Json
Schema", "group": "producer", "label": "", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "supportFileReference": true,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "JSON schema for
structured output validation" },
- "maxRetries": { "index": 20, "kind": "parameter", "displayName": "Max
Retries", "group": "producer", "label": "", "required": false, "type":
"integer", "javaType": "int", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "defaultValue": 2, "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "Maximum number of times the OpenAI SDK client
retries failed requests. The SDK retr [...]
- "maxTokens": { "index": 21, "kind": "parameter", "displayName": "Max
Tokens", "group": "producer", "label": "", "required": false, "type":
"integer", "javaType": "java.lang.Integer", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "Maximum number of tokens
to generate" },
- "maxToolIterations": { "index": 22, "kind": "parameter", "displayName":
"Max Tool Iterations", "group": "producer", "label": "", "required": false,
"type": "integer", "javaType": "int", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "defaultValue": 50,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "Maximum number of tool
call loop iterations to prevent infinite loops" },
- "mcpProtocolVersions": { "index": 23, "kind": "parameter", "displayName":
"Mcp Protocol Versions", "group": "producer", "label": "", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "Comma-separated list of
MCP protocol versions to advertise when connect [...]
- "mcpReconnect": { "index": 24, "kind": "parameter", "displayName": "Mcp
Reconnect", "group": "producer", "label": "", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "defaultValue": true,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "Automatically reconnect
to MCP servers when a tool call fails due to a t [...]
- "mcpServer": { "index": 25, "kind": "parameter", "displayName": "Mcp
Server", "group": "producer", "label": "", "required": false, "type": "object",
"javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix":
"mcpServer.", "multiValue": true, "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "MCP (Model Cont [...]
- "mcpTimeout": { "index": 26, "kind": "parameter", "displayName": "Mcp
Timeout", "group": "producer", "label": "", "required": false, "type":
"integer", "javaType": "int", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "defaultValue": 20, "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "Timeout in seconds for MCP tool call requests.
Applies to all MCP operations inclu [...]
- "model": { "index": 27, "kind": "parameter", "displayName": "Model",
"group": "producer", "label": "", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The model to use for chat completion" },
- "outputClass": { "index": 28, "kind": "parameter", "displayName": "Output
Class", "group": "producer", "label": "", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "Fully qualified class name for structured
output using response format" },
- "requestTimeout": { "index": 29, "kind": "parameter", "displayName":
"Request Timeout", "group": "producer", "label": "", "required": false, "type":
"integer", "javaType": "long", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "defaultValue": 0, "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "HTTP request timeout in milliseconds for the
OpenAI SDK client. When 0 or [...]
- "storeFullResponse": { "index": 30, "kind": "parameter", "displayName":
"Store Full Response", "group": "producer", "label": "", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue":
false, "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "Store the full response in the exchange
property 'CamelOpenA [...]
- "streaming": { "index": 31, "kind": "parameter", "displayName":
"Streaming", "group": "producer", "label": "", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "defaultValue": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "Enable streaming
responses" },
- "stripThinking": { "index": 32, "kind": "parameter", "displayName": "Strip
Thinking", "group": "producer", "label": "", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "defaultValue": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "Strip ... blocks from
model responses (used by reasoning models like [...]
- "systemMessage": { "index": 33, "kind": "parameter", "displayName":
"System Message", "group": "producer", "label": "", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "System message to
prepend. When set and conversationMemory is enabled, the conversat [...]
- "temperature": { "index": 34, "kind": "parameter", "displayName":
"Temperature", "group": "producer", "label": "", "required": false, "type":
"number", "javaType": "java.lang.Double", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "Temperature for response
generation (0.0 to 2.0)" },
- "topP": { "index": 35, "kind": "parameter", "displayName": "Top P",
"group": "producer", "label": "", "required": false, "type": "number",
"javaType": "java.lang.Double", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "Top P for response generation (0.0 to 1.0)" },
- "userMessage": { "index": 36, "kind": "parameter", "displayName": "User
Message", "group": "producer", "label": "", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "Default user message
text to use when no prompt is provided" },
- "lazyStartProducer": { "index": 37, "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 produ [...]
- "oauthProfile": { "index": 38, "kind": "parameter", "displayName": "Oauth
Profile", "group": "security", "label": "security", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "OAuth profile name for
obtaining an access token via the OAuth 2.0 Client Cred [...]
- "sslContextParameters": { "index": 39, "kind": "parameter", "displayName":
"Ssl Context Parameters", "group": "security", "label": "security", "required":
false, "type": "object", "javaType":
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "SSLContextParameters to
use [...]
- "sslEndpointAlgorithm": { "index": 40, "kind": "parameter", "displayName":
"Ssl Endpoint Algorithm", "group": "security", "label": "security", "required":
false, "type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "security":
"insecure:ssl", "insecureValue": "none", "defaultValue": "https",
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", [...]
- "sslKeymanagerAlgorithm": { "index": 41, "kind": "parameter",
"displayName": "Ssl Keymanager Algorithm", "group": "security", "label":
"security", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "defaultValue": "SunX509", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The algorithm used by the key [...]
- "sslKeyPassword": { "index": 42, "kind": "parameter", "displayName": "Ssl
Key Password", "group": "security", "label": "security", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": true, "security":
"secret", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The password of the private key in the key
store file" },
- "sslKeystoreLocation": { "index": 43, "kind": "parameter", "displayName":
"Ssl Keystore Location", "group": "security", "label": "security", "required":
false, "type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "The location of the key
store file. This is optional and can be [...]
- "sslKeystorePassword": { "index": 44, "kind": "parameter", "displayName":
"Ssl Keystore Password", "group": "security", "label": "security", "required":
false, "type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": true, "security":
"secret", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The store password for the key store file" },
- "sslKeystoreType": { "index": 45, "kind": "parameter", "displayName": "Ssl
Keystore Type", "group": "security", "label": "security", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue":
"JKS", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The file format of the key store file" },
- "sslProtocol": { "index": 46, "kind": "parameter", "displayName": "Ssl
Protocol", "group": "security", "label": "security", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue":
"TLSv1.3", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The SSL protocol used to generate the
SSLContext" },
- "sslTrustmanagerAlgorithm": { "index": 47, "kind": "parameter",
"displayName": "Ssl Trustmanager Algorithm", "group": "security", "label":
"security", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "defaultValue": "PKIX", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The algorithm used by the tru [...]
- "sslTruststoreLocation": { "index": 48, "kind": "parameter",
"displayName": "Ssl Truststore Location", "group": "security", "label":
"security", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The location of the trust store file, used to
validate the [...]
- "sslTruststorePassword": { "index": 49, "kind": "parameter",
"displayName": "Ssl Truststore Password", "group": "security", "label":
"security", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": true, "security": "secret", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The password for the trust store file. [...]
- "sslTruststoreType": { "index": 50, "kind": "parameter", "displayName":
"Ssl Truststore Type", "group": "security", "label": "security", "required":
false, "type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue":
"JKS", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The file format of the trust store file" }
+ "maxHistoryMessages": { "index": 20, "kind": "parameter", "displayName":
"Max History Messages", "group": "producer", "label": "", "required": false,
"type": "integer", "javaType": "int", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "defaultValue": 0,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "When conversationMemory
is enabled, retain at most this many messa [...]
+ "maxHistoryTokens": { "index": 21, "kind": "parameter", "displayName":
"Max History Tokens", "group": "producer", "label": "", "required": false,
"type": "integer", "javaType": "int", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "defaultValue": 0,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "When conversationMemory
is enabled, trim conversation history using a [...]
+ "maxRetries": { "index": 22, "kind": "parameter", "displayName": "Max
Retries", "group": "producer", "label": "", "required": false, "type":
"integer", "javaType": "int", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "defaultValue": 2, "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "Maximum number of times the OpenAI SDK client
retries failed requests. The SDK retr [...]
+ "maxTokens": { "index": 23, "kind": "parameter", "displayName": "Max
Tokens", "group": "producer", "label": "", "required": false, "type":
"integer", "javaType": "java.lang.Integer", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "Maximum number of tokens
to generate" },
+ "maxToolIterations": { "index": 24, "kind": "parameter", "displayName":
"Max Tool Iterations", "group": "producer", "label": "", "required": false,
"type": "integer", "javaType": "int", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "defaultValue": 50,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "Maximum number of tool
call loop iterations to prevent infinite loops" },
+ "mcpProtocolVersions": { "index": 25, "kind": "parameter", "displayName":
"Mcp Protocol Versions", "group": "producer", "label": "", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "Comma-separated list of
MCP protocol versions to advertise when connect [...]
+ "mcpReconnect": { "index": 26, "kind": "parameter", "displayName": "Mcp
Reconnect", "group": "producer", "label": "", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "defaultValue": true,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "Automatically reconnect
to MCP servers when a tool call fails due to a t [...]
+ "mcpServer": { "index": 27, "kind": "parameter", "displayName": "Mcp
Server", "group": "producer", "label": "", "required": false, "type": "object",
"javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix":
"mcpServer.", "multiValue": true, "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "MCP (Model Cont [...]
+ "mcpTimeout": { "index": 28, "kind": "parameter", "displayName": "Mcp
Timeout", "group": "producer", "label": "", "required": false, "type":
"integer", "javaType": "int", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "defaultValue": 20, "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "Timeout in seconds for MCP tool call requests.
Applies to all MCP operations inclu [...]
+ "model": { "index": 29, "kind": "parameter", "displayName": "Model",
"group": "producer", "label": "", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The model to use for chat completion" },
+ "outputClass": { "index": 30, "kind": "parameter", "displayName": "Output
Class", "group": "producer", "label": "", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "Fully qualified class name for structured
output using response format" },
+ "requestTimeout": { "index": 31, "kind": "parameter", "displayName":
"Request Timeout", "group": "producer", "label": "", "required": false, "type":
"integer", "javaType": "long", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "defaultValue": 0, "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "HTTP request timeout in milliseconds for the
OpenAI SDK client. When 0 or [...]
+ "speechInstructions": { "index": 32, "kind": "parameter", "displayName":
"Speech Instructions", "group": "producer", "label": "", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "Optional instructions to
control the voice of the generated audio. Does no [...]
+ "speechModel": { "index": 33, "kind": "parameter", "displayName": "Speech
Model", "group": "producer", "label": "", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The model to use for text-to-speech (e.g.,
gpt-4o-mini-tts, tts-1, tts-1-hd)" },
+ "speechResponseFormat": { "index": 34, "kind": "parameter", "displayName":
"Speech Response Format", "group": "producer", "label": "", "required": false,
"type": "enum", "javaType": "java.lang.String", "enum": [ "mp3", "opus", "aac",
"flac", "wav", "pcm" ], "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "defaultValue": "mp3",
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "descrip [...]
+ "speechSpeed": { "index": 35, "kind": "parameter", "displayName": "Speech
Speed", "group": "producer", "label": "", "required": false, "type": "number",
"javaType": "java.lang.Double", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The speed of the generated audio, from 0.25 to
4.0 where 1.0 is normal speed" },
+ "speechVoice": { "index": 36, "kind": "parameter", "displayName": "Speech
Voice", "group": "producer", "label": "", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "defaultValue": "alloy",
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "The voice to use for
text-to-speech (e.g., alloy, echo, fable, [...]
+ "storeFullResponse": { "index": 37, "kind": "parameter", "displayName":
"Store Full Response", "group": "producer", "label": "", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue":
false, "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "Store the full response in the exchange
property 'CamelOpenA [...]
+ "streaming": { "index": 38, "kind": "parameter", "displayName":
"Streaming", "group": "producer", "label": "", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "defaultValue": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "Enable streaming
responses" },
+ "stripThinking": { "index": 39, "kind": "parameter", "displayName": "Strip
Thinking", "group": "producer", "label": "", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "defaultValue": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "Strip ... blocks from
model responses (used by reasoning models like [...]
+ "systemMessage": { "index": 40, "kind": "parameter", "displayName":
"System Message", "group": "producer", "label": "", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "System message to
prepend. When set and conversationMemory is enabled, the conversat [...]
+ "temperature": { "index": 41, "kind": "parameter", "displayName":
"Temperature", "group": "producer", "label": "", "required": false, "type":
"number", "javaType": "java.lang.Double", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "Temperature for response
generation (0.0 to 2.0)" },
+ "topP": { "index": 42, "kind": "parameter", "displayName": "Top P",
"group": "producer", "label": "", "required": false, "type": "number",
"javaType": "java.lang.Double", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "Top P for response generation (0.0 to 1.0)" },
+ "userMessage": { "index": 43, "kind": "parameter", "displayName": "User
Message", "group": "producer", "label": "", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "Default user message
text to use when no prompt is provided" },
+ "lazyStartProducer": { "index": 44, "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 produ [...]
+ "oauthProfile": { "index": 45, "kind": "parameter", "displayName": "Oauth
Profile", "group": "security", "label": "security", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "OAuth profile name for
obtaining an access token via the OAuth 2.0 Client Cred [...]
+ "sslContextParameters": { "index": 46, "kind": "parameter", "displayName":
"Ssl Context Parameters", "group": "security", "label": "security", "required":
false, "type": "object", "javaType":
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "SSLContextParameters to
use [...]
+ "sslEndpointAlgorithm": { "index": 47, "kind": "parameter", "displayName":
"Ssl Endpoint Algorithm", "group": "security", "label": "security", "required":
false, "type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "security":
"insecure:ssl", "insecureValue": "none", "defaultValue": "https",
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", [...]
+ "sslKeymanagerAlgorithm": { "index": 48, "kind": "parameter",
"displayName": "Ssl Keymanager Algorithm", "group": "security", "label":
"security", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "defaultValue": "SunX509", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The algorithm used by the key [...]
+ "sslKeyPassword": { "index": 49, "kind": "parameter", "displayName": "Ssl
Key Password", "group": "security", "label": "security", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": true, "security":
"secret", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The password of the private key in the key
store file" },
+ "sslKeystoreLocation": { "index": 50, "kind": "parameter", "displayName":
"Ssl Keystore Location", "group": "security", "label": "security", "required":
false, "type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "The location of the key
store file. This is optional and can be [...]
+ "sslKeystorePassword": { "index": 51, "kind": "parameter", "displayName":
"Ssl Keystore Password", "group": "security", "label": "security", "required":
false, "type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": true, "security":
"secret", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The store password for the key store file" },
+ "sslKeystoreType": { "index": 52, "kind": "parameter", "displayName": "Ssl
Keystore Type", "group": "security", "label": "security", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue":
"JKS", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The file format of the key store file" },
+ "sslProtocol": { "index": 53, "kind": "parameter", "displayName": "Ssl
Protocol", "group": "security", "label": "security", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue":
"TLSv1.3", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The SSL protocol used to generate the
SSLContext" },
+ "sslTrustmanagerAlgorithm": { "index": 54, "kind": "parameter",
"displayName": "Ssl Trustmanager Algorithm", "group": "security", "label":
"security", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "defaultValue": "PKIX", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The algorithm used by the tru [...]
+ "sslTruststoreLocation": { "index": 55, "kind": "parameter",
"displayName": "Ssl Truststore Location", "group": "security", "label":
"security", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The location of the trust store file, used to
validate the [...]
+ "sslTruststorePassword": { "index": 56, "kind": "parameter",
"displayName": "Ssl Truststore Password", "group": "security", "label":
"security", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": true, "security": "secret", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The password for the trust store file. [...]
+ "sslTruststoreType": { "index": 57, "kind": "parameter", "displayName":
"Ssl Truststore Type", "group": "security", "label": "security", "required":
false, "type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue":
"JKS", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The file format of the trust store file" }
}
}
diff --git
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/opensearch.json
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/opensearch.json
index 15f1f1f2982..3079992488d 100644
---
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/opensearch.json
+++
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/opensearch.json
@@ -32,13 +32,14 @@
"autowiredEnabled": { "index": 5, "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 [...]
"client": { "index": 6, "kind": "property", "displayName": "Client",
"group": "advanced", "label": "advanced", "required": false, "type": "object",
"javaType": "org.opensearch.client.RestClient", "deprecated": false,
"autowired": true, "secret": false, "description": "To use an existing
configured OpenSearch client, instead of creating a client per endpoint. This
allows customizing the client with specific settings." },
"enableSniffer": { "index": 7, "kind": "property", "displayName": "Enable
Sniffer", "group": "advanced", "label": "advanced", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "description": "Enable automatically
discover nodes from a running OpenSearch cluster. If this option is used in
conjunction with Spring Boot, then it's managed by the Spring Boot
configuration (see: Disable Sniffer in S [...]
- "sniffAfterFailureDelay": { "index": 8, "kind": "property", "displayName":
"Sniff After Failure Delay", "group": "advanced", "label": "advanced",
"required": false, "type": "integer", "javaType": "int", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": 60000, "description": "The
delay of a sniff execution scheduled after a failure (in milliseconds)" },
- "snifferInterval": { "index": 9, "kind": "property", "displayName":
"Sniffer Interval", "group": "advanced", "label": "advanced", "required":
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": 300000, "description": "The interval
between consecutive ordinary sniff executions in milliseconds. Will be honoured
when sniffOnFailure is disabled or when there are no failures between
consecutive sniff executions" },
- "enableSSL": { "index": 10, "kind": "property", "displayName": "Enable
SSL", "group": "security", "label": "security", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "description": "Enable SSL" },
- "password": { "index": 11, "kind": "property", "displayName": "Password",
"group": "security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": true, "security": "secret", "description": "Password for
authenticating" },
- "sslContextParameters": { "index": 12, "kind": "property", "displayName":
"Ssl Context Parameters", "group": "security", "label": "security", "required":
false, "type": "object", "javaType":
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false,
"autowired": false, "secret": false, "description": "To configure security
using SSLContextParameters. When configured, this takes precedence over the
certificatePath option." },
- "useGlobalSslContextParameters": { "index": 13, "kind": "property",
"displayName": "Use Global Ssl Context Parameters", "group": "security",
"label": "security", "required": false, "type": "boolean", "javaType":
"boolean", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": false, "description": "Enable usage of global SSL context
parameters." },
- "user": { "index": 14, "kind": "property", "displayName": "User", "group":
"security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": true, "security": "secret", "description": "Basic authenticate user" }
+ "openSearchClient": { "index": 8, "kind": "property", "displayName": "Open
Search Client", "group": "advanced", "label": "advanced", "required": false,
"type": "object", "javaType":
"org.opensearch.client.opensearch.OpenSearchClient", "deprecated": false,
"autowired": true, "secret": false, "description": "To use a custom configured
OpenSearchClient instance. When set, this takes precedence over the
RestClient-based client option." },
+ "sniffAfterFailureDelay": { "index": 9, "kind": "property", "displayName":
"Sniff After Failure Delay", "group": "advanced", "label": "advanced",
"required": false, "type": "integer", "javaType": "int", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": 60000, "description": "The
delay of a sniff execution scheduled after a failure (in milliseconds)" },
+ "snifferInterval": { "index": 10, "kind": "property", "displayName":
"Sniffer Interval", "group": "advanced", "label": "advanced", "required":
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": 300000, "description": "The interval
between consecutive ordinary sniff executions in milliseconds. Will be honoured
when sniffOnFailure is disabled or when there are no failures between
consecutive sniff executions" },
+ "enableSSL": { "index": 11, "kind": "property", "displayName": "Enable
SSL", "group": "security", "label": "security", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "description": "Enable SSL" },
+ "password": { "index": 12, "kind": "property", "displayName": "Password",
"group": "security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": true, "security": "secret", "description": "Password for
authenticating" },
+ "sslContextParameters": { "index": 13, "kind": "property", "displayName":
"Ssl Context Parameters", "group": "security", "label": "security", "required":
false, "type": "object", "javaType":
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false,
"autowired": false, "secret": false, "description": "To configure security
using SSLContextParameters. When configured, this takes precedence over the
certificatePath option." },
+ "useGlobalSslContextParameters": { "index": 14, "kind": "property",
"displayName": "Use Global Ssl Context Parameters", "group": "security",
"label": "security", "required": false, "type": "boolean", "javaType":
"boolean", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": false, "description": "Enable usage of global SSL context
parameters." },
+ "user": { "index": 15, "kind": "property", "displayName": "User", "group":
"security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": true, "security": "secret", "description": "Basic authenticate user" }
},
"headers": {
"CamelOpensearchOperation": { "index": 0, "kind": "header", "displayName":
"", "group": "producer", "label": "", "required": false, "javaType":
"org.apache.camel.component.opensearch.OpensearchOperation", "enum": [ "Index",
"Update", "Bulk", "GetById", "MultiGet", "MultiSearch", "Delete",
"DeleteIndex", "Search", "Exists", "Ping" ], "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
operation to perform", "constantName": "org.apache.c [...]
diff --git a/components-starter/camel-core-starter/src/main/docs/core.json
b/components-starter/camel-core-starter/src/main/docs/core.json
index e2822408ca6..62c99ea3fd3 100644
--- a/components-starter/camel-core-starter/src/main/docs/core.json
+++ b/components-starter/camel-core-starter/src/main/docs/core.json
@@ -611,6 +611,13 @@
"sourceType":
"org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
"defaultValue": false
},
+ {
+ "name": "camel.resilience4j.bulkhead-fair-call-handling-enabled",
+ "type": "java.lang.Boolean",
+ "description": "Configures whether the bulkhead uses a fair calling
strategy. When enabled (default), a fair strategy guarantees the order of
incoming requests (FIFO). When disabled, no ordering is guaranteed and may
improve throughput.",
+ "sourceType":
"org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
+ "defaultValue": true
+ },
{
"name": "camel.resilience4j.bulkhead-max-concurrent-calls",
"type": "java.lang.Integer",
@@ -620,10 +627,10 @@
},
{
"name": "camel.resilience4j.bulkhead-max-wait-duration",
- "type": "java.lang.Integer",
- "description": "Configures a maximum amount of time which the calling
thread will wait to enter the bulkhead.",
+ "type": "java.lang.String",
+ "description": "Configures a maximum amount of time which the calling
thread will wait to enter the bulkhead. The default is 0 (no waiting).",
"sourceType":
"org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
- "defaultValue": 0
+ "defaultValue": "0"
},
{
"name": "camel.resilience4j.circuit-breaker",
@@ -662,10 +669,17 @@
"description": "Configure a list of exceptions that are ignored and
neither count as a failure nor success. Any exception matching or inheriting
from one of the list will not count as a failure nor success, even if the
exception is part of recordExceptions.",
"sourceType":
"org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties"
},
+ {
+ "name": "camel.resilience4j.max-wait-duration-in-half-open-state",
+ "type": "java.lang.String",
+ "description": "Configures the maximum wait duration which controls how
long the CircuitBreaker should stay in Half Open state, before it switches to
open. Value 0 means circuit breaker will wait in half open state until all
permitted calls have been completed.",
+ "sourceType":
"org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
+ "defaultValue": "0"
+ },
{
"name": "camel.resilience4j.micrometer-enabled",
"type": "java.lang.Boolean",
- "description": "Whether to enable collecting statistics using
Micrometer. This requires adding camel-resilience4j-micrometer JAR to the
classpath.",
+ "description": "Whether to enable collecting statistics using Micrometer
for all circuit breaker instances. This is a global setting (configure via
camel.resilience4j.micrometerEnabled=true) and requires adding
camel-resilience4j-micrometer JAR to the classpath.",
"sourceType":
"org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
"defaultValue": false
},
@@ -696,6 +710,13 @@
"sourceType":
"org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
"defaultValue": 100
},
+ {
+ "name": "camel.resilience4j.sliding-window-synchronization-strategy",
+ "type": "java.lang.String",
+ "description": "Configures the synchronization strategy for the sliding
window. LOCK_FREE uses a CAS-based lock-free algorithm for better performance
under high concurrency. SYNCHRONIZED uses blocking locks with lower memory
allocation.",
+ "sourceType":
"org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
+ "defaultValue": "SYNCHRONIZED"
+ },
{
"name": "camel.resilience4j.sliding-window-type",
"type": "java.lang.String",
@@ -705,10 +726,10 @@
},
{
"name": "camel.resilience4j.slow-call-duration-threshold",
- "type": "java.lang.Integer",
- "description": "Configures the duration threshold (seconds) above which
calls are considered as slow and increase the slow calls percentage.",
+ "type": "java.lang.String",
+ "description": "Configures the duration threshold above which calls are
considered as slow and increase the slow calls percentage. The default is 60
seconds.",
"sourceType":
"org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
- "defaultValue": 60
+ "defaultValue": "60000"
},
{
"name": "camel.resilience4j.slow-call-rate-threshold",
@@ -732,10 +753,10 @@
},
{
"name": "camel.resilience4j.timeout-duration",
- "type": "java.lang.Integer",
+ "type": "java.lang.String",
"description": "Configures the thread execution timeout. Default value
is 1 second.",
"sourceType":
"org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
- "defaultValue": 1000
+ "defaultValue": "1000"
},
{
"name": "camel.resilience4j.timeout-enabled",
@@ -752,10 +773,10 @@
},
{
"name": "camel.resilience4j.wait-duration-in-open-state",
- "type": "java.lang.Integer",
- "description": "Configures the wait duration (in seconds) which
specifies how long the CircuitBreaker should stay open, before it switches to
half open.",
+ "type": "java.lang.String",
+ "description": "Configures the wait duration which specifies how long
the CircuitBreaker should stay open, before it switches to half open. The
default is 60 seconds.",
"sourceType":
"org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
- "defaultValue": 60
+ "defaultValue": "60000"
},
{
"name": "camel.resilience4j.writable-stack-trace-enabled",
diff --git
a/components-starter/camel-core-starter/src/main/java/org/apache/camel/model/springboot/Resilience4jConfigurationDefinitionCommon.java
b/components-starter/camel-core-starter/src/main/java/org/apache/camel/model/springboot/Resilience4jConfigurationDefinitionCommon.java
index a40f34f47e8..b6ce160426a 100644
---
a/components-starter/camel-core-starter/src/main/java/org/apache/camel/model/springboot/Resilience4jConfigurationDefinitionCommon.java
+++
b/components-starter/camel-core-starter/src/main/java/org/apache/camel/model/springboot/Resilience4jConfigurationDefinitionCommon.java
@@ -69,6 +69,13 @@ public class Resilience4jConfigurationDefinitionCommon {
* either be count-based or time-based.
*/
private String slidingWindowType = "COUNT_BASED";
+ /**
+ * Configures the synchronization strategy for the sliding window.
LOCK_FREE
+ * uses a CAS-based lock-free algorithm for better performance under high
+ * concurrency. SYNCHRONIZED uses blocking locks with lower memory
+ * allocation.
+ */
+ private String slidingWindowSynchronizationStrategy = "SYNCHRONIZED";
/**
* Configures the minimum number of calls which are required (per sliding
* window period) before the CircuitBreaker can calculate the error rate.
@@ -81,15 +88,23 @@ public class Resilience4jConfigurationDefinitionCommon {
*/
private Boolean writableStackTraceEnabled = true;
/**
- * Configures the wait duration (in seconds) which specifies how long the
- * CircuitBreaker should stay open, before it switches to half open.
+ * Configures the wait duration which specifies how long the CircuitBreaker
+ * should stay open, before it switches to half open. The default is 60
+ * seconds.
*/
- private Integer waitDurationInOpenState = 60;
+ private String waitDurationInOpenState = "60000";
/**
* Enables automatic transition from OPEN to HALF_OPEN state once the
* waitDurationInOpenState has passed.
*/
private Boolean automaticTransitionFromOpenToHalfOpenEnabled = false;
+ /**
+ * Configures the maximum wait duration which controls how long the
+ * CircuitBreaker should stay in Half Open state, before it switches to
+ * open. Value 0 means circuit breaker will wait in half open state until
+ * all permitted calls have been completed.
+ */
+ private String maxWaitDurationInHalfOpenState = "0";
/**
* Configures a threshold in percentage. The CircuitBreaker considers a
call
* as slow when the call duration is greater than
slowCallDurationThreshold.
@@ -98,10 +113,10 @@ public class Resilience4jConfigurationDefinitionCommon {
*/
private Float slowCallRateThreshold;
/**
- * Configures the duration threshold (seconds) above which calls are
- * considered as slow and increase the slow calls percentage.
+ * Configures the duration threshold above which calls are considered as
+ * slow and increase the slow calls percentage. The default is 60 seconds.
*/
- private Integer slowCallDurationThreshold = 60;
+ private String slowCallDurationThreshold = "60000";
/**
* Whether bulkhead is enabled or not on the circuit breaker.
*/
@@ -112,9 +127,16 @@ public class Resilience4jConfigurationDefinitionCommon {
private Integer bulkheadMaxConcurrentCalls = 25;
/**
* Configures a maximum amount of time which the calling thread will wait
to
- * enter the bulkhead.
+ * enter the bulkhead. The default is 0 (no waiting).
*/
- private Integer bulkheadMaxWaitDuration = 0;
+ private String bulkheadMaxWaitDuration = "0";
+ /**
+ * Configures whether the bulkhead uses a fair calling strategy. When
+ * enabled (default), a fair strategy guarantees the order of incoming
+ * requests (FIFO). When disabled, no ordering is guaranteed and may
improve
+ * throughput.
+ */
+ private Boolean bulkheadFairCallHandlingEnabled = true;
/**
* Whether timeout is enabled or not on the circuit breaker.
*/
@@ -127,15 +149,17 @@ public class Resilience4jConfigurationDefinitionCommon {
/**
* Configures the thread execution timeout. Default value is 1 second.
*/
- private Integer timeoutDuration = 1000;
+ private String timeoutDuration = "1000";
/**
* Configures whether cancel is called on the running future. Defaults to
* true.
*/
private Boolean timeoutCancelRunningFuture = true;
/**
- * Whether to enable collecting statistics using Micrometer. This requires
- * adding camel-resilience4j-micrometer JAR to the classpath.
+ * Whether to enable collecting statistics using Micrometer for all circuit
+ * breaker instances. This is a global setting (configure via
+ * camel.resilience4j.micrometerEnabled=true) and requires adding
+ * camel-resilience4j-micrometer JAR to the classpath.
*/
private Boolean micrometerEnabled = false;
/**
@@ -211,6 +235,15 @@ public class Resilience4jConfigurationDefinitionCommon {
this.slidingWindowType = slidingWindowType;
}
+ public String getSlidingWindowSynchronizationStrategy() {
+ return slidingWindowSynchronizationStrategy;
+ }
+
+ public void setSlidingWindowSynchronizationStrategy(
+ String slidingWindowSynchronizationStrategy) {
+ this.slidingWindowSynchronizationStrategy =
slidingWindowSynchronizationStrategy;
+ }
+
public Integer getMinimumNumberOfCalls() {
return minimumNumberOfCalls;
}
@@ -227,11 +260,11 @@ public class Resilience4jConfigurationDefinitionCommon {
this.writableStackTraceEnabled = writableStackTraceEnabled;
}
- public Integer getWaitDurationInOpenState() {
+ public String getWaitDurationInOpenState() {
return waitDurationInOpenState;
}
- public void setWaitDurationInOpenState(Integer waitDurationInOpenState) {
+ public void setWaitDurationInOpenState(String waitDurationInOpenState) {
this.waitDurationInOpenState = waitDurationInOpenState;
}
@@ -244,6 +277,15 @@ public class Resilience4jConfigurationDefinitionCommon {
this.automaticTransitionFromOpenToHalfOpenEnabled =
automaticTransitionFromOpenToHalfOpenEnabled;
}
+ public String getMaxWaitDurationInHalfOpenState() {
+ return maxWaitDurationInHalfOpenState;
+ }
+
+ public void setMaxWaitDurationInHalfOpenState(
+ String maxWaitDurationInHalfOpenState) {
+ this.maxWaitDurationInHalfOpenState = maxWaitDurationInHalfOpenState;
+ }
+
public Float getSlowCallRateThreshold() {
return slowCallRateThreshold;
}
@@ -252,11 +294,11 @@ public class Resilience4jConfigurationDefinitionCommon {
this.slowCallRateThreshold = slowCallRateThreshold;
}
- public Integer getSlowCallDurationThreshold() {
+ public String getSlowCallDurationThreshold() {
return slowCallDurationThreshold;
}
- public void setSlowCallDurationThreshold(Integer
slowCallDurationThreshold) {
+ public void setSlowCallDurationThreshold(String slowCallDurationThreshold)
{
this.slowCallDurationThreshold = slowCallDurationThreshold;
}
@@ -276,14 +318,23 @@ public class Resilience4jConfigurationDefinitionCommon {
this.bulkheadMaxConcurrentCalls = bulkheadMaxConcurrentCalls;
}
- public Integer getBulkheadMaxWaitDuration() {
+ public String getBulkheadMaxWaitDuration() {
return bulkheadMaxWaitDuration;
}
- public void setBulkheadMaxWaitDuration(Integer bulkheadMaxWaitDuration) {
+ public void setBulkheadMaxWaitDuration(String bulkheadMaxWaitDuration) {
this.bulkheadMaxWaitDuration = bulkheadMaxWaitDuration;
}
+ public Boolean getBulkheadFairCallHandlingEnabled() {
+ return bulkheadFairCallHandlingEnabled;
+ }
+
+ public void setBulkheadFairCallHandlingEnabled(
+ Boolean bulkheadFairCallHandlingEnabled) {
+ this.bulkheadFairCallHandlingEnabled = bulkheadFairCallHandlingEnabled;
+ }
+
public Boolean getTimeoutEnabled() {
return timeoutEnabled;
}
@@ -300,11 +351,11 @@ public class Resilience4jConfigurationDefinitionCommon {
this.timeoutExecutorService = timeoutExecutorService;
}
- public Integer getTimeoutDuration() {
+ public String getTimeoutDuration() {
return timeoutDuration;
}
- public void setTimeoutDuration(Integer timeoutDuration) {
+ public void setTimeoutDuration(String timeoutDuration) {
this.timeoutDuration = timeoutDuration;
}
diff --git
a/components-starter/camel-openai-starter/src/main/java/org/apache/camel/component/openai/springboot/OpenAIComponentConfiguration.java
b/components-starter/camel-openai-starter/src/main/java/org/apache/camel/component/openai/springboot/OpenAIComponentConfiguration.java
index 8a7c84bd2d7..918d23745f1 100644
---
a/components-starter/camel-openai-starter/src/main/java/org/apache/camel/component/openai/springboot/OpenAIComponentConfiguration.java
+++
b/components-starter/camel-openai-starter/src/main/java/org/apache/camel/component/openai/springboot/OpenAIComponentConfiguration.java
@@ -20,7 +20,8 @@ import
org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
- * OpenAI endpoint for chat completion, embeddings, and audio transcription.
+ * OpenAI endpoint for chat completion, embeddings, audio transcription, audio
+ * translation, and text-to-speech.
*
* Generated by camel-package-maven-plugin - do not edit this file!
*/
diff --git
a/components-starter/camel-opensearch-starter/src/main/docs/opensearch.json
b/components-starter/camel-opensearch-starter/src/main/docs/opensearch.json
index 2b78a3eaade..21a2c12198c 100644
--- a/components-starter/camel-opensearch-starter/src/main/docs/opensearch.json
+++ b/components-starter/camel-opensearch-starter/src/main/docs/opensearch.json
@@ -78,6 +78,12 @@
"sourceType":
"org.apache.camel.component.opensearch.springboot.OpensearchComponentConfiguration",
"defaultValue": 30000
},
+ {
+ "name": "camel.component.opensearch.open-search-client",
+ "type": "org.opensearch.client.opensearch.OpenSearchClient",
+ "description": "To use a custom configured OpenSearchClient instance.
When set, this takes precedence over the RestClient-based client option. The
option is a org.opensearch.client.opensearch.OpenSearchClient type.",
+ "sourceType":
"org.apache.camel.component.opensearch.springboot.OpensearchComponentConfiguration"
+ },
{
"name": "camel.component.opensearch.password",
"type": "java.lang.String",
diff --git
a/components-starter/camel-opensearch-starter/src/main/java/org/apache/camel/component/opensearch/springboot/OpensearchComponentConfiguration.java
b/components-starter/camel-opensearch-starter/src/main/java/org/apache/camel/component/opensearch/springboot/OpensearchComponentConfiguration.java
index c8a533f749e..bd3018ab5e3 100644
---
a/components-starter/camel-opensearch-starter/src/main/java/org/apache/camel/component/opensearch/springboot/OpensearchComponentConfiguration.java
+++
b/components-starter/camel-opensearch-starter/src/main/java/org/apache/camel/component/opensearch/springboot/OpensearchComponentConfiguration.java
@@ -19,6 +19,7 @@ package org.apache.camel.component.opensearch.springboot;
import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
import org.apache.camel.support.jsse.SSLContextParameters;
import org.opensearch.client.RestClient;
+import org.opensearch.client.opensearch.OpenSearchClient;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
@@ -86,6 +87,12 @@ public class OpensearchComponentConfiguration
* the Spring Boot configuration (see: Disable Sniffer in Spring Boot).
*/
private Boolean enableSniffer = false;
+ /**
+ * To use a custom configured OpenSearchClient instance. When set, this
+ * takes precedence over the RestClient-based client option. The option is
a
+ * org.opensearch.client.opensearch.OpenSearchClient type.
+ */
+ private OpenSearchClient openSearchClient;
/**
* The delay of a sniff execution scheduled after a failure (in
* milliseconds)
@@ -184,6 +191,14 @@ public class OpensearchComponentConfiguration
this.enableSniffer = enableSniffer;
}
+ public OpenSearchClient getOpenSearchClient() {
+ return openSearchClient;
+ }
+
+ public void setOpenSearchClient(OpenSearchClient openSearchClient) {
+ this.openSearchClient = openSearchClient;
+ }
+
public Integer getSniffAfterFailureDelay() {
return sniffAfterFailureDelay;
}
diff --git
a/components-starter/camel-opensearch-starter/src/main/java/org/apache/camel/component/opensearch/springboot/OpensearchComponentConverter.java
b/components-starter/camel-opensearch-starter/src/main/java/org/apache/camel/component/opensearch/springboot/OpensearchComponentConverter.java
index 1089d34d9c5..00292ec3437 100644
---
a/components-starter/camel-opensearch-starter/src/main/java/org/apache/camel/component/opensearch/springboot/OpensearchComponentConverter.java
+++
b/components-starter/camel-opensearch-starter/src/main/java/org/apache/camel/component/opensearch/springboot/OpensearchComponentConverter.java
@@ -40,6 +40,7 @@ public class OpensearchComponentConverter implements
GenericConverter {
public Set<ConvertiblePair> getConvertibleTypes() {
Set<ConvertiblePair> answer = new LinkedHashSet<>();
answer.add(new ConvertiblePair(String.class,
org.opensearch.client.RestClient.class));
+ answer.add(new ConvertiblePair(String.class,
org.opensearch.client.opensearch.OpenSearchClient.class));
answer.add(new ConvertiblePair(String.class,
org.apache.camel.support.jsse.SSLContextParameters.class));
return answer;
}
@@ -58,6 +59,7 @@ public class OpensearchComponentConverter implements
GenericConverter {
ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
switch (targetType.getName()) {
case "org.opensearch.client.RestClient": return
applicationContext.getBean(ref, org.opensearch.client.RestClient.class);
+ case "org.opensearch.client.opensearch.OpenSearchClient": return
applicationContext.getBean(ref,
org.opensearch.client.opensearch.OpenSearchClient.class);
case "org.apache.camel.support.jsse.SSLContextParameters": return
applicationContext.getBean(ref,
org.apache.camel.support.jsse.SSLContextParameters.class);
}
return null;
diff --git a/docs/spring-boot/modules/ROOT/pages/starters/core.adoc
b/docs/spring-boot/modules/ROOT/pages/starters/core.adoc
index 6f57d716bbb..784740a54a1 100644
--- a/docs/spring-boot/modules/ROOT/pages/starters/core.adoc
+++ b/docs/spring-boot/modules/ROOT/pages/starters/core.adoc
@@ -15,7 +15,7 @@
== Spring Boot Auto-Configuration
-The starter supports 123 options, which are listed below.
+The starter supports 126 options, which are listed below.
[width="100%",cols="2,5,^1,2",options="header"]
|===
@@ -89,28 +89,31 @@ The starter supports 123 options, which are listed below.
| camel.language.variable.trim | Whether to trim the source code to remove
leading and trailing whitespaces and line breaks. | true | Boolean
| camel.resilience4j.automatic-transition-from-open-to-half-open-enabled |
Enables automatic transition from OPEN to HALF_OPEN state once the
waitDurationInOpenState has passed. | false | Boolean
| camel.resilience4j.bulkhead-enabled | Whether bulkhead is enabled or not on
the circuit breaker. | false | Boolean
+| camel.resilience4j.bulkhead-fair-call-handling-enabled | Configures whether
the bulkhead uses a fair calling strategy. When enabled (default), a fair
strategy guarantees the order of incoming requests (FIFO). When disabled, no
ordering is guaranteed and may improve throughput. | true | Boolean
| camel.resilience4j.bulkhead-max-concurrent-calls | Configures the max amount
of concurrent calls the bulkhead will support. | 25 | Integer
-| camel.resilience4j.bulkhead-max-wait-duration | Configures a maximum amount
of time which the calling thread will wait to enter the bulkhead. | 0 | Integer
+| camel.resilience4j.bulkhead-max-wait-duration | Configures a maximum amount
of time which the calling thread will wait to enter the bulkhead. The default
is 0 (no waiting). | 0 | String
| camel.resilience4j.circuit-breaker | Refers to an existing
io.github.resilience4j.circuitbreaker.CircuitBreaker instance to lookup and use
from the registry. When using this, then any other circuit breaker options are
not in use. | | String
| camel.resilience4j.config | Refers to an existing
io.github.resilience4j.circuitbreaker.CircuitBreakerConfig instance to lookup
and use from the registry. | | String
| camel.resilience4j.configurations | Define additional configuration
definitions | | Resilience4jConfigurationDefinitionCommon>
| camel.resilience4j.enabled | Enable the component | true | Boolean
| camel.resilience4j.failure-rate-threshold | Configures the failure rate
threshold in percentage. If the failure rate is equal or greater than the
threshold the CircuitBreaker transitions to open and starts short-circuiting
calls. | | Float
| camel.resilience4j.ignore-exception | Configure a list of exceptions that
are ignored and neither count as a failure nor success. Any exception matching
or inheriting from one of the list will not count as a failure nor success,
even if the exception is part of recordExceptions. | | String>
-| camel.resilience4j.micrometer-enabled | Whether to enable collecting
statistics using Micrometer. This requires adding camel-resilience4j-micrometer
JAR to the classpath. | false | Boolean
+| camel.resilience4j.max-wait-duration-in-half-open-state | Configures the
maximum wait duration which controls how long the CircuitBreaker should stay in
Half Open state, before it switches to open. Value 0 means circuit breaker will
wait in half open state until all permitted calls have been completed. | 0 |
String
+| camel.resilience4j.micrometer-enabled | Whether to enable collecting
statistics using Micrometer for all circuit breaker instances. This is a global
setting (configure via camel.resilience4j.micrometerEnabled=true) and requires
adding camel-resilience4j-micrometer JAR to the classpath. | false | Boolean
| camel.resilience4j.minimum-number-of-calls | Configures the minimum number
of calls which are required (per sliding window period) before the
CircuitBreaker can calculate the error rate. | 100 | Integer
| camel.resilience4j.permitted-number-of-calls-in-half-open-state | Configures
the number of permitted calls when the CircuitBreaker is half open. | 10 |
Integer
| camel.resilience4j.record-exception | Configure a list of exceptions that
are recorded as a failure and thus increase the failure rate. Any exception
matching or inheriting from one of the list counts as a failure, unless
explicitly ignored via ignoreExceptions. | | String>
| camel.resilience4j.sliding-window-size | Configures the size of the sliding
window which is used to record the outcome of calls when the CircuitBreaker is
closed. Sliding window can either be count-based or time-based. | 100 | Integer
+| camel.resilience4j.sliding-window-synchronization-strategy | Configures the
synchronization strategy for the sliding window. LOCK_FREE uses a CAS-based
lock-free algorithm for better performance under high concurrency. SYNCHRONIZED
uses blocking locks with lower memory allocation. | SYNCHRONIZED | String
| camel.resilience4j.sliding-window-type | Configures the type of the sliding
window which is used to record the outcome of calls when the CircuitBreaker is
closed. Sliding window can either be count-based or time-based. | COUNT_BASED |
String
-| camel.resilience4j.slow-call-duration-threshold | Configures the duration
threshold (seconds) above which calls are considered as slow and increase the
slow calls percentage. | 60 | Integer
+| camel.resilience4j.slow-call-duration-threshold | Configures the duration
threshold above which calls are considered as slow and increase the slow calls
percentage. The default is 60 seconds. | 60000 | String
| camel.resilience4j.slow-call-rate-threshold | Configures a threshold in
percentage. The CircuitBreaker considers a call as slow when the call duration
is greater than slowCallDurationThreshold. When the percentage of slow calls is
equal or greater the threshold, the CircuitBreaker transitions to open and
starts short-circuiting calls. | | Float
| camel.resilience4j.throw-exception-when-half-open-or-open-state | Whether to
throw io.github.resilience4j.circuitbreaker.CallNotPermittedException when the
call is rejected because the circuit breaker is half open or open. | false |
Boolean
| camel.resilience4j.timeout-cancel-running-future | Configures whether cancel
is called on the running future. Defaults to true. | true | Boolean
-| camel.resilience4j.timeout-duration | Configures the thread execution
timeout. Default value is 1 second. | 1000 | Integer
+| camel.resilience4j.timeout-duration | Configures the thread execution
timeout. Default value is 1 second. | 1000 | String
| camel.resilience4j.timeout-enabled | Whether timeout is enabled or not on
the circuit breaker. | false | Boolean
| camel.resilience4j.timeout-executor-service | References to a custom thread
pool to use when timeout is enabled (uses ForkJoinPool.commonPool() by
default). | | ExecutorService
-| camel.resilience4j.wait-duration-in-open-state | Configures the wait
duration (in seconds) which specifies how long the CircuitBreaker should stay
open, before it switches to half open. | 60 | Integer
+| camel.resilience4j.wait-duration-in-open-state | Configures the wait
duration which specifies how long the CircuitBreaker should stay open, before
it switches to half open. The default is 60 seconds. | 60000 | String
| camel.resilience4j.writable-stack-trace-enabled | Enables writable stack
traces. When set to false, Exception.getStackTrace returns a zero length array.
This may be used to reduce log spam when the circuit breaker is open. | true |
Boolean
| camel.rest.api-component | The name of the Camel component to use as the
REST API (such as OpenApi). | | String
| camel.rest.api-context-path | Sets a leading context-path the REST API will
be using. | | String
diff --git a/docs/spring-boot/modules/ROOT/pages/starters/openai.adoc
b/docs/spring-boot/modules/ROOT/pages/starters/openai.adoc
index ea2060edabf..e10d2182e60 100644
--- a/docs/spring-boot/modules/ROOT/pages/starters/openai.adoc
+++ b/docs/spring-boot/modules/ROOT/pages/starters/openai.adoc
@@ -3,7 +3,7 @@
= OpenAI
:artifactid: camel-openai-starter
-OpenAI endpoint for chat completion, embeddings, and audio transcription.
+OpenAI endpoint for chat completion, embeddings, audio transcription, audio
translation, and text-to-speech.
== What's inside
diff --git a/docs/spring-boot/modules/ROOT/pages/starters/opensearch.adoc
b/docs/spring-boot/modules/ROOT/pages/starters/opensearch.adoc
index dca8e0554c0..03012d4aaf9 100644
--- a/docs/spring-boot/modules/ROOT/pages/starters/opensearch.adoc
+++ b/docs/spring-boot/modules/ROOT/pages/starters/opensearch.adoc
@@ -23,7 +23,7 @@ Please refer to the above links for usage and configuration
details.
== Spring Boot Auto-Configuration
-The starter supports 16 options, which are listed below.
+The starter supports 17 options, which are listed below.
[width="100%",cols="2,5,^1,2",options="header"]
|===
@@ -37,6 +37,7 @@ The starter supports 16 options, which are listed below.
| camel.component.opensearch.host-addresses | Comma separated list with
ip:port formatted remote transport addresses to use. The ip and port options
must be left blank for hostAddresses to be considered instead. | | String
| camel.component.opensearch.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 processed t [...]
| camel.component.opensearch.max-retry-timeout | The time in ms before retry |
30000 | Integer
+| camel.component.opensearch.open-search-client | To use a custom configured
OpenSearchClient instance. When set, this takes precedence over the
RestClient-based client option. The option is a
org.opensearch.client.opensearch.OpenSearchClient type. | | OpenSearchClient
| camel.component.opensearch.password | Password for authenticating | | String
| camel.component.opensearch.sniff-after-failure-delay | The delay of a sniff
execution scheduled after a failure (in milliseconds) | 60000 | Integer
| camel.component.opensearch.sniffer-interval | The interval between
consecutive ordinary sniff executions in milliseconds. Will be honoured when
sniffOnFailure is disabled or when there are no failures between consecutive
sniff executions | 300000 | Integer