Skip to content

Merge from master #5491

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

davidh44
Copy link
Contributor

@davidh44 davidh44 commented Aug 8, 2024

Motivation and Context

Modifications

Testing

Screenshots (if appropriate)

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)

Checklist

  • I have read the CONTRIBUTING document
  • Local run of mvn install succeeds
  • My code follows the code style of this project
  • My change requires a change to the Javadoc documentation
  • I have updated the Javadoc documentation accordingly
  • I have added tests to cover my changes
  • All new and existing tests passed
  • I have added a changelog entry. Adding a new entry must be accomplished by running the scripts/new-change script and following the instructions. Commit the new file created by the script in .changes/next-release with your changes.
  • My change is to implement 1.11 parity feature and I have updated LaunchChangelog

License

  • I confirm that this pull request can be released under the Apache 2 license

AWS and others added 30 commits July 5, 2024 18:08
… logging of potentially sensitive inputs and outputs.
…n enable or disable personalization when creating or updating a Q application with the personalization configuration.
…es change to bring the SDK into sync with the API.
…s for xml formatting, broken links, and ListCertificates description.
…e28b83882

Pull request: release <- staging/85a84ec3-e69a-4519-80d3-af5e28b83882
… Apps, a capability of Amazon Q Business. Q Apps leverages data sources your company has provided to enable users to build, share, and customize apps within your organization.
…6b373376c

Pull request: release <- staging/38925fb5-bf6f-498d-b2aa-9656b373376c
* Add missing support for AWS_MAX_ATTEMPTS in retry strategies

* Add changelog
…on file systems, and FSx for OpenZFS Single AZ HA file systems.
…ing or disabling Natural Language Query Processing feature for Amazon OpenSearch Service domains, and provides visibility into the current state of the setup or tear-down.
… from SearchInventoryResultItem, along with some unused DataProduct shapes
… jobs that allows customers to perform Ahead-of-time compilation and quantization. 2/ allows customers to control access to Amazon Q integration in SageMaker Studio. 3/ enables AdditionalModelDataSources for CreateModel action.
AWS and others added 26 commits August 6, 2024 18:50
* Create new module for migration tool with basic recipe (#4823)

* Create new module for migration tool with basic transformation

* Test application

* Generate upgrade-sdk-depenencies recipe

* Add more tests

* Add README and fix test

* Generate bom version change

* Fix build

* Add recipe to change SDK generated types. (#5053)

* Add recipe to change SDK generated types.

* Address feedback

* Account for v1 Services Module Naming Differences (#5109)

* Account for v1 module naming differences

* Specify full path to diff csv file

* Account for v2 modules that do not exist in v1

* Account for v2 modules that do not exist in v1

* Fix checkstyle errors and suppress spotbug errors for ChangeSdkType (#5113)

* Add Region class mapping (#5118)

* Add NewV1ClassToBuilder recipe (#5115)

* Add NewV1ClassToBuilder recipe

This recipe transforms the usage of a V1 request class using the `new`
keyword to using the V2 class and its builder.

This recipe migrates many common uses for making API calls using the V1
SDK:

Creating the request outside of the API call and then passing it in as a
name variable:

```
SendMessageRequest request = new SendMessage().withQueueUrl(..);

sqs.sendMessage(request);
```

or creating it inline

```
sqs.sendMessage(new SendMessageRequest().withQueueUrl(...));
```

* Review comments

Update migration tool tests. This also means adding the the new recipe
to the main software.amazon.awssdk.UpgradeJavaSdk2 recipe.

* Only run on JDK8

* Preserve prefix when moving from new to builder (#5130)

Previously, this

SendMessageRequest sendMessage = new SendMessageRequest();

is getting transformed to this (o space after =)

SendMessageRequest sendMessage =SendMessageRequest.builder().build();

* Improve test script to log diff (#5131)

* Improve diff output when tests fail (#5152)

Use difflib's unified_diff to produce a unified diff between the
expected and actual file. This has the benefit of including the files
compared in the output which makes it easier to do further inspection on
them.

* Support code transformation for credentials related classes. (#5147)

* Support code transformation for credentials related classes.
Add NewClassToStaticFactory reciipe to convert objects creating using
constructor to static factory method
Refactor NewClassToBuilderPattern to support client classes

* Fix tests

* Flush output after writing diff (#5154)

Prevents the output from being garbled by other output.

* Add ConstructorToFluent recipe (#5145)

* Add ConstructorToFluent recipe

The ConstructorToFluent recipe takes a convenience constructor like

new GetObjectRequest(myBucket, myKey)

and transforms it to use the fluent setter style instead:

new GetObjectRequest().withBucketName(myBucket).withKey(myKey)

This allows us to take advantage of other recipes that for example
switch from using the fluent setters to using the V2-style builders.

* Update param type matching

* Review comments

* Migration Tool Client Config Part 1: map builder variations to the standard builder (#5165)

* WIP

* Add recipe to convert builder varitions to standard builder method

* Add AddCommentToMethod recipe (#5167)

* Add AddCommentToMethod recipe

* Fix build

* Add prefix to comment

* Add NumberToDuration recipe to convert numeric type to Duration (#5170)

* Add NumberToDuration recipe to convert numeric type to Duration

* Fix test

* Add S3StreamingResponseToV2 Recipe (#5173)

* Add S3StreamingResponseToV2 Recipe

This recipe transforms usages of `s3.getObject(..)` such as

```
S3Object myObject = s3.getObject(request);
```

to the equivalent in v2:

```
ResponseInputStream<GetObjectResponse> myObject = s3.getOBject(request);
```

In addition, because of the inversion of streaming and non-streaming
members when moving to ResponseInputStream, it further transforms usages
of myObject so that calls in v1 that access the stream:

```
myObject.getObjectContent().close()
```

become

```
myObject.close()
```

Likewise, methods that access the non-streaming members

```
myObject.getKey();
```

become

```
myObject.response().getKey();
```

* Review comments

* Add S3StreamingResponseToV2 to migration recipe (#5180)

Update migration tool tests.

* Add mappping for non-HTTP config settings and add comments for settings (#5181)

* Add package mapping for the new module and exclude it from javadoc exe… (#5197)

* Add brazil mapping for the new module and exclude it from javadoc execution

* Fix test

* Change package name for migration tool and update dependencies (#5200)

* Fix NumberToDuraion recipe to handle variable (#5208)

* HTTP settings mapping part 1: remove HTTP settings from client configu… (#5211)

* HTTP setting mapping part 1: remove HTTP settings from client configuration

* Fix formatting

* Prefix comment to method call (#5212)

Insert the comment to before the method call to make it easier and more
apparent what the comment is referring to. Using Space to insert
comments here is more idiomatic, and gives us more control of where the
comments appear and what they look like.

* Add V1GetterToV2 Recipe (#5260)

* Add V1GetterToV2 Recipe

* Add check for model class

* Update recipe path

* fix NPE in SdkTypeUtils (#5301)

* Fix POJO class naming mapping (#5315)

* Change auth type getters to fluent getters (#5318)

* Change auth type getters to fluent getters

* Fix session credentials

* Support HTTP settings mapping (#5308)

* Support HTTP settings migration.

* Use IdentifierUtils and add more tests

* Fix conflict

* Revert "Fix conflict"

This reverts commit 377884d.

* Fix missing space issue for ClientOverrideConfiguration (#5323)

* Add mapping for core exception types and getters (#5326)

* Wrap region string with Region.of (#5331)

* Wrap region string with Region.of

* Fix build

* Handle wildcard imports in ChangeSdkType recipe (#5336)

* Fix V1GetterToV2 to not change get method (#5338)

* Fix NPE in ChangeSdkType (#5342)

* Account for v1 package service name differences (#5353)

* Replace aws-java-sdk-core dependency (#5347)

* Replace core dependency

* Fix build

* Skip transformation for S3 Transfer Manager and DynamoDB mapper (#5364)

* Skip transformation for S3 Transfer Manager and DynamoDB mapper

* Fix tests

* Fix tests

* Remove hard-coded version in migration-tool-tests test script (#5366)

* Minor refactoring and updating readme (#5370)

* Add gradle support and add tests for gradle project (#5368)

* Transform defaultClient to create (#5374)

* Transform defaultClient to create

* Fix return type and spacing

* Add parentheses to method patterns (#5384)

* Rename module and recipes (#5377)

* Add package mapping for rewrite-java-dependencies (#5388)

* Fix import for real (#5389)

* Add enum getters and casing transforms (#5393)

* Fix enum getters and casing

* Fix enum getters and casing

* Fix enum getters and casing

* Fix unit test

* Address comments

* Address comments

* Refactor HttpSettingsToHttpClient to handler client builder without build invoked (#5406)

* Transforming S3 PUT override (#5411)

* Transforming S3 PUT override

* Fix build and add end to end tests

---------

Co-authored-by: Dongie Agnir <[email protected]>

* Fix package/file naming and test (#5426)

* Update recipe display name (#5448)

* Doc update (#5447)

* Append PREVIEW to the migration tool version and add changelog entry (#5460)

* Append PREVIEW to the migration tool version and add changelog entry

* Fix build

* Update version

---------

Co-authored-by: David Ho <[email protected]>
Co-authored-by: Dongie Agnir <[email protected]>
…and CreateDataIntegrationAssociation API to support bulk data export from Amazon Connect Customer Profiles to the customer S3 bucket.
… a new functionality that uses ML-based solutions to detect data anomalies users have not explicitly defined rules for.
…dc86cbbd4

Pull request: release <- staging/9f335f54-de4e-4b12-9ae9-614dc86cbbd4
* Update ResponseTransformer so download attempts to a directory that does not exist or does not have write permissions are not retried

* Update ResponseTransformer so download attempts to a directory that does not exist or does not have write permissions are not retried

* Update ResponseTransformer so download attempts to a directory that does not exist or does not have write permissions are not retried

* Update ResponseTransformer so download attempts to a directory that does not exist or does not have write permissions are not retried
* Create new module for migration tool with basic recipe (#4823)

* Create new module for migration tool with basic transformation

* Test application

* Generate upgrade-sdk-depenencies recipe

* Add more tests

* Add README and fix test

* Generate bom version change

* Fix build

* Add recipe to change SDK generated types. (#5053)

* Add recipe to change SDK generated types.

* Address feedback

* Account for v1 Services Module Naming Differences (#5109)

* Account for v1 module naming differences

* Specify full path to diff csv file

* Account for v2 modules that do not exist in v1

* Account for v2 modules that do not exist in v1

* Fix checkstyle errors and suppress spotbug errors for ChangeSdkType (#5113)

* Add Region class mapping (#5118)

* Add NewV1ClassToBuilder recipe (#5115)

* Add NewV1ClassToBuilder recipe

This recipe transforms the usage of a V1 request class using the `new`
keyword to using the V2 class and its builder.

This recipe migrates many common uses for making API calls using the V1
SDK:

Creating the request outside of the API call and then passing it in as a
name variable:

```
SendMessageRequest request = new SendMessage().withQueueUrl(..);

sqs.sendMessage(request);
```

or creating it inline

```
sqs.sendMessage(new SendMessageRequest().withQueueUrl(...));
```

* Review comments

Update migration tool tests. This also means adding the the new recipe
to the main software.amazon.awssdk.UpgradeJavaSdk2 recipe.

* Only run on JDK8

* Preserve prefix when moving from new to builder (#5130)

Previously, this

SendMessageRequest sendMessage = new SendMessageRequest();

is getting transformed to this (o space after =)

SendMessageRequest sendMessage =SendMessageRequest.builder().build();

* Improve test script to log diff (#5131)

* Improve diff output when tests fail (#5152)

Use difflib's unified_diff to produce a unified diff between the
expected and actual file. This has the benefit of including the files
compared in the output which makes it easier to do further inspection on
them.

* Support code transformation for credentials related classes. (#5147)

* Support code transformation for credentials related classes.
Add NewClassToStaticFactory reciipe to convert objects creating using
constructor to static factory method
Refactor NewClassToBuilderPattern to support client classes

* Fix tests

* Flush output after writing diff (#5154)

Prevents the output from being garbled by other output.

* Add ConstructorToFluent recipe (#5145)

* Add ConstructorToFluent recipe

The ConstructorToFluent recipe takes a convenience constructor like

new GetObjectRequest(myBucket, myKey)

and transforms it to use the fluent setter style instead:

new GetObjectRequest().withBucketName(myBucket).withKey(myKey)

This allows us to take advantage of other recipes that for example
switch from using the fluent setters to using the V2-style builders.

* Update param type matching

* Review comments

* Migration Tool Client Config Part 1: map builder variations to the standard builder (#5165)

* WIP

* Add recipe to convert builder varitions to standard builder method

* Add AddCommentToMethod recipe (#5167)

* Add AddCommentToMethod recipe

* Fix build

* Add prefix to comment

* Add NumberToDuration recipe to convert numeric type to Duration (#5170)

* Add NumberToDuration recipe to convert numeric type to Duration

* Fix test

* Add S3StreamingResponseToV2 Recipe (#5173)

* Add S3StreamingResponseToV2 Recipe

This recipe transforms usages of `s3.getObject(..)` such as

```
S3Object myObject = s3.getObject(request);
```

to the equivalent in v2:

```
ResponseInputStream<GetObjectResponse> myObject = s3.getOBject(request);
```

In addition, because of the inversion of streaming and non-streaming
members when moving to ResponseInputStream, it further transforms usages
of myObject so that calls in v1 that access the stream:

```
myObject.getObjectContent().close()
```

become

```
myObject.close()
```

Likewise, methods that access the non-streaming members

```
myObject.getKey();
```

become

```
myObject.response().getKey();
```

* Review comments

* Add S3StreamingResponseToV2 to migration recipe (#5180)

Update migration tool tests.

* Add mappping for non-HTTP config settings and add comments for settings (#5181)

* Add package mapping for the new module and exclude it from javadoc exe… (#5197)

* Add brazil mapping for the new module and exclude it from javadoc execution

* Fix test

* Change package name for migration tool and update dependencies (#5200)

* Fix NumberToDuraion recipe to handle variable (#5208)

* HTTP settings mapping part 1: remove HTTP settings from client configu… (#5211)

* HTTP setting mapping part 1: remove HTTP settings from client configuration

* Fix formatting

* Prefix comment to method call (#5212)

Insert the comment to before the method call to make it easier and more
apparent what the comment is referring to. Using Space to insert
comments here is more idiomatic, and gives us more control of where the
comments appear and what they look like.

* Add V1GetterToV2 Recipe (#5260)

* Add V1GetterToV2 Recipe

* Add check for model class

* Update recipe path

* fix NPE in SdkTypeUtils (#5301)

* Fix POJO class naming mapping (#5315)

* Change auth type getters to fluent getters (#5318)

* Change auth type getters to fluent getters

* Fix session credentials

* Support HTTP settings mapping (#5308)

* Support HTTP settings migration.

* Use IdentifierUtils and add more tests

* Fix conflict

* Revert "Fix conflict"

This reverts commit 377884d.

* Fix missing space issue for ClientOverrideConfiguration (#5323)

* Add mapping for core exception types and getters (#5326)

* Wrap region string with Region.of (#5331)

* Wrap region string with Region.of

* Fix build

* Handle wildcard imports in ChangeSdkType recipe (#5336)

* Fix V1GetterToV2 to not change get method (#5338)

* Fix NPE in ChangeSdkType (#5342)

* Account for v1 package service name differences (#5353)

* Replace aws-java-sdk-core dependency (#5347)

* Replace core dependency

* Fix build

* Skip transformation for S3 Transfer Manager and DynamoDB mapper (#5364)

* Skip transformation for S3 Transfer Manager and DynamoDB mapper

* Fix tests

* Fix tests

* Remove hard-coded version in migration-tool-tests test script (#5366)

* Minor refactoring and updating readme (#5370)

* Add gradle support and add tests for gradle project (#5368)

* Transform defaultClient to create (#5374)

* Transform defaultClient to create

* Fix return type and spacing

* Add parentheses to method patterns (#5384)

* Rename module and recipes (#5377)

* Add package mapping for rewrite-java-dependencies (#5388)

* Fix import for real (#5389)

* Add enum getters and casing transforms (#5393)

* Fix enum getters and casing

* Fix enum getters and casing

* Fix enum getters and casing

* Fix unit test

* Address comments

* Address comments

* Refactor HttpSettingsToHttpClient to handler client builder without build invoked (#5406)

* Transforming S3 PUT override (#5411)

* Transforming S3 PUT override

* Fix build and add end to end tests

---------

Co-authored-by: Dongie Agnir <[email protected]>

* Fix package/file naming and test (#5426)

* Update recipe display name (#5448)

* Doc update (#5447)

* Append PREVIEW to the migration tool version and add changelog entry (#5460)

* Append PREVIEW to the migration tool version and add changelog entry

* Fix build

* Update version

* Use Java to run tests instead of python (#5482)

* Fix version

* Update to not generate upgrade-sdk-dependencies and change-enum-getters (#5483)

* Update to not generate upgrade-sdk-dependencies and change-enum-getters

* Specify java version in tests

---------

Co-authored-by: David Ho <[email protected]>
Co-authored-by: Dongie Agnir <[email protected]>
…g for VPCs and Subnets. VPC IPAM supports the planning and monitoring of private IPv6 usage.
…tection for custom authentication in Amazon Cognito user pools.
…ber of access control tags that are allowed to be added to a security profile in Amazon Connect. You can now add up to four access control tags on a single security profile.
… status when creating or updating Glue Data Catalog Views. Also added is support for BasicCatalogTarget partition keys.
…492fd1220

Pull request: release <- staging/35247981-709a-4eb5-9cb7-d01492fd1220
Before this change, calling `close` after `abort` would raise an IOException. It's well-understood that streams should be `close`d after they're done being used. This was not possible before this change, if `abort` was called.

As a side effect of this change, `abort` now calls `close` on the underlying input stream. This is the behavior of the 1.x SDK, so it is low-risk.
We're out of memory again in the javadoc generation process. Surely host sizes will outpace the greed of the javadoc tool?
@davidh44 davidh44 requested a review from a team as a code owner August 8, 2024 21:58
Copy link

sonarqubecloud bot commented Aug 8, 2024

Quality Gate Failed Quality Gate failed

Failed conditions
0.0% Coverage on New Code (required ≥ 80%)
5.7% Duplication on New Code (required ≤ 3%)

See analysis details on SonarCloud

@davidh44 davidh44 merged commit 5e3d23b into feature/master/migration-tool-updates Aug 8, 2024
16 of 17 checks passed
@davidh44 davidh44 deleted the hdavidh/merge-from-master branch August 8, 2024 22:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants