From 40da330d037f9aa3b97358e175aa6d5f8fb27459 Mon Sep 17 00:00:00 2001 From: ikulaga Date: Thu, 26 Sep 2024 00:12:05 +0500 Subject: [PATCH] CAMEL-20503: camel-http OAuth2 support for caching / refreshing tokens - added caching oauth2 tokens for http component, and configuration parameters for caching --- .../components/atmosphere-websocket.json | 5 +- .../apache/camel/catalog/components/http.json | 15 +- .../camel/catalog/components/https.json | 15 +- .../camel/catalog/schemas/camel-spring.xsd | 36702 ++++++++-------- .../WebsocketEndpointConfigurer.java | 18 + .../WebsocketEndpointUriFactory.java | 5 +- .../websocket/atmosphere-websocket.json | 5 +- ...onnectorEmbeddedDebeziumConfiguration.java | 2 +- .../camel/http/common/HttpCommonEndpoint.java | 46 + .../camel/http/common/HttpConfiguration.java | 47 + .../http/HttpEndpointConfigurer.java | 18 + .../http/HttpEndpointUriFactory.java | 5 +- .../org/apache/camel/component/http/http.json | 15 +- .../apache/camel/component/http/https.json | 15 +- .../camel/component/http/HttpComponent.java | 27 +- .../http/OAuth2ClientConfigurer.java | 142 +- .../endpoint/EndpointBuilderFactory.java | 46 +- .../builder/endpoint/EndpointBuilders.java | 46 +- .../endpoint/StaticEndpointBuilders.java | 12 +- .../dsl/AMQPEndpointBuilderFactory.java | 18 +- .../dsl/ActiveMQ6EndpointBuilderFactory.java | 18 +- .../dsl/ActiveMQEndpointBuilderFactory.java | 18 +- ...sphereWebsocketEndpointBuilderFactory.java | 106 + ...ffeineLoadCacheEndpointBuilderFactory.java | 3 +- .../DynamicRouterEndpointBuilderFactory.java | 6 +- ...astAtomicnumberEndpointBuilderFactory.java | 3 +- .../dsl/HttpEndpointBuilderFactory.java | 112 +- .../dsl/JmsEndpointBuilderFactory.java | 18 +- .../dsl/LogEndpointBuilderFactory.java | 3 +- .../MyBatisBeanEndpointBuilderFactory.java | 6 +- ...ReactiveStreamsEndpointBuilderFactory.java | 6 +- .../SpringRabbitMQEndpointBuilderFactory.java | 6 +- .../dsl/ZeebeEndpointBuilderFactory.java | 3 +- 33 files changed, 19011 insertions(+), 18501 deletions(-) diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/atmosphere-websocket.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/atmosphere-websocket.json index 79bf2d0aa505f..ec99a3e57f7fb 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/atmosphere-websocket.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/atmosphere-websocket.json @@ -72,6 +72,9 @@ "optionsEnabled": { "index": 24, "kind": "parameter", "displayName": "Options Enabled", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Specifies whether to enable HTTP OPTIONS for this Servlet consumer. By default OPTIONS is turned off." }, "traceEnabled": { "index": 25, "kind": "parameter", "displayName": "Trace Enabled", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Specifies whether to enable HTTP TRACE for this Servlet consumer. By default TRACE is turned off." }, "bridgeEndpoint": { "index": 26, "kind": "parameter", "displayName": "Bridge Endpoint", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the option is true, HttpProducer will ignore the Exchange.HTTP_URI header, and use the endpoint's URI for request. You may also set the option throwExceptionOnFailure to be false to let the HttpProducer send all the fault response back." }, - "lazyStartProducer": { "index": 27, "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 producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing." } + "lazyStartProducer": { "index": 27, "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 producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing." }, + "oauth2CachedTokensDefaultExpirySeconds": { "index": 28, "kind": "parameter", "displayName": "Oauth2 Cached Tokens Default Expiry Seconds", "group": "security", "label": "producer,security", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 3600, "description": "Default expiration time for cached OAuth2 tokens, in seconds. Used if token response does not contain 'expires_in' field." }, + "oauth2CachedTokensExpirationMarginSeconds": { "index": 29, "kind": "parameter", "displayName": "Oauth2 Cached Tokens Expiration Margin Seconds", "group": "security", "label": "producer,security", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 5, "description": "Amount of time which is deducted from OAuth2 tokens expiry time to compensate for the time it takes OAuth2 Token Endpoint to send the token over http, in seconds. Set this parameter to high value if you OAuth2 Token Endpoint answers slowly or you tokens expire quickly. If you set this parameter to too small value, you can get 4xx http errors because camel will think that the received token is still valid, while in reality the token is expired for the Authentication server." }, + "oauth2CacheTokens": { "index": 30, "kind": "parameter", "displayName": "Oauth2 Cache Tokens", "group": "security", "label": "producer,security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to cache OAuth2 client tokens." } } } diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/http.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/http.json index caa43c1b69937..2e2f0473f0812 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/http.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/http.json @@ -134,11 +134,14 @@ "authMethodPriority": { "index": 46, "kind": "parameter", "displayName": "Auth Method Priority", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "Basic", "Digest", "NTLM" ], "deprecated": false, "autowired": false, "secret": false, "description": "Which authentication method to prioritize to use, either as Basic, Digest or NTLM." }, "authPassword": { "index": 47, "kind": "parameter", "displayName": "Auth Password", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "Authentication password" }, "authUsername": { "index": 48, "kind": "parameter", "displayName": "Auth Username", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "Authentication username" }, - "oauth2ClientId": { "index": 49, "kind": "parameter", "displayName": "Oauth2 Client Id", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "OAuth2 client id" }, - "oauth2ClientSecret": { "index": 50, "kind": "parameter", "displayName": "Oauth2 Client Secret", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "OAuth2 client secret" }, - "oauth2Scope": { "index": 51, "kind": "parameter", "displayName": "Oauth2 Scope", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "OAuth2 scope" }, - "oauth2TokenEndpoint": { "index": 52, "kind": "parameter", "displayName": "Oauth2 Token Endpoint", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "OAuth2 Token endpoint" }, - "sslContextParameters": { "index": 53, "kind": "parameter", "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. Important: Only one instance of org.apache.camel.util.jsse.SSLContextParameters is supported per HttpComponent. If you need to use 2 or more different instances, you need to define a new HttpComponent per instance you need." }, - "x509HostnameVerifier": { "index": 54, "kind": "parameter", "displayName": "X509 Hostname Verifier", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom X509HostnameVerifier such as DefaultHostnameVerifier or NoopHostnameVerifier" } + "oauth2CachedTokensDefaultExpirySeconds": { "index": 49, "kind": "parameter", "displayName": "Oauth2 Cached Tokens Default Expiry Seconds", "group": "security", "label": "producer,security", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 3600, "description": "Default expiration time for cached OAuth2 tokens, in seconds. Used if token response does not contain 'expires_in' field." }, + "oauth2CachedTokensExpirationMarginSeconds": { "index": 50, "kind": "parameter", "displayName": "Oauth2 Cached Tokens Expiration Margin Seconds", "group": "security", "label": "producer,security", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 5, "description": "Amount of time which is deducted from OAuth2 tokens expiry time to compensate for the time it takes OAuth2 Token Endpoint to send the token over http, in seconds. Set this parameter to high value if you OAuth2 Token Endpoint answers slowly or you tokens expire quickly. If you set this parameter to too small value, you can get 4xx http errors because camel will think that the received token is still valid, while in reality the token is expired for the Authentication server." }, + "oauth2CacheTokens": { "index": 51, "kind": "parameter", "displayName": "Oauth2 Cache Tokens", "group": "security", "label": "producer,security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to cache OAuth2 client tokens." }, + "oauth2ClientId": { "index": 52, "kind": "parameter", "displayName": "Oauth2 Client Id", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "OAuth2 client id" }, + "oauth2ClientSecret": { "index": 53, "kind": "parameter", "displayName": "Oauth2 Client Secret", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "OAuth2 client secret" }, + "oauth2Scope": { "index": 54, "kind": "parameter", "displayName": "Oauth2 Scope", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "OAuth2 scope" }, + "oauth2TokenEndpoint": { "index": 55, "kind": "parameter", "displayName": "Oauth2 Token Endpoint", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "OAuth2 Token endpoint" }, + "sslContextParameters": { "index": 56, "kind": "parameter", "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. Important: Only one instance of org.apache.camel.util.jsse.SSLContextParameters is supported per HttpComponent. If you need to use 2 or more different instances, you need to define a new HttpComponent per instance you need." }, + "x509HostnameVerifier": { "index": 57, "kind": "parameter", "displayName": "X509 Hostname Verifier", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom X509HostnameVerifier such as DefaultHostnameVerifier or NoopHostnameVerifier" } } } diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/https.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/https.json index 269f80bfe23c9..d897219586d06 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/https.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/https.json @@ -134,11 +134,14 @@ "authMethodPriority": { "index": 46, "kind": "parameter", "displayName": "Auth Method Priority", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "Basic", "Digest", "NTLM" ], "deprecated": false, "autowired": false, "secret": false, "description": "Which authentication method to prioritize to use, either as Basic, Digest or NTLM." }, "authPassword": { "index": 47, "kind": "parameter", "displayName": "Auth Password", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "Authentication password" }, "authUsername": { "index": 48, "kind": "parameter", "displayName": "Auth Username", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "Authentication username" }, - "oauth2ClientId": { "index": 49, "kind": "parameter", "displayName": "Oauth2 Client Id", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "OAuth2 client id" }, - "oauth2ClientSecret": { "index": 50, "kind": "parameter", "displayName": "Oauth2 Client Secret", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "OAuth2 client secret" }, - "oauth2Scope": { "index": 51, "kind": "parameter", "displayName": "Oauth2 Scope", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "OAuth2 scope" }, - "oauth2TokenEndpoint": { "index": 52, "kind": "parameter", "displayName": "Oauth2 Token Endpoint", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "OAuth2 Token endpoint" }, - "sslContextParameters": { "index": 53, "kind": "parameter", "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. Important: Only one instance of org.apache.camel.util.jsse.SSLContextParameters is supported per HttpComponent. If you need to use 2 or more different instances, you need to define a new HttpComponent per instance you need." }, - "x509HostnameVerifier": { "index": 54, "kind": "parameter", "displayName": "X509 Hostname Verifier", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom X509HostnameVerifier such as DefaultHostnameVerifier or NoopHostnameVerifier" } + "oauth2CachedTokensDefaultExpirySeconds": { "index": 49, "kind": "parameter", "displayName": "Oauth2 Cached Tokens Default Expiry Seconds", "group": "security", "label": "producer,security", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 3600, "description": "Default expiration time for cached OAuth2 tokens, in seconds. Used if token response does not contain 'expires_in' field." }, + "oauth2CachedTokensExpirationMarginSeconds": { "index": 50, "kind": "parameter", "displayName": "Oauth2 Cached Tokens Expiration Margin Seconds", "group": "security", "label": "producer,security", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 5, "description": "Amount of time which is deducted from OAuth2 tokens expiry time to compensate for the time it takes OAuth2 Token Endpoint to send the token over http, in seconds. Set this parameter to high value if you OAuth2 Token Endpoint answers slowly or you tokens expire quickly. If you set this parameter to too small value, you can get 4xx http errors because camel will think that the received token is still valid, while in reality the token is expired for the Authentication server." }, + "oauth2CacheTokens": { "index": 51, "kind": "parameter", "displayName": "Oauth2 Cache Tokens", "group": "security", "label": "producer,security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to cache OAuth2 client tokens." }, + "oauth2ClientId": { "index": 52, "kind": "parameter", "displayName": "Oauth2 Client Id", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "OAuth2 client id" }, + "oauth2ClientSecret": { "index": 53, "kind": "parameter", "displayName": "Oauth2 Client Secret", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "OAuth2 client secret" }, + "oauth2Scope": { "index": 54, "kind": "parameter", "displayName": "Oauth2 Scope", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "OAuth2 scope" }, + "oauth2TokenEndpoint": { "index": 55, "kind": "parameter", "displayName": "Oauth2 Token Endpoint", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "OAuth2 Token endpoint" }, + "sslContextParameters": { "index": 56, "kind": "parameter", "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. Important: Only one instance of org.apache.camel.util.jsse.SSLContextParameters is supported per HttpComponent. If you need to use 2 or more different instances, you need to define a new HttpComponent per instance you need." }, + "x509HostnameVerifier": { "index": 57, "kind": "parameter", "displayName": "X509 Hostname Verifier", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom X509HostnameVerifier such as DefaultHostnameVerifier or NoopHostnameVerifier" } } } 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 56ef280c647a9..f8ec3709cf3ec 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 @@ -1,18494 +1,18494 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/components/camel-atmosphere-websocket/src/generated/java/org/apache/camel/component/atmosphere/websocket/WebsocketEndpointConfigurer.java b/components/camel-atmosphere-websocket/src/generated/java/org/apache/camel/component/atmosphere/websocket/WebsocketEndpointConfigurer.java index a95c9e1651cf1..9d3fddd26ee11 100644 --- a/components/camel-atmosphere-websocket/src/generated/java/org/apache/camel/component/atmosphere/websocket/WebsocketEndpointConfigurer.java +++ b/components/camel-atmosphere-websocket/src/generated/java/org/apache/camel/component/atmosphere/websocket/WebsocketEndpointConfigurer.java @@ -27,6 +27,12 @@ public boolean configure(CamelContext camelContext, Object obj, String name, Obj case "bridgeEndpoint": target.setBridgeEndpoint(property(camelContext, boolean.class, value)); return true; case "lazystartproducer": case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true; + case "oauth2cachetokens": + case "oauth2CacheTokens": target.setOauth2CacheTokens(property(camelContext, boolean.class, value)); return true; + case "oauth2cachedtokensdefaultexpiryseconds": + case "oauth2CachedTokensDefaultExpirySeconds": target.setOauth2CachedTokensDefaultExpirySeconds(property(camelContext, long.class, value)); return true; + case "oauth2cachedtokensexpirationmarginseconds": + case "oauth2CachedTokensExpirationMarginSeconds": target.setOauth2CachedTokensExpirationMarginSeconds(property(camelContext, long.class, value)); return true; case "sendtoall": case "sendToAll": target.setSendToAll(property(camelContext, boolean.class, value)); return true; case "usestreaming": @@ -42,6 +48,12 @@ public Class getOptionType(String name, boolean ignoreCase) { case "bridgeEndpoint": return boolean.class; case "lazystartproducer": case "lazyStartProducer": return boolean.class; + case "oauth2cachetokens": + case "oauth2CacheTokens": return boolean.class; + case "oauth2cachedtokensdefaultexpiryseconds": + case "oauth2CachedTokensDefaultExpirySeconds": return long.class; + case "oauth2cachedtokensexpirationmarginseconds": + case "oauth2CachedTokensExpirationMarginSeconds": return long.class; case "sendtoall": case "sendToAll": return boolean.class; case "usestreaming": @@ -58,6 +70,12 @@ public Object getOptionValue(Object obj, String name, boolean ignoreCase) { case "bridgeEndpoint": return target.isBridgeEndpoint(); case "lazystartproducer": case "lazyStartProducer": return target.isLazyStartProducer(); + case "oauth2cachetokens": + case "oauth2CacheTokens": return target.isOauth2CacheTokens(); + case "oauth2cachedtokensdefaultexpiryseconds": + case "oauth2CachedTokensDefaultExpirySeconds": return target.getOauth2CachedTokensDefaultExpirySeconds(); + case "oauth2cachedtokensexpirationmarginseconds": + case "oauth2CachedTokensExpirationMarginSeconds": return target.getOauth2CachedTokensExpirationMarginSeconds(); case "sendtoall": case "sendToAll": return target.isSendToAll(); case "usestreaming": diff --git a/components/camel-atmosphere-websocket/src/generated/java/org/apache/camel/component/atmosphere/websocket/WebsocketEndpointUriFactory.java b/components/camel-atmosphere-websocket/src/generated/java/org/apache/camel/component/atmosphere/websocket/WebsocketEndpointUriFactory.java index d65bdb97a77cc..52007aab5753f 100644 --- a/components/camel-atmosphere-websocket/src/generated/java/org/apache/camel/component/atmosphere/websocket/WebsocketEndpointUriFactory.java +++ b/components/camel-atmosphere-websocket/src/generated/java/org/apache/camel/component/atmosphere/websocket/WebsocketEndpointUriFactory.java @@ -23,7 +23,7 @@ public class WebsocketEndpointUriFactory extends org.apache.camel.support.compon private static final Set SECRET_PROPERTY_NAMES; private static final Set MULTI_VALUE_PREFIXES; static { - Set props = new HashSet<>(28); + Set props = new HashSet<>(31); props.add("async"); props.add("attachmentMultipartBinding"); props.add("bridgeEndpoint"); @@ -44,6 +44,9 @@ public class WebsocketEndpointUriFactory extends org.apache.camel.support.compon props.add("mapHttpMessageHeaders"); props.add("matchOnUriPrefix"); props.add("muteException"); + props.add("oauth2CacheTokens"); + props.add("oauth2CachedTokensDefaultExpirySeconds"); + props.add("oauth2CachedTokensExpirationMarginSeconds"); props.add("optionsEnabled"); props.add("responseBufferSize"); props.add("sendToAll"); diff --git a/components/camel-atmosphere-websocket/src/generated/resources/META-INF/org/apache/camel/component/atmosphere/websocket/atmosphere-websocket.json b/components/camel-atmosphere-websocket/src/generated/resources/META-INF/org/apache/camel/component/atmosphere/websocket/atmosphere-websocket.json index 79bf2d0aa505f..ec99a3e57f7fb 100644 --- a/components/camel-atmosphere-websocket/src/generated/resources/META-INF/org/apache/camel/component/atmosphere/websocket/atmosphere-websocket.json +++ b/components/camel-atmosphere-websocket/src/generated/resources/META-INF/org/apache/camel/component/atmosphere/websocket/atmosphere-websocket.json @@ -72,6 +72,9 @@ "optionsEnabled": { "index": 24, "kind": "parameter", "displayName": "Options Enabled", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Specifies whether to enable HTTP OPTIONS for this Servlet consumer. By default OPTIONS is turned off." }, "traceEnabled": { "index": 25, "kind": "parameter", "displayName": "Trace Enabled", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Specifies whether to enable HTTP TRACE for this Servlet consumer. By default TRACE is turned off." }, "bridgeEndpoint": { "index": 26, "kind": "parameter", "displayName": "Bridge Endpoint", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the option is true, HttpProducer will ignore the Exchange.HTTP_URI header, and use the endpoint's URI for request. You may also set the option throwExceptionOnFailure to be false to let the HttpProducer send all the fault response back." }, - "lazyStartProducer": { "index": 27, "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 producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing." } + "lazyStartProducer": { "index": 27, "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 producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing." }, + "oauth2CachedTokensDefaultExpirySeconds": { "index": 28, "kind": "parameter", "displayName": "Oauth2 Cached Tokens Default Expiry Seconds", "group": "security", "label": "producer,security", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 3600, "description": "Default expiration time for cached OAuth2 tokens, in seconds. Used if token response does not contain 'expires_in' field." }, + "oauth2CachedTokensExpirationMarginSeconds": { "index": 29, "kind": "parameter", "displayName": "Oauth2 Cached Tokens Expiration Margin Seconds", "group": "security", "label": "producer,security", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 5, "description": "Amount of time which is deducted from OAuth2 tokens expiry time to compensate for the time it takes OAuth2 Token Endpoint to send the token over http, in seconds. Set this parameter to high value if you OAuth2 Token Endpoint answers slowly or you tokens expire quickly. If you set this parameter to too small value, you can get 4xx http errors because camel will think that the received token is still valid, while in reality the token is expired for the Authentication server." }, + "oauth2CacheTokens": { "index": 30, "kind": "parameter", "displayName": "Oauth2 Cache Tokens", "group": "security", "label": "producer,security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to cache OAuth2 client tokens." } } } diff --git a/components/camel-debezium/camel-debezium-oracle/src/generated/java/org/apache/camel/component/debezium/configuration/OracleConnectorEmbeddedDebeziumConfiguration.java b/components/camel-debezium/camel-debezium-oracle/src/generated/java/org/apache/camel/component/debezium/configuration/OracleConnectorEmbeddedDebeziumConfiguration.java index d01ca55e0d7f4..c15276bd2925b 100644 --- a/components/camel-debezium/camel-debezium-oracle/src/generated/java/org/apache/camel/component/debezium/configuration/OracleConnectorEmbeddedDebeziumConfiguration.java +++ b/components/camel-debezium/camel-debezium-oracle/src/generated/java/org/apache/camel/component/debezium/configuration/OracleConnectorEmbeddedDebeziumConfiguration.java @@ -917,7 +917,7 @@ public String getSnapshotModeCustomName() { /** * Specifies how the filter configuration is applied to the LogMiner - * database query. + * database query. * none - The query does not apply any schema or table filters, all * filtering is at runtime by the connector. * in - The query uses SQL in-clause expressions to specify the schema or diff --git a/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpCommonEndpoint.java b/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpCommonEndpoint.java index 7ad028318c3b5..4f1cb1030cc11 100644 --- a/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpCommonEndpoint.java +++ b/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpCommonEndpoint.java @@ -162,6 +162,17 @@ public abstract class HttpCommonEndpoint extends DefaultEndpoint private String oauth2TokenEndpoint; @UriParam(label = "producer,security", description = "OAuth2 scope") private String oauth2Scope; + @UriParam(label = "producer,security", defaultValue = "false", + description = "Whether to cache OAuth2 client tokens.") + private boolean oauth2CacheTokens = false; + @UriParam(label = "producer,security", defaultValue = "3600", + description = "Default expiration time for cached OAuth2 tokens, in seconds. Used if token response does not contain 'expires_in' field.") + private long oauth2CachedTokensDefaultExpirySeconds = 3600L; + @UriParam(label = "producer,security", defaultValue = "5", + description = "Amount of time which is deducted from OAuth2 tokens expiry time to compensate for the time it takes OAuth2 Token Endpoint to send the token over http, in seconds. " + + "Set this parameter to high value if you OAuth2 Token Endpoint answers slowly or you tokens expire quickly. " + + "If you set this parameter to too small value, you can get 4xx http errors because camel will think that the received token is still valid, while in reality the token is expired for the Authentication server.") + private long oauth2CachedTokensExpirationMarginSeconds = 5L; @UriParam(label = "producer,security", description = "Authentication domain to use with NTML") private String authDomain; @UriParam(label = "producer,security", description = "Authentication host to use with NTML") @@ -843,4 +854,39 @@ public String getOauth2Scope() { public void setOauth2Scope(String oauth2Scope) { this.oauth2Scope = oauth2Scope; } + + public boolean isOauth2CacheTokens() { + return oauth2CacheTokens; + } + + /** + * Whether to cache OAuth2 client tokens. + */ + public void setOauth2CacheTokens(boolean oauth2CacheTokens) { + this.oauth2CacheTokens = oauth2CacheTokens; + } + + public long getOauth2CachedTokensDefaultExpirySeconds() { + return oauth2CachedTokensDefaultExpirySeconds; + } + + /** + * Default expiration time for cached OAuth2 tokens, in seconds. Used if token response does not contain 'expires_in' field. + */ + public void setOauth2CachedTokensDefaultExpirySeconds(long oauth2CachedTokensDefaultExpirySeconds) { + this.oauth2CachedTokensDefaultExpirySeconds = oauth2CachedTokensDefaultExpirySeconds; + } + + public long getOauth2CachedTokensExpirationMarginSeconds() { + return oauth2CachedTokensExpirationMarginSeconds; + } + + /** + * Amount of time which is deducted from OAuth2 tokens expiry time to compensate for the time it takes OAuth2 Token Endpoint to send the token over http, in seconds. + * Set this parameter to high value if you OAuth2 Token Endpoint answers slowly or you tokens expire quickly. + * If you set this parameter to too small value, you can get 4xx http errors because camel will think that the received token is still valid, while in reality the token is expired for the Authentication server. + */ + public void setOauth2CachedTokensExpirationMarginSeconds(long cachedTokensExpirationMarginSeconds) { + this.oauth2CachedTokensExpirationMarginSeconds = cachedTokensExpirationMarginSeconds; + } } diff --git a/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpConfiguration.java b/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpConfiguration.java index c0a404ab59cc1..58acc5f3f5342 100644 --- a/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpConfiguration.java +++ b/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpConfiguration.java @@ -19,6 +19,7 @@ import java.io.Serializable; import org.apache.camel.spi.Metadata; +import org.apache.camel.spi.UriParam; public class HttpConfiguration implements Serializable { private static final long serialVersionUID = 1L; @@ -41,6 +42,17 @@ public class HttpConfiguration implements Serializable { private String oauth2TokenEndpoint; @Metadata(label = "producer,security", description = "OAuth2 scope") private String oauth2Scope; + @UriParam(label = "producer,security", defaultValue = "false", + description = "Whether to cache OAuth2 client tokens.") + private boolean oauth2CacheTokens = false; + @UriParam(label = "producer,security", defaultValue = "3600", + description = "Default expiration time for cached OAuth2 tokens, in seconds. Used if token response does not contain 'expires_in' field.") + private long oauth2CachedTokensDefaultExpirySeconds = 3600L; + @UriParam(label = "producer,security", defaultValue = "5", + description = "Amount of time which is deducted from OAuth2 tokens expiry time to compensate for the time it takes OAuth2 Token Endpoint to send the token over http, in seconds. " + + "Set this parameter to high value if you OAuth2 Token Endpoint answers slowly or you tokens expire quickly. " + + "If you set this parameter to too small value, you can get 4xx http errors because camel will think that the received token is still valid, while in reality the token is expired for the Authentication server.") + private long oauth2CachedTokensExpirationMarginSeconds = 5L; @Metadata(label = "producer,security", description = "Authentication domain to use with NTML") private String authDomain; @Metadata(label = "producer,security", description = "Authentication host to use with NTML") @@ -272,4 +284,39 @@ public String getOauth2Scope() { public void setOauth2Scope(String oauth2Scope) { this.oauth2Scope = oauth2Scope; } + + public boolean isOauth2CacheTokens() { + return oauth2CacheTokens; + } + + /** + * Whether to cache OAuth2 client tokens. + */ + public void setOauth2CacheTokens(boolean oauth2CacheTokens) { + this.oauth2CacheTokens = oauth2CacheTokens; + } + + public long getOauth2CachedTokensDefaultExpirySeconds() { + return oauth2CachedTokensDefaultExpirySeconds; + } + + /** + * Default expiration time for cached OAuth2 tokens, in seconds. Used if token response does not contain 'expires_in' field. + */ + public void setOauth2CachedTokensDefaultExpirySeconds(long oauth2CachedTokensDefaultExpirySeconds) { + this.oauth2CachedTokensDefaultExpirySeconds = oauth2CachedTokensDefaultExpirySeconds; + } + + public long getOauth2CachedTokensExpirationMarginSeconds() { + return oauth2CachedTokensExpirationMarginSeconds; + } + + /** + * Amount of time which is deducted from OAuth2 tokens expiry time to compensate for the time it takes OAuth2 Token Endpoint to send the token over http, in seconds. + * Set this parameter to high value if you OAuth2 Token Endpoint answers slowly or you tokens expire quickly. + * If you set this parameter to too small value, you can get 4xx http errors because camel will think that the received token is still valid, while in reality the token is expired for the Authentication server. + */ + public void setOauth2CachedTokensExpirationMarginSeconds(long oauth2CachedTokensExpirationMarginSeconds) { + this.oauth2CachedTokensExpirationMarginSeconds = oauth2CachedTokensExpirationMarginSeconds; + } } diff --git a/components/camel-http/src/generated/java/org/apache/camel/component/http/HttpEndpointConfigurer.java b/components/camel-http/src/generated/java/org/apache/camel/component/http/HttpEndpointConfigurer.java index 07c2d800785e9..4b10ca7924331 100644 --- a/components/camel-http/src/generated/java/org/apache/camel/component/http/HttpEndpointConfigurer.java +++ b/components/camel-http/src/generated/java/org/apache/camel/component/http/HttpEndpointConfigurer.java @@ -85,6 +85,12 @@ public boolean configure(CamelContext camelContext, Object obj, String name, Obj case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true; case "maxtotalconnections": case "maxTotalConnections": target.setMaxTotalConnections(property(camelContext, int.class, value)); return true; + case "oauth2cachetokens": + case "oauth2CacheTokens": target.setOauth2CacheTokens(property(camelContext, boolean.class, value)); return true; + case "oauth2cachedtokensdefaultexpiryseconds": + case "oauth2CachedTokensDefaultExpirySeconds": target.setOauth2CachedTokensDefaultExpirySeconds(property(camelContext, long.class, value)); return true; + case "oauth2cachedtokensexpirationmarginseconds": + case "oauth2CachedTokensExpirationMarginSeconds": target.setOauth2CachedTokensExpirationMarginSeconds(property(camelContext, long.class, value)); return true; case "oauth2clientid": case "oauth2ClientId": target.setOauth2ClientId(property(camelContext, java.lang.String.class, value)); return true; case "oauth2clientsecret": @@ -200,6 +206,12 @@ public Class getOptionType(String name, boolean ignoreCase) { case "lazyStartProducer": return boolean.class; case "maxtotalconnections": case "maxTotalConnections": return int.class; + case "oauth2cachetokens": + case "oauth2CacheTokens": return boolean.class; + case "oauth2cachedtokensdefaultexpiryseconds": + case "oauth2CachedTokensDefaultExpirySeconds": return long.class; + case "oauth2cachedtokensexpirationmarginseconds": + case "oauth2CachedTokensExpirationMarginSeconds": return long.class; case "oauth2clientid": case "oauth2ClientId": return java.lang.String.class; case "oauth2clientsecret": @@ -316,6 +328,12 @@ public Object getOptionValue(Object obj, String name, boolean ignoreCase) { case "lazyStartProducer": return target.isLazyStartProducer(); case "maxtotalconnections": case "maxTotalConnections": return target.getMaxTotalConnections(); + case "oauth2cachetokens": + case "oauth2CacheTokens": return target.isOauth2CacheTokens(); + case "oauth2cachedtokensdefaultexpiryseconds": + case "oauth2CachedTokensDefaultExpirySeconds": return target.getOauth2CachedTokensDefaultExpirySeconds(); + case "oauth2cachedtokensexpirationmarginseconds": + case "oauth2CachedTokensExpirationMarginSeconds": return target.getOauth2CachedTokensExpirationMarginSeconds(); case "oauth2clientid": case "oauth2ClientId": return target.getOauth2ClientId(); case "oauth2clientsecret": diff --git a/components/camel-http/src/generated/java/org/apache/camel/component/http/HttpEndpointUriFactory.java b/components/camel-http/src/generated/java/org/apache/camel/component/http/HttpEndpointUriFactory.java index 76185081941bf..98e1aa9f5dc33 100644 --- a/components/camel-http/src/generated/java/org/apache/camel/component/http/HttpEndpointUriFactory.java +++ b/components/camel-http/src/generated/java/org/apache/camel/component/http/HttpEndpointUriFactory.java @@ -24,7 +24,7 @@ public class HttpEndpointUriFactory extends org.apache.camel.support.component.E private static final Set SECRET_PROPERTY_NAMES; private static final Set MULTI_VALUE_PREFIXES; static { - Set props = new HashSet<>(55); + Set props = new HashSet<>(58); props.add("authDomain"); props.add("authHost"); props.add("authMethod"); @@ -57,6 +57,9 @@ public class HttpEndpointUriFactory extends org.apache.camel.support.component.E props.add("ignoreResponseBody"); props.add("lazyStartProducer"); props.add("maxTotalConnections"); + props.add("oauth2CacheTokens"); + props.add("oauth2CachedTokensDefaultExpirySeconds"); + props.add("oauth2CachedTokensExpirationMarginSeconds"); props.add("oauth2ClientId"); props.add("oauth2ClientSecret"); props.add("oauth2Scope"); diff --git a/components/camel-http/src/generated/resources/META-INF/org/apache/camel/component/http/http.json b/components/camel-http/src/generated/resources/META-INF/org/apache/camel/component/http/http.json index caa43c1b69937..2e2f0473f0812 100644 --- a/components/camel-http/src/generated/resources/META-INF/org/apache/camel/component/http/http.json +++ b/components/camel-http/src/generated/resources/META-INF/org/apache/camel/component/http/http.json @@ -134,11 +134,14 @@ "authMethodPriority": { "index": 46, "kind": "parameter", "displayName": "Auth Method Priority", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "Basic", "Digest", "NTLM" ], "deprecated": false, "autowired": false, "secret": false, "description": "Which authentication method to prioritize to use, either as Basic, Digest or NTLM." }, "authPassword": { "index": 47, "kind": "parameter", "displayName": "Auth Password", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "Authentication password" }, "authUsername": { "index": 48, "kind": "parameter", "displayName": "Auth Username", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "Authentication username" }, - "oauth2ClientId": { "index": 49, "kind": "parameter", "displayName": "Oauth2 Client Id", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "OAuth2 client id" }, - "oauth2ClientSecret": { "index": 50, "kind": "parameter", "displayName": "Oauth2 Client Secret", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "OAuth2 client secret" }, - "oauth2Scope": { "index": 51, "kind": "parameter", "displayName": "Oauth2 Scope", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "OAuth2 scope" }, - "oauth2TokenEndpoint": { "index": 52, "kind": "parameter", "displayName": "Oauth2 Token Endpoint", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "OAuth2 Token endpoint" }, - "sslContextParameters": { "index": 53, "kind": "parameter", "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. Important: Only one instance of org.apache.camel.util.jsse.SSLContextParameters is supported per HttpComponent. If you need to use 2 or more different instances, you need to define a new HttpComponent per instance you need." }, - "x509HostnameVerifier": { "index": 54, "kind": "parameter", "displayName": "X509 Hostname Verifier", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom X509HostnameVerifier such as DefaultHostnameVerifier or NoopHostnameVerifier" } + "oauth2CachedTokensDefaultExpirySeconds": { "index": 49, "kind": "parameter", "displayName": "Oauth2 Cached Tokens Default Expiry Seconds", "group": "security", "label": "producer,security", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 3600, "description": "Default expiration time for cached OAuth2 tokens, in seconds. Used if token response does not contain 'expires_in' field." }, + "oauth2CachedTokensExpirationMarginSeconds": { "index": 50, "kind": "parameter", "displayName": "Oauth2 Cached Tokens Expiration Margin Seconds", "group": "security", "label": "producer,security", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 5, "description": "Amount of time which is deducted from OAuth2 tokens expiry time to compensate for the time it takes OAuth2 Token Endpoint to send the token over http, in seconds. Set this parameter to high value if you OAuth2 Token Endpoint answers slowly or you tokens expire quickly. If you set this parameter to too small value, you can get 4xx http errors because camel will think that the received token is still valid, while in reality the token is expired for the Authentication server." }, + "oauth2CacheTokens": { "index": 51, "kind": "parameter", "displayName": "Oauth2 Cache Tokens", "group": "security", "label": "producer,security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to cache OAuth2 client tokens." }, + "oauth2ClientId": { "index": 52, "kind": "parameter", "displayName": "Oauth2 Client Id", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "OAuth2 client id" }, + "oauth2ClientSecret": { "index": 53, "kind": "parameter", "displayName": "Oauth2 Client Secret", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "OAuth2 client secret" }, + "oauth2Scope": { "index": 54, "kind": "parameter", "displayName": "Oauth2 Scope", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "OAuth2 scope" }, + "oauth2TokenEndpoint": { "index": 55, "kind": "parameter", "displayName": "Oauth2 Token Endpoint", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "OAuth2 Token endpoint" }, + "sslContextParameters": { "index": 56, "kind": "parameter", "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. Important: Only one instance of org.apache.camel.util.jsse.SSLContextParameters is supported per HttpComponent. If you need to use 2 or more different instances, you need to define a new HttpComponent per instance you need." }, + "x509HostnameVerifier": { "index": 57, "kind": "parameter", "displayName": "X509 Hostname Verifier", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom X509HostnameVerifier such as DefaultHostnameVerifier or NoopHostnameVerifier" } } } diff --git a/components/camel-http/src/generated/resources/META-INF/org/apache/camel/component/http/https.json b/components/camel-http/src/generated/resources/META-INF/org/apache/camel/component/http/https.json index 269f80bfe23c9..d897219586d06 100644 --- a/components/camel-http/src/generated/resources/META-INF/org/apache/camel/component/http/https.json +++ b/components/camel-http/src/generated/resources/META-INF/org/apache/camel/component/http/https.json @@ -134,11 +134,14 @@ "authMethodPriority": { "index": 46, "kind": "parameter", "displayName": "Auth Method Priority", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "Basic", "Digest", "NTLM" ], "deprecated": false, "autowired": false, "secret": false, "description": "Which authentication method to prioritize to use, either as Basic, Digest or NTLM." }, "authPassword": { "index": 47, "kind": "parameter", "displayName": "Auth Password", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "Authentication password" }, "authUsername": { "index": 48, "kind": "parameter", "displayName": "Auth Username", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "Authentication username" }, - "oauth2ClientId": { "index": 49, "kind": "parameter", "displayName": "Oauth2 Client Id", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "OAuth2 client id" }, - "oauth2ClientSecret": { "index": 50, "kind": "parameter", "displayName": "Oauth2 Client Secret", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "OAuth2 client secret" }, - "oauth2Scope": { "index": 51, "kind": "parameter", "displayName": "Oauth2 Scope", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "OAuth2 scope" }, - "oauth2TokenEndpoint": { "index": 52, "kind": "parameter", "displayName": "Oauth2 Token Endpoint", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "OAuth2 Token endpoint" }, - "sslContextParameters": { "index": 53, "kind": "parameter", "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. Important: Only one instance of org.apache.camel.util.jsse.SSLContextParameters is supported per HttpComponent. If you need to use 2 or more different instances, you need to define a new HttpComponent per instance you need." }, - "x509HostnameVerifier": { "index": 54, "kind": "parameter", "displayName": "X509 Hostname Verifier", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom X509HostnameVerifier such as DefaultHostnameVerifier or NoopHostnameVerifier" } + "oauth2CachedTokensDefaultExpirySeconds": { "index": 49, "kind": "parameter", "displayName": "Oauth2 Cached Tokens Default Expiry Seconds", "group": "security", "label": "producer,security", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 3600, "description": "Default expiration time for cached OAuth2 tokens, in seconds. Used if token response does not contain 'expires_in' field." }, + "oauth2CachedTokensExpirationMarginSeconds": { "index": 50, "kind": "parameter", "displayName": "Oauth2 Cached Tokens Expiration Margin Seconds", "group": "security", "label": "producer,security", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 5, "description": "Amount of time which is deducted from OAuth2 tokens expiry time to compensate for the time it takes OAuth2 Token Endpoint to send the token over http, in seconds. Set this parameter to high value if you OAuth2 Token Endpoint answers slowly or you tokens expire quickly. If you set this parameter to too small value, you can get 4xx http errors because camel will think that the received token is still valid, while in reality the token is expired for the Authentication server." }, + "oauth2CacheTokens": { "index": 51, "kind": "parameter", "displayName": "Oauth2 Cache Tokens", "group": "security", "label": "producer,security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to cache OAuth2 client tokens." }, + "oauth2ClientId": { "index": 52, "kind": "parameter", "displayName": "Oauth2 Client Id", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "OAuth2 client id" }, + "oauth2ClientSecret": { "index": 53, "kind": "parameter", "displayName": "Oauth2 Client Secret", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "OAuth2 client secret" }, + "oauth2Scope": { "index": 54, "kind": "parameter", "displayName": "Oauth2 Scope", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "OAuth2 scope" }, + "oauth2TokenEndpoint": { "index": 55, "kind": "parameter", "displayName": "Oauth2 Token Endpoint", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "OAuth2 Token endpoint" }, + "sslContextParameters": { "index": 56, "kind": "parameter", "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. Important: Only one instance of org.apache.camel.util.jsse.SSLContextParameters is supported per HttpComponent. If you need to use 2 or more different instances, you need to define a new HttpComponent per instance you need." }, + "x509HostnameVerifier": { "index": 57, "kind": "parameter", "displayName": "X509 Hostname Verifier", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom X509HostnameVerifier such as DefaultHostnameVerifier or NoopHostnameVerifier" } } } diff --git a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java index 23c4138dcd57a..3db24237449ba 100644 --- a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java +++ b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java @@ -22,9 +22,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Optional; - import javax.net.ssl.HostnameVerifier; - import org.apache.camel.CamelContext; import org.apache.camel.Endpoint; import org.apache.camel.Producer; @@ -33,6 +31,7 @@ import org.apache.camel.http.base.HttpHelper; import org.apache.camel.http.common.HttpBinding; import org.apache.camel.http.common.HttpCommonComponent; +import org.apache.camel.http.common.HttpConfiguration; import org.apache.camel.http.common.HttpRestHeaderFilterStrategy; import org.apache.camel.spi.BeanIntrospection; import org.apache.camel.spi.HeaderFilterStrategy; @@ -235,10 +234,32 @@ private HttpClientConfigurer configureOAuth2Authentication( String clientSecret = getParameter(parameters, "oauth2ClientSecret", String.class); String tokenEndpoint = getParameter(parameters, "oauth2TokenEndpoint", String.class); String scope = getParameter(parameters, "oauth2Scope", String.class); + HttpConfiguration configDefaults = new HttpConfiguration(); + boolean cacheTokens = getParameter( + parameters, + "oauth2CacheTokens", + boolean.class, + configDefaults.isOauth2CacheTokens()); + long cachedTokensDefaultExpirySeconds = getParameter( + parameters, + "oauth2CachedTokensDefaultExpirySeconds", + long.class, + configDefaults.getOauth2CachedTokensDefaultExpirySeconds()); + long cachedTokensExpirationMarginSeconds = getParameter( + parameters, + "oauth2CachedTokensExpirationMarginSeconds", + long.class, + configDefaults.getOauth2CachedTokensExpirationMarginSeconds()); if (clientId != null && clientSecret != null && tokenEndpoint != null) { return CompositeHttpConfigurer.combineConfigurers(configurer, - new OAuth2ClientConfigurer(clientId, clientSecret, tokenEndpoint, scope)); + new OAuth2ClientConfigurer(clientId, + clientSecret, + tokenEndpoint, + scope, + cacheTokens, + cachedTokensDefaultExpirySeconds, + cachedTokensExpirationMarginSeconds)); } return configurer; } diff --git a/components/camel-http/src/main/java/org/apache/camel/component/http/OAuth2ClientConfigurer.java b/components/camel-http/src/main/java/org/apache/camel/component/http/OAuth2ClientConfigurer.java index 0701ba6b654aa..79d99929f0314 100644 --- a/components/camel-http/src/main/java/org/apache/camel/component/http/OAuth2ClientConfigurer.java +++ b/components/camel-http/src/main/java/org/apache/camel/component/http/OAuth2ClientConfigurer.java @@ -16,6 +16,13 @@ */ package org.apache.camel.component.http; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.time.Instant; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.atomic.AtomicReference; import org.apache.camel.util.json.DeserializationException; import org.apache.camel.util.json.JsonObject; import org.apache.camel.util.json.Jsoner; @@ -37,55 +44,136 @@ public class OAuth2ClientConfigurer implements HttpClientConfigurer { private final String clientSecret; private final String tokenEndpoint; private final String scope; + private final boolean cacheTokens; + private final Long cachedTokensDefaultExpirySeconds; + private final Long cachedTokensExpirationMarginSeconds; + private final Map tokenCache = new HashMap<>(); - public OAuth2ClientConfigurer(String clientId, String clientSecret, String tokenEndpoint, String scope) { + public OAuth2ClientConfigurer(String clientId, String clientSecret, String tokenEndpoint, String scope, boolean cacheTokens, long cachedTokensDefaultExpirySeconds, long cachedTokensExpirationMarginSeconds) { this.clientId = clientId; this.clientSecret = clientSecret; this.tokenEndpoint = tokenEndpoint; this.scope = scope; + this.cacheTokens = cacheTokens; + this.cachedTokensDefaultExpirySeconds = cachedTokensDefaultExpirySeconds; + this.cachedTokensExpirationMarginSeconds = cachedTokensExpirationMarginSeconds; } @Override public void configureHttpClient(HttpClientBuilder clientBuilder) { HttpClient httpClient = clientBuilder.build(); clientBuilder.addRequestInterceptorFirst((HttpRequest request, EntityDetails entity, HttpContext context) -> { + URI requestUri = getUriFromRequest(request); + if (cacheTokens) { + if (tokenCache.containsKey(requestUri) && !tokenCache.get(requestUri).isExpiredWithMargin(cachedTokensExpirationMarginSeconds)) { + request.setHeader(HttpHeaders.AUTHORIZATION, "Bearer " + tokenCache.get(requestUri).getToken()); + } else { + JsonObject accessTokenResponse = getAccessTokenResponse(httpClient); + String accessToken = accessTokenResponse.getString("access_token"); + String expiresIn = accessTokenResponse.getString("expires_in"); + if (expiresIn != null && !expiresIn.isEmpty()) { + tokenCache.put(requestUri, new TokenCache(accessToken, expiresIn)); + } else if (cachedTokensDefaultExpirySeconds > 0) { + tokenCache.put(requestUri, new TokenCache(accessToken, cachedTokensDefaultExpirySeconds)); + } + request.setHeader(HttpHeaders.AUTHORIZATION, "Bearer " + accessToken); + } + } else { + JsonObject accessTokenResponse = getAccessTokenResponse(httpClient); + String accessToken = accessTokenResponse.getString("access_token"); + request.setHeader(HttpHeaders.AUTHORIZATION, "Bearer " + accessToken); + } + }); + } + + private JsonObject getAccessTokenResponse(HttpClient httpClient) throws IOException { + String url = tokenEndpoint; + if (scope != null) { + String sep = "?"; + if (url.contains("?")) { + sep = "&"; + } + url = url + sep + "scope=" + scope; + } + + final HttpPost httpPost = new HttpPost(url); + + httpPost.addHeader(HttpHeaders.AUTHORIZATION, + HttpCredentialsHelper.generateBasicAuthHeader(clientId, clientSecret)); + httpPost.setEntity(new StringEntity("grant_type=client_credentials", ContentType.APPLICATION_FORM_URLENCODED)); + + AtomicReference result = new AtomicReference<>(); + httpClient.execute(httpPost, response -> { + try { + String responseString = EntityUtils.toString(response.getEntity()); - String url = tokenEndpoint; - if (scope != null) { - String sep = "?"; - if (url.contains("?")) { - sep = "&"; + if (response.getCode() == 200) { + result.set((JsonObject) Jsoner.deserialize(responseString)); + } else { + throw new HttpException( + "Received error response from token request with Status Code: " + response.getCode()); } - url = url + sep + "scope=" + scope; + } catch (DeserializationException e) { + throw new HttpException("Something went wrong when reading token request response", e); } + return null; + }); + return result.get(); + } - final HttpPost httpPost = new HttpPost(url); + private URI getUriFromRequest(HttpRequest request) { + URI result; + try { + result = request.getUri(); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } + return result; + } - httpPost.addHeader(HttpHeaders.AUTHORIZATION, - HttpCredentialsHelper.generateBasicAuthHeader(clientId, clientSecret)); - httpPost.setEntity(new StringEntity("grant_type=client_credentials", ContentType.APPLICATION_FORM_URLENCODED)); + private static class TokenCache { + private String token; + private Instant expirationTime; - httpClient.execute(httpPost, response -> { + public TokenCache() {} - try { - String responseString = EntityUtils.toString(response.getEntity()); + public TokenCache(String token, String expires_in) { + this.token = token; + setExpirationTimeSeconds(expires_in); + } - if (response.getCode() == 200) { - String accessToken = ((JsonObject) Jsoner.deserialize(responseString)).getString("access_token"); - request.setHeader(HttpHeaders.AUTHORIZATION, "Bearer " + accessToken); - } else { - throw new HttpException( - "Received error response from token request with Status Code: " + response.getCode()); - } + public TokenCache(String accessToken, Long seconds) { + this.token = accessToken; + this.expirationTime = Instant.now().plusSeconds(seconds); + } - } catch (DeserializationException e) { - throw new HttpException("Something went wrong when reading token request response", e); - } + public boolean isExpired() { + return Instant.now().isAfter(expirationTime); + } - return null; - }); + public boolean isExpiredWithMargin(Long marginSeconds) { + return Instant.now().isAfter(expirationTime.minusSeconds(marginSeconds)); + } - }); + public void setExpirationTimeSeconds(String expires_in) { + this.expirationTime = Instant.now().plusSeconds(Long.parseLong(expires_in)); + } + + public String getToken() { + return token; + } + + public void setToken(String token) { + this.token = token; + } + + public Instant getExpirationTime() { + return expirationTime; + } + + public void setExpirationTime(Instant expirationTime) { + this.expirationTime = expirationTime; + } } } diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java index e77f790078f49..c0ac170512039 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java @@ -28,19 +28,19 @@ @Generated("org.apache.camel.maven.packaging.EndpointDslMojo") public interface EndpointBuilderFactory extends - org.apache.camel.builder.endpoint.dsl.AMQPEndpointBuilderFactory.AMQPBuilders, - org.apache.camel.builder.endpoint.dsl.AS2EndpointBuilderFactory.AS2Builders, - org.apache.camel.builder.endpoint.dsl.AWS2EC2EndpointBuilderFactory.AWS2EC2Builders, - org.apache.camel.builder.endpoint.dsl.AWS2S3EndpointBuilderFactory.AWS2S3Builders, - org.apache.camel.builder.endpoint.dsl.AWSConfigEndpointBuilderFactory.AWSConfigBuilders, org.apache.camel.builder.endpoint.dsl.ActiveMQ6EndpointBuilderFactory.ActiveMQ6Builders, org.apache.camel.builder.endpoint.dsl.ActiveMQEndpointBuilderFactory.ActiveMQBuilders, + org.apache.camel.builder.endpoint.dsl.AMQPEndpointBuilderFactory.AMQPBuilders, org.apache.camel.builder.endpoint.dsl.ArangoDbEndpointBuilderFactory.ArangoDbBuilders, + org.apache.camel.builder.endpoint.dsl.AS2EndpointBuilderFactory.AS2Builders, org.apache.camel.builder.endpoint.dsl.AsteriskEndpointBuilderFactory.AsteriskBuilders, org.apache.camel.builder.endpoint.dsl.Athena2EndpointBuilderFactory.Athena2Builders, org.apache.camel.builder.endpoint.dsl.AtmosphereWebsocketEndpointBuilderFactory.AtmosphereWebsocketBuilders, org.apache.camel.builder.endpoint.dsl.AtomEndpointBuilderFactory.AtomBuilders, org.apache.camel.builder.endpoint.dsl.AvroEndpointBuilderFactory.AvroBuilders, + org.apache.camel.builder.endpoint.dsl.AWS2EC2EndpointBuilderFactory.AWS2EC2Builders, + org.apache.camel.builder.endpoint.dsl.AWS2S3EndpointBuilderFactory.AWS2S3Builders, + org.apache.camel.builder.endpoint.dsl.AWSConfigEndpointBuilderFactory.AWSConfigBuilders, org.apache.camel.builder.endpoint.dsl.BeanEndpointBuilderFactory.BeanBuilders, org.apache.camel.builder.endpoint.dsl.BeanValidatorEndpointBuilderFactory.BeanValidatorBuilders, org.apache.camel.builder.endpoint.dsl.BedrockAgentEndpointBuilderFactory.BedrockAgentBuilders, @@ -51,7 +51,6 @@ public interface EndpointBuilderFactory org.apache.camel.builder.endpoint.dsl.BoxEndpointBuilderFactory.BoxBuilders, org.apache.camel.builder.endpoint.dsl.BraintreeEndpointBuilderFactory.BraintreeBuilders, org.apache.camel.builder.endpoint.dsl.BrowseEndpointBuilderFactory.BrowseBuilders, - org.apache.camel.builder.endpoint.dsl.CMEndpointBuilderFactory.CMBuilders, org.apache.camel.builder.endpoint.dsl.CaffeineCacheEndpointBuilderFactory.CaffeineCacheBuilders, org.apache.camel.builder.endpoint.dsl.CaffeineLoadCacheEndpointBuilderFactory.CaffeineLoadCacheBuilders, org.apache.camel.builder.endpoint.dsl.CassandraEndpointBuilderFactory.CassandraBuilders, @@ -61,19 +60,18 @@ public interface EndpointBuilderFactory org.apache.camel.builder.endpoint.dsl.ClassEndpointBuilderFactory.ClassBuilders, org.apache.camel.builder.endpoint.dsl.ClientEndpointBuilderFactory.ClientBuilders, org.apache.camel.builder.endpoint.dsl.CloudtrailEndpointBuilderFactory.CloudtrailBuilders, + org.apache.camel.builder.endpoint.dsl.CMEndpointBuilderFactory.CMBuilders, org.apache.camel.builder.endpoint.dsl.CoAPEndpointBuilderFactory.CoAPBuilders, org.apache.camel.builder.endpoint.dsl.CometdEndpointBuilderFactory.CometdBuilders, org.apache.camel.builder.endpoint.dsl.ConsulEndpointBuilderFactory.ConsulBuilders, org.apache.camel.builder.endpoint.dsl.ControlBusEndpointBuilderFactory.ControlBusBuilders, org.apache.camel.builder.endpoint.dsl.CosmosDbEndpointBuilderFactory.CosmosDbBuilders, - org.apache.camel.builder.endpoint.dsl.CouchDbEndpointBuilderFactory.CouchDbBuilders, org.apache.camel.builder.endpoint.dsl.CouchbaseEndpointBuilderFactory.CouchbaseBuilders, + org.apache.camel.builder.endpoint.dsl.CouchDbEndpointBuilderFactory.CouchDbBuilders, org.apache.camel.builder.endpoint.dsl.CronEndpointBuilderFactory.CronBuilders, org.apache.camel.builder.endpoint.dsl.Cw2EndpointBuilderFactory.Cw2Builders, org.apache.camel.builder.endpoint.dsl.CxfEndpointBuilderFactory.CxfBuilders, org.apache.camel.builder.endpoint.dsl.CxfRsEndpointBuilderFactory.CxfRsBuilders, - org.apache.camel.builder.endpoint.dsl.DJLEndpointBuilderFactory.DJLBuilders, - org.apache.camel.builder.endpoint.dsl.DMSEndpointBuilderFactory.DMSBuilders, org.apache.camel.builder.endpoint.dsl.DataFormatEndpointBuilderFactory.DataFormatBuilders, org.apache.camel.builder.endpoint.dsl.DataLakeEndpointBuilderFactory.DataLakeBuilders, org.apache.camel.builder.endpoint.dsl.DataSetEndpointBuilderFactory.DataSetBuilders, @@ -92,6 +90,8 @@ public interface EndpointBuilderFactory org.apache.camel.builder.endpoint.dsl.DirectEndpointBuilderFactory.DirectBuilders, org.apache.camel.builder.endpoint.dsl.DisruptorEndpointBuilderFactory.DisruptorBuilders, org.apache.camel.builder.endpoint.dsl.DisruptorVmEndpointBuilderFactory.DisruptorVmBuilders, + org.apache.camel.builder.endpoint.dsl.DJLEndpointBuilderFactory.DJLBuilders, + org.apache.camel.builder.endpoint.dsl.DMSEndpointBuilderFactory.DMSBuilders, org.apache.camel.builder.endpoint.dsl.DnsEndpointBuilderFactory.DnsBuilders, org.apache.camel.builder.endpoint.dsl.DockerEndpointBuilderFactory.DockerBuilders, org.apache.camel.builder.endpoint.dsl.DrillEndpointBuilderFactory.DrillBuilders, @@ -99,20 +99,20 @@ public interface EndpointBuilderFactory org.apache.camel.builder.endpoint.dsl.DynamicRouterControlEndpointBuilderFactory.DynamicRouterControlBuilders, org.apache.camel.builder.endpoint.dsl.DynamicRouterEndpointBuilderFactory.DynamicRouterBuilders, org.apache.camel.builder.endpoint.dsl.ECS2EndpointBuilderFactory.ECS2Builders, - org.apache.camel.builder.endpoint.dsl.EKS2EndpointBuilderFactory.EKS2Builders, org.apache.camel.builder.endpoint.dsl.EhcacheEndpointBuilderFactory.EhcacheBuilders, + org.apache.camel.builder.endpoint.dsl.EKS2EndpointBuilderFactory.EKS2Builders, org.apache.camel.builder.endpoint.dsl.ElasticsearchEndpointBuilderFactory.ElasticsearchBuilders, org.apache.camel.builder.endpoint.dsl.ElasticsearchRestClientEndpointBuilderFactory.ElasticsearchRestClientBuilders, org.apache.camel.builder.endpoint.dsl.Etcd3EndpointBuilderFactory.Etcd3Builders, + org.apache.camel.builder.endpoint.dsl.EventbridgeEndpointBuilderFactory.EventbridgeBuilders, org.apache.camel.builder.endpoint.dsl.EventEndpointBuilderFactory.EventBuilders, org.apache.camel.builder.endpoint.dsl.EventHubsEndpointBuilderFactory.EventHubsBuilders, - org.apache.camel.builder.endpoint.dsl.EventbridgeEndpointBuilderFactory.EventbridgeBuilders, org.apache.camel.builder.endpoint.dsl.ExecEndpointBuilderFactory.ExecBuilders, org.apache.camel.builder.endpoint.dsl.FaceRecognitionEndpointBuilderFactory.FaceRecognitionBuilders, org.apache.camel.builder.endpoint.dsl.FhirEndpointBuilderFactory.FhirBuilders, org.apache.camel.builder.endpoint.dsl.FileEndpointBuilderFactory.FileBuilders, - org.apache.camel.builder.endpoint.dsl.FileWatchEndpointBuilderFactory.FileWatchBuilders, org.apache.camel.builder.endpoint.dsl.FilesEndpointBuilderFactory.FilesBuilders, + org.apache.camel.builder.endpoint.dsl.FileWatchEndpointBuilderFactory.FileWatchBuilders, org.apache.camel.builder.endpoint.dsl.FlatpackEndpointBuilderFactory.FlatpackBuilders, org.apache.camel.builder.endpoint.dsl.FlinkEndpointBuilderFactory.FlinkBuilders, org.apache.camel.builder.endpoint.dsl.FopEndpointBuilderFactory.FopBuilders, @@ -173,30 +173,30 @@ public interface EndpointBuilderFactory org.apache.camel.builder.endpoint.dsl.IrcEndpointBuilderFactory.IrcBuilders, org.apache.camel.builder.endpoint.dsl.IronMQEndpointBuilderFactory.IronMQBuilders, org.apache.camel.builder.endpoint.dsl.JCacheEndpointBuilderFactory.JCacheBuilders, - org.apache.camel.builder.endpoint.dsl.JGroupsEndpointBuilderFactory.JGroupsBuilders, - org.apache.camel.builder.endpoint.dsl.JGroupsRaftEndpointBuilderFactory.JGroupsRaftBuilders, - org.apache.camel.builder.endpoint.dsl.JMXEndpointBuilderFactory.JMXBuilders, org.apache.camel.builder.endpoint.dsl.JcrEndpointBuilderFactory.JcrBuilders, org.apache.camel.builder.endpoint.dsl.JdbcEndpointBuilderFactory.JdbcBuilders, org.apache.camel.builder.endpoint.dsl.JettyHttp12EndpointBuilderFactory.JettyHttp12Builders, + org.apache.camel.builder.endpoint.dsl.JGroupsEndpointBuilderFactory.JGroupsBuilders, + org.apache.camel.builder.endpoint.dsl.JGroupsRaftEndpointBuilderFactory.JGroupsRaftBuilders, org.apache.camel.builder.endpoint.dsl.JiraEndpointBuilderFactory.JiraBuilders, org.apache.camel.builder.endpoint.dsl.JmsEndpointBuilderFactory.JmsBuilders, + org.apache.camel.builder.endpoint.dsl.JMXEndpointBuilderFactory.JMXBuilders, org.apache.camel.builder.endpoint.dsl.JoltEndpointBuilderFactory.JoltBuilders, org.apache.camel.builder.endpoint.dsl.JooqEndpointBuilderFactory.JooqBuilders, org.apache.camel.builder.endpoint.dsl.JpaEndpointBuilderFactory.JpaBuilders, org.apache.camel.builder.endpoint.dsl.JsltEndpointBuilderFactory.JsltBuilders, + org.apache.camel.builder.endpoint.dsl.JsonataEndpointBuilderFactory.JsonataBuilders, org.apache.camel.builder.endpoint.dsl.JsonPatchEndpointBuilderFactory.JsonPatchBuilders, org.apache.camel.builder.endpoint.dsl.JsonValidatorEndpointBuilderFactory.JsonValidatorBuilders, - org.apache.camel.builder.endpoint.dsl.JsonataEndpointBuilderFactory.JsonataBuilders, org.apache.camel.builder.endpoint.dsl.Jt400EndpointBuilderFactory.Jt400Builders, org.apache.camel.builder.endpoint.dsl.JteEndpointBuilderFactory.JteBuilders, - org.apache.camel.builder.endpoint.dsl.KMS2EndpointBuilderFactory.KMS2Builders, org.apache.camel.builder.endpoint.dsl.KafkaEndpointBuilderFactory.KafkaBuilders, org.apache.camel.builder.endpoint.dsl.KameletEndpointBuilderFactory.KameletBuilders, - org.apache.camel.builder.endpoint.dsl.KeyVaultEndpointBuilderFactory.KeyVaultBuilders, org.apache.camel.builder.endpoint.dsl.KeystoneEndpointBuilderFactory.KeystoneBuilders, + org.apache.camel.builder.endpoint.dsl.KeyVaultEndpointBuilderFactory.KeyVaultBuilders, org.apache.camel.builder.endpoint.dsl.Kinesis2EndpointBuilderFactory.Kinesis2Builders, org.apache.camel.builder.endpoint.dsl.KinesisFirehose2EndpointBuilderFactory.KinesisFirehose2Builders, + org.apache.camel.builder.endpoint.dsl.KMS2EndpointBuilderFactory.KMS2Builders, org.apache.camel.builder.endpoint.dsl.KnativeEndpointBuilderFactory.KnativeBuilders, org.apache.camel.builder.endpoint.dsl.KubernetesConfigMapsEndpointBuilderFactory.KubernetesConfigMapsBuilders, org.apache.camel.builder.endpoint.dsl.KubernetesCronJobEndpointBuilderFactory.KubernetesCronJobBuilders, @@ -227,8 +227,6 @@ public interface EndpointBuilderFactory org.apache.camel.builder.endpoint.dsl.LogEndpointBuilderFactory.LogBuilders, org.apache.camel.builder.endpoint.dsl.LuceneEndpointBuilderFactory.LuceneBuilders, org.apache.camel.builder.endpoint.dsl.LumberjackEndpointBuilderFactory.LumberjackBuilders, - org.apache.camel.builder.endpoint.dsl.MQ2EndpointBuilderFactory.MQ2Builders, - org.apache.camel.builder.endpoint.dsl.MSK2EndpointBuilderFactory.MSK2Builders, org.apache.camel.builder.endpoint.dsl.MailEndpointBuilderFactory.MailBuilders, org.apache.camel.builder.endpoint.dsl.MapstructEndpointBuilderFactory.MapstructBuilders, org.apache.camel.builder.endpoint.dsl.MasterEndpointBuilderFactory.MasterBuilders, @@ -240,14 +238,16 @@ public interface EndpointBuilderFactory org.apache.camel.builder.endpoint.dsl.MllpEndpointBuilderFactory.MllpBuilders, org.apache.camel.builder.endpoint.dsl.MockEndpointBuilderFactory.MockBuilders, org.apache.camel.builder.endpoint.dsl.MongoDbEndpointBuilderFactory.MongoDbBuilders, + org.apache.camel.builder.endpoint.dsl.MQ2EndpointBuilderFactory.MQ2Builders, + org.apache.camel.builder.endpoint.dsl.MSK2EndpointBuilderFactory.MSK2Builders, org.apache.camel.builder.endpoint.dsl.MustacheEndpointBuilderFactory.MustacheBuilders, org.apache.camel.builder.endpoint.dsl.MvelEndpointBuilderFactory.MvelBuilders, org.apache.camel.builder.endpoint.dsl.MyBatisBeanEndpointBuilderFactory.MyBatisBeanBuilders, org.apache.camel.builder.endpoint.dsl.MyBatisEndpointBuilderFactory.MyBatisBuilders, org.apache.camel.builder.endpoint.dsl.NatsEndpointBuilderFactory.NatsBuilders, - org.apache.camel.builder.endpoint.dsl.NetWeaverEndpointBuilderFactory.NetWeaverBuilders, org.apache.camel.builder.endpoint.dsl.NettyEndpointBuilderFactory.NettyBuilders, org.apache.camel.builder.endpoint.dsl.NettyHttpEndpointBuilderFactory.NettyHttpBuilders, + org.apache.camel.builder.endpoint.dsl.NetWeaverEndpointBuilderFactory.NetWeaverBuilders, org.apache.camel.builder.endpoint.dsl.NeutronEndpointBuilderFactory.NeutronBuilders, org.apache.camel.builder.endpoint.dsl.NitriteEndpointBuilderFactory.NitriteBuilders, org.apache.camel.builder.endpoint.dsl.NovaEndpointBuilderFactory.NovaBuilders, @@ -285,7 +285,6 @@ public interface EndpointBuilderFactory org.apache.camel.builder.endpoint.dsl.RobotFrameworkEndpointBuilderFactory.RobotFrameworkBuilders, org.apache.camel.builder.endpoint.dsl.RocketMQEndpointBuilderFactory.RocketMQBuilders, org.apache.camel.builder.endpoint.dsl.RssEndpointBuilderFactory.RssBuilders, - org.apache.camel.builder.endpoint.dsl.STS2EndpointBuilderFactory.STS2Builders, org.apache.camel.builder.endpoint.dsl.SagaEndpointBuilderFactory.SagaBuilders, org.apache.camel.builder.endpoint.dsl.SalesforceEndpointBuilderFactory.SalesforceBuilders, org.apache.camel.builder.endpoint.dsl.SchedulerEndpointBuilderFactory.SchedulerBuilders, @@ -327,6 +326,7 @@ public interface EndpointBuilderFactory org.apache.camel.builder.endpoint.dsl.StompEndpointBuilderFactory.StompBuilders, org.apache.camel.builder.endpoint.dsl.StreamEndpointBuilderFactory.StreamBuilders, org.apache.camel.builder.endpoint.dsl.StringTemplateEndpointBuilderFactory.StringTemplateBuilders, + org.apache.camel.builder.endpoint.dsl.STS2EndpointBuilderFactory.STS2Builders, org.apache.camel.builder.endpoint.dsl.StubEndpointBuilderFactory.StubBuilders, org.apache.camel.builder.endpoint.dsl.SwiftEndpointBuilderFactory.SwiftBuilders, org.apache.camel.builder.endpoint.dsl.TahuEdgeEndpointBuilderFactory.TahuEdgeBuilders, @@ -357,10 +357,10 @@ public interface EndpointBuilderFactory org.apache.camel.builder.endpoint.dsl.WorkdayEndpointBuilderFactory.WorkdayBuilders, org.apache.camel.builder.endpoint.dsl.XChangeEndpointBuilderFactory.XChangeBuilders, org.apache.camel.builder.endpoint.dsl.XJEndpointBuilderFactory.XJBuilders, - org.apache.camel.builder.endpoint.dsl.XQueryEndpointBuilderFactory.XQueryBuilders, org.apache.camel.builder.endpoint.dsl.XmlSignerEndpointBuilderFactory.XmlSignerBuilders, org.apache.camel.builder.endpoint.dsl.XmlVerifierEndpointBuilderFactory.XmlVerifierBuilders, org.apache.camel.builder.endpoint.dsl.XmppEndpointBuilderFactory.XmppBuilders, + org.apache.camel.builder.endpoint.dsl.XQueryEndpointBuilderFactory.XQueryBuilders, org.apache.camel.builder.endpoint.dsl.XsltEndpointBuilderFactory.XsltBuilders, org.apache.camel.builder.endpoint.dsl.XsltSaxonEndpointBuilderFactory.XsltSaxonBuilders, org.apache.camel.builder.endpoint.dsl.ZeebeEndpointBuilderFactory.ZeebeBuilders, diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java index 9230613b97f07..0c568595da6ef 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java @@ -25,19 +25,19 @@ @Generated("org.apache.camel.maven.packaging.EndpointDslMojo") public interface EndpointBuilders extends - org.apache.camel.builder.endpoint.dsl.AMQPEndpointBuilderFactory, - org.apache.camel.builder.endpoint.dsl.AS2EndpointBuilderFactory, - org.apache.camel.builder.endpoint.dsl.AWS2EC2EndpointBuilderFactory, - org.apache.camel.builder.endpoint.dsl.AWS2S3EndpointBuilderFactory, - org.apache.camel.builder.endpoint.dsl.AWSConfigEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.ActiveMQ6EndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.ActiveMQEndpointBuilderFactory, + org.apache.camel.builder.endpoint.dsl.AMQPEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.ArangoDbEndpointBuilderFactory, + org.apache.camel.builder.endpoint.dsl.AS2EndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.AsteriskEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.Athena2EndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.AtmosphereWebsocketEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.AtomEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.AvroEndpointBuilderFactory, + org.apache.camel.builder.endpoint.dsl.AWS2EC2EndpointBuilderFactory, + org.apache.camel.builder.endpoint.dsl.AWS2S3EndpointBuilderFactory, + org.apache.camel.builder.endpoint.dsl.AWSConfigEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.BeanEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.BeanValidatorEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.BedrockAgentEndpointBuilderFactory, @@ -48,7 +48,6 @@ public interface EndpointBuilders org.apache.camel.builder.endpoint.dsl.BoxEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.BraintreeEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.BrowseEndpointBuilderFactory, - org.apache.camel.builder.endpoint.dsl.CMEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.CaffeineCacheEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.CaffeineLoadCacheEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.CassandraEndpointBuilderFactory, @@ -58,19 +57,18 @@ public interface EndpointBuilders org.apache.camel.builder.endpoint.dsl.ClassEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.ClientEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.CloudtrailEndpointBuilderFactory, + org.apache.camel.builder.endpoint.dsl.CMEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.CoAPEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.CometdEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.ConsulEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.ControlBusEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.CosmosDbEndpointBuilderFactory, - org.apache.camel.builder.endpoint.dsl.CouchDbEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.CouchbaseEndpointBuilderFactory, + org.apache.camel.builder.endpoint.dsl.CouchDbEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.CronEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.Cw2EndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.CxfEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.CxfRsEndpointBuilderFactory, - org.apache.camel.builder.endpoint.dsl.DJLEndpointBuilderFactory, - org.apache.camel.builder.endpoint.dsl.DMSEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.DataFormatEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.DataLakeEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.DataSetEndpointBuilderFactory, @@ -89,6 +87,8 @@ public interface EndpointBuilders org.apache.camel.builder.endpoint.dsl.DirectEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.DisruptorEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.DisruptorVmEndpointBuilderFactory, + org.apache.camel.builder.endpoint.dsl.DJLEndpointBuilderFactory, + org.apache.camel.builder.endpoint.dsl.DMSEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.DnsEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.DockerEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.DrillEndpointBuilderFactory, @@ -96,20 +96,20 @@ public interface EndpointBuilders org.apache.camel.builder.endpoint.dsl.DynamicRouterControlEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.DynamicRouterEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.ECS2EndpointBuilderFactory, - org.apache.camel.builder.endpoint.dsl.EKS2EndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.EhcacheEndpointBuilderFactory, + org.apache.camel.builder.endpoint.dsl.EKS2EndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.ElasticsearchEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.ElasticsearchRestClientEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.Etcd3EndpointBuilderFactory, + org.apache.camel.builder.endpoint.dsl.EventbridgeEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.EventEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.EventHubsEndpointBuilderFactory, - org.apache.camel.builder.endpoint.dsl.EventbridgeEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.ExecEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.FaceRecognitionEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.FhirEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.FileEndpointBuilderFactory, - org.apache.camel.builder.endpoint.dsl.FileWatchEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.FilesEndpointBuilderFactory, + org.apache.camel.builder.endpoint.dsl.FileWatchEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.FlatpackEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.FlinkEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.FopEndpointBuilderFactory, @@ -170,30 +170,30 @@ public interface EndpointBuilders org.apache.camel.builder.endpoint.dsl.IrcEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.IronMQEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.JCacheEndpointBuilderFactory, - org.apache.camel.builder.endpoint.dsl.JGroupsEndpointBuilderFactory, - org.apache.camel.builder.endpoint.dsl.JGroupsRaftEndpointBuilderFactory, - org.apache.camel.builder.endpoint.dsl.JMXEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.JcrEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.JdbcEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.JettyHttp12EndpointBuilderFactory, + org.apache.camel.builder.endpoint.dsl.JGroupsEndpointBuilderFactory, + org.apache.camel.builder.endpoint.dsl.JGroupsRaftEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.JiraEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.JmsEndpointBuilderFactory, + org.apache.camel.builder.endpoint.dsl.JMXEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.JoltEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.JooqEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.JpaEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.JsltEndpointBuilderFactory, + org.apache.camel.builder.endpoint.dsl.JsonataEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.JsonPatchEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.JsonValidatorEndpointBuilderFactory, - org.apache.camel.builder.endpoint.dsl.JsonataEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.Jt400EndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.JteEndpointBuilderFactory, - org.apache.camel.builder.endpoint.dsl.KMS2EndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.KafkaEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.KameletEndpointBuilderFactory, - org.apache.camel.builder.endpoint.dsl.KeyVaultEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.KeystoneEndpointBuilderFactory, + org.apache.camel.builder.endpoint.dsl.KeyVaultEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.Kinesis2EndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.KinesisFirehose2EndpointBuilderFactory, + org.apache.camel.builder.endpoint.dsl.KMS2EndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.KnativeEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.KubernetesConfigMapsEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.KubernetesCronJobEndpointBuilderFactory, @@ -224,8 +224,6 @@ public interface EndpointBuilders org.apache.camel.builder.endpoint.dsl.LogEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.LuceneEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.LumberjackEndpointBuilderFactory, - org.apache.camel.builder.endpoint.dsl.MQ2EndpointBuilderFactory, - org.apache.camel.builder.endpoint.dsl.MSK2EndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.MailEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.MapstructEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.MasterEndpointBuilderFactory, @@ -237,14 +235,16 @@ public interface EndpointBuilders org.apache.camel.builder.endpoint.dsl.MllpEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.MockEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.MongoDbEndpointBuilderFactory, + org.apache.camel.builder.endpoint.dsl.MQ2EndpointBuilderFactory, + org.apache.camel.builder.endpoint.dsl.MSK2EndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.MustacheEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.MvelEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.MyBatisBeanEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.MyBatisEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.NatsEndpointBuilderFactory, - org.apache.camel.builder.endpoint.dsl.NetWeaverEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.NettyEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.NettyHttpEndpointBuilderFactory, + org.apache.camel.builder.endpoint.dsl.NetWeaverEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.NeutronEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.NitriteEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.NovaEndpointBuilderFactory, @@ -282,7 +282,6 @@ public interface EndpointBuilders org.apache.camel.builder.endpoint.dsl.RobotFrameworkEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.RocketMQEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.RssEndpointBuilderFactory, - org.apache.camel.builder.endpoint.dsl.STS2EndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.SagaEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.SalesforceEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.SchedulerEndpointBuilderFactory, @@ -324,6 +323,7 @@ public interface EndpointBuilders org.apache.camel.builder.endpoint.dsl.StompEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.StreamEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.StringTemplateEndpointBuilderFactory, + org.apache.camel.builder.endpoint.dsl.STS2EndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.StubEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.SwiftEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.TahuEdgeEndpointBuilderFactory, @@ -354,10 +354,10 @@ public interface EndpointBuilders org.apache.camel.builder.endpoint.dsl.WorkdayEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.XChangeEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.XJEndpointBuilderFactory, - org.apache.camel.builder.endpoint.dsl.XQueryEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.XmlSignerEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.XmlVerifierEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.XmppEndpointBuilderFactory, + org.apache.camel.builder.endpoint.dsl.XQueryEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.XsltEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.XsltSaxonEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.ZeebeEndpointBuilderFactory, diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java index 550d48e993be6..65fd939321510 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java @@ -3927,7 +3927,8 @@ public static DJLEndpointBuilderFactory.DJLEndpointBuilder djl(String componentN * * Path parameter: dnsType (required) * The type of the lookup. - * There are 4 enums and the value can be one of: dig, ip, lookup, wikipedia + * There are 4 enums and the value can be one of: dig, ip, lookup, + * wikipedia * * @param path dnsType * @return the dsl builder @@ -3947,7 +3948,8 @@ public static DnsEndpointBuilderFactory.DnsEndpointBuilder dns(String path) { * * Path parameter: dnsType (required) * The type of the lookup. - * There are 4 enums and the value can be one of: dig, ip, lookup, wikipedia + * There are 4 enums and the value can be one of: dig, ip, lookup, + * wikipedia * * @param componentName to use a custom component name for the endpoint * instead of the default name @@ -5669,7 +5671,8 @@ public static GoogleCloudStorageEndpointBuilderFactory.GoogleCloudStorageEndpoin * Syntax: grape:defaultCoordinates * * Path parameter: defaultCoordinates (required) - * Maven coordinates to use as default to grab if the message body is empty. + * Maven coordinates to use as default to grab if the message body is + * empty. * * @param path defaultCoordinates * @return the dsl builder @@ -5690,7 +5693,8 @@ public static GrapeEndpointBuilderFactory.GrapeEndpointBuilder grape(String path * Syntax: grape:defaultCoordinates * * Path parameter: defaultCoordinates (required) - * Maven coordinates to use as default to grab if the message body is empty. + * Maven coordinates to use as default to grab if the message body is + * empty. * * @param componentName to use a custom component name for the endpoint * instead of the default name diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AMQPEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AMQPEndpointBuilderFactory.java index b3e1965d54dc7..8459b31da83bd 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AMQPEndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AMQPEndpointBuilderFactory.java @@ -2468,7 +2468,8 @@ default AdvancedAMQPEndpointConsumerBuilder useMessageIDAsCorrelationID(String u * Default: 50 * Group: advanced * - * @param waitForProvisionCorrelationToBeUpdatedCounter the value to set + * @param waitForProvisionCorrelationToBeUpdatedCounter the value to + * set * @return the dsl builder */ default AdvancedAMQPEndpointConsumerBuilder waitForProvisionCorrelationToBeUpdatedCounter(int waitForProvisionCorrelationToBeUpdatedCounter) { @@ -2485,7 +2486,8 @@ default AdvancedAMQPEndpointConsumerBuilder waitForProvisionCorrelationToBeUpdat * Default: 50 * Group: advanced * - * @param waitForProvisionCorrelationToBeUpdatedCounter the value to set + * @param waitForProvisionCorrelationToBeUpdatedCounter the value to + * set * @return the dsl builder */ default AdvancedAMQPEndpointConsumerBuilder waitForProvisionCorrelationToBeUpdatedCounter(String waitForProvisionCorrelationToBeUpdatedCounter) { @@ -5024,7 +5026,8 @@ default AdvancedAMQPEndpointProducerBuilder useMessageIDAsCorrelationID(String u * Default: 50 * Group: advanced * - * @param waitForProvisionCorrelationToBeUpdatedCounter the value to set + * @param waitForProvisionCorrelationToBeUpdatedCounter the value to + * set * @return the dsl builder */ default AdvancedAMQPEndpointProducerBuilder waitForProvisionCorrelationToBeUpdatedCounter(int waitForProvisionCorrelationToBeUpdatedCounter) { @@ -5041,7 +5044,8 @@ default AdvancedAMQPEndpointProducerBuilder waitForProvisionCorrelationToBeUpdat * Default: 50 * Group: advanced * - * @param waitForProvisionCorrelationToBeUpdatedCounter the value to set + * @param waitForProvisionCorrelationToBeUpdatedCounter the value to + * set * @return the dsl builder */ default AdvancedAMQPEndpointProducerBuilder waitForProvisionCorrelationToBeUpdatedCounter(String waitForProvisionCorrelationToBeUpdatedCounter) { @@ -6751,7 +6755,8 @@ default AdvancedAMQPEndpointBuilder useMessageIDAsCorrelationID(String useMessag * Default: 50 * Group: advanced * - * @param waitForProvisionCorrelationToBeUpdatedCounter the value to set + * @param waitForProvisionCorrelationToBeUpdatedCounter the value to + * set * @return the dsl builder */ default AdvancedAMQPEndpointBuilder waitForProvisionCorrelationToBeUpdatedCounter(int waitForProvisionCorrelationToBeUpdatedCounter) { @@ -6768,7 +6773,8 @@ default AdvancedAMQPEndpointBuilder waitForProvisionCorrelationToBeUpdatedCounte * Default: 50 * Group: advanced * - * @param waitForProvisionCorrelationToBeUpdatedCounter the value to set + * @param waitForProvisionCorrelationToBeUpdatedCounter the value to + * set * @return the dsl builder */ default AdvancedAMQPEndpointBuilder waitForProvisionCorrelationToBeUpdatedCounter(String waitForProvisionCorrelationToBeUpdatedCounter) { diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ActiveMQ6EndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ActiveMQ6EndpointBuilderFactory.java index 7176016f1fef8..8f6acc63e4d3e 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ActiveMQ6EndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ActiveMQ6EndpointBuilderFactory.java @@ -2514,7 +2514,8 @@ default AdvancedActiveMQ6EndpointConsumerBuilder useMessageIDAsCorrelationID(Str * Default: 50 * Group: advanced * - * @param waitForProvisionCorrelationToBeUpdatedCounter the value to set + * @param waitForProvisionCorrelationToBeUpdatedCounter the value to + * set * @return the dsl builder */ default AdvancedActiveMQ6EndpointConsumerBuilder waitForProvisionCorrelationToBeUpdatedCounter(int waitForProvisionCorrelationToBeUpdatedCounter) { @@ -2531,7 +2532,8 @@ default AdvancedActiveMQ6EndpointConsumerBuilder waitForProvisionCorrelationToBe * Default: 50 * Group: advanced * - * @param waitForProvisionCorrelationToBeUpdatedCounter the value to set + * @param waitForProvisionCorrelationToBeUpdatedCounter the value to + * set * @return the dsl builder */ default AdvancedActiveMQ6EndpointConsumerBuilder waitForProvisionCorrelationToBeUpdatedCounter(String waitForProvisionCorrelationToBeUpdatedCounter) { @@ -5070,7 +5072,8 @@ default AdvancedActiveMQ6EndpointProducerBuilder useMessageIDAsCorrelationID(Str * Default: 50 * Group: advanced * - * @param waitForProvisionCorrelationToBeUpdatedCounter the value to set + * @param waitForProvisionCorrelationToBeUpdatedCounter the value to + * set * @return the dsl builder */ default AdvancedActiveMQ6EndpointProducerBuilder waitForProvisionCorrelationToBeUpdatedCounter(int waitForProvisionCorrelationToBeUpdatedCounter) { @@ -5087,7 +5090,8 @@ default AdvancedActiveMQ6EndpointProducerBuilder waitForProvisionCorrelationToBe * Default: 50 * Group: advanced * - * @param waitForProvisionCorrelationToBeUpdatedCounter the value to set + * @param waitForProvisionCorrelationToBeUpdatedCounter the value to + * set * @return the dsl builder */ default AdvancedActiveMQ6EndpointProducerBuilder waitForProvisionCorrelationToBeUpdatedCounter(String waitForProvisionCorrelationToBeUpdatedCounter) { @@ -6797,7 +6801,8 @@ default AdvancedActiveMQ6EndpointBuilder useMessageIDAsCorrelationID(String useM * Default: 50 * Group: advanced * - * @param waitForProvisionCorrelationToBeUpdatedCounter the value to set + * @param waitForProvisionCorrelationToBeUpdatedCounter the value to + * set * @return the dsl builder */ default AdvancedActiveMQ6EndpointBuilder waitForProvisionCorrelationToBeUpdatedCounter(int waitForProvisionCorrelationToBeUpdatedCounter) { @@ -6814,7 +6819,8 @@ default AdvancedActiveMQ6EndpointBuilder waitForProvisionCorrelationToBeUpdatedC * Default: 50 * Group: advanced * - * @param waitForProvisionCorrelationToBeUpdatedCounter the value to set + * @param waitForProvisionCorrelationToBeUpdatedCounter the value to + * set * @return the dsl builder */ default AdvancedActiveMQ6EndpointBuilder waitForProvisionCorrelationToBeUpdatedCounter(String waitForProvisionCorrelationToBeUpdatedCounter) { diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ActiveMQEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ActiveMQEndpointBuilderFactory.java index 6dbda20c91796..d9036c0ab22ab 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ActiveMQEndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ActiveMQEndpointBuilderFactory.java @@ -2514,7 +2514,8 @@ default AdvancedActiveMQEndpointConsumerBuilder useMessageIDAsCorrelationID(Stri * Default: 50 * Group: advanced * - * @param waitForProvisionCorrelationToBeUpdatedCounter the value to set + * @param waitForProvisionCorrelationToBeUpdatedCounter the value to + * set * @return the dsl builder */ default AdvancedActiveMQEndpointConsumerBuilder waitForProvisionCorrelationToBeUpdatedCounter(int waitForProvisionCorrelationToBeUpdatedCounter) { @@ -2531,7 +2532,8 @@ default AdvancedActiveMQEndpointConsumerBuilder waitForProvisionCorrelationToBeU * Default: 50 * Group: advanced * - * @param waitForProvisionCorrelationToBeUpdatedCounter the value to set + * @param waitForProvisionCorrelationToBeUpdatedCounter the value to + * set * @return the dsl builder */ default AdvancedActiveMQEndpointConsumerBuilder waitForProvisionCorrelationToBeUpdatedCounter(String waitForProvisionCorrelationToBeUpdatedCounter) { @@ -5070,7 +5072,8 @@ default AdvancedActiveMQEndpointProducerBuilder useMessageIDAsCorrelationID(Stri * Default: 50 * Group: advanced * - * @param waitForProvisionCorrelationToBeUpdatedCounter the value to set + * @param waitForProvisionCorrelationToBeUpdatedCounter the value to + * set * @return the dsl builder */ default AdvancedActiveMQEndpointProducerBuilder waitForProvisionCorrelationToBeUpdatedCounter(int waitForProvisionCorrelationToBeUpdatedCounter) { @@ -5087,7 +5090,8 @@ default AdvancedActiveMQEndpointProducerBuilder waitForProvisionCorrelationToBeU * Default: 50 * Group: advanced * - * @param waitForProvisionCorrelationToBeUpdatedCounter the value to set + * @param waitForProvisionCorrelationToBeUpdatedCounter the value to + * set * @return the dsl builder */ default AdvancedActiveMQEndpointProducerBuilder waitForProvisionCorrelationToBeUpdatedCounter(String waitForProvisionCorrelationToBeUpdatedCounter) { @@ -6797,7 +6801,8 @@ default AdvancedActiveMQEndpointBuilder useMessageIDAsCorrelationID(String useMe * Default: 50 * Group: advanced * - * @param waitForProvisionCorrelationToBeUpdatedCounter the value to set + * @param waitForProvisionCorrelationToBeUpdatedCounter the value to + * set * @return the dsl builder */ default AdvancedActiveMQEndpointBuilder waitForProvisionCorrelationToBeUpdatedCounter(int waitForProvisionCorrelationToBeUpdatedCounter) { @@ -6814,7 +6819,8 @@ default AdvancedActiveMQEndpointBuilder waitForProvisionCorrelationToBeUpdatedCo * Default: 50 * Group: advanced * - * @param waitForProvisionCorrelationToBeUpdatedCounter the value to set + * @param waitForProvisionCorrelationToBeUpdatedCounter the value to + * set * @return the dsl builder */ default AdvancedActiveMQEndpointBuilder waitForProvisionCorrelationToBeUpdatedCounter(String waitForProvisionCorrelationToBeUpdatedCounter) { diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AtmosphereWebsocketEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AtmosphereWebsocketEndpointBuilderFactory.java index 8ee72b517e7d8..4fec53eddd992 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AtmosphereWebsocketEndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AtmosphereWebsocketEndpointBuilderFactory.java @@ -1123,6 +1123,112 @@ default AtmosphereWebsocketEndpointProducerBuilder bridgeEndpoint(String bridgeE doSetProperty("bridgeEndpoint", bridgeEndpoint); return this; } + /** + * Default expiration time for cached OAuth2 tokens, in seconds. Used if + * token response does not contain 'expires_in' field. + * + * The option is a: long type. + * + * Default: 3600 + * Group: security + * + * @param oauth2CachedTokensDefaultExpirySeconds the value to set + * @return the dsl builder + */ + default AtmosphereWebsocketEndpointProducerBuilder oauth2CachedTokensDefaultExpirySeconds(long oauth2CachedTokensDefaultExpirySeconds) { + doSetProperty("oauth2CachedTokensDefaultExpirySeconds", oauth2CachedTokensDefaultExpirySeconds); + return this; + } + /** + * Default expiration time for cached OAuth2 tokens, in seconds. Used if + * token response does not contain 'expires_in' field. + * + * The option will be converted to a long type. + * + * Default: 3600 + * Group: security + * + * @param oauth2CachedTokensDefaultExpirySeconds the value to set + * @return the dsl builder + */ + default AtmosphereWebsocketEndpointProducerBuilder oauth2CachedTokensDefaultExpirySeconds(String oauth2CachedTokensDefaultExpirySeconds) { + doSetProperty("oauth2CachedTokensDefaultExpirySeconds", oauth2CachedTokensDefaultExpirySeconds); + return this; + } + /** + * Amount of time which is deducted from OAuth2 tokens expiry time to + * compensate for the time it takes OAuth2 Token Endpoint to send the + * token over http, in seconds. Set this parameter to high value if you + * OAuth2 Token Endpoint answers slowly or you tokens expire quickly. If + * you set this parameter to too small value, you can get 4xx http + * errors because camel will think that the received token is still + * valid, while in reality the token is expired for the Authentication + * server. + * + * The option is a: long type. + * + * Default: 5 + * Group: security + * + * @param oauth2CachedTokensExpirationMarginSeconds the value to set + * @return the dsl builder + */ + default AtmosphereWebsocketEndpointProducerBuilder oauth2CachedTokensExpirationMarginSeconds(long oauth2CachedTokensExpirationMarginSeconds) { + doSetProperty("oauth2CachedTokensExpirationMarginSeconds", oauth2CachedTokensExpirationMarginSeconds); + return this; + } + /** + * Amount of time which is deducted from OAuth2 tokens expiry time to + * compensate for the time it takes OAuth2 Token Endpoint to send the + * token over http, in seconds. Set this parameter to high value if you + * OAuth2 Token Endpoint answers slowly or you tokens expire quickly. If + * you set this parameter to too small value, you can get 4xx http + * errors because camel will think that the received token is still + * valid, while in reality the token is expired for the Authentication + * server. + * + * The option will be converted to a long type. + * + * Default: 5 + * Group: security + * + * @param oauth2CachedTokensExpirationMarginSeconds the value to set + * @return the dsl builder + */ + default AtmosphereWebsocketEndpointProducerBuilder oauth2CachedTokensExpirationMarginSeconds(String oauth2CachedTokensExpirationMarginSeconds) { + doSetProperty("oauth2CachedTokensExpirationMarginSeconds", oauth2CachedTokensExpirationMarginSeconds); + return this; + } + /** + * Whether to cache OAuth2 client tokens. + * + * The option is a: boolean type. + * + * Default: false + * Group: security + * + * @param oauth2CacheTokens the value to set + * @return the dsl builder + */ + default AtmosphereWebsocketEndpointProducerBuilder oauth2CacheTokens(boolean oauth2CacheTokens) { + doSetProperty("oauth2CacheTokens", oauth2CacheTokens); + return this; + } + /** + * Whether to cache OAuth2 client tokens. + * + * The option will be converted to a boolean type. + * + * Default: false + * Group: security + * + * @param oauth2CacheTokens the value to set + * @return the dsl builder + */ + default AtmosphereWebsocketEndpointProducerBuilder oauth2CacheTokens(String oauth2CacheTokens) { + doSetProperty("oauth2CacheTokens", oauth2CacheTokens); + return this; + } } /** diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/CaffeineLoadCacheEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/CaffeineLoadCacheEndpointBuilderFactory.java index d749e193074f2..cc4c5ca05c5bb 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/CaffeineLoadCacheEndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/CaffeineLoadCacheEndpointBuilderFactory.java @@ -27,7 +27,8 @@ import org.apache.camel.builder.endpoint.AbstractEndpointBuilder; /** - * Perform caching operations using Caffeine Cache with an attached CacheLoader. + * Perform caching operations using Caffeine Cache with an attached + * CacheLoader. * * Generated by camel build tools - do NOT edit this file! */ diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/DynamicRouterEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/DynamicRouterEndpointBuilderFactory.java index 343405eeb0b25..d624722ea1d34 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/DynamicRouterEndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/DynamicRouterEndpointBuilderFactory.java @@ -722,7 +722,8 @@ public interface DynamicRouterBuilders { * URI is dynamic-router://test, then the channel is test. Channels are * a way of keeping routing participants, their rules, and exchanges * logically separate from the participants, rules, and exchanges on - * other channels. This can be seen as analogous to VLANs in networking. + * other channels. This can be seen as analogous to VLANs in + * networking. * * @param path channel * @return the dsl builder @@ -746,7 +747,8 @@ default DynamicRouterEndpointBuilder dynamicRouter(String path) { * URI is dynamic-router://test, then the channel is test. Channels are * a way of keeping routing participants, their rules, and exchanges * logically separate from the participants, rules, and exchanges on - * other channels. This can be seen as analogous to VLANs in networking. + * other channels. This can be seen as analogous to VLANs in + * networking. * * @param componentName to use a custom component name for the endpoint * instead of the default name diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/HazelcastAtomicnumberEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/HazelcastAtomicnumberEndpointBuilderFactory.java index 817bbdc4fa2f6..24a9d2c4c95e9 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/HazelcastAtomicnumberEndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/HazelcastAtomicnumberEndpointBuilderFactory.java @@ -27,7 +27,8 @@ import org.apache.camel.builder.endpoint.AbstractEndpointBuilder; /** - * Increment, decrement, set, etc. Hazelcast atomic number (a grid wide number). + * Increment, decrement, set, etc. Hazelcast atomic number (a grid wide + * number). * * Generated by camel build tools - do NOT edit this file! */ diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/HttpEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/HttpEndpointBuilderFactory.java index deccba694427b..41a91b985c7b1 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/HttpEndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/HttpEndpointBuilderFactory.java @@ -17,12 +17,8 @@ */ package org.apache.camel.builder.endpoint.dsl; -import java.util.*; -import java.util.concurrent.*; -import java.util.function.*; -import java.util.stream.*; +import java.util.Map; import javax.annotation.processing.Generated; -import org.apache.camel.builder.EndpointConsumerBuilder; import org.apache.camel.builder.EndpointProducerBuilder; import org.apache.camel.builder.endpoint.AbstractEndpointBuilder; @@ -596,6 +592,112 @@ default HttpEndpointBuilder authUsername(String authUsername) { doSetProperty("authUsername", authUsername); return this; } + /** + * Default expiration time for cached OAuth2 tokens, in seconds. Used if + * token response does not contain 'expires_in' field. + * + * The option is a: long type. + * + * Default: 3600 + * Group: security + * + * @param oauth2CachedTokensDefaultExpirySeconds the value to set + * @return the dsl builder + */ + default HttpEndpointBuilder oauth2CachedTokensDefaultExpirySeconds(long oauth2CachedTokensDefaultExpirySeconds) { + doSetProperty("oauth2CachedTokensDefaultExpirySeconds", oauth2CachedTokensDefaultExpirySeconds); + return this; + } + /** + * Default expiration time for cached OAuth2 tokens, in seconds. Used if + * token response does not contain 'expires_in' field. + * + * The option will be converted to a long type. + * + * Default: 3600 + * Group: security + * + * @param oauth2CachedTokensDefaultExpirySeconds the value to set + * @return the dsl builder + */ + default HttpEndpointBuilder oauth2CachedTokensDefaultExpirySeconds(String oauth2CachedTokensDefaultExpirySeconds) { + doSetProperty("oauth2CachedTokensDefaultExpirySeconds", oauth2CachedTokensDefaultExpirySeconds); + return this; + } + /** + * Amount of time which is deducted from OAuth2 tokens expiry time to + * compensate for the time it takes OAuth2 Token Endpoint to send the + * token over http, in seconds. Set this parameter to high value if you + * OAuth2 Token Endpoint answers slowly or you tokens expire quickly. If + * you set this parameter to too small value, you can get 4xx http + * errors because camel will think that the received token is still + * valid, while in reality the token is expired for the Authentication + * server. + * + * The option is a: long type. + * + * Default: 5 + * Group: security + * + * @param oauth2CachedTokensExpirationMarginSeconds the value to set + * @return the dsl builder + */ + default HttpEndpointBuilder oauth2CachedTokensExpirationMarginSeconds(long oauth2CachedTokensExpirationMarginSeconds) { + doSetProperty("oauth2CachedTokensExpirationMarginSeconds", oauth2CachedTokensExpirationMarginSeconds); + return this; + } + /** + * Amount of time which is deducted from OAuth2 tokens expiry time to + * compensate for the time it takes OAuth2 Token Endpoint to send the + * token over http, in seconds. Set this parameter to high value if you + * OAuth2 Token Endpoint answers slowly or you tokens expire quickly. If + * you set this parameter to too small value, you can get 4xx http + * errors because camel will think that the received token is still + * valid, while in reality the token is expired for the Authentication + * server. + * + * The option will be converted to a long type. + * + * Default: 5 + * Group: security + * + * @param oauth2CachedTokensExpirationMarginSeconds the value to set + * @return the dsl builder + */ + default HttpEndpointBuilder oauth2CachedTokensExpirationMarginSeconds(String oauth2CachedTokensExpirationMarginSeconds) { + doSetProperty("oauth2CachedTokensExpirationMarginSeconds", oauth2CachedTokensExpirationMarginSeconds); + return this; + } + /** + * Whether to cache OAuth2 client tokens. + * + * The option is a: boolean type. + * + * Default: false + * Group: security + * + * @param oauth2CacheTokens the value to set + * @return the dsl builder + */ + default HttpEndpointBuilder oauth2CacheTokens(boolean oauth2CacheTokens) { + doSetProperty("oauth2CacheTokens", oauth2CacheTokens); + return this; + } + /** + * Whether to cache OAuth2 client tokens. + * + * The option will be converted to a boolean type. + * + * Default: false + * Group: security + * + * @param oauth2CacheTokens the value to set + * @return the dsl builder + */ + default HttpEndpointBuilder oauth2CacheTokens(String oauth2CacheTokens) { + doSetProperty("oauth2CacheTokens", oauth2CacheTokens); + return this; + } /** * OAuth2 client id. * diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/JmsEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/JmsEndpointBuilderFactory.java index 810e0d871c913..243e8fa18072d 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/JmsEndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/JmsEndpointBuilderFactory.java @@ -2468,7 +2468,8 @@ default AdvancedJmsEndpointConsumerBuilder useMessageIDAsCorrelationID(String us * Default: 50 * Group: advanced * - * @param waitForProvisionCorrelationToBeUpdatedCounter the value to set + * @param waitForProvisionCorrelationToBeUpdatedCounter the value to + * set * @return the dsl builder */ default AdvancedJmsEndpointConsumerBuilder waitForProvisionCorrelationToBeUpdatedCounter(int waitForProvisionCorrelationToBeUpdatedCounter) { @@ -2485,7 +2486,8 @@ default AdvancedJmsEndpointConsumerBuilder waitForProvisionCorrelationToBeUpdate * Default: 50 * Group: advanced * - * @param waitForProvisionCorrelationToBeUpdatedCounter the value to set + * @param waitForProvisionCorrelationToBeUpdatedCounter the value to + * set * @return the dsl builder */ default AdvancedJmsEndpointConsumerBuilder waitForProvisionCorrelationToBeUpdatedCounter(String waitForProvisionCorrelationToBeUpdatedCounter) { @@ -5024,7 +5026,8 @@ default AdvancedJmsEndpointProducerBuilder useMessageIDAsCorrelationID(String us * Default: 50 * Group: advanced * - * @param waitForProvisionCorrelationToBeUpdatedCounter the value to set + * @param waitForProvisionCorrelationToBeUpdatedCounter the value to + * set * @return the dsl builder */ default AdvancedJmsEndpointProducerBuilder waitForProvisionCorrelationToBeUpdatedCounter(int waitForProvisionCorrelationToBeUpdatedCounter) { @@ -5041,7 +5044,8 @@ default AdvancedJmsEndpointProducerBuilder waitForProvisionCorrelationToBeUpdate * Default: 50 * Group: advanced * - * @param waitForProvisionCorrelationToBeUpdatedCounter the value to set + * @param waitForProvisionCorrelationToBeUpdatedCounter the value to + * set * @return the dsl builder */ default AdvancedJmsEndpointProducerBuilder waitForProvisionCorrelationToBeUpdatedCounter(String waitForProvisionCorrelationToBeUpdatedCounter) { @@ -6751,7 +6755,8 @@ default AdvancedJmsEndpointBuilder useMessageIDAsCorrelationID(String useMessage * Default: 50 * Group: advanced * - * @param waitForProvisionCorrelationToBeUpdatedCounter the value to set + * @param waitForProvisionCorrelationToBeUpdatedCounter the value to + * set * @return the dsl builder */ default AdvancedJmsEndpointBuilder waitForProvisionCorrelationToBeUpdatedCounter(int waitForProvisionCorrelationToBeUpdatedCounter) { @@ -6768,7 +6773,8 @@ default AdvancedJmsEndpointBuilder waitForProvisionCorrelationToBeUpdatedCounter * Default: 50 * Group: advanced * - * @param waitForProvisionCorrelationToBeUpdatedCounter the value to set + * @param waitForProvisionCorrelationToBeUpdatedCounter the value to + * set * @return the dsl builder */ default AdvancedJmsEndpointBuilder waitForProvisionCorrelationToBeUpdatedCounter(String waitForProvisionCorrelationToBeUpdatedCounter) { diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/LogEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/LogEndpointBuilderFactory.java index a7387cd9a1246..46bc5d0dd79de 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/LogEndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/LogEndpointBuilderFactory.java @@ -27,7 +27,8 @@ import org.apache.camel.builder.endpoint.AbstractEndpointBuilder; /** - * Prints data form the routed message (such as body and headers) to the logger. + * Prints data form the routed message (such as body and headers) to the + * logger. * * Generated by camel build tools - do NOT edit this file! */ diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MyBatisBeanEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MyBatisBeanEndpointBuilderFactory.java index 85911c5e17213..8c2373e1af5e1 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MyBatisBeanEndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MyBatisBeanEndpointBuilderFactory.java @@ -211,7 +211,8 @@ default MyBatisBeanHeaderNameBuilder mybatisBean() { * type alias or a FQN class name. * * Path parameter: methodName (required) - * Name of the method on the bean that has the SQL query to be executed. + * Name of the method on the bean that has the SQL query to be + * executed. * * @param path beanName:methodName * @return the dsl builder @@ -235,7 +236,8 @@ default MyBatisBeanEndpointBuilder mybatisBean(String path) { * type alias or a FQN class name. * * Path parameter: methodName (required) - * Name of the method on the bean that has the SQL query to be executed. + * Name of the method on the bean that has the SQL query to be + * executed. * * @param componentName to use a custom component name for the endpoint * instead of the default name diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ReactiveStreamsEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ReactiveStreamsEndpointBuilderFactory.java index f953e7e4c3cc6..539a076d947c5 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ReactiveStreamsEndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ReactiveStreamsEndpointBuilderFactory.java @@ -500,7 +500,8 @@ default ReactiveStreamsHeaderNameBuilder reactiveStreams() { * Syntax: reactive-streams:stream * * Path parameter: stream - * Name of the stream channel used by the endpoint to exchange messages. + * Name of the stream channel used by the endpoint to exchange + * messages. * * @param path stream * @return the dsl builder @@ -520,7 +521,8 @@ default ReactiveStreamsEndpointBuilder reactiveStreams(String path) { * Syntax: reactive-streams:stream * * Path parameter: stream - * Name of the stream channel used by the endpoint to exchange messages. + * Name of the stream channel used by the endpoint to exchange + * messages. * * @param componentName to use a custom component name for the endpoint * instead of the default name diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SpringRabbitMQEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SpringRabbitMQEndpointBuilderFactory.java index 3ec8f3eabd6b7..61f8eddbb65e5 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SpringRabbitMQEndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SpringRabbitMQEndpointBuilderFactory.java @@ -2080,7 +2080,8 @@ default SpringRabbitMQHeaderNameBuilder springRabbitmq() { * The exchange name determines the exchange to which the produced * messages will be sent to. In the case of consumers, the exchange name * determines the exchange the queue will be bound to. Note: to use - * default exchange then do not use empty name, but use default instead. + * default exchange then do not use empty name, but use default + * instead. * * @param path exchangeName * @return the dsl builder @@ -2103,7 +2104,8 @@ default SpringRabbitMQEndpointBuilder springRabbitmq(String path) { * The exchange name determines the exchange to which the produced * messages will be sent to. In the case of consumers, the exchange name * determines the exchange the queue will be bound to. Note: to use - * default exchange then do not use empty name, but use default instead. + * default exchange then do not use empty name, but use default + * instead. * * @param componentName to use a custom component name for the endpoint * instead of the default name diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ZeebeEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ZeebeEndpointBuilderFactory.java index fc629ade7139c..b3692c1fd8909 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ZeebeEndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ZeebeEndpointBuilderFactory.java @@ -27,7 +27,8 @@ import org.apache.camel.builder.endpoint.AbstractEndpointBuilder; /** - * Zeebe component which integrates with Camunda Zeebe to interact with the API. + * Zeebe component which integrates with Camunda Zeebe to interact with the + * API. * * Generated by camel build tools - do NOT edit this file! */