public static AssemblyScanningComponent Initialize(Configuration configuration, SettingsHolder settings) { var shouldScanBinDirectory = configuration.UserProvidedTypes == null; List <Type> availableTypes; AssemblyScanner assemblyScanner; if (shouldScanBinDirectory) { var directoryToScan = AppDomain.CurrentDomain.RelativeSearchPath ?? AppDomain.CurrentDomain.BaseDirectory; assemblyScanner = new AssemblyScanner(directoryToScan); availableTypes = new List <Type>(); } else { assemblyScanner = new AssemblyScanner(Assembly.GetExecutingAssembly()); availableTypes = configuration.UserProvidedTypes; } var assemblyScannerSettings = configuration.AssemblyScannerConfiguration; assemblyScanner.AssembliesToSkip = assemblyScannerSettings.ExcludedAssemblies; assemblyScanner.TypesToSkip = assemblyScannerSettings.ExcludedTypes; assemblyScanner.ScanNestedDirectories = assemblyScannerSettings.ScanAssembliesInNestedDirectories; assemblyScanner.ThrowExceptions = assemblyScannerSettings.ThrowExceptions; assemblyScanner.ScanAppDomainAssemblies = assemblyScannerSettings.ScanAppDomainAssemblies; assemblyScanner.AdditionalAssemblyScanningPath = assemblyScannerSettings.AdditionalAssemblyScanningPath; var scannableAssemblies = assemblyScanner.GetScannableAssemblies(); availableTypes = availableTypes.Union(scannableAssemblies.Types).ToList(); configuration.SetDefaultAvailableTypes(availableTypes); if (shouldScanBinDirectory) { settings.AddStartupDiagnosticsSection("AssemblyScanning", new { Assemblies = scannableAssemblies.Assemblies.Select(a => new { a.FullName, FileVersion = FileVersionRetriever.GetFileVersion(a) }), scannableAssemblies.ErrorsThrownDuringScanning, scannableAssemblies.SkippedFiles, Settings = assemblyScannerSettings }); } return(new AssemblyScanningComponent(availableTypes)); }
static List <Type> Scan(AssemblyScanner assemblyScanner, SettingsHolder settings) { var results = assemblyScanner.GetScannableAssemblies(); settings.AddStartupDiagnosticsSection("AssemblyScanning", new { Assemblies = results.Assemblies.Select(a => a.FullName), results.ErrorsThrownDuringScanning, results.SkippedFiles }); return(results.Types); }
void WriteStartupDiagnostics() { settings.AddStartupDiagnosticsSection("Azure Service Bus .NET Standard", new { TopicName = settings.TryGet(SettingsKeys.TopicName, out string customTopicName) ? customTopicName : "default", EntityMaximumSize = settings.TryGet(SettingsKeys.MaximumSizeInGB, out int entityMaxSize) ? entityMaxSize.ToString() : "default", EnablePartitioning = settings.TryGet(SettingsKeys.EnablePartitioning, out bool enablePartitioning) ? enablePartitioning.ToString() : "default", SubscriptionNameShortener = settings.TryGet(SettingsKeys.SubscriptionNameShortener, out Func <string, string> _) ? "configured" : "default", RuleNameShortener = settings.TryGet(SettingsKeys.RuleNameShortener, out Func <string, string> _) ? "configured" : "default", PrefetchMultiplier = settings.TryGet(SettingsKeys.PrefetchMultiplier, out int prefetchMultiplier) ? prefetchMultiplier.ToString() : "default", PrefetchCount = settings.TryGet(SettingsKeys.PrefetchCount, out int prefetchCount) ? prefetchCount.ToString() : "default", UseWebSockets = settings.TryGet(SettingsKeys.TransportType, out TransportType _) ? "True" : "default", TimeToWaitBeforeTriggeringCircuitBreaker = settings.TryGet(SettingsKeys.TransportType, out TimeSpan timeToWait) ? timeToWait.ToString() : "default", CustomTokenProvider = settings.TryGet(SettingsKeys.CustomTokenProvider, out ITokenProvider customTokenProvider) ? customTokenProvider.ToString() : "default" });
static void ConfigureMessageTypes(Conventions conventions, SettingsHolder settings) { var messageMetadataRegistry = new MessageMetadataRegistry(conventions.IsMessageType); messageMetadataRegistry.RegisterMessageTypesFoundIn(settings.GetAvailableTypes()); settings.Set(messageMetadataRegistry); var foundMessages = messageMetadataRegistry.GetAllMessages().ToList(); settings.AddStartupDiagnosticsSection("Messages", new { CustomConventionUsed = conventions.CustomMessageTypeConventionUsed, NumberOfMessagesFoundAtStartup = foundMessages.Count, Messages = foundMessages.Select(m => m.MessageType.FullName) }); }
public static TransportComponent Initialize(Configuration configuration, SettingsHolder settings) { var transportDefinition = configuration.TransportDefinition; var connectionString = configuration.TransportConnectionString.GetConnectionStringOrRaiseError(transportDefinition); var transportInfrastructure = transportDefinition.Initialize(settings, connectionString); //for backwards compatibility settings.Set(transportInfrastructure); var transportType = transportDefinition.GetType(); settings.AddStartupDiagnosticsSection("Transport", new { Type = transportType.FullName, Version = FileVersionRetriever.GetFileVersion(transportType) }); return(new TransportComponent(transportInfrastructure, configuration.QueueBindings)); }
public void Run(SettingsHolder settings) { if (!settings.TryGet("PersistenceDefinitions", out List <EnabledPersistence> definitions)) { return; } var enabledPersistences = PersistenceStorageMerger.Merge(definitions, settings); ValidateSagaAndOutboxUseSamePersistence(enabledPersistences, settings); var resultingSupportedStorages = new List <Type>(); var diagnostics = new Dictionary <string, object>(); foreach (var definition in enabledPersistences) { var persistenceDefinition = definition.DefinitionType.Construct <PersistenceDefinition>(); persistenceDefinition.ApplyDefaults(settings); foreach (var storageType in definition.SelectedStorages) { Logger.DebugFormat("Activating persistence '{0}' to provide storage for '{1}' storage.", definition.DefinitionType.Name, storageType); persistenceDefinition.ApplyActionForStorage(storageType, settings); resultingSupportedStorages.Add(storageType); diagnostics.Add(storageType.Name, new { Type = definition.DefinitionType.FullName, Version = FileVersionRetriever.GetFileVersion(definition.DefinitionType) }); } } settings.Set("ResultingSupportedStorages", resultingSupportedStorages); settings.AddStartupDiagnosticsSection("Persistence", diagnostics); }