Skip to content

Commit 8b9ccee

Browse files
committed
Fix region on clients
1 parent 818fc05 commit 8b9ccee

File tree

5 files changed

+121
-40
lines changed

5 files changed

+121
-40
lines changed

src/main/java/xyz/fabiano/spring/localstack/legacy/LocalstackDocker.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ public class LocalstackDocker {
5656
@Setter
5757
private Collection<String> options = new ArrayList<>();
5858
@Setter
59+
@Getter
5960
private String region = "us-east-1";
6061

6162
@Getter
Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
package xyz.fabiano.spring.localstack.support;
22

33
import cloud.localstack.TestUtils;
4-
54
import com.amazonaws.client.builder.AwsClientBuilder;
5+
import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration;
66
import com.amazonaws.services.s3.AmazonS3;
77
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
88
import xyz.fabiano.spring.localstack.legacy.LocalstackDocker;
99

10-
import java.util.function.Supplier;
10+
import java.util.function.Function;
1111

1212
public abstract class AbstractAmazonDockerClientsHolder implements AmazonClientsHolder {
1313

14-
LocalstackDocker localstackDocker;
14+
private LocalstackDocker localstackDocker;
1515

1616
AbstractAmazonDockerClientsHolder(LocalstackDocker localstackDocker) {
1717
this.localstackDocker = localstackDocker;
@@ -20,16 +20,21 @@ public abstract class AbstractAmazonDockerClientsHolder implements AmazonClients
2020
@Override
2121
public AmazonS3 amazonS3() {
2222
return decorateWithConfigsAndBuild(
23-
AmazonS3ClientBuilder
24-
.standard()
25-
.enablePathStyleAccess(),
26-
localstackDocker::getEndpointS3);
23+
AmazonS3ClientBuilder.standard().enablePathStyleAccess(),
24+
LocalstackDocker::getEndpointS3
25+
);
2726
}
2827

29-
static <S, T extends AwsClientBuilder<T, S>> S decorateWithConfigsAndBuild(T builder, Supplier<String> endpointSupplier) {
28+
<S, T extends AwsClientBuilder<T, S>> S decorateWithConfigsAndBuild(
29+
T builder,
30+
Function<LocalstackDocker, String> endpointFunction
31+
) {
3032
return builder
3133
.withCredentials(TestUtils.getCredentialsProvider())
32-
.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endpointSupplier.get(), region))
34+
.withEndpointConfiguration(new EndpointConfiguration(
35+
endpointFunction.apply(localstackDocker),
36+
localstackDocker.getRegion()
37+
))
3338
.build();
3439
}
3540
}

src/main/java/xyz/fabiano/spring/localstack/support/AmazonAsyncDockerClientsHolder.java

Lines changed: 53 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -37,66 +37,105 @@ public AmazonAsyncDockerClientsHolder(LocalstackDocker localstackDocker) {
3737

3838
@Override
3939
public AmazonSQSAsync amazonSQS() {
40-
return decorateWithConfigsAndBuild(AmazonSQSAsyncClientBuilder.standard(), localstackDocker::getEndpointSQS);
40+
return decorateWithConfigsAndBuild(
41+
AmazonSQSAsyncClientBuilder.standard(),
42+
LocalstackDocker::getEndpointSQS
43+
);
4144
}
4245

4346
@Override
4447
public AmazonSNSAsync amazonSNS() {
45-
return decorateWithConfigsAndBuild(AmazonSNSAsyncClientBuilder.standard(), localstackDocker::getEndpointSNS);
48+
return decorateWithConfigsAndBuild(
49+
AmazonSNSAsyncClientBuilder.standard(),
50+
LocalstackDocker::getEndpointSNS
51+
);
4652
}
4753

4854
@Override
4955
public AmazonKinesisAsync amazonKinesis() {
50-
return decorateWithConfigsAndBuild(AmazonKinesisAsyncClientBuilder.standard(), localstackDocker::getEndpointKinesis);
56+
return decorateWithConfigsAndBuild(
57+
AmazonKinesisAsyncClientBuilder.standard(),
58+
LocalstackDocker::getEndpointKinesis
59+
);
5160
}
5261

5362
@Override
5463
public AmazonDynamoDBAsync amazonDynamoDB() {
55-
return decorateWithConfigsAndBuild(AmazonDynamoDBAsyncClientBuilder.standard(), localstackDocker::getEndpointDynamoDB);
64+
return decorateWithConfigsAndBuild(
65+
AmazonDynamoDBAsyncClientBuilder.standard(),
66+
LocalstackDocker::getEndpointDynamoDB
67+
);
5668
}
5769

5870
@Override
5971
public AmazonDynamoDBStreamsAsync amazonDynamoDBStreams() {
60-
return decorateWithConfigsAndBuild(AmazonDynamoDBStreamsAsyncClientBuilder.standard(), localstackDocker::getEndpointDynamoDBStreams);
72+
return decorateWithConfigsAndBuild(
73+
AmazonDynamoDBStreamsAsyncClientBuilder.standard(),
74+
LocalstackDocker::getEndpointDynamoDBStreams
75+
);
6176
}
6277

6378
@Override
6479
public AmazonSimpleEmailServiceAsync amazonSimpleEmailService() {
65-
return decorateWithConfigsAndBuild(AmazonSimpleEmailServiceAsyncClientBuilder.standard(), localstackDocker::getEndpointSES);
80+
return decorateWithConfigsAndBuild(
81+
AmazonSimpleEmailServiceAsyncClientBuilder.standard(),
82+
LocalstackDocker::getEndpointSES
83+
);
6684
}
6785

6886
@Override
6987
public AmazonApiGatewayAsync amazonApiGateway() {
70-
return decorateWithConfigsAndBuild(AmazonApiGatewayAsyncClientBuilder.standard(), localstackDocker::getEndpointAPIGateway);
88+
return decorateWithConfigsAndBuild(
89+
AmazonApiGatewayAsyncClientBuilder.standard(),
90+
LocalstackDocker::getEndpointAPIGateway
91+
);
7192
}
7293

7394
@Override
7495
public AmazonRedshiftAsync amazonRedshift() {
75-
return decorateWithConfigsAndBuild(AmazonRedshiftAsyncClientBuilder.standard(), localstackDocker::getEndpointRedshift);
96+
return decorateWithConfigsAndBuild(
97+
AmazonRedshiftAsyncClientBuilder.standard(),
98+
LocalstackDocker::getEndpointRedshift
99+
);
76100
}
77101

78102
@Override
79103
public AmazonCloudWatchAsync amazonCloudWatch() {
80-
return decorateWithConfigsAndBuild(AmazonCloudWatchAsyncClientBuilder.standard(), localstackDocker::getEndpointCloudWatch);
104+
return decorateWithConfigsAndBuild(
105+
AmazonCloudWatchAsyncClientBuilder.standard(),
106+
LocalstackDocker::getEndpointCloudWatch
107+
);
81108
}
82109

83110
@Override
84111
public AmazonCloudFormationAsync amazonCloudFormation() {
85-
return decorateWithConfigsAndBuild(AmazonCloudFormationAsyncClientBuilder.standard(), localstackDocker::getEndpointCloudFormation);
112+
return decorateWithConfigsAndBuild(
113+
AmazonCloudFormationAsyncClientBuilder.standard(),
114+
LocalstackDocker::getEndpointCloudFormation
115+
);
86116
}
87117

88118
@Override
89119
public AmazonKinesisFirehoseAsync amazonKinesisFirehose() {
90-
return decorateWithConfigsAndBuild(AmazonKinesisFirehoseAsyncClientBuilder.standard(), localstackDocker::getEndpointFirehose);
120+
return decorateWithConfigsAndBuild(
121+
AmazonKinesisFirehoseAsyncClientBuilder.standard(),
122+
LocalstackDocker::getEndpointFirehose
123+
);
91124
}
92125

93126
@Override
94127
public AmazonRoute53Async amazonRoute53() {
95-
return decorateWithConfigsAndBuild(AmazonRoute53AsyncClientBuilder.standard(), localstackDocker::getEndpointRoute53);
128+
return decorateWithConfigsAndBuild(
129+
AmazonRoute53AsyncClientBuilder.standard(),
130+
LocalstackDocker::getEndpointRoute53
131+
);
96132
}
97133

98134
@Override
99135
public AWSLambdaAsync awsLambda() {
100-
return decorateWithConfigsAndBuild(AWSLambdaAsyncClientBuilder.standard(), localstackDocker::getEndpointLambda);
136+
return decorateWithConfigsAndBuild(
137+
AWSLambdaAsyncClientBuilder.standard(),
138+
LocalstackDocker::getEndpointLambda
139+
);
101140
}
102-
}
141+
}

src/main/java/xyz/fabiano/spring/localstack/support/AmazonClientsHolder.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package xyz.fabiano.spring.localstack.support;
22

3-
4-
import com.amazonaws.regions.Regions;
53
import com.amazonaws.services.apigateway.AmazonApiGateway;
64
import com.amazonaws.services.cloudformation.AmazonCloudFormation;
75
import com.amazonaws.services.cloudwatch.AmazonCloudWatch;
@@ -18,7 +16,6 @@
1816
import com.amazonaws.services.sqs.AmazonSQS;
1917

2018
public interface AmazonClientsHolder {
21-
String region = Regions.DEFAULT_REGION.getName();
2219

2320
AmazonS3 amazonS3();
2421

src/main/java/xyz/fabiano/spring/localstack/support/AmazonDockerClientsHolder.java

Lines changed: 53 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -37,66 +37,105 @@ public AmazonDockerClientsHolder(LocalstackDocker localstackDocker) {
3737

3838
@Override
3939
public AmazonSQS amazonSQS() {
40-
return decorateWithConfigsAndBuild(AmazonSQSClientBuilder.standard(), localstackDocker::getEndpointSQS);
40+
return decorateWithConfigsAndBuild(
41+
AmazonSQSClientBuilder.standard(),
42+
LocalstackDocker::getEndpointSQS
43+
);
4144
}
4245

4346
@Override
4447
public AmazonSNS amazonSNS() {
45-
return decorateWithConfigsAndBuild(AmazonSNSClientBuilder.standard(), localstackDocker::getEndpointSNS);
48+
return decorateWithConfigsAndBuild(
49+
AmazonSNSClientBuilder.standard(),
50+
LocalstackDocker::getEndpointSNS
51+
);
4652
}
4753

4854
@Override
4955
public AmazonKinesis amazonKinesis() {
50-
return decorateWithConfigsAndBuild(AmazonKinesisClientBuilder.standard(), localstackDocker::getEndpointKinesis);
56+
return decorateWithConfigsAndBuild(
57+
AmazonKinesisClientBuilder.standard(),
58+
LocalstackDocker::getEndpointKinesis
59+
);
5160
}
5261

5362
@Override
5463
public AmazonDynamoDB amazonDynamoDB() {
55-
return decorateWithConfigsAndBuild(AmazonDynamoDBClientBuilder.standard(), localstackDocker::getEndpointDynamoDB);
64+
return decorateWithConfigsAndBuild(
65+
AmazonDynamoDBClientBuilder.standard(),
66+
LocalstackDocker::getEndpointDynamoDB
67+
);
5668
}
5769

5870
@Override
5971
public AmazonDynamoDBStreams amazonDynamoDBStreams() {
60-
return decorateWithConfigsAndBuild(AmazonDynamoDBStreamsClientBuilder.standard(), localstackDocker::getEndpointDynamoDBStreams);
72+
return decorateWithConfigsAndBuild(
73+
AmazonDynamoDBStreamsClientBuilder.standard(),
74+
LocalstackDocker::getEndpointDynamoDBStreams
75+
);
6176
}
6277

6378
@Override
6479
public AmazonSimpleEmailService amazonSimpleEmailService() {
65-
return decorateWithConfigsAndBuild(AmazonSimpleEmailServiceClientBuilder.standard(), localstackDocker::getEndpointSES);
80+
return decorateWithConfigsAndBuild(
81+
AmazonSimpleEmailServiceClientBuilder.standard(),
82+
LocalstackDocker::getEndpointSES
83+
);
6684
}
6785

6886
@Override
6987
public AmazonApiGateway amazonApiGateway() {
70-
return decorateWithConfigsAndBuild(AmazonApiGatewayClientBuilder.standard(), localstackDocker::getEndpointAPIGateway);
88+
return decorateWithConfigsAndBuild(
89+
AmazonApiGatewayClientBuilder.standard(),
90+
LocalstackDocker::getEndpointAPIGateway
91+
);
7192
}
7293

7394
@Override
7495
public AmazonRedshift amazonRedshift() {
75-
return decorateWithConfigsAndBuild(AmazonRedshiftClientBuilder.standard(), localstackDocker::getEndpointRedshift);
96+
return decorateWithConfigsAndBuild(
97+
AmazonRedshiftClientBuilder.standard(),
98+
LocalstackDocker::getEndpointRedshift
99+
);
76100
}
77101

78102
@Override
79103
public AmazonCloudWatch amazonCloudWatch() {
80-
return decorateWithConfigsAndBuild(AmazonCloudWatchClientBuilder.standard(), localstackDocker::getEndpointCloudWatch);
104+
return decorateWithConfigsAndBuild(
105+
AmazonCloudWatchClientBuilder.standard(),
106+
LocalstackDocker::getEndpointCloudWatch
107+
);
81108
}
82109

83110
@Override
84111
public AmazonCloudFormation amazonCloudFormation() {
85-
return decorateWithConfigsAndBuild(AmazonCloudFormationClientBuilder.standard(), localstackDocker::getEndpointCloudFormation);
112+
return decorateWithConfigsAndBuild(
113+
AmazonCloudFormationClientBuilder.standard(),
114+
LocalstackDocker::getEndpointCloudFormation
115+
);
86116
}
87117

88118
@Override
89119
public AmazonKinesisFirehose amazonKinesisFirehose() {
90-
return decorateWithConfigsAndBuild(AmazonKinesisFirehoseClientBuilder.standard(), localstackDocker::getEndpointFirehose);
120+
return decorateWithConfigsAndBuild(
121+
AmazonKinesisFirehoseClientBuilder.standard(),
122+
LocalstackDocker::getEndpointFirehose
123+
);
91124
}
92125

93126
@Override
94127
public AmazonRoute53 amazonRoute53() {
95-
return decorateWithConfigsAndBuild(AmazonRoute53ClientBuilder.standard(), localstackDocker::getEndpointRoute53);
128+
return decorateWithConfigsAndBuild(
129+
AmazonRoute53ClientBuilder.standard(),
130+
LocalstackDocker::getEndpointRoute53
131+
);
96132
}
97133

98134
@Override
99135
public AWSLambda awsLambda() {
100-
return decorateWithConfigsAndBuild(AWSLambdaClientBuilder.standard(), localstackDocker::getEndpointLambda);
136+
return decorateWithConfigsAndBuild(
137+
AWSLambdaClientBuilder.standard(),
138+
LocalstackDocker::getEndpointLambda
139+
);
101140
}
102-
}
141+
}

0 commit comments

Comments
 (0)