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®ion=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®ion=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&authKey=*********&secretKey=********&projectId=9071a38e7f6a4ba7b7bcbeb7d4ea6efc&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®ion=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®ion=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: **/Bar* To exclude all routes form a specific package use: com/mycompany/bar/* 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: **/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":