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

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

commit c56bdccede80c15d16f0ebfd6118a88356b91459
Author: Andrea Cosentino <anco...@gmail.com>
AuthorDate: Thu Jun 10 13:59:57 2021 +0200

    Regen and sync
---
 .../org/apache/camel/catalog/components.properties |   2 +
 .../catalog/components/hwcloud-functiongraph.json  |  45 +++++
 .../camel/catalog/components/hwcloud-smn.json      |  45 +++++
 .../org/apache/camel/catalog/docs.properties       |   2 +
 .../docs/hwcloud-functiongraph-component.adoc      | 152 +++++++++++++++
 .../camel/catalog/docs/hwcloud-smn-component.adoc  | 209 +++++++++++++++++++++
 .../org/apache/camel/main/components.properties    |   2 +
 docs/components/modules/others/pages/main.adoc     |   1 +
 .../EndpointProducerDeserializersResolver.java     |   2 -
 9 files changed, 458 insertions(+), 2 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
index b3ddadc..16498aa 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
@@ -145,6 +145,8 @@ hbase
 hdfs
 http
 https
+hwcloud-functiongraph
+hwcloud-smn
 iec60870-client
 iec60870-server
 ignite-cache
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/hwcloud-functiongraph.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/hwcloud-functiongraph.json
new file mode 100644
index 0000000..9c40a29
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/hwcloud-functiongraph.json
@@ -0,0 +1,45 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "hwcloud-functiongraph",
+    "title": "FunctionGraph",
+    "description": "To call serverless functions on Huawei Cloud",
+    "deprecated": false,
+    "firstVersion": "3.11.0",
+    "label": "cloud,serverless",
+    "javaType": "org.apache.camel.FunctionGraphComponent",
+    "supportLevel": "Preview",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-huaweicloud-functiongraph",
+    "version": "3.11.0-SNAPSHOT",
+    "scheme": "hwcloud-functiongraph",
+    "extendsScheme": "",
+    "syntax": "hwcloud-functiongraph:operation",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "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 star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired 
Enabled", "group": "advanced", "label": "advanced", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "description": "Whether autowiring is 
enabled. This is used for automatic autowiring options (the option must be 
marked as autowired) by looking up in the registry to find if there is a single 
instance of matching type, which t [...]
+  },
+  "properties": {
+    "operation": { "kind": "path", "displayName": "Operation", "group": 
"producer", "label": "producer", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Operation to be performed" 
},
+    "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": "FunctionGraph url. Carries 
higher precedence than region parameter based client initialization" },
+    "functionName": { "kind": "parameter", "displayName": "Function name", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Name of the function to 
invoke" },
+    "functionPackage": { "kind": "parameter", "displayName": "Function 
package", "group": "producer", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue": 
"default", "description": "Functions that can be logically grouped together" },
+    "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 [...]
+    "projectId": { "kind": "parameter", "displayName": "Project ID", "group": 
"producer", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Cloud project ID" },
+    "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": "FunctionGraph service region. This is 
lower precedence than endpoint based configuration" },
+    "serviceKeys": { "kind": "parameter", "displayName": "Service 
Configuration", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": "org.apache.camel.models.ServiceKeys", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": true, 
"description": "Configuration object for cloud service authentication" },
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy server host", 
"group": "proxy", "label": "proxy", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Proxy server ip\/hostname" 
},
+    "proxyPassword": { "kind": "parameter", "displayName": "Proxy password", 
"group": "proxy", "label": "proxy", "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": "proxy", "label": "proxy", "required": false, "type": "integer", 
"javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Proxy server port" },
+    "proxyUser": { "kind": "parameter", "displayName": "Proxy user", "group": 
"proxy", "label": "proxy", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": true, "description": "Proxy authentication user" },
+    "authenticationKey": { "kind": "parameter", "displayName": "API 
authentication key (AK)", "group": "security", "label": "security", "required": 
true, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": true, "description": 
"Authentication key for the cloud user" },
+    "ignoreSslVerification": { "kind": "parameter", "displayName": "SSL 
Verification Ignored", "group": "security", "label": "security", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue": 
false, "description": "Ignore SSL verification" },
+    "secretKey": { "kind": "parameter", "displayName": "API secret key (SK)", 
"group": "security", "label": "security", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": true, "description": "Secret key for the cloud 
user" }
+  }
+}
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/hwcloud-smn.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/hwcloud-smn.json
new file mode 100644
index 0000000..c02404f
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/hwcloud-smn.json
@@ -0,0 +1,45 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "hwcloud-smn",
+    "title": "SimpleNotification",
+    "description": "Huawei Cloud component to integrate with 
SimpleNotification services",
+    "deprecated": false,
+    "firstVersion": "3.8.0",
+    "label": "cloud,messaging",
+    "javaType": 
"org.apache.camel.component.huaweicloud.smn.SimpleNotificationComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-huaweicloud-smn",
+    "version": "3.11.0-SNAPSHOT",
+    "scheme": "hwcloud-smn",
+    "extendsScheme": "",
+    "syntax": "hwcloud-smn:smnService",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "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 star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired 
Enabled", "group": "advanced", "label": "advanced", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "description": "Whether autowiring is 
enabled. This is used for automatic autowiring options (the option must be 
marked as autowired) by looking up in the registry to find if there is a single 
instance of matching type, which t [...]
+  },
+  "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" },
+    "operation": { "kind": "parameter", "displayName": "Operation name", 
"group": "producer", "label": "producer", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Name of operation to 
perform" },
+    "projectId": { "kind": "parameter", "displayName": "Project ID", "group": 
"producer", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Cloud project ID" },
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy server host", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Proxy server ip\/hostname" 
},
+    "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. 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/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties
index 39920da..ff81928 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties
@@ -208,6 +208,8 @@ headersmap
 hl7-dataformat
 hl7terser-language
 http-component
+hwcloud-functiongraph-component
+hwcloud-smn-component
 hystrix
 hystrix-eip
 hystrixConfiguration-eip
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/hwcloud-functiongraph-component.adoc
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/hwcloud-functiongraph-component.adoc
new file mode 100644
index 0000000..c1e7620
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/hwcloud-functiongraph-component.adoc
@@ -0,0 +1,152 @@
+[[hwcloud-functiongraph-component]]
+= FunctionGraph Component
+:docTitle: FunctionGraph
+:artifactId: camel-huaweicloud-functiongraph
+:description: To call serverless functions on Huawei Cloud
+:since: 3.11
+:supportLevel: Preview
+:component-header: Only producer is supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/hwcloud-functiongraph.adoc[opts=optional]
+
+*Since Camel {since}*
+
+*{component-header}*
+
+Huawei Cloud FunctionGraph component allows you to integrate with 
https://www.huaweicloud.com/en-us/product/functiongraph.html[FunctionGraph] 
services provided by Huawei Cloud.
+
+Maven users will need to add the following dependency to their `pom.xml` for 
this component:
+
+[source,xml]
+----
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-huaweicloud-functiongraph</artifactId>
+    <version>x.x.x</version>
+    <!-- use the same version as your Camel core version -->
+</dependency>
+----
+
+== URI Format
+
+[source,text]
+----
+hwcloud-functiongraph:operation[?options]
+----
+
+== URI Options
+
+// component options: START
+The FunctionGraph component supports 2 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *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 [...]
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used 
for automatic autowiring options (the option must be marked as autowired) by 
looking up in the registry to find if there is a single instance of matching 
type, which then gets configured on the component. This can be used for 
automatic configuring JDBC data sources, JMS connection factories, AWS Clients, 
etc. | true | boolean
+|===
+// component options: END
+
+
+// endpoint options: START
+The FunctionGraph endpoint is configured using URI syntax:
+
+----
+hwcloud-functiongraph:operation
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *operation* | *Required* Operation to be performed |  | String
+|===
+
+
+=== Query Parameters (14 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *endpoint* (producer) | FunctionGraph url. Carries higher precedence than 
region parameter based client initialization |  | String
+| *functionName* (producer) | Name of the function to invoke |  | String
+| *functionPackage* (producer) | Functions that can be logically grouped 
together | default | String
+| *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 [...]
+| *projectId* (producer) | *Required* Cloud project ID |  | String
+| *region* (producer) | *Required* FunctionGraph service region. This is lower 
precedence than endpoint based configuration |  | String
+| *serviceKeys* (producer) | Configuration object for cloud service 
authentication |  | ServiceKeys
+| *proxyHost* (proxy) | Proxy server ip/hostname |  | String
+| *proxyPassword* (proxy) | Proxy authentication password |  | String
+| *proxyPort* (proxy) | Proxy server port |  | int
+| *proxyUser* (proxy) | Proxy authentication user |  | String
+| *authenticationKey* (security) | *Required* Authentication key for the cloud 
user |  | String
+| *ignoreSslVerification* (security) | Ignore SSL verification | false | 
boolean
+| *secretKey* (security) | *Required* Secret key for the cloud user |  | String
+|===
+// endpoint options: END
+
+
+== Usage
+
+=== Message properties evaluated by the FunctionGraph producer
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelHwCloudFgOperation` |`String` | Name of operation to invoke
+
+|`CamelHwCloudFgFunction` |`String` | Name of function to invoke operation on
+
+|`CamelHwCloudFgPackage` |`String` | Name of the function package
+
+|`CamelHwCloudFgXCffLogType` | `String` | Type of log to be returned by 
FunctionGraph operation
+
+|=======================================================================
+
+If the operation, function name, or function package are set, they will 
override their corresponding query parameter.
+
+=== Message properties set by the FunctionGraph producer
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelHwCloudFgXCffLogs` |`String` | Unique log returned by FunctionGraph 
after processing the request if `CamelHwCloudFgXCffLogType` is set
+
+|=======================================================================
+
+
+== List of Supported FunctionGraph Operations
+
+- invokeFunction - to invoke a serverless function
+
+== Using ServiceKey Configuration Bean
+
+Authentication key and secret keys are required to authenticate against cloud 
FunctionGraph service. You can avoid having them being exposed
+and scattered over in your endpoint uri by wrapping them inside a bean of 
class `org.apache.camel.component.huaweicloud.functiongraph.models.ServiceKeys`.
+Add it to the registry and let Camel look it up by referring the object via 
endpoint query parameter `serviceKeys`.
+
+Check the following code snippets:
+
+[source,xml]
+----
+<bean id="myServiceKeyConfig" 
class="org.apache.camel.component.huaweicloud.functiongraph.models.ServiceKeys">
+   <property name="authenticationKey" value="your_authentication_key" />
+   <property name="secretKey" value="your_secret_key" />
+</bean>
+----
+[source,java]
+----
+from("direct:triggerRoute")
+ .setProperty(FunctionGraphProperties.OPERATION, constant("invokeFunction"))
+ .setProperty(FunctionGraphProperties.FUNCTION_NAME 
,constant("your_function_name"))
+ .setProperty(FunctionGraphProperties.FUNCTION_PACKAGE, 
constant("your_function_package"))
+ 
.to("hwcloud-functiongraph:invokeFunction?projectId=9071a38e7f6a4ba7b7bcbeb7d4ea6efc&region=cn-north-4&serviceKeys=#myServiceKeyConfig")
+----
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
new file mode 100644
index 0000000..bd2a47b
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/hwcloud-smn-component.adoc
@@ -0,0 +1,209 @@
+[[hwcloud-smn-component]]
+= SimpleNotification Component
+:docTitle: SimpleNotification
+:artifactId: camel-huaweicloud-smn
+:description: Huawei Cloud component to integrate with SimpleNotification 
services
+:since: 3.8
+:supportLevel: Stable
+:component-header: Only producer is supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/hwcloud-smn.adoc[opts=optional]
+
+*Since Camel {since}*
+
+*{component-header}*
+
+Huawei Cloud SMN component allowes you to integrate with Simple notification 
services[https://www.huaweicloud.com/en-us/product/smn.html] provided by Huawei 
cloud.
+
+Maven users will need to add the following dependency to their `pom.xml`
+for this component:
+
+[source,xml]
+------------------------------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-huaweicloud-smn</artifactId>
+    <version>x.x.x</version>
+    <!-- use the same version as your Camel core version -->
+</dependency>
+------------------------------------------------------------
+
+== URI format
+
+To send a notification.
+
+[source,java]
+------------------------
+hwcloud-smn:service[?options]
+------------------------
+
+
+== Options
+
+// component options: START
+The SimpleNotification component supports 2 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *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 [...]
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used 
for automatic autowiring options (the option must be marked as autowired) by 
looking up in the registry to find if there is a single instance of matching 
type, which then gets configured on the component. This can be used for 
automatic configuring JDBC data sources, JMS connection factories, AWS Clients, 
etc. | true | boolean
+|===
+// component options: END
+
+// endpoint options: START
+The SimpleNotification endpoint is configured using URI syntax:
+
+----
+hwcloud-smn:smnService
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *smnService* | *Required* Name of SMN service to invoke |  | String
+|===
+
+
+=== 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
+| *operation* (producer) | *Required* Name of operation to perform |  | String
+| *projectId* (producer) | *Required* Cloud project ID |  | String
+| *proxyHost* (producer) | Proxy server ip/hostname |  | String
+| *proxyPassword* (producer) | Proxy authentication password |  | String
+| *proxyPort* (producer) | Proxy server port |  | int
+| *proxyUser* (producer) | Proxy authentication user |  | 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
+|===
+// endpoint options: END
+
+== Usage
+
+=== Message properties evaluated by the SMN producer
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelHwCloudSmnSubject` |`String` |Subject tag for the outgoing notification
+
+|`CamelHwCloudSmnTopic` |`String` |Smn topic into which the message is to be 
posted
+
+|`CamelHwCloudSmnMessageTtl` |`Integer` | Validity of the posted notification 
message
+
+|`CamelHwCloudSmnTemplateTags` |`Map<String, String>` | Contains K,V pairs of 
tags and values when using operation `publishAsTemplatedMessage`
+
+|`CamelHwCloudSmnTemplateName` |`String` |Name of the template to use while 
using operation `publishAsTemplatedMessage`
+
+
+|=======================================================================
+
+=== Message properties set by the SMN producer
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelHwCloudSmnMesssageId` |`String` | Unique message id returned by simple 
message notification server after processing the request
+
+|`CamelHwCloudSmnRequestId` |`String` | Unique request id returned by simple 
message notification server after processing the request
+
+|=======================================================================
+
+
+== Supported list of smn services and corresponding operations
+
+[width="100%",cols="50%,50%",options="header",]
+|=======================================================================
+|Service |Operations
+
+|`publishMessageService` | publishAsTextMessage, publishAsTemplatedMessage|
+|=======================================================================
+
+
+== Inline Configuration of route
+
+=== publishAsTextMessage
+Java DSL
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:triggerRoute")
+.setProperty(SmnProperties.NOTIFICATION_SUBJECT, constant("Notification 
Subject"))
+.setProperty(SmnProperties.NOTIFICATION_TOPIC_NAME,constant(testConfiguration.getProperty("topic")))
+.setProperty(SmnProperties.NOTIFICATION_TTL, constant(60))
+.to("hwcloud-smn:publishMessageService?operation=publishAsTextMessage&authKey=*********&secretKey=********&projectId=9071a38e7f6a4ba7b7bcbeb7d4ea6efc&region=cn-north-4")
+--------------------------------------------------------------------------------
+
+
+
+XML DSL
+[source,xml]
+--------------------------------------------------------------------------------
+<route>
+   <from uri="direct:triggerRoute" />
+   <setProperty name="CamelHwCloudSmnSubject">
+      <constant>this is my subjectline</constant>
+   </setProperty>
+   <setProperty name="CamelHwCloudSmnTopic">
+      <constant>reji-test</constant>
+   </setProperty>
+   <setProperty name="CamelHwCloudSmnMessageTtl">
+      <constant>60</constant>
+   </setProperty>
+   <to 
uri="hwcloud-smn:publishMessageService?operation=publishAsTextMessage&amp;authKey=*********&amp;secretKey=********&amp;projectId=9071a38e7f6a4ba7b7bcbeb7d4ea6efc&amp;region=cn-north-4"
 />
+</route>
+--------------------------------------------------------------------------------
+
+
+
+=== publishAsTemplatedMessage
+Java DSL
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:triggerRoute")
+.setProperty("CamelHwCloudSmnSubject", constant("This is my subjectline"))
+.setProperty("CamelHwCloudSmnTopic", constant("reji-test"))
+.setProperty("CamelHwCloudSmnMessageTtl", constant(60))
+.setProperty("CamelHwCloudSmnTemplateTags", constant(tags))
+.setProperty("CamelHwCloudSmnTemplateName", constant("hello-template"))
+.to("hwcloud-smn:publishMessageService?operation=publishAsTemplatedMessage&authKey=*********&secretKey=********&projectId=9071a38e7f6a4ba7b7bcbeb7d4ea6efc&region=cn-north-4")
+--------------------------------------------------------------------------------
+
+== Using ServiceKey configuration Bean
+Authentication key and secret keys are required to authenticate against cloud 
smn service. You can avoid having them being exposed
+and scattered over in your endpoint uri by wrapping them inside a bean of 
class ```org.apache.camel.component.huaweicloud.smn.models.ServiceKeys```.
+Add it to the registry and let camel look it up by referring the object via 
endpoint query parameter ```serviceKeys```.
+Check the following code snippets
+
+[source,xml]
+----
+<bean id="myServiceKeyConfig" 
class="org.apache.camel.component.huaweicloud.smn.models.ServiceKeys">
+   <property name="authenticationKey" value="your_auth_key" />
+   <property name="secretKey" value="your_secret_key" />
+</bean>
+----
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:triggerRoute")
+ .setProperty(SmnProperties.NOTIFICATION_SUBJECT, constant("Notification 
Subject"))
+ 
.setProperty(SmnProperties.NOTIFICATION_TOPIC_NAME,constant(testConfiguration.getProperty("topic")))
+ .setProperty(SmnProperties.NOTIFICATION_TTL, constant(60))
+ 
.to("hwcloud-smn:publishMessageService?operation=publishAsTextMessage&projectId=9071a38e7f6a4ba7b7bcbeb7d4ea6efc&region=cn-north-4&serviceKeys=#myServiceKeyConfig")
+--------------------------------------------------------------------------------
diff --git 
a/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
 
b/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
index b3ddadc..16498aa 100644
--- 
a/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
+++ 
b/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
@@ -145,6 +145,8 @@ hbase
 hdfs
 http
 https
+hwcloud-functiongraph
+hwcloud-smn
 iec60870-client
 iec60870-server
 ignite-cache
diff --git a/docs/components/modules/others/pages/main.adoc 
b/docs/components/modules/others/pages/main.adoc
index 928c0a7..e6c26cc 100644
--- a/docs/components/modules/others/pages/main.adoc
+++ b/docs/components/modules/others/pages/main.adoc
@@ -53,6 +53,7 @@ The following table lists all the options:
 | *camel.main.exchangeFactory{zwsp}Capacity* | The capacity the pool (for each 
consumer) uses for storing exchanges. The default capacity is 100. | 100 | int
 | *camel.main.exchangeFactory{zwsp}StatisticsEnabled* | Configures whether 
statistics is enabled on exchange factory. | false | boolean
 | *camel.main.fileConfigurations* | Directory to load additional configuration 
files that contains configuration values that takes precedence over any other 
configuration. This can be used to refer to files that may have secret 
configuration that has been mounted on the file system for containers. You can 
specify a pattern to load from sub directories and a name pattern such as 
/var/app/secret/.properties, multiple directories can be separated by comma. |  
| String
+| *camel.main.globalOptions* | Sets global options that can be referenced in 
the camel context Important: This has nothing to do with property placeholders, 
and is just a plain set of key/value pairs which are used to configure global 
options on CamelContext, such as a maximum debug logging length etc. |  | Map
 | *camel.main.inflightRepository{zwsp}BrowseEnabled* | Sets whether the 
inflight repository should allow browsing each inflight exchange. This is by 
default disabled as there is a very slight performance overhead when enabled. | 
false | boolean
 | *camel.main.javaRoutesExclude{zwsp}Pattern* | Used for exclusive filtering 
RouteBuilder classes which are collected from the registry or via classpath 
scanning. The exclusive filtering takes precedence over inclusive filtering. 
The pattern is using Ant-path style pattern. Multiple patterns can be specified 
separated by comma. For example to exclude all classes starting with Bar use: 
&#42;&#42;/Bar&#42; To exclude all routes form a specific package use: 
com/mycompany/bar/&#42; To exclud [...]
 | *camel.main.javaRoutesInclude{zwsp}Pattern* | Used for inclusive filtering 
RouteBuilder classes which are collected from the registry or via classpath 
scanning. The exclusive filtering takes precedence over inclusive filtering. 
The pattern is using Ant-path style pattern. Multiple patterns can be specified 
separated by comma. Multiple patterns can be specified separated by comma. For 
example to include all classes starting with Foo use: &#42;&#42;/Foo To include 
all routes form a speci [...]
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/EndpointProducerDeserializersResolver.java
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/EndpointProducerDeserializersResolver.java
index fbd0abb..088ed2c 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/EndpointProducerDeserializersResolver.java
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/EndpointProducerDeserializersResolver.java
@@ -149,8 +149,6 @@ public final class EndpointProducerDeserializersResolver 
implements YamlDeserial
             case "hdfs":
             case "http":
             case "https":
-            case "hwcloud-functiongraph":
-            case "hwcloud-smn":
             case "iec60870-client":
             case "iec60870-server":
             case "ignite-cache":

Reply via email to