// Token: 0x0600001A RID: 26 RVA: 0x00002B88 File Offset: 0x00000D88 private void ConstructComponentLoadTree() { TransportAppConfig.IsMemberOfResolverConfiguration transportIsMemberOfResolverConfig = Components.TransportAppConfig.TransportIsMemberOfResolverConfig; IsMemberOfResolverADAdapter <RoutingAddress> .RoutingAddressResolver adAdapter = new IsMemberOfResolverADAdapter <RoutingAddress> .RoutingAddressResolver(transportIsMemberOfResolverConfig.DisableDynamicGroups); Components.TransportIsMemberOfResolverComponent = new IsMemberOfResolverComponent <RoutingAddress>("Transport", transportIsMemberOfResolverConfig, adAdapter); Components.StoreDriverSubmission = MailboxTransportSubmissionService.storeDriverSubmission; Components.StoreDriverSubmission.Start(false, ServiceState.Active); Components.DsnGenerator = new DsnGenerator(); Components.AgentComponent = new AgentComponent(); Components.RoutingComponent = new RoutingComponent(); Components.EnhancedDns = new EnhancedDns(); Components.UnhealthyTargetFilterComponent = new UnhealthyTargetFilterComponent(); Components.ProxyHubSelectorComponent = new ProxyHubSelectorComponent(); Components.CertificateComponent = new CertificateComponent(); Components.Configuration = new ConfigurationComponent(ProcessTransportRole.MailboxSubmission); Components.MessageThrottlingComponent = new MessageThrottlingComponent(); Components.ResourceManagerComponent = new ResourceManagerComponent(ResourceManagerResources.PrivateBytes | ResourceManagerResources.TotalBytes); Components.SmtpInComponent = new SmtpInComponent(false); Components.SmtpOutConnectionHandler = new SmtpOutConnectionHandler(); Components.SystemCheckComponent = new SystemCheckComponent(); Components.TransportIsMemberOfResolverComponent = new IsMemberOfResolverComponent <RoutingAddress>("Transport", transportIsMemberOfResolverConfig, adAdapter); Components.TransportMailItemLoader item = new Components.TransportMailItemLoader(); Components.Logging = new Components.LoggingComponent(true, false, false, false, false, "MSGTRKMS"); StorageFactory.SchemaToUse = StorageFactory.Schema.NullSchema; Components.MessagingDatabase = new MessagingDatabaseComponent(); Components.PerfCountersLoader perfCountersLoader = new Components.PerfCountersLoader(false); Components.PerfCountersLoaderComponent = perfCountersLoader; Components.ResourceThrottlingComponent = new ResourceThrottlingComponent(new ResourceMeteringConfig(8000, null), new ResourceThrottlingConfig(null), new ComponentsWrapper(), Components.MessagingDatabase, null, Components.Configuration, ResourceManagerResources.PrivateBytes | ResourceManagerResources.TotalBytes, ResourceObservingComponents.EnhancedDns | ResourceObservingComponents.IsMemberOfResolver | ResourceObservingComponents.SmtpIn); ParallelTransportComponent parallelTransportComponent = new ParallelTransportComponent("Parallel Components"); parallelTransportComponent.TransportComponents.Add(item); parallelTransportComponent.TransportComponents.Add(Components.TransportIsMemberOfResolverComponent); parallelTransportComponent.TransportComponents.Add(perfCountersLoader); parallelTransportComponent.TransportComponents.Add(Components.Logging); parallelTransportComponent.TransportComponents.Add(new Components.MicrosoftExchangeRecipientLoader()); parallelTransportComponent.TransportComponents.Add(Components.DsnGenerator); parallelTransportComponent.TransportComponents.Add(Components.MessageThrottlingComponent); parallelTransportComponent.TransportComponents.Add(Components.StoreDriverSubmission); SequentialTransportComponent sequentialTransportComponent = new SequentialTransportComponent("Database and dependents"); sequentialTransportComponent.TransportComponents.Add(Components.ResourceManagerComponent); ParallelTransportComponent parallelTransportComponent2 = new ParallelTransportComponent("Configuration Certificate and Database components"); parallelTransportComponent2.TransportComponents.Add(sequentialTransportComponent); parallelTransportComponent2.TransportComponents.Add(Components.CertificateComponent); SequentialTransportComponent sequentialTransportComponent2 = new SequentialTransportComponent("Root Component"); sequentialTransportComponent2.TransportComponents.Add(MailboxTransportSubmissionService.quarantineHandler); sequentialTransportComponent2.TransportComponents.Add(MailboxTransportSubmissionService.submissionPoisonHandler); sequentialTransportComponent2.TransportComponents.Add((ITransportComponent)Components.Configuration); sequentialTransportComponent2.TransportComponents.Add(Components.SystemCheckComponent); sequentialTransportComponent2.TransportComponents.Add(parallelTransportComponent2); sequentialTransportComponent2.TransportComponents.Add(parallelTransportComponent); sequentialTransportComponent2.TransportComponents.Add(Components.RoutingComponent); sequentialTransportComponent2.TransportComponents.Add(Components.EnhancedDns); sequentialTransportComponent2.TransportComponents.Add(Components.UnhealthyTargetFilterComponent); sequentialTransportComponent2.TransportComponents.Add(Components.ProxyHubSelectorComponent); ParallelTransportComponent parallelTransportComponent3 = new ParallelTransportComponent("SmtpIn and SmtpOut"); parallelTransportComponent3.TransportComponents.Add(Components.SmtpInComponent); parallelTransportComponent3.TransportComponents.Add(Components.SmtpOutConnectionHandler); sequentialTransportComponent2.TransportComponents.Add(parallelTransportComponent3); sequentialTransportComponent2.TransportComponents.Add(Components.ResourceThrottlingComponent); Components.SetDatabaseComponents(sequentialTransportComponent); Components.SetRootComponent(sequentialTransportComponent2); }
// Token: 0x06000011 RID: 17 RVA: 0x0000256C File Offset: 0x0000076C private static void ConstructComponentLoadTree() { TransportAppConfig.IsMemberOfResolverConfiguration transportIsMemberOfResolverConfig = Components.TransportAppConfig.TransportIsMemberOfResolverConfig; TransportAppConfig.IsMemberOfResolverConfiguration mailboxRulesIsMemberOfResolverConfig = Components.TransportAppConfig.MailboxRulesIsMemberOfResolverConfig; IsMemberOfResolverADAdapter <RoutingAddress> .RoutingAddressResolver adAdapter = new IsMemberOfResolverADAdapter <RoutingAddress> .RoutingAddressResolver(transportIsMemberOfResolverConfig.DisableDynamicGroups); IsMemberOfResolverADAdapter <string> .LegacyDNResolver adAdapter2 = new IsMemberOfResolverADAdapter <string> .LegacyDNResolver(mailboxRulesIsMemberOfResolverConfig.DisableDynamicGroups); Components.AgentComponent = new AgentComponent(); Components.MessagingDatabase = new MessagingDatabaseComponent(); Components.BootScanner = Components.MessagingDatabase.CreateBootScanner(); Components.RoutingComponent = new RoutingComponent(); Components.EnhancedDns = new EnhancedDns(); Components.UnhealthyTargetFilterComponent = new UnhealthyTargetFilterComponent(); Components.CategorizerComponent = new CategorizerComponent(); Components.CertificateComponent = new CertificateComponent(); Components.Configuration = new ConfigurationComponent(); Components.DeliveryAgentConnectionHandler = new DeliveryAgentConnectionHandler(); Components.DsnGenerator = new DsnGenerator(); Components.MessageResubmissionComponent = new MessageResubmissionComponent(); Components.MailboxRulesIsMemberOfResolverComponent = new IsMemberOfResolverComponent <string>("MailboxRules", mailboxRulesIsMemberOfResolverConfig, adAdapter2); Components.MessageThrottlingComponent = new MessageThrottlingComponent(); Components.OrarGenerator = new OrarGenerator(); Components.PickupComponent = new PickupComponent(new Program.TransportPickupSubmissionHandler()); Components.QueueManager = new QueueManager(); Components.MessageDepotComponent = new MessageDepotComponent(); Components.MessageDepotQueueViewerComponent = new MessageDepotQueueViewerComponent(); Components.CategorizerAdapterComponent = new CategorizerAdapterComponent(Components.CategorizerComponent, Components.MessageDepotComponent); Components.ProcessingSchedulerComponent = new ProcessingSchedulerComponent(); Components.SchedulerAdapterComponent = new SchedulerAdapterComponent(Components.MessageDepotComponent, Components.ProcessingSchedulerComponent); Components.DsnSchedulerComponent = new DsnSchedulerComponent(); Components.RemoteDeliveryComponent = new RemoteDeliveryComponent(); Components.ResourceManagerComponent = new ResourceManagerComponent(ResourceManagerResources.All); Components.RmsClientManagerComponent = new RmsClientManagerComponent(); Components.ShadowRedundancyComponent = new ShadowRedundancyComponent(); Components.SmtpInComponent = new SmtpInComponent(false); Components.SmtpOutConnectionHandler = new SmtpOutConnectionHandler(); Components.StoreDriverLoaderComponent = new Components.StoreDriverLoader(); Components.SystemCheckComponent = new SystemCheckComponent(); Components.TransportIsMemberOfResolverComponent = new IsMemberOfResolverComponent <RoutingAddress>("Transport", transportIsMemberOfResolverConfig, adAdapter); Components.PoisonMessageComponent = new PoisonMessage(); Components.Logging = new Components.LoggingComponent(true, true, true, true, true); Components.Metering = (new MeteringConfig().Enabled ? new MeteringComponent() : null); IMeteringComponent meteringComponent; Components.TryGetMeteringComponent(out meteringComponent); IQueueQuotaComponent queueQuotaComponent; if (!QueueQuotaConfig.IsQueueQuotaEnabled()) { queueQuotaComponent = null; } else if (!QueueQuotaConfig.IsQueueQuotaWithMeteringEnabled() || meteringComponent == null) { IQueueQuotaComponent queueQuotaComponent2 = new QueueQuotaComponent(); queueQuotaComponent = queueQuotaComponent2; } else { queueQuotaComponent = new QueueQuotaComponentWithMetering(); } Components.QueueQuotaComponent = queueQuotaComponent; Components.ProcessingQuotaComponent = new ProcessingQuotaComponent(); Components.PerfCountersLoader perfCountersLoader = new Components.PerfCountersLoader(true); Components.PerfCountersLoaderComponent = perfCountersLoader; Components.ResourceThrottlingComponent = new ResourceThrottlingComponent(new ResourceMeteringConfig(8000, null), new ResourceThrottlingConfig(null), new ComponentsWrapper(), Components.MessagingDatabase, Components.CategorizerComponent, Components.Configuration, ResourceManagerResources.All, ResourceObservingComponents.All); ParallelTransportComponent parallelTransportComponent = new ParallelTransportComponent("AD Configuration Readers"); parallelTransportComponent.TransportComponents.Add(new Components.TransportMailItemLoader()); parallelTransportComponent.TransportComponents.Add(Components.TransportIsMemberOfResolverComponent); parallelTransportComponent.TransportComponents.Add(Components.MailboxRulesIsMemberOfResolverComponent); parallelTransportComponent.TransportComponents.Add(Components.OrarGenerator); parallelTransportComponent.TransportComponents.Add(Components.DsnGenerator); parallelTransportComponent.TransportComponents.Add(perfCountersLoader); parallelTransportComponent.TransportComponents.Add(Components.Logging); parallelTransportComponent.TransportComponents.Add(Components.PoisonMessageComponent); parallelTransportComponent.TransportComponents.Add(new Components.DirectTrustLoader()); parallelTransportComponent.TransportComponents.Add(new Components.MicrosoftExchangeRecipientLoader()); parallelTransportComponent.TransportComponents.Add(new Components.ServicePrincipalNameRegistrar()); parallelTransportComponent.TransportComponents.Add(new Components.CategorizerMExRuntimeLoader()); parallelTransportComponent.TransportComponents.Add(new Components.BootScannerMExRuntimeLoader()); parallelTransportComponent.TransportComponents.Add(Components.MessageThrottlingComponent); parallelTransportComponent.TransportComponents.Add(Components.RmsClientManagerComponent); parallelTransportComponent.TransportComponents.Add(Components.ShadowRedundancyComponent); parallelTransportComponent.TransportComponents.Add(Components.MessageResubmissionComponent); SequentialTransportComponent sequentialTransportComponent = new SequentialTransportComponent("Database and dependents"); sequentialTransportComponent.TransportComponents.Add(Components.MessagingDatabase); sequentialTransportComponent.TransportComponents.Add(Components.ResourceManagerComponent); sequentialTransportComponent.TransportComponents.Add(Components.MessageDepotComponent); sequentialTransportComponent.TransportComponents.Add(Components.MessageDepotQueueViewerComponent); sequentialTransportComponent.TransportComponents.Add(Components.DsnSchedulerComponent); sequentialTransportComponent.TransportComponents.Add(new Database()); ParallelTransportComponent parallelTransportComponent2 = new ParallelTransportComponent("Certificate, RemoteDelivery and Database components"); parallelTransportComponent2.TransportComponents.Add(sequentialTransportComponent); parallelTransportComponent2.TransportComponents.Add(Components.CertificateComponent); IQueueQuotaComponent item; if (Components.TryGetQueueQuotaComponent(out item)) { parallelTransportComponent2.TransportComponents.Add(item); } parallelTransportComponent2.TransportComponents.Add(Components.RemoteDeliveryComponent); if (meteringComponent != null) { parallelTransportComponent2.TransportComponents.Add(Components.Metering); } SequentialTransportComponent sequentialTransportComponent2 = new SequentialTransportComponent("Root Component"); sequentialTransportComponent2.TransportComponents.Add((ITransportComponent)Components.Configuration); sequentialTransportComponent2.TransportComponents.Add(Components.SystemCheckComponent); sequentialTransportComponent2.TransportComponents.Add(parallelTransportComponent2); sequentialTransportComponent2.TransportComponents.Add((ITransportComponent)Components.AgentComponent); sequentialTransportComponent2.TransportComponents.Add(parallelTransportComponent); ParallelTransportComponent parallelTransportComponent3 = new ParallelTransportComponent("AD/Database Dependent Components"); parallelTransportComponent3.TransportComponents.Add(Components.QueueManager); sequentialTransportComponent2.TransportComponents.Add(parallelTransportComponent3); sequentialTransportComponent2.TransportComponents.Add(Components.RoutingComponent); sequentialTransportComponent2.TransportComponents.Add(Components.EnhancedDns); sequentialTransportComponent2.TransportComponents.Add(Components.UnhealthyTargetFilterComponent); sequentialTransportComponent2.TransportComponents.Add(Components.CategorizerComponent); sequentialTransportComponent2.TransportComponents.Add(Components.ProcessingSchedulerComponent); sequentialTransportComponent2.TransportComponents.Add(Components.SchedulerAdapterComponent); ParallelTransportComponent parallelTransportComponent4 = new ParallelTransportComponent("Categorizer Dependent Components"); parallelTransportComponent4.TransportComponents.Add(new Components.RpcServerComponent()); parallelTransportComponent4.TransportComponents.Add(Components.SmtpInComponent); parallelTransportComponent4.TransportComponents.Add(Components.StoreDriverLoaderComponent); parallelTransportComponent4.TransportComponents.Add(Components.PickupComponent); parallelTransportComponent4.TransportComponents.Add(Components.BootScanner); parallelTransportComponent4.TransportComponents.Add(Components.SmtpOutConnectionHandler); parallelTransportComponent4.TransportComponents.Add(new NonSmtpGatewayConnectionHandler()); parallelTransportComponent4.TransportComponents.Add(Components.DeliveryAgentConnectionHandler); parallelTransportComponent4.TransportComponents.Add(new Components.AggregatorLoader()); parallelTransportComponent4.TransportComponents.Add(Components.ProcessingQuotaComponent); sequentialTransportComponent2.TransportComponents.Add(parallelTransportComponent4); sequentialTransportComponent2.TransportComponents.Add(Components.ResourceThrottlingComponent); sequentialTransportComponent2.TransportComponents.Add(new BackgroundProcessingThread(new BackgroundProcessingThread.ServerComponentStateChangedHandler(Program.main.HandleServerComponentStateChanged))); Components.SetDatabaseComponents(sequentialTransportComponent); Components.SetRootComponent(sequentialTransportComponent2); }
// Token: 0x06000016 RID: 22 RVA: 0x000024CC File Offset: 0x000006CC private static void ConstructComponentLoadTree() { TransportAppConfig.IsMemberOfResolverConfiguration transportIsMemberOfResolverConfig = Components.TransportAppConfig.TransportIsMemberOfResolverConfig; IsMemberOfResolverADAdapter <RoutingAddress> .RoutingAddressResolver adAdapter = new IsMemberOfResolverADAdapter <RoutingAddress> .RoutingAddressResolver(transportIsMemberOfResolverConfig.DisableDynamicGroups); Components.AgentComponent = new AgentComponent(); Components.RoutingComponent = new RoutingComponent(); Components.EnhancedDns = new EnhancedDns(); Components.UnhealthyTargetFilterComponent = new UnhealthyTargetFilterComponent(); Components.ProxyHubSelectorComponent = new ProxyHubSelectorComponent(); Components.CertificateComponent = new CertificateComponent(); Components.Configuration = new ConfigurationComponent(ProcessTransportRole.FrontEnd); Components.MessageThrottlingComponent = new MessageThrottlingComponent(); Components.ResourceManagerComponent = new ResourceManagerComponent(ResourceManagerResources.PrivateBytes | ResourceManagerResources.TotalBytes); Components.SmtpInComponent = new SmtpInComponent(false); Components.SmtpOutConnectionHandler = new SmtpOutConnectionHandler(); Components.SystemCheckComponent = new SystemCheckComponent(); Components.TransportIsMemberOfResolverComponent = new IsMemberOfResolverComponent <RoutingAddress>("Transport", transportIsMemberOfResolverConfig, adAdapter); Components.TransportMailItemLoader item = new Components.TransportMailItemLoader(); Components.Logging = new Components.LoggingComponent(false, false, false, false, true); StorageFactory.SchemaToUse = StorageFactory.Schema.NullSchema; Components.MessagingDatabase = new MessagingDatabaseComponent(); Components.ResourceThrottlingComponent = new ResourceThrottlingComponent(new ResourceMeteringConfig(8000, null), new ResourceThrottlingConfig(null), new ComponentsWrapper(), Components.MessagingDatabase, null, Components.Configuration, ResourceManagerResources.PrivateBytes | ResourceManagerResources.TotalBytes, ResourceObservingComponents.EnhancedDns | ResourceObservingComponents.IsMemberOfResolver | ResourceObservingComponents.SmtpIn); Components.PerfCountersLoader perfCountersLoader = new Components.PerfCountersLoader(false); Components.PerfCountersLoaderComponent = perfCountersLoader; ParallelTransportComponent parallelTransportComponent = new ParallelTransportComponent("AD Configuration Readers"); parallelTransportComponent.TransportComponents.Add(item); parallelTransportComponent.TransportComponents.Add(Components.TransportIsMemberOfResolverComponent); parallelTransportComponent.TransportComponents.Add(perfCountersLoader); parallelTransportComponent.TransportComponents.Add(Components.Logging); parallelTransportComponent.TransportComponents.Add(new Components.ServicePrincipalNameRegistrar()); parallelTransportComponent.TransportComponents.Add(Components.MessageThrottlingComponent); parallelTransportComponent.TransportComponents.Add(new Components.DirectTrustLoader()); SequentialTransportComponent sequentialTransportComponent = new SequentialTransportComponent("Resource Manager"); sequentialTransportComponent.TransportComponents.Add(Components.ResourceManagerComponent); ParallelTransportComponent parallelTransportComponent2 = new ParallelTransportComponent("Configuration, Certificate, and Resource Manager components"); parallelTransportComponent2.TransportComponents.Add(sequentialTransportComponent); parallelTransportComponent2.TransportComponents.Add(Components.CertificateComponent); SequentialTransportComponent sequentialTransportComponent2 = new SequentialTransportComponent("Root Component"); sequentialTransportComponent2.TransportComponents.Add((ITransportComponent)Components.Configuration); sequentialTransportComponent2.TransportComponents.Add(Components.SystemCheckComponent); sequentialTransportComponent2.TransportComponents.Add(parallelTransportComponent2); sequentialTransportComponent2.TransportComponents.Add((ITransportComponent)Components.AgentComponent); sequentialTransportComponent2.TransportComponents.Add(parallelTransportComponent); sequentialTransportComponent2.TransportComponents.Add(Components.RoutingComponent); sequentialTransportComponent2.TransportComponents.Add(Components.EnhancedDns); sequentialTransportComponent2.TransportComponents.Add(Components.UnhealthyTargetFilterComponent); sequentialTransportComponent2.TransportComponents.Add(Components.ProxyHubSelectorComponent); ParallelTransportComponent parallelTransportComponent3 = new ParallelTransportComponent("SmtpIn and SmtpOut"); parallelTransportComponent3.TransportComponents.Add(Components.SmtpInComponent); parallelTransportComponent3.TransportComponents.Add(Components.SmtpOutConnectionHandler); sequentialTransportComponent2.TransportComponents.Add(parallelTransportComponent3); sequentialTransportComponent2.TransportComponents.Add(new FrontEndBackgroundProcessingThread(new FrontEndBackgroundProcessingThread.ServerComponentStateChangedHandler(FrontEndTransportService.instance.HandleServerComponentStateChanged))); sequentialTransportComponent2.TransportComponents.Add(Components.ResourceThrottlingComponent); Components.SetDatabaseComponents(sequentialTransportComponent); Components.SetRootComponent(sequentialTransportComponent2); }
private void ConstructComponentLoadTree() { TransportAppConfig.IsMemberOfResolverConfiguration transportIsMemberOfResolverConfig = Components.TransportAppConfig.TransportIsMemberOfResolverConfig; IsMemberOfResolverADAdapter <RoutingAddress> .RoutingAddressResolver adAdapter = new IsMemberOfResolverADAdapter <RoutingAddress> .RoutingAddressResolver(transportIsMemberOfResolverConfig.DisableDynamicGroups); TransportAppConfig.IsMemberOfResolverConfiguration mailboxRulesIsMemberOfResolverConfig = Components.TransportAppConfig.MailboxRulesIsMemberOfResolverConfig; IsMemberOfResolverADAdapter <string> .LegacyDNResolver adAdapter2 = new IsMemberOfResolverADAdapter <string> .LegacyDNResolver(mailboxRulesIsMemberOfResolverConfig.DisableDynamicGroups); Components.AgentComponent = new AgentComponent(); Components.RoutingComponent = new RoutingComponent(); Components.EnhancedDns = new EnhancedDns(); Components.DsnGenerator = new DsnGenerator(); Components.UnhealthyTargetFilterComponent = new UnhealthyTargetFilterComponent(); Components.TransportIsMemberOfResolverComponent = new IsMemberOfResolverComponent <RoutingAddress>("Transport", transportIsMemberOfResolverConfig, adAdapter); Components.MailboxRulesIsMemberOfResolverComponent = new IsMemberOfResolverComponent <string>("MailboxRules", mailboxRulesIsMemberOfResolverConfig, adAdapter2); Components.StoreDriverDelivery = StoreDriverDelivery.CreateStoreDriver(); Components.Categorizer = this.submitHandler; Components.CertificateComponent = new CertificateComponent(); Components.Configuration = new ConfigurationComponent(ProcessTransportRole.MailboxDelivery); Components.MessageThrottlingComponent = new MessageThrottlingComponent(); Components.ResourceManagerComponent = new ResourceManagerComponent(ResourceManagerResources.PrivateBytes | ResourceManagerResources.TotalBytes); Components.SmtpInComponent = new SmtpInComponent(this.IsModernSmtpStackEnabled()); Components.SmtpOutConnectionHandler = new SmtpOutConnectionHandler(); Components.SystemCheckComponent = new SystemCheckComponent(); Components.TransportMailItemLoader item = new Components.TransportMailItemLoader(); Components.ProxyHubSelectorComponent = new ProxyHubSelectorComponent(); Components.PoisonMessageComponent = new PoisonMessage(); Components.Logging = new Components.LoggingComponent(false, false, false, false, false); StorageFactory.SchemaToUse = StorageFactory.Schema.NullSchema; Components.MessagingDatabase = new MessagingDatabaseComponent(); Components.PerfCountersLoader perfCountersLoader = new Components.PerfCountersLoader(false); Components.PerfCountersLoaderComponent = perfCountersLoader; Components.ResourceThrottlingComponent = new ResourceThrottlingComponent(new ResourceMeteringConfig(8000, null), new ResourceThrottlingConfig(null), new ComponentsWrapper(), Components.MessagingDatabase, null, Components.Configuration, ResourceManagerResources.PrivateBytes | ResourceManagerResources.TotalBytes, ResourceObservingComponents.EnhancedDns | ResourceObservingComponents.IsMemberOfResolver | ResourceObservingComponents.SmtpIn); ParallelTransportComponent parallelTransportComponent = new ParallelTransportComponent("Parallel Group 1"); parallelTransportComponent.TransportComponents.Add(Components.ResourceManagerComponent); parallelTransportComponent.TransportComponents.Add(Components.CertificateComponent); parallelTransportComponent.TransportComponents.Add(Components.TransportIsMemberOfResolverComponent); parallelTransportComponent.TransportComponents.Add(Components.MailboxRulesIsMemberOfResolverComponent); ParallelTransportComponent parallelTransportComponent2 = new ParallelTransportComponent("Parallel Group 2"); parallelTransportComponent2.TransportComponents.Add(item); parallelTransportComponent2.TransportComponents.Add(new Components.MicrosoftExchangeRecipientLoader()); parallelTransportComponent2.TransportComponents.Add(perfCountersLoader); parallelTransportComponent2.TransportComponents.Add(Components.Logging); parallelTransportComponent2.TransportComponents.Add(Components.PoisonMessageComponent); parallelTransportComponent2.TransportComponents.Add(Components.MessageThrottlingComponent); parallelTransportComponent2.TransportComponents.Add(Components.StoreDriverDelivery); parallelTransportComponent2.TransportComponents.Add((ITransportComponent)Components.AgentComponent); ParallelTransportComponent parallelTransportComponent3 = new ParallelTransportComponent("Parallel Group 3"); parallelTransportComponent3.TransportComponents.Add(Components.SmtpInComponent); parallelTransportComponent3.TransportComponents.Add(Components.SmtpOutConnectionHandler); parallelTransportComponent3.TransportComponents.Add(Components.RoutingComponent); parallelTransportComponent3.TransportComponents.Add(Components.UnhealthyTargetFilterComponent); parallelTransportComponent3.TransportComponents.Add(Components.DsnGenerator); parallelTransportComponent3.TransportComponents.Add(DeliveryConfiguration.poisonHandler); Components.SetRootComponent(new SequentialTransportComponent("Root Component") { TransportComponents = { (ITransportComponent)Components.Configuration, Components.SystemCheckComponent, parallelTransportComponent, parallelTransportComponent2, parallelTransportComponent3, Components.ResourceThrottlingComponent, Components.ProxyHubSelectorComponent } }); }