Remove ObjectPoolProvider from default set of hosting services (#6437)
- Added it where it was being used - Updated tests
This commit is contained in:
parent
3b1a89c1fc
commit
d116ab8550
|
|
@ -39,6 +39,8 @@ namespace Microsoft.Extensions.DependencyInjection
|
|||
services.TryAddSingleton<IAntiforgeryTokenStore, DefaultAntiforgeryTokenStore>();
|
||||
services.TryAddSingleton<IClaimUidExtractor, DefaultClaimUidExtractor>();
|
||||
services.TryAddSingleton<IAntiforgeryAdditionalDataProvider, DefaultAntiforgeryAdditionalDataProvider>();
|
||||
services.TryAddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>();
|
||||
|
||||
|
||||
services.TryAddSingleton<ObjectPool<AntiforgerySerializationContext>>(serviceProvider =>
|
||||
{
|
||||
|
|
|
|||
|
|
@ -96,9 +96,6 @@ namespace Microsoft.AspNetCore.Hosting.Internal
|
|||
// Conjure up a RequestServices
|
||||
services.TryAddTransient<IStartupFilter, AutoRequestServicesStartupFilter>();
|
||||
|
||||
// Ensure object pooling is available everywhere.
|
||||
services.TryAddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>();
|
||||
|
||||
// Support UseStartup(assemblyName)
|
||||
if (!string.IsNullOrEmpty(webHostOptions.StartupAssembly))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
|
|
@ -281,9 +281,6 @@ namespace Microsoft.AspNetCore.Hosting
|
|||
services.AddTransient<IStartupFilter, AutoRequestServicesStartupFilter>();
|
||||
services.AddTransient<IServiceProviderFactory<IServiceCollection>, DefaultServiceProviderFactory>();
|
||||
|
||||
// Ensure object pooling is available everywhere.
|
||||
services.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>();
|
||||
|
||||
if (!string.IsNullOrEmpty(_options.StartupAssembly))
|
||||
{
|
||||
try
|
||||
|
|
|
|||
|
|
@ -112,23 +112,7 @@ namespace Microsoft.AspNetCore.Hosting
|
|||
await AssertResponseContains(server.RequestDelegate, "Exception from constructor");
|
||||
}
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[MemberData(nameof(DefaultWebHostBuildersWithConfig))]
|
||||
public async Task DefaultObjectPoolProvider_IsRegistered(IWebHostBuilder builder)
|
||||
{
|
||||
var server = new TestServer();
|
||||
var host = builder
|
||||
.UseServer(server)
|
||||
.Configure(app => { })
|
||||
.Build();
|
||||
using (host)
|
||||
{
|
||||
await host.StartAsync();
|
||||
Assert.IsType<DefaultObjectPoolProvider>(host.Services.GetService<ObjectPoolProvider>());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[Theory]
|
||||
[MemberData(nameof(DefaultWebHostBuildersWithConfig))]
|
||||
public async Task StartupConfigureServicesThrows_Fallback(IWebHostBuilder builder)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
@ECHO OFF
|
||||
|
||||
%~dp0..\..\startvs.cmd %~dp0Hosting.sln
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
|
|
@ -32,7 +32,6 @@ namespace Microsoft.AspNetCore.Routing
|
|||
private protected IServiceProvider CreateServices()
|
||||
{
|
||||
var services = new ServiceCollection();
|
||||
services.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>();
|
||||
services.AddLogging();
|
||||
services.AddOptions();
|
||||
services.AddRouting();
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ namespace Microsoft.Extensions.DependencyInjection
|
|||
}
|
||||
|
||||
services.TryAddTransient<IInlineConstraintResolver, DefaultInlineConstraintResolver>();
|
||||
services.TryAddTransient<ObjectPoolProvider, DefaultObjectPoolProvider>();
|
||||
services.TryAddSingleton<ObjectPool<UriBuildingContext>>(s =>
|
||||
{
|
||||
var provider = s.GetRequiredService<ObjectPoolProvider>();
|
||||
|
|
@ -121,4 +122,4 @@ namespace Microsoft.Extensions.DependencyInjection
|
|||
return services;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using Microsoft.AspNetCore.Http;
|
||||
|
|
@ -32,7 +32,6 @@ namespace Microsoft.AspNetCore.Routing
|
|||
protected ServiceCollection GetBasicServices()
|
||||
{
|
||||
var services = new ServiceCollection();
|
||||
services.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>();
|
||||
services.AddOptions();
|
||||
services.AddRouting();
|
||||
services.AddLogging();
|
||||
|
|
|
|||
|
|
@ -127,7 +127,6 @@ namespace Microsoft.AspNetCore.Routing
|
|||
private static IServiceProvider CreateServices()
|
||||
{
|
||||
var services = new ServiceCollection();
|
||||
services.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>();
|
||||
services.AddOptions();
|
||||
services.AddRouting();
|
||||
services.AddLogging();
|
||||
|
|
|
|||
|
|
@ -606,7 +606,6 @@ namespace Microsoft.AspNetCore.Routing
|
|||
var request = new Mock<HttpRequest>(MockBehavior.Strict);
|
||||
|
||||
var services = new ServiceCollection();
|
||||
services.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>();
|
||||
services.AddOptions();
|
||||
services.AddRouting();
|
||||
if (options != null)
|
||||
|
|
@ -628,7 +627,6 @@ namespace Microsoft.AspNetCore.Routing
|
|||
{
|
||||
var services = new ServiceCollection();
|
||||
services.AddSingleton<ILoggerFactory>(NullLoggerFactory.Instance);
|
||||
services.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>();
|
||||
services.AddOptions();
|
||||
services.AddRouting();
|
||||
if (options != null)
|
||||
|
|
|
|||
|
|
@ -654,11 +654,10 @@ namespace Microsoft.AspNetCore.Routing
|
|||
public void GetVirtualPath_AlwaysUsesDefaultUrlEncoder()
|
||||
{
|
||||
// Arrange
|
||||
var nameRouteValue = "name with %special #characters Jörn";
|
||||
var nameRouteValue = "name with %special #characters Jörn";
|
||||
var expected = "/Home/Index?name=" + UrlEncoder.Default.Encode(nameRouteValue);
|
||||
var services = new ServiceCollection();
|
||||
services.AddSingleton<ILoggerFactory>(NullLoggerFactory.Instance);
|
||||
services.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>();
|
||||
services.AddRouting();
|
||||
// This test encoder should not be used by Routing and should always use the default one.
|
||||
services.AddSingleton<UrlEncoder>(new UrlTestEncoder());
|
||||
|
|
@ -1521,7 +1520,6 @@ namespace Microsoft.AspNetCore.Routing
|
|||
{
|
||||
var services = new ServiceCollection();
|
||||
services.AddSingleton<ILoggerFactory>(NullLoggerFactory.Instance);
|
||||
services.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>();
|
||||
services.AddRouting();
|
||||
|
||||
var context = new DefaultHttpContext
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
using Microsoft.AspNetCore.ResponseCaching;
|
||||
using Microsoft.AspNetCore.ResponseCaching.Internal;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
using Microsoft.Extensions.ObjectPool;
|
||||
|
||||
namespace Microsoft.Extensions.DependencyInjection
|
||||
{
|
||||
|
|
@ -25,8 +26,9 @@ namespace Microsoft.Extensions.DependencyInjection
|
|||
throw new ArgumentNullException(nameof(services));
|
||||
}
|
||||
|
||||
services.TryAdd(ServiceDescriptor.Singleton<IResponseCachingPolicyProvider, ResponseCachingPolicyProvider>());
|
||||
services.TryAdd(ServiceDescriptor.Singleton<IResponseCachingKeyProvider, ResponseCachingKeyProvider>());
|
||||
services.TryAddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>();
|
||||
services.TryAddSingleton<IResponseCachingPolicyProvider, ResponseCachingPolicyProvider>();
|
||||
services.TryAddSingleton<IResponseCachingKeyProvider, ResponseCachingKeyProvider>();
|
||||
|
||||
return services;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@ namespace MusicStore.Controllers
|
|||
|
||||
var services = new ServiceCollection();
|
||||
services
|
||||
.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>()
|
||||
.AddDbContext<MusicStoreContext>(b => b.UseInMemoryDatabase("Scratch").UseInternalServiceProvider(efServiceProvider));
|
||||
|
||||
services.AddMvc();
|
||||
|
|
@ -238,4 +237,4 @@ namespace MusicStore.Controllers
|
|||
}).ToArray();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ using Microsoft.AspNetCore.Mvc.ApiExplorer;
|
|||
using Microsoft.AspNetCore.Mvc.Formatters;
|
||||
using Microsoft.AspNetCore.Mvc.Formatters.Json;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
using Microsoft.Extensions.ObjectPool;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
|
|
@ -73,6 +74,7 @@ namespace Microsoft.Extensions.DependencyInjection
|
|||
// Internal for testing.
|
||||
internal static void AddJsonFormatterServices(IServiceCollection services)
|
||||
{
|
||||
services.TryAddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>();
|
||||
services.TryAddEnumerable(
|
||||
ServiceDescriptor.Transient<IConfigureOptions<MvcOptions>, MvcJsonMvcOptionsSetup>());
|
||||
services.TryAddEnumerable(
|
||||
|
|
|
|||
|
|
@ -772,7 +772,6 @@ namespace Microsoft.AspNetCore.Mvc.Routing
|
|||
private static TreeRouteBuilder CreateBuilder()
|
||||
{
|
||||
var services = new ServiceCollection()
|
||||
.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>()
|
||||
.AddSingleton<ILoggerFactory>(NullLoggerFactory.Instance)
|
||||
.AddLogging()
|
||||
.AddRouting()
|
||||
|
|
@ -815,7 +814,6 @@ namespace Microsoft.AspNetCore.Mvc.Routing
|
|||
IActionDescriptorCollectionProvider actionDescriptorProvider)
|
||||
{
|
||||
var services = new ServiceCollection()
|
||||
.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>()
|
||||
.AddSingleton<ILoggerFactory>(NullLoggerFactory.Instance)
|
||||
.AddLogging()
|
||||
.AddRouting()
|
||||
|
|
|
|||
|
|
@ -179,10 +179,8 @@ namespace Microsoft.AspNetCore.Mvc.Routing
|
|||
#pragma warning restore CS0618 // Type or member is obsolete
|
||||
|
||||
var services = new ServiceCollection()
|
||||
.AddSingleton<IInlineConstraintResolver>(inlineConstraintResolver)
|
||||
.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>();
|
||||
.AddSingleton<IInlineConstraintResolver>(inlineConstraintResolver);
|
||||
|
||||
services.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>();
|
||||
services.AddRouting();
|
||||
services.AddOptions();
|
||||
services.AddLogging();
|
||||
|
|
|
|||
|
|
@ -195,7 +195,6 @@ namespace Microsoft.AspNetCore.Routing
|
|||
services.AddLogging();
|
||||
services.AddRouting();
|
||||
services
|
||||
.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>()
|
||||
.AddSingleton<UrlEncoder>(UrlEncoder.Default);
|
||||
services.TryAddEnumerable(ServiceDescriptor.Singleton<EndpointDataSource>(new DefaultEndpointDataSource(endpoints)));
|
||||
return services.BuildServiceProvider();
|
||||
|
|
|
|||
|
|
@ -193,7 +193,6 @@ namespace Microsoft.AspNetCore.Routing
|
|||
services.AddLogging();
|
||||
services.AddRouting();
|
||||
services
|
||||
.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>()
|
||||
.AddSingleton<UrlEncoder>(UrlEncoder.Default);
|
||||
services.TryAddEnumerable(ServiceDescriptor.Singleton<EndpointDataSource>(new DefaultEndpointDataSource(endpoints)));
|
||||
return services.BuildServiceProvider();
|
||||
|
|
|
|||
|
|
@ -109,7 +109,6 @@ namespace Microsoft.AspNetCore.Mvc.Routing
|
|||
services.AddLogging();
|
||||
services.AddRouting();
|
||||
services
|
||||
.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>()
|
||||
.AddSingleton<UrlEncoder>(UrlEncoder.Default);
|
||||
|
||||
return services.BuildServiceProvider();
|
||||
|
|
|
|||
|
|
@ -1018,7 +1018,6 @@ namespace Microsoft.AspNetCore.Mvc.Routing
|
|||
services.AddLogging();
|
||||
services.AddRouting();
|
||||
services
|
||||
.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>()
|
||||
.AddSingleton<UrlEncoder>(UrlEncoder.Default);
|
||||
return services;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -117,8 +117,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
|
|||
serviceCollection.AddMvc();
|
||||
serviceCollection
|
||||
.AddSingleton<ILoggerFactory>(NullLoggerFactory.Instance)
|
||||
.AddTransient<ILogger<DefaultAuthorizationService>, Logger<DefaultAuthorizationService>>()
|
||||
.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>();
|
||||
.AddTransient<ILogger<DefaultAuthorizationService>, Logger<DefaultAuthorizationService>>();
|
||||
return serviceCollection.BuildServiceProvider();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
|
|||
// Arrange
|
||||
var serviceCollection = new ServiceCollection();
|
||||
serviceCollection.AddLogging();
|
||||
serviceCollection.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>();
|
||||
serviceCollection.AddMvc();
|
||||
var services = serviceCollection.BuildServiceProvider();
|
||||
|
||||
|
|
@ -37,7 +36,6 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
|
|||
// Arrange
|
||||
var serviceCollection = new ServiceCollection();
|
||||
serviceCollection.AddLogging();
|
||||
serviceCollection.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>();
|
||||
serviceCollection.AddMvc(mvcOptions =>
|
||||
{
|
||||
mvcOptions.ModelMetadataDetailsProviders.Add(new SuppressChildValidationMetadataProvider(typeof(IQueryable)));
|
||||
|
|
|
|||
|
|
@ -193,7 +193,6 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
|
|||
|
||||
serviceCollection.AddMvc();
|
||||
serviceCollection
|
||||
.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>()
|
||||
.AddSingleton<ILoggerFactory>(NullLoggerFactory.Instance)
|
||||
.AddTransient<ILogger<DefaultAuthorizationService>, Logger<DefaultAuthorizationService>>();
|
||||
|
||||
|
|
|
|||
|
|
@ -269,7 +269,6 @@ namespace Microsoft.AspNetCore.Mvc
|
|||
serviceCollection.AddSingleton<DiagnosticListener>(diagnosticListener);
|
||||
serviceCollection.AddMvc();
|
||||
serviceCollection
|
||||
.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>()
|
||||
.AddTransient<ILoggerFactory, LoggerFactory>();
|
||||
|
||||
if (action != null)
|
||||
|
|
|
|||
|
|
@ -256,7 +256,6 @@ namespace Microsoft.AspNetCore.Mvc
|
|||
var services = new ServiceCollection();
|
||||
|
||||
services.AddSingleton<IHostingEnvironment>(GetHostingEnvironment());
|
||||
services.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>();
|
||||
|
||||
var diagnosticListener = new DiagnosticListener("Microsoft.AspNet");
|
||||
services.AddSingleton<DiagnosticSource>(diagnosticListener);
|
||||
|
|
|
|||
|
|
@ -187,7 +187,6 @@ namespace Microsoft.AspNetCore.Mvc
|
|||
{
|
||||
var serviceCollection = new ServiceCollection();
|
||||
serviceCollection
|
||||
.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>()
|
||||
.AddSingleton<ILoggerFactory>(new NullLoggerFactory());
|
||||
|
||||
serviceCollection.AddOptions();
|
||||
|
|
|
|||
|
|
@ -489,7 +489,6 @@ namespace Microsoft.AspNetCore.Mvc
|
|||
{
|
||||
var serviceCollection = new ServiceCollection();
|
||||
serviceCollection
|
||||
.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>()
|
||||
.AddSingleton<ILoggerFactory>(new NullLoggerFactory());
|
||||
|
||||
serviceCollection.AddOptions();
|
||||
|
|
|
|||
Loading…
Reference in New Issue