This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push: new 7f505d72ef3 camel-vertx-websocket: improve labels for options related to security 7f505d72ef3 is described below commit 7f505d72ef337225ef42762978a5f66eb4589635 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Sun May 4 10:04:39 2025 +0200 camel-vertx-websocket: improve labels for options related to security --- .../camel/catalog/components/vertx-websocket.json | 34 +- .../component/vertx/websocket/vertx-websocket.json | 34 +- .../websocket/VertxWebsocketConfiguration.java | 20 +- .../dsl/VertxWebsocketEndpointBuilderFactory.java | 382 +++++++++++++++++---- 4 files changed, 368 insertions(+), 102 deletions(-) diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/vertx-websocket.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/vertx-websocket.json index f26325fecf5..e818cb2bf35 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/vertx-websocket.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/vertx-websocket.json @@ -47,23 +47,23 @@ "port": { "index": 1, "kind": "path", "displayName": "Port", "group": "common", "label": "", "required": true, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "WebSocket port number to use." }, "path": { "index": 2, "kind": "path", "displayName": "Path", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "WebSocket path to use." }, "allowedOriginPattern": { "index": 3, "kind": "parameter", "displayName": "Allowed Origin Pattern", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "Regex pattern to match the origin header sent by WebSocket clients" }, - "allowOriginHeader": { "index": 4, "kind": "parameter", "displayName": "Allow Origin Header", "group": "consumer", "label": "producer,consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "Whether the WebSocket client should add the Origin [...] - "consumeAsClient": { "index": 5, "kind": "parameter", "displayName": "Consume As Client", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "When set to true, the consumer acts as a WebSocket client, crea [...] - "fireWebSocketConnectionEvents": { "index": 6, "kind": "parameter", "displayName": "Fire Web Socket Connection Events", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "Whether the server consumer will [...] - "handshakeHeaders": { "index": 7, "kind": "parameter", "displayName": "Handshake Headers", "group": "consumer", "label": "producer,consumer", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "handshake.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "descri [...] - "maxReconnectAttempts": { "index": 8, "kind": "parameter", "displayName": "Max Reconnect Attempts", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "When consumeAsClient is set to true this sets the maximum num [...] - "originHeaderUrl": { "index": 9, "kind": "parameter", "displayName": "Origin Header Url", "group": "consumer", "label": "producer,consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "The value of the Origin header that the WebSocket client should use o [...] - "reconnectInitialDelay": { "index": 10, "kind": "parameter", "displayName": "Reconnect Initial Delay", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "When consumeAsClient is set to true this sets the initial [...] - "reconnectInterval": { "index": 11, "kind": "parameter", "displayName": "Reconnect Interval", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "When consumeAsClient is set to true this sets the interval in mi [...] - "router": { "index": 12, "kind": "parameter", "displayName": "Router", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "io.vertx.ext.web.Router", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "To use an existing vertx router for the HTTP server" }, - "serverOptions": { "index": 13, "kind": "parameter", "displayName": "Server Options", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "io.vertx.core.http.HttpServerOptions", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "Sets customized options for configuring the HTTP server hostin [...] - "bridgeErrorHandler": { "index": 14, "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming [...] - "exceptionHandler": { "index": 15, "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By de [...] - "exchangePattern": { "index": 16, "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." }, - "clientOptions": { "index": 17, "kind": "parameter", "displayName": "Client Options", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "io.vertx.core.http.HttpClientOptions", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "Sets customized options for configuring the WebSocket client u [...] - "clientSubProtocols": { "index": 18, "kind": "parameter", "displayName": "Client Sub Protocols", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "Comma separated list of WebSocket subprotocols that the client should u [...] - "sendToAll": { "index": 19, "kind": "parameter", "displayName": "Send To All", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "To send to all websocket subscribers. Can be used to configure at the endp [...] - "lazyStartProducer": { "index": 20, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a produ [...] + "consumeAsClient": { "index": 4, "kind": "parameter", "displayName": "Consume As Client", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "When set to true, the consumer acts as a WebSocket client, crea [...] + "fireWebSocketConnectionEvents": { "index": 5, "kind": "parameter", "displayName": "Fire Web Socket Connection Events", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "Whether the server consumer will [...] + "maxReconnectAttempts": { "index": 6, "kind": "parameter", "displayName": "Max Reconnect Attempts", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "When consumeAsClient is set to true this sets the maximum number of allowed reco [...] + "reconnectInitialDelay": { "index": 7, "kind": "parameter", "displayName": "Reconnect Initial Delay", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "When consumeAsClient is set to true this sets the initial delay in millisecond [...] + "reconnectInterval": { "index": 8, "kind": "parameter", "displayName": "Reconnect Interval", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "When consumeAsClient is set to true this sets the interval in mil [...] + "bridgeErrorHandler": { "index": 9, "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming [...] + "exceptionHandler": { "index": 10, "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By de [...] + "exchangePattern": { "index": 11, "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." }, + "router": { "index": 12, "kind": "parameter", "displayName": "Router", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "io.vertx.ext.web.Router", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "To use an existing vertx router for the HTTP server" }, + "serverOptions": { "index": 13, "kind": "parameter", "displayName": "Server Options", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "io.vertx.core.http.HttpServerOptions", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "Sets customized options for configuring th [...] + "clientSubProtocols": { "index": 14, "kind": "parameter", "displayName": "Client Sub Protocols", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "Comma separated list of WebSocket subprotocols that the client should u [...] + "sendToAll": { "index": 15, "kind": "parameter", "displayName": "Send To All", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "To send to all websocket subscribers. Can be used to configure at the endp [...] + "clientOptions": { "index": 16, "kind": "parameter", "displayName": "Client Options", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "object", "javaType": "io.vertx.core.http.HttpClientOptions", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "Sets customized options for configuring th [...] + "lazyStartProducer": { "index": 17, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a produ [...] + "allowOriginHeader": { "index": 18, "kind": "parameter", "displayName": "Allow Origin Header", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "Whether the WebSocket client should add the Origin header t [...] + "handshakeHeaders": { "index": 19, "kind": "parameter", "displayName": "Handshake Headers", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "handshake.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": [...] + "originHeaderUrl": { "index": 20, "kind": "parameter", "displayName": "Origin Header Url", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "The value of the Origin header that the WebSocket client should use on the We [...] "sslContextParameters": { "index": 21, "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, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "To configure security using SSLCo [...] } } diff --git a/components/camel-vertx/camel-vertx-websocket/src/generated/resources/META-INF/org/apache/camel/component/vertx/websocket/vertx-websocket.json b/components/camel-vertx/camel-vertx-websocket/src/generated/resources/META-INF/org/apache/camel/component/vertx/websocket/vertx-websocket.json index f26325fecf5..e818cb2bf35 100644 --- a/components/camel-vertx/camel-vertx-websocket/src/generated/resources/META-INF/org/apache/camel/component/vertx/websocket/vertx-websocket.json +++ b/components/camel-vertx/camel-vertx-websocket/src/generated/resources/META-INF/org/apache/camel/component/vertx/websocket/vertx-websocket.json @@ -47,23 +47,23 @@ "port": { "index": 1, "kind": "path", "displayName": "Port", "group": "common", "label": "", "required": true, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "WebSocket port number to use." }, "path": { "index": 2, "kind": "path", "displayName": "Path", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "WebSocket path to use." }, "allowedOriginPattern": { "index": 3, "kind": "parameter", "displayName": "Allowed Origin Pattern", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "Regex pattern to match the origin header sent by WebSocket clients" }, - "allowOriginHeader": { "index": 4, "kind": "parameter", "displayName": "Allow Origin Header", "group": "consumer", "label": "producer,consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "Whether the WebSocket client should add the Origin [...] - "consumeAsClient": { "index": 5, "kind": "parameter", "displayName": "Consume As Client", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "When set to true, the consumer acts as a WebSocket client, crea [...] - "fireWebSocketConnectionEvents": { "index": 6, "kind": "parameter", "displayName": "Fire Web Socket Connection Events", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "Whether the server consumer will [...] - "handshakeHeaders": { "index": 7, "kind": "parameter", "displayName": "Handshake Headers", "group": "consumer", "label": "producer,consumer", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "handshake.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "descri [...] - "maxReconnectAttempts": { "index": 8, "kind": "parameter", "displayName": "Max Reconnect Attempts", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "When consumeAsClient is set to true this sets the maximum num [...] - "originHeaderUrl": { "index": 9, "kind": "parameter", "displayName": "Origin Header Url", "group": "consumer", "label": "producer,consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "The value of the Origin header that the WebSocket client should use o [...] - "reconnectInitialDelay": { "index": 10, "kind": "parameter", "displayName": "Reconnect Initial Delay", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "When consumeAsClient is set to true this sets the initial [...] - "reconnectInterval": { "index": 11, "kind": "parameter", "displayName": "Reconnect Interval", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "When consumeAsClient is set to true this sets the interval in mi [...] - "router": { "index": 12, "kind": "parameter", "displayName": "Router", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "io.vertx.ext.web.Router", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "To use an existing vertx router for the HTTP server" }, - "serverOptions": { "index": 13, "kind": "parameter", "displayName": "Server Options", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "io.vertx.core.http.HttpServerOptions", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "Sets customized options for configuring the HTTP server hostin [...] - "bridgeErrorHandler": { "index": 14, "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming [...] - "exceptionHandler": { "index": 15, "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By de [...] - "exchangePattern": { "index": 16, "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." }, - "clientOptions": { "index": 17, "kind": "parameter", "displayName": "Client Options", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "io.vertx.core.http.HttpClientOptions", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "Sets customized options for configuring the WebSocket client u [...] - "clientSubProtocols": { "index": 18, "kind": "parameter", "displayName": "Client Sub Protocols", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "Comma separated list of WebSocket subprotocols that the client should u [...] - "sendToAll": { "index": 19, "kind": "parameter", "displayName": "Send To All", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "To send to all websocket subscribers. Can be used to configure at the endp [...] - "lazyStartProducer": { "index": 20, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a produ [...] + "consumeAsClient": { "index": 4, "kind": "parameter", "displayName": "Consume As Client", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "When set to true, the consumer acts as a WebSocket client, crea [...] + "fireWebSocketConnectionEvents": { "index": 5, "kind": "parameter", "displayName": "Fire Web Socket Connection Events", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "Whether the server consumer will [...] + "maxReconnectAttempts": { "index": 6, "kind": "parameter", "displayName": "Max Reconnect Attempts", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "When consumeAsClient is set to true this sets the maximum number of allowed reco [...] + "reconnectInitialDelay": { "index": 7, "kind": "parameter", "displayName": "Reconnect Initial Delay", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "When consumeAsClient is set to true this sets the initial delay in millisecond [...] + "reconnectInterval": { "index": 8, "kind": "parameter", "displayName": "Reconnect Interval", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "When consumeAsClient is set to true this sets the interval in mil [...] + "bridgeErrorHandler": { "index": 9, "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming [...] + "exceptionHandler": { "index": 10, "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By de [...] + "exchangePattern": { "index": 11, "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." }, + "router": { "index": 12, "kind": "parameter", "displayName": "Router", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "io.vertx.ext.web.Router", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "To use an existing vertx router for the HTTP server" }, + "serverOptions": { "index": 13, "kind": "parameter", "displayName": "Server Options", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "io.vertx.core.http.HttpServerOptions", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "Sets customized options for configuring th [...] + "clientSubProtocols": { "index": 14, "kind": "parameter", "displayName": "Client Sub Protocols", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "Comma separated list of WebSocket subprotocols that the client should u [...] + "sendToAll": { "index": 15, "kind": "parameter", "displayName": "Send To All", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "To send to all websocket subscribers. Can be used to configure at the endp [...] + "clientOptions": { "index": 16, "kind": "parameter", "displayName": "Client Options", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "object", "javaType": "io.vertx.core.http.HttpClientOptions", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "Sets customized options for configuring th [...] + "lazyStartProducer": { "index": 17, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a produ [...] + "allowOriginHeader": { "index": 18, "kind": "parameter", "displayName": "Allow Origin Header", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "Whether the WebSocket client should add the Origin header t [...] + "handshakeHeaders": { "index": 19, "kind": "parameter", "displayName": "Handshake Headers", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "handshake.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": [...] + "originHeaderUrl": { "index": 20, "kind": "parameter", "displayName": "Origin Header Url", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "The value of the Origin header that the WebSocket client should use on the We [...] "sslContextParameters": { "index": 21, "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, "configurationClass": "org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", "configurationField": "configuration", "description": "To configure security using SSLCo [...] } } diff --git a/components/camel-vertx/camel-vertx-websocket/src/main/java/org/apache/camel/component/vertx/websocket/VertxWebsocketConfiguration.java b/components/camel-vertx/camel-vertx-websocket/src/main/java/org/apache/camel/component/vertx/websocket/VertxWebsocketConfiguration.java index a474089902c..3751fab507e 100644 --- a/components/camel-vertx/camel-vertx-websocket/src/main/java/org/apache/camel/component/vertx/websocket/VertxWebsocketConfiguration.java +++ b/components/camel-vertx/camel-vertx-websocket/src/main/java/org/apache/camel/component/vertx/websocket/VertxWebsocketConfiguration.java @@ -43,34 +43,34 @@ public class VertxWebsocketConfiguration { private String path; @UriParam(label = "consumer") private String allowedOriginPattern; - @UriParam(label = "consumer") + @UriParam(label = "consumer,advanced") private Router router; - @UriParam(label = "consumer") + @UriParam(label = "consumer,advanced") private HttpServerOptions serverOptions; @UriParam(label = "consumer") private boolean consumeAsClient; - @UriParam(label = "consumer", defaultValue = "0") + @UriParam(label = "consumer") private int reconnectInitialDelay; @UriParam(label = "consumer", defaultValue = "1000") private int reconnectInterval = 1000; - @UriParam(label = "consumer", defaultValue = "0") + @UriParam(label = "consumer") private int maxReconnectAttempts; - @UriParam(label = "producer") + @UriParam(label = "producer,advanced") private HttpClientOptions clientOptions; @UriParam(label = "producer") private boolean sendToAll; @UriParam(label = "producer") private String clientSubProtocols; - @UriParam(label = "security") - private SSLContextParameters sslContextParameters; @UriParam(label = "consumer") private boolean fireWebSocketConnectionEvents; - @UriParam(label = "producer,consumer", defaultValue = "true") + @UriParam(label = "security", defaultValue = "true") private boolean allowOriginHeader = true; - @UriParam(label = "producer,consumer") + @UriParam(label = "security") private String originHeaderUrl; - @UriParam(label = "producer,consumer", prefix = "handshake.", multiValue = true) + @UriParam(label = "security", prefix = "handshake.", multiValue = true) private Map<String, Object> handshakeHeaders; + @UriParam(label = "security") + private SSLContextParameters sslContextParameters; /** * The WebSocket URI address to use. diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/VertxWebsocketEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/VertxWebsocketEndpointBuilderFactory.java index 46190453d4c..99f30c5563e 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/VertxWebsocketEndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/VertxWebsocketEndpointBuilderFactory.java @@ -129,7 +129,6 @@ public interface VertxWebsocketEndpointBuilderFactory { * * The option is a: <code>int</code> type. * - * Default: 0 * Group: consumer * * @param maxReconnectAttempts the value to set @@ -146,7 +145,6 @@ public interface VertxWebsocketEndpointBuilderFactory { * * The option will be converted to a <code>int</code> type. * - * Default: 0 * Group: consumer * * @param maxReconnectAttempts the value to set @@ -163,7 +161,6 @@ public interface VertxWebsocketEndpointBuilderFactory { * * The option is a: <code>int</code> type. * - * Default: 0 * Group: consumer * * @param reconnectInitialDelay the value to set @@ -180,7 +177,6 @@ public interface VertxWebsocketEndpointBuilderFactory { * * The option will be converted to a <code>int</code> type. * - * Default: 0 * Group: consumer * * @param reconnectInitialDelay the value to set @@ -225,64 +221,93 @@ public interface VertxWebsocketEndpointBuilderFactory { return this; } /** - * To use an existing vertx router for the HTTP server. + * Whether the WebSocket client should add the Origin header to the + * WebSocket handshake request. * - * The option is a: <code>io.vertx.ext.web.Router</code> type. + * The option is a: <code>boolean</code> type. * - * Group: consumer + * Default: true + * Group: security * - * @param router the value to set + * @param allowOriginHeader the value to set * @return the dsl builder */ - default VertxWebsocketEndpointConsumerBuilder router(io.vertx.ext.web.Router router) { - doSetProperty("router", router); + default VertxWebsocketEndpointConsumerBuilder allowOriginHeader(boolean allowOriginHeader) { + doSetProperty("allowOriginHeader", allowOriginHeader); return this; } /** - * To use an existing vertx router for the HTTP server. + * Whether the WebSocket client should add the Origin header to the + * WebSocket handshake request. * - * The option will be converted to a - * <code>io.vertx.ext.web.Router</code> type. + * The option will be converted to a <code>boolean</code> type. * - * Group: consumer + * Default: true + * Group: security * - * @param router the value to set + * @param allowOriginHeader the value to set * @return the dsl builder */ - default VertxWebsocketEndpointConsumerBuilder router(String router) { - doSetProperty("router", router); + default VertxWebsocketEndpointConsumerBuilder allowOriginHeader(String allowOriginHeader) { + doSetProperty("allowOriginHeader", allowOriginHeader); return this; } /** - * Sets customized options for configuring the HTTP server hosting the - * WebSocket for the consumer. + * Headers to send in the HTTP handshake request. When the endpoint is a + * consumer, it only works when it consumes a remote host as a client + * (i.e. consumeAsClient is true). * - * The option is a: <code>io.vertx.core.http.HttpServerOptions</code> - * type. + * The option is a: <code>java.util.Map<java.lang.String, + * java.lang.Object></code> type. + * The option is multivalued, and you can use the + * handshakeHeaders(String, Object) method to add a value (call the + * method multiple times to set more values). * - * Group: consumer + * Group: security * - * @param serverOptions the value to set + * @param key the option key + * @param value the option value * @return the dsl builder */ - default VertxWebsocketEndpointConsumerBuilder serverOptions(io.vertx.core.http.HttpServerOptions serverOptions) { - doSetProperty("serverOptions", serverOptions); + default VertxWebsocketEndpointConsumerBuilder handshakeHeaders(String key, Object value) { + doSetMultiValueProperty("handshakeHeaders", "handshake." + key, value); return this; } /** - * Sets customized options for configuring the HTTP server hosting the - * WebSocket for the consumer. + * Headers to send in the HTTP handshake request. When the endpoint is a + * consumer, it only works when it consumes a remote host as a client + * (i.e. consumeAsClient is true). * - * The option will be converted to a - * <code>io.vertx.core.http.HttpServerOptions</code> type. + * The option is a: <code>java.util.Map<java.lang.String, + * java.lang.Object></code> type. + * The option is multivalued, and you can use the + * handshakeHeaders(String, Object) method to add a value (call the + * method multiple times to set more values). * - * Group: consumer + * Group: security * - * @param serverOptions the value to set + * @param values the values * @return the dsl builder */ - default VertxWebsocketEndpointConsumerBuilder serverOptions(String serverOptions) { - doSetProperty("serverOptions", serverOptions); + default VertxWebsocketEndpointConsumerBuilder handshakeHeaders(Map values) { + doSetMultiValueProperties("handshakeHeaders", "handshake.", values); + return this; + } + /** + * The value of the Origin header that the WebSocket client should use + * on the WebSocket handshake request. When not specified, the WebSocket + * client will automatically determine the value for the Origin from the + * request URL. + * + * The option is a: <code>java.lang.String</code> type. + * + * Group: security + * + * @param originHeaderUrl the value to set + * @return the dsl builder + */ + default VertxWebsocketEndpointConsumerBuilder originHeaderUrl(String originHeaderUrl) { + doSetProperty("originHeaderUrl", originHeaderUrl); return this; } /** @@ -443,50 +468,79 @@ public interface VertxWebsocketEndpointBuilderFactory { doSetProperty("exchangePattern", exchangePattern); return this; } - } - - /** - * Builder for endpoint producers for the Vert.x WebSocket component. - */ - public interface VertxWebsocketEndpointProducerBuilder - extends - EndpointProducerBuilder { - default AdvancedVertxWebsocketEndpointProducerBuilder advanced() { - return (AdvancedVertxWebsocketEndpointProducerBuilder) this; + /** + * To use an existing vertx router for the HTTP server. + * + * The option is a: <code>io.vertx.ext.web.Router</code> type. + * + * Group: consumer (advanced) + * + * @param router the value to set + * @return the dsl builder + */ + default AdvancedVertxWebsocketEndpointConsumerBuilder router(io.vertx.ext.web.Router router) { + doSetProperty("router", router); + return this; } - /** - * Sets customized options for configuring the WebSocket client used in - * the producer. + * To use an existing vertx router for the HTTP server. * - * The option is a: <code>io.vertx.core.http.HttpClientOptions</code> + * The option will be converted to a + * <code>io.vertx.ext.web.Router</code> type. + * + * Group: consumer (advanced) + * + * @param router the value to set + * @return the dsl builder + */ + default AdvancedVertxWebsocketEndpointConsumerBuilder router(String router) { + doSetProperty("router", router); + return this; + } + /** + * Sets customized options for configuring the HTTP server hosting the + * WebSocket for the consumer. + * + * The option is a: <code>io.vertx.core.http.HttpServerOptions</code> * type. * - * Group: producer + * Group: consumer (advanced) * - * @param clientOptions the value to set + * @param serverOptions the value to set * @return the dsl builder */ - default VertxWebsocketEndpointProducerBuilder clientOptions(io.vertx.core.http.HttpClientOptions clientOptions) { - doSetProperty("clientOptions", clientOptions); + default AdvancedVertxWebsocketEndpointConsumerBuilder serverOptions(io.vertx.core.http.HttpServerOptions serverOptions) { + doSetProperty("serverOptions", serverOptions); return this; } /** - * Sets customized options for configuring the WebSocket client used in - * the producer. + * Sets customized options for configuring the HTTP server hosting the + * WebSocket for the consumer. * * The option will be converted to a - * <code>io.vertx.core.http.HttpClientOptions</code> type. + * <code>io.vertx.core.http.HttpServerOptions</code> type. * - * Group: producer + * Group: consumer (advanced) * - * @param clientOptions the value to set + * @param serverOptions the value to set * @return the dsl builder */ - default VertxWebsocketEndpointProducerBuilder clientOptions(String clientOptions) { - doSetProperty("clientOptions", clientOptions); + default AdvancedVertxWebsocketEndpointConsumerBuilder serverOptions(String serverOptions) { + doSetProperty("serverOptions", serverOptions); return this; } + } + + /** + * Builder for endpoint producers for the Vert.x WebSocket component. + */ + public interface VertxWebsocketEndpointProducerBuilder + extends + EndpointProducerBuilder { + default AdvancedVertxWebsocketEndpointProducerBuilder advanced() { + return (AdvancedVertxWebsocketEndpointProducerBuilder) this; + } + /** * Comma separated list of WebSocket subprotocols that the client should * use for the Sec-WebSocket-Protocol header. @@ -546,6 +600,96 @@ public interface VertxWebsocketEndpointBuilderFactory { doSetProperty("sendToAll", sendToAll); return this; } + /** + * Whether the WebSocket client should add the Origin header to the + * WebSocket handshake request. + * + * The option is a: <code>boolean</code> type. + * + * Default: true + * Group: security + * + * @param allowOriginHeader the value to set + * @return the dsl builder + */ + default VertxWebsocketEndpointProducerBuilder allowOriginHeader(boolean allowOriginHeader) { + doSetProperty("allowOriginHeader", allowOriginHeader); + return this; + } + /** + * Whether the WebSocket client should add the Origin header to the + * WebSocket handshake request. + * + * The option will be converted to a <code>boolean</code> type. + * + * Default: true + * Group: security + * + * @param allowOriginHeader the value to set + * @return the dsl builder + */ + default VertxWebsocketEndpointProducerBuilder allowOriginHeader(String allowOriginHeader) { + doSetProperty("allowOriginHeader", allowOriginHeader); + return this; + } + /** + * Headers to send in the HTTP handshake request. When the endpoint is a + * consumer, it only works when it consumes a remote host as a client + * (i.e. consumeAsClient is true). + * + * The option is a: <code>java.util.Map<java.lang.String, + * java.lang.Object></code> type. + * The option is multivalued, and you can use the + * handshakeHeaders(String, Object) method to add a value (call the + * method multiple times to set more values). + * + * Group: security + * + * @param key the option key + * @param value the option value + * @return the dsl builder + */ + default VertxWebsocketEndpointProducerBuilder handshakeHeaders(String key, Object value) { + doSetMultiValueProperty("handshakeHeaders", "handshake." + key, value); + return this; + } + /** + * Headers to send in the HTTP handshake request. When the endpoint is a + * consumer, it only works when it consumes a remote host as a client + * (i.e. consumeAsClient is true). + * + * The option is a: <code>java.util.Map<java.lang.String, + * java.lang.Object></code> type. + * The option is multivalued, and you can use the + * handshakeHeaders(String, Object) method to add a value (call the + * method multiple times to set more values). + * + * Group: security + * + * @param values the values + * @return the dsl builder + */ + default VertxWebsocketEndpointProducerBuilder handshakeHeaders(Map values) { + doSetMultiValueProperties("handshakeHeaders", "handshake.", values); + return this; + } + /** + * The value of the Origin header that the WebSocket client should use + * on the WebSocket handshake request. When not specified, the WebSocket + * client will automatically determine the value for the Origin from the + * request URL. + * + * The option is a: <code>java.lang.String</code> type. + * + * Group: security + * + * @param originHeaderUrl the value to set + * @return the dsl builder + */ + default VertxWebsocketEndpointProducerBuilder originHeaderUrl(String originHeaderUrl) { + doSetProperty("originHeaderUrl", originHeaderUrl); + return this; + } /** * To configure security using SSLContextParameters. * @@ -586,6 +730,38 @@ public interface VertxWebsocketEndpointBuilderFactory { return (VertxWebsocketEndpointProducerBuilder) this; } + /** + * Sets customized options for configuring the WebSocket client used in + * the producer. + * + * The option is a: <code>io.vertx.core.http.HttpClientOptions</code> + * type. + * + * Group: producer (advanced) + * + * @param clientOptions the value to set + * @return the dsl builder + */ + default AdvancedVertxWebsocketEndpointProducerBuilder clientOptions(io.vertx.core.http.HttpClientOptions clientOptions) { + doSetProperty("clientOptions", clientOptions); + return this; + } + /** + * Sets customized options for configuring the WebSocket client used in + * the producer. + * + * The option will be converted to a + * <code>io.vertx.core.http.HttpClientOptions</code> type. + * + * Group: producer (advanced) + * + * @param clientOptions the value to set + * @return the dsl builder + */ + default AdvancedVertxWebsocketEndpointProducerBuilder clientOptions(String clientOptions) { + doSetProperty("clientOptions", clientOptions); + return this; + } /** * Whether the producer should be started lazy (on the first message). * By starting lazy you can use this to allow CamelContext and routes to @@ -645,6 +821,96 @@ public interface VertxWebsocketEndpointBuilderFactory { return (AdvancedVertxWebsocketEndpointBuilder) this; } + /** + * Whether the WebSocket client should add the Origin header to the + * WebSocket handshake request. + * + * The option is a: <code>boolean</code> type. + * + * Default: true + * Group: security + * + * @param allowOriginHeader the value to set + * @return the dsl builder + */ + default VertxWebsocketEndpointBuilder allowOriginHeader(boolean allowOriginHeader) { + doSetProperty("allowOriginHeader", allowOriginHeader); + return this; + } + /** + * Whether the WebSocket client should add the Origin header to the + * WebSocket handshake request. + * + * The option will be converted to a <code>boolean</code> type. + * + * Default: true + * Group: security + * + * @param allowOriginHeader the value to set + * @return the dsl builder + */ + default VertxWebsocketEndpointBuilder allowOriginHeader(String allowOriginHeader) { + doSetProperty("allowOriginHeader", allowOriginHeader); + return this; + } + /** + * Headers to send in the HTTP handshake request. When the endpoint is a + * consumer, it only works when it consumes a remote host as a client + * (i.e. consumeAsClient is true). + * + * The option is a: <code>java.util.Map<java.lang.String, + * java.lang.Object></code> type. + * The option is multivalued, and you can use the + * handshakeHeaders(String, Object) method to add a value (call the + * method multiple times to set more values). + * + * Group: security + * + * @param key the option key + * @param value the option value + * @return the dsl builder + */ + default VertxWebsocketEndpointBuilder handshakeHeaders(String key, Object value) { + doSetMultiValueProperty("handshakeHeaders", "handshake." + key, value); + return this; + } + /** + * Headers to send in the HTTP handshake request. When the endpoint is a + * consumer, it only works when it consumes a remote host as a client + * (i.e. consumeAsClient is true). + * + * The option is a: <code>java.util.Map<java.lang.String, + * java.lang.Object></code> type. + * The option is multivalued, and you can use the + * handshakeHeaders(String, Object) method to add a value (call the + * method multiple times to set more values). + * + * Group: security + * + * @param values the values + * @return the dsl builder + */ + default VertxWebsocketEndpointBuilder handshakeHeaders(Map values) { + doSetMultiValueProperties("handshakeHeaders", "handshake.", values); + return this; + } + /** + * The value of the Origin header that the WebSocket client should use + * on the WebSocket handshake request. When not specified, the WebSocket + * client will automatically determine the value for the Origin from the + * request URL. + * + * The option is a: <code>java.lang.String</code> type. + * + * Group: security + * + * @param originHeaderUrl the value to set + * @return the dsl builder + */ + default VertxWebsocketEndpointBuilder originHeaderUrl(String originHeaderUrl) { + doSetProperty("originHeaderUrl", originHeaderUrl); + return this; + } /** * To configure security using SSLContextParameters. *