Skip to content

AWS Common Runtime HTTP client preview #2021

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 129 commits into from
Sep 5, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
129 commits
Select commit Hold shift + click to select a range
37070b1
Add Support for AWS Common Runtime Http Client
alexw91 Jun 13, 2019
e4e05de
Fix Race condition in Unit Tests
alexw91 Jul 23, 2019
3af0d5d
Rebase onto latest master branch
alexw91 Jul 23, 2019
d9ad52c
Update AWS CRT Client to use Connection Manager
alexw91 Aug 8, 2019
b48b6f8
Update to latest master branch
alexw91 Aug 12, 2019
16e7e5a
Add aws-crt-client benchmark
andrewhop Aug 27, 2019
b57d1ed
Update CRT Client
alexw91 Aug 28, 2019
e041e57
Update CRT Client and add Stress Test
alexw91 Aug 28, 2019
eb06fd2
Benchmark Fixes
alexw91 Aug 30, 2019
1e02f56
Rename to AwsCrtCombinatorialConfigStressIntegrationTest
alexw91 Aug 30, 2019
87d92b0
Remove CrtResource Dependency injection
alexw91 Sep 3, 2019
7d02a4c
Update JavaDocs
alexw91 Sep 3, 2019
326c0e0
Address Code Review Feedback
alexw91 Sep 9, 2019
0878ffb
Don't leak Native CrtResources if error occurs during close
alexw91 Sep 10, 2019
c159d0c
Update to new API
alexw91 Sep 13, 2019
060092f
Merge branch 'master' into update
andrewhop Oct 31, 2019
08e4c52
Update aws-crt-client with up to date parent artifact version
andrewhop Nov 1, 2019
d070541
Merge pull request #1495 from andrewhop/update
dagnir Nov 1, 2019
302c149
Update to 0.3.35 of the CRT with minor API changes
andrewhop Oct 25, 2019
efb7257
Merge pull request #1485 from andrewhop/aws-crt-dev-preview
dagnir Nov 1, 2019
eede205
Add Support for AWS Common Runtime Http Client
alexw91 Jun 13, 2019
c5af239
Fix Race condition in Unit Tests
alexw91 Jul 23, 2019
8d5feb9
Rebase onto latest master branch
alexw91 Jul 23, 2019
0bae5db
Update AWS CRT Client to use Connection Manager
alexw91 Aug 8, 2019
10eab3e
Update to latest master branch
alexw91 Aug 12, 2019
fbce50d
Add aws-crt-client benchmark
andrewhop Aug 27, 2019
5429e87
Update CRT Client
alexw91 Aug 28, 2019
0833b3c
Update CRT Client and add Stress Test
alexw91 Aug 28, 2019
78f708e
Benchmark Fixes
alexw91 Aug 30, 2019
f27da8c
Rename to AwsCrtCombinatorialConfigStressIntegrationTest
alexw91 Aug 30, 2019
28a9265
Remove CrtResource Dependency injection
alexw91 Sep 3, 2019
35162a0
Update JavaDocs
alexw91 Sep 3, 2019
38f3d3d
Address Code Review Feedback
alexw91 Sep 9, 2019
09e37b7
Don't leak Native CrtResources if error occurs during close
alexw91 Sep 10, 2019
eb38334
Update to new API
alexw91 Sep 13, 2019
53b57f6
Update aws-crt-client with up to date parent artifact version
andrewhop Nov 1, 2019
64396e4
Update to 0.3.35 of the CRT with minor API changes
andrewhop Oct 25, 2019
7226040
Updating version in pom and fixing checkstyle errors
rccarper Apr 3, 2020
2594444
Merge branch 'aws-crt-dev-preview' into aws-crt-dev-preview-master
rccarper Apr 3, 2020
01b065e
Updating version to 2.11.7-PREVIEW
rccarper Apr 3, 2020
216d0fc
Changing version to 0.2.0-PREVIEW
rccarper Apr 6, 2020
ab8811b
Updated crt http client to use latest crt api, which uses byte[] for …
JonathanHenson Nov 4, 2019
2ab6a2b
Removed old comment.
JonathanHenson Nov 4, 2019
4d556cd
Fixed build failures.
JonathanHenson Nov 5, 2019
0438595
Fixed benchmark builds.
JonathanHenson Nov 5, 2019
78cf6df
Removed unused import.
JonathanHenson Nov 5, 2019
240e714
Fixed SPI test.
JonathanHenson Nov 5, 2019
b5e7f44
Hopefully fix the build this time.
JonathanHenson Nov 5, 2019
e84afd2
Updating SDK to work with most recent CRT
rccarper Jan 10, 2020
619458c
Taking out incorrect try-with-resources block
rccarper Jan 27, 2020
fbf0544
Updating to latest SDK snapshot and CRT
rccarper Jan 28, 2020
f84e801
Adjusting usage of builder, removing whitespace change.
rccarper Jan 29, 2020
34694e8
Updating snapshot version
rccarper Mar 1, 2020
53886c0
Updating copyright headers
rccarper Mar 1, 2020
b16ef07
Fixing checkstyle warning for 'TLS' being more than 2 consecutive cap…
rccarper Mar 1, 2020
d362c0d
Updating snapshot and CRT version
rccarper Mar 24, 2020
e8aaa17
Grabbing commit 025c43c52d4bf92ae36959e8b8a473589ba3345a: Update AWS …
alexw91 Mar 31, 2020
3d5a4ab
Updating snapshot version and adding aws-crt-client to tests coverage…
rccarper Apr 1, 2020
185c395
Fixing copyright headers. Fixing CRT version in sdk-benchmarks.
rccarper Apr 2, 2020
f2acf0d
Adding manual window management flag
rccarper Apr 2, 2020
a743281
Fixing version in pom file
rccarper Apr 3, 2020
d5e031c
Updating pom version
rccarper Apr 6, 2020
6e66a7c
Updating comment
rccarper Apr 7, 2020
cfa6f98
Update crt depdendency version
bretambrose Apr 13, 2020
b1a68cc
Undo preview versions
bretambrose Apr 13, 2020
609635a
Remove most code smells
bretambrose Apr 14, 2020
490f642
Minor fixups plus some original PR updates
bretambrose Apr 14, 2020
98fcc4f
More PR updates
bretambrose Apr 14, 2020
17711ef
Notify response handler of connection acquisition failure
bretambrose Apr 14, 2020
d95b06e
WIP
bretambrose Apr 15, 2020
4ce4521
Correct reactive stream subscription failure; move findbugs suppressi…
bretambrose Apr 16, 2020
be5e7f1
Proxy support + slight creation/ownership rework
bretambrose Apr 16, 2020
75915bb
Cleanup
bretambrose Apr 17, 2020
92af360
Remove unnecessary member
bretambrose Apr 17, 2020
bac48ae
WIP; frequent deadlock on the CRT's putObject_getObject_highConcurren…
bretambrose Apr 29, 2020
a4ac50b
PR feedback part 1
bretambrose May 6, 2020
2179158
WIP
bretambrose May 6, 2020
0ecdfe0
Wip
bretambrose May 7, 2020
7b2a69f
Address a few issues
bretambrose May 7, 2020
42b111f
Updates
bretambrose May 7, 2020
19eba17
Crt stream window documentation
bretambrose May 7, 2020
57d3737
Bump crt version
bretambrose May 8, 2020
8e26eda
WIP
bretambrose May 8, 2020
5ce2e0b
Request count tweak
bretambrose May 8, 2020
3ba106b
Sqs and cloudwatch stability tests
bretambrose Jun 1, 2020
46964eb
Refactor async stability tests
bretambrose Jun 2, 2020
231d43e
Merge branch 'aws-crt-dev-preview' into crt-stability-test-work
bretambrose Jun 2, 2020
5332732
Default reaping interval matches Apache
bretambrose Jun 2, 2020
5d9f12b
Merge branch 'crt-stability-test-work' of github.com:bretambrose/aws-…
bretambrose Jun 2, 2020
c30f6f1
Bump crt version
bretambrose Jun 3, 2020
87c36c5
Merge branch 'master' into aws-crt-dev-preview
bretambrose Jun 3, 2020
c2445d1
Pom update
bretambrose Jun 3, 2020
8468874
Merge branch 'crt-stability-test-work' into aws-crt-staging
bretambrose Jun 3, 2020
5affa63
Refactor fault tests to be sharable across http clients
bretambrose Jun 3, 2020
06e8f47
PR feedback + a few sonar cloud fixups
bretambrose Jun 7, 2020
0be7ce0
Add connection close test
bretambrose Jun 7, 2020
6295b6e
Handle interruption properly
bretambrose Jun 7, 2020
2faee68
Checkstyle fixes
bretambrose Jun 8, 2020
73f86b5
checkstyle again
bretambrose Jun 8, 2020
a3829d8
Always use manual window management
bretambrose Jun 11, 2020
1c4be29
Build failure
bretambrose Jun 12, 2020
f7e5408
Merge remote-tracking branch 'upstream/master' into aws-crt-dev-preview
bretambrose Jul 15, 2020
31437dc
Update crt version
bretambrose Jul 15, 2020
989e02e
Fixups
bretambrose Jul 15, 2020
6f6be67
Findbugs fixups
bretambrose Jul 15, 2020
f7b9605
Checkstyle
bretambrose Jul 15, 2020
320b132
Doing things correctly is hard
bretambrose Jul 15, 2020
8415cfc
Missing dependency
bretambrose Jul 15, 2020
28de055
Merge pull request #1777 from bretambrose/aws-crt-dev-preview
zoewangg Jul 16, 2020
db93b7d
Update to latest crt with new windowing implementation
bretambrose Jul 27, 2020
21dab69
Merge pull request #1964 from bretambrose/aws-crt-dev-preview
zoewangg Jul 27, 2020
59757e4
Merge remote-tracking branch 'origin' into aws-crt-dev-preview
zoewangg Aug 19, 2020
0a249ae
Update version
zoewangg Aug 19, 2020
5ecfb2d
Various refactoring of crt branch
zoewangg Aug 21, 2020
1f0942c
update stability tests
zoewangg Aug 24, 2020
5e0266b
Various updates: renaming methods, adding create method, adding AwsCr…
zoewangg Aug 25, 2020
feebcd2
Create ConnectionHealthChecksConfiguration
zoewangg Aug 26, 2020
9ba3d85
Refactoring - moving the request exceution logic to a separate class …
zoewangg Sep 1, 2020
82bb676
Invoke responseHandler#onError when the request future is cancelled
zoewangg Sep 2, 2020
8bed1b8
Bump up crt version adn remove elg and host resolver configs
zoewangg Sep 2, 2020
ab747a5
Add preview API annotations
zoewangg Sep 3, 2020
69d0d60
Merge branch 'master' into aws-crt-dev-preview
zoewangg Sep 4, 2020
cd9ed9a
Add preview version
zoewangg Sep 4, 2020
4d7f667
Merge remote-tracking branch 'origin/master' into zoewang/crtUpdates-…
zoewangg Sep 4, 2020
4c13fad
Update version
zoewangg Sep 4, 2020
4df5638
Merge remote-tracking branch 'origin/master' into zoewang/crtUpdates-…
zoewangg Sep 4, 2020
bc4adf7
Update snapshot version
zoewangg Sep 4, 2020
e3892f0
Fix NPE in integ tests
zoewangg Sep 4, 2020
c7e5462
Merge branch 'master' into zoewang/crtUpdates-previewVersion
zoewangg Sep 4, 2020
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"category": "AWS Common Runtime HTTP Client",
"type": "feature",
"description": "This release includes the preview release of the AWS Common Runtime HTTP client for the AWS SDK for Java v2. The code can be found in the `aws-crt-client` module."
}
Original file line number Diff line number Diff line change
Expand Up @@ -180,4 +180,22 @@
<Confidence value="1"/>
</Not>
</Match>

<Match>
<Package name="~software.amazon.awssdk.http.*"/>
<Bug pattern="URF_UNREAD_FIELD, RV_RETURN_VALUE_IGNORED"/>
</Match>

<Match>
<Class name="software.amazon.awssdk.http.crt.internal.AwsCrtResponseBodyPublisher" />
<Method name="subscribe"/>
<Bug pattern="SIC_INNER_SHOULD_BE_STATIC_ANON"/>
</Match>

<!-- on some java versions, the try-with-resources byte code is getting flagged by this -->
<Match>
<Class name="software.amazon.awssdk.http.crt.AwsCrtAsyncHttpClient" />
<Method name="execute"/>
<Bug pattern="RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE"/>
</Match>
</FindBugsFilter>
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,12 @@ public final class Header {

public static final String CHUNKED = "chunked";

public static final String HOST = "Host";

public static final String CONNECTION = "Connection";

public static final String KEEP_ALIVE_VALUE = "keep-alive";

private Header() {
}

Expand Down
208 changes: 208 additions & 0 deletions http-clients/aws-crt-client/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,208 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
~
~ Licensed under the Apache License, Version 2.0 (the "License").
~ You may not use this file except in compliance with the License.
~ A copy of the License is located at
~
~ http://aws.amazon.com/apache2.0
~
~ or in the "license" file accompanying this file. This file is distributed
~ on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
~ express or implied. See the License for the specific language governing
~ permissions and limitations under the License.
-->


<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>http-clients</artifactId>
<groupId>software.amazon.awssdk</groupId>
<version>2.14.13-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>aws-crt-client</artifactId>
<name>AWS Java SDK :: HTTP Clients :: AWS Common Runtime Client</name>
<packaging>jar</packaging>
<version>${awsjavasdk.version}-PREVIEW</version>

<properties>
<awsjavasdk.version>${project.parent.version}</awsjavasdk.version>
<jre.version>1.8</jre.version>
</properties>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>bom-internal</artifactId>
<version>${awsjavasdk.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

<dependencies>
<!--AWS Common Runtime-->
<dependency>
<groupId>software.amazon.awssdk.crt</groupId>
<artifactId>aws-crt</artifactId>
<version>${awscrt.version}</version>
</dependency>

<!--SDK dependencies-->
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>annotations</artifactId>
<version>${awsjavasdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>http-client-spi</artifactId>
<version>${awsjavasdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>utils</artifactId>
<version>${awsjavasdk.version}</version>
</dependency>

<!--Test Dependencies-->
<dependency>
<groupId>com.github.tomakehurst</groupId>
<artifactId>wiremock</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.reactivestreams</groupId>
<artifactId>reactive-streams-tck</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>http-client-tests</artifactId>
<version>${awsjavasdk.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>sdk-core</artifactId>
<version>${awsjavasdk.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>regions</artifactId>
<version>${awsjavasdk.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>s3</artifactId>
<version>${awsjavasdk.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>kms</artifactId>
<version>${awsjavasdk.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>auth</artifactId>
<version>${awsjavasdk.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>service-test-utils</artifactId>
<groupId>software.amazon.awssdk</groupId>
<version>${awsjavasdk.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>${commons-codec.verion}</version>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<!-- The Reactive Streams TCK tests are based on TestNG. See http://maven.apache.org/surefire/maven-surefire-plugin/examples/testng.html#Running_TestNG_and_JUnit_Tests -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven.surefire.version}</version>
<configuration>
<properties>
<property>
<name>junit</name>
<value>false</value>
</property>
</properties>
<threadCount>1</threadCount>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>${maven.surefire.version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-testng</artifactId>
<version>${maven.surefire.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestEntries>
<Automatic-Module-Name>software.amazon.awssdk.http.crt</Automatic-Module-Name>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>
</project>
Loading