rebus-org / Rebus.AzureServiceBus

:bus: Azure Service Bus transport for Rebus
https://mookid.dk/category/rebus
Other
33 stars 20 forks source link

Please provide a compat for V7 Naming Breaking change #21

Closed Rzpeg closed 5 years ago

Rzpeg commented 5 years ago

Hey,

We have ~20 queues and ~300 topics, and it will not be possible to update all the endpoints in the same time. Would it be possible to provide a configuration option in the final v7 release to use the "legacy" v6 naming model? Something like this:

.Transport(t => t.UseAzureServiceBus("connection", "worker.input")
                        .AutomaticallyRenewPeekLock()
                        .UseLegacyNaming()
)
mookid8000 commented 5 years ago

Great idea!

mookid8000 commented 5 years ago

Legacy naming can now be had with v7 by going

Configure.With(...)
    .Transport(t => t.UseAzureServiceBus(conn, "queue-name").UseLegacyNaming())
    .Start();

for normal Rebus endpoints, and

Configure.With(...)
    .Transport(t => t.UseAzureServiceBusAsOneWayClient(conn).UseLegacyNaming())
    .Start();

for one-way clients.

It's available in Rebus.AzureServiceBus 7.0.0-a04, which is out on Nuget.org now

Thanks for your suggestion 👍

Rzpeg commented 5 years ago

Amazing! Thanks! 👍

Rzpeg commented 5 years ago

It doesn't work. v6 my input queue is tester.input, and it works fine. v7-a04 with .UseLegacyNaming() throws on start with the following error:

ArgumentException: The string 'tester_input' is not a valid Azure Service Bus queue name! ASB queue names must consist of only letters (a-z and A-Z), digits (0-9), hyphens (-), periods (.), and underscores (_), and possibly multiple segments of these separated by slash (/).

Rebus tries to rename the input queue name for some reason :)

mookid8000 commented 5 years ago

WTF?! will investigate immediately

mookid8000 commented 5 years ago

This issues has been fixed in Rebus.AzureServiceBus 7.0.0-a05 😄

Rzpeg commented 5 years ago

Thanks! Will test it later next week! 👍