1# __2.0.0-preview-13__ __2018-11-13__ 2## __AWS SDK for Java v2__ 3 - ### Features 4 - Add `Automatic-Module-Name` manifest entry. 5 - Add `AwsResponseMetadata` support to allow users to retrieve metadata information such as `requestId`, `extendedRequestId` from the response. see [#670](https://github.com/aws/aws-sdk-java-v2/issues/670) 6 - Add apiCallTimeout and apiCallAttemptTimeout feature for synchronous calls. 7 - Guava 23.0 -> 26.0 8 - upgrade maven-bundle-plugin -> 4.0.0 9 10 - ### Bugfixes 11 - Attach `SdkHttpResponse` to the responses of event streaming operations. 12 13## __AWS Security Token Service__ 14 - ### Features 15 - Added supplier functionality to StsAssumeRoleWithSamlCredentialProvider. This allows for the saml assertion to be refreshed before getting new credentials from STS. 16 17## __AWS Step Function__ 18 - ### Removals 19 - Remove AWS Step Function high level library for now. We will add them in the future. 20 21## __Amazon S3__ 22 - ### Features 23 - Add support for automatically decoding URL-encoded parts of the ListObjects and ListObjectsV2 responses. See https://docs.aws.amazon.com/AmazonS3/latest/API/v2-RESTBucketGET.html and https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html. 24 25 - ### Bugfixes 26 - Update S3 `EndpointAddressInterceptor` to honor request protocol. 27 28## __Apache HTTP Client__ 29 - ### Features 30 - Add support for idle connection reaping. 31 32## __core__ 33 - ### Features 34 - Apache HttpClient 4.5.5 -> 4.5.6 35 - Netty 4.1.28 -> 4.1.30 36 37# __2.0.0-preview-12__ __2018-09-18__ 38## __AWS SDK for Java v2__ 39 - ### Features 40 - Add mfa_serial to ProfileProperty 41 - Allow clients to add Socket Channel Option 42 - Implement apiCallAttemptTimeout and apiCallTimeout feature for asynchrounous calls. Customers can specify timeout via `ClientOverrideConfiguaration.Builder#apiCallTimeout(Duration)` or `RequestOverrideConfiguration.Builder#apiCallAttemptTimeout(Duration)`. Note: this feature is only implemented for asynchrounous api calls. 43 - Improve logging for debuggability. see `SdkStandardLogger`. 44 - Refactored all services to make module names match the service id from the service model 45 - Removed sdk-core dependency from the profiles module. This allows reading from profile files without pulling in the rest of the SDK. 46 - Replacing legacy `HttpResponse` with `SdkHttpFullResponse`. 47 - Update service models to be current as of 2018-09-07. 48 49 - ### Bugfixes 50 - Fix Response Fetcher hasNextPage to check if the output token is non null or non empty if it is a collection or map type. Related to [#677](https://github.com/aws/aws-sdk-java-v2/issues/677) 51 - RetryPolicy bug fix: adding throttlingBackoffStrategy to `RetryPolicy.Builder`. see [#646](https://github.com/aws/aws-sdk-java-v2/issues/646) 52 53## __AWS STS__ 54 - ### Features 55 - Add the ability to provide a Supplier<AssumeRoleRequest> to StsAssumeRoleCredentialsProvider 56 57## __Aamazon S3__ 58 - ### Bugfixes 59 - Fix NPE for S3 GET request using http protocol. see [#612](https://github.com/aws/aws-sdk-java-v2/issues/612) 60 61## __Amazon SimpleDB__ 62 - ### Removals 63 - Amazon SimpleDB module is removed from the SDK 2.0. To use SimpleDB, use SDK 1.11.x. Note that you can run SDK 1.11 and 2.0 in the same application. 64 65## __runtime__ 66 - ### Bugfixes 67 - Netty 4.1.26.Final -> 4.1.28.Final 68 69# __2.0.0-preview-11__ __2018-07-30__ 70## __AWS SDK for Java v2__ 71 - ### Features 72 - Accept `SdkBytes` and `byte[]` instead of `ByteBuffer` in generated setters. 73 - Add support to disable EC2 instance metadata service usage via environment variable and system property. [#430](https://github.com/aws/aws-sdk-java-v2/issues/430) 74 - Caching `XPathFactory` to improve performance of exception handling for services using XML protocol 75 - Exceptions use builders and are immutable. 76 - Incorporate the [Reactive Streams Technology Compatibility Kit](https://github.com/reactive-streams/reactive-streams-jvm/tree/master/tck) and ensure current implementations are compliant. [#519](https://github.com/aws/aws-sdk-java-v2/issues/519) 77 - Modules (annotations, auth, sdk-core, aws-core, profiles, regions) are refactored under the core module. 78 - Refactor signer interfaces to be independent from Amazon/AWS specific classes. Signer interfaces expose a sign method that takes in the request to sign and ExecutionAttributes instance. Parameters needed for signing are to be passed through ExecutionAttributes. SDK signer implementations have overloaded sign methods that can take either generic ExecutionAttributes or modeled params classes as convenience for customers. 79 - Region class clean up including the following: - Flattened GovCloud - Renamed `Region.value()` to `Region.id()` - Dropped `get` prefix in the method names. eg: `getRegions()` -> `regions()` 80 - Renamed all non-service enums to be singular, not plural. 81 - Renaming `SdkBuilder.apply()` -> `SdkBuilder.applyMutation()` and renaming `ResponseTransformer.apply()` to `ResponseTransformer.transform()`. 82 - Return `SdkBytes` instead of `ByteBuffer` from generated getters. 83 - Update all service models to follow V2 naming convention. eg: `WAFException` -> `WafException` 84 - Update service name in clients, requests and exceptions to match 2.0 naming conventions (eg. DynamoDBClient -> DynamoDbClient) 85 - Updated `AwsCredentials` to interface implemented by `AwsBasicCredentials` and `AwsSessionCredentials`. Renamed `AwsCredentialsProvider.getCredentials()` to `AwsCredentialsProvider.resolveCredentials()`. 86 - Use auto constructed containers for list and map members. [#497](https://github.com/aws/aws-sdk-java-v2/pull/497), [#529](https://github.com/aws/aws-sdk-java-v2/pull/529), [#600](https://github.com/aws/aws-sdk-java-v2/pull/600) 87 - Various AsyncClient Refactors:\n - Drop async prefix in `SdkAyncClientBuilder`: `SdkAsyncClientBuilder.asyncHttpClientBuilder() -> SdkAsyncClientBuilder.httpClientBuilder()`\n - Create `SdkEventLoopGroup` to allow users to provide `EventLoopGroup` and `ChannelFactory`. 88 - upgrade Netty 4.1.22.Final to Netty 4.1.26.Final 89 90 - ### Deprecations 91 - Deprecating `QueryStringSigner` in favor of `Aws4Signer`. 92 93 - ### Removals 94 - Make paginators resume method private.(We will re-add the feature in the future) 95 - Removing gzipEnabled client configuration. 96 97## __AWS WAF Regional__ 98 - ### Features 99 - AWS Waf Regional clients are now in `software.amazon.awssdk.services.waf.regional` package. 100 101## __Amazon DynamoDB__ 102 - ### Features 103 - Add default DynamoDB specific retry policy. 104 - Update DynamoDB default max retry count to 8. Related to [#431](https://github.com/aws/aws-sdk-java-v2/issues/431) 105 106## __Amazon DynamoDB Streams__ 107 - ### Features 108 - Dynamodb Streams clients are now in `software.amazon.awssdk.services.dynamodb.streams` package. 109 110## __Amazon S3__ 111 - ### Features 112 - Move `AWSS3V4Signer` to auth module. 113 114## __Netty NIO Async HTTP Client__ 115 - ### Bugfixes 116 - Fix the Netty async client to stop publishing to the request stream once `Content-Length` is reached. 117 118# __2.0.0-preview-10__ __2018-05-25__ 119## __AWS SDK for Java v2__ 120 - ### Features 121 - Add [SdkHttpResponse](https://github.com/aws/aws-sdk-java-v2/blob/master/http-client-spi/src/main/java/software/amazon/awssdk/http/SdkHttpResponse.java) to [SdkResponse](https://github.com/aws/aws-sdk-java-v2/blob/master/core/src/main/java/software/amazon/awssdk/core/SdkResponse.java) so that customers can retrieve Http data such as headers, status code from the response object. 122 - Add a standard User-Agent when making requests to the metadata service. User-Agent pattern: aws-sdk-java/<version> 123 - Added Consumer<Builder>-style methods for all client overloads. 124 - Added Consumer<Builder>-style methods for vararg parameters. 125 - AsyncResponseTransformer byte array and string methods now match the sync model. 126 - Include root causes in the exception message from AWSCredentialsProviderChain to ease troubleshooting. 127 - Moved AWS specific retry policies to aws-core module, created AwsServiceException and moved isThrottlingException and isClockSkewException methods to SdkServiceException. 128 - Renamed "Bytes" overload for streaming operations to "AsBytes", and "String" overload for enums to "AsString" 129 - Renamed AsyncRequestProvider to AsyncRequestBody to better match sync's RequestBody 130 - Renamed AsyncResponseHandler to AsyncResponseTransformer and StreamingResponseHandler to ResponseTransformer. 131 - Renamed `AdvancedServiceConfiguration` to `ServiceConfiguration` 132 - Renamed `RequestOverrideConfig` to `RequestOverrideConfiguration` to match `ClientOverrideConfiguration` naming. 133 - Simplified configuration of HTTP clients. 134 - Split core module to regions, profiles, auth, aws-core and core modules.[#27](https://github.com/aws/aws-sdk-java-v2/issues/27) 135 - Updating default retry policy to include newly added conditions. 136 137 - ### Removals 138 - Remove httpRequestTimeout and totalExecutionTimeout features 139 140## __AWS Secrets Manager__ 141 - ### Features 142 - Add AWS Secrets Manager to v2. 143 144## __Amazon S3__ 145 - ### Features 146 - Renamed `S3AdvancedConfiguration` to `S3Configuration` 147 148# __2.0.0-preview-9__ __2018-03-20__ 149## __AWS Lambda__ 150 - ### Features 151 - Added latest model for new service features. 152 153## __AWS SDK for Java v2__ 154 - ### Bugfixes 155 - Fix default user agent to comply with [RFC 7231](https://tools.ietf.org/html/rfc7231#section-5.5.3). Related to [#80](https://github.com/aws/aws-sdk-java-v2/issues/80) 156 - Maven artifact software.amazon.awssdk:bom no longer includes non-SDK dependencies. 157 158# __2.0.0-preview-8__ __2018-02-02__ 159## __AWS SDK for Java v2__ 160 - ### Features 161 - Added Consumer<Builder> methods to multiple locations where they were previously missing. 162 - Added `SdkClient` base interface that all service clients implement. 163 - Added and standardized `toString` implementations of public data classes. 164 - Adding the following services from re:invent 2017: 165 - Alexa For Business 166 - AWS Migration Hub 167 - AWS Cost Explorer 168 - AWS Cloud9 169 - AWS CloudHSM V2 170 - Amazon Comprehend 171 - AWS Glue 172 - Amazon GuardDuty 173 - Amazon Kinesis Video Streams 174 - AWS Elemental MediaConvert 175 - AWS Elemental MediaLive 176 - AWS Elemental MediaPackage 177 - AWS Elemental MediaStore 178 - AWS Mobile 179 - AmazonMQ 180 - AWS Price List 181 - AWS Resource Groups 182 - Amazon SageMaker 183 - AWS Serverless Application Repository 184 - Amazon Route 53 Auto Naming 185 - Amazon Translate 186 - Amazon WorkMail 187 - Setting `Content-Type` header for streaming requests. Related to [#357](https://github.com/aws/aws-sdk-java-v2/issues/357) 188 - upgrade Netty 4.1.17.Final to 4.1.19.Final 189 190 - ### Bugfixes 191 - Fixed issue where error message in S3 exceptions could be "null" if the exception did not have a modeled type. 192 193## __Amazon CloudWatch__ 194 - ### Features 195 - Added pagination configuration to CloudWatch 196 197## __Netty NIO Async HTTP Client__ 198 - ### Bugfixes 199 - Fix race condition in the async client causing instability when making multiple concurent requests. Fixes [#202](https://github.com/aws/aws-sdk-java-v2/issues/202) 200 201# __2.0.0-preview-7__ __2017-12-15__ 202## __AWS SDK for Java v2__ 203 - ### Features 204 - Added `Bytes` methods to all streaming operations. These methods will load the service response into memory and return a `ResponseBytes` object that eases conversion into other types, like strings. eg. `String object = s3.getObjectBytes(request).asUtf8String()`. [#324](https://github.com/aws/aws-sdk-java-v2/pull/324) 205 - Added `ProfileCredentialsProvider.create("profile-name")` helper to `ProfileCredentialsProvider` to account for common use-case where only profile name is provided. [#347](https://github.com/aws/aws-sdk-java-v2/pull/347) 206 - Adds convenience type overloads to allow easier to use types on modeled objects. [#336](https://github.com/aws/aws-sdk-java-v2/pull/336) 207 - Automatically retry streaming downloads to a file if they fail or are interrupted. [#324](https://github.com/aws/aws-sdk-java-v2/pull/324) 208 - Implementation of a generic HTTP credential provider used to get credentials from an container metadata service. Replica of v1 [implementation](https://github.com/aws/aws-sdk-java/blob/master/aws-java-sdk-core/src/main/java/com/amazonaws/auth/ContainerCredentialsProvider.java#L108) [#328](https://github.com/aws/aws-sdk-java-v2/pull/328) 209 - Refactors the exceptions used by the SDK. [#301](https://github.com/aws/aws-sdk-java-v2/pull/301) 210 - Remove the legacy `AmazonWebServiceRequest`, `AmazonWebServiceResult`, and `AmazonWebServiceResponse` classes. They are replaced with `AwsRequest` and `AwsResponse`. [#289](https://github.com/aws/aws-sdk-java-v2/issues/289) 211 - Updated profile-based region and credential loading to more closely mirror the behavior in the AWS CLI. Notably, profile names in `~/.aws/config` must be prefixed with "profile " (except for the default profile) and profile names in `~/.aws/credentials` must not be prefixed with "profile ". [#296](https://github.com/aws/aws-sdk-java-v2/pull/296) 212 - Upgrade maven-compiler-plugin from 3.6.0 to 3.7.0 213 - Upgraded dependencies 214 * Wiremock (com.github.tomakehurst:wiremock) 1.55 -> 2.12.0 215 * Json Path (com.jayway.jsonpath:json-path) 2.2.0 -> 2.4.0 216 - upgrade to Jackson 2.9.3 217 218 - ### Removals 219 - Remove easymock as a dependency, mockito should be used for all mocking going forward. [#348](https://github.com/aws/aws-sdk-java-v2/pull/348) 220 - Removed the following unused dependencies [#349](https://github.com/aws/aws-sdk-java-v2/issues/349): 221 * org.eclipse:text 222 * info.cukes:cucumber-java 223 * info.cukes:cucumber-junit 224 * info.cukes:cucumber-guice 225 * com.google.inject:guice 226 * org.bouncycastle:bcprov-jdk15on 227 * com.google.guava:guava 228 * io.burt:jmespath-jackson 229 * javax.annotation:javax.annotation-api 230 231## __Amazon S3__ 232 - ### Bugfixes 233 - Fixing exception unmarshalling for S3. [#297](https://github.com/aws/aws-sdk-java-v2/issues/297) 234 235## __Netty NIO Async HTTP Client__ 236 - ### Bugfixes 237 - Fixes Issue [#340](https://github.com/aws/aws-sdk-java-v2/issues/340) where connection acquisition time was calculated incorrectly in the Netty client. 238 239# __2.0.0-preview-6__ __2017-12-06__ 240## __AWS AppSync__ 241 - ### Features 242 - Adding AWS AppSync based on customer request. [#318](https://github.com/aws/aws-sdk-java-v2/pull/318) 243 244## __AWS Lambda__ 245 - ### Removals 246 - Removed high-level utilities. [#247](https://github.com/aws/aws-sdk-java-v2/pull/247) 247 248## __AWS SDK for Java v2__ 249 - ### Features 250 - Add paginators-1.json file for some services [#298](https://github.com/aws/aws-sdk-java-v2/pull/298) 251 - Added a primitive `Waiter` class for simplifying poll-until-condition-is-met behavior. [#300](https://github.com/aws/aws-sdk-java-v2/pull/300) 252 - Adding Consumer<Builder> to overrideConfiguration on ClientBuilder [#291](https://github.com/aws/aws-sdk-java-v2/pull/291) 253 - Adding helper to Either that allows construction from two possibly null values [#292](https://github.com/aws/aws-sdk-java-v2/pull/292) 254 - Adding knownValues static to enum generation [#218](https://github.com/aws/aws-sdk-java-v2/pull/218) 255 - Adding validation to Region class [#261](https://github.com/aws/aws-sdk-java-v2/pull/261) 256 - Converted all wiremock tests to run as part of the build. [#260](https://github.com/aws/aws-sdk-java-v2/pull/260) 257 - Enhanced pagination for synchronous clients[#207](https://github.com/aws/aws-sdk-java-v2/pull/207) 258 - Implementing Consumer<Builder> fluent setter pattern on client operations [#280](https://github.com/aws/aws-sdk-java-v2/pull/280) 259 - Implementing Consumer<Builder> fluent setters pattern on model builders. [#278](https://github.com/aws/aws-sdk-java-v2/pull/278) 260 - Making it easier to supply async http configuration. [#274](https://github.com/aws/aws-sdk-java-v2/pull/274) 261 - Refactoring retry logic out to separate class [#177](https://github.com/aws/aws-sdk-java-v2/pull/177) 262 - Removing unnecessary javax.mail dependency [#312](https://github.com/aws/aws-sdk-java-v2/pull/312) 263 - Replacing constructors with static factory methods [#284](https://github.com/aws/aws-sdk-java-v2/pull/284) 264 - Retry policy refactor [#190](https://github.com/aws/aws-sdk-java-v2/pull/190) 265 - Update latest models for existing services [#299](https://github.com/aws/aws-sdk-java-v2/pull/299) 266 - Upgrade dependencies to support future migration to Java 9. [#271](https://github.com/aws/aws-sdk-java-v2/pull/271) 267 - Upgraded dependencies: 268 * javapoet 1.8.0 -> 1.9.0 [#311](https://github.com/aws/aws-sdk-java-v2/pull/311) 269 * Apache HttpClient 4.5.2 -> 4.5.4 [#308](https://{github.com/aws/aws-sdk-java-v2/pull/308) 270 * Jackson 2.9.1 -> 2.9.2 [#310](https://github.com/aws/aws-sdk-java-v2/pull/310) 271 * Netty 4.1.13 -> 4.1.17 [#309](https://github.com/{aws/aws-sdk-java-v2/pull/309) 272 - Use java.util.Objects to implement equals, hashCode [#294](https://github.com/aws/aws-sdk-java-v2/pull/294) 273 274 - ### Bugfixes 275 - Attempting to fix class-loader exception raised on gitter. [#216](https://github.com/aws/aws-sdk-java-v2/pull/216) 276 - Call doClose in HttpClientDependencies#close method [#268](https://github.com/aws/aws-sdk-java-v2/pull/268) 277 - Fixing bundle exports [#281](https://github.com/aws/aws-sdk-java-v2/pull/281) 278 279 - ### Removals 280 - Delete old jmespath AST script [#266](https://github.com/aws/aws-sdk-java-v2/pull/266) 281 - Remove current waiter implementation. [#258](https://github.com/aws/aws-sdk-java-v2/pull/258) 282 - Removed policy builder. [#259](https://github.com/aws/aws-sdk-java-v2/pull/259) 283 - Removed progress listeners until they can be updated to V2 standards. [#285](https://github.com/aws/aws-sdk-java-v2/pull/285) 284 285## __Amazon CloudFront__ 286 - ### Removals 287 - Removed high-level cloudfront utilities. [#242](https://github.com/aws/aws-sdk-java-v2/pull/242) 288 289## __Amazon DynamoDB__ 290 - ### Features 291 - Adding some helpers for being able to create DyanmoDB AttributeValues. [#276](https://github.com/aws/aws-sdk-java-v2/pull/276) 292 293 - ### Bugfixes 294 - Fixed TableUtils that broke with enum change. [#235](https://github.com/aws/aws-sdk-java-v2/pull/235) 295 296## __Amazon EC2__ 297 - ### Removals 298 - Removed high-level utilities. [#244](https://github.com/aws/aws-sdk-java-v2/pull/244) 299 300## __Amazon EMR__ 301 - ### Removals 302 - Removed high-level utilities. [#245](https://github.com/aws/aws-sdk-java-v2/pull/245) 303 304## __Amazon Glacier__ 305 - ### Removals 306 - Removed high-level utilities. [#246](https://github.com/aws/aws-sdk-java-v2/pull/246) 307 308## __Amazon Polly__ 309 - ### Removals 310 - Removed polly presigners until they can be updated for V2. [#287](https://github.com/aws/aws-sdk-java-v2/pull/287) 311 312## __Amazon S3__ 313 - ### Features 314 - Adding utility that creates temporary bucket name using user-name [#234](https://github.com/aws/aws-sdk-java-v2/pull/234) 315 316## __Amazon SES__ 317 - ### Removals 318 - Removed high-level utilities. [#248](https://github.com/aws/aws-sdk-java-v2/pull/248) 319 320## __Amazon SNS__ 321 - ### Removals 322 - Removed high-level utilities. [#255](https://github.com/aws/aws-sdk-java-v2/pull/255) 323 324## __Amazon SQS__ 325 - ### Bugfixes 326 - Porting SQS test to make use of async and hopefully resolve the bug [#240](https://github.com/aws/aws-sdk-java-v2/pull/240) 327 328 - ### Removals 329 - Removed high-level utilities and the interceptor that rewrites the endpoint based on the SQS queue. [#238](https://github.com/aws/aws-sdk-java-v2/pull/238) 330 331## __Amazon SimpleDB__ 332 - ### Removals 333 - Removed high-level utilities and unused response metadata handler. [#249](https://github.com/aws/aws-sdk-java-v2/pull/249) 334 335## __Netty NIO Async HTTP Client__ 336 - ### Features 337 - Adding socket resolver helper that will load the appropriate SocketChannel [#293](https://github.com/aws/aws-sdk-java-v2/pull/293) 338 339 - ### Bugfixes 340 - Netty spurious timeout error fix [#283](https://github.com/aws/aws-sdk-java-v2/pull/283) 341 - Temporarily disable epoll [#254](https://github.com/aws/aws-sdk-java-v2/pull/254) 342 343# __2.0.0-preview-5__ __2017-10-17__ 344## __AWS SDK for Java v2__ 345 - ### Features 346 - Asynchronous request handler for strings `AsyncRequestProvider.fromString("hello world!!!")` [PR #183](https://github.com/aws/aws-sdk-java-v2/pull/183) 347 - General HTTP core clean-up [PR #178](https://github.com/aws/aws-sdk-java-v2/pull/178) 348 - Get value from request POJO using member model names `String bucketName = s3PutObjectResponse.getValueForField("Bucket", String.class);` [PR #144](https://github.com/aws/aws-sdk-java-v2/pull/144) 349 - Model enums on service POJOs [PR #195](https://github.com/aws/aws-sdk-java-v2/pull/195) 350 - Move `core` classes to their own package `software.amazon.awssdk.core` [PR #194](https://github.com/aws/aws-sdk-java-v2/pull/194) 351 352 - ### Bugfixes 353 - Resolve potential security issue handling DTD entities [PR #198](https://github.com/aws/aws-sdk-java-v2/pull/198) 354 - Serialization/deserialization of complex model objects [PR #128](https://github.com/aws/aws-sdk-java-v2/pull/128) / [Issue #121](https://github.com/aws/aws-sdk-java-v2/issues/121) 355 356## __Amazon S3__ 357 - ### Features 358 - Handle 100-continue header for PUT object [PR #169](https://github.com/aws/aws-sdk-java-v2/pull/169) 359 360## __Netty NIO Async HTTP Client__ 361 - ### Bugfixes 362 - Better handling of event-loop selection for AWS Lambda container [PR #208](https://github.com/aws/aws-sdk-java-v2/pull/208) 363 - Data corruption fix in streaming responses and stability fixes [PR #173](https://github.com/aws/aws-sdk-java-v2/pull/173) 364 365# __2.0.0-preview-4__ __2017-09-19__ 366## __AWS SDK for Java v2__ 367 - ### Features 368 - Added convenience methods for both sync and async streaming operations for file based uploads/downloads. 369 - Added some convenience implementation of [AsyncResponseHandler](https://github.com/aws/aws-sdk-java-v2/blob/master/core/src/main/java/software/amazon/awssdk/async/AsyncResponseHandler.java) to emit to a byte array or String. 370 - Immutable objects can now be modified easily with a newly introduced [copy](https://github.com/aws/aws-sdk-java-v2/blob/master/utils/src/main/java/software/amazon/awssdk/utils/builder/ToCopyableBuilder.java#L42) method that applies a transformation on the builder for the object and returns a new immutable object. 371 - Major refactor of RequestHandler interfaces. Newly introduced [ExecutionInterceptors](https://github.com/aws/aws-sdk-java-v2/blob/master/core/src/main/java/software/amazon/awssdk/interceptor/ExecutionInterceptor.java) have a cleaner, more consistent API and are much more powerful. 372 - S3's CreateBucket no longer requires the location constraint to be specified, it will be inferred from the client region if not present. 373 - The [File](https://github.com/aws/aws-sdk-java-v2/blob/master/core/src/main/java/software/amazon/awssdk/sync/StreamingResponseHandler.java#L92) and [OutputStream](https://github.com/aws/aws-sdk-java-v2/blob/master/core/src/main/java/software/amazon/awssdk/sync/StreamingResponseHandler.java#L107) implementations of StreamingResponseHandler now return the POJO response in onComplete. 374 375 - ### Bugfixes 376 - Fixed a bug in default credential provider chain where it would erroneously abort at the ProfileCredentialsProvider. See [Issue #135](https://github.com/aws/aws-sdk-java-v2/issues/135) 377 - Many improvements and fixes to the Netty NIO based transport. 378 - Several fixes around S3's endpoint resolution, particularly with advanced options like path style addressing and accelerate mode. See [Issue #130](https://github.com/aws/aws-sdk-java-v2/issues/130) 379 - Several fixes around serialization and deserialization of immutable objects. See [Issue #122](https://github.com/aws/aws-sdk-java-v2/issues/122) 380 - Type parameters are now correctly included for [StreamingResponseHandler](https://github.com/aws/aws-sdk-java-v2/blob/master/core/src/main/java/software/amazon/awssdk/sync/StreamingResponseHandler.java) on the client interface. 381 382 - ### Removals 383 - Dependency on JodaTime has been dropped in favor of Java 8's APIS. 384 - DynamoDBMapper and DynamoDB Document API have been removed. 385 - Metrics subsystem has been removed. 386 387# __2.0.0-preview-2__ __2017-07-21__ 388## __AWS SDK for Java v2__ 389 - ### Features 390 - New pluggable HTTP implementation built on top of Java's HttpUrlConnection. Good choice for simple applications with low throughput requirements. Better cold start latency than the default Apache implementation. 391 - Simple convenience methods have been added for operations that require no input parameters. 392 - Substantial improvements to start up time and cold start latencies 393 - The Netty NIO HTTP client now uses a shared event loop group for better resource management. More options for customizing the event loop group are now available. 394 - Using java.time instead of the legacy java.util.Date in generated model classes. 395 - Various improvements to the immutability of model POJOs. ByteBuffers are now copied and collections are returned as unmodifiable. 396 397# __2.0.0-preview-1__ __2017-06-28__ 398## __AWS SDK for Java v2__ 399 - ### Features 400 - Initial release of the AWS SDK for Java v2. See our [blog post](https://aws.amazon.com/blogs/developer/aws-sdk-for-java-2-0-developer-preview) for information about this new major version. This release is considered a developer preview and is not intended for production use cases. 401