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

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


The following commit(s) were added to refs/heads/master by this push:
     new 600c6b2  CAMEL-16471 - Enable URL endpoint based Client Initialization 
(#5319)
600c6b2 is described below

commit 600c6b2cb3b1f79abea955d45efa77dc6957d504
Author: hokutor <81697586+hoku...@users.noreply.github.com>
AuthorDate: Sat Apr 10 01:59:17 2021 -0400

    CAMEL-16471 - Enable URL endpoint based Client Initialization (#5319)
    
    CAMEL-16471 - Enable URL endpoint based Client Initialization
---
 .../camel/catalog/docs/hwcloud-smn-component.adoc  |   5 +-
 .../smn/SimpleNotificationEndpointConfigurer.java  |   3 +
 .../smn/SimpleNotificationEndpointUriFactory.java  |   3 +-
 .../component/huaweicloud/smn/hwcloud-smn.json     |   3 +-
 .../src/main/docs/hwcloud-smn-component.adoc       |   5 +-
 .../smn/SimpleNotificationEndpoint.java            |  16 +++-
 .../smn/SimpleNotificationProducer.java            |  22 +++--
 ...tedMessageWithCustomEndpointFunctionalTest.java | 104 +++++++++++++++++++++
 ...lishTemplatedMessageWithCustomEndpointTest.java |  88 +++++++++++++++++
 ...extMessageWithCustomEndpointFunctionalTest.java |  92 ++++++++++++++++++
 .../PublishTextMessageWithCustomEndpointTest.java  |  80 ++++++++++++++++
 .../test/resources/testconfiguration.properties    |   3 +-
 .../builder/endpoint/EndpointBuilderFactory.java   |  54 +++++------
 .../camel/builder/endpoint/EndpointBuilders.java   |  54 +++++------
 .../SimpleNotificationEndpointBuilderFactory.java  |  18 +++-
 .../modules/ROOT/pages/hwcloud-smn-component.adoc  |   7 +-
 .../ROOT/pages/camel-3x-upgrade-guide-3_10.adoc    |   8 ++
 17 files changed, 491 insertions(+), 74 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/hwcloud-smn-component.adoc
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/hwcloud-smn-component.adoc
index 7697842..bd2a47b 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/hwcloud-smn-component.adoc
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/hwcloud-smn-component.adoc
@@ -71,13 +71,14 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (13 parameters):
+=== Query Parameters (14 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
 | *authKey* (producer) | *Required* Authentication key for the cloud user |  | 
String
+| *endpoint* (producer) | Fully qualified smn service url. Carries higher 
precedence than region parameter based client initialization |  | String
 | *ignoreSslVerification* (producer) | Ignore SSL verification | false | 
boolean
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy 
(on the first message). By starting lazy you can use this to allow CamelContext 
and routes to startup in situations where a producer may otherwise fail during 
starting and cause the route to fail being started. By deferring this startup 
to be lazy then the startup failure can be handled during routing messages via 
Camel's routing error handlers. Beware that when the first message is processed 
then creating and [...]
 | *messageTtl* (producer) | TTL for published message | 3600 | int
@@ -87,7 +88,7 @@ with the following path and query parameters:
 | *proxyPassword* (producer) | Proxy authentication password |  | String
 | *proxyPort* (producer) | Proxy server port |  | int
 | *proxyUser* (producer) | Proxy authentication user |  | String
-| *region* (producer) | *Required* SMN service region |  | String
+| *region* (producer) | *Required* SMN service region. This is lower 
precedence than endpoint based configuration |  | String
 | *secretKey* (producer) | *Required* Secret key for the cloud user |  | String
 | *serviceKeys* (producer) | Configuration object for cloud service 
authentication |  | ServiceKeys
 |===
diff --git 
a/components/camel-huaweicloud-smn/src/generated/java/org/apache/camel/component/huaweicloud/smn/SimpleNotificationEndpointConfigurer.java
 
b/components/camel-huaweicloud-smn/src/generated/java/org/apache/camel/component/huaweicloud/smn/SimpleNotificationEndpointConfigurer.java
index 82c8a7f..97692de 100644
--- 
a/components/camel-huaweicloud-smn/src/generated/java/org/apache/camel/component/huaweicloud/smn/SimpleNotificationEndpointConfigurer.java
+++ 
b/components/camel-huaweicloud-smn/src/generated/java/org/apache/camel/component/huaweicloud/smn/SimpleNotificationEndpointConfigurer.java
@@ -23,6 +23,7 @@ public class SimpleNotificationEndpointConfigurer extends 
PropertyConfigurerSupp
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "authkey":
         case "authKey": target.setAuthKey(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "endpoint": target.setEndpoint(property(camelContext, 
java.lang.String.class, value)); return true;
         case "ignoresslverification":
         case "ignoreSslVerification": 
target.setIgnoreSslVerification(property(camelContext, boolean.class, value)); 
return true;
         case "lazystartproducer":
@@ -54,6 +55,7 @@ public class SimpleNotificationEndpointConfigurer extends 
PropertyConfigurerSupp
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "authkey":
         case "authKey": return java.lang.String.class;
+        case "endpoint": return java.lang.String.class;
         case "ignoresslverification":
         case "ignoreSslVerification": return boolean.class;
         case "lazystartproducer":
@@ -86,6 +88,7 @@ public class SimpleNotificationEndpointConfigurer extends 
PropertyConfigurerSupp
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "authkey":
         case "authKey": return target.getAuthKey();
+        case "endpoint": return target.getEndpoint();
         case "ignoresslverification":
         case "ignoreSslVerification": return target.isIgnoreSslVerification();
         case "lazystartproducer":
diff --git 
a/components/camel-huaweicloud-smn/src/generated/java/org/apache/camel/component/huaweicloud/smn/SimpleNotificationEndpointUriFactory.java
 
b/components/camel-huaweicloud-smn/src/generated/java/org/apache/camel/component/huaweicloud/smn/SimpleNotificationEndpointUriFactory.java
index 3e6ed20..fc0408f 100644
--- 
a/components/camel-huaweicloud-smn/src/generated/java/org/apache/camel/component/huaweicloud/smn/SimpleNotificationEndpointUriFactory.java
+++ 
b/components/camel-huaweicloud-smn/src/generated/java/org/apache/camel/component/huaweicloud/smn/SimpleNotificationEndpointUriFactory.java
@@ -20,7 +20,7 @@ public class SimpleNotificationEndpointUriFactory extends 
org.apache.camel.suppo
     private static final Set<String> PROPERTY_NAMES;
     private static final Set<String> SECRET_PROPERTY_NAMES;
     static {
-        Set<String> props = new HashSet<>(14);
+        Set<String> props = new HashSet<>(15);
         props.add("authKey");
         props.add("serviceKeys");
         props.add("secretKey");
@@ -28,6 +28,7 @@ public class SimpleNotificationEndpointUriFactory extends 
org.apache.camel.suppo
         props.add("ignoreSslVerification");
         props.add("proxyHost");
         props.add("proxyPort");
+        props.add("endpoint");
         props.add("lazyStartProducer");
         props.add("proxyUser");
         props.add("messageTtl");
diff --git 
a/components/camel-huaweicloud-smn/src/generated/resources/org/apache/camel/component/huaweicloud/smn/hwcloud-smn.json
 
b/components/camel-huaweicloud-smn/src/generated/resources/org/apache/camel/component/huaweicloud/smn/hwcloud-smn.json
index c4ba509..085aff6 100644
--- 
a/components/camel-huaweicloud-smn/src/generated/resources/org/apache/camel/component/huaweicloud/smn/hwcloud-smn.json
+++ 
b/components/camel-huaweicloud-smn/src/generated/resources/org/apache/camel/component/huaweicloud/smn/hwcloud-smn.json
@@ -28,6 +28,7 @@
   "properties": {
     "smnService": { "kind": "path", "displayName": "Service name", "group": 
"producer", "label": "producer", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Name of SMN service to 
invoke" },
     "authKey": { "kind": "parameter", "displayName": "API authentication key 
(AK)", "group": "producer", "label": "", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": true, "description": "Authentication key for the 
cloud user" },
+    "endpoint": { "kind": "parameter", "displayName": "Service endpoint", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Fully qualified smn 
service url. Carries higher precedence than region parameter based client 
initialization" },
     "ignoreSslVerification": { "kind": "parameter", "displayName": "SSL 
Verification Ignored", "group": "producer", "label": "", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue": 
false, "description": "Ignore SSL verification" },
     "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start 
Producer", "group": "producer", "label": "producer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "description": "Whether the producer 
should be started lazy (on the first message). By starting lazy you can use 
this to allow CamelContext and routes to startup in situations where a producer 
may otherwise fail during sta [...]
     "messageTtl": { "kind": "parameter", "displayName": "Message TTL", 
"group": "producer", "label": "", "required": false, "type": "integer", 
"javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "defaultValue": 3600, "description": "TTL for published 
message" },
@@ -37,7 +38,7 @@
     "proxyPassword": { "kind": "parameter", "displayName": "Proxy password", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": true, "description": "Proxy authentication 
password" },
     "proxyPort": { "kind": "parameter", "displayName": "Proxy server port", 
"group": "producer", "label": "", "required": false, "type": "integer", 
"javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Proxy server port" },
     "proxyUser": { "kind": "parameter", "displayName": "Proxy user", "group": 
"producer", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": true, "description": "Proxy authentication user" },
-    "region": { "kind": "parameter", "displayName": "Service region", "group": 
"producer", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "SMN service region" },
+    "region": { "kind": "parameter", "displayName": "Service region", "group": 
"producer", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "SMN service region. This is lower 
precedence than endpoint based configuration" },
     "secretKey": { "kind": "parameter", "displayName": "API secret key (SK)", 
"group": "producer", "label": "", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": true, "description": "Secret key for the cloud 
user" },
     "serviceKeys": { "kind": "parameter", "displayName": "Service 
Configuration", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": 
"org.apache.camel.component.huaweicloud.smn.models.ServiceKeys", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": true, 
"description": "Configuration object for cloud service authentication" }
   }
diff --git 
a/components/camel-huaweicloud-smn/src/main/docs/hwcloud-smn-component.adoc 
b/components/camel-huaweicloud-smn/src/main/docs/hwcloud-smn-component.adoc
index 7697842..bd2a47b 100644
--- a/components/camel-huaweicloud-smn/src/main/docs/hwcloud-smn-component.adoc
+++ b/components/camel-huaweicloud-smn/src/main/docs/hwcloud-smn-component.adoc
@@ -71,13 +71,14 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (13 parameters):
+=== Query Parameters (14 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
 | *authKey* (producer) | *Required* Authentication key for the cloud user |  | 
String
+| *endpoint* (producer) | Fully qualified smn service url. Carries higher 
precedence than region parameter based client initialization |  | String
 | *ignoreSslVerification* (producer) | Ignore SSL verification | false | 
boolean
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy 
(on the first message). By starting lazy you can use this to allow CamelContext 
and routes to startup in situations where a producer may otherwise fail during 
starting and cause the route to fail being started. By deferring this startup 
to be lazy then the startup failure can be handled during routing messages via 
Camel's routing error handlers. Beware that when the first message is processed 
then creating and [...]
 | *messageTtl* (producer) | TTL for published message | 3600 | int
@@ -87,7 +88,7 @@ with the following path and query parameters:
 | *proxyPassword* (producer) | Proxy authentication password |  | String
 | *proxyPort* (producer) | Proxy server port |  | int
 | *proxyUser* (producer) | Proxy authentication user |  | String
-| *region* (producer) | *Required* SMN service region |  | String
+| *region* (producer) | *Required* SMN service region. This is lower 
precedence than endpoint based configuration |  | String
 | *secretKey* (producer) | *Required* Secret key for the cloud user |  | String
 | *serviceKeys* (producer) | Configuration object for cloud service 
authentication |  | ServiceKeys
 |===
diff --git 
a/components/camel-huaweicloud-smn/src/main/java/org/apache/camel/component/huaweicloud/smn/SimpleNotificationEndpoint.java
 
b/components/camel-huaweicloud-smn/src/main/java/org/apache/camel/component/huaweicloud/smn/SimpleNotificationEndpoint.java
index 91a14c3..029006c 100644
--- 
a/components/camel-huaweicloud-smn/src/main/java/org/apache/camel/component/huaweicloud/smn/SimpleNotificationEndpoint.java
+++ 
b/components/camel-huaweicloud-smn/src/main/java/org/apache/camel/component/huaweicloud/smn/SimpleNotificationEndpoint.java
@@ -79,10 +79,16 @@ public class SimpleNotificationEndpoint extends 
DefaultEndpoint {
     @Metadata(required = false)
     private String proxyPassword;
 
-    @UriParam(description = "SMN service region", displayName = "Service 
region", secret = false)
+    @UriParam(description = "SMN service region. This is lower precedence than 
endpoint based configuration",
+              displayName = "Service region", secret = false)
     @Metadata(required = true)
     private String region;
 
+    @UriParam(description = "Fully qualified smn service url. Carries higher 
precedence than region parameter based client initialization",
+              displayName = "Service endpoint", secret = false)
+    @Metadata(required = false)
+    private String endpoint;
+
     @UriParam(description = "TTL for published message", displayName = 
"Message TTL", secret = false, defaultValue = "3600")
     @Metadata(required = false)
     private int messageTtl = 3600;
@@ -208,6 +214,14 @@ public class SimpleNotificationEndpoint extends 
DefaultEndpoint {
         this.region = region;
     }
 
+    public String getEndpoint() {
+        return endpoint;
+    }
+
+    public void setEndpoint(String endpoint) {
+        this.endpoint = endpoint;
+    }
+
     public int getMessageTtl() {
         return messageTtl;
     }
diff --git 
a/components/camel-huaweicloud-smn/src/main/java/org/apache/camel/component/huaweicloud/smn/SimpleNotificationProducer.java
 
b/components/camel-huaweicloud-smn/src/main/java/org/apache/camel/component/huaweicloud/smn/SimpleNotificationProducer.java
index 9251ea1..ffb2f82 100644
--- 
a/components/camel-huaweicloud-smn/src/main/java/org/apache/camel/component/huaweicloud/smn/SimpleNotificationProducer.java
+++ 
b/components/camel-huaweicloud-smn/src/main/java/org/apache/camel/component/huaweicloud/smn/SimpleNotificationProducer.java
@@ -32,6 +32,7 @@ import 
org.apache.camel.component.huaweicloud.smn.constants.SmnServices;
 import org.apache.camel.component.huaweicloud.smn.models.ClientConfigurations;
 import org.apache.camel.support.DefaultProducer;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -204,15 +205,20 @@ public class SimpleNotificationProducer extends 
DefaultProducer {
             
clientConfigurations.setProjectId(simpleNotificationEndpoint.getProjectId());
         }
 
-        //checking for region
-        String endpointUrl = 
SimpleNotificationUtils.resolveSmnServiceEndpoint(simpleNotificationEndpoint.getRegion());
-        if (endpointUrl == null) {
-            if (LOG.isErrorEnabled()) {
-                LOG.error("Valid region not found");
-            }
-            throw new IllegalArgumentException("enter a valid region");
+        //checking for endpoint
+        if (StringUtils.isNotEmpty(simpleNotificationEndpoint.getEndpoint())) {
+            
clientConfigurations.setServiceEndpoint(simpleNotificationEndpoint.getEndpoint());
         } else {
-            clientConfigurations.setServiceEndpoint(endpointUrl);
+            //checking for region
+            String endpointUrl = 
SimpleNotificationUtils.resolveSmnServiceEndpoint(simpleNotificationEndpoint.getRegion());
+            if (endpointUrl == null) {
+                if (LOG.isErrorEnabled()) {
+                    LOG.error("Valid region not found");
+                }
+                throw new IllegalArgumentException("enter a valid region");
+            } else {
+                clientConfigurations.setServiceEndpoint(endpointUrl);
+            }
         }
 
         //checking for ignore ssl verification
diff --git 
a/components/camel-huaweicloud-smn/src/test/java/org/apache/camel/component/huaweicloud/smn/PublishTemplatedMessageWithCustomEndpointFunctionalTest.java
 
b/components/camel-huaweicloud-smn/src/test/java/org/apache/camel/component/huaweicloud/smn/PublishTemplatedMessageWithCustomEndpointFunctionalTest.java
new file mode 100644
index 0000000..81fae7e
--- /dev/null
+++ 
b/components/camel-huaweicloud-smn/src/test/java/org/apache/camel/component/huaweicloud/smn/PublishTemplatedMessageWithCustomEndpointFunctionalTest.java
@@ -0,0 +1,104 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.huaweicloud.smn;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.camel.BindToRegistry;
+import org.apache.camel.Exchange;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.huaweicloud.smn.constants.SmnProperties;
+import org.apache.camel.component.huaweicloud.smn.models.ServiceKeys;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+public class PublishTemplatedMessageWithCustomEndpointFunctionalTest extends 
CamelTestSupport {
+    private static final Logger LOGGER = 
LoggerFactory.getLogger(PublishTemplatedMessageTest.class.getName());
+
+    private static final String AUTH_KEY = "replace_this_with_auth_key";
+    private static final String SECRET_KEY = "replace_this_with_secret_key";
+    private static final String TEMPLATE_NAME = 
"replace_this_with_template_name";
+    private static final String NOTIFICATION_SUBJECT = "sample notification 
subjectline";
+    private static final String TOPIC_NAME = "replace_this_with_topic_name";
+    private static final String PROJECT_ID = "replace_this_with_project_id";
+    private static final String REGION = "replace_this_with_region";
+    private static final String ENDPOINT = "replace_this_with_endpoint";
+
+    @BindToRegistry("serviceKeys")
+    ServiceKeys serviceKeys
+            = new ServiceKeys(AUTH_KEY, SECRET_KEY);
+
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        // populating tag values. user has to adjust the map entries according 
to the structure of their respective templates
+        Map<String, String> tags = new HashMap<>();
+
+        // create a map of your placeholder variables
+        /*Example :
+        tags.put("name", "reji");
+        tags.put("phone", "1234567890");
+        */
+        return new RouteBuilder() {
+            public void configure() {
+                from("direct:publish_templated_message")
+                        .setProperty(SmnProperties.NOTIFICATION_SUBJECT, 
constant(NOTIFICATION_SUBJECT))
+                        .setProperty(SmnProperties.NOTIFICATION_TOPIC_NAME, 
constant(TOPIC_NAME))
+                        .setProperty(SmnProperties.NOTIFICATION_TTL, 
constant(60))
+                        .setProperty(SmnProperties.TEMPLATE_TAGS, 
constant(tags))
+                        .setProperty(SmnProperties.TEMPLATE_NAME, 
constant(TEMPLATE_NAME))
+                        
.to("hwcloud-smn:publishMessageService?serviceKeys=#serviceKeys&operation=publishAsTemplatedMessage"
+                            + "&projectId=" + PROJECT_ID
+                            + "&region=" + REGION
+                            + "&endpoint=" + ENDPOINT
+                            + "&ignoreSslVerification=true")
+                        .log("templated notification sent")
+                        .to("mock:publish_templated_message_result");
+            }
+        };
+    }
+
+    /**
+     * following test cases should be manually enabled to perform test against 
the actual huaweicloud simple
+     * notification server with real user credentials. To perform this test, 
manually comment out the @Disabled
+     * annotation and enter relevant service parameters in the placeholders 
above (static variables of this test class)
+     *
+     * @throws Exception
+     */
+    @Test
+    @Disabled("Manually enable this once you configure service parameters in 
placeholders above")
+    public void testTemplatedNotificationSend() throws Exception {
+        MockEndpoint mock = 
getMockEndpoint("mock:publish_templated_message_result");
+        mock.expectedMinimumMessageCount(1);
+        template.sendBody("direct:publish_templated_message", null);
+        Exchange responseExchange = mock.getExchanges().get(0);
+
+        mock.assertIsSatisfied();
+
+        
assertNotNull(responseExchange.getProperty(SmnProperties.SERVICE_MESSAGE_ID));
+        
assertNotNull(responseExchange.getProperty(SmnProperties.SERVICE_REQUEST_ID));
+        
assertTrue(responseExchange.getProperty(SmnProperties.SERVICE_MESSAGE_ID).toString().length()
 > 0);
+        
assertTrue(responseExchange.getProperty(SmnProperties.SERVICE_REQUEST_ID).toString().length()
 > 0);
+    }
+
+}
diff --git 
a/components/camel-huaweicloud-smn/src/test/java/org/apache/camel/component/huaweicloud/smn/PublishTemplatedMessageWithCustomEndpointTest.java
 
b/components/camel-huaweicloud-smn/src/test/java/org/apache/camel/component/huaweicloud/smn/PublishTemplatedMessageWithCustomEndpointTest.java
new file mode 100644
index 0000000..2225493
--- /dev/null
+++ 
b/components/camel-huaweicloud-smn/src/test/java/org/apache/camel/component/huaweicloud/smn/PublishTemplatedMessageWithCustomEndpointTest.java
@@ -0,0 +1,88 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.huaweicloud.smn;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.camel.BindToRegistry;
+import org.apache.camel.Exchange;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.huaweicloud.smn.constants.SmnProperties;
+import org.apache.camel.component.huaweicloud.smn.models.ServiceKeys;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+public class PublishTemplatedMessageWithCustomEndpointTest extends 
CamelTestSupport {
+    private static final Logger LOGGER = 
LoggerFactory.getLogger(PublishTemplatedMessageWithCustomEndpointTest.class.getName());
+
+    TestConfiguration testConfiguration = new TestConfiguration();
+
+    @BindToRegistry("serviceKeys")
+    ServiceKeys serviceKeys
+            = new ServiceKeys(testConfiguration.getProperty("authKey"), 
testConfiguration.getProperty("secretKey"));
+
+    @BindToRegistry("smnClient")
+    SmnClientMock smnClientMock = new SmnClientMock(null); // creating mock 
smn client to stub method behavior for unit testing
+
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        // populating tag values. user has to adjust the map entries according 
to the structure of their respective templates
+        Map<String, String> tags = new HashMap<>();
+        tags.put("name", "reji");
+        tags.put("phone", "1234567890");
+
+        return new RouteBuilder() {
+            public void configure() {
+                from("direct:publish_templated_message")
+                        .setProperty(SmnProperties.NOTIFICATION_SUBJECT, 
constant("This is my subjectline"))
+                        .setProperty(SmnProperties.NOTIFICATION_TOPIC_NAME, 
constant(testConfiguration.getProperty("topic")))
+                        .setProperty(SmnProperties.NOTIFICATION_TTL, 
constant(60))
+                        .setProperty(SmnProperties.TEMPLATE_TAGS, 
constant(tags))
+                        .setProperty(SmnProperties.TEMPLATE_NAME, 
constant("hello-template"))
+                        
.to("hwcloud-smn:publishMessageService?serviceKeys=#serviceKeys&operation=publishAsTemplatedMessage"
+                            + "&projectId=" + 
testConfiguration.getProperty("projectId") + "&region="
+                            + testConfiguration.getProperty("region") + 
"&ignoreSslVerification=true"
+                            + "&endpoint=" + 
testConfiguration.getProperty("endpoint")
+                            + "&smnClient=#smnClient")
+                        .log("templated notification sent")
+                        .to("mock:publish_templated_message_result");
+            }
+        };
+    }
+
+    @Test
+    public void testTemplatedNotificationSend() throws Exception {
+        MockEndpoint mock = 
getMockEndpoint("mock:publish_templated_message_result");
+        mock.expectedMinimumMessageCount(1);
+        template.sendBody("direct:publish_templated_message", null);
+        Exchange responseExchange = mock.getExchanges().get(0);
+
+        mock.assertIsSatisfied();
+
+        
assertNotNull(responseExchange.getProperty(SmnProperties.SERVICE_MESSAGE_ID));
+        
assertNotNull(responseExchange.getProperty(SmnProperties.SERVICE_REQUEST_ID));
+        
assertTrue(responseExchange.getProperty(SmnProperties.SERVICE_MESSAGE_ID).toString().length()
 > 0);
+        
assertTrue(responseExchange.getProperty(SmnProperties.SERVICE_REQUEST_ID).toString().length()
 > 0);
+    }
+
+}
diff --git 
a/components/camel-huaweicloud-smn/src/test/java/org/apache/camel/component/huaweicloud/smn/PublishTextMessageWithCustomEndpointFunctionalTest.java
 
b/components/camel-huaweicloud-smn/src/test/java/org/apache/camel/component/huaweicloud/smn/PublishTextMessageWithCustomEndpointFunctionalTest.java
new file mode 100644
index 0000000..5e03b23
--- /dev/null
+++ 
b/components/camel-huaweicloud-smn/src/test/java/org/apache/camel/component/huaweicloud/smn/PublishTextMessageWithCustomEndpointFunctionalTest.java
@@ -0,0 +1,92 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.huaweicloud.smn;
+
+import org.apache.camel.BindToRegistry;
+import org.apache.camel.Exchange;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.huaweicloud.smn.constants.SmnProperties;
+import org.apache.camel.component.huaweicloud.smn.models.ServiceKeys;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+public class PublishTextMessageWithCustomEndpointFunctionalTest extends 
CamelTestSupport {
+    private static final Logger LOGGER = 
LoggerFactory.getLogger(PublishTemplatedMessageTest.class.getName());
+
+    private static final String AUTH_KEY = "replace_this_with_auth_key";
+    private static final String SECRET_KEY = "replace_this_with_secret_key";
+    private static final String NOTIFICATION_SUBJECT = "sample notification 
subjectline";
+    private static final String TOPIC_NAME = "replace_this_with_topic_name";
+    private static final String PROJECT_ID = "replace_this_with_project_id";
+    private static final String REGION = "replace_this_with_region";
+    private static final String ENDPOINT = "replace_this_with_endpoint";
+
+    @BindToRegistry("serviceKeys")
+    ServiceKeys serviceKeys
+            = new ServiceKeys(AUTH_KEY, SECRET_KEY);
+
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            public void configure() {
+                from("direct:publish_text_message")
+                        .setProperty(SmnProperties.NOTIFICATION_SUBJECT, 
constant(NOTIFICATION_SUBJECT))
+                        .setProperty(SmnProperties.NOTIFICATION_TOPIC_NAME, 
constant(TOPIC_NAME))
+                        .setProperty(SmnProperties.NOTIFICATION_TTL, 
constant(60))
+                        
.to("hwcloud-smn:publishMessageService?operation=publishAsTextMessage&authKey=" 
+ AUTH_KEY
+                            + "&secretKey=" + SECRET_KEY
+                            + "&projectId=" + PROJECT_ID
+                            + "&region=" + REGION
+                            + "&endpoint=" + ENDPOINT
+                            + "&ignoreSslVerification=true")
+                        .log("publish message successful")
+                        .to("log:LOG?showAll=true")
+                        .to("mock:publish_text_message_result");
+            }
+        };
+    }
+
+    /**
+     * following test cases should be manually enabled to perform test against 
the actual huaweicloud simple
+     * notification server with real user credentials. To perform this test, 
manually comment out the @Disabled
+     * annotation and enter relevant service parameters in the placeholders 
above (static variables of this test class)
+     *
+     * @throws Exception
+     */
+    @Test
+    @Disabled("Manually enable this once you configure service parameters in 
placeholders above")
+    public void testTemplatedNotificationSend() throws Exception {
+        MockEndpoint mock = 
getMockEndpoint("mock:publish_text_message_result");
+        mock.expectedMinimumMessageCount(1);
+        template.sendBody("direct:publish_text_message", "sample notification 
body");
+        Exchange responseExchange = mock.getExchanges().get(0);
+
+        mock.assertIsSatisfied();
+
+        
assertNotNull(responseExchange.getProperty(SmnProperties.SERVICE_MESSAGE_ID));
+        
assertNotNull(responseExchange.getProperty(SmnProperties.SERVICE_REQUEST_ID));
+        
assertTrue(responseExchange.getProperty(SmnProperties.SERVICE_MESSAGE_ID).toString().length()
 > 0);
+        
assertTrue(responseExchange.getProperty(SmnProperties.SERVICE_REQUEST_ID).toString().length()
 > 0);
+    }
+
+}
diff --git 
a/components/camel-huaweicloud-smn/src/test/java/org/apache/camel/component/huaweicloud/smn/PublishTextMessageWithCustomEndpointTest.java
 
b/components/camel-huaweicloud-smn/src/test/java/org/apache/camel/component/huaweicloud/smn/PublishTextMessageWithCustomEndpointTest.java
new file mode 100644
index 0000000..3ea2d67
--- /dev/null
+++ 
b/components/camel-huaweicloud-smn/src/test/java/org/apache/camel/component/huaweicloud/smn/PublishTextMessageWithCustomEndpointTest.java
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.huaweicloud.smn;
+
+import org.apache.camel.BindToRegistry;
+import org.apache.camel.Exchange;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.huaweicloud.smn.constants.SmnProperties;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+public class PublishTextMessageWithCustomEndpointTest extends CamelTestSupport 
{
+    private static final Logger LOGGER = 
LoggerFactory.getLogger(PublishTextMessageWithCustomEndpointTest.class.getName());
+
+    TestConfiguration testConfiguration = new TestConfiguration();
+
+    @BindToRegistry("smnClient")
+    SmnClientMock smnClientMock = new SmnClientMock(null); // creating mock 
smn client to stub method behavior for unit testing
+
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            public void configure() {
+                from("direct:publish_text_message")
+                        .setProperty(SmnProperties.NOTIFICATION_SUBJECT, 
constant("Dummy Subject Line"))
+                        .setProperty(SmnProperties.NOTIFICATION_TOPIC_NAME, 
constant(testConfiguration.getProperty("topic")))
+                        .setProperty(SmnProperties.NOTIFICATION_TTL, 
constant(60))
+                        
.to("hwcloud-smn:publishMessageService?operation=publishAsTextMessage&authKey="
+                            + testConfiguration.getProperty("authKey") + 
"&secretKey="
+                            + testConfiguration.getProperty("secretKey") + 
"&projectId="
+                            + testConfiguration.getProperty("projectId") + 
"&region=" + testConfiguration.getProperty("region")
+                            + "&endpoint=" + 
testConfiguration.getProperty("endpoint")
+                            + "&ignoreSslVerification=true"
+                            + "&smnClient=#smnClient")
+                        .log("publish message successful")
+                        .to("mock:publish_text_message_result");
+            }
+        };
+    }
+
+    @Test
+    public void testTextNotificationSend() throws Exception {
+
+        MockEndpoint mock = 
getMockEndpoint("mock:publish_text_message_result");
+        mock.expectedMinimumMessageCount(1);
+        template.sendBody("direct:publish_text_message", "message content");
+        Exchange responseExchange = mock.getExchanges().get(0);
+
+        mock.assertIsSatisfied();
+
+        
assertNotNull(responseExchange.getProperty(SmnProperties.SERVICE_MESSAGE_ID));
+        
assertNotNull(responseExchange.getProperty(SmnProperties.SERVICE_REQUEST_ID));
+        
assertTrue(responseExchange.getProperty(SmnProperties.SERVICE_MESSAGE_ID).toString().length()
 > 0);
+        
assertTrue(responseExchange.getProperty(SmnProperties.SERVICE_REQUEST_ID).toString().length()
 > 0);
+
+        assertEquals("bf94b63a5dfb475994d3ac34664e24f2", 
responseExchange.getProperty(SmnProperties.SERVICE_MESSAGE_ID));
+        assertEquals("6a63a18b8bab40ffb71ebd9cb80d0085", 
responseExchange.getProperty(SmnProperties.SERVICE_REQUEST_ID));
+    }
+
+}
diff --git 
a/components/camel-huaweicloud-smn/src/test/resources/testconfiguration.properties
 
b/components/camel-huaweicloud-smn/src/test/resources/testconfiguration.properties
index 9b31cf1..fece1fe 100644
--- 
a/components/camel-huaweicloud-smn/src/test/resources/testconfiguration.properties
+++ 
b/components/camel-huaweicloud-smn/src/test/resources/testconfiguration.properties
@@ -20,4 +20,5 @@ authKey=dummy_auth_key
 secretKey=dummy_secret_key
 projectId=9071a38e7f6a4ba7b7bcbeb7d4ea6efc
 region = unit-test
-topic = reji-test
\ No newline at end of file
+topic = reji-test
+endpoint= unit-test-endpoint
\ No newline at end of file
diff --git 
a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
 
b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
index 142dacf..0a61948 100644
--- 
a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
+++ 
b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
@@ -28,14 +28,12 @@ import javax.annotation.Generated;
 @Generated("org.apache.camel.maven.packaging.EndpointDslMojo")
 public interface EndpointBuilderFactory
         extends
-            
org.apache.camel.builder.endpoint.dsl.AMQPEndpointBuilderFactory.AMQPBuilders,
-            
org.apache.camel.builder.endpoint.dsl.AS2EndpointBuilderFactory.AS2Builders,
-            
org.apache.camel.builder.endpoint.dsl.AWS2EC2EndpointBuilderFactory.AWS2EC2Builders,
-            
org.apache.camel.builder.endpoint.dsl.AWS2S3EndpointBuilderFactory.AWS2S3Builders,
             
org.apache.camel.builder.endpoint.dsl.ActiveMQEndpointBuilderFactory.ActiveMQBuilders,
             
org.apache.camel.builder.endpoint.dsl.AhcEndpointBuilderFactory.AhcBuilders,
+            
org.apache.camel.builder.endpoint.dsl.AMQPEndpointBuilderFactory.AMQPBuilders,
             
org.apache.camel.builder.endpoint.dsl.ApnsEndpointBuilderFactory.ApnsBuilders,
             
org.apache.camel.builder.endpoint.dsl.ArangoDbEndpointBuilderFactory.ArangoDbBuilders,
+            
org.apache.camel.builder.endpoint.dsl.AS2EndpointBuilderFactory.AS2Builders,
             
org.apache.camel.builder.endpoint.dsl.AsteriskEndpointBuilderFactory.AsteriskBuilders,
             
org.apache.camel.builder.endpoint.dsl.Athena2EndpointBuilderFactory.Athena2Builders,
             
org.apache.camel.builder.endpoint.dsl.AtlasMapEndpointBuilderFactory.AtlasMapBuilders,
@@ -49,16 +47,16 @@ public interface EndpointBuilderFactory
             
org.apache.camel.builder.endpoint.dsl.AtomixSetEndpointBuilderFactory.AtomixSetBuilders,
             
org.apache.camel.builder.endpoint.dsl.AtomixValueEndpointBuilderFactory.AtomixValueBuilders,
             
org.apache.camel.builder.endpoint.dsl.AvroEndpointBuilderFactory.AvroBuilders,
+            
org.apache.camel.builder.endpoint.dsl.AWS2EC2EndpointBuilderFactory.AWS2EC2Builders,
+            
org.apache.camel.builder.endpoint.dsl.AWS2S3EndpointBuilderFactory.AWS2S3Builders,
             
org.apache.camel.builder.endpoint.dsl.BeanEndpointBuilderFactory.BeanBuilders,
-            
org.apache.camel.builder.endpoint.dsl.BeanValidatorEndpointBuilderFactory.BeanValidatorBuilders,
             
org.apache.camel.builder.endpoint.dsl.BeanstalkEndpointBuilderFactory.BeanstalkBuilders,
+            
org.apache.camel.builder.endpoint.dsl.BeanValidatorEndpointBuilderFactory.BeanValidatorBuilders,
             
org.apache.camel.builder.endpoint.dsl.BlobEndpointBuilderFactory.BlobBuilders,
             
org.apache.camel.builder.endpoint.dsl.BonitaEndpointBuilderFactory.BonitaBuilders,
             
org.apache.camel.builder.endpoint.dsl.BoxEndpointBuilderFactory.BoxBuilders,
             
org.apache.camel.builder.endpoint.dsl.BraintreeEndpointBuilderFactory.BraintreeBuilders,
             
org.apache.camel.builder.endpoint.dsl.BrowseEndpointBuilderFactory.BrowseBuilders,
-            
org.apache.camel.builder.endpoint.dsl.CMEndpointBuilderFactory.CMBuilders,
-            
org.apache.camel.builder.endpoint.dsl.CMISEndpointBuilderFactory.CMISBuilders,
             
org.apache.camel.builder.endpoint.dsl.CaffeineCacheEndpointBuilderFactory.CaffeineCacheBuilders,
             
org.apache.camel.builder.endpoint.dsl.CaffeineLoadCacheEndpointBuilderFactory.CaffeineLoadCacheBuilders,
             
org.apache.camel.builder.endpoint.dsl.CassandraEndpointBuilderFactory.CassandraBuilders,
@@ -67,19 +65,20 @@ public interface EndpointBuilderFactory
             
org.apache.camel.builder.endpoint.dsl.CinderEndpointBuilderFactory.CinderBuilders,
             
org.apache.camel.builder.endpoint.dsl.ClassEndpointBuilderFactory.ClassBuilders,
             
org.apache.camel.builder.endpoint.dsl.ClientEndpointBuilderFactory.ClientBuilders,
+            
org.apache.camel.builder.endpoint.dsl.CMEndpointBuilderFactory.CMBuilders,
+            
org.apache.camel.builder.endpoint.dsl.CMISEndpointBuilderFactory.CMISBuilders,
             
org.apache.camel.builder.endpoint.dsl.CoAPEndpointBuilderFactory.CoAPBuilders,
             
org.apache.camel.builder.endpoint.dsl.CometdEndpointBuilderFactory.CometdBuilders,
             
org.apache.camel.builder.endpoint.dsl.ConsulEndpointBuilderFactory.ConsulBuilders,
             
org.apache.camel.builder.endpoint.dsl.ControlBusEndpointBuilderFactory.ControlBusBuilders,
             
org.apache.camel.builder.endpoint.dsl.CordaEndpointBuilderFactory.CordaBuilders,
-            
org.apache.camel.builder.endpoint.dsl.CouchDbEndpointBuilderFactory.CouchDbBuilders,
             
org.apache.camel.builder.endpoint.dsl.CouchbaseEndpointBuilderFactory.CouchbaseBuilders,
+            
org.apache.camel.builder.endpoint.dsl.CouchDbEndpointBuilderFactory.CouchDbBuilders,
             
org.apache.camel.builder.endpoint.dsl.CronEndpointBuilderFactory.CronBuilders,
             
org.apache.camel.builder.endpoint.dsl.CryptoCmsEndpointBuilderFactory.CryptoCmsBuilders,
             
org.apache.camel.builder.endpoint.dsl.Cw2EndpointBuilderFactory.Cw2Builders,
             
org.apache.camel.builder.endpoint.dsl.CxfEndpointBuilderFactory.CxfBuilders,
             
org.apache.camel.builder.endpoint.dsl.CxfRsEndpointBuilderFactory.CxfRsBuilders,
-            
org.apache.camel.builder.endpoint.dsl.DJLEndpointBuilderFactory.DJLBuilders,
             
org.apache.camel.builder.endpoint.dsl.DataFormatEndpointBuilderFactory.DataFormatBuilders,
             
org.apache.camel.builder.endpoint.dsl.DataLakeEndpointBuilderFactory.DataLakeBuilders,
             
org.apache.camel.builder.endpoint.dsl.DataSetEndpointBuilderFactory.DataSetBuilders,
@@ -96,22 +95,23 @@ public interface EndpointBuilderFactory
             
org.apache.camel.builder.endpoint.dsl.DirectVmEndpointBuilderFactory.DirectVmBuilders,
             
org.apache.camel.builder.endpoint.dsl.DisruptorEndpointBuilderFactory.DisruptorBuilders,
             
org.apache.camel.builder.endpoint.dsl.DisruptorVmEndpointBuilderFactory.DisruptorVmBuilders,
+            
org.apache.camel.builder.endpoint.dsl.DJLEndpointBuilderFactory.DJLBuilders,
             
org.apache.camel.builder.endpoint.dsl.DnsEndpointBuilderFactory.DnsBuilders,
             
org.apache.camel.builder.endpoint.dsl.DockerEndpointBuilderFactory.DockerBuilders,
             
org.apache.camel.builder.endpoint.dsl.DozerEndpointBuilderFactory.DozerBuilders,
             
org.apache.camel.builder.endpoint.dsl.DrillEndpointBuilderFactory.DrillBuilders,
             
org.apache.camel.builder.endpoint.dsl.DropboxEndpointBuilderFactory.DropboxBuilders,
             
org.apache.camel.builder.endpoint.dsl.ECS2EndpointBuilderFactory.ECS2Builders,
-            
org.apache.camel.builder.endpoint.dsl.EKS2EndpointBuilderFactory.EKS2Builders,
             
org.apache.camel.builder.endpoint.dsl.EhcacheEndpointBuilderFactory.EhcacheBuilders,
+            
org.apache.camel.builder.endpoint.dsl.EKS2EndpointBuilderFactory.EKS2Builders,
             
org.apache.camel.builder.endpoint.dsl.ElasticsearchEndpointBuilderFactory.ElasticsearchBuilders,
             
org.apache.camel.builder.endpoint.dsl.ElsqlEndpointBuilderFactory.ElsqlBuilders,
             
org.apache.camel.builder.endpoint.dsl.EtcdKeysEndpointBuilderFactory.EtcdKeysBuilders,
             
org.apache.camel.builder.endpoint.dsl.EtcdStatsEndpointBuilderFactory.EtcdStatsBuilders,
             
org.apache.camel.builder.endpoint.dsl.EtcdWatchEndpointBuilderFactory.EtcdWatchBuilders,
+            
org.apache.camel.builder.endpoint.dsl.EventbridgeEndpointBuilderFactory.EventbridgeBuilders,
             
org.apache.camel.builder.endpoint.dsl.EventEndpointBuilderFactory.EventBuilders,
             
org.apache.camel.builder.endpoint.dsl.EventHubsEndpointBuilderFactory.EventHubsBuilders,
-            
org.apache.camel.builder.endpoint.dsl.EventbridgeEndpointBuilderFactory.EventbridgeBuilders,
             
org.apache.camel.builder.endpoint.dsl.ExecEndpointBuilderFactory.ExecBuilders,
             
org.apache.camel.builder.endpoint.dsl.FacebookEndpointBuilderFactory.FacebookBuilders,
             
org.apache.camel.builder.endpoint.dsl.FhirEndpointBuilderFactory.FhirBuilders,
@@ -146,7 +146,6 @@ public interface EndpointBuilderFactory
             
org.apache.camel.builder.endpoint.dsl.GridFsEndpointBuilderFactory.GridFsBuilders,
             
org.apache.camel.builder.endpoint.dsl.GrpcEndpointBuilderFactory.GrpcBuilders,
             
org.apache.camel.builder.endpoint.dsl.GuavaEventBusEndpointBuilderFactory.GuavaEventBusBuilders,
-            
org.apache.camel.builder.endpoint.dsl.HBaseEndpointBuilderFactory.HBaseBuilders,
             
org.apache.camel.builder.endpoint.dsl.HazelcastAtomicnumberEndpointBuilderFactory.HazelcastAtomicnumberBuilders,
             
org.apache.camel.builder.endpoint.dsl.HazelcastInstanceEndpointBuilderFactory.HazelcastInstanceBuilders,
             
org.apache.camel.builder.endpoint.dsl.HazelcastListEndpointBuilderFactory.HazelcastListBuilders,
@@ -158,11 +157,10 @@ public interface EndpointBuilderFactory
             
org.apache.camel.builder.endpoint.dsl.HazelcastSedaEndpointBuilderFactory.HazelcastSedaBuilders,
             
org.apache.camel.builder.endpoint.dsl.HazelcastSetEndpointBuilderFactory.HazelcastSetBuilders,
             
org.apache.camel.builder.endpoint.dsl.HazelcastTopicEndpointBuilderFactory.HazelcastTopicBuilders,
+            
org.apache.camel.builder.endpoint.dsl.HBaseEndpointBuilderFactory.HBaseBuilders,
             
org.apache.camel.builder.endpoint.dsl.HdfsEndpointBuilderFactory.HdfsBuilders,
             
org.apache.camel.builder.endpoint.dsl.HttpEndpointBuilderFactory.HttpBuilders,
             
org.apache.camel.builder.endpoint.dsl.IAM2EndpointBuilderFactory.IAM2Builders,
-            
org.apache.camel.builder.endpoint.dsl.IOTAEndpointBuilderFactory.IOTABuilders,
-            
org.apache.camel.builder.endpoint.dsl.IPFSEndpointBuilderFactory.IPFSBuilders,
             
org.apache.camel.builder.endpoint.dsl.IgniteCacheEndpointBuilderFactory.IgniteCacheBuilders,
             
org.apache.camel.builder.endpoint.dsl.IgniteComputeEndpointBuilderFactory.IgniteComputeBuilders,
             
org.apache.camel.builder.endpoint.dsl.IgniteEventsEndpointBuilderFactory.IgniteEventsBuilders,
@@ -173,34 +171,36 @@ public interface EndpointBuilderFactory
             
org.apache.camel.builder.endpoint.dsl.InfinispanEmbeddedEndpointBuilderFactory.InfinispanEmbeddedBuilders,
             
org.apache.camel.builder.endpoint.dsl.InfinispanRemoteEndpointBuilderFactory.InfinispanRemoteBuilders,
             
org.apache.camel.builder.endpoint.dsl.InfluxDbEndpointBuilderFactory.InfluxDbBuilders,
+            
org.apache.camel.builder.endpoint.dsl.IOTAEndpointBuilderFactory.IOTABuilders,
+            
org.apache.camel.builder.endpoint.dsl.IPFSEndpointBuilderFactory.IPFSBuilders,
             
org.apache.camel.builder.endpoint.dsl.IrcEndpointBuilderFactory.IrcBuilders,
             
org.apache.camel.builder.endpoint.dsl.IronMQEndpointBuilderFactory.IronMQBuilders,
             
org.apache.camel.builder.endpoint.dsl.JBPMEndpointBuilderFactory.JBPMBuilders,
             
org.apache.camel.builder.endpoint.dsl.JCacheEndpointBuilderFactory.JCacheBuilders,
-            
org.apache.camel.builder.endpoint.dsl.JGroupsEndpointBuilderFactory.JGroupsBuilders,
-            
org.apache.camel.builder.endpoint.dsl.JGroupsRaftEndpointBuilderFactory.JGroupsRaftBuilders,
-            
org.apache.camel.builder.endpoint.dsl.JMXEndpointBuilderFactory.JMXBuilders,
-            
org.apache.camel.builder.endpoint.dsl.JSR356WebSocketEndpointBuilderFactory.JSR356WebSocketBuilders,
             
org.apache.camel.builder.endpoint.dsl.JcloudsEndpointBuilderFactory.JcloudsBuilders,
             
org.apache.camel.builder.endpoint.dsl.JcrEndpointBuilderFactory.JcrBuilders,
             
org.apache.camel.builder.endpoint.dsl.JdbcEndpointBuilderFactory.JdbcBuilders,
             
org.apache.camel.builder.endpoint.dsl.JettyHttpEndpointBuilderFactory.JettyHttpBuilders,
+            
org.apache.camel.builder.endpoint.dsl.JGroupsEndpointBuilderFactory.JGroupsBuilders,
+            
org.apache.camel.builder.endpoint.dsl.JGroupsRaftEndpointBuilderFactory.JGroupsRaftBuilders,
             
org.apache.camel.builder.endpoint.dsl.JingEndpointBuilderFactory.JingBuilders,
             
org.apache.camel.builder.endpoint.dsl.JiraEndpointBuilderFactory.JiraBuilders,
             
org.apache.camel.builder.endpoint.dsl.JmsEndpointBuilderFactory.JmsBuilders,
+            
org.apache.camel.builder.endpoint.dsl.JMXEndpointBuilderFactory.JMXBuilders,
             
org.apache.camel.builder.endpoint.dsl.JoltEndpointBuilderFactory.JoltBuilders,
             
org.apache.camel.builder.endpoint.dsl.JooqEndpointBuilderFactory.JooqBuilders,
             
org.apache.camel.builder.endpoint.dsl.JpaEndpointBuilderFactory.JpaBuilders,
             
org.apache.camel.builder.endpoint.dsl.JsltEndpointBuilderFactory.JsltBuilders,
-            
org.apache.camel.builder.endpoint.dsl.JsonValidatorEndpointBuilderFactory.JsonValidatorBuilders,
             
org.apache.camel.builder.endpoint.dsl.JsonataEndpointBuilderFactory.JsonataBuilders,
+            
org.apache.camel.builder.endpoint.dsl.JsonValidatorEndpointBuilderFactory.JsonValidatorBuilders,
+            
org.apache.camel.builder.endpoint.dsl.JSR356WebSocketEndpointBuilderFactory.JSR356WebSocketBuilders,
             
org.apache.camel.builder.endpoint.dsl.Jt400EndpointBuilderFactory.Jt400Builders,
-            
org.apache.camel.builder.endpoint.dsl.KMS2EndpointBuilderFactory.KMS2Builders,
             
org.apache.camel.builder.endpoint.dsl.KafkaEndpointBuilderFactory.KafkaBuilders,
             
org.apache.camel.builder.endpoint.dsl.KameletEndpointBuilderFactory.KameletBuilders,
             
org.apache.camel.builder.endpoint.dsl.KeystoneEndpointBuilderFactory.KeystoneBuilders,
             
org.apache.camel.builder.endpoint.dsl.Kinesis2EndpointBuilderFactory.Kinesis2Builders,
             
org.apache.camel.builder.endpoint.dsl.KinesisFirehose2EndpointBuilderFactory.KinesisFirehose2Builders,
+            
org.apache.camel.builder.endpoint.dsl.KMS2EndpointBuilderFactory.KMS2Builders,
             
org.apache.camel.builder.endpoint.dsl.KubernetesConfigMapsEndpointBuilderFactory.KubernetesConfigMapsBuilders,
             
org.apache.camel.builder.endpoint.dsl.KubernetesCustomResourcesEndpointBuilderFactory.KubernetesCustomResourcesBuilders,
             
org.apache.camel.builder.endpoint.dsl.KubernetesDeploymentsEndpointBuilderFactory.KubernetesDeploymentsBuilders,
@@ -224,13 +224,11 @@ public interface EndpointBuilderFactory
             
org.apache.camel.builder.endpoint.dsl.LogEndpointBuilderFactory.LogBuilders,
             
org.apache.camel.builder.endpoint.dsl.LuceneEndpointBuilderFactory.LuceneBuilders,
             
org.apache.camel.builder.endpoint.dsl.LumberjackEndpointBuilderFactory.LumberjackBuilders,
-            
org.apache.camel.builder.endpoint.dsl.MQ2EndpointBuilderFactory.MQ2Builders,
-            
org.apache.camel.builder.endpoint.dsl.MSK2EndpointBuilderFactory.MSK2Builders,
             
org.apache.camel.builder.endpoint.dsl.MailEndpointBuilderFactory.MailBuilders,
             
org.apache.camel.builder.endpoint.dsl.MasterEndpointBuilderFactory.MasterBuilders,
             
org.apache.camel.builder.endpoint.dsl.MetricsEndpointBuilderFactory.MetricsBuilders,
-            
org.apache.camel.builder.endpoint.dsl.MicroProfileMetricsEndpointBuilderFactory.MicroProfileMetricsBuilders,
             
org.apache.camel.builder.endpoint.dsl.MicrometerEndpointBuilderFactory.MicrometerBuilders,
+            
org.apache.camel.builder.endpoint.dsl.MicroProfileMetricsEndpointBuilderFactory.MicroProfileMetricsBuilders,
             
org.apache.camel.builder.endpoint.dsl.MiloClientEndpointBuilderFactory.MiloClientBuilders,
             
org.apache.camel.builder.endpoint.dsl.MiloServerEndpointBuilderFactory.MiloServerBuilders,
             
org.apache.camel.builder.endpoint.dsl.MinaEndpointBuilderFactory.MinaBuilders,
@@ -238,6 +236,8 @@ public interface EndpointBuilderFactory
             
org.apache.camel.builder.endpoint.dsl.MllpEndpointBuilderFactory.MllpBuilders,
             
org.apache.camel.builder.endpoint.dsl.MockEndpointBuilderFactory.MockBuilders,
             
org.apache.camel.builder.endpoint.dsl.MongoDbEndpointBuilderFactory.MongoDbBuilders,
+            
org.apache.camel.builder.endpoint.dsl.MQ2EndpointBuilderFactory.MQ2Builders,
+            
org.apache.camel.builder.endpoint.dsl.MSK2EndpointBuilderFactory.MSK2Builders,
             
org.apache.camel.builder.endpoint.dsl.MsvEndpointBuilderFactory.MsvBuilders,
             
org.apache.camel.builder.endpoint.dsl.MustacheEndpointBuilderFactory.MustacheBuilders,
             
org.apache.camel.builder.endpoint.dsl.MvelEndpointBuilderFactory.MvelBuilders,
@@ -245,9 +245,9 @@ public interface EndpointBuilderFactory
             
org.apache.camel.builder.endpoint.dsl.MyBatisEndpointBuilderFactory.MyBatisBuilders,
             
org.apache.camel.builder.endpoint.dsl.NagiosEndpointBuilderFactory.NagiosBuilders,
             
org.apache.camel.builder.endpoint.dsl.NatsEndpointBuilderFactory.NatsBuilders,
-            
org.apache.camel.builder.endpoint.dsl.NetWeaverEndpointBuilderFactory.NetWeaverBuilders,
             
org.apache.camel.builder.endpoint.dsl.NettyEndpointBuilderFactory.NettyBuilders,
             
org.apache.camel.builder.endpoint.dsl.NettyHttpEndpointBuilderFactory.NettyHttpBuilders,
+            
org.apache.camel.builder.endpoint.dsl.NetWeaverEndpointBuilderFactory.NetWeaverBuilders,
             
org.apache.camel.builder.endpoint.dsl.NeutronEndpointBuilderFactory.NeutronBuilders,
             
org.apache.camel.builder.endpoint.dsl.NitriteEndpointBuilderFactory.NitriteBuilders,
             
org.apache.camel.builder.endpoint.dsl.NovaEndpointBuilderFactory.NovaBuilders,
@@ -275,13 +275,12 @@ public interface EndpointBuilderFactory
             
org.apache.camel.builder.endpoint.dsl.RedisEndpointBuilderFactory.RedisBuilders,
             
org.apache.camel.builder.endpoint.dsl.RefEndpointBuilderFactory.RefBuilders,
             
org.apache.camel.builder.endpoint.dsl.RestApiEndpointBuilderFactory.RestApiBuilders,
+            
org.apache.camel.builder.endpoint.dsl.ResteasyEndpointBuilderFactory.ResteasyBuilders,
             
org.apache.camel.builder.endpoint.dsl.RestEndpointBuilderFactory.RestBuilders,
             
org.apache.camel.builder.endpoint.dsl.RestOpenApiEndpointBuilderFactory.RestOpenApiBuilders,
             
org.apache.camel.builder.endpoint.dsl.RestSwaggerEndpointBuilderFactory.RestSwaggerBuilders,
-            
org.apache.camel.builder.endpoint.dsl.ResteasyEndpointBuilderFactory.ResteasyBuilders,
             
org.apache.camel.builder.endpoint.dsl.RobotFrameworkEndpointBuilderFactory.RobotFrameworkBuilders,
             
org.apache.camel.builder.endpoint.dsl.RssEndpointBuilderFactory.RssBuilders,
-            
org.apache.camel.builder.endpoint.dsl.STS2EndpointBuilderFactory.STS2Builders,
             
org.apache.camel.builder.endpoint.dsl.SagaEndpointBuilderFactory.SagaBuilders,
             
org.apache.camel.builder.endpoint.dsl.SalesforceEndpointBuilderFactory.SalesforceBuilders,
             
org.apache.camel.builder.endpoint.dsl.SchedulerEndpointBuilderFactory.SchedulerBuilders,
@@ -322,6 +321,7 @@ public interface EndpointBuilderFactory
             
org.apache.camel.builder.endpoint.dsl.StompEndpointBuilderFactory.StompBuilders,
             
org.apache.camel.builder.endpoint.dsl.StreamEndpointBuilderFactory.StreamBuilders,
             
org.apache.camel.builder.endpoint.dsl.StringTemplateEndpointBuilderFactory.StringTemplateBuilders,
+            
org.apache.camel.builder.endpoint.dsl.STS2EndpointBuilderFactory.STS2Builders,
             
org.apache.camel.builder.endpoint.dsl.StubEndpointBuilderFactory.StubBuilders,
             
org.apache.camel.builder.endpoint.dsl.SwiftEndpointBuilderFactory.SwiftBuilders,
             
org.apache.camel.builder.endpoint.dsl.TelegramEndpointBuilderFactory.TelegramBuilders,
@@ -351,10 +351,10 @@ public interface EndpointBuilderFactory
             
org.apache.camel.builder.endpoint.dsl.WsEndpointBuilderFactory.WsBuilders,
             
org.apache.camel.builder.endpoint.dsl.XChangeEndpointBuilderFactory.XChangeBuilders,
             
org.apache.camel.builder.endpoint.dsl.XJEndpointBuilderFactory.XJBuilders,
-            
org.apache.camel.builder.endpoint.dsl.XQueryEndpointBuilderFactory.XQueryBuilders,
             
org.apache.camel.builder.endpoint.dsl.XmlSignerEndpointBuilderFactory.XmlSignerBuilders,
             
org.apache.camel.builder.endpoint.dsl.XmlVerifierEndpointBuilderFactory.XmlVerifierBuilders,
             
org.apache.camel.builder.endpoint.dsl.XmppEndpointBuilderFactory.XmppBuilders,
+            
org.apache.camel.builder.endpoint.dsl.XQueryEndpointBuilderFactory.XQueryBuilders,
             
org.apache.camel.builder.endpoint.dsl.XsltEndpointBuilderFactory.XsltBuilders,
             
org.apache.camel.builder.endpoint.dsl.XsltSaxonEndpointBuilderFactory.XsltSaxonBuilders,
             
org.apache.camel.builder.endpoint.dsl.YammerEndpointBuilderFactory.YammerBuilders,
diff --git 
a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
 
b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
index d93bc1e..38293b9 100644
--- 
a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
+++ 
b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
@@ -25,14 +25,12 @@ import javax.annotation.Generated;
 @Generated("org.apache.camel.maven.packaging.EndpointDslMojo")
 public interface EndpointBuilders
         extends
-            org.apache.camel.builder.endpoint.dsl.AMQPEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.AS2EndpointBuilderFactory,
-            
org.apache.camel.builder.endpoint.dsl.AWS2EC2EndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.AWS2S3EndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.ActiveMQEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.AhcEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.AMQPEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.ApnsEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.ArangoDbEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.AS2EndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.AsteriskEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.Athena2EndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.AtlasMapEndpointBuilderFactory,
@@ -46,16 +44,16 @@ public interface EndpointBuilders
             
org.apache.camel.builder.endpoint.dsl.AtomixSetEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.AtomixValueEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.AvroEndpointBuilderFactory,
+            
org.apache.camel.builder.endpoint.dsl.AWS2EC2EndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.AWS2S3EndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.BeanEndpointBuilderFactory,
-            
org.apache.camel.builder.endpoint.dsl.BeanValidatorEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.BeanstalkEndpointBuilderFactory,
+            
org.apache.camel.builder.endpoint.dsl.BeanValidatorEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.BlobEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.BonitaEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.BoxEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.BraintreeEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.BrowseEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.CMEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.CMISEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.CaffeineCacheEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.CaffeineLoadCacheEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.CassandraEndpointBuilderFactory,
@@ -64,19 +62,20 @@ public interface EndpointBuilders
             org.apache.camel.builder.endpoint.dsl.CinderEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.ClassEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.ClientEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.CMEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.CMISEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.CoAPEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.CometdEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.ConsulEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.ControlBusEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.CordaEndpointBuilderFactory,
-            
org.apache.camel.builder.endpoint.dsl.CouchDbEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.CouchbaseEndpointBuilderFactory,
+            
org.apache.camel.builder.endpoint.dsl.CouchDbEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.CronEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.CryptoCmsEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.Cw2EndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.CxfEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.CxfRsEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.DJLEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.DataFormatEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.DataLakeEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.DataSetEndpointBuilderFactory,
@@ -93,22 +92,23 @@ public interface EndpointBuilders
             
org.apache.camel.builder.endpoint.dsl.DirectVmEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.DisruptorEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.DisruptorVmEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.DJLEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.DnsEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.DockerEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.DozerEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.DrillEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.DropboxEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.ECS2EndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.EKS2EndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.EhcacheEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.EKS2EndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.ElasticsearchEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.ElsqlEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.EtcdKeysEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.EtcdStatsEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.EtcdWatchEndpointBuilderFactory,
+            
org.apache.camel.builder.endpoint.dsl.EventbridgeEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.EventEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.EventHubsEndpointBuilderFactory,
-            
org.apache.camel.builder.endpoint.dsl.EventbridgeEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.ExecEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.FacebookEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.FhirEndpointBuilderFactory,
@@ -143,7 +143,6 @@ public interface EndpointBuilders
             org.apache.camel.builder.endpoint.dsl.GridFsEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.GrpcEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.GuavaEventBusEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.HBaseEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.HazelcastAtomicnumberEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.HazelcastInstanceEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.HazelcastListEndpointBuilderFactory,
@@ -155,11 +154,10 @@ public interface EndpointBuilders
             
org.apache.camel.builder.endpoint.dsl.HazelcastSedaEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.HazelcastSetEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.HazelcastTopicEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.HBaseEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.HdfsEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.HttpEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.IAM2EndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.IOTAEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.IPFSEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.IgniteCacheEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.IgniteComputeEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.IgniteEventsEndpointBuilderFactory,
@@ -170,34 +168,36 @@ public interface EndpointBuilders
             
org.apache.camel.builder.endpoint.dsl.InfinispanEmbeddedEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.InfinispanRemoteEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.InfluxDbEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.IOTAEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.IPFSEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.IrcEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.IronMQEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.JBPMEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.JCacheEndpointBuilderFactory,
-            
org.apache.camel.builder.endpoint.dsl.JGroupsEndpointBuilderFactory,
-            
org.apache.camel.builder.endpoint.dsl.JGroupsRaftEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.JMXEndpointBuilderFactory,
-            
org.apache.camel.builder.endpoint.dsl.JSR356WebSocketEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.JcloudsEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.JcrEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.JdbcEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.JettyHttpEndpointBuilderFactory,
+            
org.apache.camel.builder.endpoint.dsl.JGroupsEndpointBuilderFactory,
+            
org.apache.camel.builder.endpoint.dsl.JGroupsRaftEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.JingEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.JiraEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.JmsEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.JMXEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.JoltEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.JooqEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.JpaEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.JsltEndpointBuilderFactory,
-            
org.apache.camel.builder.endpoint.dsl.JsonValidatorEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.JsonataEndpointBuilderFactory,
+            
org.apache.camel.builder.endpoint.dsl.JsonValidatorEndpointBuilderFactory,
+            
org.apache.camel.builder.endpoint.dsl.JSR356WebSocketEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.Jt400EndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.KMS2EndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.KafkaEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.KameletEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.KeystoneEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.Kinesis2EndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.KinesisFirehose2EndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.KMS2EndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.KubernetesConfigMapsEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.KubernetesCustomResourcesEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.KubernetesDeploymentsEndpointBuilderFactory,
@@ -221,13 +221,11 @@ public interface EndpointBuilders
             org.apache.camel.builder.endpoint.dsl.LogEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.LuceneEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.LumberjackEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.MQ2EndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.MSK2EndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.MailEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.MasterEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.MetricsEndpointBuilderFactory,
-            
org.apache.camel.builder.endpoint.dsl.MicroProfileMetricsEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.MicrometerEndpointBuilderFactory,
+            
org.apache.camel.builder.endpoint.dsl.MicroProfileMetricsEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.MiloClientEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.MiloServerEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.MinaEndpointBuilderFactory,
@@ -235,6 +233,8 @@ public interface EndpointBuilders
             org.apache.camel.builder.endpoint.dsl.MllpEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.MockEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.MongoDbEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.MQ2EndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.MSK2EndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.MsvEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.MustacheEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.MvelEndpointBuilderFactory,
@@ -242,9 +242,9 @@ public interface EndpointBuilders
             
org.apache.camel.builder.endpoint.dsl.MyBatisEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.NagiosEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.NatsEndpointBuilderFactory,
-            
org.apache.camel.builder.endpoint.dsl.NetWeaverEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.NettyEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.NettyHttpEndpointBuilderFactory,
+            
org.apache.camel.builder.endpoint.dsl.NetWeaverEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.NeutronEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.NitriteEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.NovaEndpointBuilderFactory,
@@ -272,13 +272,12 @@ public interface EndpointBuilders
             org.apache.camel.builder.endpoint.dsl.RedisEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.RefEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.RestApiEndpointBuilderFactory,
+            
org.apache.camel.builder.endpoint.dsl.ResteasyEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.RestEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.RestOpenApiEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.RestSwaggerEndpointBuilderFactory,
-            
org.apache.camel.builder.endpoint.dsl.ResteasyEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.RobotFrameworkEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.RssEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.STS2EndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.SagaEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.SalesforceEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.SchedulerEndpointBuilderFactory,
@@ -319,6 +318,7 @@ public interface EndpointBuilders
             org.apache.camel.builder.endpoint.dsl.StompEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.StreamEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.StringTemplateEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.STS2EndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.StubEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.SwiftEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.TelegramEndpointBuilderFactory,
@@ -348,10 +348,10 @@ public interface EndpointBuilders
             org.apache.camel.builder.endpoint.dsl.WsEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.XChangeEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.XJEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.XQueryEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.XmlSignerEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.XmlVerifierEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.XmppEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.XQueryEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.XsltEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.XsltSaxonEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.YammerEndpointBuilderFactory,
diff --git 
a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SimpleNotificationEndpointBuilderFactory.java
 
b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SimpleNotificationEndpointBuilderFactory.java
index e77fbc5..f3ecafd 100644
--- 
a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SimpleNotificationEndpointBuilderFactory.java
+++ 
b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SimpleNotificationEndpointBuilderFactory.java
@@ -52,6 +52,21 @@ public interface SimpleNotificationEndpointBuilderFactory {
             return this;
         }
         /**
+         * Fully qualified smn service url. Carries higher precedence than
+         * region parameter based client initialization.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: producer
+         * 
+         * @param endpoint the value to set
+         * @return the dsl builder
+         */
+        default SimpleNotificationEndpointBuilder endpoint(String endpoint) {
+            doSetProperty("endpoint", endpoint);
+            return this;
+        }
+        /**
          * Ignore SSL verification.
          * 
          * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
@@ -265,7 +280,8 @@ public interface SimpleNotificationEndpointBuilderFactory {
             return this;
         }
         /**
-         * SMN service region.
+         * SMN service region. This is lower precedence than endpoint based
+         * configuration.
          * 
          * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
          * 
diff --git a/docs/components/modules/ROOT/pages/hwcloud-smn-component.adoc 
b/docs/components/modules/ROOT/pages/hwcloud-smn-component.adoc
index 6311d3a..3fa58a98 100644
--- a/docs/components/modules/ROOT/pages/hwcloud-smn-component.adoc
+++ b/docs/components/modules/ROOT/pages/hwcloud-smn-component.adoc
@@ -1,7 +1,7 @@
 [[hwcloud-smn-component]]
 = SimpleNotification Component
 //THIS FILE IS COPIED: EDIT THE SOURCE FILE:
-:page-source: 
components/camel-huaweicloud-smn/src/main/docs/hwcloud-smn-component.adoc
+:page-source: 
componentscamel-huaweicloud-smnsrcmaindocshwcloud-smn-component.adoc
 :docTitle: SimpleNotification
 :artifactId: camel-huaweicloud-smn
 :description: Huawei Cloud component to integrate with SimpleNotification 
services
@@ -73,13 +73,14 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (13 parameters):
+=== Query Parameters (14 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
 | *authKey* (producer) | *Required* Authentication key for the cloud user |  | 
String
+| *endpoint* (producer) | Fully qualified smn service url. Carries higher 
precedence than region parameter based client initialization |  | String
 | *ignoreSslVerification* (producer) | Ignore SSL verification | false | 
boolean
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy 
(on the first message). By starting lazy you can use this to allow CamelContext 
and routes to startup in situations where a producer may otherwise fail during 
starting and cause the route to fail being started. By deferring this startup 
to be lazy then the startup failure can be handled during routing messages via 
Camel's routing error handlers. Beware that when the first message is processed 
then creating and [...]
 | *messageTtl* (producer) | TTL for published message | 3600 | int
@@ -89,7 +90,7 @@ with the following path and query parameters:
 | *proxyPassword* (producer) | Proxy authentication password |  | String
 | *proxyPort* (producer) | Proxy server port |  | int
 | *proxyUser* (producer) | Proxy authentication user |  | String
-| *region* (producer) | *Required* SMN service region |  | String
+| *region* (producer) | *Required* SMN service region. This is lower 
precedence than endpoint based configuration |  | String
 | *secretKey* (producer) | *Required* Secret key for the cloud user |  | String
 | *serviceKeys* (producer) | Configuration object for cloud service 
authentication |  | ServiceKeys
 |===
diff --git 
a/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_10.adoc 
b/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_10.adoc
index db9a465..8ef9de69 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_10.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_10.adoc
@@ -30,3 +30,11 @@ in the previous version. New version tries to convert the 
payload into `InpuStre
 only if conversion to `InputStream` is not possible.
 
 Order of the basic payload types (like `String`, `Map`, `File`) has not been 
changed.
+
+=== camel-huaweicloud-smn
+
+Initialization options for SMN client has slightly changed. 
+
+Earlier, the library configured the smn server url based on the region 
parameter provided in endpoint configurations. Now, it provides more 
flexibility by allowing camel users by providing fully qualified http url for 
more customizability.
+
+When endpoint URL is provided, it carries the higher precedence than region 
based configuration. Any region configuration entered along with endpoint url 
will be ignored.
\ No newline at end of file

Reply via email to