From f8777c483815333d9b737e6a7426d267ddf6db50 Mon Sep 17 00:00:00 2001 From: yvesgoeleven Date: Tue, 27 Sep 2011 15:06:31 +0200 Subject: [PATCH] First instance of role will now listen to original queue when queueperinstance is configured --- .../IndividualQueueConfigurationSource.cs | 15 ++++++++++----- .../IndividualQueueConfigurationSource.cs | 13 +++++++++---- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/azure/Queueing/NServiceBus.Unicast.Queuing.AppFabric.Config/IndividualQueueConfigurationSource.cs b/src/azure/Queueing/NServiceBus.Unicast.Queuing.AppFabric.Config/IndividualQueueConfigurationSource.cs index 5fd083dcc68..643b68288b5 100644 --- a/src/azure/Queueing/NServiceBus.Unicast.Queuing.AppFabric.Config/IndividualQueueConfigurationSource.cs +++ b/src/azure/Queueing/NServiceBus.Unicast.Queuing.AppFabric.Config/IndividualQueueConfigurationSource.cs @@ -15,13 +15,17 @@ public IndividualQueueConfigurationSource(IConfigurationSource innerSource) T IConfigurationSource.GetConfiguration() { var config = innerSource.GetConfiguration(); + var index = 0; + if (RoleEnvironment.IsAvailable) + index = ParseIndexFrom(RoleEnvironment.CurrentRoleInstance.Id); var unicastBusConfig = config as UnicastBusConfig; if (unicastBusConfig != null && unicastBusConfig.LocalAddress != null && RoleEnvironment.IsAvailable) { - var individualQueueName = ParseQueueNameFrom(unicastBusConfig.LocalAddress) - + "-" - + ParseIndexFrom(RoleEnvironment.CurrentRoleInstance.Id); + var individualQueueName = ParseQueueNameFrom(unicastBusConfig.LocalAddress) + + (index > 0 ? "-" : "") + + (index > 0 ? index.ToString() : ""); + if (unicastBusConfig.LocalAddress.Contains("@")) individualQueueName += "@" + ParseMachineNameFrom(unicastBusConfig.LocalAddress); @@ -32,8 +36,9 @@ T IConfigurationSource.GetConfiguration() if (msmqTransportConfig != null && msmqTransportConfig.InputQueue != null && RoleEnvironment.IsAvailable) { var individualQueueName = ParseQueueNameFrom(msmqTransportConfig.InputQueue) - + "-" - + ParseIndexFrom(RoleEnvironment.CurrentRoleInstance.Id); + + (index > 0 ? "-" : "") + + (index > 0 ? index.ToString() : ""); + if (msmqTransportConfig.InputQueue.Contains("@")) individualQueueName += "@" + ParseMachineNameFrom(msmqTransportConfig.InputQueue); diff --git a/src/azure/Queueing/NServiceBus.Unicast.Queuing.Azure.Config/IndividualQueueConfigurationSource.cs b/src/azure/Queueing/NServiceBus.Unicast.Queuing.Azure.Config/IndividualQueueConfigurationSource.cs index 5fd083dcc68..4d3690c572f 100644 --- a/src/azure/Queueing/NServiceBus.Unicast.Queuing.Azure.Config/IndividualQueueConfigurationSource.cs +++ b/src/azure/Queueing/NServiceBus.Unicast.Queuing.Azure.Config/IndividualQueueConfigurationSource.cs @@ -15,13 +15,17 @@ public IndividualQueueConfigurationSource(IConfigurationSource innerSource) T IConfigurationSource.GetConfiguration() { var config = innerSource.GetConfiguration(); + var index = 0; + if (RoleEnvironment.IsAvailable) + index = ParseIndexFrom(RoleEnvironment.CurrentRoleInstance.Id); var unicastBusConfig = config as UnicastBusConfig; if (unicastBusConfig != null && unicastBusConfig.LocalAddress != null && RoleEnvironment.IsAvailable) { var individualQueueName = ParseQueueNameFrom(unicastBusConfig.LocalAddress) - + "-" - + ParseIndexFrom(RoleEnvironment.CurrentRoleInstance.Id); + + (index > 0 ? "-" : "") + + (index > 0 ? index.ToString() : ""); + if (unicastBusConfig.LocalAddress.Contains("@")) individualQueueName += "@" + ParseMachineNameFrom(unicastBusConfig.LocalAddress); @@ -32,8 +36,9 @@ T IConfigurationSource.GetConfiguration() if (msmqTransportConfig != null && msmqTransportConfig.InputQueue != null && RoleEnvironment.IsAvailable) { var individualQueueName = ParseQueueNameFrom(msmqTransportConfig.InputQueue) - + "-" - + ParseIndexFrom(RoleEnvironment.CurrentRoleInstance.Id); + + (index > 0 ? "-" : "") + + (index > 0 ? index.ToString() : ""); + if (msmqTransportConfig.InputQueue.Contains("@")) individualQueueName += "@" + ParseMachineNameFrom(msmqTransportConfig.InputQueue);