xref: /aosp_15_r20/external/aws-sdk-java-v2/changelogs/2.0.x-CHANGELOG.md (revision 8a52c7834d808308836a99fc2a6e0ed8db339086)
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