Skip to content

Re-added support for NET Framework 4.6.1 #49

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Oct 9, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
@@ -1,22 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<VersionPrefix>7.0.0</VersionPrefix>
<TargetFrameworks>netstandard2.0</TargetFrameworks>
<VersionPrefix>7.0.1</VersionPrefix>
<TargetFrameworks>netstandard2.0;net461</TargetFrameworks>
<AssemblyName>Elasticsearch.Net.Aws</AssemblyName>
<PackageId>Elasticsearch.Net.Aws</PackageId>
<PackageVersion>7.0.0</PackageVersion>
<PackageVersion>7.0.1</PackageVersion>
<Authors>Brandon Cuff</Authors>
<Description>Enables request signing necessary for using the AWS Elasticsearch service.</Description>
<Copyright>Copyright 2015</Copyright>
<PackageLicenseUrl>https://raw.githubusercontent.com/bcuff/elasticsearch-net-aws/master/LICENSE</PackageLicenseUrl>
<PackageProjectUrl>https://github.com/bcuff/elasticsearch-net-aws</PackageProjectUrl>
<PackageReleaseNotes>Support NEST 7.0.0</PackageReleaseNotes>
<PackageReleaseNotes>Support NET Framework 4.6.1</PackageReleaseNotes>
<PackageTags>elasticsearch elastic search aws amazon</PackageTags>
<RepositoryUrl>https://github.com/bcuff/elasticsearch-net-aws</RepositoryUrl>
<AssemblyVersion>7.0.0</AssemblyVersion>
<FileVersion>7.0.0</FileVersion>
<Version>7.0.0</Version>
<AssemblyVersion>7.0.1</AssemblyVersion>
<FileVersion>7.0.1</FileVersion>
<Version>7.0.1</Version>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)' == 'Release'">
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