Skip to content

Commit 4d77b47

Browse files
authored
Migration tool - S3 Pojos (#6003)
* Migration tool - S3 Pojos * S3 Pojos
1 parent 4701648 commit 4d77b47

File tree

15 files changed

+443
-71
lines changed

15 files changed

+443
-71
lines changed

test/v2-migration-tests/src/test/resources/software/amazon/awssdk/v2migrationtests/maven/after/src/main/java/foo/bar/Enums.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
package foo.bar;
1717
import software.amazon.awssdk.services.s3.model.Event;
18+
import software.amazon.awssdk.services.s3.model.JSONType;
1819
import software.amazon.awssdk.services.s3.model.StorageClass;
1920
import software.amazon.awssdk.services.sqs.model.MessageAttributeValue;
2021
import software.amazon.awssdk.services.sqs.model.QueueAttributeName;
@@ -28,19 +29,19 @@ public class Enums {
2829
public static void main(String... args) {
2930
QueueAttributeName qan = QueueAttributeName.DELAY_SECONDS;
3031
QueueAttributeName qan2 = QueueAttributeName.ALL;
31-
StorageClass sc1 = StorageClass.STANDARD_IA;
32-
StorageClass sc2 = StorageClass.ONEZONE_IA;
33-
Event se = Event.S3_OBJECT_CREATED;
34-
System.out.println(qan);
35-
System.out.println(qan2);
3632

3733
ReceiveMessageRequest v1Request = ReceiveMessageRequest.builder()
3834
.build();
3935
List<String> attributes = v1Request.attributeNamesAsStrings();
40-
System.out.println(attributes);
4136

4237
SendMessageRequest v2Request = SendMessageRequest.builder().build();
4338
Map<String, MessageAttributeValue> messageAttributes = v2Request.messageAttributes();
44-
System.out.println(messageAttributes);
39+
}
40+
41+
public void s3Enums() {
42+
StorageClass sc1 = StorageClass.STANDARD_IA;
43+
StorageClass sc2 = StorageClass.ONEZONE_IA;
44+
Event se = Event.S3_OBJECT_CREATED;
45+
JSONType jsonType = JSONType.DOCUMENT;
4546
}
4647
}

test/v2-migration-tests/src/test/resources/software/amazon/awssdk/v2migrationtests/maven/after/src/main/java/foo/bar/S3.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,13 +82,15 @@
8282
import software.amazon.awssdk.services.s3.model.HeadObjectResponse;
8383
import software.amazon.awssdk.services.s3.model.IntelligentTieringConfiguration;
8484
import software.amazon.awssdk.services.s3.model.InventoryConfiguration;
85+
import software.amazon.awssdk.services.s3.model.ListBucketsRequest;
8586
import software.amazon.awssdk.services.s3.model.ListObjectVersionsRequest;
8687
import software.amazon.awssdk.services.s3.model.ListObjectsRequest;
8788
import software.amazon.awssdk.services.s3.model.ListObjectsResponse;
8889
import software.amazon.awssdk.services.s3.model.ListObjectsV2Request;
8990
import software.amazon.awssdk.services.s3.model.ListObjectsV2Response;
9091
import software.amazon.awssdk.services.s3.model.MetricsConfiguration;
9192
import software.amazon.awssdk.services.s3.model.NotificationConfiguration;
93+
import software.amazon.awssdk.services.s3.model.Owner;
9294
import software.amazon.awssdk.services.s3.model.OwnershipControls;
9395
import software.amazon.awssdk.services.s3.model.Payer;
9496
import software.amazon.awssdk.services.s3.model.PutBucketAccelerateConfigurationRequest;
@@ -433,4 +435,15 @@ private void generatePresignedUrl(S3Client s3, String bucket, String key, Date e
433435
.signatureDuration(Duration.between(Instant.now(), expiration.toInstant())))
434436
.url();
435437
}
438+
439+
private void getS3AccountOwner(S3Client s3) {
440+
Owner owner = s3.listBuckets().owner();
441+
442+
Owner owner2 = s3.listBuckets(ListBucketsRequest.builder()
443+
.build()).owner();
444+
445+
ListBucketsRequest getS3AccountOwnerRequest = ListBucketsRequest.builder()
446+
.build();
447+
Owner owner3 = s3.listBuckets(getS3AccountOwnerRequest).owner();
448+
}
436449
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
/*
2+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License").
5+
* You may not use this file except in compliance with the License.
6+
* A copy of the License is located at
7+
*
8+
* http://aws.amazon.com/apache2.0
9+
*
10+
* or in the "license" file accompanying this file. This file is distributed
11+
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12+
* express or implied. See the License for the specific language governing
13+
* permissions and limitations under the License.
14+
*/
15+
16+
package foo.bar;
17+
18+
import java.util.Arrays;
19+
import software.amazon.awssdk.services.s3.model.AccelerateConfiguration;
20+
import software.amazon.awssdk.services.s3.model.Bucket;
21+
import software.amazon.awssdk.services.s3.model.CSVInput;
22+
import software.amazon.awssdk.services.s3.model.CSVOutput;
23+
import software.amazon.awssdk.services.s3.model.Condition;
24+
import software.amazon.awssdk.services.s3.model.Destination;
25+
import software.amazon.awssdk.services.s3.model.GetBucketVersioningResponse;
26+
import software.amazon.awssdk.services.s3.model.Grantee;
27+
import software.amazon.awssdk.services.s3.model.JSONInput;
28+
import software.amazon.awssdk.services.s3.model.JSONOutput;
29+
import software.amazon.awssdk.services.s3.model.ListMultipartUploadsResponse;
30+
import software.amazon.awssdk.services.s3.model.ListPartsResponse;
31+
import software.amazon.awssdk.services.s3.model.MetadataEntry;
32+
import software.amazon.awssdk.services.s3.model.Part;
33+
import software.amazon.awssdk.services.s3.model.RedirectAllRequestsTo;
34+
import software.amazon.awssdk.services.s3.model.S3Object;
35+
import software.amazon.awssdk.services.s3.model.Tag;
36+
37+
public class S3Pojos {
38+
39+
public void s3Pojos(String bucket, String key, String id, String value) {
40+
AccelerateConfiguration bucketAccelerateConfiguration = AccelerateConfiguration.builder().status("Enabled")
41+
.build();
42+
MetadataEntry metadataEntry = MetadataEntry.builder().name("name").value(value)
43+
.build();
44+
Tag tag = Tag.builder().key(key).value(value)
45+
.build();
46+
Grantee canonicalGrantee = Grantee.builder().id(id)
47+
.build();
48+
Grantee emailAddressGrantee = Grantee.builder().emailAddress(id)
49+
.build();
50+
CSVInput csvInput = CSVInput.builder()
51+
.build();
52+
CSVOutput csvOutput = CSVOutput.builder()
53+
.build();
54+
JSONInput jsonInput = JSONInput.builder()
55+
.build();
56+
JSONOutput jsonOutput = JSONOutput.builder()
57+
.build();
58+
ListMultipartUploadsResponse multipartUploadListing = ListMultipartUploadsResponse.builder()
59+
.build();
60+
ListPartsResponse partListing = ListPartsResponse.builder()
61+
.build();
62+
Part partSummary = Part.builder()
63+
.build();
64+
RedirectAllRequestsTo redirectRule = RedirectAllRequestsTo.builder()
65+
.build();
66+
Destination replicationDestinationConfig = Destination.builder()
67+
.build();
68+
Condition routingRuleCondition = Condition.builder()
69+
.build();
70+
S3Object s3ObjectSummary = S3Object.builder()
71+
.build();
72+
GetBucketVersioningResponse bucketVersioningConfiguration = GetBucketVersioningResponse.builder()
73+
.build();
74+
Bucket bucketPojo = Bucket.builder().name("name")
75+
.build();
76+
}
77+
}

test/v2-migration-tests/src/test/resources/software/amazon/awssdk/v2migrationtests/maven/after/src/main/java/foo/bar/S3RequestConstructor.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@
6767
import software.amazon.awssdk.services.s3.model.GetBucketPolicyStatusRequest;
6868
import software.amazon.awssdk.services.s3.model.GetBucketPolicyStatusResponse;
6969
import software.amazon.awssdk.services.s3.model.GetBucketReplicationRequest;
70+
import software.amazon.awssdk.services.s3.model.GetBucketRequestPaymentRequest;
7071
import software.amazon.awssdk.services.s3.model.GetBucketTaggingRequest;
7172
import software.amazon.awssdk.services.s3.model.GetBucketVersioningRequest;
7273
import software.amazon.awssdk.services.s3.model.GetBucketWebsiteRequest;
@@ -97,6 +98,7 @@
9798
import software.amazon.awssdk.services.s3.model.ListBucketsRequest;
9899
import software.amazon.awssdk.services.s3.model.ListObjectsRequest;
99100
import software.amazon.awssdk.services.s3.model.ListObjectsResponse;
101+
import software.amazon.awssdk.services.s3.model.ListPartsRequest;
100102
import software.amazon.awssdk.services.s3.model.MetricsConfiguration;
101103
import software.amazon.awssdk.services.s3.model.NotificationConfiguration;
102104
import software.amazon.awssdk.services.s3.model.OwnershipControls;
@@ -108,6 +110,7 @@
108110
import software.amazon.awssdk.services.s3.model.PutBucketReplicationRequest;
109111
import software.amazon.awssdk.services.s3.model.PutBucketTaggingRequest;
110112
import software.amazon.awssdk.services.s3.model.ReplicationConfiguration;
113+
import software.amazon.awssdk.services.s3.model.RestoreObjectRequest;
111114
import software.amazon.awssdk.services.s3.model.Tagging;
112115
import software.amazon.awssdk.services.s3.model.UploadPartCopyRequest;
113116

@@ -416,5 +419,17 @@ public void requestconstructor() {
416419
.build())
417420
.build());
418421

422+
DeleteObjectRequest deleteVersionRequest = DeleteObjectRequest.builder().bucket(bucketName).key(objectKey).versionId("id")
423+
.build();
424+
425+
ListPartsRequest listPartsRequest = ListPartsRequest.builder().bucket(bucketName).key(objectKey).uploadId("id")
426+
.build();
427+
428+
RestoreObjectRequest restoreObjectRequest = RestoreObjectRequest.builder().bucket(bucketName).key(objectKey)
429+
.build();
430+
431+
GetBucketRequestPaymentRequest getRequestPaymentConfigurationRequest =
432+
GetBucketRequestPaymentRequest.builder().bucket(bucketName)
433+
.build();
419434
}
420435
}

test/v2-migration-tests/src/test/resources/software/amazon/awssdk/v2migrationtests/maven/before/src/main/java/foo/bar/Enums.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
package foo.bar;
1717

18+
import com.amazonaws.services.s3.model.JSONType;
1819
import com.amazonaws.services.s3.model.S3Event;
1920
import com.amazonaws.services.s3.model.StorageClass;
2021
import com.amazonaws.services.sqs.model.QueueAttributeName;
@@ -29,18 +30,18 @@ public class Enums {
2930
public static void main(String... args) {
3031
QueueAttributeName qan = QueueAttributeName.DelaySeconds;
3132
QueueAttributeName qan2 = QueueAttributeName.All;
32-
StorageClass sc1 = StorageClass.StandardInfrequentAccess;
33-
StorageClass sc2 = StorageClass.OneZoneInfrequentAccess;
34-
S3Event se = S3Event.ObjectCreated;
35-
System.out.println(qan);
36-
System.out.println(qan2);
3733

3834
ReceiveMessageRequest v1Request = new ReceiveMessageRequest();
3935
List<String> attributes = v1Request.getAttributeNames();
40-
System.out.println(attributes);
4136

4237
SendMessageRequest v2Request = SendMessageRequest.builder().build();
4338
Map<String, MessageAttributeValue> messageAttributes = v2Request.messageAttributes();
44-
System.out.println(messageAttributes);
39+
}
40+
41+
public void s3Enums() {
42+
StorageClass sc1 = StorageClass.StandardInfrequentAccess;
43+
StorageClass sc2 = StorageClass.OneZoneInfrequentAccess;
44+
S3Event se = S3Event.ObjectCreated;
45+
JSONType jsonType = JSONType.DOCUMENT;
4546
}
4647
}

test/v2-migration-tests/src/test/resources/software/amazon/awssdk/v2migrationtests/maven/before/src/main/java/foo/bar/S3.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import com.amazonaws.services.s3.model.GetBucketCrossOriginConfigurationRequest;
3939
import com.amazonaws.services.s3.model.GetObjectMetadataRequest;
4040
import com.amazonaws.services.s3.model.GetObjectRequest;
41+
import com.amazonaws.services.s3.model.GetS3AccountOwnerRequest;
4142
import com.amazonaws.services.s3.model.HeadBucketRequest;
4243
import com.amazonaws.services.s3.model.HeadBucketResult;
4344
import com.amazonaws.services.s3.model.InitiateMultipartUploadRequest;
@@ -47,6 +48,7 @@
4748
import com.amazonaws.services.s3.model.ListObjectsV2Result;
4849
import com.amazonaws.services.s3.model.ObjectListing;
4950
import com.amazonaws.services.s3.model.ObjectMetadata;
51+
import com.amazonaws.services.s3.model.Owner;
5052
import com.amazonaws.services.s3.model.PartETag;
5153
import com.amazonaws.services.s3.model.SetBucketCrossOriginConfigurationRequest;
5254
import com.amazonaws.services.s3.model.SetBucketLifecycleConfigurationRequest;
@@ -272,4 +274,13 @@ private void generatePresignedUrl(AmazonS3 s3, String bucket, String key, Date e
272274

273275
URL urlDelete = s3.generatePresignedUrl(bucket, key, expiration, HttpMethod.DELETE);
274276
}
277+
278+
private void getS3AccountOwner(AmazonS3 s3) {
279+
Owner owner = s3.getS3AccountOwner();
280+
281+
Owner owner2 = s3.getS3AccountOwner(new GetS3AccountOwnerRequest());
282+
283+
GetS3AccountOwnerRequest getS3AccountOwnerRequest = new GetS3AccountOwnerRequest();
284+
Owner owner3 = s3.getS3AccountOwner(getS3AccountOwnerRequest);
285+
}
275286
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/*
2+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License").
5+
* You may not use this file except in compliance with the License.
6+
* A copy of the License is located at
7+
*
8+
* http://aws.amazon.com/apache2.0
9+
*
10+
* or in the "license" file accompanying this file. This file is distributed
11+
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12+
* express or implied. See the License for the specific language governing
13+
* permissions and limitations under the License.
14+
*/
15+
16+
package foo.bar;
17+
18+
import com.amazonaws.services.s3.model.Bucket;
19+
import com.amazonaws.services.s3.model.BucketAccelerateConfiguration;
20+
import com.amazonaws.services.s3.model.BucketVersioningConfiguration;
21+
import com.amazonaws.services.s3.model.CSVInput;
22+
import com.amazonaws.services.s3.model.CSVOutput;
23+
import com.amazonaws.services.s3.model.CanonicalGrantee;
24+
import com.amazonaws.services.s3.model.EmailAddressGrantee;
25+
import com.amazonaws.services.s3.model.JSONInput;
26+
import com.amazonaws.services.s3.model.JSONOutput;
27+
import com.amazonaws.services.s3.model.MetadataEntry;
28+
import com.amazonaws.services.s3.model.MultipartUploadListing;
29+
import com.amazonaws.services.s3.model.PartListing;
30+
import com.amazonaws.services.s3.model.PartSummary;
31+
import com.amazonaws.services.s3.model.RedirectRule;
32+
import com.amazonaws.services.s3.model.ReplicationDestinationConfig;
33+
import com.amazonaws.services.s3.model.RoutingRuleCondition;
34+
import com.amazonaws.services.s3.model.S3ObjectSummary;
35+
import com.amazonaws.services.s3.model.Tag;
36+
import java.util.Arrays;
37+
38+
public class S3Pojos {
39+
40+
public void s3Pojos(String bucket, String key, String id, String value) {
41+
BucketAccelerateConfiguration bucketAccelerateConfiguration = new BucketAccelerateConfiguration("Enabled");
42+
MetadataEntry metadataEntry = new MetadataEntry("name", value);
43+
Tag tag = new Tag(key, value);
44+
CanonicalGrantee canonicalGrantee = new CanonicalGrantee(id);
45+
EmailAddressGrantee emailAddressGrantee = new EmailAddressGrantee(id);
46+
CSVInput csvInput = new CSVInput();
47+
CSVOutput csvOutput = new CSVOutput();
48+
JSONInput jsonInput = new JSONInput();
49+
JSONOutput jsonOutput = new JSONOutput();
50+
MultipartUploadListing multipartUploadListing = new MultipartUploadListing();
51+
PartListing partListing = new PartListing();
52+
PartSummary partSummary = new PartSummary();
53+
RedirectRule redirectRule = new RedirectRule();
54+
ReplicationDestinationConfig replicationDestinationConfig = new ReplicationDestinationConfig();
55+
RoutingRuleCondition routingRuleCondition = new RoutingRuleCondition();
56+
S3ObjectSummary s3ObjectSummary = new S3ObjectSummary();
57+
BucketVersioningConfiguration bucketVersioningConfiguration = new BucketVersioningConfiguration();
58+
Bucket bucketPojo = new Bucket("name");
59+
}
60+
}

test/v2-migration-tests/src/test/resources/software/amazon/awssdk/v2migrationtests/maven/before/src/main/java/foo/bar/S3RequestConstructor.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import com.amazonaws.services.s3.model.DeleteObjectTaggingRequest;
4545
import com.amazonaws.services.s3.model.DeleteObjectsRequest;
4646
import com.amazonaws.services.s3.model.DeletePublicAccessBlockRequest;
47+
import com.amazonaws.services.s3.model.DeleteVersionRequest;
4748
import com.amazonaws.services.s3.model.GetBucketAccelerateConfigurationRequest;
4849
import com.amazonaws.services.s3.model.GetBucketAclRequest;
4950
import com.amazonaws.services.s3.model.GetBucketAnalyticsConfigurationRequest;
@@ -83,6 +84,7 @@
8384
import com.amazonaws.services.s3.model.GetObjectTaggingResult;
8485
import com.amazonaws.services.s3.model.GetPublicAccessBlockRequest;
8586
import com.amazonaws.services.s3.model.GetPublicAccessBlockResult;
87+
import com.amazonaws.services.s3.model.GetRequestPaymentConfigurationRequest;
8688
import com.amazonaws.services.s3.model.HeadBucketRequest;
8789
import com.amazonaws.services.s3.model.ListBucketAnalyticsConfigurationsRequest;
8890
import com.amazonaws.services.s3.model.ListBucketAnalyticsConfigurationsResult;
@@ -94,8 +96,10 @@
9496
import com.amazonaws.services.s3.model.ListBucketMetricsConfigurationsResult;
9597
import com.amazonaws.services.s3.model.ListBucketsRequest;
9698
import com.amazonaws.services.s3.model.ListObjectsRequest;
99+
import com.amazonaws.services.s3.model.ListPartsRequest;
97100
import com.amazonaws.services.s3.model.ObjectListing;
98101
import com.amazonaws.services.s3.model.ObjectMetadata;
102+
import com.amazonaws.services.s3.model.RestoreObjectRequest;
99103
import com.amazonaws.services.s3.model.S3Object;
100104
import com.amazonaws.services.s3.model.SetBucketAnalyticsConfigurationRequest;
101105
import com.amazonaws.services.s3.model.SetBucketLifecycleConfigurationRequest;
@@ -332,5 +336,13 @@ public void requestconstructor() {
332336
s3.setBucketTaggingConfiguration(
333337
new SetBucketTaggingConfigurationRequest(bucketName,new BucketTaggingConfiguration()));
334338

339+
DeleteVersionRequest deleteVersionRequest = new DeleteVersionRequest(bucketName, objectKey, "id");
340+
341+
ListPartsRequest listPartsRequest = new ListPartsRequest(bucketName, objectKey, "id");
342+
343+
RestoreObjectRequest restoreObjectRequest = new RestoreObjectRequest(bucketName, objectKey);
344+
345+
GetRequestPaymentConfigurationRequest getRequestPaymentConfigurationRequest =
346+
new GetRequestPaymentConfigurationRequest(bucketName);
335347
}
336348
}

v2-migration/src/main/java/software/amazon/awssdk/v2migration/ChangeSdkType.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import static software.amazon.awssdk.v2migration.internal.utils.SdkTypeUtils.isSupportedV1Class;
2121
import static software.amazon.awssdk.v2migration.internal.utils.SdkTypeUtils.isSupportedV1ClientClass;
2222
import static software.amazon.awssdk.v2migration.internal.utils.SdkTypeUtils.isV1ClientClass;
23+
import static software.amazon.awssdk.v2migration.internal.utils.SdkTypeUtils.shouldSkip;
2324

2425
import java.util.ArrayList;
2526
import java.util.HashSet;
@@ -120,6 +121,10 @@ public J visitImport(J.Import anImport, ExecutionContext ctx) {
120121
return anImport;
121122
}
122123

124+
if (shouldSkip(fullyQualified.getFullyQualifiedName())) {
125+
return anImport;
126+
}
127+
123128
String currentFqcn = fullyQualified.getFullyQualifiedName();
124129

125130
if (isSupportedV1Class(fullyQualified)) {
@@ -316,7 +321,8 @@ public J visitIdentifier(J.Identifier ident, ExecutionContext ctx) {
316321
}
317322

318323
private void storeV1ClassMetadata(String currentFqcn) {
319-
if (oldTypeToNewType.containsKey(currentFqcn)) {
324+
if (oldTypeToNewType.containsKey(currentFqcn)
325+
|| shouldSkip(currentFqcn)) {
320326
return;
321327
}
322328

0 commit comments

Comments
 (0)