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

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


The following commit(s) were added to refs/heads/camel-3.x by this push:
     new 3bfc18008d3 CAMEL-17895: Add option for vertx-websocket consumer to 
connect as a WS client
3bfc18008d3 is described below

commit 3bfc18008d3a08809f99a276002fbf37dbee1126
Author: Claus Ibsen <[email protected]>
AuthorDate: Wed Jan 18 06:58:07 2023 +0100

    CAMEL-17895: Add option for vertx-websocket consumer to connect as a WS 
client
---
 .../camel/catalog/components/vertx-websocket.json  |  4 +-
 .../VertxWebsocketEndpointUriFactory.java          | 10 +++--
 .../component/vertx/websocket/vertx-websocket.json |  4 +-
 .../websocket/VertxWebsocketConfiguration.java     | 46 +++++++++++++++++++++-
 .../builder/endpoint/StaticEndpointBuilders.java   | 22 +++++++++--
 .../dsl/VertxWebsocketEndpointBuilderFactory.java  | 22 +++++++++--
 6 files changed, 94 insertions(+), 14 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 70e2ec1891d..5538ecac07c 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
@@ -36,7 +36,9 @@
     "CamelVertxWebsocket.remoteAddress": { "kind": "header", "displayName": 
"", "group": "consumer", "label": "consumer", "required": false, "javaType": 
"io.vertx.core.net.SocketAddress", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The remote address.", 
"constantName": 
"org.apache.camel.component.vertx.websocket.VertxWebsocketConstants#REMOTE_ADDRESS"
 }
   },
   "properties": {
-    "websocketURI": { "kind": "path", "displayName": "Websocket URI", "group": 
"common", "label": "", "required": true, "type": "string", "javaType": 
"java.net.URI", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", 
"configurationField": "configuration", "description": "The WebSocket URI 
address to use." },
+    "host": { "kind": "path", "displayName": "Host", "group": "common", 
"label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", 
"configurationField": "configuration", "description": "WebSocket hostname, such 
as localhost or a remote host when in client mode." },
+    "port": { "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": { "kind": "path", "displayName": "Path", "group": "common", 
"label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", 
"configurationField": "configuration", "description": "WebSocket path to use." 
},
     "allowedOriginPattern": { "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" },
     "consumeAsClient": { "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, creating exchang [...]
     "maxReconnectAttempts": { "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 number of allow [...]
diff --git 
a/components/camel-vertx/camel-vertx-websocket/src/generated/java/org/apache/camel/component/vertx/websocket/VertxWebsocketEndpointUriFactory.java
 
b/components/camel-vertx/camel-vertx-websocket/src/generated/java/org/apache/camel/component/vertx/websocket/VertxWebsocketEndpointUriFactory.java
index 11bc9610b1d..549d1a1811c 100644
--- 
a/components/camel-vertx/camel-vertx-websocket/src/generated/java/org/apache/camel/component/vertx/websocket/VertxWebsocketEndpointUriFactory.java
+++ 
b/components/camel-vertx/camel-vertx-websocket/src/generated/java/org/apache/camel/component/vertx/websocket/VertxWebsocketEndpointUriFactory.java
@@ -21,7 +21,7 @@ public class VertxWebsocketEndpointUriFactory extends 
org.apache.camel.support.c
     private static final Set<String> SECRET_PROPERTY_NAMES;
     private static final Set<String> MULTI_VALUE_PREFIXES;
     static {
-        Set<String> props = new HashSet<>(16);
+        Set<String> props = new HashSet<>(18);
         props.add("allowedOriginPattern");
         props.add("bridgeErrorHandler");
         props.add("clientOptions");
@@ -29,15 +29,17 @@ public class VertxWebsocketEndpointUriFactory extends 
org.apache.camel.support.c
         props.add("consumeAsClient");
         props.add("exceptionHandler");
         props.add("exchangePattern");
+        props.add("host");
         props.add("lazyStartProducer");
         props.add("maxReconnectAttempts");
+        props.add("path");
+        props.add("port");
         props.add("reconnectInitialDelay");
         props.add("reconnectInterval");
         props.add("router");
         props.add("sendToAll");
         props.add("serverOptions");
         props.add("sslContextParameters");
-        props.add("websocketURI");
         PROPERTY_NAMES = Collections.unmodifiableSet(props);
         SECRET_PROPERTY_NAMES = Collections.emptySet();
         MULTI_VALUE_PREFIXES = Collections.emptySet();
@@ -55,7 +57,9 @@ public class VertxWebsocketEndpointUriFactory extends 
org.apache.camel.support.c
 
         Map<String, Object> copy = new HashMap<>(properties);
 
-        uri = buildPathParameter(syntax, uri, "websocketURI", null, true, 
copy);
+        uri = buildPathParameter(syntax, uri, "host", null, true, copy);
+        uri = buildPathParameter(syntax, uri, "port", null, true, copy);
+        uri = buildPathParameter(syntax, uri, "path", null, true, copy);
         uri = buildQueryParameters(uri, copy, encode);
         return uri;
     }
diff --git 
a/components/camel-vertx/camel-vertx-websocket/src/generated/resources/org/apache/camel/component/vertx/websocket/vertx-websocket.json
 
b/components/camel-vertx/camel-vertx-websocket/src/generated/resources/org/apache/camel/component/vertx/websocket/vertx-websocket.json
index 70e2ec1891d..5538ecac07c 100644
--- 
a/components/camel-vertx/camel-vertx-websocket/src/generated/resources/org/apache/camel/component/vertx/websocket/vertx-websocket.json
+++ 
b/components/camel-vertx/camel-vertx-websocket/src/generated/resources/org/apache/camel/component/vertx/websocket/vertx-websocket.json
@@ -36,7 +36,9 @@
     "CamelVertxWebsocket.remoteAddress": { "kind": "header", "displayName": 
"", "group": "consumer", "label": "consumer", "required": false, "javaType": 
"io.vertx.core.net.SocketAddress", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The remote address.", 
"constantName": 
"org.apache.camel.component.vertx.websocket.VertxWebsocketConstants#REMOTE_ADDRESS"
 }
   },
   "properties": {
-    "websocketURI": { "kind": "path", "displayName": "Websocket URI", "group": 
"common", "label": "", "required": true, "type": "string", "javaType": 
"java.net.URI", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", 
"configurationField": "configuration", "description": "The WebSocket URI 
address to use." },
+    "host": { "kind": "path", "displayName": "Host", "group": "common", 
"label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", 
"configurationField": "configuration", "description": "WebSocket hostname, such 
as localhost or a remote host when in client mode." },
+    "port": { "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": { "kind": "path", "displayName": "Path", "group": "common", 
"label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.vertx.websocket.VertxWebsocketConfiguration", 
"configurationField": "configuration", "description": "WebSocket path to use." 
},
     "allowedOriginPattern": { "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" },
     "consumeAsClient": { "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, creating exchang [...]
     "maxReconnectAttempts": { "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 number of allow [...]
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 9f4ea89fae8..56170c4a4ad 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
@@ -30,9 +30,17 @@ import org.apache.camel.support.jsse.SSLContextParameters;
 @UriParams
 public class VertxWebsocketConfiguration {
 
+    private URI websocketURI;
+
     @UriPath
     @Metadata(required = true)
-    private URI websocketURI;
+    private String host;
+    @UriPath
+    @Metadata(required = true)
+    private int port;
+    @UriPath
+    @Metadata(required = true)
+    private String path;
     @UriParam(label = "consumer")
     private String allowedOriginPattern;
     @UriParam(label = "consumer")
@@ -61,12 +69,48 @@ public class VertxWebsocketConfiguration {
      */
     public void setWebsocketURI(URI websocketURI) {
         this.websocketURI = websocketURI;
+        this.host = websocketURI.getHost();
+        this.port = websocketURI.getPort();
+        this.path = websocketURI.getPath();
     }
 
     public URI getWebsocketURI() {
         return websocketURI;
     }
 
+    public String getHost() {
+        return host;
+    }
+
+    /**
+     * WebSocket hostname, such as localhost or a remote host when in client 
mode.
+     */
+    public void setHost(String host) {
+        this.host = host;
+    }
+
+    public int getPort() {
+        return port;
+    }
+
+    /**
+     * WebSocket port number to use.
+     */
+    public void setPort(int port) {
+        this.port = port;
+    }
+
+    public String getPath() {
+        return path;
+    }
+
+    /**
+     * WebSocket path to use.
+     */
+    public void setPath(String path) {
+        this.path = path;
+    }
+
     /**
      * Sets customized options for configuring the WebSocket client used in 
the producer
      */
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 1cd40499852..3dc265f4eb1 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
@@ -15289,8 +15289,15 @@ public class StaticEndpointBuilders {
      * 
      * Syntax: <code>vertx-websocket:host:port/path</code>
      * 
-     * Path parameter: websocketURI (required)
-     * The WebSocket URI address to use.
+     * Path parameter: host (required)
+     * WebSocket hostname, such as localhost or a remote host when in client
+     * mode.
+     * 
+     * Path parameter: port (required)
+     * WebSocket port number to use.
+     * 
+     * Path parameter: path (required)
+     * WebSocket path to use.
      * 
      * @param path host:port/path
      * @return the dsl builder
@@ -15310,8 +15317,15 @@ public class StaticEndpointBuilders {
      * 
      * Syntax: <code>vertx-websocket:host:port/path</code>
      * 
-     * Path parameter: websocketURI (required)
-     * The WebSocket URI address to use.
+     * Path parameter: host (required)
+     * WebSocket hostname, such as localhost or a remote host when in client
+     * mode.
+     * 
+     * Path parameter: port (required)
+     * WebSocket port number to use.
+     * 
+     * Path parameter: path (required)
+     * WebSocket path to use.
      * 
      * @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/VertxWebsocketEndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/VertxWebsocketEndpointBuilderFactory.java
index 6763c547a69..991548ab617 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
@@ -700,8 +700,15 @@ public interface VertxWebsocketEndpointBuilderFactory {
          * 
          * Syntax: <code>vertx-websocket:host:port/path</code>
          * 
-         * Path parameter: websocketURI (required)
-         * The WebSocket URI address to use.
+         * Path parameter: host (required)
+         * WebSocket hostname, such as localhost or a remote host when in 
client
+         * mode.
+         * 
+         * Path parameter: port (required)
+         * WebSocket port number to use.
+         * 
+         * Path parameter: path (required)
+         * WebSocket path to use.
          * 
          * @param path host:port/path
          * @return the dsl builder
@@ -720,8 +727,15 @@ public interface VertxWebsocketEndpointBuilderFactory {
          * 
          * Syntax: <code>vertx-websocket:host:port/path</code>
          * 
-         * Path parameter: websocketURI (required)
-         * The WebSocket URI address to use.
+         * Path parameter: host (required)
+         * WebSocket hostname, such as localhost or a remote host when in 
client
+         * mode.
+         * 
+         * Path parameter: port (required)
+         * WebSocket port number to use.
+         * 
+         * Path parameter: path (required)
+         * WebSocket path to use.
          * 
          * @param componentName to use a custom component name for the endpoint
          * instead of the default name

Reply via email to