Skip to content

Commit e3558b6

Browse files
authored
Support HTTP settings mapping (#5308)
* Support HTTP settings migration. * Use IdentifierUtils and add more tests * Fix conflict * Revert "Fix conflict" This reverts commit 377884d.
1 parent 59ba025 commit e3558b6

File tree

14 files changed

+911
-130
lines changed

14 files changed

+911
-130
lines changed

migration-tool/pom.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,16 @@
6262
<artifactId>sdk-core</artifactId>
6363
<version>${project.version}</version>
6464
</dependency>
65+
<dependency>
66+
<groupId>software.amazon.awssdk</groupId>
67+
<artifactId>apache-client</artifactId>
68+
<version>${project.version}</version>
69+
</dependency>
70+
<dependency>
71+
<groupId>software.amazon.awssdk</groupId>
72+
<artifactId>netty-nio-client</artifactId>
73+
<version>${project.version}</version>
74+
</dependency>
6575
<dependency>
6676
<groupId>software.amazon.awssdk</groupId>
6777
<artifactId>auth</artifactId>

migration-tool/src/main/java/software/amazon/awssdk/migration/internal/recipe/HttpSettingsToHttpClient.java

Lines changed: 422 additions & 16 deletions
Large diffs are not rendered by default.

migration-tool/src/main/java/software/amazon/awssdk/migration/internal/utils/SdkTypeUtils.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,10 @@ public static boolean isV2ClientBuilder(JavaType type) {
137137
}
138138

139139
public static boolean isEligibleToConvertToBuilder(JavaType.FullyQualified type) {
140-
return type != null && (isV2ModelClass(type) || isV2ClientClass(type) ||
141-
isV2CoreClassesWithBuilder(type.getFullyQualifiedName()));
140+
if (type == null) {
141+
return false;
142+
}
143+
return isV2ModelClass(type) || isV2ClientClass(type) || isV2CoreClassesWithBuilder(type.getFullyQualifiedName());
142144
}
143145

144146
public static boolean isEligibleToConvertToStaticFactory(JavaType.FullyQualified type) {

migration-tool/src/main/resources/META-INF/rewrite/change-auth-types.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,9 @@ recipeList:
9898
- org.openrewrite.java.ChangeMethodName:
9999
methodPattern: software.amazon.awssdk.auth.credentials.ContainerCredentialsProvider getCredentials
100100
newMethodName: resolveCredentials
101+
- org.openrewrite.java.ChangeType:
102+
oldFullyQualifiedTypeName: com.amazonaws.auth.WebIdentityTokenCredentialsProvider
103+
newFullyQualifiedTypeName: software.amazon.awssdk.auth.credentials.WebIdentityTokenFileCredentialsProvider
101104

102105
- org.openrewrite.java.ChangeMethodName:
103106
methodPattern: com.amazonaws.auth.InstanceProfileCredentialsProvider getInstance
@@ -124,7 +127,7 @@ recipeList:
124127
newMethodName: resolveCredentials
125128

126129
- org.openrewrite.java.ChangeType:
127-
oldFullyQualifiedTypeName: com.amazonaws.auth.WebIdentityFederationSessionCredentialsProvider
130+
oldFullyQualifiedTypeName: com.amazonaws.auth.STSAssumeRoleWithWebIdentitySessionCredentialsProvider
128131
newFullyQualifiedTypeName: software.amazon.awssdk.services.sts.auth.StsAssumeRoleWithWebIdentityCredentialsProvider
129132
- org.openrewrite.java.ChangeMethodName:
130133
methodPattern: software.amazon.awssdk.auth.credentials.StsAssumeRoleWithWebIdentityCredentialsProvider getCredentials

migration-tool/src/main/resources/META-INF/rewrite/change-config-types.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
# permissions and limitations under the License.
1414
#
1515
## TODO: support retry policy, signer and throttledRetries
16+
## TODO: handle http settings renaming for async HTTP client
1617
---
1718
type: specs.openrewrite.org/v1beta/recipe
1819
name: software.amazon.awssdk.ChangeConfigTypes
@@ -36,6 +37,23 @@ recipeList:
3637
- software.amazon.awssdk.migration.internal.recipe.NumberToDuration:
3738
methodPattern: com.amazonaws.ClientConfiguration withApiCallTimeout(int)
3839

40+
- software.amazon.awssdk.migration.internal.recipe.NumberToDuration:
41+
methodPattern: com.amazonaws.ClientConfiguration withConnectionTimeout(int)
42+
- software.amazon.awssdk.migration.internal.recipe.NumberToDuration:
43+
methodPattern: com.amazonaws.ClientConfiguration withSocketTimeout(int)
44+
45+
- org.openrewrite.java.ChangeMethodName:
46+
methodPattern: com.amazonaws.ClientConfiguration withConnectionMaxIdleMillis(long)
47+
newMethodName: withConnectionMaxIdleTime
48+
- software.amazon.awssdk.migration.internal.recipe.NumberToDuration:
49+
methodPattern: com.amazonaws.ClientConfiguration withConnectionMaxIdleTime(long)
50+
51+
- org.openrewrite.java.ChangeMethodName:
52+
methodPattern: com.amazonaws.ClientConfiguration withConnectionTTL(long)
53+
newMethodName: withConnectionTimeToLive
54+
- software.amazon.awssdk.migration.internal.recipe.NumberToDuration:
55+
methodPattern: com.amazonaws.ClientConfiguration withConnectionTimeToLive(long)
56+
3957
- org.openrewrite.java.ChangeMethodName:
4058
methodPattern: com.amazonaws.ClientConfiguration withRetryMode(..)
4159
newMethodName: withRetryPolicy

migration-tool/src/main/resources/META-INF/rewrite/java-sdk-v1-to-v2.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,5 @@ recipeList:
3131
- software.amazon.awssdk.migration.recipe.V1BuilderVariationsToV2Builder
3232
- software.amazon.awssdk.migration.recipe.NewClassToBuilderPattern
3333
- software.amazon.awssdk.migration.recipe.NewClassToStaticFactory
34-
- software.amazon.awssdk.migration.internal.recipe.V1GetterToV2
34+
- software.amazon.awssdk.migration.internal.recipe.V1GetterToV2
35+
- software.amazon.awssdk.migration.internal.recipe.HttpSettingsToHttpClient

migration-tool/src/main/resources/META-INF/rewrite/upgrade-sdk-dependencies.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,14 @@ name: software.amazon.awssdk.UpgradeSdkDependencies
1717
displayName: Change Maven dependency groupId, artifactId and/or the version example
1818
recipeList:
1919

20+
- org.openrewrite.maven.AddDependency:
21+
groupId: software.amazon.awssdk
22+
artifactId: apache-client
23+
version: 2.23.16-SNAPSHOT
24+
- org.openrewrite.maven.AddDependency:
25+
groupId: software.amazon.awssdk
26+
artifactId: netty-nio-client
27+
version: 2.23.16-SNAPSHOT
2028
- org.openrewrite.maven.ChangeManagedDependencyGroupIdAndArtifactId:
2129
oldGroupId: com.amazonaws
2230
oldArtifactId: aws-java-sdk-bom

migration-tool/src/main/resources/scripts/generate_upgrade_sdk_dependencies_recipe.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,18 @@ def write_bom_recipe(f, version):
5959
newVersion: {0}'''
6060
f.write(change_bom.format(version))
6161

62+
def add_dependencies(f, version):
63+
add_dependencies_str = '''
64+
- org.openrewrite.maven.AddDependency:
65+
groupId: software.amazon.awssdk
66+
artifactId: apache-client
67+
version: {0}
68+
- org.openrewrite.maven.AddDependency:
69+
groupId: software.amazon.awssdk
70+
artifactId: netty-nio-client
71+
version: {0}'''
72+
f.write(add_dependencies_str.format(version))
73+
6274
def write_cloudwatch_recipe(f, version):
6375
change_bom = '''
6476
- org.openrewrite.maven.ChangeDependencyGroupIdAndArtifactId:
@@ -75,6 +87,7 @@ def write_recipe_yml_file(service_mapping):
7587
with open(filename, 'w') as f:
7688
write_copy_right_header(f)
7789
write_recipe_metadata(f, version)
90+
add_dependencies(f, version)
7891
write_bom_recipe(f, version)
7992
for s in service_mapping:
8093
# edge case : v1 contains modules: cloudwatch AND cloudwatchmetrics, which both map to cloudwatch in v2

migration-tool/src/test/java/software/amazon/awssdk/migration/internal/recipe/HttpSettingsToHttpClientTest.java

Lines changed: 0 additions & 89 deletions
This file was deleted.

0 commit comments

Comments
 (0)