From c4fa3e124a33d5213cb96430c5ba2d3b0d8da6fd Mon Sep 17 00:00:00 2001
From: AWS
Date: Fri, 8 Feb 2019 18:31:59 +0000
Subject: [PATCH] AWS SDK for Android 2.12.0
---
.idea/modules.xml | 2 +-
CHANGELOG.md | 25 ++
aws-android-sdk-apigateway-core/pom.xml | 4 +-
aws-android-sdk-auth-core/pom.xml | 4 +-
aws-android-sdk-auth-facebook/pom.xml | 4 +-
aws-android-sdk-auth-google/pom.xml | 4 +-
aws-android-sdk-auth-ui/pom.xml | 10 +-
aws-android-sdk-auth-userpools/pom.xml | 6 +-
aws-android-sdk-autoscaling/pom.xml | 4 +-
aws-android-sdk-cloudwatch/pom.xml | 4 +-
aws-android-sdk-cognito/pom.xml | 6 +-
...azonaws.aws-android-sdk-cognito.properties | 2 +-
aws-android-sdk-cognitoauth/pom.xml | 4 +-
.../pom.xml | 6 +-
aws-android-sdk-comprehend/pom.xml | 4 +-
aws-android-sdk-core/pom.xml | 2 +-
.../com/amazonaws/util/VersionInfoUtils.java | 2 +-
.../amazonaws/util/VersionInfoUtilsTest.java | 2 +-
aws-android-sdk-ddb-document/pom.xml | 6 +-
aws-android-sdk-ddb-mapper/pom.xml | 8 +-
aws-android-sdk-ddb/pom.xml | 4 +-
aws-android-sdk-ec2/pom.xml | 4 +-
aws-android-sdk-elb/pom.xml | 4 +-
aws-android-sdk-iot/pom.xml | 4 +-
aws-android-sdk-kinesis/pom.xml | 4 +-
.../pom.xml | 4 +-
aws-android-sdk-kinesisvideo/pom.xml | 4 +-
aws-android-sdk-kms/pom.xml | 4 +-
aws-android-sdk-lambda/pom.xml | 4 +-
aws-android-sdk-lex/pom.xml | 4 +-
aws-android-sdk-logs/pom.xml | 4 +-
aws-android-sdk-machinelearning/pom.xml | 4 +-
aws-android-sdk-mobile-client/pom.xml | 14 +-
aws-android-sdk-mobileanalytics/pom.xml | 4 +-
aws-android-sdk-pinpoint/pom.xml | 4 +-
aws-android-sdk-polly/pom.xml | 4 +-
aws-android-sdk-rekognition/pom.xml | 4 +-
aws-android-sdk-s3/pom.xml | 6 +-
.../amazonaws/services/s3/AmazonS3Client.java | 293 ++++++++++++++++--
.../services/s3/internal/Constants.java | 2 +
.../s3/model/EncryptedPutObjectRequest.java | 2 +-
.../services/s3/internal/S3SignerTest.java | 11 +-
aws-android-sdk-sdb/pom.xml | 4 +-
aws-android-sdk-ses/pom.xml | 4 +-
aws-android-sdk-sns/pom.xml | 6 +-
aws-android-sdk-sqs/pom.xml | 4 +-
aws-android-sdk-transcribe/pom.xml | 4 +-
aws-android-sdk-translate/pom.xml | 4 +-
gradle/wrapper/gradle-wrapper.jar | Bin 55741 -> 0 bytes
pom.xml | 2 +-
50 files changed, 410 insertions(+), 119 deletions(-)
delete mode 100755 gradle/wrapper/gradle-wrapper.jar
diff --git a/.idea/modules.xml b/.idea/modules.xml
index 1132146b7e5..26fe4ed69bf 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -43,4 +43,4 @@
-
\ No newline at end of file
+
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 18e7b1deb49..12cda36698b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,30 @@
# Change Log - AWS SDK for Android
+## [Release 2.12.0](https://github.com/aws/aws-sdk-android/releases/tag/release_v2.12.0)
+
+### Enhancements
+
+* **Amazon Cognito Auth**
+ * Allow user to unbind the service after being done with authentication. See [pr #615](https://github.com/aws-amplify/aws-sdk-android/pull/615). Thanks @rlatapy-luna!
+
+* **Amazon Cognito User Pools**
+ * Adds support for the SRP protocol at the beginning of custom auth. Please use `AuthenticationDetails(String, String, Map, Map)` to trigger custom auth flow with SRP protocol as the first step.
+
+* **Amazon S3**
+ * **Note:** AWS Signature Version 4 (`SigV4`) is recommended for signing Amazon S3 API requests over AWS Signature Version 2 (`SigV2`) as it provides improved security by using a signing key rather than your secret access key. SigV4 is currently supported in all AWS regions while SigV2 is only supported in regions launched prior to Jan 2014. Amazon S3 will stop accepting requests signed using SigV2 in all regions on June 24, 2019, any
+requests signed using SigV2 made after this time will fail. Please visit the S3 documentation site to get more information on using SigV4: [Signing Aamzon S3 requests using SigV4](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html). You can find the list of
+changes between versions here: [Changes in SigV4](https://docs.aws.amazon.com/general/latest/gr/sigv4_changes.html).
+ * Deprecated the existing constructors in `AmazonS3Client` and introduced equivalent constructors that require the AWS region, because a valid AWS region is required to sign the request using SigV4. Please use the following constructors to specify the AWS region in order to sign the request to Amazon S3 using SigV4.
+
+2.11.1 | 2.12.0
+---------- | -------------
+AmazonS3Client(AWSCredentials) | AmazonS3Client(AWSCredentials, com.amazonaws.regions.Region)
+AmazonS3Client(AWSCredentials, ClientConfiguration) | AmazonS3Client(AWSCredentials, ClientConfiguration, com.amazonaws.regions.Region)
+AmazonS3Client(AWSCredentialsProvider) | AmazonS3Client(AWSCredentialsProvider, com.amazonaws.regions.Region)
+AmazonS3Client(AWSCredentialsProvider, ClientConfiguration) | AmazonS3Client(AWSCredentialsProvider, ClientConfiguration, com.amazonaws.regions.Region)
+AmazonS3Client(AWSCredentialsProvider, ClientConfiguration, HttpClient) | AmazonS3Client(AWSCredentialsProvider, ClientConfiguration, HttpClient, com.amazonaws.regions.Region)
+AmazonS3Client(ClientConfiguration) | AmazonS3Client(ClientConfiguration, com.amazonaws.regions.Region)
+
## [Release 2.11.1](https://github.com/aws/aws-sdk-android/releases/tag/release_v2.11.1)
### New Features
diff --git a/aws-android-sdk-apigateway-core/pom.xml b/aws-android-sdk-apigateway-core/pom.xml
index 9fbec2ab625..c0e2ef26071 100644
--- a/aws-android-sdk-apigateway-core/pom.xml
+++ b/aws-android-sdk-apigateway-core/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -20,7 +20,7 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
diff --git a/aws-android-sdk-auth-core/pom.xml b/aws-android-sdk-auth-core/pom.xml
index 8683198f57a..6d66f3e9e00 100644
--- a/aws-android-sdk-auth-core/pom.xml
+++ b/aws-android-sdk-auth-core/pom.xml
@@ -21,7 +21,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -29,7 +29,7 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
diff --git a/aws-android-sdk-auth-facebook/pom.xml b/aws-android-sdk-auth-facebook/pom.xml
index 46272a33227..d0fdafabf67 100644
--- a/aws-android-sdk-auth-facebook/pom.xml
+++ b/aws-android-sdk-auth-facebook/pom.xml
@@ -21,7 +21,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -36,7 +36,7 @@
com.amazonaws
aws-android-sdk-auth-core
false
- 2.11.1
+ 2.12.0
aar
diff --git a/aws-android-sdk-auth-google/pom.xml b/aws-android-sdk-auth-google/pom.xml
index a935d14d0b8..4e0e2d53f13 100644
--- a/aws-android-sdk-auth-google/pom.xml
+++ b/aws-android-sdk-auth-google/pom.xml
@@ -21,7 +21,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -40,7 +40,7 @@
com.amazonaws
aws-android-sdk-auth-core
false
- 2.11.1
+ 2.12.0
aar
diff --git a/aws-android-sdk-auth-ui/pom.xml b/aws-android-sdk-auth-ui/pom.xml
index 51338134858..d12b3ac0678 100644
--- a/aws-android-sdk-auth-ui/pom.xml
+++ b/aws-android-sdk-auth-ui/pom.xml
@@ -21,7 +21,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -36,28 +36,28 @@
com.amazonaws
aws-android-sdk-auth-core
false
- 2.11.1
+ 2.12.0
aar
com.amazonaws
aws-android-sdk-auth-google
true
- 2.11.1
+ 2.12.0
aar
com.amazonaws
aws-android-sdk-auth-facebook
true
- 2.11.1
+ 2.12.0
aar
com.amazonaws
aws-android-sdk-auth-userpools
true
- 2.11.1
+ 2.12.0
aar
diff --git a/aws-android-sdk-auth-userpools/pom.xml b/aws-android-sdk-auth-userpools/pom.xml
index 407597fc0be..d9bbeb227b5 100644
--- a/aws-android-sdk-auth-userpools/pom.xml
+++ b/aws-android-sdk-auth-userpools/pom.xml
@@ -21,7 +21,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -36,14 +36,14 @@
com.amazonaws
aws-android-sdk-cognitoidentityprovider
false
- 2.11.1
+ 2.12.0
com.amazonaws
aws-android-sdk-auth-core
false
- 2.11.1
+ 2.12.0
aar
diff --git a/aws-android-sdk-autoscaling/pom.xml b/aws-android-sdk-autoscaling/pom.xml
index a515ea3eb4f..085832936e5 100644
--- a/aws-android-sdk-autoscaling/pom.xml
+++ b/aws-android-sdk-autoscaling/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -20,7 +20,7 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
diff --git a/aws-android-sdk-cloudwatch/pom.xml b/aws-android-sdk-cloudwatch/pom.xml
index 1d70a9f9616..eb49d0012dc 100644
--- a/aws-android-sdk-cloudwatch/pom.xml
+++ b/aws-android-sdk-cloudwatch/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -20,7 +20,7 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
diff --git a/aws-android-sdk-cognito/pom.xml b/aws-android-sdk-cognito/pom.xml
index 6a70fe06f7e..db08a88df99 100644
--- a/aws-android-sdk-cognito/pom.xml
+++ b/aws-android-sdk-cognito/pom.xml
@@ -6,14 +6,14 @@
aws-android-sdk-cognito
jar
AWS SDK for Android - Amazon Cognito Sync
- 2.11.1
+ 2.12.0
The AWS Android SDK for Amazon Cognito Sync module holds the client classes that are used for communicating with Amazon Cognito Sync Service
http://aws.amazon.com/sdkforandroid
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -29,7 +29,7 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
com.google.android
diff --git a/aws-android-sdk-cognito/src/main/resources/fabric/com.amazonaws.aws-android-sdk-cognito.properties b/aws-android-sdk-cognito/src/main/resources/fabric/com.amazonaws.aws-android-sdk-cognito.properties
index 89ddc74093c..d6d5a0ae88e 100644
--- a/aws-android-sdk-cognito/src/main/resources/fabric/com.amazonaws.aws-android-sdk-cognito.properties
+++ b/aws-android-sdk-cognito/src/main/resources/fabric/com.amazonaws.aws-android-sdk-cognito.properties
@@ -1,3 +1,3 @@
fabric-identifier=com.amazonaws.aws-android-sdk-cognito
-fabric-version=2.11.1
+fabric-version=2.12.0
fabric-build-type=binary
diff --git a/aws-android-sdk-cognitoauth/pom.xml b/aws-android-sdk-cognitoauth/pom.xml
index 75e8afa0d51..020eadcb30e 100644
--- a/aws-android-sdk-cognitoauth/pom.xml
+++ b/aws-android-sdk-cognitoauth/pom.xml
@@ -6,14 +6,14 @@
aws-android-sdk-cognitoauth
aar
AWS SDK for Android - Amazon Cognito Auth
- 2.11.1
+ 2.12.0
The AWS Android SDK with app integration for Amazon Cognito Your User Pools Service
http://aws.amazon.com/sdkforandroid
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
diff --git a/aws-android-sdk-cognitoidentityprovider/pom.xml b/aws-android-sdk-cognitoidentityprovider/pom.xml
index b08f5452c00..b69ba4d9af2 100644
--- a/aws-android-sdk-cognitoidentityprovider/pom.xml
+++ b/aws-android-sdk-cognitoidentityprovider/pom.xml
@@ -6,14 +6,14 @@
aws-android-sdk-cognitoidentityprovider
jar
AWS SDK for Android - Amazon Cognito Identity Provider
- 2.11.1
+ 2.12.0
The AWS Android SDK for Amazon Cognito Identity Provider module holds the client classes that are used for communicating with Amazon Cognito Identity Provider Service
http://aws.amazon.com/sdkforandroid
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -29,7 +29,7 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
com.amazonaws
diff --git a/aws-android-sdk-comprehend/pom.xml b/aws-android-sdk-comprehend/pom.xml
index c793565d181..a1f6715ce50 100644
--- a/aws-android-sdk-comprehend/pom.xml
+++ b/aws-android-sdk-comprehend/pom.xml
@@ -11,14 +11,14 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
diff --git a/aws-android-sdk-core/pom.xml b/aws-android-sdk-core/pom.xml
index cc6e50d2382..f32d83295dc 100644
--- a/aws-android-sdk-core/pom.xml
+++ b/aws-android-sdk-core/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
diff --git a/aws-android-sdk-core/src/main/java/com/amazonaws/util/VersionInfoUtils.java b/aws-android-sdk-core/src/main/java/com/amazonaws/util/VersionInfoUtils.java
index 33ce30abc80..d54d2443e65 100644
--- a/aws-android-sdk-core/src/main/java/com/amazonaws/util/VersionInfoUtils.java
+++ b/aws-android-sdk-core/src/main/java/com/amazonaws/util/VersionInfoUtils.java
@@ -26,7 +26,7 @@ public class VersionInfoUtils {
private static final int DEFAULT_STRING_LENGTH = 128;
/** SDK version info */
- private static volatile String version = "2.11.1";
+ private static volatile String version = "2.12.0";
// changed build
// logic
diff --git a/aws-android-sdk-core/src/test/java/com/amazonaws/util/VersionInfoUtilsTest.java b/aws-android-sdk-core/src/test/java/com/amazonaws/util/VersionInfoUtilsTest.java
index dac951d5942..168af2da6e6 100644
--- a/aws-android-sdk-core/src/test/java/com/amazonaws/util/VersionInfoUtilsTest.java
+++ b/aws-android-sdk-core/src/test/java/com/amazonaws/util/VersionInfoUtilsTest.java
@@ -24,7 +24,7 @@ public class VersionInfoUtilsTest {
@Test
public void getVersion() {
- assertEquals("2.11.1", VersionInfoUtils.getVersion());
+ assertEquals("2.12.0", VersionInfoUtils.getVersion());
}
@Test
diff --git a/aws-android-sdk-ddb-document/pom.xml b/aws-android-sdk-ddb-document/pom.xml
index e221b0cd7f1..e022822b260 100644
--- a/aws-android-sdk-ddb-document/pom.xml
+++ b/aws-android-sdk-ddb-document/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -20,13 +20,13 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
com.amazonaws
aws-android-sdk-ddb
false
- 2.11.1
+ 2.12.0
com.google.guava
diff --git a/aws-android-sdk-ddb-mapper/pom.xml b/aws-android-sdk-ddb-mapper/pom.xml
index 0237a93cc0d..37ee407b723 100644
--- a/aws-android-sdk-ddb-mapper/pom.xml
+++ b/aws-android-sdk-ddb-mapper/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -20,19 +20,19 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
com.amazonaws
aws-android-sdk-ddb
false
- 2.11.1
+ 2.12.0
com.amazonaws
aws-android-sdk-s3
false
- 2.11.1
+ 2.12.0
junit
diff --git a/aws-android-sdk-ddb/pom.xml b/aws-android-sdk-ddb/pom.xml
index 2a487f46876..1103bf43373 100644
--- a/aws-android-sdk-ddb/pom.xml
+++ b/aws-android-sdk-ddb/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -20,7 +20,7 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
junit
diff --git a/aws-android-sdk-ec2/pom.xml b/aws-android-sdk-ec2/pom.xml
index 729a2a9e7a4..3bc144782d4 100644
--- a/aws-android-sdk-ec2/pom.xml
+++ b/aws-android-sdk-ec2/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -20,7 +20,7 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
diff --git a/aws-android-sdk-elb/pom.xml b/aws-android-sdk-elb/pom.xml
index c8988b9c8f7..2a5982c43a1 100644
--- a/aws-android-sdk-elb/pom.xml
+++ b/aws-android-sdk-elb/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -20,7 +20,7 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
diff --git a/aws-android-sdk-iot/pom.xml b/aws-android-sdk-iot/pom.xml
index 52a8939f7fc..934b3060a26 100644
--- a/aws-android-sdk-iot/pom.xml
+++ b/aws-android-sdk-iot/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -20,7 +20,7 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
org.eclipse.paho
diff --git a/aws-android-sdk-kinesis/pom.xml b/aws-android-sdk-kinesis/pom.xml
index 0c1c834d89e..726a98e098d 100644
--- a/aws-android-sdk-kinesis/pom.xml
+++ b/aws-android-sdk-kinesis/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -20,7 +20,7 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
junit
diff --git a/aws-android-sdk-kinesisvideo-archivedmedia/pom.xml b/aws-android-sdk-kinesisvideo-archivedmedia/pom.xml
index c50bc2cd32c..eb996dca163 100644
--- a/aws-android-sdk-kinesisvideo-archivedmedia/pom.xml
+++ b/aws-android-sdk-kinesisvideo-archivedmedia/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -20,7 +20,7 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
junit
diff --git a/aws-android-sdk-kinesisvideo/pom.xml b/aws-android-sdk-kinesisvideo/pom.xml
index 25260d905df..6b39eed5659 100644
--- a/aws-android-sdk-kinesisvideo/pom.xml
+++ b/aws-android-sdk-kinesisvideo/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -43,7 +43,7 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
diff --git a/aws-android-sdk-kms/pom.xml b/aws-android-sdk-kms/pom.xml
index de4a7ff8acc..33e2377fc40 100644
--- a/aws-android-sdk-kms/pom.xml
+++ b/aws-android-sdk-kms/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -20,7 +20,7 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
diff --git a/aws-android-sdk-lambda/pom.xml b/aws-android-sdk-lambda/pom.xml
index b0d3d615f02..3e81d0223f5 100644
--- a/aws-android-sdk-lambda/pom.xml
+++ b/aws-android-sdk-lambda/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -20,7 +20,7 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
junit
diff --git a/aws-android-sdk-lex/pom.xml b/aws-android-sdk-lex/pom.xml
index 2d4f803aa39..76f7c90aa1e 100644
--- a/aws-android-sdk-lex/pom.xml
+++ b/aws-android-sdk-lex/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -33,7 +33,7 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
com.google.android
diff --git a/aws-android-sdk-logs/pom.xml b/aws-android-sdk-logs/pom.xml
index 4148ba7f2d9..24ff09bd14f 100644
--- a/aws-android-sdk-logs/pom.xml
+++ b/aws-android-sdk-logs/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -20,7 +20,7 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
diff --git a/aws-android-sdk-machinelearning/pom.xml b/aws-android-sdk-machinelearning/pom.xml
index 54eccd6787a..b7aa00c9356 100644
--- a/aws-android-sdk-machinelearning/pom.xml
+++ b/aws-android-sdk-machinelearning/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -20,7 +20,7 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
diff --git a/aws-android-sdk-mobile-client/pom.xml b/aws-android-sdk-mobile-client/pom.xml
index 1dad1f66035..7828a41fdfa 100644
--- a/aws-android-sdk-mobile-client/pom.xml
+++ b/aws-android-sdk-mobile-client/pom.xml
@@ -28,7 +28,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -36,7 +36,7 @@
com.amazonaws
aws-android-sdk-auth-core
false
- 2.11.1
+ 2.12.0
aar
@@ -44,14 +44,14 @@
com.amazonaws
aws-android-sdk-cognitoidentityprovider
false
- 2.11.1
+ 2.12.0
com.amazonaws
aws-android-sdk-auth-ui
true
- 2.11.1
+ 2.12.0
aar
@@ -67,7 +67,7 @@
com.amazonaws
aws-android-sdk-auth-google
true
- 2.11.1
+ 2.12.0
aar
@@ -75,7 +75,7 @@
com.amazonaws
aws-android-sdk-auth-facebook
true
- 2.11.1
+ 2.12.0
aar
@@ -83,7 +83,7 @@
com.amazonaws
aws-android-sdk-auth-userpools
true
- 2.11.1
+ 2.12.0
aar
diff --git a/aws-android-sdk-mobileanalytics/pom.xml b/aws-android-sdk-mobileanalytics/pom.xml
index c7a14a3d176..808ab5288af 100644
--- a/aws-android-sdk-mobileanalytics/pom.xml
+++ b/aws-android-sdk-mobileanalytics/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -20,7 +20,7 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
junit
diff --git a/aws-android-sdk-pinpoint/pom.xml b/aws-android-sdk-pinpoint/pom.xml
index 092982dbf11..67aa78f6f51 100644
--- a/aws-android-sdk-pinpoint/pom.xml
+++ b/aws-android-sdk-pinpoint/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -20,7 +20,7 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
junit
diff --git a/aws-android-sdk-polly/pom.xml b/aws-android-sdk-polly/pom.xml
index ef642b44b66..9391e22ac4c 100644
--- a/aws-android-sdk-polly/pom.xml
+++ b/aws-android-sdk-polly/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -20,7 +20,7 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
junit
diff --git a/aws-android-sdk-rekognition/pom.xml b/aws-android-sdk-rekognition/pom.xml
index 6d857a84879..e14fc1d037f 100644
--- a/aws-android-sdk-rekognition/pom.xml
+++ b/aws-android-sdk-rekognition/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -20,7 +20,7 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
junit
diff --git a/aws-android-sdk-s3/pom.xml b/aws-android-sdk-s3/pom.xml
index 922f231dc10..3d20164d6ce 100644
--- a/aws-android-sdk-s3/pom.xml
+++ b/aws-android-sdk-s3/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -20,13 +20,13 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
com.amazonaws
aws-android-sdk-kms
false
- 2.11.1
+ 2.12.0
junit
diff --git a/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/AmazonS3Client.java b/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/AmazonS3Client.java
index 4bc35f91209..5f801a721de 100644
--- a/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/AmazonS3Client.java
+++ b/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/AmazonS3Client.java
@@ -290,7 +290,12 @@ public AmazonS3Client() {
* Amazon S3 with this client.
* @see AmazonS3Client#AmazonS3Client()
* @see AmazonS3Client#AmazonS3Client(AWSCredentials, ClientConfiguration)
+ *
+ * @deprecated Use AmazonS3Client#AmazonS3Client(AWSCredentials,
+ * com.amazonaws.regions.Region)
+ * instead.
*/
+ @Deprecated
public AmazonS3Client(AWSCredentials awsCredentials) {
this(awsCredentials, new ClientConfiguration());
}
@@ -306,7 +311,13 @@ public AmazonS3Client(AWSCredentials awsCredentials) {
* retry counts, etc).
* @see AmazonS3Client#AmazonS3Client()
* @see AmazonS3Client#AmazonS3Client(AWSCredentials)
+ *
+ * @deprecated Use AmazonS3Client#AmazonS3Client(AWSCredentials,
+ * com.amazonaws.regions.Region,
+ * ClientConfiguration)
+ * instead.
*/
+ @Deprecated
public AmazonS3Client(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration) {
this(new StaticCredentialsProvider(awsCredentials), clientConfiguration);
}
@@ -318,7 +329,12 @@ public AmazonS3Client(AWSCredentials awsCredentials, ClientConfiguration clientC
* @param credentialsProvider The AWS credentials provider which will
* provide credentials to authenticate requests with AWS
* services.
+ *
+ * @deprecated Use AmazonS3Client#AmazonS3Client(AWSCredentialsProvider,
+ * com.amazonaws.regions.Region)
+ * instead.
*/
+ @Deprecated
public AmazonS3Client(AWSCredentialsProvider credentialsProvider) {
this(credentialsProvider, new ClientConfiguration());
}
@@ -333,7 +349,13 @@ public AmazonS3Client(AWSCredentialsProvider credentialsProvider) {
* @param clientConfiguration The client configuration options controlling
* how this client connects to Amazon S3 (e.g. proxy settings,
* retry counts, etc).
+ *
+ * @deprecated Use AmazonS3Client#AmazonS3Client(AWSCredentialsProvider,
+ * com.amazonaws.regions.Region,
+ * ClientConfiguration)
+ * instead.
*/
+ @Deprecated
public AmazonS3Client(AWSCredentialsProvider credentialsProvider,
ClientConfiguration clientConfiguration) {
this(credentialsProvider, clientConfiguration, new UrlHttpClient(clientConfiguration));
@@ -372,8 +394,14 @@ public AmazonS3Client(AWSCredentialsProvider credentialsProvider,
* @param clientConfiguration The client configuration options controlling
* how this client connects to Amazon S3 (e.g. proxy settings,
* retry counts, etc).
- * @param requestMetricCollector request metric collector
+ *
+ * @deprecated Use AmazonS3Client#AmazonS3Client(AWSCredentialsProvider,
+ * com.amazonaws.regions.Region,
+ * ClientConfiguration,
+ * HttpClient)
+ * instead.
*/
+ @Deprecated
public AmazonS3Client(AWSCredentialsProvider credentialsProvider,
ClientConfiguration clientConfiguration, HttpClient httpClient) {
super(clientConfiguration, httpClient);
@@ -421,21 +449,204 @@ public AmazonS3Client(AWSCredentialsProvider credentialsProvider,
* retry counts, etc).
* @see AmazonS3Client#AmazonS3Client(AWSCredentials)
* @see AmazonS3Client#AmazonS3Client(AWSCredentials, ClientConfiguration)
+ *
+ * @deprecated Use AmazonS3Client#AmazonS3Client(ClientConfiguration,
+ * com.amazonaws.regions.Region)
+ * instead.
*/
+ @Deprecated
public AmazonS3Client(ClientConfiguration clientConfiguration) {
this(new DefaultAWSCredentialsProviderChain(), clientConfiguration);
}
+ /**
+ *
+ * @param awsCredentials The AWS credentials to use when making requests to
+ * Amazon S3 with this client.
+ * @param region the AWS region
+ */
+ public AmazonS3Client(AWSCredentials awsCredentials,
+ com.amazonaws.regions.Region region) {
+ this(awsCredentials, region, new ClientConfiguration());
+ }
+
+ /**
+ *
+ * @param awsCredentials The AWS credentials to use when making requests to
+ * Amazon S3 with this client.
+ * @param region the AWS region
+ * @param clientConfiguration The client configuration options controlling
+ * how this client connects to Amazon S3 (e.g. proxy settings,
+ * retry counts, etc).
+ */
+ public AmazonS3Client(AWSCredentials awsCredentials,
+ com.amazonaws.regions.Region region,
+ ClientConfiguration clientConfiguration) {
+ this(awsCredentials, region, clientConfiguration, new UrlHttpClient(clientConfiguration));
+ }
+
+ /**
+ *
+ * @param awsCredentials The AWS credentials to use when making requests to
+ * Amazon S3 with this client.
+ * @param region the AWS region
+ * @param clientConfiguration The client configuration options controlling
+ * how this client connects to Amazon S3 (e.g. proxy settings,
+ * retry counts, etc).
+ * @param httpClient
+ */
+ public AmazonS3Client(AWSCredentials awsCredentials,
+ com.amazonaws.regions.Region region,
+ ClientConfiguration clientConfiguration,
+ HttpClient httpClient) {
+ this(new StaticCredentialsProvider(awsCredentials), region, clientConfiguration, httpClient);
+ }
+
+ /**
+ *
+ * @param awsCredentialsProvider The AWS credentials provider which will
+ * provide credentials to authenticate requests with AWS
+ * services.
+ * @param region the AWS region
+ */
+ public AmazonS3Client(AWSCredentialsProvider awsCredentialsProvider,
+ com.amazonaws.regions.Region region) {
+ this(awsCredentialsProvider, region, new ClientConfiguration());
+ }
+
+ /**
+ *
+ * @param awsCredentialsProvider The AWS credentials provider which will
+ * provide credentials to authenticate requests with AWS
+ * services.
+ * @param region the AWS region
+ * @param clientConfiguration The client configuration options controlling
+ * how this client connects to Amazon S3 (e.g. proxy settings,
+ * retry counts, etc).
+ */
+ public AmazonS3Client(AWSCredentialsProvider awsCredentialsProvider,
+ com.amazonaws.regions.Region region,
+ ClientConfiguration clientConfiguration) {
+ this(awsCredentialsProvider, region, clientConfiguration, new UrlHttpClient(clientConfiguration));
+ }
+
+ /**
+ *
+ * @param awsCredentialsProvider The AWS credentials provider which will
+ * provide credentials to authenticate requests with AWS
+ * services.
+ * @param region the AWS region
+ * @param clientConfiguration The client configuration options controlling
+ * how this client connects to Amazon S3 (e.g. proxy settings,
+ * retry counts, etc).
+ * @param httpClient the custome httpclient to send requests and receive responses
+ */
+ public AmazonS3Client(AWSCredentialsProvider awsCredentialsProvider,
+ com.amazonaws.regions.Region region,
+ ClientConfiguration clientConfiguration,
+ HttpClient httpClient) {
+ super(clientConfiguration, httpClient);
+ this.awsCredentialsProvider = awsCredentialsProvider;
+ init(region, clientConfiguration);
+ }
+
+
+ /**
+ * Constructs a new client using the specified client configuration to
+ * access Amazon S3. A credentials provider chain will be used that searches
+ * for credentials in this order:
+ *
+ * - Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
+ * - Java System Properties - aws.accessKeyId and aws.secretKey
+ * - Instance Profile Credentials - delivered through the Amazon EC2
+ * metadata service
+ *
+ *
+ * If no credentials are found in the chain, this client will attempt to
+ * work in an anonymous mode where requests aren't signed. Only a subset of
+ * the Amazon S3 API will work with anonymous (i.e. unsigned)
+ * requests, but this can prove useful in some situations. For example:
+ *
+ * - If an Amazon S3 bucket has {@link Permission#Read} permission for the
+ * {@link GroupGrantee#AllUsers} group, anonymous clients can call
+ * {@link #listObjects(String)} to see what objects are stored in a bucket.
+ * - If an object has {@link Permission#Read} permission for the
+ * {@link GroupGrantee#AllUsers} group, anonymous clients can call
+ * {@link #getObject(String, String)} and
+ * {@link #getObjectMetadata(String, String)} to pull object content and
+ * metadata.
+ * - If a bucket has {@link Permission#Write} permission for the
+ * {@link GroupGrantee#AllUsers} group, anonymous clients can upload objects
+ * to the bucket.
+ *
+ *
+ *
+ * You can force the client to operate in an anonymous mode, and skip the
+ * credentials provider chain, by passing in null
for the
+ * credentials.
+ *
+ *
+ * @param clientConfiguration The client configuration options controlling
+ * how this client connects to Amazon S3 (e.g. proxy settings,
+ * retry counts, etc).
+ * @see AmazonS3Client#AmazonS3Client(AWSCredentials, com.amazonaws.regions.Region)
+ * @see AmazonS3Client#AmazonS3Client(AWSCredentials, ClientConfiguration, com.amazonaws.regions.Region)
+ */
+ public AmazonS3Client(ClientConfiguration clientConfiguration,
+ com.amazonaws.regions.Region region) {
+ this(new DefaultAWSCredentialsProviderChain(), region, clientConfiguration);
+ }
+
+ /**
+ * @deprecated Use init(com.amazonaws.regions.Region, ClientConfiguration) instead.
+ */
+ @Deprecated
private void init() {
// calling this.setEndpoint(...) will also modify the signer accordingly
setEndpoint(Constants.S3_HOSTNAME);
- this.endpointPrefix = "s3";
+ this.endpointPrefix = Constants.S3_ENDPOINT_PREFIX;
+
+ final HandlerChainFactory chainFactory = new HandlerChainFactory();
+ requestHandler2s.addAll(chainFactory.newRequestHandlerChain(
+ "/com/amazonaws/services/s3/request.handlers"));
+ requestHandler2s.addAll(chainFactory.newRequestHandler2Chain(
+ "/com/amazonaws/services/s3/request.handler2s"));
+ }
+
+ /**
+ *
+ * @param awsCredentialsProvider The AWS credentials provider which will
+ * provide credentials to authenticate requests with AWS
+ * services.
+ * @param region the AWS region
+ * @param clientConfiguration The AWS credentials provider which will
+ * provide credentials to authenticate requests with AWS
+ * services.
+ */
+ private void init(com.amazonaws.regions.Region region,
+ ClientConfiguration clientConfiguration) {
+ if (awsCredentialsProvider == null) {
+ throw new IllegalArgumentException("Credentials cannot be null. Credentials is required to sign the request");
+ }
+
+ if (region == null) {
+ throw new IllegalArgumentException("Region cannot be null. Region is required to sign the request");
+ }
+
+ this.clientConfiguration = clientConfiguration;
+ this.endpointPrefix = Constants.S3_ENDPOINT_PREFIX;
+
+ // calling this.setEndpoint(...) will also modify the signer accordingly
+ setEndpoint(Constants.S3_HOSTNAME);
+ setRegion(region);
final HandlerChainFactory chainFactory = new HandlerChainFactory();
requestHandler2s.addAll(chainFactory.newRequestHandlerChain(
"/com/amazonaws/services/s3/request.handlers"));
requestHandler2s.addAll(chainFactory.newRequestHandler2Chain(
"/com/amazonaws/services/s3/request.handler2s"));
+
+ log.debug("initialized with endpoint = " + this.endpoint);
}
@@ -444,14 +655,14 @@ private void init() {
* listener occur.
*
* @param threshold Number of Kbytes that needs to be written before
- * write update notification occurs.
+ * write update notification occurs. Minimum value supported
+ * is 128 KB due to the limitations imposed by the HttpClient
+ * while reading the data from the stream.
*/
public void setNotificationThreshold(final int threshold) {
this.notificationThreshold = threshold;
}
-
-
@Override
public void setEndpoint(String endpoint) {
if (endpoint.endsWith(Constants.S3_ACCELERATE_HOSTNAME)) {
@@ -3284,6 +3495,7 @@ public URL generatePresignedUrl(GeneratePresignedUrlRequest generatePresignedUrl
final Signer signer = createSigner(request, bucketName, key);
+
if (signer instanceof Presigner) {
// If we have a signer which knows how to presign requests,
// delegate directly to it.
@@ -3837,6 +4049,7 @@ private AccessControlList getAcl(String bucketName, String key, String versionId
final Request request = createRequest(bucketName, key, originalRequest,
HttpMethodName.GET);
+
request.addParameter("acl", null);
if (versionId != null) {
request.addParameter("versionId", versionId);
@@ -3924,6 +4137,25 @@ private void setAcl(String bucketName, String key, String versionId, AccessContr
/**
* Returns a "complete" S3 specific signer, taking into the S3 bucket, key,
* and the current S3 client configuration into account.
+ *
+ * Signer = get a Signer based on the bucket endpoint // InternalConfig in CoreRuntime makes this decision
+ * [If the region is not specified, uses SigV2 signer,
+ * Else If the region is specified, and If the region only supports SigV4, then uses SigV4]
+ * If Signer is not Overriden {
+ * If Signer is a V4 Signer and Region is null
+ * Get the region from AmazonS3Client or BucketRegionCache
+ * If available
+ * Use SigV4
+ * Else If PresignedUrl
+ * Use SigV2
+ * If Signer Region is overriden
+ * Use SigV4
+ * If BucketRegionCache has a region
+ * Use SigV4
+ * }
+
+ * If Signer is SigV2 signer
+ * Use SigV2
*/
protected Signer createSigner(final Request> request,
final String bucketName,
@@ -3933,25 +4165,32 @@ protected Signer createSigner(final Request> request,
// in accelerate mode, the endpoint in request is regionless. We need
// the client-wide endpoint
// to fetch the region information and pick the correct signer.
- final URI uri = clientOptions.isAccelerateModeEnabled() ? endpoint : request.getEndpoint();
+ final URI uri = clientOptions.isAccelerateModeEnabled()
+ ? endpoint
+ : request.getEndpoint();
+
+ // This method retrieves the signer based on the URI. Currently
+ // S3's default signer is a SigV2 signer implemented in S3Signer
final Signer signer = getSignerByURI(uri);
if (!isSignerOverridden()) {
if ((signer instanceof AWSS3V4Signer) && noExplicitRegionProvided(request)) {
- final String region = clientRegion == null ? bucketRegionCache.get(bucketName)
+ final String region = clientRegion == null
+ ? bucketRegionCache.get(bucketName)
: clientRegion;
if (region != null) {
// If cache contains the region for the bucket, create an endpoint for the region and
// update the request with that endpoint.
- resolveRequestEndpoint(request, bucketName, key, RuntimeHttpUtils.toUri(
- RegionUtils.getRegion(region).getServiceEndpoint(S3_SERVICE_NAME),
+ resolveRequestEndpoint(request,
+ bucketName,
+ key,
+ RuntimeHttpUtils.toUri(RegionUtils.getRegion(region).getServiceEndpoint(S3_SERVICE_NAME),
clientConfiguration));
- final AWSS3V4Signer v4Signer = (AWSS3V4Signer) signer;
- v4Signer.setServiceName(getServiceNameIntern());
- v4Signer.setRegionName(region);
- return v4Signer;
+ AWSS3V4Signer sigV4Signer = (AWSS3V4Signer) signer;
+ setAWSS3V4SignerWithServiceNameAndRegion((AWSS3V4Signer) signer, region);
+ return sigV4Signer;
} else if (request.getOriginalRequest() instanceof GeneratePresignedUrlRequest) {
return createSigV2Signer(request, bucketName, key);
}
@@ -3962,10 +4201,9 @@ protected Signer createSigner(final Request> request,
? (clientRegion == null ? bucketRegionCache.get(bucketName) : clientRegion)
: getSignerRegionOverride();
if (regionOverride != null) {
- final AWSS3V4Signer v4Signer = new AWSS3V4Signer();
- v4Signer.setServiceName(getServiceNameIntern());
- v4Signer.setRegionName(regionOverride);
- return v4Signer;
+ AWSS3V4Signer sigV4Signer = new AWSS3V4Signer();
+ setAWSS3V4SignerWithServiceNameAndRegion(sigV4Signer, regionOverride);
+ return sigV4Signer;
}
}
@@ -3980,6 +4218,20 @@ protected Signer createSigner(final Request> request,
return signer;
}
+ /**
+ * Create and return a SigV4 based signer with the service name and region.
+ *
+ * @param sigV4Signer the signer that signs the request using SigV4
+ * algorithm.
+ * @param region the signer region
+ * @return
+ */
+ private void setAWSS3V4SignerWithServiceNameAndRegion(final AWSS3V4Signer sigV4Signer,
+ final String region) {
+ sigV4Signer.setServiceName(getServiceNameIntern());
+ sigV4Signer.setRegionName(region);
+ }
+
/**
* Has signer been explicitly overriden in the configuration?
*/
@@ -4022,6 +4274,7 @@ private boolean isStandardEndpoint(URI endpoint) {
return endpoint.getHost().endsWith(Constants.S3_HOSTNAME);
}
+ @Deprecated
private S3Signer createSigV2Signer(final Request> request,
final String bucketName,
final String key) {
@@ -4655,7 +4908,7 @@ && noExplicitRegionProvided(request)) {
response = client.execute(request, responseHandler,
errorResponseHandler, executionContext);
return response.getAwsResponse();
- }catch(final AmazonS3Exception ase){
+ } catch(final AmazonS3Exception ase){
/**
* This is to handle the edge case: when the bucket is deleted and recreated in a different region,
* the cache still has the old region info.
@@ -5478,15 +5731,17 @@ public void resolveRequestEndpoint(Request> request,
URI endpoint) {
final URI ep = endpoint == null ? this.endpoint : endpoint;
if (shouldUseVirtualAddressing(ep, bucketName)) {
+ log.debug("Using virtual style addressing. Endpoint = " + ep);
request.setEndpoint(convertToVirtualHostEndpoint(ep, bucketName));
request.setResourcePath(getHostStyleResourcePath(key));
} else {
+ log.debug("Using path style addressing. Endpoint = " + ep);
request.setEndpoint(ep);
if (bucketName != null) {
request.setResourcePath(getPathStyleResourcePath(bucketName, key));
}
}
- log.info("Key: " + key + "; Request: " + request);
+ log.debug("Key: " + key + "; Request: " + request);
}
private boolean shouldUseVirtualAddressing(final URI endpoint, final String bucketName) {
diff --git a/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/internal/Constants.java b/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/internal/Constants.java
index fda2b8a01aa..880c2f60361 100644
--- a/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/internal/Constants.java
+++ b/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/internal/Constants.java
@@ -28,6 +28,8 @@
*/
public class Constants {
+ /** Prefix for the S3 service endpoint */
+ public static final String S3_ENDPOINT_PREFIX = "s3";
/** Default hostname for the S3 service endpoint */
public static final String S3_HOSTNAME = "s3.amazonaws.com";
/** Hostname for the s3-external-1 service endpoint */
diff --git a/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/model/EncryptedPutObjectRequest.java b/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/model/EncryptedPutObjectRequest.java
index d6fb6ba99bd..b008d7a908c 100644
--- a/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/model/EncryptedPutObjectRequest.java
+++ b/aws-android-sdk-s3/src/main/java/com/amazonaws/services/s3/model/EncryptedPutObjectRequest.java
@@ -31,7 +31,7 @@
*
*
* If {@link EncryptedPutObjectRequest} is used against the non-encrypting
- * {@link AmazonS3JavaClient}, the additional attributes will be ignored.
+ * {@link AmazonS3EncryptionClient}, the additional attributes will be ignored.
*
*/
public class EncryptedPutObjectRequest extends PutObjectRequest implements
diff --git a/aws-android-sdk-s3/src/test/java/com/amazonaws/services/s3/internal/S3SignerTest.java b/aws-android-sdk-s3/src/test/java/com/amazonaws/services/s3/internal/S3SignerTest.java
index 512f6030dc3..fb910a7d21d 100644
--- a/aws-android-sdk-s3/src/test/java/com/amazonaws/services/s3/internal/S3SignerTest.java
+++ b/aws-android-sdk-s3/src/test/java/com/amazonaws/services/s3/internal/S3SignerTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2010-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * 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.
@@ -24,14 +24,23 @@
import com.amazonaws.services.s3.Headers;
import com.amazonaws.services.s3.model.GetObjectRequest;
+import org.junit.Ignore;
import org.junit.Test;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Date;
+/**
+ * TODO:
+ *
+ * Skipping the execution of this test due to the removal of
+ * SigV2. Once SigV2 support is removed from the AmazonS3Client,
+ * delete these tests.
+ */
public class S3SignerTest {
+ @Ignore
@Test
public void testSign() throws URISyntaxException {
final GetObjectRequest gr = new GetObjectRequest("test-bucket123456", "TestFile.txt");
diff --git a/aws-android-sdk-sdb/pom.xml b/aws-android-sdk-sdb/pom.xml
index ab490512a10..2aa4ff146d2 100644
--- a/aws-android-sdk-sdb/pom.xml
+++ b/aws-android-sdk-sdb/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -20,7 +20,7 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
junit
diff --git a/aws-android-sdk-ses/pom.xml b/aws-android-sdk-ses/pom.xml
index 648f84288d7..ca93c460406 100644
--- a/aws-android-sdk-ses/pom.xml
+++ b/aws-android-sdk-ses/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -20,7 +20,7 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
diff --git a/aws-android-sdk-sns/pom.xml b/aws-android-sdk-sns/pom.xml
index 47ac9680a06..b43d6b3e6a8 100644
--- a/aws-android-sdk-sns/pom.xml
+++ b/aws-android-sdk-sns/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -20,13 +20,13 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
com.amazonaws
aws-android-sdk-sqs
false
- 2.11.1
+ 2.12.0
diff --git a/aws-android-sdk-sqs/pom.xml b/aws-android-sdk-sqs/pom.xml
index 57f250cda1b..9c1c20f7c7a 100644
--- a/aws-android-sdk-sqs/pom.xml
+++ b/aws-android-sdk-sqs/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -20,7 +20,7 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
diff --git a/aws-android-sdk-transcribe/pom.xml b/aws-android-sdk-transcribe/pom.xml
index 6300c8ef08b..c651e880ed6 100644
--- a/aws-android-sdk-transcribe/pom.xml
+++ b/aws-android-sdk-transcribe/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -20,7 +20,7 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
diff --git a/aws-android-sdk-translate/pom.xml b/aws-android-sdk-translate/pom.xml
index bfcb34e9b11..51ef73644b5 100644
--- a/aws-android-sdk-translate/pom.xml
+++ b/aws-android-sdk-translate/pom.xml
@@ -12,7 +12,7 @@
com.amazonaws
aws-android-sdk-pom
- 2.11.1
+ 2.12.0
@@ -20,7 +20,7 @@
com.amazonaws
aws-android-sdk-core
false
- 2.11.1
+ 2.12.0
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100755
index 457aad0d98108420a977756b7145c93c8910b076..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 55741
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