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

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


The following commit(s) were added to refs/heads/main by this push:
     new f2b84c263aaa CAMEL-26592: camel-core - the apiContextPath description 
says it serves the API documentation, and the pollEnrich docs read the same 
file again (#29174)
f2b84c263aaa is described below

commit f2b84c263aaa005cbb674f86c6da4e9f1a69adca
Author: Claus Ibsen <[email protected]>
AuthorDate: Wed Nov 4 15:31:20 2026 +0100

    CAMEL-26592: camel-core - the apiContextPath description says it serves the 
API documentation, and the pollEnrich docs read the same file again (#29174)
    
    The apiContextPath option of restConfiguration, and 
camel.rest.apiContextPath,
    now say what they do: the path where the REST DSL serves the API 
documentation
    as an OpenAPI document. They also say that this needs camel-openapi-java, 
that
    the document is JSON or YAML (when the path ends with .yaml), and that the 
path
    is under contextPath. The generated copies are regenerated by the build.
    
    The customer file example on the pollEnrich page now uses idempotent=false
    next to noop=true. With noop=true alone, the file endpoint turns idempotent
    on, so the next order of the same customer does not find the file. The text
    also says why the example has a timeout.
    
    
    Claude-Session: https://claude.ai/code/session_016Y4dDi5iQNgtHrDdz2NpwF
    
    Co-authored-by: Claude Opus 5.5 <[email protected]>
---
 .../resources/org/apache/camel/catalog/docs/main.adoc         |  2 +-
 .../org/apache/camel/catalog/docs/pollEnrich-eip.adoc         | 11 +++++++----
 .../camel/catalog/main/camel-main-configuration-metadata.json |  2 +-
 .../org/apache/camel/catalog/models/restConfiguration.json    |  2 +-
 .../org/apache/camel/catalog/schemas/camel-spring.xsd         |  5 ++++-
 .../org/apache/camel/catalog/schemas/camel-xml-io.xsd         |  5 ++++-
 .../org/apache/camel/catalog/schemas/camelYamlDsl-model.json  |  2 +-
 .../src/main/java/org/apache/camel/spi/RestConfiguration.java | 10 ++++++----
 .../src/main/docs/modules/eips/pages/pollEnrich-eip.adoc      | 11 +++++++----
 .../org/apache/camel/model/rest/restConfiguration.json        |  2 +-
 .../apache/camel/model/rest/RestConfigurationDefinition.java  | 11 ++++++-----
 .../resources/META-INF/camel-main-configuration-metadata.json |  2 +-
 core/camel-main/src/main/docs/main.adoc                       |  2 +-
 .../org/apache/camel/main/RestConfigurationProperties.java    |  8 +++++---
 docs/user-manual/modules/ROOT/pages/rest-dsl-binding.adoc     |  2 +-
 .../apache/camel/dsl/jbang/core/commands/ai/eip-samples.json  |  2 +-
 .../camel/dsl/yaml/deserializers/ModelDeserializers.java      |  2 +-
 .../generated/resources/schema/camelYamlDsl-canonical.json    |  2 +-
 .../src/generated/resources/schema/camelYamlDsl-model.json    |  2 +-
 .../src/generated/resources/schema/camelYamlDsl.json          |  2 +-
 20 files changed, 52 insertions(+), 35 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/main.adoc
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/main.adoc
index b433a673a690..3307c9fd8801 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/main.adoc
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/main.adoc
@@ -422,7 +422,7 @@ The camel.rest supports 31 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | `camel.rest.apiComponent` | Sets the name of the Camel component to use as 
the REST API (such as swagger or openapi) |  | String
-| `camel.rest.apiContextPath` | Sets a leading API context-path the REST API 
services will be using. This can be used when using components such as 
camel-servlet where the deployed web application is deployed using a 
context-path. |  | String
+| `camel.rest.apiContextPath` | The path, such as /api-doc, where the REST DSL 
serves the API documentation of the REST services, as an OpenAPI document. The 
API documentation is only served when this option is set. This requires 
camel-openapi-java on the classpath. The document is JSON by default, or YAML 
when the request path ends with .yaml. The path is relative to contextPath, 
when that option is set. |  | String
 | `camel.rest.apiContextRouteId` | Sets the route id to use for the route that 
services the REST API. The route will by default use an auto assigned route id. 
|  | String
 | `camel.rest.apiHost` | To use a specific hostname for the API documentation 
(such as swagger or openapi) This can be used to override the generated host 
with this configured hostname |  | String
 | `camel.rest.apiProperties` | Sets additional options on api level |  | Map
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/pollEnrich-eip.adoc
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/pollEnrich-eip.adoc
index 18e81feaba9f..e9da59bd98c6 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/pollEnrich-eip.adoc
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/pollEnrich-eip.adoc
@@ -133,7 +133,7 @@ Java::
 [source,java]
 ----
 from("direct:order")
-  
.pollEnrich().simple("file:customers?fileName=${body[customer]}.json&noop=true")
+  
.pollEnrich().simple("file:customers?fileName=${body[customer]}.json&noop=true&idempotent=false")
     .timeout(5000).variableReceive("customer")
   .log("Order ${body[orderId]} for customer ${variable.customer}");
 ----
@@ -145,7 +145,7 @@ XML::
 <route>
   <from uri="direct:order"/>
   <pollEnrich timeout="5000" variableReceive="customer">
-    
<simple>file:customers?fileName=${body[customer]}.json&amp;noop=true</simple>
+    
<simple>file:customers?fileName=${body[customer]}.json&amp;noop=true&amp;idempotent=false</simple>
   </pollEnrich>
   <log message="Order ${body[orderId]} for customer ${variable.customer}"/>
 </route>
@@ -162,7 +162,7 @@ YAML::
         - pollEnrich:
             expression:
               simple:
-                expression: 
"file:customers?fileName=${body[customer]}.json&noop=true"
+                expression: 
"file:customers?fileName=${body[customer]}.json&noop=true&idempotent=false"
             timeout: 5000
             variableReceive: customer
         - log:
@@ -171,7 +171,10 @@ YAML::
 ====
 
 `noop=true` leaves the customer file where it is: without it, the file is 
moved into `customers/.camel` once it was
-read, and the next order of the same customer finds no file. When no file is 
found within the timeout, the variable is
+read. `idempotent=false` lets the file be read again: `noop=true` alone turns 
on `idempotent`, so the endpoint
+remembers each file it has read and skips it the next time. Both options are 
needed. Otherwise, the next order of the
+same customer finds no file. The timeout ends the wait when there is no file: 
without a timeout, `pollEnrich` waits
+until the file is there, as the default timeout is `-1`. When no file is found 
within the timeout, the variable is
 `null`. The variable holds the content of the file as text: to read its 
fields, unmarshal it, such as `unmarshal` with
 `json` and both `variableSend` and `variableReceive` set to `customer`, and 
then `${variable.customer[name]}`.
 
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/main/camel-main-configuration-metadata.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/main/camel-main-configuration-metadata.json
index f75856d4b773..0f286e6acee1 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/main/camel-main-configuration-metadata.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/main/camel-main-configuration-metadata.json
@@ -392,7 +392,7 @@
     { "name": "camel.resilience4j.waitDurationInOpenState", "required": false, 
"description": "Configures the wait duration which specifies how long the 
CircuitBreaker should stay open, before it switches to half open. Accepts Camel 
duration expressions (e.g. 60s, 1m) or millisecond values. Default value is 60 
seconds.", "sourceType": 
"org.apache.camel.main.Resilience4jConfigurationProperties", "type": "string", 
"javaType": "java.lang.String", "defaultValue": "60s", "secret": false },
     { "name": "camel.resilience4j.writableStackTraceEnabled", "required": 
false, "description": "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 as the cause of the exceptions is 
already known (the circuit breaker is short-circuiting calls).", "sourceType": 
"org.apache.camel.main.Resilience4jConfigurationProperties", "type": "boolean", 
"javaType": "java.lang.Boolean [...]
     { "name": "camel.rest.apiComponent", "required": false, "description": 
"Sets the name of the Camel component to use as the REST API (such as swagger 
or openapi)", "sourceType": "org.apache.camel.spi.RestConfiguration", "type": 
"string", "javaType": "java.lang.String", "secret": false },
-    { "name": "camel.rest.apiContextPath", "required": false, "description": 
"Sets a leading API context-path the REST API services will be using. This can 
be used when using components such as camel-servlet where the deployed web 
application is deployed using a context-path.", "sourceType": 
"org.apache.camel.spi.RestConfiguration", "type": "string", "javaType": 
"java.lang.String", "secret": false },
+    { "name": "camel.rest.apiContextPath", "required": false, "description": 
"The path, such as \/api-doc, where the REST DSL serves the API documentation 
of the REST services, as an OpenAPI document. The API documentation is only 
served when this option is set. This requires camel-openapi-java on the 
classpath. The document is JSON by default, or YAML when the request path ends 
with .yaml. The path is relative to contextPath, when that option is set.", 
"sourceType": "org.apache.camel.sp [...]
     { "name": "camel.rest.apiContextRouteId", "required": false, 
"description": "Sets the route id to use for the route that services the REST 
API. The route will by default use an auto assigned route id.", "sourceType": 
"org.apache.camel.spi.RestConfiguration", "type": "string", "javaType": 
"java.lang.String", "secret": false },
     { "name": "camel.rest.apiHost", "required": false, "description": "To use 
a specific hostname for the API documentation (such as swagger or openapi) This 
can be used to override the generated host with this configured hostname", 
"sourceType": "org.apache.camel.spi.RestConfiguration", "type": "string", 
"javaType": "java.lang.String", "secret": false },
     { "name": "camel.rest.apiProperties", "required": false, "description": 
"Sets additional options on api level", "sourceType": 
"org.apache.camel.spi.RestConfiguration", "type": "object", "javaType": 
"java.util.Map", "secret": false },
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/restConfiguration.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/restConfiguration.json
index 3603fb9f5ff4..5ffa9ad8364b 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/restConfiguration.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/restConfiguration.json
@@ -22,7 +22,7 @@
     "useXForwardHeaders": { "index": 7, "kind": "attribute", "displayName": 
"Use XForward Headers", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether to use X-Forward headers to set 
host etc. for OpenApi. This may be needed in special cases involving 
reverse-proxy and networking going from HTTP to HTTPS [...]
     "producerApiDoc": { "index": 8, "kind": "attribute", "displayName": 
"Producer Api Doc", "group": "producer (advanced)", "label": 
"producer,advanced", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "Sets the location of the api document the REST producer will 
use to validate the REST uri and query parameters are valid accordingly to the 
api document." },
     "contextPath": { "index": 9, "kind": "attribute", "displayName": "Context 
Path", "group": "consumer", "label": "consumer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets a leading context-path the REST 
services will be using. This can be used when using components such as 
camel-servlet where the deployed web application is deployed using a 
context-path." },
-    "apiContextPath": { "index": 10, "kind": "attribute", "displayName": "Api 
Context Path", "group": "consumer", "label": "consumer", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Sets a leading 
context-path the REST API will be using." },
+    "apiContextPath": { "index": 10, "kind": "attribute", "displayName": "Api 
Context Path", "group": "consumer", "label": "consumer", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "The path, such as 
\/api-doc, where the REST DSL serves the API documentation of the REST 
services, as an OpenAPI document. The API documentation is only served when 
this option is set. This requires camel-openapi-j [...]
     "apiContextRouteId": { "index": 11, "kind": "attribute", "displayName": 
"Api Context Route Id", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "Sets the route id to use for the route that services the REST 
API. The route will by default use an auto assigned route id." },
     "apiVendorExtension": { "index": 12, "kind": "attribute", "displayName": 
"Api Vendor Extension", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether vendor extension is enabled in 
the Rest APIs. If enabled then Camel will include additional information as 
vendor extension (eg keys starting with x-) su [...]
     "hostNameResolver": { "index": 13, "kind": "attribute", "displayName": 
"Host Name Resolver", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "enum", "javaType": 
"org.apache.camel.model.rest.RestHostNameResolver", "enum": [ "allLocalIp", 
"localHostName", "localIp", "none" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "allLocalIp", "description": "If no hostname 
has been explicit configured, then this resolver is u [...]
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
index 3fa9c7a6eccc..92526b71f23a 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
@@ -15299,7 +15299,10 @@ camel-servlet where the deployed web application is 
deployed using a context-pat
       <xs:annotation>
         <xs:documentation xml:lang="en">
 <![CDATA[
-Sets a leading context-path the REST API will be using.
+The path, such as /api-doc, where the REST DSL serves the API documentation of 
the REST services, as an OpenAPI
+document. The API documentation is only served when this option is set. This 
requires camel-openapi-java on the
+classpath. The document is JSON by default, or YAML when the request path ends 
with .yaml. The path is relative to
+contextPath, when that option is set.
 ]]>
         </xs:documentation>
       </xs:annotation>
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-xml-io.xsd
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-xml-io.xsd
index 7e894909bfe3..6e879f5cec64 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-xml-io.xsd
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-xml-io.xsd
@@ -14442,7 +14442,10 @@ camel-servlet where the deployed web application is 
deployed using a context-pat
       <xs:annotation>
         <xs:documentation xml:lang="en">
 <![CDATA[
-Sets a leading context-path the REST API will be using.
+The path, such as /api-doc, where the REST DSL serves the API documentation of 
the REST services, as an OpenAPI
+document. The API documentation is only served when this option is set. This 
requires camel-openapi-java on the
+classpath. The document is JSON by default, or YAML when the request path ends 
with .yaml. The path is relative to
+contextPath, when that option is set.
 ]]>
         </xs:documentation>
       </xs:annotation>
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camelYamlDsl-model.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camelYamlDsl-model.json
index 66e42a7fe157..8a0b9f6a4736 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camelYamlDsl-model.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camelYamlDsl-model.json
@@ -19059,7 +19059,7 @@
       }, {
         "name" : "apiContextPath",
         "type" : "string",
-        "description" : "Sets a leading context-path the REST API will be 
using.",
+        "description" : "The path, such as /api-doc, where the REST DSL serves 
the API documentation of the REST services, as an OpenAPI document. The API 
documentation is only served when this option is set. This requires 
camel-openapi-java on the classpath. The document is JSON by default, or YAML 
when the request path ends with .yaml. The path is relative to contextPath, 
when that option is set.",
         "title" : "Api Context Path",
         "displayName" : "Api Context Path",
         "kind" : "attribute",
diff --git 
a/core/camel-api/src/main/java/org/apache/camel/spi/RestConfiguration.java 
b/core/camel-api/src/main/java/org/apache/camel/spi/RestConfiguration.java
index b6408cc35b31..99f8fe9030ca 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/RestConfiguration.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/RestConfiguration.java
@@ -291,7 +291,7 @@ public class RestConfiguration {
     }
 
     /**
-     * Gets the leading API context-path the REST API services will be using.
+     * Gets the path where the REST DSL serves the API documentation of the 
REST services, as an OpenAPI document.
      *
      * @return the API context path, or <tt>null</tt> if none configured.
      */
@@ -300,10 +300,12 @@ public class RestConfiguration {
     }
 
     /**
-     * Sets a leading API context-path the REST API services will be using.
+     * The path, such as <tt>/api-doc</tt>, where the REST DSL serves the API 
documentation of the REST services, as an
+     * OpenAPI document.
      * <p/>
-     * This can be used when using components such as <tt>camel-servlet</tt> 
where the deployed web application is
-     * deployed using a context-path.
+     * The API documentation is only served when this option is set. This 
requires <tt>camel-openapi-java</tt> on the
+     * classpath. The document is JSON by default, or YAML when the request 
path ends with <tt>.yaml</tt>. The path is
+     * relative to contextPath, when that option is set.
      *
      * @param contextPath the API context path
      */
diff --git 
a/core/camel-core-engine/src/main/docs/modules/eips/pages/pollEnrich-eip.adoc 
b/core/camel-core-engine/src/main/docs/modules/eips/pages/pollEnrich-eip.adoc
index 18e81feaba9f..e9da59bd98c6 100644
--- 
a/core/camel-core-engine/src/main/docs/modules/eips/pages/pollEnrich-eip.adoc
+++ 
b/core/camel-core-engine/src/main/docs/modules/eips/pages/pollEnrich-eip.adoc
@@ -133,7 +133,7 @@ Java::
 [source,java]
 ----
 from("direct:order")
-  
.pollEnrich().simple("file:customers?fileName=${body[customer]}.json&noop=true")
+  
.pollEnrich().simple("file:customers?fileName=${body[customer]}.json&noop=true&idempotent=false")
     .timeout(5000).variableReceive("customer")
   .log("Order ${body[orderId]} for customer ${variable.customer}");
 ----
@@ -145,7 +145,7 @@ XML::
 <route>
   <from uri="direct:order"/>
   <pollEnrich timeout="5000" variableReceive="customer">
-    
<simple>file:customers?fileName=${body[customer]}.json&amp;noop=true</simple>
+    
<simple>file:customers?fileName=${body[customer]}.json&amp;noop=true&amp;idempotent=false</simple>
   </pollEnrich>
   <log message="Order ${body[orderId]} for customer ${variable.customer}"/>
 </route>
@@ -162,7 +162,7 @@ YAML::
         - pollEnrich:
             expression:
               simple:
-                expression: 
"file:customers?fileName=${body[customer]}.json&noop=true"
+                expression: 
"file:customers?fileName=${body[customer]}.json&noop=true&idempotent=false"
             timeout: 5000
             variableReceive: customer
         - log:
@@ -171,7 +171,10 @@ YAML::
 ====
 
 `noop=true` leaves the customer file where it is: without it, the file is 
moved into `customers/.camel` once it was
-read, and the next order of the same customer finds no file. When no file is 
found within the timeout, the variable is
+read. `idempotent=false` lets the file be read again: `noop=true` alone turns 
on `idempotent`, so the endpoint
+remembers each file it has read and skips it the next time. Both options are 
needed. Otherwise, the next order of the
+same customer finds no file. The timeout ends the wait when there is no file: 
without a timeout, `pollEnrich` waits
+until the file is there, as the default timeout is `-1`. When no file is found 
within the timeout, the variable is
 `null`. The variable holds the content of the file as text: to read its 
fields, unmarshal it, such as `unmarshal` with
 `json` and both `variableSend` and `variableReceive` set to `customer`, and 
then `${variable.customer[name]}`.
 
diff --git 
a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/rest/restConfiguration.json
 
b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/rest/restConfiguration.json
index 3603fb9f5ff4..5ffa9ad8364b 100644
--- 
a/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/rest/restConfiguration.json
+++ 
b/core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/rest/restConfiguration.json
@@ -22,7 +22,7 @@
     "useXForwardHeaders": { "index": 7, "kind": "attribute", "displayName": 
"Use XForward Headers", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether to use X-Forward headers to set 
host etc. for OpenApi. This may be needed in special cases involving 
reverse-proxy and networking going from HTTP to HTTPS [...]
     "producerApiDoc": { "index": 8, "kind": "attribute", "displayName": 
"Producer Api Doc", "group": "producer (advanced)", "label": 
"producer,advanced", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "Sets the location of the api document the REST producer will 
use to validate the REST uri and query parameters are valid accordingly to the 
api document." },
     "contextPath": { "index": 9, "kind": "attribute", "displayName": "Context 
Path", "group": "consumer", "label": "consumer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets a leading context-path the REST 
services will be using. This can be used when using components such as 
camel-servlet where the deployed web application is deployed using a 
context-path." },
-    "apiContextPath": { "index": 10, "kind": "attribute", "displayName": "Api 
Context Path", "group": "consumer", "label": "consumer", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Sets a leading 
context-path the REST API will be using." },
+    "apiContextPath": { "index": 10, "kind": "attribute", "displayName": "Api 
Context Path", "group": "consumer", "label": "consumer", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "The path, such as 
\/api-doc, where the REST DSL serves the API documentation of the REST 
services, as an OpenAPI document. The API documentation is only served when 
this option is set. This requires camel-openapi-j [...]
     "apiContextRouteId": { "index": 11, "kind": "attribute", "displayName": 
"Api Context Route Id", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "Sets the route id to use for the route that services the REST 
API. The route will by default use an auto assigned route id." },
     "apiVendorExtension": { "index": 12, "kind": "attribute", "displayName": 
"Api Vendor Extension", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether vendor extension is enabled in 
the Rest APIs. If enabled then Camel will include additional information as 
vendor extension (eg keys starting with x-) su [...]
     "hostNameResolver": { "index": 13, "kind": "attribute", "displayName": 
"Host Name Resolver", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "enum", "javaType": 
"org.apache.camel.model.rest.RestHostNameResolver", "enum": [ "allLocalIp", 
"localHostName", "localIp", "none" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "allLocalIp", "description": "If no hostname 
has been explicit configured, then this resolver is u [...]
diff --git 
a/core/camel-core-model/src/main/java/org/apache/camel/model/rest/RestConfigurationDefinition.java
 
b/core/camel-core-model/src/main/java/org/apache/camel/model/rest/RestConfigurationDefinition.java
index 1a4a7a1f4dfa..2e8c2392f0d9 100644
--- 
a/core/camel-core-model/src/main/java/org/apache/camel/model/rest/RestConfigurationDefinition.java
+++ 
b/core/camel-core-model/src/main/java/org/apache/camel/model/rest/RestConfigurationDefinition.java
@@ -79,7 +79,7 @@ public class RestConfigurationDefinition {
               label = "consumer")
     private String contextPath;
     @XmlAttribute
-    @Metadata(description = "Sets a leading context-path the REST API will be 
using.",
+    @Metadata(description = "The path, such as /api-doc, where the REST DSL 
serves the API documentation of the REST services, as an OpenAPI document. The 
API documentation is only served when this option is set. This requires 
camel-openapi-java on the classpath. The document is JSON by default, or YAML 
when the request path ends with .yaml. The path is relative to contextPath, 
when that option is set.",
               label = "consumer")
     private String apiContextPath;
     @XmlAttribute
@@ -492,11 +492,12 @@ public class RestConfigurationDefinition {
     }
 
     /**
-     * Sets a leading context-path the REST API will be using.
+     * The path, such as <tt>/api-doc</tt>, where the REST DSL serves the API 
documentation of the REST services, as an
+     * OpenAPI document.
      * <p/>
-     * This can be used when using components such as <tt>camel-servlet</tt> 
where the deployed web application is
-     * deployed using a context-path. Or for components such as 
<tt>camel-jetty</tt> or <tt>camel-netty-http</tt> that
-     * includes a HTTP server.
+     * The API documentation is only served when this option is set. This 
requires <tt>camel-openapi-java</tt> on the
+     * classpath. The document is JSON by default, or YAML when the request 
path ends with <tt>.yaml</tt>. The path is
+     * relative to contextPath, when that option is set.
      */
     public RestConfigurationDefinition apiContextPath(String contextPath) {
         setApiContextPath(contextPath);
diff --git 
a/core/camel-main/src/generated/resources/META-INF/camel-main-configuration-metadata.json
 
b/core/camel-main/src/generated/resources/META-INF/camel-main-configuration-metadata.json
index f75856d4b773..0f286e6acee1 100644
--- 
a/core/camel-main/src/generated/resources/META-INF/camel-main-configuration-metadata.json
+++ 
b/core/camel-main/src/generated/resources/META-INF/camel-main-configuration-metadata.json
@@ -392,7 +392,7 @@
     { "name": "camel.resilience4j.waitDurationInOpenState", "required": false, 
"description": "Configures the wait duration which specifies how long the 
CircuitBreaker should stay open, before it switches to half open. Accepts Camel 
duration expressions (e.g. 60s, 1m) or millisecond values. Default value is 60 
seconds.", "sourceType": 
"org.apache.camel.main.Resilience4jConfigurationProperties", "type": "string", 
"javaType": "java.lang.String", "defaultValue": "60s", "secret": false },
     { "name": "camel.resilience4j.writableStackTraceEnabled", "required": 
false, "description": "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 as the cause of the exceptions is 
already known (the circuit breaker is short-circuiting calls).", "sourceType": 
"org.apache.camel.main.Resilience4jConfigurationProperties", "type": "boolean", 
"javaType": "java.lang.Boolean [...]
     { "name": "camel.rest.apiComponent", "required": false, "description": 
"Sets the name of the Camel component to use as the REST API (such as swagger 
or openapi)", "sourceType": "org.apache.camel.spi.RestConfiguration", "type": 
"string", "javaType": "java.lang.String", "secret": false },
-    { "name": "camel.rest.apiContextPath", "required": false, "description": 
"Sets a leading API context-path the REST API services will be using. This can 
be used when using components such as camel-servlet where the deployed web 
application is deployed using a context-path.", "sourceType": 
"org.apache.camel.spi.RestConfiguration", "type": "string", "javaType": 
"java.lang.String", "secret": false },
+    { "name": "camel.rest.apiContextPath", "required": false, "description": 
"The path, such as \/api-doc, where the REST DSL serves the API documentation 
of the REST services, as an OpenAPI document. The API documentation is only 
served when this option is set. This requires camel-openapi-java on the 
classpath. The document is JSON by default, or YAML when the request path ends 
with .yaml. The path is relative to contextPath, when that option is set.", 
"sourceType": "org.apache.camel.sp [...]
     { "name": "camel.rest.apiContextRouteId", "required": false, 
"description": "Sets the route id to use for the route that services the REST 
API. The route will by default use an auto assigned route id.", "sourceType": 
"org.apache.camel.spi.RestConfiguration", "type": "string", "javaType": 
"java.lang.String", "secret": false },
     { "name": "camel.rest.apiHost", "required": false, "description": "To use 
a specific hostname for the API documentation (such as swagger or openapi) This 
can be used to override the generated host with this configured hostname", 
"sourceType": "org.apache.camel.spi.RestConfiguration", "type": "string", 
"javaType": "java.lang.String", "secret": false },
     { "name": "camel.rest.apiProperties", "required": false, "description": 
"Sets additional options on api level", "sourceType": 
"org.apache.camel.spi.RestConfiguration", "type": "object", "javaType": 
"java.util.Map", "secret": false },
diff --git a/core/camel-main/src/main/docs/main.adoc 
b/core/camel-main/src/main/docs/main.adoc
index b433a673a690..3307c9fd8801 100644
--- a/core/camel-main/src/main/docs/main.adoc
+++ b/core/camel-main/src/main/docs/main.adoc
@@ -422,7 +422,7 @@ The camel.rest supports 31 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | `camel.rest.apiComponent` | Sets the name of the Camel component to use as 
the REST API (such as swagger or openapi) |  | String
-| `camel.rest.apiContextPath` | Sets a leading API context-path the REST API 
services will be using. This can be used when using components such as 
camel-servlet where the deployed web application is deployed using a 
context-path. |  | String
+| `camel.rest.apiContextPath` | The path, such as /api-doc, where the REST DSL 
serves the API documentation of the REST services, as an OpenAPI document. The 
API documentation is only served when this option is set. This requires 
camel-openapi-java on the classpath. The document is JSON by default, or YAML 
when the request path ends with .yaml. The path is relative to contextPath, 
when that option is set. |  | String
 | `camel.rest.apiContextRouteId` | Sets the route id to use for the route that 
services the REST API. The route will by default use an auto assigned route id. 
|  | String
 | `camel.rest.apiHost` | To use a specific hostname for the API documentation 
(such as swagger or openapi) This can be used to override the generated host 
with this configured hostname |  | String
 | `camel.rest.apiProperties` | Sets additional options on api level |  | Map
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/RestConfigurationProperties.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/RestConfigurationProperties.java
index 10bb81d06e8a..2e2c222c7569 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/RestConfigurationProperties.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/RestConfigurationProperties.java
@@ -164,10 +164,12 @@ public class RestConfigurationProperties extends 
RestConfiguration implements Bo
     }
 
     /**
-     * Sets a leading API context-path the REST API services will be using.
+     * The path, such as <tt>/api-doc</tt>, where the REST DSL serves the API 
documentation of the REST services, as an
+     * OpenAPI document.
      * <p/>
-     * This can be used when using components such as <tt>camel-servlet</tt> 
where the deployed web application is
-     * deployed using a context-path.
+     * The API documentation is only served when this option is set. This 
requires <tt>camel-openapi-java</tt> on the
+     * classpath. The document is JSON by default, or YAML when the request 
path ends with <tt>.yaml</tt>. The path is
+     * relative to contextPath, when that option is set.
      */
     public RestConfigurationProperties withApiContextPath(String 
apiContextPath) {
         setApiContextPath(apiContextPath);
diff --git a/docs/user-manual/modules/ROOT/pages/rest-dsl-binding.adoc 
b/docs/user-manual/modules/ROOT/pages/rest-dsl-binding.adoc
index 207b25dac28f..2ad02c8fae8b 100644
--- a/docs/user-manual/modules/ROOT/pages/rest-dsl-binding.adoc
+++ b/docs/user-manual/modules/ROOT/pages/rest-dsl-binding.adoc
@@ -359,7 +359,7 @@ The Rest DSL supports the following options:
 |===
 | Name | Default | Type | Description
 | *apiComponent*|| String| Sets the name of the Camel component to use as the 
REST API (such as swagger or openapi)
-| *apiContextPath*|| String| Sets a leading API context-path the REST API 
services will be using. This can be used when using components such as 
camel-servlet where the deployed web application is deployed using a 
context-path.
+| *apiContextPath*|| String| The path, such as /api-doc, where the REST DSL 
serves the API documentation of the REST services, as an OpenAPI document. The 
API documentation is only served when this option is set. This requires 
camel-openapi-java on the classpath. The document is JSON by default, or YAML 
when the request path ends with .yaml. The path is relative to contextPath, 
when that option is set.
 | *apiHost*|| String| To use a specific hostname for the API documentation 
(such as swagger or openapi) This can be used to override the generated host 
with this configured hostname
 | *apiProperties*|| Map| Sets additional options on api level
 | *apiVendorExtension*| false| boolean| Whether a vendor extension is enabled 
in the Rest APIs. If enabled, then Camel will include additional information as 
a vendor extension (e.g., keys starting with `_x-_`) such as route ids, class 
names etc. Not all third party API gateways and tools support vendor-extensions 
when importing your API docs.
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/generated/resources/org/apache/camel/dsl/jbang/core/commands/ai/eip-samples.json
 
b/dsl/camel-jbang/camel-jbang-core/src/generated/resources/org/apache/camel/dsl/jbang/core/commands/ai/eip-samples.json
index b9ea20c18570..949386bd1179 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/generated/resources/org/apache/camel/dsl/jbang/core/commands/ai/eip-samples.json
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/generated/resources/org/apache/camel/dsl/jbang/core/commands/ai/eip-samples.json
@@ -874,7 +874,7 @@
     },
     {
       "source": "pollEnrich-eip.adoc",
-      "yaml": "- route:\n    from:\n      uri: direct:order\n      steps:\n    
    - pollEnrich:\n            expression:\n              simple:\n             
   expression: \"file:customers?fileName=${body[customer]}.json&noop=true\"\n   
         timeout: 5000\n            variableReceive: customer\n        - log:\n 
           message: \"Order ${body[orderId]} for customer 
${variable.customer}\"\n"
+      "yaml": "- route:\n    from:\n      uri: direct:order\n      steps:\n    
    - pollEnrich:\n            expression:\n              simple:\n             
   expression: 
\"file:customers?fileName=${body[customer]}.json&noop=true&idempotent=false\"\n 
           timeout: 5000\n            variableReceive: customer\n        - 
log:\n            message: \"Order ${body[orderId]} for customer 
${variable.customer}\"\n"
     },
     {
       "source": "pollEnrich-eip.adoc",
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java
index 6623fe5ca322..302fec077acd 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java
@@ -14750,7 +14750,7 @@ public final class ModelDeserializers extends 
YamlDeserializerSupport {
             deprecated = false,
             properties = {
                     @YamlProperty(name = "apiComponent", type = 
"enum:openapi,swagger", description = "The name of the Camel component to use 
as the REST API (such as OpenApi).", displayName = "Api Component"),
-                    @YamlProperty(name = "apiContextPath", type = "string", 
description = "Sets a leading context-path the REST API will be using.", 
displayName = "Api Context Path"),
+                    @YamlProperty(name = "apiContextPath", type = "string", 
description = "The path, such as /api-doc, where the REST DSL serves the API 
documentation of the REST services, as an OpenAPI document. The API 
documentation is only served when this option is set. This requires 
camel-openapi-java on the classpath. The document is JSON by default, or YAML 
when the request path ends with .yaml. The path is relative to contextPath, 
when that option is set.", displayName = "Api Con [...]
                     @YamlProperty(name = "apiContextRouteId", type = "string", 
description = "Sets the route id to use for the route that services the REST 
API. The route will by default use an auto assigned route id.", displayName = 
"Api Context Route Id"),
                     @YamlProperty(name = "apiHost", type = "string", 
description = "To use a specific hostname for the API documentation (such as 
swagger or openapi). This can be used to override the generated host with this 
configured hostname.", displayName = "Api Host"),
                     @YamlProperty(name = "apiProperty", type = 
"array:org.apache.camel.model.rest.RestPropertyDefinition", description = 
"Allows to configure as many additional properties for the api documentation.", 
displayName = "Api Property"),
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl-canonical.json
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl-canonical.json
index 41b21d668f1b..69dc0cf93ece 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl-canonical.json
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl-canonical.json
@@ -12531,7 +12531,7 @@
           "apiContextPath" : {
             "type" : "string",
             "title" : "Api Context Path",
-            "description" : "Sets a leading context-path the REST API will be 
using."
+            "description" : "The path, such as /api-doc, where the REST DSL 
serves the API documentation of the REST services, as an OpenAPI document. The 
API documentation is only served when this option is set. This requires 
camel-openapi-java on the classpath. The document is JSON by default, or YAML 
when the request path ends with .yaml. The path is relative to contextPath, 
when that option is set."
           },
           "apiContextRouteId" : {
             "type" : "string",
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl-model.json
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl-model.json
index 66e42a7fe157..8a0b9f6a4736 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl-model.json
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl-model.json
@@ -19059,7 +19059,7 @@
       }, {
         "name" : "apiContextPath",
         "type" : "string",
-        "description" : "Sets a leading context-path the REST API will be 
using.",
+        "description" : "The path, such as /api-doc, where the REST DSL serves 
the API documentation of the REST services, as an OpenAPI document. The API 
documentation is only served when this option is set. This requires 
camel-openapi-java on the classpath. The document is JSON by default, or YAML 
when the request path ends with .yaml. The path is relative to contextPath, 
when that option is set.",
         "title" : "Api Context Path",
         "displayName" : "Api Context Path",
         "kind" : "attribute",
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json
index 968b55b1d08e..2c47ee81ca96 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json
@@ -14971,7 +14971,7 @@
           "apiContextPath" : {
             "type" : "string",
             "title" : "Api Context Path",
-            "description" : "Sets a leading context-path the REST API will be 
using."
+            "description" : "The path, such as /api-doc, where the REST DSL 
serves the API documentation of the REST services, as an OpenAPI document. The 
API documentation is only served when this option is set. This requires 
camel-openapi-java on the classpath. The document is JSON by default, or YAML 
when the request path ends with .yaml. The path is relative to contextPath, 
when that option is set."
           },
           "apiContextRouteId" : {
             "type" : "string",

Reply via email to