Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rename sourceDirectory to source and add S3AsycncClient#crtCreate #3572

Merged
merged 3 commits into from
Dec 1, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,11 @@ public class AdditionalBuilderMethod {
*/
private String javaDoc;

/**
* Method body
*/
private String statement;

/**
* The clientType for which the builder needs to be added.
*/
Expand Down Expand Up @@ -95,4 +100,12 @@ public ClientType getClientTypeEnum() {
public void setClientTypeEnum(ClientType clientType) {
this.clientType = clientType;
}

public String getStatement() {
return statement;
}

public void setStatement(String statement) {
this.statement = statement;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -482,9 +482,8 @@ private MethodSpec additionalBuilders(AdditionalBuilderMethod additionalMethod)
MethodSpec.Builder builder = MethodSpec.methodBuilder(methodName)
.returns(returnType)
.addModifiers(Modifier.STATIC, Modifier.PUBLIC)
.addJavadoc("Create a builder that can be used to configure "
+ "and create a {@link $T}", instanceType)
.addStatement("return $T.builder()", instanceType);
.addJavadoc(additionalMethod.getJavaDoc())
.addStatement("return $T.$L", instanceType, additionalMethod.getStatement());

return builder.build();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,25 +23,33 @@
"methodName": "builderOne",
"clientType": "ASYNC",
"instanceType": "software.amazon.awssdk.services.builder.DefaultBuilder",
"returnType": "software.amazon.awssdk.services.builder.CustomBuilder"
"returnType": "software.amazon.awssdk.services.builder.CustomBuilder",
"statement": "builder().build()",
"javaDoc": "Create a default builder"
},
{
"methodName": "builderTwo",
"clientType": "ASYNC",
"instanceType": "software.amazon.awssdk.services.builder.DefaultBuilderTwo",
"returnType": "software.amazon.awssdk.services.builder.Builder"
"returnType": "software.amazon.awssdk.services.builder.Builder",
"statement": "builder2().build()",
"javaDoc": "Create a default builder two"
},

{
"methodName": "builderThree",
"clientType": "SYNC",
"instanceType": "software.amazon.awssdk.services.builder.DefaultBuilder",
"returnType": "software.amazon.awssdk.services.builder.CustomBuilder"
"returnType": "software.amazon.awssdk.services.builder.CustomBuilder",
"statement": "builder().build()",
"javaDoc": "Create a default builder"
},
{
"methodName": "builderFour",
"instanceType": "software.amazon.awssdk.services.builder.DefaultBuilder",
"returnType": "software.amazon.awssdk.services.builder.CustomBuilder"
"returnType": "software.amazon.awssdk.services.builder.CustomBuilder",
"statement": "builder().build()",
"javaDoc": "Create a default builder"
}
],
"useLegacyEventGenerationScheme": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1759,16 +1759,16 @@ default JsonUtilities utilities() {
}

/**
* Create a builder that can be used to configure and create a {@link DefaultBuilder}
* Create a default builder
*/
static CustomBuilder builderOne() {
return DefaultBuilder.builder();
return DefaultBuilder.builder().build();
}

/**
* Create a builder that can be used to configure and create a {@link DefaultBuilderTwo}
* Create a default builder two
*/
static Builder builderTwo() {
return DefaultBuilderTwo.builder();
return DefaultBuilderTwo.builder2().build();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,9 @@ public static void setUp() throws Exception {
createBucket(TEST_BUCKET_CUSTOM_DELIMITER);
sourceDirectory = createLocalTestDirectory();

tm.uploadDirectory(u -> u.sourceDirectory(sourceDirectory).bucket(TEST_BUCKET)).completionFuture().join();
tm.uploadDirectory(u -> u.source(sourceDirectory).bucket(TEST_BUCKET)).completionFuture().join();

tm.uploadDirectory(u -> u.sourceDirectory(sourceDirectory)
tm.uploadDirectory(u -> u.source(sourceDirectory)
.s3Delimiter(CUSTOM_DELIMITER)
.bucket(TEST_BUCKET_CUSTOM_DELIMITER))
.completionFuture().join();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,11 @@
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assumptions.assumeTrue;
import static software.amazon.awssdk.testutils.service.S3BucketUtils.temporaryBucketName;
import static software.amazon.awssdk.utils.IoUtils.closeQuietly;

import com.google.common.jimfs.Configuration;
import com.google.common.jimfs.Jimfs;
import java.io.IOException;
import java.io.UncheckedIOException;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.FileSystem;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
Expand All @@ -39,15 +35,12 @@
import java.util.stream.Collectors;
import org.apache.commons.codec.binary.Hex;
import org.apache.commons.lang3.RandomStringUtils;
import org.assertj.core.util.Sets;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
import software.amazon.awssdk.core.sync.ResponseTransformer;
import software.amazon.awssdk.services.s3.S3AsyncClient;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.NoSuchBucketException;
import software.amazon.awssdk.services.s3.model.S3Object;
import software.amazon.awssdk.testutils.FileUtils;
Expand Down Expand Up @@ -87,7 +80,7 @@ public static void teardown() {
@Test
void uploadDirectory_filesSentCorrectly() {
String prefix = "yolo";
DirectoryUpload uploadDirectory = tm.uploadDirectory(u -> u.sourceDirectory(directory)
DirectoryUpload uploadDirectory = tm.uploadDirectory(u -> u.source(directory)
.bucket(TEST_BUCKET)
.s3Prefix(prefix));
CompletedDirectoryUpload completedDirectoryUpload = uploadDirectory.completionFuture().join();
Expand All @@ -105,7 +98,7 @@ void uploadDirectory_filesSentCorrectly() {
@Test
void uploadDirectory_nonExistsBucket_shouldAddFailedRequest() {
String prefix = "yolo";
DirectoryUpload uploadDirectory = tm.uploadDirectory(u -> u.sourceDirectory(directory)
DirectoryUpload uploadDirectory = tm.uploadDirectory(u -> u.source(directory)
.bucket("nonExistingTestBucket" + UUID.randomUUID())
.s3Prefix(prefix));
CompletedDirectoryUpload completedDirectoryUpload = uploadDirectory.completionFuture().join();
Expand All @@ -117,7 +110,7 @@ void uploadDirectory_nonExistsBucket_shouldAddFailedRequest() {
void uploadDirectory_withDelimiter_filesSentCorrectly() {
String prefix = "hello";
String delimiter = "0";
DirectoryUpload uploadDirectory = tm.uploadDirectory(u -> u.sourceDirectory(directory)
DirectoryUpload uploadDirectory = tm.uploadDirectory(u -> u.source(directory)
.bucket(TEST_BUCKET)
.s3Delimiter(delimiter)
.s3Prefix(prefix));
Expand All @@ -141,7 +134,7 @@ void uploadDirectory_withRequestTransformer_usesRequestTransformer() throws Exce
Path newSourceForEachUpload = Paths.get(directory.toString(), "bar.txt");

CompletedDirectoryUpload result =
tm.uploadDirectory(r -> r.sourceDirectory(directory)
tm.uploadDirectory(r -> r.source(directory)
.bucket(TEST_BUCKET)
.s3Prefix(prefix)
.uploadFileRequestTransformer(f -> f.source(newSourceForEachUpload)))
Expand Down Expand Up @@ -186,7 +179,7 @@ void uploadDirectory_fileNameWithUnicode_traversedCorrectly(String directoryPref
testDirectory = createLocalTestDirectory(directoryPrefix);

Path finalTestDirectory = testDirectory;
DirectoryUpload uploadDirectory = tm.uploadDirectory(u -> u.sourceDirectory(finalTestDirectory)
DirectoryUpload uploadDirectory = tm.uploadDirectory(u -> u.source(finalTestDirectory)
.bucket(TEST_BUCKET));
CompletedDirectoryUpload completedDirectoryUpload = uploadDirectory.completionFuture().join();
assertThat(completedDirectoryUpload.failedTransfers()).isEmpty();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ public DirectoryUpload uploadDirectory(UploadDirectoryRequest uploadDirectoryReq
private void doUploadDirectory(CompletableFuture<CompletedDirectoryUpload> returnFuture,
UploadDirectoryRequest uploadDirectoryRequest) {

Path directory = uploadDirectoryRequest.sourceDirectory();
Path directory = uploadDirectoryRequest.source();

validateDirectory(uploadDirectoryRequest);

Expand All @@ -110,7 +110,7 @@ private void doUploadDirectory(CompletableFuture<CompletedDirectoryUpload> retur
}

private void validateDirectory(UploadDirectoryRequest uploadDirectoryRequest) {
Path directory = uploadDirectoryRequest.sourceDirectory();
Path directory = uploadDirectoryRequest.source();
Validate.isTrue(Files.exists(directory), "The source directory provided (%s) does not exist", directory);
boolean followSymbolicLinks = transferConfiguration.resolveUploadDirectoryFollowSymbolicLinks(uploadDirectoryRequest);
if (followSymbolicLinks) {
Expand All @@ -126,7 +126,7 @@ private void validateDirectory(UploadDirectoryRequest uploadDirectoryRequest) {
private CompletableFuture<CompletedFileUpload> uploadSingleFile(UploadDirectoryRequest uploadDirectoryRequest,
Collection<FailedFileUpload> failedFileUploads,
Path path) {
int nameCount = uploadDirectoryRequest.sourceDirectory().getNameCount();
int nameCount = uploadDirectoryRequest.source().getNameCount();
UploadFileRequest uploadFileRequest = constructUploadRequest(uploadDirectoryRequest, nameCount, path);
log.debug(() -> String.format("Sending upload request (%s) for path (%s)", uploadFileRequest, path));
CompletableFuture<CompletedFileUpload> executionFuture = uploadFunction.apply(uploadFileRequest).completionFuture();
Expand Down Expand Up @@ -206,7 +206,7 @@ private UploadFileRequest constructUploadRequest(UploadDirectoryRequest uploadDi
.map(s -> normalizePrefix(s, delimiter))
.orElse(DEFAULT_PREFIX);

String relativePathName = getRelativePathName(uploadDirectoryRequest.sourceDirectory(),
String relativePathName = getRelativePathName(uploadDirectoryRequest.source(),
directoryNameCount,
path,
delimiter);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
public final class UploadDirectoryRequest
implements TransferDirectoryRequest, ToCopyableBuilder<UploadDirectoryRequest.Builder, UploadDirectoryRequest> {

private final Path sourceDirectory;
private final Path source;
private final String bucket;
private final String s3Prefix;
private final String s3Delimiter;
Expand All @@ -51,7 +51,7 @@ public final class UploadDirectoryRequest


public UploadDirectoryRequest(DefaultBuilder builder) {
this.sourceDirectory = Validate.paramNotNull(builder.sourceDirectory, "sourceDirectory");
this.source = Validate.paramNotNull(builder.source, "source");
this.bucket = Validate.paramNotNull(builder.bucket, "bucket");
this.s3Prefix = builder.s3Prefix;
this.s3Delimiter = builder.s3Delimiter;
Expand All @@ -64,10 +64,10 @@ public UploadDirectoryRequest(DefaultBuilder builder) {
* The source directory to upload
*
* @return the source directory
* @see Builder#sourceDirectory(Path)
* @see Builder#source(Path)
*/
public Path sourceDirectory() {
return sourceDirectory;
public Path source() {
return source;
}

/**
Expand Down Expand Up @@ -146,7 +146,7 @@ public boolean equals(Object o) {

UploadDirectoryRequest that = (UploadDirectoryRequest) o;

if (!Objects.equals(sourceDirectory, that.sourceDirectory)) {
if (!Objects.equals(source, that.source)) {
return false;
}
if (!Objects.equals(bucket, that.bucket)) {
Expand All @@ -169,7 +169,7 @@ public boolean equals(Object o) {

@Override
public int hashCode() {
int result = sourceDirectory != null ? sourceDirectory.hashCode() : 0;
int result = source != null ? source.hashCode() : 0;
result = 31 * result + (bucket != null ? bucket.hashCode() : 0);
result = 31 * result + (s3Prefix != null ? s3Prefix.hashCode() : 0);
result = 31 * result + (s3Delimiter != null ? s3Delimiter.hashCode() : 0);
Expand All @@ -182,7 +182,7 @@ public int hashCode() {
@Override
public String toString() {
return ToString.builder("UploadDirectoryRequest")
.add("sourceDirectory", sourceDirectory)
.add("source", source)
.add("bucket", bucket)
.add("s3Prefix", s3Prefix)
.add("s3Delimiter", s3Delimiter)
Expand All @@ -201,10 +201,10 @@ public interface Builder extends CopyableBuilder<Builder, UploadDirectoryRequest
* Note that the current user must have read access to all directories and files,
* otherwise {@link SecurityException} will be thrown.
*
* @param sourceDirectory the source directory
* @param source the source directory
* @return This builder for method chaining.
*/
Builder sourceDirectory(Path sourceDirectory);
Builder source(Path source);

/**
* The name of the bucket to upload objects to.
Expand Down Expand Up @@ -312,7 +312,7 @@ public interface Builder extends CopyableBuilder<Builder, UploadDirectoryRequest
*
* UploadDirectoryRequest request =
* UploadDirectoryRequest.builder()
* .sourceDirectory(Paths.get("."))
* .source(Paths.get("."))
* .bucket("bucket")
* .prefix("prefix")
* .overrideConfiguration(directoryUploadConfiguration)
Expand Down Expand Up @@ -342,7 +342,7 @@ public interface Builder extends CopyableBuilder<Builder, UploadDirectoryRequest

private static final class DefaultBuilder implements Builder {

private Path sourceDirectory;
private Path source;
private String bucket;
private String s3Prefix;
private String s3Delimiter;
Expand All @@ -354,7 +354,7 @@ private DefaultBuilder() {
}

private DefaultBuilder(UploadDirectoryRequest request) {
this.sourceDirectory = request.sourceDirectory;
this.source = request.source;
this.bucket = request.bucket;
this.s3Prefix = request.s3Prefix;
this.s3Delimiter = request.s3Delimiter;
Expand All @@ -364,17 +364,17 @@ private DefaultBuilder(UploadDirectoryRequest request) {
}

@Override
public Builder sourceDirectory(Path sourceDirectory) {
this.sourceDirectory = sourceDirectory;
public Builder source(Path source) {
this.source = source;
return this;
}

public void setSourceDirectory(Path sourceDirectory) {
sourceDirectory(sourceDirectory);
public void setSource(Path source) {
source(source);
}

public Path getSourceDirectory() {
return sourceDirectory;
public Path getSource() {
return source;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ void objectLambdaArnBucketProvided_shouldThrowException() {
.hasMessageContaining("support S3 Object Lambda resources").hasCauseInstanceOf(IllegalArgumentException.class);

assertThatThrownBy(() -> tm.uploadDirectory(b -> b.bucket(objectLambdaArn)
.sourceDirectory(Paths.get(".")))
.source(Paths.get(".")))
.completionFuture().join())
.hasMessageContaining("support S3 Object Lambda resources").hasCauseInstanceOf(IllegalArgumentException.class);

Expand Down Expand Up @@ -289,7 +289,7 @@ void mrapArnProvided_shouldThrowException() {
.hasMessageContaining("multi-region access point ARN").hasCauseInstanceOf(IllegalArgumentException.class);

assertThatThrownBy(() -> tm.uploadDirectory(b -> b.bucket(mrapArn)
.sourceDirectory(Paths.get(".")))
.source(Paths.get(".")))
.completionFuture().join())
.hasMessageContaining("multi-region access point ARN").hasCauseInstanceOf(IllegalArgumentException.class);

Expand Down Expand Up @@ -318,7 +318,7 @@ void uploadDirectory_throwException_shouldCompleteFutureExceptionally() {
RuntimeException exception = new RuntimeException("test");
when(uploadDirectoryHelper.uploadDirectory(any(UploadDirectoryRequest.class))).thenThrow(exception);

assertThatThrownBy(() -> tm.uploadDirectory(u -> u.sourceDirectory(Paths.get("/"))
assertThatThrownBy(() -> tm.uploadDirectory(u -> u.source(Paths.get("/"))
.bucket("bucketName")).completionFuture().join())
.hasCause(exception);
}
Expand Down
Loading