Skip to content

Commit eb1f7a6

Browse files
Set S3AsyncClient endpoint fromAwsConnectionDetails if available in tests (#1330)
1 parent 01f0a3c commit eb1f7a6

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed

spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/s3/S3CrtAsyncClientAutoConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ S3AsyncClient s3AsyncClient(AwsCredentialsProvider credentialsProvider,
6767
ObjectProvider<AwsConnectionDetails> connectionDetails) {
6868
S3CrtAsyncClientBuilder builder = S3AsyncClient.crtBuilder().credentialsProvider(credentialsProvider).region(
6969
this.awsClientBuilderConfigurer.resolveRegion(this.properties, connectionDetails.getIfAvailable()));
70+
Optional.ofNullable(connectionDetails.getIfAvailable()).map(AwsConnectionDetails::getEndpoint)
71+
.ifPresent(builder::endpointOverride);
7072
Optional.ofNullable(this.awsProperties.getEndpoint()).ifPresent(builder::endpointOverride);
7173
Optional.ofNullable(this.properties.getEndpoint()).ifPresent(builder::endpointOverride);
7274
Optional.ofNullable(this.properties.getCrossRegionEnabled()).ifPresent(builder::crossRegionAccessEnabled);

spring-cloud-aws-testcontainers/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,11 @@
6666
<artifactId>spring-cloud-aws-starter-s3</artifactId>
6767
<scope>test</scope>
6868
</dependency>
69+
<dependency>
70+
<groupId>software.amazon.awssdk</groupId>
71+
<artifactId>aws-crt-client</artifactId>
72+
<scope>test</scope>
73+
</dependency>
6974
</dependencies>
7075

7176
</project>

spring-cloud-aws-testcontainers/src/test/java/io/awspring/cloud/testcontainers/AwsContainerConnectionDetailsFactoryTest.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import io.awspring.cloud.autoconfigure.core.RegionProviderAutoConfiguration;
2626
import io.awspring.cloud.autoconfigure.dynamodb.DynamoDbAutoConfiguration;
2727
import io.awspring.cloud.autoconfigure.s3.S3AutoConfiguration;
28+
import io.awspring.cloud.autoconfigure.s3.S3CrtAsyncClientAutoConfiguration;
2829
import io.awspring.cloud.autoconfigure.ses.SesAutoConfiguration;
2930
import io.awspring.cloud.autoconfigure.sns.SnsAutoConfiguration;
3031
import io.awspring.cloud.autoconfigure.sqs.SqsAutoConfiguration;
@@ -39,6 +40,7 @@
3940
import org.testcontainers.junit.jupiter.Testcontainers;
4041
import org.testcontainers.utility.DockerImageName;
4142
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
43+
import software.amazon.awssdk.services.s3.S3AsyncClient;
4244
import software.amazon.awssdk.services.s3.S3Client;
4345
import software.amazon.awssdk.services.ses.SesClient;
4446
import software.amazon.awssdk.services.sns.SnsClient;
@@ -88,10 +90,16 @@ void configuresS3ClientWithServiceConnection(@Autowired S3Client client) {
8890
assertThatCode(client::listBuckets).doesNotThrowAnyException();
8991
}
9092

93+
@Test
94+
void configuresS3AsyncClientWithServiceConnection(@Autowired S3AsyncClient client) {
95+
assertThatCode(client.listBuckets()::join).doesNotThrowAnyException();
96+
}
97+
9198
@Configuration(proxyBeanMethods = false)
9299
@ImportAutoConfiguration({ AwsAutoConfiguration.class, CredentialsProviderAutoConfiguration.class,
93100
RegionProviderAutoConfiguration.class, DynamoDbAutoConfiguration.class, SesAutoConfiguration.class,
94-
SqsAutoConfiguration.class, SnsAutoConfiguration.class, S3AutoConfiguration.class })
101+
SqsAutoConfiguration.class, SnsAutoConfiguration.class, S3AutoConfiguration.class,
102+
S3CrtAsyncClientAutoConfiguration.class })
95103
static class TestConfiguration {
96104
}
97105

0 commit comments

Comments
 (0)