Skip to content

Commit 6b022f5

Browse files
committed
Support HTTP settings migration.
1 parent 856a9d1 commit 6b022f5

File tree

14 files changed

+814
-129
lines changed

14 files changed

+814
-129
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: 446 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 & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +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) || isV2CoreClassesWithBuilder(type.getFullyQualifiedName()));
140+
if (type == null) {
141+
return false;
142+
}
143+
return isV2ModelClass(type) || isV2ClientClass(type) || isV2CoreClassesWithBuilder(type.getFullyQualifiedName());
141144
}
142145

143146
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
@@ -50,6 +50,9 @@ recipeList:
5050
- org.openrewrite.java.ChangeType:
5151
oldFullyQualifiedTypeName: com.amazonaws.auth.ContainerCredentialsProvider
5252
newFullyQualifiedTypeName: software.amazon.awssdk.auth.credentials.ContainerCredentialsProvider
53+
- org.openrewrite.java.ChangeType:
54+
oldFullyQualifiedTypeName: com.amazonaws.auth.WebIdentityTokenCredentialsProvider
55+
newFullyQualifiedTypeName: software.amazon.awssdk.auth.credentials.WebIdentityTokenFileCredentialsProvider
5356

5457
- org.openrewrite.java.ChangeMethodName:
5558
methodPattern: com.amazonaws.auth.InstanceProfileCredentialsProvider getInstance
@@ -65,7 +68,7 @@ recipeList:
6568
oldFullyQualifiedTypeName: com.amazonaws.auth.STSSessionCredentialsProvider
6669
newFullyQualifiedTypeName: software.amazon.awssdk.services.sts.auth.StsGetSessionTokenCredentialsProvider
6770
- org.openrewrite.java.ChangeType:
68-
oldFullyQualifiedTypeName: com.amazonaws.auth.WebIdentityFederationSessionCredentialsProvider
71+
oldFullyQualifiedTypeName: com.amazonaws.auth.STSAssumeRoleWithWebIdentitySessionCredentialsProvider
6972
newFullyQualifiedTypeName: software.amazon.awssdk.services.sts.auth.StsAssumeRoleWithWebIdentityCredentialsProvider
7073
- org.openrewrite.java.ChangeType:
7174
oldFullyQualifiedTypeName: com.amazonaws.auth.ProcessCredentialsProvider

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)