From d9bdd8196c7e06d50411205ac4f1178ff69b6d60 Mon Sep 17 00:00:00 2001 From: Paul Johnson Date: Mon, 10 Jan 2022 16:03:33 +0000 Subject: [PATCH] Misc/obsolete redundant extension (#11838) * Mark AddUnique obsolete. * Remove all internal usages of AddUnique. --- .../ServiceCollectionExtensions.cs | 2 ++ .../DependencyInjection/UmbracoBuilder.cs | 24 +++++++++---------- .../UmbracoBuilder.Examine.cs | 2 +- .../UmbracoBuilder.FileSystems.cs | 2 +- .../UmbracoBuilder.Installer.cs | 2 +- .../UmbracoBuilder.Services.cs | 8 +++---- .../UmbracoBuilderExtensions.cs | 12 +++++----- .../UmbracoBuilderExtensions.cs | 18 +++++++------- 8 files changed, 36 insertions(+), 34 deletions(-) diff --git a/src/Umbraco.Core/DependencyInjection/ServiceCollectionExtensions.cs b/src/Umbraco.Core/DependencyInjection/ServiceCollectionExtensions.cs index cec1cbb4eb..871a0bbe02 100644 --- a/src/Umbraco.Core/DependencyInjection/ServiceCollectionExtensions.cs +++ b/src/Umbraco.Core/DependencyInjection/ServiceCollectionExtensions.cs @@ -24,6 +24,8 @@ namespace Umbraco.Extensions services.AddUnique(factory => (TImplementing)factory.GetRequiredService()); } + // TODO(V11): Remove this function. + [Obsolete("This method is functionally equivalent to AddSingleton() please use that instead.")] public static void AddUnique(this IServiceCollection services) where TImplementing : class => services.Replace(ServiceDescriptor.Singleton()); diff --git a/src/Umbraco.Core/DependencyInjection/UmbracoBuilder.cs b/src/Umbraco.Core/DependencyInjection/UmbracoBuilder.cs index 1af25e16e8..eacd615830 100644 --- a/src/Umbraco.Core/DependencyInjection/UmbracoBuilder.cs +++ b/src/Umbraco.Core/DependencyInjection/UmbracoBuilder.cs @@ -171,7 +171,7 @@ namespace Umbraco.Cms.Core.DependencyInjection Services.AddSingleton(); - Services.AddUnique(); + Services.AddSingleton(); // by default, register a noop factory Services.AddUnique(); @@ -179,7 +179,7 @@ namespace Umbraco.Cms.Core.DependencyInjection Services.AddUnique(); Services.AddSingleton(f => f.GetRequiredService().CreateDictionary()); - Services.AddUnique(); + Services.AddSingleton(); Services.AddUnique(); Services.AddUnique(); @@ -194,14 +194,14 @@ namespace Umbraco.Cms.Core.DependencyInjection Services.AddUnique(); Services.AddUnique(); - Services.AddUnique(); - Services.AddUnique(); - Services.AddUnique(); + Services.AddSingleton(); + Services.AddSingleton(); + Services.AddSingleton(); // register properties fallback Services.AddUnique(); - Services.AddUnique(); + Services.AddSingleton(); // register published router Services.AddUnique(); @@ -226,13 +226,13 @@ namespace Umbraco.Cms.Core.DependencyInjection // let's use an hybrid accessor that can fall back to a ThreadStatic context. Services.AddUnique(); - Services.AddUnique(); - Services.AddUnique(); - Services.AddUnique(); - Services.AddUnique(); + Services.AddSingleton(); + Services.AddSingleton(); + Services.AddSingleton(); + Services.AddSingleton(); - Services.AddUnique(); - Services.AddUnique(); + Services.AddSingleton(); + Services.AddSingleton(); // register a server registrar, by default it's the db registrar Services.AddUnique(f => diff --git a/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Examine.cs b/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Examine.cs index d061a4372c..da31a8df39 100644 --- a/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Examine.cs +++ b/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Examine.cs @@ -50,7 +50,7 @@ namespace Umbraco.Cms.Infrastructure.DependencyInjection false)); builder.Services.AddUnique, MediaValueSetBuilder>(); builder.Services.AddUnique, MemberValueSetBuilder>(); - builder.Services.AddUnique(); + builder.Services.AddSingleton(); builder.AddNotificationHandler(); builder.AddNotificationHandler(); diff --git a/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.FileSystems.cs b/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.FileSystems.cs index f66991fb68..ccb515182e 100644 --- a/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.FileSystems.cs +++ b/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.FileSystems.cs @@ -34,7 +34,7 @@ namespace Umbraco.Cms.Infrastructure.DependencyInjection internal static IUmbracoBuilder AddFileSystems(this IUmbracoBuilder builder) { // register FileSystems, which manages all filesystems - builder.Services.AddUnique(); + builder.Services.AddSingleton(); // register the scheme for media paths builder.Services.AddUnique(); diff --git a/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Installer.cs b/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Installer.cs index 990b158ef3..e0958bfdb7 100644 --- a/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Installer.cs +++ b/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Installer.cs @@ -27,7 +27,7 @@ namespace Umbraco.Cms.Infrastructure.DependencyInjection builder.Services.AddScoped(); builder.Services.AddTransient(); - builder.Services.AddUnique(); + builder.Services.AddSingleton(); builder.Services.AddTransient(); diff --git a/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Services.cs b/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Services.cs index debe476c49..7d74ff13c8 100644 --- a/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Services.cs +++ b/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Services.cs @@ -30,7 +30,7 @@ namespace Umbraco.Cms.Infrastructure.DependencyInjection internal static IUmbracoBuilder AddServices(this IUmbracoBuilder builder) { // register the service context - builder.Services.AddUnique(); + builder.Services.AddSingleton(); // register the special idk map builder.Services.AddUnique(); @@ -74,11 +74,11 @@ namespace Umbraco.Cms.Infrastructure.DependencyInjection builder.Services.AddUnique(); - builder.Services.AddUnique(); - builder.Services.AddUnique(); + builder.Services.AddSingleton(); + builder.Services.AddSingleton(); builder.Services.AddUnique(factory => CreatePackageRepository(factory, "createdPackages.config")); builder.Services.AddUnique(); - builder.Services.AddUnique(); + builder.Services.AddSingleton(); builder.Services.AddUnique(); return builder; diff --git a/src/Umbraco.Web.BackOffice/DependencyInjection/UmbracoBuilderExtensions.cs b/src/Umbraco.Web.BackOffice/DependencyInjection/UmbracoBuilderExtensions.cs index 7a15d640e6..2c801e963b 100644 --- a/src/Umbraco.Web.BackOffice/DependencyInjection/UmbracoBuilderExtensions.cs +++ b/src/Umbraco.Web.BackOffice/DependencyInjection/UmbracoBuilderExtensions.cs @@ -82,12 +82,12 @@ namespace Umbraco.Extensions { builder.Services.AddSingleton(); builder.Services.ConfigureOptions(); - builder.Services.AddUnique(); - builder.Services.AddUnique(); - builder.Services.AddUnique(); - builder.Services.AddUnique(); + builder.Services.AddSingleton(); + builder.Services.AddSingleton(); + builder.Services.AddSingleton(); + builder.Services.AddSingleton(); builder.AddNotificationAsyncHandler(); - builder.Services.AddUnique(); + builder.Services.AddSingleton(); builder.Services.AddScoped(); builder.Services.AddScoped(); @@ -115,7 +115,7 @@ namespace Umbraco.Extensions builder.Services.AddUnique(); builder.Services.AddUnique(); - builder.Services.AddUnique(); + builder.Services.AddSingleton(); return builder; } diff --git a/src/Umbraco.Web.Common/DependencyInjection/UmbracoBuilderExtensions.cs b/src/Umbraco.Web.Common/DependencyInjection/UmbracoBuilderExtensions.cs index 97a9f3e087..247e364ba4 100644 --- a/src/Umbraco.Web.Common/DependencyInjection/UmbracoBuilderExtensions.cs +++ b/src/Umbraco.Web.Common/DependencyInjection/UmbracoBuilderExtensions.cs @@ -148,7 +148,7 @@ namespace Umbraco.Extensions // Add supported databases builder.AddUmbracoSqlServerSupport(); builder.AddUmbracoSqlCeSupport(); - builder.Services.AddUnique(); + builder.Services.AddSingleton(); // Must be added here because DbProviderFactories is netstandard 2.1 so cannot exist in Infra for now builder.Services.AddSingleton(factory => new DbProviderFactoryCreator( @@ -200,7 +200,7 @@ namespace Umbraco.Extensions /// public static IUmbracoBuilder AddUmbracoProfiler(this IUmbracoBuilder builder) { - builder.Services.AddUnique(); + builder.Services.AddSingleton(); builder.Services.AddMiniProfiler(options => { @@ -286,7 +286,7 @@ namespace Umbraco.Extensions builder.Services.AddSmidgeInMemory(false); // it will be enabled based on config/cachebuster builder.Services.AddUnique(); - builder.Services.AddUnique(); + builder.Services.AddSingleton(); builder.Services.AddTransient(); builder.Services.ConfigureOptions(); @@ -332,7 +332,7 @@ namespace Umbraco.Extensions builder.Services.AddUnique(); builder.Services.AddUnique(); - builder.Services.AddUnique(); + builder.Services.AddSingleton(); // register the umbraco context factory @@ -343,12 +343,12 @@ namespace Umbraco.Extensions builder.WithCollectionBuilder() .Add(umbracoApiControllerTypes); - builder.Services.AddUnique(); - builder.Services.AddUnique(); - builder.Services.AddUnique(); - builder.Services.AddUnique(); + builder.Services.AddSingleton(); + builder.Services.AddSingleton(); + builder.Services.AddSingleton(); + builder.Services.AddSingleton(); - builder.Services.AddUnique(); + builder.Services.AddSingleton(); builder.Services.AddUnique(); builder.Services.AddUnique();