diff --git a/CHANGELOG.md b/CHANGELOG.md index 3beb5bf21e0..4896c56335a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Change Log - AWS SDK for Android +## [Release 2.6.6](https://github.com/aws/aws-sdk-android/releases/tag/release_v2.6.6) + +### Bug Fixes: + +- **Amazon Pinpoint** + - Fix locale issue for endpoint profile updates. See [issue #355](https://github.com/aws/aws-sdk-android/issues/355) and see [issue #354](https://github.com/aws/aws-sdk-android/issues/354) + +- **Amazon S3** + - Fixed a bug in the download progress reporting for large files where the last status update could be a jump of 75% or more. The default for notification used to be 8K bytes chunks, it has been changed to 1024K bytes. The value can be changed using the `setNotificationThreshold` method of AmazonS3Client instead of being a constant. See [issue #333](https://github.com/aws/aws-sdk-android/issues/333) + +- **AWS IoT** + - Fix validation for endpoint in China that ends with ".cn". See [issue #337](https://github.com/aws/aws-sdk-android/issues/337) + ## [Release 2.6.5](https://github.com/aws/aws-sdk-android/releases/tag/release_v2.6.5) ### Enhancements: diff --git a/README.md b/README.md index 7485844d38b..db5d7ab35b6 100644 --- a/README.md +++ b/README.md @@ -104,7 +104,7 @@ There are only a few fundamentals that are helpful to know when developing again ### Basic Service API Calls -The SDK provides access to many AWS Services. At the most basic level the SDK provides a request/response model for many of the various service methods. At this level, for a given service, you will have a client that accepts request objects and will pass back a response object, or throw an error. This basic model is shown in the above example. Looking at the [Javadoc](http://docs.aws.amazon.com/AWSAndroidSDK/latest/javadoc/) you will notice that services typically have a com.amazonaws.services.*servicename* packageand com.amazonaws.services.*servicename*.model package . This *servicename* package contains the client that you will pass request/response objects to in order to make service calls. The *servicename*.model package contains classes that model the request and response parameters of calls to and from AWS services. +The SDK provides access to many AWS Services. At the most basic level the SDK provides a request/response model for many of the various service methods. At this level, for a given service, you will have a client that accepts request objects and will pass back a response object, or throw an error. This basic model is shown in the above example. Looking at the [Javadoc](http://docs.aws.amazon.com/AWSAndroidSDK/latest/javadoc/) you will notice that services typically have a com.amazonaws.services.*servicename* package and com.amazonaws.services.*servicename*.model package . This *servicename* package contains the client that you will pass request/response objects to in order to make service calls. The *servicename*.model package contains classes that model the request and response parameters of calls to and from AWS services. ### Mobile Connectors @@ -278,4 +278,4 @@ If you are using a Mac, you may run into issues when trying to compile, because ## To learn more about Android Development -For more information on Andorid development, see the Android developer site at: [developer.android.com](http://developer.android.com/index.html) \ No newline at end of file +For more information on Android development, see the Android developer site at: [developer.android.com](http://developer.android.com/index.html) \ No newline at end of file diff --git a/aws-android-sdk-apigateway-core/pom.xml b/aws-android-sdk-apigateway-core/pom.xml index e701e9bb3b5..8fe5bb86118 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.6.5 + 2.6.6 @@ -20,7 +20,7 @@ com.amazonaws aws-android-sdk-core false - 2.6.5 + 2.6.6 diff --git a/aws-android-sdk-auth-core/pom.xml b/aws-android-sdk-auth-core/pom.xml index 0fa074d66f8..4bbada813ec 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.6.5 + 2.6.6 @@ -29,7 +29,7 @@ com.amazonaws aws-android-sdk-core false - 2.6.5 + 2.6.6 diff --git a/aws-android-sdk-auth-facebook/pom.xml b/aws-android-sdk-auth-facebook/pom.xml index a33414d84ba..619f0976ef1 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.6.5 + 2.6.6 @@ -36,7 +36,7 @@ com.amazonaws aws-android-sdk-auth-core false - 2.6.5 + 2.6.6 aar diff --git a/aws-android-sdk-auth-google/pom.xml b/aws-android-sdk-auth-google/pom.xml index ecb778489ed..3e46a87fec5 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.6.5 + 2.6.6 @@ -40,7 +40,7 @@ com.amazonaws aws-android-sdk-auth-core false - 2.6.5 + 2.6.6 aar diff --git a/aws-android-sdk-auth-ui/pom.xml b/aws-android-sdk-auth-ui/pom.xml index 5fa7fc58d46..25a98969d9d 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.6.5 + 2.6.6 @@ -36,28 +36,28 @@ com.amazonaws aws-android-sdk-auth-core false - 2.6.5 + 2.6.6 aar com.amazonaws aws-android-sdk-auth-google true - 2.6.5 + 2.6.6 aar com.amazonaws aws-android-sdk-auth-facebook true - 2.6.5 + 2.6.6 aar com.amazonaws aws-android-sdk-auth-userpools true - 2.6.5 + 2.6.6 aar diff --git a/aws-android-sdk-auth-ui/src/main/java/com/amazonaws/mobile/auth/ui/SignInView.java b/aws-android-sdk-auth-ui/src/main/java/com/amazonaws/mobile/auth/ui/SignInView.java index b0c0297ad47..e064fe98f42 100644 --- a/aws-android-sdk-auth-ui/src/main/java/com/amazonaws/mobile/auth/ui/SignInView.java +++ b/aws-android-sdk-auth-ui/src/main/java/com/amazonaws/mobile/auth/ui/SignInView.java @@ -56,7 +56,7 @@ public class SignInView extends LinearLayout { private static final int IMAGE_LAYOUT_MARGINS = dp(10); /** String that represents the SDK Version. */ - private static final String SDK_VERSION = "2.6.5"; + private static final String SDK_VERSION = "2.6.6"; /** Common Prefix of the namespaces of different SignIn providers. */ private static final String NAMESPACE_COMMON_PREFIX = "com.amazonaws.mobile.auth"; diff --git a/aws-android-sdk-auth-userpools/pom.xml b/aws-android-sdk-auth-userpools/pom.xml index 378b4078926..e32e166d156 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.6.5 + 2.6.6 @@ -36,14 +36,14 @@ com.amazonaws aws-android-sdk-cognitoidentityprovider false - 2.6.5 + 2.6.6 com.amazonaws aws-android-sdk-auth-core false - 2.6.5 + 2.6.6 aar diff --git a/aws-android-sdk-autoscaling/pom.xml b/aws-android-sdk-autoscaling/pom.xml index 723d5d148ce..8b5d8044905 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.6.5 + 2.6.6 @@ -20,7 +20,7 @@ com.amazonaws aws-android-sdk-core false - 2.6.5 + 2.6.6 diff --git a/aws-android-sdk-cloudwatch/pom.xml b/aws-android-sdk-cloudwatch/pom.xml index a899247fab6..5741bc4982b 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.6.5 + 2.6.6 @@ -20,7 +20,7 @@ com.amazonaws aws-android-sdk-core false - 2.6.5 + 2.6.6 diff --git a/aws-android-sdk-cognito/pom.xml b/aws-android-sdk-cognito/pom.xml index f8aa3747ef6..2e54e59fbb8 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.6.5 + 2.6.6 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.6.5 + 2.6.6 @@ -29,7 +29,7 @@ com.amazonaws aws-android-sdk-core false - 2.6.5 + 2.6.6 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 55edd96cc01..ac008a9afb6 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.6.5 +fabric-version=2.6.6 fabric-build-type=binary diff --git a/aws-android-sdk-cognitoauth/pom.xml b/aws-android-sdk-cognitoauth/pom.xml index 59cd2988920..e7adf48fe1f 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.6.5 + 2.6.6 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.6.5 + 2.6.6 diff --git a/aws-android-sdk-cognitoidentityprovider/pom.xml b/aws-android-sdk-cognitoidentityprovider/pom.xml index 2d891db0430..d28f885f3a6 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.6.5 + 2.6.6 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.6.5 + 2.6.6 @@ -29,7 +29,7 @@ com.amazonaws aws-android-sdk-core false - 2.6.5 + 2.6.6 com.google.android diff --git a/aws-android-sdk-core/pom.xml b/aws-android-sdk-core/pom.xml index d66db949f13..3909fc5b444 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.6.5 + 2.6.6 diff --git a/aws-android-sdk-core/src/main/java/com/amazonaws/event/ProgressReportingInputStream.java b/aws-android-sdk-core/src/main/java/com/amazonaws/event/ProgressReportingInputStream.java index 86610e53f54..ee490d0ca3a 100644 --- a/aws-android-sdk-core/src/main/java/com/amazonaws/event/ProgressReportingInputStream.java +++ b/aws-android-sdk-core/src/main/java/com/amazonaws/event/ProgressReportingInputStream.java @@ -32,8 +32,14 @@ */ public class ProgressReportingInputStream extends SdkFilterInputStream { + /** Constant to represent 1KB. */ + private static final int BYTES_IN_KB = 1024; + + /** Constant to represent the Notification Threshold in KB. */ + private static final int THRESHOLD_IN_KB = 8; + /** The threshold of bytes between notifications. */ - private static final int NOTIFICATION_THRESHOLD = 8 * 1024; + private int notificationThreshold = THRESHOLD_IN_KB * BYTES_IN_KB; /** The listener callback executor */ private final ProgressListenerCallbackExecutor listenerCallbackExecutor; @@ -66,6 +72,17 @@ public ProgressReportingInputStream(final InputStream in, this.listenerCallbackExecutor = listenerCallbackExecutor; } + /** + * Sets the number of Kbytes that need to be written before updates to the + * listener occur. + * + * @param threshold Number of Kbytes that needs to be written before + * write update notification occurs. + */ + public void setNotificationThreshold(final int threshold) { + this.notificationThreshold = threshold * BYTES_IN_KB; + } + /** * Sets whether this input stream should fire an event with code * {@link ProgressEvent#COMPLETED_EVENT_CODE} when this stream runs out of @@ -141,7 +158,8 @@ private void notifyCompleted() { private void notify(int bytesRead) { unnotifiedByteCount += bytesRead; - if (unnotifiedByteCount >= NOTIFICATION_THRESHOLD) { + + if (unnotifiedByteCount >= this.notificationThreshold) { listenerCallbackExecutor.progressChanged(new ProgressEvent(unnotifiedByteCount)); unnotifiedByteCount = 0; } diff --git a/aws-android-sdk-core/src/main/java/com/amazonaws/regions/RegionDefaults.java b/aws-android-sdk-core/src/main/java/com/amazonaws/regions/RegionDefaults.java index 222b375f753..ff34366f06e 100644 --- a/aws-android-sdk-core/src/main/java/com/amazonaws/regions/RegionDefaults.java +++ b/aws-android-sdk-core/src/main/java/com/amazonaws/regions/RegionDefaults.java @@ -27,324 +27,324 @@ public static List getRegions() { region = new Region("ap-northeast-1", ""); ret.add(region); - updateRegion(region, "sns", "sns.ap-northeast-1.amazonaws.com", false, true); - updateRegion(region, "cognito-sync", "cognito-sync.ap-northeast-1.amazonaws.com", false, - true); - updateRegion(region, "ec2", "ec2.ap-northeast-1.amazonaws.com", false, true); - updateRegion(region, "sqs", "sqs.ap-northeast-1.amazonaws.com", false, true); - updateRegion(region, "dynamodb", "dynamodb.ap-northeast-1.amazonaws.com", false, true); - updateRegion(region, "sdb", "sdb.ap-northeast-1.amazonaws.com", false, true); updateRegion(region, "autoscaling", "autoscaling.ap-northeast-1.amazonaws.com", false, true); - updateRegion(region, "kinesis", "kinesis.ap-northeast-1.amazonaws.com", false, true); updateRegion(region, "cognito-identity", "cognito-identity.ap-northeast-1.amazonaws.com", false, true); - updateRegion(region, "kms", "kms.ap-northeast-1.amazonaws.com", false, true); - updateRegion(region, "iot", "iot.ap-northeast-1.amazonaws.com", false, true); - updateRegion(region, "data.iot", "data.iot.ap-northeast-1.amazonaws.com", false, true); - updateRegion(region, "sts", "sts.amazonaws.com", false, true); - updateRegion(region, "s3", "s3-ap-northeast-1.amazonaws.com", false, true); updateRegion(region, "cognito-idp", "cognito-idp.ap-northeast-1.amazonaws.com", false, true); - updateRegion(region, "lambda", "lambda.ap-northeast-1.amazonaws.com", false, true); + updateRegion(region, "cognito-sync", "cognito-sync.ap-northeast-1.amazonaws.com", false, + true); + updateRegion(region, "data.iot", "data.iot.ap-northeast-1.amazonaws.com", false, true); + updateRegion(region, "dynamodb", "dynamodb.ap-northeast-1.amazonaws.com", false, true); + updateRegion(region, "ec2", "ec2.ap-northeast-1.amazonaws.com", false, true); updateRegion(region, "elasticloadbalancing", "elasticloadbalancing.ap-northeast-1.amazonaws.com", false, true); + updateRegion(region, "iot", "iot.ap-northeast-1.amazonaws.com", false, true); + updateRegion(region, "kinesis", "kinesis.ap-northeast-1.amazonaws.com", false, true); + updateRegion(region, "kms", "kms.ap-northeast-1.amazonaws.com", false, true); + updateRegion(region, "lambda", "lambda.ap-northeast-1.amazonaws.com", false, true); + updateRegion(region, "s3", "s3-ap-northeast-1.amazonaws.com", false, true); + updateRegion(region, "sdb", "sdb.ap-northeast-1.amazonaws.com", false, true); + updateRegion(region, "sns", "sns.ap-northeast-1.amazonaws.com", false, true); + updateRegion(region, "sqs", "sqs.ap-northeast-1.amazonaws.com", false, true); + updateRegion(region, "sts", "sts.amazonaws.com", false, true); region = new Region("ap-northeast-2", ""); ret.add(region); - updateRegion(region, "s3", "s3.ap-northeast-2.amazonaws.com", false, true); updateRegion(region, "autoscaling", "autoscaling.ap-northeast-2.amazonaws.com", false, true); - updateRegion(region, "ec2", "ec2.ap-northeast-2.amazonaws.com", false, true); - updateRegion(region, "cognito-sync", "cognito-sync.ap-northeast-2.amazonaws.com", false, - true); - updateRegion(region, "sts", "sts.ap-northeast-2.amazonaws.com", false, true); - updateRegion(region, "dynamodb", "dynamodb.ap-northeast-2.amazonaws.com", false, true); updateRegion(region, "cognito-identity", "cognito-identity.ap-northeast-2.amazonaws.com", false, true); updateRegion(region, "cognito-idp", "cognito-idp.ap-northeast-2.amazonaws.com", false, true); - updateRegion(region, "sqs", "sqs.ap-northeast-2.amazonaws.com", false, true); - updateRegion(region, "iot", "iot.ap-northeast-2.amazonaws.com", false, true); - updateRegion(region, "sns", "sns.ap-northeast-2.amazonaws.com", false, true); + updateRegion(region, "cognito-sync", "cognito-sync.ap-northeast-2.amazonaws.com", false, + true); + updateRegion(region, "data.iot", "data.iot.ap-northeast-2.amazonaws.com", false, true); + updateRegion(region, "dynamodb", "dynamodb.ap-northeast-2.amazonaws.com", false, true); + updateRegion(region, "ec2", "ec2.ap-northeast-2.amazonaws.com", false, true); updateRegion(region, "elasticloadbalancing", "elasticloadbalancing.ap-northeast-2.amazonaws.com", false, true); + updateRegion(region, "iot", "iot.ap-northeast-2.amazonaws.com", false, true); + updateRegion(region, "kinesis", "kinesis.ap-northeast-2.amazonaws.com", false, true); updateRegion(region, "kms", "kms.ap-northeast-2.amazonaws.com", false, true); updateRegion(region, "lambda", "lambda.ap-northeast-2.amazonaws.com", false, true); - updateRegion(region, "kinesis", "kinesis.ap-northeast-2.amazonaws.com", false, true); - updateRegion(region, "data.iot", "data.iot.ap-northeast-2.amazonaws.com", false, true); + updateRegion(region, "s3", "s3.ap-northeast-2.amazonaws.com", false, true); + updateRegion(region, "sns", "sns.ap-northeast-2.amazonaws.com", false, true); + updateRegion(region, "sqs", "sqs.ap-northeast-2.amazonaws.com", false, true); + updateRegion(region, "sts", "sts.ap-northeast-2.amazonaws.com", false, true); region = new Region("ap-south-1", ""); ret.add(region); - updateRegion(region, "cognito-idp", "cognito-idp.ap-south-1.amazonaws.com", false, true); - updateRegion(region, "kms", "kms.ap-south-1.amazonaws.com", false, true); - updateRegion(region, "ec2", "ec2.ap-south-1.amazonaws.com", false, true); updateRegion(region, "autoscaling", "autoscaling.ap-south-1.amazonaws.com", false, true); - updateRegion(region, "lambda", "lambda.ap-south-1.amazonaws.com", false, true); - updateRegion(region, "kinesis", "kinesis.ap-south-1.amazonaws.com", false, true); - updateRegion(region, "sns", "sns.ap-south-1.amazonaws.com", false, true); updateRegion(region, "cognito-identity", "cognito-identity.ap-south-1.amazonaws.com", false, true); + updateRegion(region, "cognito-idp", "cognito-idp.ap-south-1.amazonaws.com", false, true); + updateRegion(region, "cognito-sync", "cognito-sync.ap-south-1.amazonaws.com", false, true); + updateRegion(region, "dynamodb", "dynamodb.ap-south-1.amazonaws.com", false, true); + updateRegion(region, "ec2", "ec2.ap-south-1.amazonaws.com", false, true); updateRegion(region, "elasticloadbalancing", "elasticloadbalancing.ap-south-1.amazonaws.com", false, true); - updateRegion(region, "dynamodb", "dynamodb.ap-south-1.amazonaws.com", false, true); - updateRegion(region, "cognito-sync", "cognito-sync.ap-south-1.amazonaws.com", false, true); + updateRegion(region, "kinesis", "kinesis.ap-south-1.amazonaws.com", false, true); + updateRegion(region, "kms", "kms.ap-south-1.amazonaws.com", false, true); + updateRegion(region, "lambda", "lambda.ap-south-1.amazonaws.com", false, true); + updateRegion(region, "s3", "s3.ap-south-1.amazonaws.com", false, true); + updateRegion(region, "sns", "sns.ap-south-1.amazonaws.com", false, true); updateRegion(region, "sqs", "sqs.ap-south-1.amazonaws.com", false, true); updateRegion(region, "sts", "sts.amazonaws.com", false, true); - updateRegion(region, "s3", "s3.ap-south-1.amazonaws.com", false, true); region = new Region("ap-southeast-1", ""); ret.add(region); - updateRegion(region, "kms", "kms.ap-southeast-1.amazonaws.com", false, true); - updateRegion(region, "s3", "s3-ap-southeast-1.amazonaws.com", false, true); - updateRegion(region, "sns", "sns.ap-southeast-1.amazonaws.com", false, true); - updateRegion(region, "ec2", "ec2.ap-southeast-1.amazonaws.com", false, true); + updateRegion(region, "autoscaling", "autoscaling.ap-southeast-1.amazonaws.com", false, true); + updateRegion(region, "data.iot", "data.iot.ap-southeast-1.amazonaws.com", false, true); updateRegion(region, "dynamodb", "dynamodb.ap-southeast-1.amazonaws.com", false, true); + updateRegion(region, "ec2", "ec2.ap-southeast-1.amazonaws.com", false, true); updateRegion(region, "elasticloadbalancing", "elasticloadbalancing.ap-southeast-1.amazonaws.com", false, true); - updateRegion(region, "sts", "sts.amazonaws.com", false, true); + updateRegion(region, "iot", "iot.ap-southeast-1.amazonaws.com", false, true); + updateRegion(region, "kinesis", "kinesis.ap-southeast-1.amazonaws.com", false, true); + updateRegion(region, "kms", "kms.ap-southeast-1.amazonaws.com", false, true); updateRegion(region, "lambda", "lambda.ap-southeast-1.amazonaws.com", false, true); + updateRegion(region, "s3", "s3-ap-southeast-1.amazonaws.com", false, true); updateRegion(region, "sdb", "sdb.ap-southeast-1.amazonaws.com", false, true); - updateRegion(region, "iot", "iot.ap-southeast-1.amazonaws.com", false, true); + updateRegion(region, "sns", "sns.ap-southeast-1.amazonaws.com", false, true); updateRegion(region, "sqs", "sqs.ap-southeast-1.amazonaws.com", false, true); - updateRegion(region, "data.iot", "data.iot.ap-southeast-1.amazonaws.com", false, true); - updateRegion(region, "autoscaling", "autoscaling.ap-southeast-1.amazonaws.com", false, true); - updateRegion(region, "kinesis", "kinesis.ap-southeast-1.amazonaws.com", false, true); + updateRegion(region, "sts", "sts.amazonaws.com", false, true); region = new Region("ap-southeast-2", ""); ret.add(region); - updateRegion(region, "ec2", "ec2.ap-southeast-2.amazonaws.com", false, true); - updateRegion(region, "data.iot", "data.iot.ap-southeast-2.amazonaws.com", false, true); - updateRegion(region, "iot", "iot.ap-southeast-2.amazonaws.com", false, true); - updateRegion(region, "s3", "s3-ap-southeast-2.amazonaws.com", false, true); updateRegion(region, "autoscaling", "autoscaling.ap-southeast-2.amazonaws.com", false, true); - updateRegion(region, "lambda", "lambda.ap-southeast-2.amazonaws.com", false, true); + updateRegion(region, "cognito-identity", "cognito-identity.ap-southeast-2.amazonaws.com", + false, true); + updateRegion(region, "cognito-idp", "cognito-idp.ap-southeast-2.amazonaws.com", false, true); updateRegion(region, "cognito-sync", "cognito-sync.ap-southeast-2.amazonaws.com", false, true); - updateRegion(region, "cognito-idp", "cognito-idp.ap-southeast-2.amazonaws.com", false, true); + updateRegion(region, "data.iot", "data.iot.ap-southeast-2.amazonaws.com", false, true); + updateRegion(region, "dynamodb", "dynamodb.ap-southeast-2.amazonaws.com", false, true); + updateRegion(region, "ec2", "ec2.ap-southeast-2.amazonaws.com", false, true); updateRegion(region, "elasticloadbalancing", "elasticloadbalancing.ap-southeast-2.amazonaws.com", false, true); - updateRegion(region, "sns", "sns.ap-southeast-2.amazonaws.com", false, true); - updateRegion(region, "kms", "kms.ap-southeast-2.amazonaws.com", false, true); - updateRegion(region, "dynamodb", "dynamodb.ap-southeast-2.amazonaws.com", false, true); - updateRegion(region, "cognito-identity", "cognito-identity.ap-southeast-2.amazonaws.com", - false, true); + updateRegion(region, "iot", "iot.ap-southeast-2.amazonaws.com", false, true); updateRegion(region, "kinesis", "kinesis.ap-southeast-2.amazonaws.com", false, true); + updateRegion(region, "kms", "kms.ap-southeast-2.amazonaws.com", false, true); + updateRegion(region, "lambda", "lambda.ap-southeast-2.amazonaws.com", false, true); + updateRegion(region, "s3", "s3-ap-southeast-2.amazonaws.com", false, true); updateRegion(region, "sdb", "sdb.ap-southeast-2.amazonaws.com", false, true); + updateRegion(region, "sns", "sns.ap-southeast-2.amazonaws.com", false, true); updateRegion(region, "sqs", "sqs.ap-southeast-2.amazonaws.com", false, true); updateRegion(region, "sts", "sts.amazonaws.com", false, true); region = new Region("ca-central-1", ""); ret.add(region); + updateRegion(region, "autoscaling", "autoscaling.ca-central-1.amazonaws.com", false, true); updateRegion(region, "dynamodb", "dynamodb.ca-central-1.amazonaws.com", false, true); - updateRegion(region, "sns", "sns.ca-central-1.amazonaws.com", false, true); - updateRegion(region, "sts", "sts.amazonaws.com", false, true); + updateRegion(region, "ec2", "ec2.ca-central-1.amazonaws.com", false, true); updateRegion(region, "elasticloadbalancing", "elasticloadbalancing.ca-central-1.amazonaws.com", false, true); - updateRegion(region, "ec2", "ec2.ca-central-1.amazonaws.com", false, true); updateRegion(region, "kinesis", "kinesis.ca-central-1.amazonaws.com", false, true); - updateRegion(region, "s3", "s3.ca-central-1.amazonaws.com", false, true); - updateRegion(region, "autoscaling", "autoscaling.ca-central-1.amazonaws.com", false, true); updateRegion(region, "kms", "kms.ca-central-1.amazonaws.com", false, true); + updateRegion(region, "s3", "s3.ca-central-1.amazonaws.com", false, true); + updateRegion(region, "sns", "sns.ca-central-1.amazonaws.com", false, true); updateRegion(region, "sqs", "sqs.ca-central-1.amazonaws.com", false, true); + updateRegion(region, "sts", "sts.amazonaws.com", false, true); region = new Region("eu-central-1", ""); ret.add(region); - updateRegion(region, "iot", "iot.eu-central-1.amazonaws.com", false, true); - updateRegion(region, "sns", "sns.eu-central-1.amazonaws.com", false, true); - updateRegion(region, "sts", "sts.amazonaws.com", false, true); + updateRegion(region, "autoscaling", "autoscaling.eu-central-1.amazonaws.com", false, true); updateRegion(region, "cognito-identity", "cognito-identity.eu-central-1.amazonaws.com", false, true); updateRegion(region, "cognito-idp", "cognito-idp.eu-central-1.amazonaws.com", false, true); + updateRegion(region, "cognito-sync", "cognito-sync.eu-central-1.amazonaws.com", false, true); + updateRegion(region, "data.iot", "data.iot.eu-central-1.amazonaws.com", false, true); + updateRegion(region, "dynamodb", "dynamodb.eu-central-1.amazonaws.com", false, true); updateRegion(region, "ec2", "ec2.eu-central-1.amazonaws.com", false, true); - updateRegion(region, "s3", "s3.eu-central-1.amazonaws.com", false, true); updateRegion(region, "elasticloadbalancing", "elasticloadbalancing.eu-central-1.amazonaws.com", false, true); - updateRegion(region, "sqs", "sqs.eu-central-1.amazonaws.com", false, true); + updateRegion(region, "iot", "iot.eu-central-1.amazonaws.com", false, true); updateRegion(region, "kinesis", "kinesis.eu-central-1.amazonaws.com", false, true); - updateRegion(region, "data.iot", "data.iot.eu-central-1.amazonaws.com", false, true); - updateRegion(region, "cognito-sync", "cognito-sync.eu-central-1.amazonaws.com", false, true); updateRegion(region, "kms", "kms.eu-central-1.amazonaws.com", false, true); updateRegion(region, "lambda", "lambda.eu-central-1.amazonaws.com", false, true); - updateRegion(region, "autoscaling", "autoscaling.eu-central-1.amazonaws.com", false, true); - updateRegion(region, "dynamodb", "dynamodb.eu-central-1.amazonaws.com", false, true); + updateRegion(region, "s3", "s3.eu-central-1.amazonaws.com", false, true); + updateRegion(region, "sns", "sns.eu-central-1.amazonaws.com", false, true); + updateRegion(region, "sqs", "sqs.eu-central-1.amazonaws.com", false, true); + updateRegion(region, "sts", "sts.amazonaws.com", false, true); region = new Region("eu-west-1", ""); ret.add(region); - updateRegion(region, "lambda", "lambda.eu-west-1.amazonaws.com", false, true); - updateRegion(region, "machinelearning", "machinelearning.eu-west-1.amazonaws.com", false, - true); - updateRegion(region, "data.iot", "data.iot.eu-west-1.amazonaws.com", false, true); - updateRegion(region, "sdb", "sdb.eu-west-1.amazonaws.com", false, true); - updateRegion(region, "cognito-sync", "cognito-sync.eu-west-1.amazonaws.com", false, true); - updateRegion(region, "sts", "sts.amazonaws.com", false, true); - updateRegion(region, "sqs", "sqs.eu-west-1.amazonaws.com", false, true); updateRegion(region, "autoscaling", "autoscaling.eu-west-1.amazonaws.com", false, true); - updateRegion(region, "cognito-idp", "cognito-idp.eu-west-1.amazonaws.com", false, true); - updateRegion(region, "dynamodb", "dynamodb.eu-west-1.amazonaws.com", false, true); - updateRegion(region, "polly", "polly.eu-west-1.amazonaws.com", false, true); - updateRegion(region, "firehose", "firehose.eu-west-1.amazonaws.com", false, true); updateRegion(region, "cognito-identity", "cognito-identity.eu-west-1.amazonaws.com", false, true); + updateRegion(region, "cognito-idp", "cognito-idp.eu-west-1.amazonaws.com", false, true); + updateRegion(region, "cognito-sync", "cognito-sync.eu-west-1.amazonaws.com", false, true); + updateRegion(region, "data.iot", "data.iot.eu-west-1.amazonaws.com", false, true); + updateRegion(region, "dynamodb", "dynamodb.eu-west-1.amazonaws.com", false, true); + updateRegion(region, "ec2", "ec2.eu-west-1.amazonaws.com", false, true); updateRegion(region, "elasticloadbalancing", "elasticloadbalancing.eu-west-1.amazonaws.com", false, true); - updateRegion(region, "iot", "iot.eu-west-1.amazonaws.com", false, true); updateRegion(region, "email", "email.eu-west-1.amazonaws.com", false, true); - updateRegion(region, "kms", "kms.eu-west-1.amazonaws.com", false, true); - updateRegion(region, "sns", "sns.eu-west-1.amazonaws.com", false, true); + updateRegion(region, "firehose", "firehose.eu-west-1.amazonaws.com", false, true); + updateRegion(region, "iot", "iot.eu-west-1.amazonaws.com", false, true); updateRegion(region, "kinesis", "kinesis.eu-west-1.amazonaws.com", false, true); - updateRegion(region, "ec2", "ec2.eu-west-1.amazonaws.com", false, true); + updateRegion(region, "kms", "kms.eu-west-1.amazonaws.com", false, true); + updateRegion(region, "lambda", "lambda.eu-west-1.amazonaws.com", false, true); + updateRegion(region, "machinelearning", "machinelearning.eu-west-1.amazonaws.com", false, + true); + updateRegion(region, "polly", "polly.eu-west-1.amazonaws.com", false, true); updateRegion(region, "s3", "s3-eu-west-1.amazonaws.com", false, true); + updateRegion(region, "sdb", "sdb.eu-west-1.amazonaws.com", false, true); + updateRegion(region, "sns", "sns.eu-west-1.amazonaws.com", false, true); + updateRegion(region, "sqs", "sqs.eu-west-1.amazonaws.com", false, true); + updateRegion(region, "sts", "sts.amazonaws.com", false, true); region = new Region("eu-west-2", ""); ret.add(region); + updateRegion(region, "autoscaling", "autoscaling.eu-west-2.amazonaws.com", false, true); updateRegion(region, "cognito-identity", "cognito-identity.eu-west-2.amazonaws.com", false, true); + updateRegion(region, "cognito-idp", "cognito-idp.eu-west-2.amazonaws.com", false, true); updateRegion(region, "cognito-sync", "cognito-sync.eu-west-2.amazonaws.com", false, true); + updateRegion(region, "dynamodb", "dynamodb.eu-west-2.amazonaws.com", false, true); + updateRegion(region, "ec2", "ec2.eu-west-2.amazonaws.com", false, true); + updateRegion(region, "elasticloadbalancing", + "elasticloadbalancing.eu-west-2.amazonaws.com", false, true); updateRegion(region, "iot", "iot.eu-west-2.amazonaws.com", false, true); updateRegion(region, "kinesis", "kinesis.eu-west-2.amazonaws.com", false, true); - updateRegion(region, "autoscaling", "autoscaling.eu-west-2.amazonaws.com", false, true); updateRegion(region, "kms", "kms.eu-west-2.amazonaws.com", false, true); - updateRegion(region, "sts", "sts.amazonaws.com", false, true); - updateRegion(region, "ec2", "ec2.eu-west-2.amazonaws.com", false, true); updateRegion(region, "lambda", "lambda.eu-west-2.amazonaws.com", false, true); updateRegion(region, "s3", "s3.eu-west-2.amazonaws.com", false, true); - updateRegion(region, "elasticloadbalancing", - "elasticloadbalancing.eu-west-2.amazonaws.com", false, true); - updateRegion(region, "sqs", "sqs.eu-west-2.amazonaws.com", false, true); updateRegion(region, "sns", "sns.eu-west-2.amazonaws.com", false, true); - updateRegion(region, "dynamodb", "dynamodb.eu-west-2.amazonaws.com", false, true); - updateRegion(region, "cognito-idp", "cognito-idp.eu-west-2.amazonaws.com", false, true); + updateRegion(region, "sqs", "sqs.eu-west-2.amazonaws.com", false, true); + updateRegion(region, "sts", "sts.amazonaws.com", false, true); region = new Region("sa-east-1", ""); ret.add(region); + updateRegion(region, "autoscaling", "autoscaling.sa-east-1.amazonaws.com", false, true); + updateRegion(region, "dynamodb", "dynamodb.sa-east-1.amazonaws.com", false, true); updateRegion(region, "ec2", "ec2.sa-east-1.amazonaws.com", false, true); - updateRegion(region, "s3", "s3-sa-east-1.amazonaws.com", false, true); updateRegion(region, "elasticloadbalancing", "elasticloadbalancing.sa-east-1.amazonaws.com", false, true); - updateRegion(region, "sns", "sns.sa-east-1.amazonaws.com", false, true); - updateRegion(region, "sts", "sts.amazonaws.com", false, true); + updateRegion(region, "kinesis", "kinesis.sa-east-1.amazonaws.com", false, true); + updateRegion(region, "kms", "kms.sa-east-1.amazonaws.com", false, true); + updateRegion(region, "s3", "s3-sa-east-1.amazonaws.com", false, true); updateRegion(region, "sdb", "sdb.sa-east-1.amazonaws.com", false, true); + updateRegion(region, "sns", "sns.sa-east-1.amazonaws.com", false, true); updateRegion(region, "sqs", "sqs.sa-east-1.amazonaws.com", false, true); - updateRegion(region, "autoscaling", "autoscaling.sa-east-1.amazonaws.com", false, true); - updateRegion(region, "dynamodb", "dynamodb.sa-east-1.amazonaws.com", false, true); - updateRegion(region, "kms", "kms.sa-east-1.amazonaws.com", false, true); - updateRegion(region, "kinesis", "kinesis.sa-east-1.amazonaws.com", false, true); + updateRegion(region, "sts", "sts.amazonaws.com", false, true); region = new Region("us-east-1", ""); ret.add(region); - updateRegion(region, "firehose", "firehose.us-east-1.amazonaws.com", false, true); - updateRegion(region, "polly", "polly.us-east-1.amazonaws.com", false, true); - updateRegion(region, "kinesis", "kinesis.us-east-1.amazonaws.com", false, true); + updateRegion(region, "autoscaling", "autoscaling.us-east-1.amazonaws.com", false, true); + updateRegion(region, "cognito-identity", "cognito-identity.us-east-1.amazonaws.com", false, + true); + updateRegion(region, "cognito-idp", "cognito-idp.us-east-1.amazonaws.com", false, true); + updateRegion(region, "cognito-sync", "cognito-sync.us-east-1.amazonaws.com", false, true); + updateRegion(region, "data.iot", "data.iot.us-east-1.amazonaws.com", false, true); updateRegion(region, "dynamodb", "dynamodb.us-east-1.amazonaws.com", false, true); + updateRegion(region, "ec2", "ec2.us-east-1.amazonaws.com", false, true); + updateRegion(region, "elasticloadbalancing", + "elasticloadbalancing.us-east-1.amazonaws.com", false, true); updateRegion(region, "email", "email.us-east-1.amazonaws.com", false, true); + updateRegion(region, "firehose", "firehose.us-east-1.amazonaws.com", false, true); updateRegion(region, "iot", "iot.us-east-1.amazonaws.com", false, true); + updateRegion(region, "kinesis", "kinesis.us-east-1.amazonaws.com", false, true); + updateRegion(region, "kms", "kms.us-east-1.amazonaws.com", false, true); updateRegion(region, "lambda", "lambda.us-east-1.amazonaws.com", false, true); updateRegion(region, "machinelearning", "machinelearning.us-east-1.amazonaws.com", false, true); - updateRegion(region, "cognito-identity", "cognito-identity.us-east-1.amazonaws.com", false, - true); - updateRegion(region, "cognito-sync", "cognito-sync.us-east-1.amazonaws.com", false, true); - updateRegion(region, "sts", "sts.amazonaws.com", false, true); - updateRegion(region, "elasticloadbalancing", - "elasticloadbalancing.us-east-1.amazonaws.com", false, true); - updateRegion(region, "sdb", "sdb.amazonaws.com", false, true); - updateRegion(region, "autoscaling", "autoscaling.us-east-1.amazonaws.com", false, true); updateRegion(region, "mobileanalytics", "mobileanalytics.us-east-1.amazonaws.com", false, true); updateRegion(region, "pinpoint", "pinpoint.us-east-1.amazonaws.com", false, true); - updateRegion(region, "ec2", "ec2.us-east-1.amazonaws.com", false, true); - updateRegion(region, "sqs", "sqs.us-east-1.amazonaws.com", false, true); - updateRegion(region, "cognito-idp", "cognito-idp.us-east-1.amazonaws.com", false, true); - updateRegion(region, "kms", "kms.us-east-1.amazonaws.com", false, true); - updateRegion(region, "data.iot", "data.iot.us-east-1.amazonaws.com", false, true); + updateRegion(region, "polly", "polly.us-east-1.amazonaws.com", false, true); updateRegion(region, "s3", "s3.amazonaws.com", false, true); + updateRegion(region, "sdb", "sdb.amazonaws.com", false, true); updateRegion(region, "sns", "sns.us-east-1.amazonaws.com", false, true); + updateRegion(region, "sqs", "sqs.us-east-1.amazonaws.com", false, true); + updateRegion(region, "sts", "sts.amazonaws.com", false, true); region = new Region("us-east-2", ""); ret.add(region); - updateRegion(region, "cognito-sync", "cognito-sync.us-east-2.amazonaws.com", false, true); - updateRegion(region, "iot", "iot.us-east-2.amazonaws.com", false, true); - updateRegion(region, "polly", "polly.us-east-2.amazonaws.com", false, true); - updateRegion(region, "elasticloadbalancing", - "elasticloadbalancing.us-east-2.amazonaws.com", false, true); + updateRegion(region, "autoscaling", "autoscaling.us-east-2.amazonaws.com", false, true); updateRegion(region, "cognito-identity", "cognito-identity.us-east-2.amazonaws.com", false, true); - updateRegion(region, "sns", "sns.us-east-2.amazonaws.com", false, true); - updateRegion(region, "dynamodb", "dynamodb.us-east-2.amazonaws.com", false, true); - updateRegion(region, "autoscaling", "autoscaling.us-east-2.amazonaws.com", false, true); - updateRegion(region, "sts", "sts.amazonaws.com", false, true); updateRegion(region, "cognito-idp", "cognito-idp.us-east-2.amazonaws.com", false, true); - updateRegion(region, "lambda", "lambda.us-east-2.amazonaws.com", false, true); + updateRegion(region, "cognito-sync", "cognito-sync.us-east-2.amazonaws.com", false, true); + updateRegion(region, "dynamodb", "dynamodb.us-east-2.amazonaws.com", false, true); + updateRegion(region, "ec2", "ec2.us-east-2.amazonaws.com", false, true); + updateRegion(region, "elasticloadbalancing", + "elasticloadbalancing.us-east-2.amazonaws.com", false, true); + updateRegion(region, "iot", "iot.us-east-2.amazonaws.com", false, true); + updateRegion(region, "kinesis", "kinesis.us-east-2.amazonaws.com", false, true); updateRegion(region, "kms", "kms.us-east-2.amazonaws.com", false, true); + updateRegion(region, "lambda", "lambda.us-east-2.amazonaws.com", false, true); + updateRegion(region, "polly", "polly.us-east-2.amazonaws.com", false, true); updateRegion(region, "s3", "s3.us-east-2.amazonaws.com", false, true); + updateRegion(region, "sns", "sns.us-east-2.amazonaws.com", false, true); updateRegion(region, "sqs", "sqs.us-east-2.amazonaws.com", false, true); - updateRegion(region, "ec2", "ec2.us-east-2.amazonaws.com", false, true); - updateRegion(region, "kinesis", "kinesis.us-east-2.amazonaws.com", false, true); + updateRegion(region, "sts", "sts.amazonaws.com", false, true); region = new Region("us-west-1", ""); ret.add(region); - updateRegion(region, "sqs", "sqs.us-west-1.amazonaws.com", false, true); - updateRegion(region, "kinesis", "kinesis.us-west-1.amazonaws.com", false, true); updateRegion(region, "autoscaling", "autoscaling.us-west-1.amazonaws.com", false, true); + updateRegion(region, "dynamodb", "dynamodb.us-west-1.amazonaws.com", false, true); + updateRegion(region, "ec2", "ec2.us-west-1.amazonaws.com", false, true); + updateRegion(region, "elasticloadbalancing", + "elasticloadbalancing.us-west-1.amazonaws.com", false, true); + updateRegion(region, "kinesis", "kinesis.us-west-1.amazonaws.com", false, true); + updateRegion(region, "kms", "kms.us-west-1.amazonaws.com", false, true); updateRegion(region, "lambda", "lambda.us-west-1.amazonaws.com", false, true); updateRegion(region, "s3", "s3-us-west-1.amazonaws.com", false, true); - updateRegion(region, "kms", "kms.us-west-1.amazonaws.com", false, true); updateRegion(region, "sdb", "sdb.us-west-1.amazonaws.com", false, true); updateRegion(region, "sns", "sns.us-west-1.amazonaws.com", false, true); - updateRegion(region, "elasticloadbalancing", - "elasticloadbalancing.us-west-1.amazonaws.com", false, true); + updateRegion(region, "sqs", "sqs.us-west-1.amazonaws.com", false, true); updateRegion(region, "sts", "sts.amazonaws.com", false, true); - updateRegion(region, "dynamodb", "dynamodb.us-west-1.amazonaws.com", false, true); - updateRegion(region, "ec2", "ec2.us-west-1.amazonaws.com", false, true); region = new Region("us-west-2", ""); ret.add(region); + updateRegion(region, "autoscaling", "autoscaling.us-west-2.amazonaws.com", false, true); + updateRegion(region, "cognito-identity", "cognito-identity.us-west-2.amazonaws.com", false, + true); + updateRegion(region, "cognito-idp", "cognito-idp.us-west-2.amazonaws.com", false, true); updateRegion(region, "cognito-sync", "cognito-sync.us-west-2.amazonaws.com", false, true); - updateRegion(region, "s3", "s3-us-west-2.amazonaws.com", false, true); - updateRegion(region, "iot", "iot.us-west-2.amazonaws.com", false, true); - updateRegion(region, "sns", "sns.us-west-2.amazonaws.com", false, true); updateRegion(region, "data.iot", "data.iot.us-west-2.amazonaws.com", false, true); + updateRegion(region, "dynamodb", "dynamodb.us-west-2.amazonaws.com", false, true); + updateRegion(region, "ec2", "ec2.us-west-2.amazonaws.com", false, true); + updateRegion(region, "elasticloadbalancing", + "elasticloadbalancing.us-west-2.amazonaws.com", false, true); + updateRegion(region, "email", "email.us-west-2.amazonaws.com", false, true); + updateRegion(region, "firehose", "firehose.us-west-2.amazonaws.com", false, true); + updateRegion(region, "iot", "iot.us-west-2.amazonaws.com", false, true); updateRegion(region, "kinesis", "kinesis.us-west-2.amazonaws.com", false, true); + updateRegion(region, "kms", "kms.us-west-2.amazonaws.com", false, true); updateRegion(region, "lambda", "lambda.us-west-2.amazonaws.com", false, true); - updateRegion(region, "cognito-identity", "cognito-identity.us-west-2.amazonaws.com", false, - true); + updateRegion(region, "polly", "polly.us-west-2.amazonaws.com", false, true); + updateRegion(region, "s3", "s3-us-west-2.amazonaws.com", false, true); updateRegion(region, "sdb", "sdb.us-west-2.amazonaws.com", false, true); - updateRegion(region, "autoscaling", "autoscaling.us-west-2.amazonaws.com", false, true); + updateRegion(region, "sns", "sns.us-west-2.amazonaws.com", false, true); updateRegion(region, "sqs", "sqs.us-west-2.amazonaws.com", false, true); - updateRegion(region, "ec2", "ec2.us-west-2.amazonaws.com", false, true); - updateRegion(region, "polly", "polly.us-west-2.amazonaws.com", false, true); updateRegion(region, "sts", "sts.amazonaws.com", false, true); - updateRegion(region, "firehose", "firehose.us-west-2.amazonaws.com", false, true); - updateRegion(region, "email", "email.us-west-2.amazonaws.com", false, true); - updateRegion(region, "cognito-idp", "cognito-idp.us-west-2.amazonaws.com", false, true); - updateRegion(region, "dynamodb", "dynamodb.us-west-2.amazonaws.com", false, true); - updateRegion(region, "kms", "kms.us-west-2.amazonaws.com", false, true); - updateRegion(region, "elasticloadbalancing", - "elasticloadbalancing.us-west-2.amazonaws.com", false, true); region = new Region("cn-north-1", ""); ret.add(region); - updateRegion(region, "sts", "sts.cn-north-1.amazonaws.com.cn", false, true); - updateRegion(region, "elasticloadbalancing", - "elasticloadbalancing.cn-north-1.amazonaws.com.cn", false, true); - updateRegion(region, "sns", "sns.cn-north-1.amazonaws.com.cn", false, true); updateRegion(region, "autoscaling", "autoscaling.cn-north-1.amazonaws.com.cn", false, true); + updateRegion(region, "dynamodb", "dynamodb.cn-north-1.amazonaws.com.cn", false, true); updateRegion(region, "ec2", "ec2.cn-north-1.amazonaws.com.cn", false, true); + updateRegion(region, "elasticloadbalancing", + "elasticloadbalancing.cn-north-1.amazonaws.com.cn", false, true); + updateRegion(region, "kinesis", "kinesis.cn-north-1.amazonaws.com.cn", false, true); updateRegion(region, "s3", "s3.cn-north-1.amazonaws.com.cn", false, true); + updateRegion(region, "sns", "sns.cn-north-1.amazonaws.com.cn", false, true); updateRegion(region, "sqs", "sqs.cn-north-1.amazonaws.com.cn", false, true); - updateRegion(region, "dynamodb", "dynamodb.cn-north-1.amazonaws.com.cn", false, true); - updateRegion(region, "kinesis", "kinesis.cn-north-1.amazonaws.com.cn", false, true); + updateRegion(region, "sts", "sts.cn-north-1.amazonaws.com.cn", false, true); region = new Region("us-gov-west-1", ""); ret.add(region); - updateRegion(region, "ec2", "ec2.us-gov-west-1.amazonaws.com", false, true); - updateRegion(region, "sqs", "sqs.us-gov-west-1.amazonaws.com", false, true); updateRegion(region, "autoscaling", "autoscaling.us-gov-west-1.amazonaws.com", false, true); - updateRegion(region, "kinesis", "kinesis.us-gov-west-1.amazonaws.com", false, true); - updateRegion(region, "s3", "s3-us-gov-west-1.amazonaws.com", false, true); - updateRegion(region, "kms", "kms.us-gov-west-1.amazonaws.com", false, true); + updateRegion(region, "dynamodb", "dynamodb.us-gov-west-1.amazonaws.com", false, true); + updateRegion(region, "ec2", "ec2.us-gov-west-1.amazonaws.com", false, true); updateRegion(region, "elasticloadbalancing", "elasticloadbalancing.us-gov-west-1.amazonaws.com", false, true); + updateRegion(region, "kinesis", "kinesis.us-gov-west-1.amazonaws.com", false, true); + updateRegion(region, "kms", "kms.us-gov-west-1.amazonaws.com", false, true); + updateRegion(region, "s3", "s3-us-gov-west-1.amazonaws.com", false, true); updateRegion(region, "sns", "sns.us-gov-west-1.amazonaws.com", false, true); + updateRegion(region, "sqs", "sqs.us-gov-west-1.amazonaws.com", false, true); updateRegion(region, "sts", "sts.amazonaws.com", false, true); - updateRegion(region, "dynamodb", "dynamodb.us-gov-west-1.amazonaws.com", false, true); return ret; } 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 c396d48a94b..0d31347c56e 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.6.5"; + private static volatile String version = "2.6.6"; // changed build // logic diff --git a/aws-android-sdk-core/src/main/resources/fabric/com.amazonaws.aws-android-sdk-core.properties b/aws-android-sdk-core/src/main/resources/fabric/com.amazonaws.aws-android-sdk-core.properties index 6c80aa5a8cd..fd8afa2664f 100644 --- a/aws-android-sdk-core/src/main/resources/fabric/com.amazonaws.aws-android-sdk-core.properties +++ b/aws-android-sdk-core/src/main/resources/fabric/com.amazonaws.aws-android-sdk-core.properties @@ -1,3 +1,3 @@ fabric-identifier=com.amazonaws.aws-android-sdk-core -fabric-version=2.6.5 +fabric-version=2.6.6 fabric-build-type=binary 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 9136a49c965..a750b71d20f 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.6.5", VersionInfoUtils.getVersion()); + assertEquals("2.6.6", VersionInfoUtils.getVersion()); } @Test diff --git a/aws-android-sdk-ddb-document/pom.xml b/aws-android-sdk-ddb-document/pom.xml index 6500d45315f..74bc526c62f 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.6.5 + 2.6.6 @@ -20,13 +20,13 @@ com.amazonaws aws-android-sdk-core false - 2.6.5 + 2.6.6 com.amazonaws aws-android-sdk-ddb false - 2.6.5 + 2.6.6 com.google.guava diff --git a/aws-android-sdk-ddb-mapper/pom.xml b/aws-android-sdk-ddb-mapper/pom.xml index 58cff22d13b..a6813f7b3e9 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.6.5 + 2.6.6 @@ -20,19 +20,19 @@ com.amazonaws aws-android-sdk-core false - 2.6.5 + 2.6.6 com.amazonaws aws-android-sdk-ddb false - 2.6.5 + 2.6.6 com.amazonaws aws-android-sdk-s3 false - 2.6.5 + 2.6.6 junit diff --git a/aws-android-sdk-ddb/pom.xml b/aws-android-sdk-ddb/pom.xml index 51800f0f086..6ca03faba3a 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.6.5 + 2.6.6 @@ -20,7 +20,7 @@ com.amazonaws aws-android-sdk-core false - 2.6.5 + 2.6.6 junit diff --git a/aws-android-sdk-ec2/pom.xml b/aws-android-sdk-ec2/pom.xml index a8ad194b524..5ee58273623 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.6.5 + 2.6.6 @@ -20,7 +20,7 @@ com.amazonaws aws-android-sdk-core false - 2.6.5 + 2.6.6 diff --git a/aws-android-sdk-elb/pom.xml b/aws-android-sdk-elb/pom.xml index ce2de08e6bb..3a79a014f25 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.6.5 + 2.6.6 @@ -20,7 +20,7 @@ com.amazonaws aws-android-sdk-core false - 2.6.5 + 2.6.6 diff --git a/aws-android-sdk-iot/pom.xml b/aws-android-sdk-iot/pom.xml index 901e01531c1..d9200e985fe 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.6.5 + 2.6.6 @@ -20,7 +20,7 @@ com.amazonaws aws-android-sdk-core false - 2.6.5 + 2.6.6 org.eclipse.paho diff --git a/aws-android-sdk-iot/src/main/java/com/amazonaws/mobileconnectors/iot/AwsIotEndpointUtility.java b/aws-android-sdk-iot/src/main/java/com/amazonaws/mobileconnectors/iot/AwsIotEndpointUtility.java index 17104984404..2abc202941d 100644 --- a/aws-android-sdk-iot/src/main/java/com/amazonaws/mobileconnectors/iot/AwsIotEndpointUtility.java +++ b/aws-android-sdk-iot/src/main/java/com/amazonaws/mobileconnectors/iot/AwsIotEndpointUtility.java @@ -18,8 +18,12 @@ public final class AwsIotEndpointUtility { private static final int ENDPOINT_DOMAIN_OFFSET = 3; /** Constant for token offset of "com" in endpoint. */ private static final int ENDPOINT_TLD_OFFSET = 4; + /** Constant for token offset of "cn" in endpoint*/ + private static final int ENDPOINT_CN_TLD_OFFSET = 5; /** Constant for number of tokens in endpoint. */ private static final int ENDPOINT_SPLIT_SIZE = 5; + /** Constant for number of tokens in China's endpoint. */ + private static final int ENDPOINT_CN_SPLIT_SIZE = 6; /** * Helper class, no public constructor. @@ -51,12 +55,16 @@ private static String[] splitEndpoint(String endpoint) { */ private static void validateIotEndpoint(String endpoint) { String[] splits = splitEndpoint(endpoint); - if (splits.length != ENDPOINT_SPLIT_SIZE + if ((splits.length != ENDPOINT_SPLIT_SIZE) && (splits.length != ENDPOINT_CN_SPLIT_SIZE)) { + throw new IllegalArgumentException( + "Bad endpoint format. Expected XXXXXX.iot.[region].amazonaws.com[.cn]"); + } + if (((splits.length == ENDPOINT_CN_SPLIT_SIZE) && (!("cn").equalsIgnoreCase(splits[ENDPOINT_CN_TLD_OFFSET]))) || !("iot").equalsIgnoreCase(splits[ENDPOINT_IOT_OFFSET]) || !("amazonaws").equalsIgnoreCase(splits[ENDPOINT_DOMAIN_OFFSET]) || !("com").equalsIgnoreCase(splits[ENDPOINT_TLD_OFFSET])) { throw new IllegalArgumentException( - "Bad endpoint format. Expected XXXXXX.iot.[region].amazonaws.com."); + "Bad endpoint format. Expected XXXXXX.iot.[region].amazonaws.com[.cn]"); } } diff --git a/aws-android-sdk-kinesis/pom.xml b/aws-android-sdk-kinesis/pom.xml index 2caeb00e316..feed134e2c4 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.6.5 + 2.6.6 @@ -20,7 +20,7 @@ com.amazonaws aws-android-sdk-core false - 2.6.5 + 2.6.6 junit diff --git a/aws-android-sdk-kms/pom.xml b/aws-android-sdk-kms/pom.xml index d3990a07414..1744e051b10 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.6.5 + 2.6.6 @@ -20,7 +20,7 @@ com.amazonaws aws-android-sdk-core false - 2.6.5 + 2.6.6 diff --git a/aws-android-sdk-lambda/pom.xml b/aws-android-sdk-lambda/pom.xml index 0b224e8a545..f69759596d4 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.6.5 + 2.6.6 @@ -20,7 +20,7 @@ com.amazonaws aws-android-sdk-core false - 2.6.5 + 2.6.6 junit diff --git a/aws-android-sdk-lex/pom.xml b/aws-android-sdk-lex/pom.xml index 5dbbf918e8c..8ee9c0ebd17 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.6.5 + 2.6.6 @@ -33,7 +33,7 @@ com.amazonaws aws-android-sdk-core false - 2.6.5 + 2.6.6 com.google.android diff --git a/aws-android-sdk-logs/pom.xml b/aws-android-sdk-logs/pom.xml index 476817e4efd..a373dbc5a8c 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.6.5 + 2.6.6 @@ -20,7 +20,7 @@ com.amazonaws aws-android-sdk-core false - 2.6.5 + 2.6.6 diff --git a/aws-android-sdk-machinelearning/pom.xml b/aws-android-sdk-machinelearning/pom.xml index 47a28b94b2a..74f48c580c2 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.6.5 + 2.6.6 @@ -20,7 +20,7 @@ com.amazonaws aws-android-sdk-core false - 2.6.5 + 2.6.6 diff --git a/aws-android-sdk-mobileanalytics/pom.xml b/aws-android-sdk-mobileanalytics/pom.xml index 92518125023..966fd225aae 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.6.5 + 2.6.6 @@ -20,7 +20,7 @@ com.amazonaws aws-android-sdk-core false - 2.6.5 + 2.6.6 junit diff --git a/aws-android-sdk-pinpoint/pom.xml b/aws-android-sdk-pinpoint/pom.xml index 6efa0154690..89bbd872197 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.6.5 + 2.6.6 @@ -20,7 +20,7 @@ com.amazonaws aws-android-sdk-core false - 2.6.5 + 2.6.6 junit diff --git a/aws-android-sdk-pinpoint/src/main/java/com/amazonaws/mobileconnectors/pinpoint/targeting/TargetingClient.java b/aws-android-sdk-pinpoint/src/main/java/com/amazonaws/mobileconnectors/pinpoint/targeting/TargetingClient.java index eb9234b315a..5bdff92f2f9 100644 --- a/aws-android-sdk-pinpoint/src/main/java/com/amazonaws/mobileconnectors/pinpoint/targeting/TargetingClient.java +++ b/aws-android-sdk-pinpoint/src/main/java/com/amazonaws/mobileconnectors/pinpoint/targeting/TargetingClient.java @@ -20,7 +20,6 @@ import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.MissingResourceException; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutorService; import java.util.concurrent.LinkedBlockingQueue; @@ -152,17 +151,9 @@ private void executeUpdate(EndpointProfile endpointProfile) { return; } - String locale; - try { - locale = endpointProfile.getDemographic().getLocale().getISO3Country(); - } catch (final MissingResourceException exception) { - log.debug("Locale getISO3Country failed, falling back to getCountry."); - locale = endpointProfile.getDemographic().getLocale().getCountry(); - } - final EndpointDemographic demographic = new EndpointDemographic() .withAppVersion(endpointProfile.getDemographic().getAppVersion()) - .withLocale(locale) + .withLocale(endpointProfile.getDemographic().getLocale().toString()) .withTimezone(endpointProfile.getDemographic().getTimezone()) .withMake(endpointProfile.getDemographic().getMake()) .withModel(endpointProfile.getDemographic().getModel()) diff --git a/aws-android-sdk-pinpoint/src/main/java/com/amazonaws/mobileconnectors/pinpoint/targeting/endpointProfile/EndpointProfile.java b/aws-android-sdk-pinpoint/src/main/java/com/amazonaws/mobileconnectors/pinpoint/targeting/endpointProfile/EndpointProfile.java index 382cb616f00..223608c7520 100644 --- a/aws-android-sdk-pinpoint/src/main/java/com/amazonaws/mobileconnectors/pinpoint/targeting/endpointProfile/EndpointProfile.java +++ b/aws-android-sdk-pinpoint/src/main/java/com/amazonaws/mobileconnectors/pinpoint/targeting/endpointProfile/EndpointProfile.java @@ -70,7 +70,7 @@ public EndpointProfile(final PinpointContext pinpointContext) { this.pinpointContext = pinpointContext; this.effectiveDate = DateUtil.getCorrectedDate().getTime(); this.demographic = new EndpointProfileDemographic(this.pinpointContext); - this.location = new EndpointProfileLocation(); + this.location = new EndpointProfileLocation(this.pinpointContext); this.user = new EndpointProfileUser(); } diff --git a/aws-android-sdk-pinpoint/src/main/java/com/amazonaws/mobileconnectors/pinpoint/targeting/endpointProfile/EndpointProfileDemographic.java b/aws-android-sdk-pinpoint/src/main/java/com/amazonaws/mobileconnectors/pinpoint/targeting/endpointProfile/EndpointProfileDemographic.java index 1d0b9c99a67..2361af68c29 100644 --- a/aws-android-sdk-pinpoint/src/main/java/com/amazonaws/mobileconnectors/pinpoint/targeting/endpointProfile/EndpointProfileDemographic.java +++ b/aws-android-sdk-pinpoint/src/main/java/com/amazonaws/mobileconnectors/pinpoint/targeting/endpointProfile/EndpointProfileDemographic.java @@ -1,16 +1,13 @@ /** * Copyright 2016-2017 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 + * 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. + * 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. */ package com.amazonaws.mobileconnectors.pinpoint.targeting.endpointProfile; @@ -26,8 +23,7 @@ import static com.amazonaws.mobileconnectors.pinpoint.internal.core.util.Preconditions.checkNotNull; /** - * Amazon Pinpoint endpoint demographic, represented by application and device - * characteristics + * Amazon Pinpoint endpoint demographic, represented by application and device characteristics */ public class EndpointProfileDemographic implements JSONSerializable { @@ -39,7 +35,7 @@ public class EndpointProfileDemographic implements JSONSerializable { private String make = ""; private String model = Build.MODEL; private String timezone = TimeZone.getDefault().getID(); - private Locale locale = Locale.getDefault(); + private Locale locale; private String appVersion = ""; private String platform = ENDPOINT_PLATFORM; private String platformVersion = Build.VERSION.RELEASE; @@ -53,61 +49,153 @@ public EndpointProfileDemographic(final PinpointContext context) { checkNotNull(context, "A valid pinpointContext must be provided"); make = context.getSystem().getDeviceDetails().manufacturer(); appVersion = context.getSystem().getAppDetails().versionName(); + locale = context.getApplicationContext().getResources().getConfiguration().locale; } + /** + * Gets make. + * + * @return the make + */ public String getMake() { return this.make; } + /** + * Sets make. + * + * @param make the make + */ public void setMake(String make) { + if (make == null) { + return; + } this.make = make; } + /** + * Gets model. + * + * @return the model + */ public String getModel() { return this.model; } + /** + * Sets model. + * + * @param model the model + */ public void setModel(String model) { + if (model == null) { + return; + } this.model = model; } + /** + * Gets timezone. + * + * @return the timezone + */ public String getTimezone() { return this.timezone; } + /** + * Sets timezone. + * + * @param timezone the timezone + */ public void setTimezone(String timezone) { + if (timezone == null) { + return; + } this.timezone = timezone; } + /** + * Gets locale. + * + * @return the locale + */ public Locale getLocale() { return this.locale; } + /** + * Sets locale. + * + * @param locale the locale + */ public void setLocale(Locale locale) { + if (locale == null) { + return; + } this.locale = locale; } + /** + * Gets app version. + * + * @return the app version + */ public String getAppVersion() { return this.appVersion; } + /** + * Sets app version. + * + * @param appVersion the app version + */ public void setAppVersion(String appVersion) { + if (appVersion == null) { + return; + } this.appVersion = appVersion; } + /** + * Gets platform. + * + * @return the platform + */ public String getPlatform() { return this.platform; } + /** + * Sets platform. + * + * @param platform the platform + */ public void setPlatform(String platform) { + if (platform == null) { + return; + } this.platform = platform; } + /** + * Gets platform version. + * + * @return the platform version + */ public String getPlatformVersion() { return this.platformVersion; } + /** + * Sets platform version. + * + * @param platformVersion the platform version + */ public void setPlatformVersion(String platformVersion) { + if (platformVersion == null) { + return; + } this.platformVersion = platformVersion; } diff --git a/aws-android-sdk-pinpoint/src/main/java/com/amazonaws/mobileconnectors/pinpoint/targeting/endpointProfile/EndpointProfileLocation.java b/aws-android-sdk-pinpoint/src/main/java/com/amazonaws/mobileconnectors/pinpoint/targeting/endpointProfile/EndpointProfileLocation.java index 7722cc58381..a1bd225bd8c 100644 --- a/aws-android-sdk-pinpoint/src/main/java/com/amazonaws/mobileconnectors/pinpoint/targeting/endpointProfile/EndpointProfileLocation.java +++ b/aws-android-sdk-pinpoint/src/main/java/com/amazonaws/mobileconnectors/pinpoint/targeting/endpointProfile/EndpointProfileLocation.java @@ -1,22 +1,22 @@ /** * Copyright 2016-2017 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 + * 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. + * 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. */ package com.amazonaws.mobileconnectors.pinpoint.targeting.endpointProfile; -import java.util.Locale; +import java.util.MissingResourceException; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.json.JSONObject; +import com.amazonaws.mobileconnectors.pinpoint.internal.core.PinpointContext; import com.amazonaws.mobileconnectors.pinpoint.internal.core.util.JSONBuilder; import com.amazonaws.mobileconnectors.pinpoint.internal.core.util.JSONSerializable; @@ -25,58 +25,154 @@ */ public class EndpointProfileLocation implements JSONSerializable { + private static final Log log = LogFactory.getLog(EndpointProfileLocation.class); + private Double latitude = null; private Double longitude = null; private String postalCode = ""; private String city = ""; private String region = ""; - private String country = Locale.getDefault().getCountry(); + private String country = ""; + + /** + * Default constructor + * + * @param context the context + */ + public EndpointProfileLocation(final PinpointContext context) { + String localeCountry; + try { + localeCountry = context.getApplicationContext().getResources().getConfiguration().locale.getISO3Country(); + } catch (final MissingResourceException exception) { + log.debug("Locale getISO3Country failed, falling back to getCountry."); + localeCountry = context.getApplicationContext().getResources().getConfiguration().locale.getCountry(); + } + country = localeCountry; + } + /** + * Gets latitude. + * + * @return the latitude + */ public Double getLatitude() { return this.latitude; } + /** + * Sets latitude. + * + * @param latitude the latitude + */ public void setLatitude(Double latitude) { + if (latitude == null) { + return; + } this.latitude = latitude; } + /** + * Gets longitude. + * + * @return the longitude + */ public Double getLongitude() { return this.longitude; } + /** + * Sets longitude. + * + * @param longitude the longitude + */ public void setLongitude(Double longitude) { + if (longitude == null) { + return; + } this.longitude = longitude; } + /** + * Gets postal code. + * + * @return the postal code + */ public String getPostalCode() { return this.postalCode; } + /** + * Sets postal code. + * + * @param postalCode the postal code + */ public void setPostalCode(String postalCode) { + if (postalCode == null) { + return; + } this.postalCode = postalCode; } + /** + * Gets city. + * + * @return the city + */ public String getCity() { return this.city; } + /** + * Sets city. + * + * @param city the city + */ public void setCity(String city) { + if (city == null) { + return; + } this.city = city; } + /** + * Gets region. + * + * @return the region + */ public String getRegion() { return this.region; } + /** + * Sets region. + * + * @param region the region + */ public void setRegion(String region) { + if (region == null) { + return; + } this.region = region; } + /** + * Gets country. + * + * @return the country + */ public String getCountry() { return this.country; } + /** + * Sets country. + * + * @param country the country + */ public void setCountry(String country) { + if (country == null) { + return; + } this.country = country; } diff --git a/aws-android-sdk-pinpoint/src/test/java/com/amazonaws/mobileconnectors/pinpoint/targeting/EndpointProfileTest.java b/aws-android-sdk-pinpoint/src/test/java/com/amazonaws/mobileconnectors/pinpoint/targeting/EndpointProfileTest.java index 6ae1f412d19..0523de23f95 100644 --- a/aws-android-sdk-pinpoint/src/test/java/com/amazonaws/mobileconnectors/pinpoint/targeting/EndpointProfileTest.java +++ b/aws-android-sdk-pinpoint/src/test/java/com/amazonaws/mobileconnectors/pinpoint/targeting/EndpointProfileTest.java @@ -1,26 +1,23 @@ /** * Copyright 2016-2017 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 + * 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. + * 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. */ package com.amazonaws.mobileconnectors.pinpoint.targeting; import java.util.Arrays; import java.util.Locale; +import java.util.MissingResourceException; import java.util.TimeZone; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.atomic.AtomicInteger; - import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -35,17 +32,12 @@ import com.amazonaws.mobileconnectors.pinpoint.analytics.MobileAnalyticsTestBase; import com.amazonaws.mobileconnectors.pinpoint.analytics.utils.AnalyticsContextBuilder; import com.amazonaws.mobileconnectors.pinpoint.internal.core.PinpointContext; -import com.amazonaws.mobileconnectors.pinpoint.internal.core.system.AndroidAppDetails; -import com.amazonaws.mobileconnectors.pinpoint.internal.core.system.AndroidDeviceDetails; -import com.amazonaws.mobileconnectors.pinpoint.internal.core.system.AndroidPreferences; -import com.amazonaws.mobileconnectors.pinpoint.internal.core.system.AndroidSystem; import com.amazonaws.mobileconnectors.pinpoint.internal.core.system.MockDeviceDetails; import com.amazonaws.mobileconnectors.pinpoint.internal.core.util.DateUtil; import com.amazonaws.mobileconnectors.pinpoint.targeting.endpointProfile.EndpointProfile; import com.amazonaws.mobileconnectors.pinpoint.targeting.endpointProfile.EndpointProfileDemographic; import com.amazonaws.mobileconnectors.pinpoint.targeting.endpointProfile.EndpointProfileLocation; -import com.amazonaws.mobileconnectors.pinpoint.targeting.notification.NotificationClient; - +import android.content.Context; import android.os.Build; import static org.junit.Assert.assertEquals; @@ -73,12 +65,12 @@ public void setup() { testDeviceDetails = new MockDeviceDetails(); mockContext = new AnalyticsContextBuilder() - .withSdkInfo(SDK_NAME, SDK_VERSION) - .withUniqueIdValue(UNIQUE_ID) - .withDeviceDetails(testDeviceDetails) - .withContext(Robolectric.application - .getApplicationContext()) - .build(); + .withSdkInfo(SDK_NAME, SDK_VERSION) + .withUniqueIdValue(UNIQUE_ID) + .withDeviceDetails(testDeviceDetails) + .withContext(Robolectric.application + .getApplicationContext()) + .build(); target = new EndpointProfile(mockContext); } @@ -92,19 +84,19 @@ public void cleanup() { public void testProfile() { assertTrue(target.getAllAttributes().isEmpty()); assertEquals(mockContext.getSystem().getAppDetails().getAppId(), - target.getApplicationId()); + target.getApplicationId()); assertEquals(UNIQUE_ID, target.getEndpointId()); assertEquals(mockContext.getSystem().getAppDetails().versionName(), - target.getDemographic().getAppVersion()); - assertEquals(Locale.getDefault(), target.getDemographic().getLocale()); + target.getDemographic().getAppVersion()); + assertEquals(mockContext.getApplicationContext().getResources().getConfiguration().locale.toString(), target.getDemographic().getLocale().toString()); assertEquals(mockContext.getSystem().getDeviceDetails().manufacturer(), - target.getDemographic().getMake()); + target.getDemographic().getMake()); assertEquals(Build.MODEL, target.getDemographic().getModel()); assertEquals("ANDROID", target.getDemographic().getPlatform()); assertEquals(Build.VERSION.RELEASE, - target.getDemographic().getPlatformVersion()); + target.getDemographic().getPlatformVersion()); assertEquals(TimeZone.getDefault().getID(), - target.getDemographic().getTimezone()); + target.getDemographic().getTimezone()); assertNotNull(target.getEffectiveDate()); assertNotNull(target.getLocation()); assertEquals(target.getOptOut(), "ALL"); @@ -127,13 +119,13 @@ public void testProfile() { demographic.setMake("test"); demographic.setModel("test"); demographic.setTimezone("test"); - demographic.setLocale(null); + demographic.setLocale(new Locale("en", "US")); demographic.setAppVersion("test"); demographic.setPlatform("test"); demographic.setPlatformVersion("test"); target.setDemographic(demographic); assertEquals(demographic, target.getDemographic()); - final EndpointProfileLocation location = new EndpointProfileLocation(); + final EndpointProfileLocation location = new EndpointProfileLocation(mockContext); location.setLatitude(0.0); location.setLongitude(0.0); location.setPostalCode("test"); @@ -151,14 +143,14 @@ public void testEndpointAttribute() { assertNull(target.getAttribute(null)); assertFalse(target.hasAttribute(null)); target.addAttribute("key1", Arrays.asList(new String[] { "attr1", - "attr2" + "attr2" })); assertEquals(((AtomicInteger) Whitebox.getInternalState(target, "currentNumOfAttributesAndMetrics")).get(), 1); assertFalse(target.getAllAttributes().isEmpty()); assertNotNull(target.getAttribute("key1")); assertTrue(target.hasAttribute("key1")); target.addAttribute("key1", Arrays.asList(new String[] { "attr1", - "attr2", "attr3" + "attr2", "attr3" })); assertFalse(target.getAllAttributes().isEmpty()); assertNotNull(target.getAttribute("key1")); @@ -168,7 +160,7 @@ public void testEndpointAttribute() { assertTrue(target.getAllAttributes().isEmpty()); assertEquals(((AtomicInteger) Whitebox.getInternalState(target, "currentNumOfAttributesAndMetrics")).get(), 0); target.withAttribute("key2", Arrays.asList(new String[] { "attr3", - "attr4" + "attr4" })); assertNotNull(target.getAttribute("key2")); assertTrue(target.hasAttribute("key2")); @@ -202,22 +194,22 @@ public void testEndpointSerialization() throws JSONException { target.setEffectiveDate(date); target.addMetric("key1", 0.0); target.addAttribute("key1", Arrays.asList(new String[] { "attr1", - "attr2" + "attr2" })); assertFalse(target.getAllMetrics().isEmpty()); assertFalse(target.getAllAttributes().isEmpty()); assertNotNull(target.getEffectiveDate()); JSONObject jsonEndpoint = target.toJSONObject(); assertTrue(jsonEndpoint.getString("ApplicationId") - .equalsIgnoreCase(target.getApplicationId())); + .equalsIgnoreCase(target.getApplicationId())); assertTrue(jsonEndpoint.getString("EndpointId") - .equalsIgnoreCase(target.getEndpointId())); + .equalsIgnoreCase(target.getEndpointId())); assertTrue(jsonEndpoint.getString("ChannelType") - .equalsIgnoreCase(target.getChannelType())); + .equalsIgnoreCase(target.getChannelType())); assertTrue(jsonEndpoint.getString("EffectiveDate") - .equalsIgnoreCase(DateUtil.isoDateFromMillis(date))); + .equalsIgnoreCase(DateUtil.isoDateFromMillis(date))); assertTrue(jsonEndpoint.getString("OptOut") - .equalsIgnoreCase(target.getOptOut())); + .equalsIgnoreCase(target.getOptOut())); JSONObject metrics = jsonEndpoint.getJSONObject("Metrics"); assertEquals(metrics.getDouble("key1"), 0.0, 0.0); @@ -230,37 +222,37 @@ public void testEndpointSerialization() throws JSONException { JSONObject location = jsonEndpoint.getJSONObject("Location"); assertTrue(location.getString("PostalCode") .equalsIgnoreCase(target.getLocation() - .getPostalCode())); + .getPostalCode())); assertTrue(location.getString("Region") .equalsIgnoreCase(target.getLocation().getRegion())); assertTrue(location.getString("Country") .equalsIgnoreCase(target.getLocation() - .getCountry())); + .getCountry())); assertTrue(location.getString("City") .equalsIgnoreCase(target.getLocation().getCity())); JSONObject demographic = jsonEndpoint.getJSONObject("Demographic"); assertTrue(demographic.getString("Timezone") - .equalsIgnoreCase(target.getDemographic() - .getTimezone())); + .equalsIgnoreCase(target.getDemographic() + .getTimezone())); assertTrue(demographic.getString("Locale") - .equalsIgnoreCase(target.getDemographic().getLocale() - .toString())); + .equalsIgnoreCase(target.getDemographic().getLocale() + .toString())); assertTrue(demographic.getString("AppVersion") - .equalsIgnoreCase(target.getDemographic() - .getAppVersion())); + .equalsIgnoreCase(target.getDemographic() + .getAppVersion())); assertTrue(demographic.getString("PlatformVersion") - .equalsIgnoreCase(target.getDemographic() - .getPlatformVersion())); + .equalsIgnoreCase(target.getDemographic() + .getPlatformVersion())); assertTrue(demographic.getString("Platform") - .equalsIgnoreCase(target.getDemographic() - .getPlatform())); + .equalsIgnoreCase(target.getDemographic() + .getPlatform())); assertTrue(demographic.getString("Model") - .equalsIgnoreCase(target.getDemographic() - .getModel())); + .equalsIgnoreCase(target.getDemographic() + .getModel())); assertTrue(demographic.getString("Make") - .equalsIgnoreCase(target.getDemographic() - .getMake())); + .equalsIgnoreCase(target.getDemographic() + .getMake())); } @Test @@ -271,8 +263,36 @@ public void testLocaleWithInvalidISO3Code() { final EndpointProfileDemographic demographic = endpointProfile.getDemographic(); // Old country code for Serbia and Montenegro that has no ISO3 equivalent. // See https://en.wikipedia.org/wiki/ISO_3166-2:CS for more info - demographic.setLocale(new Locale("en", "CS")); + Locale locale = new Locale("en", "CS"); + demographic.setLocale(locale); + assertTrue(demographic.getLocale().toString().equalsIgnoreCase(locale.toString())); + targetingClient.updateEndpointProfile(endpointProfile); + } + + @Test + public void testCountryWithInvalidISO3Code() { + Context mockApplicationContext = mock(Context.class); + android.content.res.Resources mockResources = mock(android.content.res.Resources.class); + android.content.res.Configuration mockConfiguration = mock(android.content.res.Configuration.class); + mockConfiguration.locale = new Locale("en", "CS"); + when(mockResources.getConfiguration()).thenReturn(mockConfiguration); + when(mockApplicationContext.getResources()).thenReturn(mockResources); + when(mockContext.getApplicationContext()).thenReturn(mockApplicationContext); + + final TargetingClient targetingClient = new TargetingClient(mockContext, mock(ThreadPoolExecutor.class)); + final EndpointProfile endpointProfile = targetingClient.currentEndpoint(); + String localeCountry; + // Old country code for Serbia and Montenegro that has no ISO3 equivalent. + // See https://en.wikipedia.org/wiki/ISO_3166-2:CS for more info + try { + localeCountry = mockContext.getApplicationContext().getResources().getConfiguration().locale.getISO3Country(); + } catch (final MissingResourceException exception) { + localeCountry = mockContext.getApplicationContext().getResources().getConfiguration().locale.getCountry(); + } + final EndpointProfileLocation location = endpointProfile.getLocation(); + assertTrue(location.getCountry().equalsIgnoreCase(localeCountry)); targetingClient.updateEndpointProfile(endpointProfile); } + } diff --git a/aws-android-sdk-pinpoint/src/test/java/com/amazonaws/mobileconnectors/pinpoint/targeting/TargetingClientTest.java b/aws-android-sdk-pinpoint/src/test/java/com/amazonaws/mobileconnectors/pinpoint/targeting/TargetingClientTest.java index be90fda13fb..59118d86093 100644 --- a/aws-android-sdk-pinpoint/src/test/java/com/amazonaws/mobileconnectors/pinpoint/targeting/TargetingClientTest.java +++ b/aws-android-sdk-pinpoint/src/test/java/com/amazonaws/mobileconnectors/pinpoint/targeting/TargetingClientTest.java @@ -155,4 +155,26 @@ private void verifyAndRunExecutorService(int numExpectedRunnables) { enqueueRunnable.run(); } } + + @Test + public void updateEndpointCallNullSetters() { + //Verify null checks on setters should not throw a null pointer exception + EndpointProfile profile = new EndpointProfile(mockContext); + profile.getDemographic().setLocale(null); + profile.getDemographic().setAppVersion(null); + profile.getDemographic().setMake(null); + profile.getDemographic().setModel(null); + profile.getDemographic().setPlatform(null); + profile.getDemographic().setPlatformVersion(null); + profile.getDemographic().setTimezone(null); + + profile.getLocation().setCountry(null); + profile.getLocation().setCity(null); + profile.getLocation().setLatitude(null); + profile.getLocation().setLongitude(null); + profile.getLocation().setPostalCode(null); + profile.getLocation().setRegion(null); + + targetingClient.updateEndpointProfile(profile); + } } diff --git a/aws-android-sdk-polly/pom.xml b/aws-android-sdk-polly/pom.xml index 30dbdd1d489..b745a7b45f2 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.6.5 + 2.6.6 @@ -20,7 +20,7 @@ com.amazonaws aws-android-sdk-core false - 2.6.5 + 2.6.6 junit diff --git a/aws-android-sdk-rekognition/pom.xml b/aws-android-sdk-rekognition/pom.xml index 9993a31521e..19b5e64c920 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.6.5 + 2.6.6 @@ -20,7 +20,7 @@ com.amazonaws aws-android-sdk-core false - 2.6.5 + 2.6.6 junit diff --git a/aws-android-sdk-s3/pom.xml b/aws-android-sdk-s3/pom.xml index 6237d9c3f28..9aa31e36553 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.6.5 + 2.6.6 @@ -20,13 +20,13 @@ com.amazonaws aws-android-sdk-core false - 2.6.5 + 2.6.6 com.amazonaws aws-android-sdk-kms false - 2.6.5 + 2.6.6 junit diff --git a/aws-android-sdk-s3/src/main/java/com/amazonaws/mobileconnectors/s3/transferutility/TransferObserver.java b/aws-android-sdk-s3/src/main/java/com/amazonaws/mobileconnectors/s3/transferutility/TransferObserver.java index 33887eab3b3..26845d882a3 100644 --- a/aws-android-sdk-s3/src/main/java/com/amazonaws/mobileconnectors/s3/transferutility/TransferObserver.java +++ b/aws-android-sdk-s3/src/main/java/com/amazonaws/mobileconnectors/s3/transferutility/TransferObserver.java @@ -104,7 +104,6 @@ public class TransferObserver { * * @param id The transfer id of the transfer to be observed. * @param dbUtil an instance of database utility - * @param c a cursor to read the state of the transfer from */ TransferObserver(int id, TransferDBUtil dbUtil) { this.id = id; diff --git a/aws-android-sdk-s3/src/main/java/com/amazonaws/mobileconnectors/s3/transferutility/package-info.java b/aws-android-sdk-s3/src/main/java/com/amazonaws/mobileconnectors/s3/transferutility/package-info.java index c0dbcf5b6f5..cbe1c628edf 100644 --- a/aws-android-sdk-s3/src/main/java/com/amazonaws/mobileconnectors/s3/transferutility/package-info.java +++ b/aws-android-sdk-s3/src/main/java/com/amazonaws/mobileconnectors/s3/transferutility/package-info.java @@ -1,6 +1,6 @@ /** * This package contains helper classes for managing upload and download tasks and a public - * class {@link com.amazonaws.mobileconnectors.s3.transferservice.transferUtility} + * class {@link com.amazonaws.mobileconnectors.s3.transferutility.TransferUtility} * which is a high level client that provides methods to control users' upload and download tasks. * * For starting transfer tasks, here is a sample usage. @@ -8,6 +8,7 @@ *
  * // Initializes TransferUtility
  * TransferUtility transferUtility = new TransferUtility(s3, getApplicationContext());
+ *
  * // Starts a download
  * TransferObserver observer = transferUtility.download("bucket_name", "key", file);
  * observer.setTransferListener(new TransferListener() {
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 fd1efd0ea7c..185c2729c54 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
@@ -213,6 +213,9 @@ public class AmazonS3Client extends AmazonWebServiceClient implements AmazonS3 {
      */
     volatile String clientRegion;
 
+    // Number of Kbytes that needs to be written before status updates are called
+    private int notificationThreshold = 1024;
+
     private static final int BUCKET_REGION_CACHE_SIZE = 300;
 
     private static final Map bucketRegionCache = Collections.synchronizedMap(
@@ -432,6 +435,20 @@ private void init() {
                 "/com/amazonaws/services/s3/request.handler2s"));
     }
 
+
+    /**
+     * Sets the number of Kbytes that need to be written before updates to the
+     * listener occur.
+     *
+     * @param threshold Number of Kbytes that needs to be written before
+     *            write update notification occurs.
+     */
+    public void setNotificationThreshold(final int threshold) {
+        this.notificationThreshold = threshold;
+    }
+
+
+
     @Override
     public void setEndpoint(String endpoint) {
         if (endpoint.endsWith(Constants.S3_ACCELERATE_HOSTNAME)) {
@@ -1393,6 +1410,7 @@ public S3Object getObject(GetObjectRequest getObjectRequest)
                 ProgressReportingInputStream progressReportingInputStream = new ProgressReportingInputStream(
                         input, progressListenerCallbackExecutor);
                 progressReportingInputStream.setFireCompletedEvent(true);
+                progressReportingInputStream.setNotificationThreshold(this.notificationThreshold);
                 input = progressReportingInputStream;
                 fireProgressEvent(progressListenerCallbackExecutor,
                         ProgressEvent.STARTED_EVENT_CODE);
@@ -1684,6 +1702,7 @@ public PutObjectResult putObject(PutObjectRequest putObjectRequest)
 
         if (progressListenerCallbackExecutor != null) {
             input = new ProgressReportingInputStream(input, progressListenerCallbackExecutor);
+            ((ProgressReportingInputStream)input).setNotificationThreshold(this.notificationThreshold);
             fireProgressEvent(progressListenerCallbackExecutor, ProgressEvent.STARTED_EVENT_CODE);
         }
 
@@ -3631,10 +3650,9 @@ public UploadPartResult uploadPart(UploadPartRequest uploadPartRequest)
                 .wrapListener(progressListener);
 
         if (progressListenerCallbackExecutor != null) {
-            inputStream = new ProgressReportingInputStream(inputStream,
-                    progressListenerCallbackExecutor);
-            fireProgressEvent(progressListenerCallbackExecutor,
-                    ProgressEvent.PART_STARTED_EVENT_CODE);
+            inputStream = new ProgressReportingInputStream(inputStream, progressListenerCallbackExecutor);
+            ((ProgressReportingInputStream)inputStream).setNotificationThreshold(this.notificationThreshold);
+            fireProgressEvent(progressListenerCallbackExecutor, ProgressEvent.PART_STARTED_EVENT_CODE);
         }
 
         try {
diff --git a/aws-android-sdk-sdb/pom.xml b/aws-android-sdk-sdb/pom.xml
index 5ff658e14ae..0b893051a8b 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.6.5
+    2.6.6
   
 
   
@@ -20,7 +20,7 @@
       com.amazonaws
       aws-android-sdk-core
       false
-      2.6.5
+      2.6.6
     
         
         junit
diff --git a/aws-android-sdk-ses/pom.xml b/aws-android-sdk-ses/pom.xml
index 0a5a5ed82ad..9f3f12e2b5a 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.6.5
+    2.6.6
   
 
   
@@ -20,7 +20,7 @@
       com.amazonaws
       aws-android-sdk-core
       false
-      2.6.5
+      2.6.6
     
   
 
diff --git a/aws-android-sdk-sns/pom.xml b/aws-android-sdk-sns/pom.xml
index b9706326777..a4a54f4301f 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.6.5
+    2.6.6
   
 
   
@@ -20,13 +20,13 @@
       com.amazonaws
       aws-android-sdk-core
       false
-      2.6.5
+      2.6.6
     
     
       com.amazonaws
       aws-android-sdk-sqs
       false
-      2.6.5
+      2.6.6
     
   
 
diff --git a/aws-android-sdk-sqs/pom.xml b/aws-android-sdk-sqs/pom.xml
index 95c123fb831..ae634de5b13 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.6.5
+    2.6.6
   
 
   
@@ -20,7 +20,7 @@
       com.amazonaws
       aws-android-sdk-core
       false
-      2.6.5
+      2.6.6
     
   
 
diff --git a/pom.xml b/pom.xml
index 898e1e1fc1c..65b0ca44840 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
   aws-android-sdk-pom
   pom
   AWS SDK for Android
-  2.6.5
+  2.6.6
   The Amazon Web Services SDK for Android provides Android APIs for building software on AWS’ cost-effective, scalable, and reliable infrastructure products. The AWS SDK for Android allows developers to code against APIs for all of Amazon's infrastructure web services (Amazon S3, Amazon EC2, Amazon SQS, Auto Scaling, etc).
   http://aws.amazon.com/sdkforandroid