Skip to content

Commit d9bdd81

Browse files
author
Paul Johnson
authored
Misc/obsolete redundant extension (#11838)
* Mark AddUnique<TImplementing> obsolete. * Remove all internal usages of AddUnique<TImplementing>.
1 parent a952d17 commit d9bdd81

File tree

8 files changed

+36
-34
lines changed

8 files changed

+36
-34
lines changed

src/Umbraco.Core/DependencyInjection/ServiceCollectionExtensions.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ public static void AddMultipleUnique<TService1, TService2, TImplementing>(this I
2424
services.AddUnique<TService2>(factory => (TImplementing)factory.GetRequiredService<TService1>());
2525
}
2626

27+
// TODO(V11): Remove this function.
28+
[Obsolete("This method is functionally equivalent to AddSingleton<TImplementing>() please use that instead.")]
2729
public static void AddUnique<TImplementing>(this IServiceCollection services)
2830
where TImplementing : class
2931
=> services.Replace(ServiceDescriptor.Singleton<TImplementing, TImplementing>());

src/Umbraco.Core/DependencyInjection/UmbracoBuilder.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -171,15 +171,15 @@ private void AddCoreServices()
171171

172172
Services.AddSingleton<UmbracoRequestPaths>();
173173

174-
Services.AddUnique<InstallStatusTracker>();
174+
Services.AddSingleton<InstallStatusTracker>();
175175

176176
// by default, register a noop factory
177177
Services.AddUnique<IPublishedModelFactory, NoopPublishedModelFactory>();
178178

179179
Services.AddUnique<ICultureDictionaryFactory, DefaultCultureDictionaryFactory>();
180180
Services.AddSingleton(f => f.GetRequiredService<ICultureDictionaryFactory>().CreateDictionary());
181181

182-
Services.AddUnique<UriUtility>();
182+
Services.AddSingleton<UriUtility>();
183183

184184
Services.AddUnique<IDashboardService, DashboardService>();
185185
Services.AddUnique<IUserDataService, UserDataService>();
@@ -194,14 +194,14 @@ private void AddCoreServices()
194194
Services.AddUnique<IPublishedUrlProvider, UrlProvider>();
195195
Services.AddUnique<ISiteDomainMapper, SiteDomainMapper>();
196196

197-
Services.AddUnique<HtmlLocalLinkParser>();
198-
Services.AddUnique<HtmlImageSourceParser>();
199-
Services.AddUnique<HtmlUrlParser>();
197+
Services.AddSingleton<HtmlLocalLinkParser>();
198+
Services.AddSingleton<HtmlImageSourceParser>();
199+
Services.AddSingleton<HtmlUrlParser>();
200200

201201
// register properties fallback
202202
Services.AddUnique<IPublishedValueFallback, PublishedValueFallback>();
203203

204-
Services.AddUnique<UmbracoFeatures>();
204+
Services.AddSingleton<UmbracoFeatures>();
205205

206206
// register published router
207207
Services.AddUnique<IPublishedRouter, PublishedRouter>();
@@ -226,13 +226,13 @@ private void AddCoreServices()
226226
// let's use an hybrid accessor that can fall back to a ThreadStatic context.
227227
Services.AddUnique<IUmbracoContextAccessor, HybridUmbracoContextAccessor>();
228228

229-
Services.AddUnique<LegacyPasswordSecurity>();
230-
Services.AddUnique<UserEditorAuthorizationHelper>();
231-
Services.AddUnique<ContentPermissions>();
232-
Services.AddUnique<MediaPermissions>();
229+
Services.AddSingleton<LegacyPasswordSecurity>();
230+
Services.AddSingleton<UserEditorAuthorizationHelper>();
231+
Services.AddSingleton<ContentPermissions>();
232+
Services.AddSingleton<MediaPermissions>();
233233

234-
Services.AddUnique<PropertyEditorCollection>();
235-
Services.AddUnique<ParameterEditorCollection>();
234+
Services.AddSingleton<PropertyEditorCollection>();
235+
Services.AddSingleton<ParameterEditorCollection>();
236236

237237
// register a server registrar, by default it's the db registrar
238238
Services.AddUnique<IServerRoleAccessor>(f =>

src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Examine.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public static IUmbracoBuilder AddExamine(this IUmbracoBuilder builder)
5050
false));
5151
builder.Services.AddUnique<IValueSetBuilder<IMedia>, MediaValueSetBuilder>();
5252
builder.Services.AddUnique<IValueSetBuilder<IMember>, MemberValueSetBuilder>();
53-
builder.Services.AddUnique<ExamineIndexRebuilder>();
53+
builder.Services.AddSingleton<ExamineIndexRebuilder>();
5454

5555
builder.AddNotificationHandler<ContentCacheRefresherNotification, ContentIndexingNotificationHandler>();
5656
builder.AddNotificationHandler<ContentTypeCacheRefresherNotification, ContentTypeIndexingNotificationHandler>();

src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.FileSystems.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public static partial class UmbracoBuilderExtensions
3434
internal static IUmbracoBuilder AddFileSystems(this IUmbracoBuilder builder)
3535
{
3636
// register FileSystems, which manages all filesystems
37-
builder.Services.AddUnique<FileSystems>();
37+
builder.Services.AddSingleton<FileSystems>();
3838

3939
// register the scheme for media paths
4040
builder.Services.AddUnique<IMediaPathScheme, UniqueMediaPathScheme>();

src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Installer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ internal static IUmbracoBuilder AddInstaller(this IUmbracoBuilder builder)
2727
builder.Services.AddScoped<InstallSetupStep, CompleteInstallStep>();
2828

2929
builder.Services.AddTransient<InstallStepCollection>();
30-
builder.Services.AddUnique<InstallHelper>();
30+
builder.Services.AddSingleton<InstallHelper>();
3131

3232
builder.Services.AddTransient<PackageMigrationRunner>();
3333

src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Services.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public static partial class UmbracoBuilderExtensions
3030
internal static IUmbracoBuilder AddServices(this IUmbracoBuilder builder)
3131
{
3232
// register the service context
33-
builder.Services.AddUnique<ServiceContext>();
33+
builder.Services.AddSingleton<ServiceContext>();
3434

3535
// register the special idk map
3636
builder.Services.AddUnique<IIdKeyMap, IdKeyMap>();
@@ -74,11 +74,11 @@ internal static IUmbracoBuilder AddServices(this IUmbracoBuilder builder)
7474

7575
builder.Services.AddUnique<IEntityXmlSerializer, EntityXmlSerializer>();
7676

77-
builder.Services.AddUnique<ConflictingPackageData>();
78-
builder.Services.AddUnique<CompiledPackageXmlParser>();
77+
builder.Services.AddSingleton<ConflictingPackageData>();
78+
builder.Services.AddSingleton<CompiledPackageXmlParser>();
7979
builder.Services.AddUnique(factory => CreatePackageRepository(factory, "createdPackages.config"));
8080
builder.Services.AddUnique<ICreatedPackagesRepository, CreatedPackageSchemaRepository>();
81-
builder.Services.AddUnique<PackageDataInstallation>();
81+
builder.Services.AddSingleton<PackageDataInstallation>();
8282
builder.Services.AddUnique<IPackageInstallation, PackageInstallation>();
8383

8484
return builder;

src/Umbraco.Web.BackOffice/DependencyInjection/UmbracoBuilderExtensions.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -82,12 +82,12 @@ public static IUmbracoBuilder AddBackOfficeCore(this IUmbracoBuilder builder)
8282
{
8383
builder.Services.AddSingleton<KeepAliveMiddleware>();
8484
builder.Services.ConfigureOptions<ConfigureGlobalOptionsForKeepAliveMiddlware>();
85-
builder.Services.AddUnique<ServerVariablesParser>();
86-
builder.Services.AddUnique<InstallAreaRoutes>();
87-
builder.Services.AddUnique<BackOfficeAreaRoutes>();
88-
builder.Services.AddUnique<PreviewRoutes>();
85+
builder.Services.AddSingleton<ServerVariablesParser>();
86+
builder.Services.AddSingleton<InstallAreaRoutes>();
87+
builder.Services.AddSingleton<BackOfficeAreaRoutes>();
88+
builder.Services.AddSingleton<PreviewRoutes>();
8989
builder.AddNotificationAsyncHandler<ContentCacheRefresherNotification, PreviewHubUpdater>();
90-
builder.Services.AddUnique<BackOfficeServerVariables>();
90+
builder.Services.AddSingleton<BackOfficeServerVariables>();
9191
builder.Services.AddScoped<BackOfficeSessionIdValidator>();
9292
builder.Services.AddScoped<BackOfficeSecurityStampValidator>();
9393

@@ -115,7 +115,7 @@ public static IUmbracoBuilder AddBackOfficeCore(this IUmbracoBuilder builder)
115115

116116
builder.Services.AddUnique<IIconService, IconService>();
117117
builder.Services.AddUnique<IConflictingRouteService, ConflictingRouteService>();
118-
builder.Services.AddUnique<UnhandledExceptionLoggerMiddleware>();
118+
builder.Services.AddSingleton<UnhandledExceptionLoggerMiddleware>();
119119

120120
return builder;
121121
}

src/Umbraco.Web.Common/DependencyInjection/UmbracoBuilderExtensions.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ public static IUmbracoBuilder AddUmbracoCore(this IUmbracoBuilder builder)
148148
// Add supported databases
149149
builder.AddUmbracoSqlServerSupport();
150150
builder.AddUmbracoSqlCeSupport();
151-
builder.Services.AddUnique<DatabaseSchemaCreatorFactory>();
151+
builder.Services.AddSingleton<DatabaseSchemaCreatorFactory>();
152152

153153
// Must be added here because DbProviderFactories is netstandard 2.1 so cannot exist in Infra for now
154154
builder.Services.AddSingleton<IDbProviderFactoryCreator>(factory => new DbProviderFactoryCreator(
@@ -200,7 +200,7 @@ private static IUmbracoBuilder AddHttpClients(this IUmbracoBuilder builder)
200200
/// </summary>
201201
public static IUmbracoBuilder AddUmbracoProfiler(this IUmbracoBuilder builder)
202202
{
203-
builder.Services.AddUnique<WebProfilerHtml>();
203+
builder.Services.AddSingleton<WebProfilerHtml>();
204204

205205
builder.Services.AddMiniProfiler(options =>
206206
{
@@ -286,7 +286,7 @@ public static IUmbracoBuilder AddRuntimeMinifier(this IUmbracoBuilder builder)
286286
builder.Services.AddSmidgeInMemory(false); // it will be enabled based on config/cachebuster
287287

288288
builder.Services.AddUnique<IRuntimeMinifier, SmidgeRuntimeMinifier>();
289-
builder.Services.AddUnique<SmidgeHelperAccessor>();
289+
builder.Services.AddSingleton<SmidgeHelperAccessor>();
290290
builder.Services.AddTransient<IPreProcessor, SmidgeNuglifyJs>();
291291
builder.Services.ConfigureOptions<SmidgeOptionsSetup>();
292292

@@ -332,7 +332,7 @@ public static IUmbracoBuilder AddWebComponents(this IUmbracoBuilder builder)
332332
builder.Services.AddUnique<IProfilerHtml, WebProfilerHtml>();
333333

334334
builder.Services.AddUnique<IMacroRenderer, MacroRenderer>();
335-
builder.Services.AddUnique<PartialViewMacroEngine>();
335+
builder.Services.AddSingleton<PartialViewMacroEngine>();
336336

337337
// register the umbraco context factory
338338

@@ -343,12 +343,12 @@ public static IUmbracoBuilder AddWebComponents(this IUmbracoBuilder builder)
343343
builder.WithCollectionBuilder<UmbracoApiControllerTypeCollectionBuilder>()
344344
.Add(umbracoApiControllerTypes);
345345

346-
builder.Services.AddUnique<UmbracoRequestLoggingMiddleware>();
347-
builder.Services.AddUnique<PreviewAuthenticationMiddleware>();
348-
builder.Services.AddUnique<UmbracoRequestMiddleware>();
349-
builder.Services.AddUnique<BootFailedMiddleware>();
346+
builder.Services.AddSingleton<UmbracoRequestLoggingMiddleware>();
347+
builder.Services.AddSingleton<PreviewAuthenticationMiddleware>();
348+
builder.Services.AddSingleton<UmbracoRequestMiddleware>();
349+
builder.Services.AddSingleton<BootFailedMiddleware>();
350350

351-
builder.Services.AddUnique<UmbracoJsonModelBinder>();
351+
builder.Services.AddSingleton<UmbracoJsonModelBinder>();
352352

353353
builder.Services.AddUnique<ITemplateRenderer, TemplateRenderer>();
354354
builder.Services.AddUnique<IPublicAccessChecker, PublicAccessChecker>();

0 commit comments

Comments
 (0)