Skip to content

Commit

Permalink
Support for net461
Browse files Browse the repository at this point in the history
  • Loading branch information
bcuff committed Oct 9, 2019
1 parent 9c7c500 commit 4236189
Show file tree
Hide file tree
Showing 9 changed files with 102 additions and 8 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -203,3 +203,5 @@ FakesAssemblies/

# snk key file
*.snk

.ionide/
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFrameworks>netcoreapp2.2;net461</TargetFrameworks>
<AssemblyName>ElasticSearch.Net.Aws.IntegrationTests</AssemblyName>
<PackageId>ElasticSearch.Net.Aws.IntegrationTests</PackageId>
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
Expand All @@ -17,8 +17,9 @@
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.*" />
<PackageReference Include="NUnit" Version="3.7.*" />
<PackageReference Include="NEST" Version="7.0.0-beta1" />
<PackageReference Include="NEST" Version="7.0.0" />
<PackageReference Include="NUnit3TestAdapter" Version="3.8.0" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"endpoint": "<your aws elasticsearch service endpoint>",
"region": "us-east-1"
"endpoint": "https://search-dice-preview-logging-k4u5ga2hk4tk5muztuduyi7tea.us-east-1.es.amazonaws.com",
"region": "us-east-1"
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>netcoreapp2.0</TargetFrameworks>
<TargetFrameworks>netcoreapp2.0;net461</TargetFrameworks>
<AssemblyName>ElasticSearch.Net.Aws.Tests</AssemblyName>
<PackageId>ElasticSearch.Net.Aws.Tests</PackageId>
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
using Amazon.Runtime;
using Elasticsearch.Net.Aws;
using NUnit.Framework;
#if NETFRAMEWORK
using System.Net;
#endif

namespace Tests
{
Expand All @@ -18,11 +21,20 @@ public void SetUp()
{
var encoding = new UTF8Encoding(false);
_sampleBody = encoding.GetBytes("Action=ListUsers&Version=2010-05-08");
#if NETCOREAPP
var request = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Post, "https://iam.amazonaws.com/");
request.Content = new System.Net.Http.ByteArrayContent(_sampleBody);
request.Content.Headers.TryAddWithoutValidation("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
request.Headers.TryAddWithoutValidation("X-Amz-Date", "20110909T233600Z");
_sampleRequest = new HttpRequestMessageAdapter(request);
#else
var request = HttpWebRequest.CreateHttp("https://iam.amazonaws.com/");
request.Method = "POST";
//request.Content = new System.Net.Http.ByteArrayContent(_sampleBody);
request.ContentType = "application/x-www-form-urlencoded; charset=utf-8";
request.Headers["X-Amz-Date"] = "20110909T233600Z";
_sampleRequest = new HttpWebRequestAdapter(request);
#endif
}

[Test]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System;
using System.IO;
using System.Net;
using System.Net.Http;
using Amazon;
using Amazon.Runtime;
Expand Down Expand Up @@ -43,12 +44,42 @@ public AwsHttpConnection() : this(
{
}

#if NETSTANDARD
protected override HttpRequestMessage CreateHttpRequestMessage(RequestData requestData)
{
var request = base.CreateHttpRequestMessage(requestData);
SignRequest(new HttpRequestMessageAdapter(request), requestData);
return request;
}
#else
static int _createHttpRequestDepth;

HttpWebRequest CreateWebRequestInternal(RequestData requestData, Func<RequestData, HttpWebRequest> creator)
{
_createHttpRequestDepth++;
HttpWebRequest ret;
try
{
ret = creator(requestData);
}
finally
{
_createHttpRequestDepth--;
}
if (_createHttpRequestDepth == 0)
{
SignRequest(new HttpWebRequestAdapter(ret), requestData);
}
return ret;

}

protected override HttpWebRequest CreateHttpWebRequest(RequestData requestData)
=> CreateWebRequestInternal(requestData, base.CreateHttpWebRequest);

protected override HttpWebRequest CreateWebRequest(RequestData requestData)
=> CreateWebRequestInternal(requestData, base.CreateWebRequest);
#endif

private void SignRequest(IRequest request, RequestData requestData)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<PropertyGroup>
<VersionPrefix>7.0.0</VersionPrefix>
<TargetFrameworks>netstandard2.0</TargetFrameworks>
<TargetFrameworks>netstandard2.0;net461</TargetFrameworks>
<AssemblyName>Elasticsearch.Net.Aws</AssemblyName>
<PackageId>Elasticsearch.Net.Aws</PackageId>
<PackageVersion>7.0.0</PackageVersion>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System;
#if NETSTANDARD
using System;
using System.Net.Http;
using System.Collections.Generic;
using System.Linq;
Expand Down Expand Up @@ -43,4 +44,5 @@ public HttpRequestMessageAdapter(HttpRequestMessage message)
public string Method => _message.Method.ToString();
public Uri RequestUri => _message.RequestUri;
}
}
}
#endif
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#if NETFRAMEWORK
using System;
using System.Collections.Generic;
using System.Net;
using System.Text;

namespace Elasticsearch.Net.Aws
{
class HttpWebRequestAdapter : IRequest, IHeaders
{
readonly HttpWebRequest _request;
public HttpWebRequestAdapter(HttpWebRequest request)
{
_request = request;
}

public IHeaders Headers => this;

public string Method => _request.Method;

public Uri RequestUri => _request.Address;

public string XAmzDate
{
get => _request.Headers["x-amz-date"];
set => _request.Headers["x-amz-date"] = value;
}

public string Authorization
{
get => _request.Headers[HttpRequestHeader.Authorization];
set => _request.Headers[HttpRequestHeader.Authorization] = value;
}

public string XAmzSecurityToken
{
get => _request.Headers["x-amz-security-token"];
set => _request.Headers["x-amz-security-token"] = value;
}

public IEnumerable<string> Keys => _request.Headers.AllKeys;

public IEnumerable<string> GetValues(string name) => _request.Headers.GetValues(name);
}
}
#endif

0 comments on commit 4236189

Please sign in to comment.