Skip to content

Commit dd1fd58

Browse files
committed
Rename IHttpRequestAdapterFeature->IHttpResponseAdapterFeature
This feature is to expose additional functionality for the response and is misnamed.
1 parent a0cfa40 commit dd1fd58

File tree

6 files changed

+22
-22
lines changed

6 files changed

+22
-22
lines changed

src/Microsoft.AspNetCore.SystemWebAdapters.CoreServices/BufferResponseStreamMiddleware.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ private async Task BufferResponseStreamAsync(HttpContextCore context, BufferResp
3636
await using var bufferedFeature = new HttpRequestAdapterFeature(responseBodyFeature, metadata);
3737

3838
context.Features.Set<IHttpResponseBodyFeature>(bufferedFeature);
39-
context.Features.Set<IHttpRequestAdapterFeature>(bufferedFeature);
39+
context.Features.Set<IHttpResponseAdapterFeature>(bufferedFeature);
4040

4141
try
4242
{
@@ -46,7 +46,7 @@ private async Task BufferResponseStreamAsync(HttpContextCore context, BufferResp
4646
finally
4747
{
4848
context.Features.Set(responseBodyFeature);
49-
context.Features.Set<IHttpRequestAdapterFeature>(null);
49+
context.Features.Set<IHttpResponseAdapterFeature>(null);
5050
}
5151
}
5252
}

src/Microsoft.AspNetCore.SystemWebAdapters.CoreServices/HttpRequestAdapterFeature.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
namespace Microsoft.AspNetCore.SystemWebAdapters;
1414

1515
/// <summary>
16-
/// This feature implements the <see cref="IHttpRequestAdapterFeature"/> to expose functionality for the adapters. As part of that,
16+
/// This feature implements the <see cref="IHttpResponseAdapterFeature"/> to expose functionality for the adapters. As part of that,
1717
/// it overrides the following features as well:
1818
///
1919
/// <list>
@@ -22,7 +22,7 @@ namespace Microsoft.AspNetCore.SystemWebAdapters;
2222
/// </item>
2323
/// </list>
2424
/// </summary>
25-
internal class HttpRequestAdapterFeature : Stream, IHttpResponseBodyFeature, IHttpRequestAdapterFeature
25+
internal class HttpRequestAdapterFeature : Stream, IHttpResponseBodyFeature, IHttpResponseAdapterFeature
2626
{
2727
private enum StreamState
2828
{
@@ -73,17 +73,17 @@ Task IHttpResponseBodyFeature.StartAsync(CancellationToken cancellationToken)
7373

7474
PipeWriter IHttpResponseBodyFeature.Writer => _pipeWriter ??= PipeWriter.Create(this, new StreamPipeWriterOptions(leaveOpen: true));
7575

76-
bool IHttpRequestAdapterFeature.SuppressContent
76+
bool IHttpResponseAdapterFeature.SuppressContent
7777
{
7878
get => _suppressContent;
7979
set => _suppressContent = value;
8080
}
8181

82-
Task IHttpRequestAdapterFeature.EndAsync() => CompleteAsync();
82+
Task IHttpResponseAdapterFeature.EndAsync() => CompleteAsync();
8383

84-
bool IHttpRequestAdapterFeature.IsEnded => _state == StreamState.Complete;
84+
bool IHttpResponseAdapterFeature.IsEnded => _state == StreamState.Complete;
8585

86-
void IHttpRequestAdapterFeature.ClearContent()
86+
void IHttpResponseAdapterFeature.ClearContent()
8787
{
8888
if (_bufferedStream is not null)
8989
{

src/Microsoft.AspNetCore.SystemWebAdapters.CoreServices/Mvc/ResponseEndFilter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public ResponseEndFilter(ILogger<ResponseEndFilter> logger)
2020

2121
public void OnActionExecuted(ActionExecutedContext context)
2222
{
23-
if (context.Result is not null && context.HttpContext.Features.Get<IHttpRequestAdapterFeature>() is { IsEnded: true })
23+
if (context.Result is not null && context.HttpContext.Features.Get<IHttpResponseAdapterFeature>() is { IsEnded: true })
2424
{
2525
LogClearingResult();
2626
context.Result = null;

src/Microsoft.AspNetCore.SystemWebAdapters/Adapters/IHttpRequestAdapterFeature.cs renamed to src/Microsoft.AspNetCore.SystemWebAdapters/Adapters/IHttpResponseAdapterFeature.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
namespace Microsoft.AspNetCore.SystemWebAdapters;
99

10-
internal interface IHttpRequestAdapterFeature
10+
internal interface IHttpResponseAdapterFeature
1111
{
1212
bool IsEnded { get; }
1313

src/Microsoft.AspNetCore.SystemWebAdapters/HttpResponse.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,17 @@ public class HttpResponse
2525

2626
private NameValueCollection? _headers;
2727
private ResponseHeaders? _typedHeaders;
28-
private IHttpRequestAdapterFeature? _adapterFeature;
28+
private FeatureReference<IHttpResponseAdapterFeature> _adapterFeature;
2929
private TextWriter? _writer;
3030
private HttpCookieCollection? _cookies;
3131

3232
internal HttpResponse(HttpResponseCore response)
3333
{
3434
_response = response;
35+
_adapterFeature = FeatureReference<IHttpResponseAdapterFeature>.Default;
3536
}
3637

37-
private IHttpRequestAdapterFeature AdapterFeature => _adapterFeature ??= _response.HttpContext.Features.Get<IHttpRequestAdapterFeature>()
38-
?? throw new InvalidOperationException($"Response buffering must be enabled on this endpoint for this API via the BufferResponseStreamAttribute metadata item");
38+
private IHttpResponseAdapterFeature AdapterFeature => _adapterFeature.Fetch(_response.HttpContext.Features) ?? throw new InvalidOperationException($"Response buffering must be enabled on this endpoint for this API via the BufferResponseStreamAttribute metadata item");
3939

4040
internal ResponseHeaders TypedHeaders => _typedHeaders ??= new(_response.Headers);
4141

test/Microsoft.AspNetCore.SystemWebAdapters.Tests/HttpResponseTests.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -106,11 +106,11 @@ public void TrySkipIisCustomErrors(bool isEnabled)
106106
public void SuppressContent(bool suppressContent)
107107
{
108108
// Arrange
109-
var feature = new Mock<IHttpRequestAdapterFeature>();
109+
var feature = new Mock<IHttpResponseAdapterFeature>();
110110
feature.SetupProperty(f => f.SuppressContent);
111111

112112
var features = new Mock<IFeatureCollection>();
113-
features.Setup(f => f.Get<IHttpRequestAdapterFeature>()).Returns(feature.Object);
113+
features.Setup(f => f[typeof(IHttpResponseAdapterFeature)]).Returns(feature.Object);
114114

115115
var context = new Mock<HttpContextCore>();
116116
context.Setup(c => c.Features).Returns(features.Object);
@@ -133,10 +133,10 @@ public void SuppressContent(bool suppressContent)
133133
public void End()
134134
{
135135
// Arrange
136-
var feature = new Mock<IHttpRequestAdapterFeature>();
136+
var feature = new Mock<IHttpResponseAdapterFeature>();
137137

138138
var features = new Mock<IFeatureCollection>();
139-
features.Setup(f => f.Get<IHttpRequestAdapterFeature>()).Returns(feature.Object);
139+
features.Setup(f => f[typeof(IHttpResponseAdapterFeature)]).Returns(feature.Object);
140140

141141
var context = new Mock<HttpContextCore>();
142142
context.Setup(c => c.Features).Returns(features.Object);
@@ -258,11 +258,11 @@ public void Clear()
258258
{ HeaderNames.ContentType, "application/json" },
259259
};
260260

261-
var feature = new Mock<IHttpRequestAdapterFeature>();
261+
var feature = new Mock<IHttpResponseAdapterFeature>();
262262
var responseFeature = new Mock<IHttpResponseFeature>();
263263

264264
var features = new Mock<IFeatureCollection>();
265-
features.Setup(f => f.Get<IHttpRequestAdapterFeature>()).Returns(feature.Object);
265+
features.Setup(f => f[typeof(IHttpResponseAdapterFeature)]).Returns(feature.Object);
266266
features.Setup(f => f.Get<IHttpResponseFeature>()).Returns(responseFeature.Object);
267267

268268
var body = new Mock<Stream>();
@@ -290,11 +290,11 @@ public void Clear()
290290
public void ClearContentsStreamNotSeekable()
291291
{
292292
// Arrange
293-
var feature = new Mock<IHttpRequestAdapterFeature>();
293+
var feature = new Mock<IHttpResponseAdapterFeature>();
294294
var body = new Mock<Stream>();
295295

296296
var features = new Mock<IFeatureCollection>();
297-
features.Setup(f => f.Get<IHttpRequestAdapterFeature>()).Returns(feature.Object);
297+
features.Setup(f => f[typeof(IHttpResponseAdapterFeature)]).Returns(feature.Object);
298298

299299
var context = new Mock<HttpContextCore>();
300300
context.Setup(c => c.Features).Returns(features.Object);
@@ -490,7 +490,7 @@ public void RedirectPermanent(bool? endResponse)
490490
var url = _fixture.Create<string>();
491491
var features = new FeatureCollection();
492492

493-
var bufferedBody = new Mock<IHttpRequestAdapterFeature>();
493+
var bufferedBody = new Mock<IHttpResponseAdapterFeature>();
494494
bufferedBody.SetupAllProperties();
495495
features.Set(bufferedBody.Object);
496496

0 commit comments

Comments
 (0)