Skip to content

Commit 0bd70c7

Browse files
authored
Migration tool S3 recipes (#5901)
1 parent 2256f06 commit 0bd70c7

File tree

8 files changed

+694
-42
lines changed

8 files changed

+694
-42
lines changed

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

Lines changed: 107 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,19 @@
1515

1616
package foo.bar;
1717

18+
import java.util.List;
1819
import software.amazon.awssdk.services.s3.S3Client;
20+
import software.amazon.awssdk.services.s3.model.AbortMultipartUploadRequest;
21+
import software.amazon.awssdk.services.s3.model.AccelerateConfiguration;
22+
import software.amazon.awssdk.services.s3.model.AnalyticsConfiguration;
23+
import software.amazon.awssdk.services.s3.model.Bucket;
24+
import software.amazon.awssdk.services.s3.model.BucketAccelerateStatus;
25+
import software.amazon.awssdk.services.s3.model.BucketLifecycleConfiguration;
1926
import software.amazon.awssdk.services.s3.model.CORSConfiguration;
2027
import software.amazon.awssdk.services.s3.model.CORSRule;
28+
import software.amazon.awssdk.services.s3.model.CompletedPart;
2129
import software.amazon.awssdk.services.s3.model.CopyObjectRequest;
30+
import software.amazon.awssdk.services.s3.model.CreateBucketConfiguration;
2231
import software.amazon.awssdk.services.s3.model.CreateBucketRequest;
2332
import software.amazon.awssdk.services.s3.model.CreateMultipartUploadRequest;
2433
import software.amazon.awssdk.services.s3.model.CreateMultipartUploadResponse;
@@ -60,19 +69,40 @@
6069
import software.amazon.awssdk.services.s3.model.HeadBucketResponse;
6170
import software.amazon.awssdk.services.s3.model.HeadObjectRequest;
6271
import software.amazon.awssdk.services.s3.model.HeadObjectResponse;
72+
import software.amazon.awssdk.services.s3.model.IntelligentTieringConfiguration;
73+
import software.amazon.awssdk.services.s3.model.InventoryConfiguration;
6374
import software.amazon.awssdk.services.s3.model.ListObjectVersionsRequest;
6475
import software.amazon.awssdk.services.s3.model.ListObjectsRequest;
6576
import software.amazon.awssdk.services.s3.model.ListObjectsResponse;
6677
import software.amazon.awssdk.services.s3.model.ListObjectsV2Request;
6778
import software.amazon.awssdk.services.s3.model.ListObjectsV2Response;
68-
import software.amazon.awssdk.services.s3.model.MetadataDirective;
79+
import software.amazon.awssdk.services.s3.model.MetricsConfiguration;
80+
import software.amazon.awssdk.services.s3.model.NotificationConfiguration;
81+
import software.amazon.awssdk.services.s3.model.OwnershipControls;
6982
import software.amazon.awssdk.services.s3.model.Payer;
83+
import software.amazon.awssdk.services.s3.model.PutBucketAccelerateConfigurationRequest;
84+
import software.amazon.awssdk.services.s3.model.PutBucketAnalyticsConfigurationRequest;
7085
import software.amazon.awssdk.services.s3.model.PutBucketCorsRequest;
86+
import software.amazon.awssdk.services.s3.model.PutBucketIntelligentTieringConfigurationRequest;
87+
import software.amazon.awssdk.services.s3.model.PutBucketInventoryConfigurationRequest;
88+
import software.amazon.awssdk.services.s3.model.PutBucketLifecycleConfigurationRequest;
89+
import software.amazon.awssdk.services.s3.model.PutBucketMetricsConfigurationRequest;
90+
import software.amazon.awssdk.services.s3.model.PutBucketNotificationConfigurationRequest;
91+
import software.amazon.awssdk.services.s3.model.PutBucketOwnershipControlsRequest;
7192
import software.amazon.awssdk.services.s3.model.PutBucketPolicyRequest;
93+
import software.amazon.awssdk.services.s3.model.PutBucketReplicationRequest;
7294
import software.amazon.awssdk.services.s3.model.PutBucketRequestPaymentRequest;
95+
import software.amazon.awssdk.services.s3.model.PutBucketTaggingRequest;
96+
import software.amazon.awssdk.services.s3.model.PutBucketWebsiteRequest;
97+
import software.amazon.awssdk.services.s3.model.ReplicationConfiguration;
7398
import software.amazon.awssdk.services.s3.model.RequestPaymentConfiguration;
7499
import software.amazon.awssdk.services.s3.model.RestoreObjectRequest;
75100
import software.amazon.awssdk.services.s3.model.RestoreRequest;
101+
import software.amazon.awssdk.services.s3.model.StorageClass;
102+
import software.amazon.awssdk.services.s3.model.Tagging;
103+
import software.amazon.awssdk.services.s3.model.UploadPartCopyRequest;
104+
import software.amazon.awssdk.services.s3.model.UploadPartCopyResponse;
105+
import software.amazon.awssdk.services.s3.model.WebsiteConfiguration;
76106

77107
public class S3 {
78108

@@ -99,7 +129,7 @@ private void deleteBucket(S3Client s3, String bucket) {
99129
s3.deleteBucket(deleteBucketRequest);
100130
}
101131

102-
private void getObjectMetaData_to_headObject(S3Client s3, String bucket, String key) {
132+
private void getObjectMetaData_to_headObject(S3Client s3) {
103133
HeadObjectRequest getObjectMetadataRequest = HeadObjectRequest.builder().bucket("bucket").key("key")
104134
.build();
105135
HeadObjectResponse objectMetadata = s3.headObject(getObjectMetadataRequest);
@@ -127,11 +157,19 @@ private void listObjectsV2(S3Client s3, String bucket) {
127157
System.out.println(listObjectsV2Result);
128158
}
129159

160+
private void copyPart(S3Client s3) {
161+
UploadPartCopyRequest copyPartRequest = UploadPartCopyRequest.builder().sourceBucket("sourceBucket").sourceKey("sourceKey").destinationBucket("desBucket").destinationKey("desKey")
162+
.build();
163+
UploadPartCopyResponse copyPartResult = s3.uploadPartCopy(copyPartRequest);
164+
}
165+
130166
private void cors(S3Client s3, String bucket) {
131167
CORSRule corsRule = CORSRule.builder().id("id").maxAgeSeconds(99)
132168
.build();
133169
CORSConfiguration cors = CORSConfiguration.builder().corsRules(corsRule)
134170
.build();
171+
s3.putBucketCors(PutBucketCorsRequest.builder().bucket("bucket").corsConfiguration(cors)
172+
.build());
135173
PutBucketCorsRequest setBucketCrossOriginConfigurationRequest =
136174
PutBucketCorsRequest.builder().bucket(bucket).corsConfiguration(cors)
137175
.build();
@@ -243,6 +281,16 @@ private void bucketPrefixArgsMethods(S3Client s3, String bucket, String prefix)
243281
.build());
244282
}
245283

284+
private void enumArgMethods(S3Client s3) {
285+
AccelerateConfiguration accelerateConfig = AccelerateConfiguration.builder().status(BucketAccelerateStatus.SUSPENDED)
286+
.build();
287+
s3.putBucketAccelerateConfiguration(PutBucketAccelerateConfigurationRequest.builder().bucket("bucket").accelerateConfiguration(accelerateConfig)
288+
.build());
289+
290+
StorageClass storageClass = StorageClass.DEEP_ARCHIVE;
291+
s3.copyObject(CopyObjectRequest.builder().sourceBucket("bucket").sourceKey("key").destinationBucket("bucket").destinationKey("key").storageClass(storageClass).build());
292+
}
293+
246294
private void variousMethods(S3Client s3) {
247295
s3.deleteObject(DeleteObjectRequest.builder().bucket("bucket").key("key").versionId("versionId")
248296
.build());
@@ -252,9 +300,63 @@ private void variousMethods(S3Client s3) {
252300
.build());
253301
s3.putBucketPolicy(PutBucketPolicyRequest.builder().bucket("bucket").policy("policyText")
254302
.build());
255-
256-
s3.listBuckets().buckets();
257303
s3.restoreObject(RestoreObjectRequest.builder().bucket("bucket").key("key").restoreRequest(RestoreRequest.builder().days(98).build()).build());
258-
s3.copyObject(CopyObjectRequest.builder().sourceBucket("bucket").sourceKey("key").destinationBucket("bucket").destinationKey("key").metadataDirective(MetadataDirective.REPLACE).websiteRedirectLocation("redirectLocation").build());
304+
s3.copyObject(CopyObjectRequest.builder().sourceBucket("bucket").sourceKey("key").destinationBucket("bucket").destinationKey("key").websiteRedirectLocation("redirectLocation").build());
305+
s3.createBucket(CreateBucketRequest.builder().bucket("bucket").createBucketConfiguration(CreateBucketConfiguration.builder().locationConstraint("us-west-2").build()).build());
306+
s3.getObjectAcl(GetObjectAclRequest.builder().bucket("bucket").key("key").versionId("versionId")
307+
.build());
308+
List<Bucket> buckets = s3.listBuckets().buckets();
309+
}
310+
311+
private void pojosWithConstructorArgs(String bucket) {
312+
AbortMultipartUploadRequest abortMultipartUploadRequest = AbortMultipartUploadRequest.builder().bucket(bucket).key("key").uploadId("versionId")
313+
.build();
314+
PutBucketLifecycleConfigurationRequest lifecycleRequest = PutBucketLifecycleConfigurationRequest.builder().bucket(bucket).lifecycleConfiguration(BucketLifecycleConfiguration.builder()
315+
.build())
316+
.build();
317+
PutBucketNotificationConfigurationRequest notificationRequest = PutBucketNotificationConfigurationRequest.builder().bucket(bucket).notificationConfiguration(NotificationConfiguration.builder()
318+
.build())
319+
.build();
320+
PutBucketTaggingRequest tagRequest = PutBucketTaggingRequest.builder().bucket(bucket).tagging(Tagging.builder()
321+
.build())
322+
.build();
323+
PutBucketWebsiteRequest websiteRequest = PutBucketWebsiteRequest.builder().bucket(bucket).websiteConfiguration(WebsiteConfiguration.builder()
324+
.build())
325+
.build();
326+
CompletedPart partETag = CompletedPart.builder().partNumber(7).eTag("etag")
327+
.build();
328+
}
329+
330+
private void setBucketConfigs(S3Client s3, String bucket) {
331+
s3.putBucketAnalyticsConfiguration(PutBucketAnalyticsConfigurationRequest.builder().bucket(bucket).analyticsConfiguration(AnalyticsConfiguration.builder()
332+
.build())
333+
.build());
334+
s3.putBucketIntelligentTieringConfiguration(PutBucketIntelligentTieringConfigurationRequest.builder().bucket(bucket).intelligentTieringConfiguration(IntelligentTieringConfiguration.builder()
335+
.build())
336+
.build());
337+
s3.putBucketInventoryConfiguration(PutBucketInventoryConfigurationRequest.builder().bucket(bucket).inventoryConfiguration(InventoryConfiguration.builder()
338+
.build())
339+
.build());
340+
s3.putBucketLifecycleConfiguration(PutBucketLifecycleConfigurationRequest.builder().bucket(bucket).lifecycleConfiguration(BucketLifecycleConfiguration.builder()
341+
.build())
342+
.build());
343+
s3.putBucketMetricsConfiguration(PutBucketMetricsConfigurationRequest.builder().bucket(bucket).metricsConfiguration(MetricsConfiguration.builder()
344+
.build())
345+
.build());
346+
s3.putBucketNotificationConfiguration(PutBucketNotificationConfigurationRequest.builder().bucket(bucket).notificationConfiguration(NotificationConfiguration.builder()
347+
.build())
348+
.build());
349+
s3.putBucketOwnershipControls(PutBucketOwnershipControlsRequest.builder().bucket(bucket).ownershipControls(OwnershipControls.builder()
350+
.build())
351+
.build());
352+
s3.putBucketReplication(PutBucketReplicationRequest.builder().bucket(bucket).replicationConfiguration(ReplicationConfiguration.builder()
353+
.build())
354+
.build());
355+
s3.putBucketTagging(PutBucketTaggingRequest.builder().bucket(bucket).tagging(Tagging.builder()
356+
.build())
357+
.build());
358+
s3.putBucketWebsite(PutBucketWebsiteRequest.builder().bucket(bucket).websiteConfiguration(WebsiteConfiguration.builder()
359+
.build())
360+
.build());
259361
}
260362
}

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

Lines changed: 63 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,19 @@
1616
package foo.bar;
1717

1818
import com.amazonaws.services.s3.AmazonS3;
19+
import com.amazonaws.services.s3.model.AbortMultipartUploadRequest;
20+
import com.amazonaws.services.s3.model.Bucket;
21+
import com.amazonaws.services.s3.model.BucketAccelerateConfiguration;
22+
import com.amazonaws.services.s3.model.BucketAccelerateStatus;
1923
import com.amazonaws.services.s3.model.BucketCrossOriginConfiguration;
24+
import com.amazonaws.services.s3.model.BucketLifecycleConfiguration;
25+
import com.amazonaws.services.s3.model.BucketNotificationConfiguration;
26+
import com.amazonaws.services.s3.model.BucketReplicationConfiguration;
27+
import com.amazonaws.services.s3.model.BucketTaggingConfiguration;
28+
import com.amazonaws.services.s3.model.BucketWebsiteConfiguration;
2029
import com.amazonaws.services.s3.model.CORSRule;
30+
import com.amazonaws.services.s3.model.CopyPartRequest;
31+
import com.amazonaws.services.s3.model.CopyPartResult;
2132
import com.amazonaws.services.s3.model.CreateBucketRequest;
2233
import com.amazonaws.services.s3.model.DeleteBucketCrossOriginConfigurationRequest;
2334
import com.amazonaws.services.s3.model.DeleteBucketRequest;
@@ -32,7 +43,19 @@
3243
import com.amazonaws.services.s3.model.ListObjectsV2Result;
3344
import com.amazonaws.services.s3.model.ObjectListing;
3445
import com.amazonaws.services.s3.model.ObjectMetadata;
46+
import com.amazonaws.services.s3.model.PartETag;
3547
import com.amazonaws.services.s3.model.SetBucketCrossOriginConfigurationRequest;
48+
import com.amazonaws.services.s3.model.SetBucketLifecycleConfigurationRequest;
49+
import com.amazonaws.services.s3.model.SetBucketNotificationConfigurationRequest;
50+
import com.amazonaws.services.s3.model.SetBucketTaggingConfigurationRequest;
51+
import com.amazonaws.services.s3.model.SetBucketWebsiteConfigurationRequest;
52+
import com.amazonaws.services.s3.model.StorageClass;
53+
import com.amazonaws.services.s3.model.analytics.AnalyticsConfiguration;
54+
import com.amazonaws.services.s3.model.intelligenttiering.IntelligentTieringConfiguration;
55+
import com.amazonaws.services.s3.model.inventory.InventoryConfiguration;
56+
import com.amazonaws.services.s3.model.metrics.MetricsConfiguration;
57+
import com.amazonaws.services.s3.model.ownership.OwnershipControls;
58+
import java.util.List;
3659

3760
public class S3 {
3861

@@ -56,7 +79,7 @@ private void deleteBucket(AmazonS3 s3, String bucket) {
5679
s3.deleteBucket(deleteBucketRequest);
5780
}
5881

59-
private void getObjectMetaData_to_headObject(AmazonS3 s3, String bucket, String key) {
82+
private void getObjectMetaData_to_headObject(AmazonS3 s3) {
6083
GetObjectMetadataRequest getObjectMetadataRequest = new GetObjectMetadataRequest("bucket", "key");
6184
ObjectMetadata objectMetadata = s3.getObjectMetadata(getObjectMetadataRequest);
6285
System.out.println(objectMetadata);
@@ -80,9 +103,15 @@ private void listObjectsV2(AmazonS3 s3, String bucket) {
80103
System.out.println(listObjectsV2Result);
81104
}
82105

106+
private void copyPart(AmazonS3 s3) {
107+
CopyPartRequest copyPartRequest = new CopyPartRequest().withSourceBucketName("sourceBucket").withSourceKey("sourceKey").withDestinationBucketName("desBucket").withDestinationKey("desKey");
108+
CopyPartResult copyPartResult = s3.copyPart(copyPartRequest);
109+
}
110+
83111
private void cors(AmazonS3 s3, String bucket) {
84112
CORSRule corsRule = new CORSRule().withId("id").withMaxAgeSeconds(99);
85113
BucketCrossOriginConfiguration cors = new BucketCrossOriginConfiguration().withRules(corsRule);
114+
s3.setBucketCrossOriginConfiguration("bucket", cors);
86115
SetBucketCrossOriginConfigurationRequest setBucketCrossOriginConfigurationRequest =
87116
new SetBucketCrossOriginConfigurationRequest(bucket, cors);
88117
s3.setBucketCrossOriginConfiguration(setBucketCrossOriginConfigurationRequest);
@@ -152,14 +181,45 @@ private void bucketPrefixArgsMethods(AmazonS3 s3, String bucket, String prefix)
152181
s3.listVersions(bucket, prefix);
153182
}
154183

184+
private void enumArgMethods(AmazonS3 s3) {
185+
BucketAccelerateConfiguration accelerateConfig = new BucketAccelerateConfiguration(BucketAccelerateStatus.Suspended);
186+
s3.setBucketAccelerateConfiguration("bucket", accelerateConfig);
187+
188+
StorageClass storageClass = StorageClass.DeepArchive;
189+
s3.changeObjectStorageClass("bucket", "key", storageClass);
190+
}
191+
155192
private void variousMethods(AmazonS3 s3) {
156193
s3.deleteVersion("bucket", "key", "versionId");
157194
s3.copyObject("sourceBucket", "sourceKey", "destBucket", "destKey");
158195
s3.listVersions("bucket", "prefix", "keyMarker", "versionId", "delimiter", 22);
159196
s3.setBucketPolicy("bucket", "policyText");
160-
161-
s3.listBuckets();
162197
s3.restoreObject("bucket", "key", 98);
163198
s3.setObjectRedirectLocation("bucket", "key", "redirectLocation");
199+
s3.createBucket("bucket", "us-west-2");
200+
s3.getObjectAcl("bucket", "key", "versionId");
201+
List<Bucket> buckets = s3.listBuckets();
202+
}
203+
204+
private void pojosWithConstructorArgs(String bucket) {
205+
AbortMultipartUploadRequest abortMultipartUploadRequest = new AbortMultipartUploadRequest(bucket, "key", "versionId");
206+
SetBucketLifecycleConfigurationRequest lifecycleRequest = new SetBucketLifecycleConfigurationRequest(bucket, new BucketLifecycleConfiguration());
207+
SetBucketNotificationConfigurationRequest notificationRequest = new SetBucketNotificationConfigurationRequest(bucket, new BucketNotificationConfiguration());
208+
SetBucketTaggingConfigurationRequest tagRequest = new SetBucketTaggingConfigurationRequest(bucket, new BucketTaggingConfiguration());
209+
SetBucketWebsiteConfigurationRequest websiteRequest = new SetBucketWebsiteConfigurationRequest(bucket, new BucketWebsiteConfiguration());
210+
PartETag partETag = new PartETag(7, "etag");
211+
}
212+
213+
private void setBucketConfigs(AmazonS3 s3, String bucket) {
214+
s3.setBucketAnalyticsConfiguration(bucket, new AnalyticsConfiguration());
215+
s3.setBucketIntelligentTieringConfiguration(bucket, new IntelligentTieringConfiguration());
216+
s3.setBucketInventoryConfiguration(bucket, new InventoryConfiguration());
217+
s3.setBucketLifecycleConfiguration(bucket, new BucketLifecycleConfiguration());
218+
s3.setBucketMetricsConfiguration(bucket, new MetricsConfiguration());
219+
s3.setBucketNotificationConfiguration(bucket, new BucketNotificationConfiguration());
220+
s3.setBucketOwnershipControls(bucket, new OwnershipControls());
221+
s3.setBucketReplicationConfiguration(bucket, new BucketReplicationConfiguration());
222+
s3.setBucketTaggingConfiguration(bucket, new BucketTaggingConfiguration());
223+
s3.setBucketWebsiteConfiguration(bucket, new BucketWebsiteConfiguration());
164224
}
165225
}

0 commit comments

Comments
 (0)