@@ -9,7 +9,6 @@ namespace ServiceControl.Transports.RabbitMQ;
99using System . Net . Http ;
1010using System . Net . Http . Json ;
1111using System . Runtime . CompilerServices ;
12- using System . Text ;
1312using System . Text . Json ;
1413using System . Text . Json . Nodes ;
1514using System . Threading ;
@@ -31,7 +30,6 @@ public class RabbitMQQuery : BrokerThroughputQuery
3130 readonly ILogger < RabbitMQQuery > logger ;
3231 readonly TimeProvider timeProvider ;
3332 readonly ConnectionConfiguration connectionConfiguration ;
34- readonly TransportSettings transportSettings ;
3533 readonly RabbitMQTransport rabbitMQTransport ;
3634
3735 public RabbitMQQuery ( ILogger < RabbitMQQuery > logger ,
@@ -41,10 +39,10 @@ public RabbitMQQuery(ILogger<RabbitMQQuery> logger,
4139 {
4240 this . logger = logger ;
4341 this . timeProvider = timeProvider ;
44- this . transportSettings = transportSettings ;
4542 if ( transportCustomization is IRabbitMQTransportExtensions rabbitMQTransportCustomization )
4643 {
4744 rabbitMQTransport = rabbitMQTransportCustomization . GetTransport ( ) ;
45+ _ = rabbitMQTransport ;
4846 }
4947 else
5048 {
@@ -56,27 +54,25 @@ public RabbitMQQuery(ILogger<RabbitMQQuery> logger,
5654
5755 protected override void InitializeCore ( ReadOnlyDictionary < string , string > settings )
5856 {
59- var mangementApiUrl = GetManagementApiUrl ( ) ;
60-
6157 // The licensing component configurations take precedence over the management API connection string configuration options
6258 // https://docs.particular.net/servicecontrol/servicecontrol-instances/configuration#usage-reporting-when-using-the-rabbitmq-transport
63- var userName = GetSettingsValue ( settings , RabbitMQSettings . UserName , mangementApiUrl . UserName ) ;
64- var password = GetSettingsValue ( settings , RabbitMQSettings . Password , mangementApiUrl . Password ) ;
65- var apiUrl = GetSettingsValue ( settings , RabbitMQSettings . API , mangementApiUrl . Uri . AbsoluteUri ) ;
59+ var userName = GetSettingsValue ( settings , RabbitMQSettings . UserName , rabbitMQTransport . ManagementApiConfiguration . UserName ) ;
60+ var password = GetSettingsValue ( settings , RabbitMQSettings . Password , rabbitMQTransport . ManagementApiConfiguration . Password ) ;
61+ var apiUrl = GetSettingsValue ( settings , RabbitMQSettings . API , rabbitMQTransport . ManagementApiConfiguration . Url ) ;
6662
67- if ( userName != mangementApiUrl . UserName )
63+ if ( userName != rabbitMQTransport . ManagementApiConfiguration . UserName )
6864 {
69- _ = Diagnostics . AppendLine ( $ "UserName in settings is different from Management API URL: { userName } != { mangementApiUrl . UserName } ") ;
65+ _ = Diagnostics . AppendLine ( $ "UserName in settings is different from Management API URL: { userName } != { rabbitMQTransport . ManagementApiConfiguration . UserName } ") ;
7066 }
7167
72- if ( password != mangementApiUrl . Password )
68+ if ( password != rabbitMQTransport . ManagementApiConfiguration . Password )
7369 {
7470 _ = Diagnostics . AppendLine ( $ "Password in settings is different from Management API URL.") ;
7571 }
7672
77- if ( apiUrl != mangementApiUrl . Uri . AbsoluteUri )
73+ if ( apiUrl != rabbitMQTransport . ManagementApiConfiguration . Url )
7874 {
79- _ = Diagnostics . AppendLine ( $ "API URL in settings is different from Management API URL: { apiUrl } != { mangementApiUrl . Uri . AbsoluteUri } ") ;
75+ _ = Diagnostics . AppendLine ( $ "API URL in settings is different from Management API URL: { apiUrl } != { rabbitMQTransport . ManagementApiConfiguration . Url } ") ;
8076 }
8177
8278 if ( ! Uri . TryCreate ( apiUrl , UriKind . Absolute , out _ ) )
@@ -118,45 +114,6 @@ string GetSettingsValue(ReadOnlyDictionary<string, string> settings, string key,
118114 return value ;
119115 }
120116
121- UriBuilder GetManagementApiUrl ( )
122- {
123- var dictionary = ConnectionConfiguration . ParseNServiceBusConnectionString ( transportSettings . ConnectionString , new StringBuilder ( ) ) ;
124- UriBuilder uriBuilder ;
125-
126- var managementApiUrl = GetValue ( dictionary , "ManagementApiUrl" , "" ) ;
127-
128- if ( string . IsNullOrEmpty ( managementApiUrl ) )
129- {
130- _ = Diagnostics . AppendLine ( "ManagementApiUrl is empty. Setting credentials from the connectionString used by the instance." ) ;
131- uriBuilder = new UriBuilder ( )
132- {
133- Scheme = connectionConfiguration . UseTls ? "https" : "http" ,
134- Host = connectionConfiguration . Host ,
135- } ;
136- }
137- else
138- {
139- uriBuilder = new UriBuilder ( managementApiUrl ) ;
140- }
141-
142- uriBuilder . UserName = string . IsNullOrEmpty ( uriBuilder . UserName ) ? connectionConfiguration . UserName : uriBuilder . UserName ;
143- uriBuilder . Password = string . IsNullOrEmpty ( uriBuilder . Password ) ? connectionConfiguration . Password : uriBuilder . Password ;
144-
145- // Check if port was defined in the connection string or if it's the default value from UriBuilder
146- var isPortProvided = uriBuilder . Port != - 1
147- && ( ! ( ( uriBuilder . Port == 80 || uriBuilder . Port == 443 )
148- && ! managementApiUrl . Contains ( $ ":{ uriBuilder . Port } ") ) ) ;
149-
150- uriBuilder . Port = isPortProvided ? uriBuilder . Port : uriBuilder . Scheme == "https" ? 15671 : 15672 ;
151-
152- return uriBuilder ;
153- }
154-
155- static string GetValue ( Dictionary < string , string > dictionary , string key , string defaultValue )
156- {
157- return dictionary . TryGetValue ( key , out var value ) ? value : defaultValue ;
158- }
159-
160117 protected virtual HttpClient CreateHttpClient ( NetworkCredential defaultCredential , string apiUrl ) =>
161118 new ( new SocketsHttpHandler
162119 {
0 commit comments