On Mon, Mar 28, 2022 at 11:28 AM 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. >
+1 Also it would be good to have a JIRA ticket about such a change the next time, so we can track this - end users can see the JIRA changes. There may be that the subscription name must be checked for != null in the code to report a better failure etc. > 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 > > -- Claus Ibsen ----------------- http://davsclaus.com @davsclaus Camel in Action 2: https://www.manning.com/ibsen2