Revert breaking KestrelServer ctor change (#26367)
This commit is contained in:
parent
792df8a4c2
commit
ccc59b91c4
|
|
@ -54,8 +54,8 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core
|
|||
}
|
||||
|
||||
// For testing
|
||||
internal KestrelServerImpl(IEnumerable<IConnectionListenerFactory> transportFactories, ServiceContext serviceContext)
|
||||
: this(transportFactories, null, serviceContext)
|
||||
internal KestrelServerImpl(IConnectionListenerFactory transportFactory, ServiceContext serviceContext)
|
||||
: this(new[] { transportFactory }, null, serviceContext)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,12 @@
|
|||
// 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.Collections.Generic;
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Connections;
|
||||
using Microsoft.AspNetCore.Hosting.Server;
|
||||
using Microsoft.AspNetCore.Http.Features;
|
||||
using Microsoft.AspNetCore.Server.Kestrel.Core.Internal;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
|
|
@ -17,18 +16,12 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core
|
|||
{
|
||||
private KestrelServerImpl _innerKestrelServer;
|
||||
|
||||
public KestrelServer(
|
||||
IOptions<KestrelServerOptions> options,
|
||||
IEnumerable<IConnectionListenerFactory> transportFactories,
|
||||
ILoggerFactory loggerFactory)
|
||||
public KestrelServer(IOptions<KestrelServerOptions> options, IConnectionListenerFactory transportFactory, ILoggerFactory loggerFactory)
|
||||
{
|
||||
_innerKestrelServer = new KestrelServerImpl(options, transportFactories, loggerFactory);
|
||||
}
|
||||
|
||||
// For testing
|
||||
internal KestrelServer(IEnumerable<IConnectionListenerFactory> transportFactories, ServiceContext serviceContext)
|
||||
{
|
||||
_innerKestrelServer = new KestrelServerImpl(transportFactories, serviceContext);
|
||||
_innerKestrelServer = new KestrelServerImpl(
|
||||
options,
|
||||
new[] { transportFactory ?? throw new ArgumentNullException(nameof(transportFactory)) },
|
||||
loggerFactory);
|
||||
}
|
||||
|
||||
public IFeatureCollection Features => _innerKestrelServer.Features;
|
||||
|
|
|
|||
|
|
@ -164,7 +164,7 @@ Microsoft.AspNetCore.Server.Kestrel.KestrelConfigurationLoader.Load() -> void
|
|||
~Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpParser<TRequestHandler>.ParseHeaders(TRequestHandler handler, ref System.Buffers.SequenceReader<byte> reader) -> bool
|
||||
~Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpParser<TRequestHandler>.ParseRequestLine(TRequestHandler handler, ref System.Buffers.SequenceReader<byte> reader) -> bool
|
||||
~Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServer.Features.get -> Microsoft.AspNetCore.Http.Features.IFeatureCollection
|
||||
~Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServer.KestrelServer(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions> options, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Connections.IConnectionListenerFactory> transportFactories, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void
|
||||
~Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServer.KestrelServer(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions> options, Microsoft.AspNetCore.Connections.IConnectionListenerFactory transportFactory, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void
|
||||
~Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServer.Options.get -> Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions
|
||||
~Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServer.StartAsync<TContext>(Microsoft.AspNetCore.Hosting.Server.IHttpApplication<TContext> application, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task
|
||||
~Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServer.StopAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task
|
||||
|
|
|
|||
|
|
@ -208,12 +208,12 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
|
|||
var mockLoggerFactory = new Mock<ILoggerFactory>();
|
||||
var mockLogger = new Mock<ILogger>();
|
||||
mockLoggerFactory.Setup(m => m.CreateLogger(It.IsAny<string>())).Returns(mockLogger.Object);
|
||||
new KestrelServer(Options.Create<KestrelServerOptions>(null), new List<IConnectionListenerFactory>() { new MockTransportFactory() }, mockLoggerFactory.Object);
|
||||
new KestrelServer(Options.Create<KestrelServerOptions>(null), new MockTransportFactory(), mockLoggerFactory.Object);
|
||||
mockLoggerFactory.Verify(factory => factory.CreateLogger("Microsoft.AspNetCore.Server.Kestrel"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ConstructorWithNullTransportFactoriesThrows()
|
||||
public void ConstructorWithNullTransportFactoryThrows()
|
||||
{
|
||||
var exception = Assert.Throws<ArgumentNullException>(() =>
|
||||
new KestrelServer(
|
||||
|
|
@ -221,14 +221,14 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
|
|||
null,
|
||||
new LoggerFactory(new[] { new KestrelTestLoggerProvider() })));
|
||||
|
||||
Assert.Equal("transportFactories", exception.ParamName);
|
||||
Assert.Equal("transportFactory", exception.ParamName);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ConstructorWithNoTransportFactoriesThrows()
|
||||
{
|
||||
var exception = Assert.Throws<InvalidOperationException>(() =>
|
||||
new KestrelServer(
|
||||
new KestrelServerImpl(
|
||||
Options.Create<KestrelServerOptions>(null),
|
||||
new List<IConnectionListenerFactory>(),
|
||||
new LoggerFactory(new[] { new KestrelTestLoggerProvider() })));
|
||||
|
|
@ -239,7 +239,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
|
|||
[Fact]
|
||||
public void StartWithMultipleTransportFactoriesDoesNotThrow()
|
||||
{
|
||||
using var server = new KestrelServer(
|
||||
using var server = new KestrelServerImpl(
|
||||
Options.Create(CreateServerOptions()),
|
||||
new List<IConnectionListenerFactory>() { new ThrowingTransportFactory(), new MockTransportFactory() },
|
||||
new LoggerFactory(new[] { new KestrelTestLoggerProvider() }));
|
||||
|
|
@ -285,7 +285,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
|
|||
var mockLoggerFactory = new Mock<ILoggerFactory>();
|
||||
var mockLogger = new Mock<ILogger>();
|
||||
mockLoggerFactory.Setup(m => m.CreateLogger(It.IsAny<string>())).Returns(mockLogger.Object);
|
||||
var server = new KestrelServer(Options.Create(options), new List<IConnectionListenerFactory>() { mockTransportFactory.Object }, mockLoggerFactory.Object);
|
||||
var server = new KestrelServer(Options.Create(options), mockTransportFactory.Object, mockLoggerFactory.Object);
|
||||
await server.StartAsync(new DummyApplication(), CancellationToken.None);
|
||||
|
||||
var stopTask1 = server.StopAsync(default);
|
||||
|
|
@ -343,7 +343,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
|
|||
var mockLoggerFactory = new Mock<ILoggerFactory>();
|
||||
var mockLogger = new Mock<ILogger>();
|
||||
mockLoggerFactory.Setup(m => m.CreateLogger(It.IsAny<string>())).Returns(mockLogger.Object);
|
||||
var server = new KestrelServer(Options.Create(options), new List<IConnectionListenerFactory>() { mockTransportFactory.Object }, mockLoggerFactory.Object);
|
||||
var server = new KestrelServer(Options.Create(options), mockTransportFactory.Object, mockLoggerFactory.Object);
|
||||
await server.StartAsync(new DummyApplication(), CancellationToken.None);
|
||||
|
||||
var stopTask1 = server.StopAsync(default);
|
||||
|
|
@ -398,7 +398,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
|
|||
var mockLoggerFactory = new Mock<ILoggerFactory>();
|
||||
var mockLogger = new Mock<ILogger>();
|
||||
mockLoggerFactory.Setup(m => m.CreateLogger(It.IsAny<string>())).Returns(mockLogger.Object);
|
||||
var server = new KestrelServer(Options.Create(options), new List<IConnectionListenerFactory>() { mockTransportFactory.Object }, mockLoggerFactory.Object);
|
||||
var server = new KestrelServer(Options.Create(options), mockTransportFactory.Object, mockLoggerFactory.Object);
|
||||
await server.StartAsync(new DummyApplication(), default);
|
||||
|
||||
var stopTask1 = server.StopAsync(default);
|
||||
|
|
@ -444,7 +444,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
|
|||
DebuggerWrapper.Singleton,
|
||||
testContext.Log);
|
||||
|
||||
using (var server = new KestrelServer(new List<IConnectionListenerFactory>() { new MockTransportFactory() }, testContext))
|
||||
using (var server = new KestrelServerImpl(new MockTransportFactory(), testContext))
|
||||
{
|
||||
Assert.Null(testContext.DateHeaderValueManager.GetDateHeaderValues());
|
||||
|
||||
|
|
@ -526,7 +526,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
|
|||
});
|
||||
|
||||
// Don't use "using". Dispose() could hang if test fails.
|
||||
var server = new KestrelServer(Options.Create(options), new List<IConnectionListenerFactory>() { mockTransportFactory.Object }, mockLoggerFactory.Object);
|
||||
var server = new KestrelServer(Options.Create(options), mockTransportFactory.Object, mockLoggerFactory.Object);
|
||||
|
||||
await server.StartAsync(new DummyApplication(), CancellationToken.None).DefaultTimeout();
|
||||
|
||||
|
|
@ -663,7 +663,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
|
|||
});
|
||||
|
||||
// Don't use "using". Dispose() could hang if test fails.
|
||||
var server = new KestrelServer(Options.Create(options), new List<IConnectionListenerFactory>() { mockTransportFactory.Object }, mockLoggerFactory.Object);
|
||||
var server = new KestrelServer(Options.Create(options), mockTransportFactory.Object, mockLoggerFactory.Object);
|
||||
|
||||
await server.StartAsync(new DummyApplication(), CancellationToken.None).DefaultTimeout();
|
||||
|
||||
|
|
@ -677,12 +677,12 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
|
|||
|
||||
private static KestrelServer CreateServer(KestrelServerOptions options, ILogger testLogger)
|
||||
{
|
||||
return new KestrelServer(Options.Create(options), new List<IConnectionListenerFactory>() { new MockTransportFactory() }, new LoggerFactory(new[] { new KestrelTestLoggerProvider(testLogger) }));
|
||||
return new KestrelServer(Options.Create(options), new MockTransportFactory(), new LoggerFactory(new[] { new KestrelTestLoggerProvider(testLogger) }));
|
||||
}
|
||||
|
||||
private static KestrelServer CreateServer(KestrelServerOptions options, bool throwOnCriticalErrors = true)
|
||||
{
|
||||
return new KestrelServer(Options.Create(options), new List<IConnectionListenerFactory>() { new MockTransportFactory() }, new LoggerFactory(new[] { new KestrelTestLoggerProvider(throwOnCriticalErrors) }));
|
||||
return new KestrelServer(Options.Create(options), new MockTransportFactory(), new LoggerFactory(new[] { new KestrelTestLoggerProvider(throwOnCriticalErrors) }));
|
||||
}
|
||||
|
||||
private static void StartDummyApplication(IServer server)
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
|
|||
c.Configure(context.ServerOptions);
|
||||
}
|
||||
|
||||
return new KestrelServer(new List<IConnectionListenerFactory>() { sp.GetRequiredService<IConnectionListenerFactory>() }, context);
|
||||
return new KestrelServerImpl(sp.GetRequiredService<IConnectionListenerFactory>(), context);
|
||||
});
|
||||
configureServices(services);
|
||||
})
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests.TestTrans
|
|||
{
|
||||
context.ServerOptions.ApplicationServices = sp;
|
||||
configureKestrel(context.ServerOptions);
|
||||
return new KestrelServer(new List<IConnectionListenerFactory>() { _transportFactory }, context);
|
||||
return new KestrelServerImpl(_transportFactory, context);
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue