Skip to content

Commit 6aaec97

Browse files
authored
A couple of minor refactoring on the S3TransferManager (#2997)
1 parent ad1d782 commit 6aaec97

File tree

8 files changed

+23
-37
lines changed

8 files changed

+23
-37
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"category": "S3 Transfer Manager",
3+
"contributor": "",
4+
"type": "bugfix",
5+
"description": "A couple of minor refactoring on the S3TransferManager. 1. `CompletedDirectoryUpload#failedTransfers` now returns `List<FailedFileUpload>` instead of `Collection<FailedFileUpload>`. 2. `UploadDirectoryOverrideConfiguration#uploadFileRequestTransformer` now returns `Consumer<UploadFileRequest.Builder>` instead of `Optional<Consumer<UploadFileRequest.Builder>>` it will be no-op if no uploadFileRequestTransformer is provided"
6+
}

services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/CompletedDirectoryDownload.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.util.ArrayList;
1919
import java.util.Collection;
2020
import java.util.Collections;
21+
import java.util.List;
2122
import java.util.Objects;
2223
import software.amazon.awssdk.annotations.SdkPreviewApi;
2324
import software.amazon.awssdk.annotations.SdkPublicApi;
@@ -38,15 +39,15 @@ public final class CompletedDirectoryDownload implements CompletedDirectoryTrans
3839
ToCopyableBuilder<CompletedDirectoryDownload.Builder,
3940
CompletedDirectoryDownload> {
4041

41-
private final Collection<FailedFileDownload> failedTransfers;
42+
private final List<FailedFileDownload> failedTransfers;
4243

4344
private CompletedDirectoryDownload(DefaultBuilder builder) {
44-
this.failedTransfers = Collections.unmodifiableCollection(
45+
this.failedTransfers = Collections.unmodifiableList(
4546
new ArrayList<>(Validate.paramNotNull(builder.failedTransfers, "failedTransfers")));
4647
}
4748

4849
@Override
49-
public Collection<FailedFileDownload> failedTransfers() {
50+
public List<FailedFileDownload> failedTransfers() {
5051
return failedTransfers;
5152
}
5253

services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/CompletedDirectoryTransfer.java

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

1616
package software.amazon.awssdk.transfer.s3;
1717

18-
import java.util.Collection;
18+
import java.util.List;
1919
import software.amazon.awssdk.annotations.SdkPreviewApi;
2020
import software.amazon.awssdk.annotations.SdkPublicApi;
2121

@@ -34,5 +34,5 @@ public interface CompletedDirectoryTransfer extends CompletedTransfer {
3434
*
3535
* @return an immutable list of failed transfers
3636
*/
37-
Collection<? extends FailedObjectTransfer> failedTransfers();
37+
List<? extends FailedObjectTransfer> failedTransfers();
3838
}

services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/CompletedDirectoryUpload.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.util.ArrayList;
1919
import java.util.Collection;
2020
import java.util.Collections;
21+
import java.util.List;
2122
import java.util.Objects;
2223
import software.amazon.awssdk.annotations.SdkPreviewApi;
2324
import software.amazon.awssdk.annotations.SdkPublicApi;
@@ -38,15 +39,15 @@ public final class CompletedDirectoryUpload implements CompletedDirectoryTransfe
3839
ToCopyableBuilder<CompletedDirectoryUpload.Builder,
3940
CompletedDirectoryUpload> {
4041

41-
private final Collection<FailedFileUpload> failedTransfers;
42+
private final List<FailedFileUpload> failedTransfers;
4243

4344
private CompletedDirectoryUpload(DefaultBuilder builder) {
44-
this.failedTransfers = Collections.unmodifiableCollection(
45+
this.failedTransfers = Collections.unmodifiableList(
4546
new ArrayList<>(Validate.paramNotNull(builder.failedTransfers, "failedTransfers")));
4647
}
4748

4849
@Override
49-
public Collection<FailedFileUpload> failedTransfers() {
50+
public List<FailedFileUpload> failedTransfers() {
5051
return failedTransfers;
5152
}
5253

services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/DownloadDirectoryOverrideConfiguration.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
package software.amazon.awssdk.transfer.s3;
1717

1818
import java.util.Objects;
19-
import java.util.Optional;
2019
import java.util.function.Consumer;
2120
import software.amazon.awssdk.annotations.SdkPreviewApi;
2221
import software.amazon.awssdk.annotations.SdkPublicApi;
@@ -45,11 +44,11 @@ private DownloadDirectoryOverrideConfiguration(DefaultBuilder builder) {
4544
}
4645

4746
/**
48-
* @return the optional download request transformer
47+
* @return the download request transformer if not null, otherwise no-op
4948
* @see DownloadDirectoryOverrideConfiguration.Builder#downloadFileRequestTransformer(Consumer)
5049
*/
51-
public Optional<Consumer<DownloadFileRequest.Builder>> downloadFileRequestTransformer() {
52-
return Optional.ofNullable(downloadFileRequestTransformer);
50+
public Consumer<DownloadFileRequest.Builder> downloadFileRequestTransformer() {
51+
return downloadFileRequestTransformer == null ? ignore -> { } : downloadFileRequestTransformer;
5352
}
5453

5554
@Override

services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/UploadDirectoryOverrideConfiguration.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,11 @@ public Optional<Boolean> recursive() {
7575
}
7676

7777
/**
78-
* @return the optional upload request transformer
78+
* @return the upload request transformer if not null, otherwise no-op
7979
* @see UploadDirectoryOverrideConfiguration.Builder#uploadFileRequestTransformer(Consumer)
8080
*/
81-
public Optional<Consumer<UploadFileRequest.Builder>> uploadFileRequestTransformer() {
82-
return Optional.ofNullable(uploadFileRequestTransformer);
81+
public Consumer<UploadFileRequest.Builder> uploadFileRequestTransformer() {
82+
return uploadFileRequestTransformer == null ? ignore -> { } : uploadFileRequestTransformer;
8383
}
8484

8585
@Override

services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/UploadDirectoryHelper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ private UploadFileRequest constructUploadRequest(UploadDirectoryRequest uploadDi
237237
.putObjectRequest(putObjectRequest);
238238

239239
uploadDirectoryRequest.overrideConfiguration()
240-
.flatMap(UploadDirectoryOverrideConfiguration::uploadFileRequestTransformer)
240+
.map(UploadDirectoryOverrideConfiguration::uploadFileRequestTransformer)
241241
.ifPresent(c -> c.accept(requestBuilder));
242242

243243
return requestBuilder.build();

services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/DownloadDirectoryOverrideConfigurationTest.java

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -15,32 +15,11 @@
1515

1616
package software.amazon.awssdk.transfer.s3;
1717

18-
19-
import static org.assertj.core.api.Assertions.assertThat;
20-
21-
import java.nio.file.Paths;
2218
import nl.jqno.equalsverifier.EqualsVerifier;
2319
import org.junit.jupiter.api.Test;
2420

2521
class DownloadDirectoryOverrideConfigurationTest {
2622

27-
@Test
28-
void defaultBuilder() {
29-
DownloadDirectoryOverrideConfiguration configuration =
30-
DownloadDirectoryOverrideConfiguration.builder()
31-
.build();
32-
assertThat(configuration.downloadFileRequestTransformer()).isEmpty();
33-
}
34-
35-
@Test
36-
void defaultBuilderWithPropertySet() {
37-
DownloadDirectoryOverrideConfiguration configuration =
38-
DownloadDirectoryOverrideConfiguration.builder()
39-
.downloadFileRequestTransformer((request -> request.destination(Paths.get("."))))
40-
.build();
41-
assertThat(configuration.downloadFileRequestTransformer()).isNotEmpty();
42-
}
43-
4423
@Test
4524
void equalsHashCode() {
4625
EqualsVerifier.forClass(DownloadDirectoryOverrideConfiguration.class).verify();

0 commit comments

Comments
 (0)