@@ -24,36 +24,41 @@ protected override void CustomizeTransportForMonitoringEndpoint(EndpointConfigur
2424 protected override AzureServiceBusTransport CreateTransport ( TransportSettings transportSettings , TransportTransactionMode preferredTransactionMode = TransportTransactionMode . ReceiveOnly )
2525 {
2626 var connectionSettings = ConnectionStringParser . Parse ( transportSettings . ConnectionString ) ;
27- TopologyOptions topologyOptions ;
27+ TopicTopology selectedTopology ;
2828
2929 var serviceBusRootNamespace = new SettingsRootNamespace ( "ServiceControl.Transport.ASBS" ) ;
3030 if ( SettingsReader . TryRead < string > ( serviceBusRootNamespace , "Topology" , out var topologyJson ) )
3131 {
32- topologyOptions = JsonSerializer . Deserialize < TopologyOptions > ( topologyJson ) ;
32+ //Load topology from json
33+ selectedTopology = TopicTopology . FromOptions ( JsonSerializer . Deserialize < TopologyOptions > ( topologyJson ) ) ;
3334 }
34- else
35+ else if ( connectionSettings . TopicName != null )
3536 {
36- var options = new MigrationTopologyOptions
37+ //Bundle name provided -> use migration topology
38+ selectedTopology = TopicTopology . FromOptions ( new MigrationTopologyOptions
3739 {
3840 TopicToPublishTo = connectionSettings . TopicName ?? DefaultSingleTopic ,
3941 TopicToSubscribeOn = connectionSettings . TopicName ?? DefaultSingleTopic ,
40- PublishedEventToTopicsMap =
41- {
42- [ "ServiceControl.Contracts.CustomCheckFailed" ] = "ServiceControl.Contracts.CustomCheckFailed" ,
43- [ "ServiceControl.Contracts.CustomCheckSucceeded" ] = "ServiceControl.Contracts.CustomCheckSucceeded" ,
44- [ "ServiceControl.Contracts.HeartbeatRestored" ] = "ServiceControl.Contracts.HeartbeatRestored" ,
45- [ "ServiceControl.Contracts.HeartbeatStopped" ] = "ServiceControl.Contracts.HeartbeatStopped" ,
46- [ "ServiceControl.Contracts.FailedMessagesArchived" ] = "ServiceControl.Contracts.FailedMessagesArchived" ,
47- [ "ServiceControl.Contracts.FailedMessagesUnArchived" ] = "ServiceControl.Contracts.FailedMessagesUnArchived" ,
48- [ "ServiceControl.Contracts.MessageFailed" ] = "ServiceControl.Contracts.MessageFailed" ,
49- [ "ServiceControl.Contracts.MessageFailureResolvedByRetry" ] = "ServiceControl.Contracts.MessageFailureResolvedByRetry" ,
50- [ "ServiceControl.Contracts.MessageFailureResolvedManually" ] = "ServiceControl.Contracts.MessageFailureResolvedManually"
51- }
52- } ;
53- topologyOptions = options ;
42+ EventsToMigrateMap = [
43+ "ServiceControl.Contracts.CustomCheckFailed" ,
44+ "ServiceControl.Contracts.CustomCheckSucceeded" ,
45+ "ServiceControl.Contracts.HeartbeatRestored" ,
46+ "ServiceControl.Contracts.HeartbeatStopped" ,
47+ "ServiceControl.Contracts.FailedMessagesArchived" ,
48+ "ServiceControl.Contracts.FailedMessagesUnArchived" ,
49+ "ServiceControl.Contracts.MessageFailed" ,
50+ "ServiceControl.Contracts.MessageFailureResolvedByRetry" ,
51+ "ServiceControl.Contracts.MessageFailureResolvedManually"
52+ ]
53+ } ) ;
54+ }
55+ else
56+ {
57+ //Default to topic-per-event topology
58+ selectedTopology = TopicTopology . Default ;
5459 }
5560
56- var transport = connectionSettings . AuthenticationMethod . CreateTransportDefinition ( connectionSettings , TopicTopology . FromOptions ( topologyOptions ) ) ;
61+ var transport = connectionSettings . AuthenticationMethod . CreateTransportDefinition ( connectionSettings , selectedTopology ) ;
5762 transport . UseWebSockets = connectionSettings . UseWebSockets ;
5863 transport . EnablePartitioning = connectionSettings . EnablePartitioning ;
5964
0 commit comments