Fix HttpAbstraction dependencies.

This commit is contained in:
Chris Ross 2014-05-05 17:14:45 -07:00
parent 21616bcde5
commit 903197e1ce
10 changed files with 64 additions and 64 deletions

View File

@ -1,7 +1,7 @@
{
"version" : "0.1-alpha-*",
"dependencies": {
"Microsoft.AspNet.Abstractions": "0.1-alpha-*",
"Microsoft.AspNet.Http": "0.1-alpha-*",
"Microsoft.AspNet.Hosting": "0.1-alpha-*",
"Microsoft.Net.Server": "",
"Microsoft.AspNet.Server.WebListener": ""

View File

@ -28,7 +28,7 @@ using Microsoft.Net.Server;
namespace Microsoft.AspNet.Server.WebListener
{
internal class FeatureContext : IHttpRequestInformation, IHttpConnection, IHttpResponseInformation, IHttpSendFile, IHttpTransportLayerSecurity, IHttpRequestLifetime
internal class FeatureContext : IHttpRequestFeature, IHttpConnectionFeature, IHttpResponseFeature, IHttpSendFileFeature, IHttpTransportLayerSecurityFeature, IHttpRequestLifetimeFeature
{
private RequestContext _requestContext;
private FeatureCollection _features;
@ -74,16 +74,16 @@ namespace Microsoft.AspNet.Server.WebListener
private void PopulateFeatures()
{
_features.Add(typeof(IHttpRequestInformation), this);
_features.Add(typeof(IHttpConnection), this);
_features.Add(typeof(IHttpRequestFeature), this);
_features.Add(typeof(IHttpConnectionFeature), this);
if (Request.IsSecureConnection)
{
// TODO: Should this feature be conditional? Should we add this for HTTP requests?
_features.Add(typeof(IHttpTransportLayerSecurity), this);
_features.Add(typeof(IHttpTransportLayerSecurityFeature), this);
}
_features.Add(typeof(IHttpResponseInformation), this);
_features.Add(typeof(IHttpSendFile), this);
_features.Add(typeof(IHttpRequestLifetime), this);
_features.Add(typeof(IHttpResponseFeature), this);
_features.Add(typeof(IHttpSendFileFeature), this);
_features.Add(typeof(IHttpRequestLifetimeFeature), this);
// TODO:
// _environment.CallCancelled = _cts.Token;
@ -98,9 +98,9 @@ namespace Microsoft.AspNet.Server.WebListener
*/
}
#region IHttpRequestInformation
#region IHttpRequestFeature
Stream IHttpRequestInformation.Body
Stream IHttpRequestFeature.Body
{
get
{
@ -113,7 +113,7 @@ namespace Microsoft.AspNet.Server.WebListener
set { _requestBody = value; }
}
IDictionary<string, string[]> IHttpRequestInformation.Headers
IDictionary<string, string[]> IHttpRequestFeature.Headers
{
get
{
@ -126,7 +126,7 @@ namespace Microsoft.AspNet.Server.WebListener
set { _requestHeaders = value; }
}
string IHttpRequestInformation.Method
string IHttpRequestFeature.Method
{
get
{
@ -139,7 +139,7 @@ namespace Microsoft.AspNet.Server.WebListener
set { _httpMethod = value; }
}
string IHttpRequestInformation.Path
string IHttpRequestFeature.Path
{
get
{
@ -152,7 +152,7 @@ namespace Microsoft.AspNet.Server.WebListener
set { _path = value; }
}
string IHttpRequestInformation.PathBase
string IHttpRequestFeature.PathBase
{
get
{
@ -165,7 +165,7 @@ namespace Microsoft.AspNet.Server.WebListener
set { _pathBase = value; }
}
string IHttpRequestInformation.Protocol
string IHttpRequestFeature.Protocol
{
get
{
@ -190,7 +190,7 @@ namespace Microsoft.AspNet.Server.WebListener
set { _httpProtocolVersion = value; }
}
string IHttpRequestInformation.QueryString
string IHttpRequestFeature.QueryString
{
get
{
@ -203,7 +203,7 @@ namespace Microsoft.AspNet.Server.WebListener
set { _query = value; }
}
string IHttpRequestInformation.Scheme
string IHttpRequestFeature.Scheme
{
get
{
@ -216,8 +216,8 @@ namespace Microsoft.AspNet.Server.WebListener
set { _scheme = value; }
}
#endregion
#region IHttpConnection
bool IHttpConnection.IsLocal
#region IHttpConnectionFeature
bool IHttpConnectionFeature.IsLocal
{
get
{
@ -230,7 +230,7 @@ namespace Microsoft.AspNet.Server.WebListener
set { _isLocal = value; }
}
IPAddress IHttpConnection.LocalIpAddress
IPAddress IHttpConnectionFeature.LocalIpAddress
{
get
{
@ -243,7 +243,7 @@ namespace Microsoft.AspNet.Server.WebListener
set { _localIpAddress = value; }
}
IPAddress IHttpConnection.RemoteIpAddress
IPAddress IHttpConnectionFeature.RemoteIpAddress
{
get
{
@ -256,7 +256,7 @@ namespace Microsoft.AspNet.Server.WebListener
set { _remoteIpAddress = value; }
}
int IHttpConnection.LocalPort
int IHttpConnectionFeature.LocalPort
{
get
{
@ -269,7 +269,7 @@ namespace Microsoft.AspNet.Server.WebListener
set { _localPort = value; }
}
int IHttpConnection.RemotePort
int IHttpConnectionFeature.RemotePort
{
get
{
@ -282,8 +282,8 @@ namespace Microsoft.AspNet.Server.WebListener
set { _remotePort = value; }
}
#endregion
#region IHttpTransportLayerSecurity
X509Certificate IHttpTransportLayerSecurity.ClientCertificate
#region IHttpTransportLayerSecurityFeature
X509Certificate IHttpTransportLayerSecurityFeature.ClientCertificate
{
get
{
@ -296,7 +296,7 @@ namespace Microsoft.AspNet.Server.WebListener
set { _clientCert = value; }
}
async Task IHttpTransportLayerSecurity.LoadAsync()
async Task IHttpTransportLayerSecurityFeature.LoadAsync()
{
if (_clientCert == null)
{
@ -304,8 +304,8 @@ namespace Microsoft.AspNet.Server.WebListener
}
}
#endregion
#region IHttpResponseInformation
Stream IHttpResponseInformation.Body
#region IHttpResponseFeature
Stream IHttpResponseFeature.Body
{
get
{
@ -318,7 +318,7 @@ namespace Microsoft.AspNet.Server.WebListener
set { _responseStream = value; }
}
IDictionary<string, string[]> IHttpResponseInformation.Headers
IDictionary<string, string[]> IHttpResponseFeature.Headers
{
get
{
@ -331,24 +331,24 @@ namespace Microsoft.AspNet.Server.WebListener
set { _responseHeaders = value; }
}
void IHttpResponseInformation.OnSendingHeaders(Action<object> callback, object state)
void IHttpResponseFeature.OnSendingHeaders(Action<object> callback, object state)
{
Response.OnSendingHeaders(callback, state);
}
string IHttpResponseInformation.ReasonPhrase
string IHttpResponseFeature.ReasonPhrase
{
get { return Response.ReasonPhrase; }
set { Response.ReasonPhrase = value; }
}
int IHttpResponseInformation.StatusCode
int IHttpResponseFeature.StatusCode
{
get { return Response.StatusCode; }
set { Response.StatusCode = value; }
}
#endregion
Task IHttpSendFile.SendFileAsync(string path, long offset, long? length, CancellationToken cancellation)
Task IHttpSendFileFeature.SendFileAsync(string path, long offset, long? length, CancellationToken cancellation)
{
return Response.SendFileAsync(path, offset, length, cancellation);
}

View File

@ -2,7 +2,7 @@
"version": "0.1-alpha-*",
"dependencies": {
"Microsoft.Net.Server" : "",
"Microsoft.AspNet.Abstractions": "0.1-alpha-*",
"Microsoft.AspNet.Http": "0.1-alpha-*",
"Microsoft.AspNet.ConfigurationModel": "0.1-alpha-*",
"Microsoft.AspNet.HttpFeature": "0.1-alpha-*",
"Microsoft.AspNet.FeatureModel": "0.1-alpha-*",

View File

@ -1,7 +1,7 @@
{
"version": "0.1-alpha-*",
"dependencies": {
"Microsoft.AspNet.Abstractions" : "0.1-alpha-*",
"Microsoft.AspNet.Http" : "0.1-alpha-*",
"Microsoft.AspNet.HttpFeature" : "0.1-alpha-*"
},
"compilationOptions" : { "allowUnsafe": true },

View File

@ -85,7 +85,7 @@ namespace Microsoft.AspNet.Server.WebListener
using (Utilities.CreateHttpsServer(async env =>
{
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
var tls = httpContext.GetFeature<IHttpTransportLayerSecurity>();
var tls = httpContext.GetFeature<IHttpTransportLayerSecurityFeature>();
Assert.NotNull(tls);
await tls.LoadAsync();
Assert.Null(tls.ClientCertificate);
@ -102,7 +102,7 @@ namespace Microsoft.AspNet.Server.WebListener
using (Utilities.CreateHttpsServer(async env =>
{
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
var tls = httpContext.GetFeature<IHttpTransportLayerSecurity>();
var tls = httpContext.GetFeature<IHttpTransportLayerSecurityFeature>();
Assert.NotNull(tls);
await tls.LoadAsync();
Assert.NotNull(tls.ClientCertificate);

View File

@ -45,7 +45,7 @@ namespace Microsoft.AspNet.Server.WebListener
// General keys
// TODO: Assert.True(env.Get<CancellationToken>("owin.CallCancelled").CanBeCanceled);
var requestInfo = httpContext.GetFeature<IHttpRequestInformation>();
var requestInfo = httpContext.GetFeature<IHttpRequestFeature>();
// Request Keys
Assert.Equal("GET", requestInfo.Method);
@ -60,7 +60,7 @@ namespace Microsoft.AspNet.Server.WebListener
// Server Keys
// TODO: Assert.NotNull(env.Get<IDictionary<string, object>>("server.Capabilities"));
var connectionInfo = httpContext.GetFeature<IHttpConnection>();
var connectionInfo = httpContext.GetFeature<IHttpConnectionFeature>();
Assert.Equal("::1", connectionInfo.RemoteIpAddress.ToString());
Assert.NotEqual(0, connectionInfo.RemotePort);
Assert.Equal("::1", connectionInfo.LocalIpAddress.ToString());
@ -96,8 +96,8 @@ namespace Microsoft.AspNet.Server.WebListener
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
try
{
var requestInfo = httpContext.GetFeature<IHttpRequestInformation>();
var connectionInfo = httpContext.GetFeature<IHttpConnection>();
var requestInfo = httpContext.GetFeature<IHttpRequestFeature>();
var connectionInfo = httpContext.GetFeature<IHttpConnectionFeature>();
// Request Keys
Assert.Equal("http", requestInfo.Scheme);
@ -137,7 +137,7 @@ namespace Microsoft.AspNet.Server.WebListener
using (CreateServer(env =>
{
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
var requestInfo = httpContext.GetFeature<IHttpRequestInformation>();
var requestInfo = httpContext.GetFeature<IHttpRequestFeature>();
try
{
Assert.Equal(expectedPath, requestInfo.Path);

View File

@ -56,7 +56,7 @@ namespace Microsoft.AspNet.Server.WebListener
using (Utilities.CreateHttpServer(env =>
{
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
var responseInfo = httpContext.GetFeature<IHttpResponseInformation>();
var responseInfo = httpContext.GetFeature<IHttpResponseFeature>();
var responseHeaders = responseInfo.Headers;
responseHeaders["WWW-Authenticate"] = new string[] { "custom1" };
return Task.FromResult(0);
@ -80,7 +80,7 @@ namespace Microsoft.AspNet.Server.WebListener
using (Utilities.CreateHttpServer(env =>
{
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
var responseInfo = httpContext.GetFeature<IHttpResponseInformation>();
var responseInfo = httpContext.GetFeature<IHttpResponseFeature>();
var responseHeaders = responseInfo.Headers;
responseHeaders["WWW-Authenticate"] = new string[] { "custom1, and custom2", "custom3" };
return Task.FromResult(0);
@ -104,7 +104,7 @@ namespace Microsoft.AspNet.Server.WebListener
using (Utilities.CreateHttpServer(env =>
{
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
var responseInfo = httpContext.GetFeature<IHttpResponseInformation>();
var responseInfo = httpContext.GetFeature<IHttpResponseFeature>();
var responseHeaders = responseInfo.Headers;
responseHeaders["Custom-Header1"] = new string[] { "custom1, and custom2", "custom3" };
return Task.FromResult(0);
@ -128,7 +128,7 @@ namespace Microsoft.AspNet.Server.WebListener
using (Utilities.CreateHttpServer(env =>
{
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
var responseInfo = httpContext.GetFeature<IHttpResponseInformation>();
var responseInfo = httpContext.GetFeature<IHttpResponseFeature>();
var responseHeaders = responseInfo.Headers;
responseHeaders["Connection"] = new string[] { "Close" };
return Task.FromResult(0);
@ -205,7 +205,7 @@ namespace Microsoft.AspNet.Server.WebListener
using (Utilities.CreateHttpServer(env =>
{
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
var responseInfo = httpContext.GetFeature<IHttpResponseInformation>();
var responseInfo = httpContext.GetFeature<IHttpResponseFeature>();
var responseHeaders = responseInfo.Headers;
responseHeaders["Transfer-Encoding"] = new string[] { "chunked" };
return responseInfo.Body.WriteAsync(new byte[10], 0, 10);
@ -233,7 +233,7 @@ namespace Microsoft.AspNet.Server.WebListener
env =>
{
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
var responseInfo = httpContext.GetFeature<IHttpResponseInformation>();
var responseInfo = httpContext.GetFeature<IHttpResponseFeature>();
var responseHeaders = responseInfo.Headers;
responseHeaders.Add("Custom1", new string[] { "value1a", "value1b" });
responseHeaders.Add("Custom2", new string[] { "value2a, value2b" });
@ -263,7 +263,7 @@ namespace Microsoft.AspNet.Server.WebListener
async env =>
{
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
var responseInfo = httpContext.GetFeature<IHttpResponseInformation>();
var responseInfo = httpContext.GetFeature<IHttpResponseFeature>();
var responseHeaders = responseInfo.Headers;
responseHeaders.Add("Custom1", new string[] { "value1a", "value1b" });
responseHeaders.Add("Custom2", new string[] { "value2a, value2b" });

View File

@ -65,7 +65,7 @@ namespace Microsoft.AspNet.Server.WebListener
Assert.Equal("Overlapped", support.Get<string>("sendfile.Concurrency"));
*/
var sendFile = httpContext.GetFeature<IHttpSendFile>();
var sendFile = httpContext.GetFeature<IHttpSendFileFeature>();
Assert.NotNull(sendFile);
}
catch (Exception ex)
@ -94,7 +94,7 @@ namespace Microsoft.AspNet.Server.WebListener
using (Utilities.CreateHttpServer(env =>
{
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
var sendFile = httpContext.GetFeature<IHttpSendFile>();
var sendFile = httpContext.GetFeature<IHttpSendFileFeature>();
try
{
sendFile.SendFileAsync(string.Empty, 0, null, CancellationToken.None).Wait();
@ -126,7 +126,7 @@ namespace Microsoft.AspNet.Server.WebListener
using (Utilities.CreateHttpServer(env =>
{
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
var sendFile = httpContext.GetFeature<IHttpSendFile>();
var sendFile = httpContext.GetFeature<IHttpSendFileFeature>();
return sendFile.SendFileAsync(AbsoluteFilePath, 0, null, CancellationToken.None);
}))
{
@ -145,7 +145,7 @@ namespace Microsoft.AspNet.Server.WebListener
using (Utilities.CreateHttpServer(env =>
{
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
var sendFile = httpContext.GetFeature<IHttpSendFile>();
var sendFile = httpContext.GetFeature<IHttpSendFileFeature>();
return sendFile.SendFileAsync(RelativeFilePath, 0, null, CancellationToken.None);
}))
{
@ -164,7 +164,7 @@ namespace Microsoft.AspNet.Server.WebListener
using (Utilities.CreateHttpServer(env =>
{
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
var sendFile = httpContext.GetFeature<IHttpSendFile>();
var sendFile = httpContext.GetFeature<IHttpSendFileFeature>();
httpContext.Response.Headers["Transfer-EncodinG"] = "CHUNKED";
return sendFile.SendFileAsync(AbsoluteFilePath, 0, null, CancellationToken.None);
}))
@ -184,7 +184,7 @@ namespace Microsoft.AspNet.Server.WebListener
using (Utilities.CreateHttpServer(env =>
{
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
var sendFile = httpContext.GetFeature<IHttpSendFile>();
var sendFile = httpContext.GetFeature<IHttpSendFileFeature>();
httpContext.Response.Headers["Transfer-EncodinG"] = "CHUNKED";
sendFile.SendFileAsync(AbsoluteFilePath, 0, null, CancellationToken.None).Wait();
return sendFile.SendFileAsync(AbsoluteFilePath, 0, null, CancellationToken.None);
@ -205,7 +205,7 @@ namespace Microsoft.AspNet.Server.WebListener
using (Utilities.CreateHttpServer(env =>
{
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
var sendFile = httpContext.GetFeature<IHttpSendFile>();
var sendFile = httpContext.GetFeature<IHttpSendFileFeature>();
return sendFile.SendFileAsync(AbsoluteFilePath, 0, FileLength / 2, CancellationToken.None);
}))
{
@ -224,7 +224,7 @@ namespace Microsoft.AspNet.Server.WebListener
using (Utilities.CreateHttpServer(env =>
{
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
var sendFile = httpContext.GetFeature<IHttpSendFile>();
var sendFile = httpContext.GetFeature<IHttpSendFileFeature>();
return sendFile.SendFileAsync(AbsoluteFilePath, 1234567, null, CancellationToken.None);
}))
{
@ -239,7 +239,7 @@ namespace Microsoft.AspNet.Server.WebListener
using (Utilities.CreateHttpServer(env =>
{
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
var sendFile = httpContext.GetFeature<IHttpSendFile>();
var sendFile = httpContext.GetFeature<IHttpSendFileFeature>();
return sendFile.SendFileAsync(AbsoluteFilePath, 0, 1234567, CancellationToken.None);
}))
{
@ -254,7 +254,7 @@ namespace Microsoft.AspNet.Server.WebListener
using (Utilities.CreateHttpServer(env =>
{
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
var sendFile = httpContext.GetFeature<IHttpSendFile>();
var sendFile = httpContext.GetFeature<IHttpSendFileFeature>();
return sendFile.SendFileAsync(AbsoluteFilePath, 0, 0, CancellationToken.None);
}))
{
@ -273,7 +273,7 @@ namespace Microsoft.AspNet.Server.WebListener
using (Utilities.CreateHttpServer(env =>
{
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
var sendFile = httpContext.GetFeature<IHttpSendFile>();
var sendFile = httpContext.GetFeature<IHttpSendFileFeature>();
httpContext.Response.Headers["Content-lenGth"] = FileLength.ToString();
return sendFile.SendFileAsync(AbsoluteFilePath, 0, null, CancellationToken.None);
}))
@ -294,7 +294,7 @@ namespace Microsoft.AspNet.Server.WebListener
using (Utilities.CreateHttpServer(env =>
{
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
var sendFile = httpContext.GetFeature<IHttpSendFile>();
var sendFile = httpContext.GetFeature<IHttpSendFileFeature>();
httpContext.Response.Headers["Content-lenGth"] = "10";
return sendFile.SendFileAsync(AbsoluteFilePath, 0, 10, CancellationToken.None);
}))
@ -315,7 +315,7 @@ namespace Microsoft.AspNet.Server.WebListener
using (Utilities.CreateHttpServer(env =>
{
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
var sendFile = httpContext.GetFeature<IHttpSendFile>();
var sendFile = httpContext.GetFeature<IHttpSendFileFeature>();
httpContext.Response.Headers["Content-lenGth"] = "0";
return sendFile.SendFileAsync(AbsoluteFilePath, 0, 0, CancellationToken.None);
}))

View File

@ -74,7 +74,7 @@ namespace Microsoft.AspNet.Server.WebListener
{
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
httpContext.Response.StatusCode = 201;
httpContext.GetFeature<IHttpResponseInformation>().ReasonPhrase = "CustomReasonPhrase"; // TODO?
httpContext.GetFeature<IHttpResponseFeature>().ReasonPhrase = "CustomReasonPhrase"; // TODO?
// TODO: env["owin.ResponseProtocol"] = "HTTP/1.0"; // Http.Sys ignores this value
return Task.FromResult(0);
}))

View File

@ -11,7 +11,7 @@
"xunit.execution": "2.0.0-aspnet-*",
"Microsoft.AspNet.Server.WebListener" : "",
"Microsoft.Net.Server" : "",
"Microsoft.AspNet.Abstractions" : "0.1-alpha-*",
"Microsoft.AspNet.Http" : "0.1-alpha-*",
"Microsoft.AspNet.ConfigurationModel": "0.1-alpha-*",
"Microsoft.AspNet.HttpFeature" : "0.1-alpha-*",
"Microsoft.AspNet.FeatureModel" : "0.1-alpha-*",