Thanks for your feedback. I verified it for queue and indeed subscriptionName is not required. It’s only required for topics.
I have reverted the commit. Babak > On 28 Mar 2022, at 11:28, Andrea Cosentino <anco...@gmail.com> wrote: > > Also, If you use a queue and not a topic, the subscriptionName is not > mandatory. > > I think we should revert this. > > Il giorno lun 28 mar 2022 alle ore 08:59 Claus Ibsen <claus.ib...@gmail.com> > ha scritto: > >> Hi Babak >> >> Did you consider that the producer may not require this parameter? And >> if so then it cannot be marked as required. >> You can only add this in its documentation, and have some code that >> checks when creating the consumer that the option is present. >> >> It's a limitation with @UriParam that we cannot mark things as >> required only for consumer vs producer. >> >> On Mon, Mar 28, 2022 at 1:07 AM <bvah...@apache.org> wrote: >>> >>> This is an automated email from the ASF dual-hosted git repository. >>> >>> bvahdat pushed a commit to branch azure-servicebus-subscriptionName >>> in repository https://gitbox.apache.org/repos/asf/camel.git >>> >>> commit 334f1c3e8d3aeef287548f168379e7c62da975b6 >>> Author: Babak Vahdat <bvah...@apache.org> >>> AuthorDate: Mon Mar 28 01:04:57 2022 +0200 >>> >>> azure-servicebus subscriptionName is required by it's consumer >>> --- >>> .../org/apache/camel/catalog/components/azure-servicebus.json | >> 4 ++-- >>> .../org/apache/camel/component/azure/servicebus/azure-servicebus.json | >> 4 ++-- >>> .../camel/component/azure/servicebus/ServiceBusConfiguration.java | >> 1 + >>> .../camel/builder/endpoint/dsl/ServiceBusEndpointBuilderFactory.java | >> 1 + >>> 4 files changed, 6 insertions(+), 4 deletions(-) >>> >>> diff --git >> a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/azure-servicebus.json >> b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/azure-servicebus.json >>> index bb91029..a20b0e5 100644 >>> --- >> a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/azure-servicebus.json >>> +++ >> b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/azure-servicebus.json >>> @@ -37,7 +37,7 @@ >>> "receiverAsyncClient": { "kind": "property", "displayName": >> "Receiver Async Client", "group": "consumer", "label": "consumer", >> "required": false, "type": "object", "javaType": >> "com.azure.messaging.servicebus.ServiceBusReceiverAsyncClient", >> "deprecated": false, "deprecationNote": "", "autowired": true, "secret": >> false, "configurationClass": >> "org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", >> "configurationField": "configuration", "description": "Sets the receiverAsy >> [...] >>> "serviceBusReceiveMode": { "kind": "property", "displayName": >> "Service Bus Receive Mode", "group": "consumer", "label": "consumer", >> "required": false, "type": "object", "javaType": >> "com.azure.messaging.servicebus.models.ServiceBusReceiveMode", "enum": [ >> "PEEK_LOCK", "RECEIVE_AND_DELETE" ], "deprecated": false, "autowired": >> false, "secret": false, "defaultValue": "PEEK_LOCK", "configurationClass": >> "org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", >> "configurationFie [...] >>> "subQueue": { "kind": "property", "displayName": "Sub Queue", >> "group": "consumer", "label": "consumer", "required": false, "type": >> "object", "javaType": "com.azure.messaging.servicebus.models.SubQueue", >> "enum": [ "NONE", "DEAD_LETTER_QUEUE", "TRANSFER_DEAD_LETTER_QUEUE" ], >> "deprecated": false, "autowired": false, "secret": false, >> "configurationClass": >> "org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", >> "configurationField": "configuration", "description": "Sets the [...] >>> - "subscriptionName": { "kind": "property", "displayName": >> "Subscription Name", "group": "consumer", "label": "consumer", "required": >> false, "type": "string", "javaType": "java.lang.String", "deprecated": >> false, "autowired": false, "secret": false, "configurationClass": >> "org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", >> "configurationField": "configuration", "description": "Sets the name of the >> subscription in the topic to listen to. topicOrQueueName and serviceBusT >> [...] >>> + "subscriptionName": { "kind": "property", "displayName": >> "Subscription Name", "group": "consumer", "label": "consumer", "required": >> true, "type": "string", "javaType": "java.lang.String", "deprecated": >> false, "deprecationNote": "", "autowired": false, "secret": false, >> "configurationClass": >> "org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", >> "configurationField": "configuration", "description": "Sets the name of the >> subscription in the topic to listen to. topicOrQue [...] >>> "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 [...] >>> "producerOperation": { "kind": "property", "displayName": "Producer >> Operation", "group": "producer", "label": "producer", "required": false, >> "type": "object", "javaType": >> "org.apache.camel.component.azure.servicebus.ServiceBusProducerOperationDefinition", >> "enum": [ "sendMessages", "scheduleMessages" ], "deprecated": false, >> "autowired": false, "secret": false, "defaultValue": "sendMessages", >> "configurationClass": >> "org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", " >> [...] >>> "scheduledEnqueueTime": { "kind": "property", "displayName": >> "Scheduled Enqueue Time", "group": "producer", "label": "producer", >> "required": false, "type": "object", "javaType": >> "java.time.OffsetDateTime", "deprecated": false, "autowired": false, >> "secret": false, "configurationClass": >> "org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", >> "configurationField": "configuration", "description": "Sets OffsetDateTime >> at which the message should appear in the Service Bus qu [...] >>> @@ -91,7 +91,7 @@ >>> "receiverAsyncClient": { "kind": "parameter", "displayName": >> "Receiver Async Client", "group": "consumer", "label": "consumer", >> "required": false, "type": "object", "javaType": >> "com.azure.messaging.servicebus.ServiceBusReceiverAsyncClient", >> "deprecated": false, "deprecationNote": "", "autowired": true, "secret": >> false, "configurationClass": >> "org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", >> "configurationField": "configuration", "description": "Sets the receiverAs >> [...] >>> "serviceBusReceiveMode": { "kind": "parameter", "displayName": >> "Service Bus Receive Mode", "group": "consumer", "label": "consumer", >> "required": false, "type": "object", "javaType": >> "com.azure.messaging.servicebus.models.ServiceBusReceiveMode", "enum": [ >> "PEEK_LOCK", "RECEIVE_AND_DELETE" ], "deprecated": false, "autowired": >> false, "secret": false, "defaultValue": "PEEK_LOCK", "configurationClass": >> "org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", >> "configurationFi [...] >>> "subQueue": { "kind": "parameter", "displayName": "Sub Queue", >> "group": "consumer", "label": "consumer", "required": false, "type": >> "object", "javaType": "com.azure.messaging.servicebus.models.SubQueue", >> "enum": [ "NONE", "DEAD_LETTER_QUEUE", "TRANSFER_DEAD_LETTER_QUEUE" ], >> "deprecated": false, "autowired": false, "secret": false, >> "configurationClass": >> "org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", >> "configurationField": "configuration", "description": "Sets th [...] >>> - "subscriptionName": { "kind": "parameter", "displayName": >> "Subscription Name", "group": "consumer", "label": "consumer", "required": >> false, "type": "string", "javaType": "java.lang.String", "deprecated": >> false, "autowired": false, "secret": false, "configurationClass": >> "org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", >> "configurationField": "configuration", "description": "Sets the name of the >> subscription in the topic to listen to. topicOrQueueName and serviceBus >> [...] >>> + "subscriptionName": { "kind": "parameter", "displayName": >> "Subscription Name", "group": "consumer", "label": "consumer", "required": >> true, "type": "string", "javaType": "java.lang.String", "deprecated": >> false, "deprecationNote": "", "autowired": false, "secret": false, >> "configurationClass": >> "org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", >> "configurationField": "configuration", "description": "Sets the name of the >> subscription in the topic to listen to. topicOrQu [...] >>> "exceptionHandler": { "kind": "parameter", "displayName": >> "Exception Handler", "group": "consumer (advanced)", "label": >> "consumer,advanced", "required": false, "type": "object", "javaType": >> "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", >> "deprecated": false, "autowired": false, "secret": false, "description": >> "To let the consumer use a custom ExceptionHandler. Notice if the option >> bridgeErrorHandler is enabled then this option is not in use. By default >> the con [...] >>> "exchangePattern": { "kind": "parameter", "displayName": "Exchange >> Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", >> "required": false, "type": "object", "javaType": >> "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", >> "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": >> false, "description": "Sets the exchange pattern when the consumer creates >> an exchange." }, >>> "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 [...] >>> diff --git >> a/components/camel-azure/camel-azure-servicebus/src/generated/resources/org/apache/camel/component/azure/servicebus/azure-servicebus.json >> b/components/camel-azure/camel-azure-servicebus/src/generated/resources/org/apache/camel/component/azure/servicebus/azure-servicebus.json >>> index bb91029..a20b0e5 100644 >>> --- >> a/components/camel-azure/camel-azure-servicebus/src/generated/resources/org/apache/camel/component/azure/servicebus/azure-servicebus.json >>> +++ >> b/components/camel-azure/camel-azure-servicebus/src/generated/resources/org/apache/camel/component/azure/servicebus/azure-servicebus.json >>> @@ -37,7 +37,7 @@ >>> "receiverAsyncClient": { "kind": "property", "displayName": >> "Receiver Async Client", "group": "consumer", "label": "consumer", >> "required": false, "type": "object", "javaType": >> "com.azure.messaging.servicebus.ServiceBusReceiverAsyncClient", >> "deprecated": false, "deprecationNote": "", "autowired": true, "secret": >> false, "configurationClass": >> "org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", >> "configurationField": "configuration", "description": "Sets the receiverAsy >> [...] >>> "serviceBusReceiveMode": { "kind": "property", "displayName": >> "Service Bus Receive Mode", "group": "consumer", "label": "consumer", >> "required": false, "type": "object", "javaType": >> "com.azure.messaging.servicebus.models.ServiceBusReceiveMode", "enum": [ >> "PEEK_LOCK", "RECEIVE_AND_DELETE" ], "deprecated": false, "autowired": >> false, "secret": false, "defaultValue": "PEEK_LOCK", "configurationClass": >> "org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", >> "configurationFie [...] >>> "subQueue": { "kind": "property", "displayName": "Sub Queue", >> "group": "consumer", "label": "consumer", "required": false, "type": >> "object", "javaType": "com.azure.messaging.servicebus.models.SubQueue", >> "enum": [ "NONE", "DEAD_LETTER_QUEUE", "TRANSFER_DEAD_LETTER_QUEUE" ], >> "deprecated": false, "autowired": false, "secret": false, >> "configurationClass": >> "org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", >> "configurationField": "configuration", "description": "Sets the [...] >>> - "subscriptionName": { "kind": "property", "displayName": >> "Subscription Name", "group": "consumer", "label": "consumer", "required": >> false, "type": "string", "javaType": "java.lang.String", "deprecated": >> false, "autowired": false, "secret": false, "configurationClass": >> "org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", >> "configurationField": "configuration", "description": "Sets the name of the >> subscription in the topic to listen to. topicOrQueueName and serviceBusT >> [...] >>> + "subscriptionName": { "kind": "property", "displayName": >> "Subscription Name", "group": "consumer", "label": "consumer", "required": >> true, "type": "string", "javaType": "java.lang.String", "deprecated": >> false, "deprecationNote": "", "autowired": false, "secret": false, >> "configurationClass": >> "org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", >> "configurationField": "configuration", "description": "Sets the name of the >> subscription in the topic to listen to. topicOrQue [...] >>> "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 [...] >>> "producerOperation": { "kind": "property", "displayName": "Producer >> Operation", "group": "producer", "label": "producer", "required": false, >> "type": "object", "javaType": >> "org.apache.camel.component.azure.servicebus.ServiceBusProducerOperationDefinition", >> "enum": [ "sendMessages", "scheduleMessages" ], "deprecated": false, >> "autowired": false, "secret": false, "defaultValue": "sendMessages", >> "configurationClass": >> "org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", " >> [...] >>> "scheduledEnqueueTime": { "kind": "property", "displayName": >> "Scheduled Enqueue Time", "group": "producer", "label": "producer", >> "required": false, "type": "object", "javaType": >> "java.time.OffsetDateTime", "deprecated": false, "autowired": false, >> "secret": false, "configurationClass": >> "org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", >> "configurationField": "configuration", "description": "Sets OffsetDateTime >> at which the message should appear in the Service Bus qu [...] >>> @@ -91,7 +91,7 @@ >>> "receiverAsyncClient": { "kind": "parameter", "displayName": >> "Receiver Async Client", "group": "consumer", "label": "consumer", >> "required": false, "type": "object", "javaType": >> "com.azure.messaging.servicebus.ServiceBusReceiverAsyncClient", >> "deprecated": false, "deprecationNote": "", "autowired": true, "secret": >> false, "configurationClass": >> "org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", >> "configurationField": "configuration", "description": "Sets the receiverAs >> [...] >>> "serviceBusReceiveMode": { "kind": "parameter", "displayName": >> "Service Bus Receive Mode", "group": "consumer", "label": "consumer", >> "required": false, "type": "object", "javaType": >> "com.azure.messaging.servicebus.models.ServiceBusReceiveMode", "enum": [ >> "PEEK_LOCK", "RECEIVE_AND_DELETE" ], "deprecated": false, "autowired": >> false, "secret": false, "defaultValue": "PEEK_LOCK", "configurationClass": >> "org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", >> "configurationFi [...] >>> "subQueue": { "kind": "parameter", "displayName": "Sub Queue", >> "group": "consumer", "label": "consumer", "required": false, "type": >> "object", "javaType": "com.azure.messaging.servicebus.models.SubQueue", >> "enum": [ "NONE", "DEAD_LETTER_QUEUE", "TRANSFER_DEAD_LETTER_QUEUE" ], >> "deprecated": false, "autowired": false, "secret": false, >> "configurationClass": >> "org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", >> "configurationField": "configuration", "description": "Sets th [...] >>> - "subscriptionName": { "kind": "parameter", "displayName": >> "Subscription Name", "group": "consumer", "label": "consumer", "required": >> false, "type": "string", "javaType": "java.lang.String", "deprecated": >> false, "autowired": false, "secret": false, "configurationClass": >> "org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", >> "configurationField": "configuration", "description": "Sets the name of the >> subscription in the topic to listen to. topicOrQueueName and serviceBus >> [...] >>> + "subscriptionName": { "kind": "parameter", "displayName": >> "Subscription Name", "group": "consumer", "label": "consumer", "required": >> true, "type": "string", "javaType": "java.lang.String", "deprecated": >> false, "deprecationNote": "", "autowired": false, "secret": false, >> "configurationClass": >> "org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", >> "configurationField": "configuration", "description": "Sets the name of the >> subscription in the topic to listen to. topicOrQu [...] >>> "exceptionHandler": { "kind": "parameter", "displayName": >> "Exception Handler", "group": "consumer (advanced)", "label": >> "consumer,advanced", "required": false, "type": "object", "javaType": >> "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", >> "deprecated": false, "autowired": false, "secret": false, "description": >> "To let the consumer use a custom ExceptionHandler. Notice if the option >> bridgeErrorHandler is enabled then this option is not in use. By default >> the con [...] >>> "exchangePattern": { "kind": "parameter", "displayName": "Exchange >> Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", >> "required": false, "type": "object", "javaType": >> "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", >> "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": >> false, "description": "Sets the exchange pattern when the consumer creates >> an exchange." }, >>> "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 [...] >>> diff --git >> a/components/camel-azure/camel-azure-servicebus/src/main/java/org/apache/camel/component/azure/servicebus/ServiceBusConfiguration.java >> b/components/camel-azure/camel-azure-servicebus/src/main/java/org/apache/camel/component/azure/servicebus/ServiceBusConfiguration.java >>> index 94e488c..5d75290 100644 >>> --- >> a/components/camel-azure/camel-azure-servicebus/src/main/java/org/apache/camel/component/azure/servicebus/ServiceBusConfiguration.java >>> +++ >> b/components/camel-azure/camel-azure-servicebus/src/main/java/org/apache/camel/component/azure/servicebus/ServiceBusConfiguration.java >>> @@ -64,6 +64,7 @@ public class ServiceBusConfiguration implements >> Cloneable { >>> @Metadata(autowired = true) >>> private ServiceBusReceiverAsyncClient receiverAsyncClient; >>> @UriParam(label = "consumer") >>> + @Metadata(required = true) >>> private String subscriptionName; >>> @UriParam(label = "consumer") >>> private boolean disableAutoComplete; >>> diff --git >> a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ServiceBusEndpointBuilderFactory.java >> b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ServiceBusEndpointBuilderFactory.java >>> index 6fd7564..7c5794c 100644 >>> --- >> a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ServiceBusEndpointBuilderFactory.java >>> +++ >> b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ServiceBusEndpointBuilderFactory.java >>> @@ -572,6 +572,7 @@ public interface ServiceBusEndpointBuilderFactory { >>> * >>> * The option is a: <code>java.lang.String</code> >> type. >>> * >>> + * Required: true >>> * Group: consumer >>> * >>> * @param subscriptionName the value to set >> >> >> >> -- >> Claus Ibsen >> ----------------- >> http://davsclaus.com @davsclaus >> Camel in Action 2: https://www.manning.com/ibsen2 >>