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

acosentino pushed a commit to branch CAMEL-21207
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 565ce2954509df75f12e43128a5aa29b2c3f58f3
Author: Andrea Cosentino <anco...@gmail.com>
AuthorDate: Thu Sep 12 15:12:24 2024 +0200

    CAMEL-21207 - Camel-Opensearch: Provide a parameter to set HostNameVerifier 
on client
    
    Signed-off-by: Andrea Cosentino <anco...@gmail.com>
---
 .../camel/catalog/components/opensearch.json       |  9 ++++---
 .../opensearch/OpensearchEndpointConfigurer.java   |  6 +++++
 .../opensearch/OpensearchEndpointUriFactory.java   |  3 ++-
 .../camel/component/opensearch/opensearch.json     |  9 ++++---
 .../opensearch/OpensearchConfiguration.java        | 15 +++++++++++
 .../component/opensearch/OpensearchProducer.java   |  3 +++
 .../dsl/OpensearchEndpointBuilderFactory.java      | 31 ++++++++++++++++++++++
 7 files changed, 67 insertions(+), 9 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/opensearch.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/opensearch.json
index 57dceb58c9f..d629c50f885 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/opensearch.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/opensearch.json
@@ -66,9 +66,10 @@
     "lazyStartProducer": { "index": 13, "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 [...]
     "documentClass": { "index": 14, "kind": "parameter", "displayName": 
"Document Class", "group": "advanced", "label": "advanced", "required": false, 
"type": "string", "javaType": "java.lang.Class<java.lang.Object>", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"ObjectNode", "configurationClass": 
"org.apache.camel.component.opensearch.OpensearchConfiguration", 
"configurationField": "configuration", "description": "The class to use when 
deserializing the docu [...]
     "enableSniffer": { "index": 15, "kind": "parameter", "displayName": 
"Enable Sniffer", "group": "advanced", "label": "advanced", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.opensearch.OpensearchConfiguration", 
"configurationField": "configuration", "description": "Enable automatically 
discover nodes from a running OpenSearch cluster. If th [...]
-    "sniffAfterFailureDelay": { "index": 16, "kind": "parameter", 
"displayName": "Sniff After Failure Delay", "group": "advanced", "label": 
"advanced", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
60000, "configurationClass": 
"org.apache.camel.component.opensearch.OpensearchConfiguration", 
"configurationField": "configuration", "description": "The delay of a sniff 
execution scheduled after a failure (in [...]
-    "snifferInterval": { "index": 17, "kind": "parameter", "displayName": 
"Sniffer Interval", "group": "advanced", "label": "advanced", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 300000, "configurationClass": 
"org.apache.camel.component.opensearch.OpensearchConfiguration", 
"configurationField": "configuration", "description": "The interval between 
consecutive ordinary sniff executions in milliseconds. [...]
-    "certificatePath": { "index": 18, "kind": "parameter", "displayName": 
"Certificate Path", "group": "security", "label": "security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"supportFileReference": true, "configurationClass": 
"org.apache.camel.component.opensearch.OpensearchConfiguration", 
"configurationField": "configuration", "description": "The certificate that can 
be used t [...]
-    "enableSSL": { "index": 19, "kind": "parameter", "displayName": "Enable 
SSL", "group": "security", "label": "security", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.opensearch.OpensearchConfiguration", 
"configurationField": "configuration", "description": "Enable SSL" }
+    "hostnameVerifier": { "index": 16, "kind": "parameter", "displayName": 
"Hostname Verifier", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.opensearch.OpensearchConfiguration", 
"configurationField": "configuration", "description": "The class to use as 
HostnameVerifier. By default there is no HostnameVe [...]
+    "sniffAfterFailureDelay": { "index": 17, "kind": "parameter", 
"displayName": "Sniff After Failure Delay", "group": "advanced", "label": 
"advanced", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
60000, "configurationClass": 
"org.apache.camel.component.opensearch.OpensearchConfiguration", 
"configurationField": "configuration", "description": "The delay of a sniff 
execution scheduled after a failure (in [...]
+    "snifferInterval": { "index": 18, "kind": "parameter", "displayName": 
"Sniffer Interval", "group": "advanced", "label": "advanced", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 300000, "configurationClass": 
"org.apache.camel.component.opensearch.OpensearchConfiguration", 
"configurationField": "configuration", "description": "The interval between 
consecutive ordinary sniff executions in milliseconds. [...]
+    "certificatePath": { "index": 19, "kind": "parameter", "displayName": 
"Certificate Path", "group": "security", "label": "security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"supportFileReference": true, "configurationClass": 
"org.apache.camel.component.opensearch.OpensearchConfiguration", 
"configurationField": "configuration", "description": "The certificate that can 
be used t [...]
+    "enableSSL": { "index": 20, "kind": "parameter", "displayName": "Enable 
SSL", "group": "security", "label": "security", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.opensearch.OpensearchConfiguration", 
"configurationField": "configuration", "description": "Enable SSL" }
   }
 }
diff --git 
a/components/camel-opensearch/src/generated/java/org/apache/camel/component/opensearch/OpensearchEndpointConfigurer.java
 
b/components/camel-opensearch/src/generated/java/org/apache/camel/component/opensearch/OpensearchEndpointConfigurer.java
index 4ac6c3d62b2..c867569c5a7 100644
--- 
a/components/camel-opensearch/src/generated/java/org/apache/camel/component/opensearch/OpensearchEndpointConfigurer.java
+++ 
b/components/camel-opensearch/src/generated/java/org/apache/camel/component/opensearch/OpensearchEndpointConfigurer.java
@@ -37,6 +37,8 @@ public class OpensearchEndpointConfigurer extends 
PropertyConfigurerSupport impl
         case "from": target.getConfiguration().setFrom(property(camelContext, 
java.lang.Integer.class, value)); return true;
         case "hostaddresses":
         case "hostAddresses": 
target.getConfiguration().setHostAddresses(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "hostnameverifier":
+        case "hostnameVerifier": 
target.getConfiguration().setHostnameVerifier(property(camelContext, 
javax.net.ssl.HostnameVerifier.class, value)); return true;
         case "indexname":
         case "indexName": 
target.getConfiguration().setIndexName(property(camelContext, 
java.lang.String.class, value)); return true;
         case "lazystartproducer":
@@ -78,6 +80,8 @@ public class OpensearchEndpointConfigurer extends 
PropertyConfigurerSupport impl
         case "from": return java.lang.Integer.class;
         case "hostaddresses":
         case "hostAddresses": return java.lang.String.class;
+        case "hostnameverifier":
+        case "hostnameVerifier": return javax.net.ssl.HostnameVerifier.class;
         case "indexname":
         case "indexName": return java.lang.String.class;
         case "lazystartproducer":
@@ -120,6 +124,8 @@ public class OpensearchEndpointConfigurer extends 
PropertyConfigurerSupport impl
         case "from": return target.getConfiguration().getFrom();
         case "hostaddresses":
         case "hostAddresses": return 
target.getConfiguration().getHostAddresses();
+        case "hostnameverifier":
+        case "hostnameVerifier": return 
target.getConfiguration().getHostnameVerifier();
         case "indexname":
         case "indexName": return target.getConfiguration().getIndexName();
         case "lazystartproducer":
diff --git 
a/components/camel-opensearch/src/generated/java/org/apache/camel/component/opensearch/OpensearchEndpointUriFactory.java
 
b/components/camel-opensearch/src/generated/java/org/apache/camel/component/opensearch/OpensearchEndpointUriFactory.java
index 938efe87de6..69bd323361d 100644
--- 
a/components/camel-opensearch/src/generated/java/org/apache/camel/component/opensearch/OpensearchEndpointUriFactory.java
+++ 
b/components/camel-opensearch/src/generated/java/org/apache/camel/component/opensearch/OpensearchEndpointUriFactory.java
@@ -23,7 +23,7 @@ public class OpensearchEndpointUriFactory extends 
org.apache.camel.support.compo
     private static final Set<String> SECRET_PROPERTY_NAMES;
     private static final Set<String> MULTI_VALUE_PREFIXES;
     static {
-        Set<String> props = new HashSet<>(20);
+        Set<String> props = new HashSet<>(21);
         props.add("certificatePath");
         props.add("clusterName");
         props.add("connectionTimeout");
@@ -33,6 +33,7 @@ public class OpensearchEndpointUriFactory extends 
org.apache.camel.support.compo
         props.add("enableSniffer");
         props.add("from");
         props.add("hostAddresses");
+        props.add("hostnameVerifier");
         props.add("indexName");
         props.add("lazyStartProducer");
         props.add("maxRetryTimeout");
diff --git 
a/components/camel-opensearch/src/generated/resources/META-INF/org/apache/camel/component/opensearch/opensearch.json
 
b/components/camel-opensearch/src/generated/resources/META-INF/org/apache/camel/component/opensearch/opensearch.json
index 57dceb58c9f..d629c50f885 100644
--- 
a/components/camel-opensearch/src/generated/resources/META-INF/org/apache/camel/component/opensearch/opensearch.json
+++ 
b/components/camel-opensearch/src/generated/resources/META-INF/org/apache/camel/component/opensearch/opensearch.json
@@ -66,9 +66,10 @@
     "lazyStartProducer": { "index": 13, "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 [...]
     "documentClass": { "index": 14, "kind": "parameter", "displayName": 
"Document Class", "group": "advanced", "label": "advanced", "required": false, 
"type": "string", "javaType": "java.lang.Class<java.lang.Object>", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"ObjectNode", "configurationClass": 
"org.apache.camel.component.opensearch.OpensearchConfiguration", 
"configurationField": "configuration", "description": "The class to use when 
deserializing the docu [...]
     "enableSniffer": { "index": 15, "kind": "parameter", "displayName": 
"Enable Sniffer", "group": "advanced", "label": "advanced", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.opensearch.OpensearchConfiguration", 
"configurationField": "configuration", "description": "Enable automatically 
discover nodes from a running OpenSearch cluster. If th [...]
-    "sniffAfterFailureDelay": { "index": 16, "kind": "parameter", 
"displayName": "Sniff After Failure Delay", "group": "advanced", "label": 
"advanced", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
60000, "configurationClass": 
"org.apache.camel.component.opensearch.OpensearchConfiguration", 
"configurationField": "configuration", "description": "The delay of a sniff 
execution scheduled after a failure (in [...]
-    "snifferInterval": { "index": 17, "kind": "parameter", "displayName": 
"Sniffer Interval", "group": "advanced", "label": "advanced", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 300000, "configurationClass": 
"org.apache.camel.component.opensearch.OpensearchConfiguration", 
"configurationField": "configuration", "description": "The interval between 
consecutive ordinary sniff executions in milliseconds. [...]
-    "certificatePath": { "index": 18, "kind": "parameter", "displayName": 
"Certificate Path", "group": "security", "label": "security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"supportFileReference": true, "configurationClass": 
"org.apache.camel.component.opensearch.OpensearchConfiguration", 
"configurationField": "configuration", "description": "The certificate that can 
be used t [...]
-    "enableSSL": { "index": 19, "kind": "parameter", "displayName": "Enable 
SSL", "group": "security", "label": "security", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.opensearch.OpensearchConfiguration", 
"configurationField": "configuration", "description": "Enable SSL" }
+    "hostnameVerifier": { "index": 16, "kind": "parameter", "displayName": 
"Hostname Verifier", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.opensearch.OpensearchConfiguration", 
"configurationField": "configuration", "description": "The class to use as 
HostnameVerifier. By default there is no HostnameVe [...]
+    "sniffAfterFailureDelay": { "index": 17, "kind": "parameter", 
"displayName": "Sniff After Failure Delay", "group": "advanced", "label": 
"advanced", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
60000, "configurationClass": 
"org.apache.camel.component.opensearch.OpensearchConfiguration", 
"configurationField": "configuration", "description": "The delay of a sniff 
execution scheduled after a failure (in [...]
+    "snifferInterval": { "index": 18, "kind": "parameter", "displayName": 
"Sniffer Interval", "group": "advanced", "label": "advanced", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 300000, "configurationClass": 
"org.apache.camel.component.opensearch.OpensearchConfiguration", 
"configurationField": "configuration", "description": "The interval between 
consecutive ordinary sniff executions in milliseconds. [...]
+    "certificatePath": { "index": 19, "kind": "parameter", "displayName": 
"Certificate Path", "group": "security", "label": "security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"supportFileReference": true, "configurationClass": 
"org.apache.camel.component.opensearch.OpensearchConfiguration", 
"configurationField": "configuration", "description": "The certificate that can 
be used t [...]
+    "enableSSL": { "index": 20, "kind": "parameter", "displayName": "Enable 
SSL", "group": "security", "label": "security", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.opensearch.OpensearchConfiguration", 
"configurationField": "configuration", "description": "Enable SSL" }
   }
 }
diff --git 
a/components/camel-opensearch/src/main/java/org/apache/camel/component/opensearch/OpensearchConfiguration.java
 
b/components/camel-opensearch/src/main/java/org/apache/camel/component/opensearch/OpensearchConfiguration.java
index c507f7a519b..87dbafc6b7f 100644
--- 
a/components/camel-opensearch/src/main/java/org/apache/camel/component/opensearch/OpensearchConfiguration.java
+++ 
b/components/camel-opensearch/src/main/java/org/apache/camel/component/opensearch/OpensearchConfiguration.java
@@ -18,6 +18,8 @@ package org.apache.camel.component.opensearch;
 
 import java.util.List;
 
+import javax.net.ssl.HostnameVerifier;
+
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
@@ -72,6 +74,8 @@ public class OpensearchConfiguration {
     private int sniffAfterFailureDelay = 
OpensearchConstants.DEFAULT_AFTER_FAILURE_DELAY;
     @UriParam(label = "advanced", defaultValue = "ObjectNode")
     private Class<?> documentClass = ObjectNode.class;
+    @UriParam(label = "advanced")
+    private HostnameVerifier hostnameVerifier;
 
     /**
      * Starting index of the response.
@@ -314,4 +318,15 @@ public class OpensearchConfiguration {
     public void setDocumentClass(Class<?> documentClass) {
         this.documentClass = documentClass;
     }
+
+    public HostnameVerifier getHostnameVerifier() {
+        return hostnameVerifier;
+    }
+
+    /**
+     * The class to use as HostnameVerifier. By default there is no 
HostnameVerifier.
+     */
+    public void setHostnameVerifier(HostnameVerifier hostnameVerifier) {
+        this.hostnameVerifier = hostnameVerifier;
+    }
 }
diff --git 
a/components/camel-opensearch/src/main/java/org/apache/camel/component/opensearch/OpensearchProducer.java
 
b/components/camel-opensearch/src/main/java/org/apache/camel/component/opensearch/OpensearchProducer.java
index 5ee5ebed4c6..0d95488a833 100644
--- 
a/components/camel-opensearch/src/main/java/org/apache/camel/component/opensearch/OpensearchProducer.java
+++ 
b/components/camel-opensearch/src/main/java/org/apache/camel/component/opensearch/OpensearchProducer.java
@@ -479,6 +479,9 @@ class OpensearchProducer extends DefaultAsyncProducer {
                 if (configuration.getCertificatePath() != null) {
                     httpClientBuilder.setSSLContext(createSslContextFromCa());
                 }
+                if (configuration.getHostnameVerifier() != null) {
+                    
httpClientBuilder.setSSLHostnameVerifier(configuration.getHostnameVerifier());
+                }
                 return httpClientBuilder;
             });
         }
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/OpensearchEndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/OpensearchEndpointBuilderFactory.java
index 4ab5c15ef01..5ab606a8b10 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/OpensearchEndpointBuilderFactory.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/OpensearchEndpointBuilderFactory.java
@@ -548,6 +548,37 @@ public interface OpensearchEndpointBuilderFactory {
             doSetProperty("enableSniffer", enableSniffer);
             return this;
         }
+        /**
+         * The class to use as HostnameVerifier. By default there is no
+         * HostnameVerifier.
+         * 
+         * The option is a: <code>javax.net.ssl.HostnameVerifier</code> type.
+         * 
+         * Group: advanced
+         * 
+         * @param hostnameVerifier the value to set
+         * @return the dsl builder
+         */
+        default AdvancedOpensearchEndpointBuilder 
hostnameVerifier(javax.net.ssl.HostnameVerifier hostnameVerifier) {
+            doSetProperty("hostnameVerifier", hostnameVerifier);
+            return this;
+        }
+        /**
+         * The class to use as HostnameVerifier. By default there is no
+         * HostnameVerifier.
+         * 
+         * The option will be converted to a
+         * <code>javax.net.ssl.HostnameVerifier</code> type.
+         * 
+         * Group: advanced
+         * 
+         * @param hostnameVerifier the value to set
+         * @return the dsl builder
+         */
+        default AdvancedOpensearchEndpointBuilder hostnameVerifier(String 
hostnameVerifier) {
+            doSetProperty("hostnameVerifier", hostnameVerifier);
+            return this;
+        }
         /**
          * The delay of a sniff execution scheduled after a failure (in
          * milliseconds).

Reply via email to