8000 add AWS SDK v2 sync clients to TestUtils (#93) · localstack/localstack-java-utils@1f5b540 · GitHub
[go: up one dir, main page]

Skip to content

Commit 1f5b540

Browse files
authored
add AWS SDK v2 sync clients to TestUtils (#93)
1 parent eb7309c commit 1f5b540

File tree

3 files changed

+421
-90
lines changed

3 files changed

+421
-90
lines changed

pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,12 @@
187187
<version>${aws.sdkv2.version}</version>
188188
<scope>provided</scope>
189189
</dependency>
190+
<dependency>
191+
<groupId>software.amazon.awssdk</groupId>
192+
<artifactId>apache-client</artifactId>
193+
<version>${aws.sdkv2.version}</version>
194+
<scope>provided</scope>
195+
</dependency>
190196
<dependency>
191197
<groupId>software.amazon.kinesis</groupId>
192198
<artifactId>amazon-kinesis-client</artifactId>

src/main/java/cloud/localstack/awssdkv2/TestUtils.java

Lines changed: 104 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,41 @@
11
package cloud.localstack.awssdkv2;
22

3+
import cloud.localstack.Localstack;
4+
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
5+
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
6+
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
7+
import software.amazon.awssdk.awscore.client.builder.AwsClientBuilder;
8+
import software.amazon.awssdk.core.client.builder.SdkAsyncClientBuilder;
9+
import software.amazon.awssdk.core.client.builder.SdkSyncClientBuilder;
10+
import software.amazon.awssdk.http.SdkHttpConfigurationOption;
11+
import software.amazon.awssdk.http.apache.ApacheHttpClient;
12+
import software.amazon.awssdk.http.nio.netty.NettyNioAsyncHttpClient;
313
import software.amazon.awssdk.regions.Region;
14+
import software.amazon.awssdk.services.cloudwatch.CloudWatchAsyncClient;
15+
import software.amazon.awssdk.services.cloudwatch.CloudWatchClient;
416
import software.amazon.awssdk.services.dynamodb.DynamoDbAsyncClient;
17+
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
18+
import software.amazon.awssdk.services.iam.IamAsyncClient;
19+
import software.amazon.awssdk.services.iam.IamClient;
20+
import software.amazon.awssdk.services.kinesis.KinesisAsyncClient;
21+
import software.amazon.awssdk.services.kinesis.KinesisClient;
522
import software.amazon.awssdk.services.lambda.LambdaAsyncClient;
6-
import software.amazon.awssdk.utils.*;
7-
import software.amazon.awssdk.http.*;
8-
import software.amazon.awssdk.services.cloudwatch.*;
9-
import software.amazon.awssdk.services.kinesis.*;
10-
import software.amazon.awssdk.services.sns.*;
11-
import software.amazon.awssdk.services.sqs.*;
12-
import software.amazon.awssdk.services.s3.*;
23+
import software.amazon.awssdk.services.lambda.LambdaClient;
24+
import software.amazon.awssdk.services.qldb.QldbAsyncClient;
25+
import software.amazon.awssdk.services.qldb.QldbClient;
26+
import software.amazon.awssdk.services.s3.S3AsyncClient;
27+
import software.amazon.awssdk.services.s3.S3Client;
1328
import software.amazon.awssdk.services.secretsmanager.SecretsManagerAsyncClient;
14-
import software.amazon.awssdk.services.ssm.*;
15-
import software.amazon.awssdk.services.iam.*;
16-
import software.amazon.awssdk.services.qldb.*;
17-
import software.amazon.awssdk.auth.credentials.*;
18-
import software.amazon.awssdk.http.nio.netty.NettyNioAsyncHttpClient;
19-
import software.amazon.awssdk.core.client.builder.SdkAsyncClientBuilder;
20-
import software.amazon.awssdk.awscore.client.builder.AwsClientBuilder;
21-
22-
import cloud.localstack.Localstack;
29+
import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient;
30+
import software.amazon.awssdk.services.sns.SnsAsyncClient;
31+
import software.amazon.awssdk.services.sns.SnsClient;
32+
import software.amazon.awssdk.services.sqs.SqsAsyncClient;
33+
import software.amazon.awssdk.services.sqs.SqsClient;
34+
import software.amazon.awssdk.services.ssm.SsmAsyncClient;
35+
import software.amazon.awssdk.services.ssm.SsmClient;
36+
import software.amazon.awssdk.utils.AttributeMap;
2337

24-
import java.net.*;
38+
import java.net.URI;
2539

2640
/**
2741
* Utility methods for AWS SDK v2
@@ -30,50 +44,94 @@
3044
public class TestUtils {
3145

3246
public static KinesisAsyncClient getClientKinesisAsyncV2() {
33-
return wrapApiClientV2(KinesisAsyncClient.builder(), Localstack.INSTANCE.getEndpointKinesis()).build();
47+
return wrapApiAsyncClientV2(KinesisAsyncClient.builder(), Localstack.INSTANCE.getEndpointKinesis()).build();
48+
}
49+
50+
public static KinesisClient getClientKinesisV2() {
51+
return wrapApiSyncClientV2(KinesisClient.builder(), Localstack.INSTANCE.getEndpointKinesis()).build();
3452
}
3553

3654
public static DynamoDbAsyncClient getClientDyanamoAsyncV2() {
37-
return wrapApiClientV2(DynamoDbAsyncClient.builder(), Localstack.INSTANCE.getEndpointDynamoDB()).build();
55+
return wrapApiAsyncClientV2(DynamoDbAsyncClient.builder(), Localstack.INSTANCE.getEndpointDynamoDB()).build();
56+
}
57+
58+
public static DynamoDbClient getClientDyanamoV2() {
59+
return wrapApiSyncClientV2(DynamoDbClient.builder(), Localstack.INSTANCE.getEndpointDynamoDB()).build();
3860
}
3961

4062
public static SqsAsyncClient getClientSQSAsyncV2() {
41-
return wrapApiClientV2(SqsAsyncClient.builder(), Localstack.INSTANCE.getEndpointSQS()).build();
63+
return wrapApiAsyncClientV2(SqsAsyncClient.builder(), Localstack.INSTANCE.getEndpointSQS()).build();
64+
}
65+
66+
public static SqsClient getClientSQSV2() {
67+
return wrapApiSyncClientV2(SqsClient.builder(), Localstack.INSTANCE.getEndpointSQS()).build();
4268
}
4369

4470
public static QldbAsyncClient getClientQLDBAsyncV2() {
45-
return wrapApiClientV2(QldbAsyncClient.builder(), Localstack.INSTANCE.getEndpointQLDB()).build();
71+
return wrapApiAsyncClientV2(QldbAsyncClient.builder(), Localstack.INSTANCE.getEndpointQLDB()).build();
72+
}
73+
74+
public static QldbClient getClientQLDBV2() {
75+
return wrapApiSyncClientV2(QldbClient.builder(), Localstack.INSTANCE.getEndpointQLDB()).build();
4676
}
4777

4878
public static SnsAsyncClient getClientSNSAsyncV2() {
49-
return wrapApiClientV2(SnsAsyncClient.builder(), Localstack.INSTANCE.getEndpointSNS()).build();
79+
return wrapApiAsyncClientV2(SnsAsyncClient.builder(), Localstack.INSTANCE.getEndpointSNS()).build();
80+
}
81+
82+
public static SnsClient getClientSNSV2() {
83+
return wrapApiSyncClientV2(SnsClient.builder(), Localstack.INSTANCE.getEndpointSNS()).build();
5084
}
5185

5286
public static SsmAsyncClient getClientSSMAsyncV2() {
53-
return wrapApiClientV2(SsmAsyncClient.builder(), Localstack.INSTANCE.getEndpointSSM()).build();
87+
return wrapApiAsyncClientV2(SsmAsyncClient.builder(), Localstack.INSTANCE.getEndpointSSM()).build();
88+
}
89+
90+
public static SsmClient getClientSSMV2() {
91+
return wrapApiSyncClientV2(SsmClient.builder(), Localstack.INSTANCE.getEndpointSSM()).build();
5492
}
5593

5694
public static SecretsManagerAsyncClient getClientSecretsManagerAsyncV2() {
57-
return wrapApiClientV2(SecretsManagerAsyncClient.builder(), Localstack.INSTANCE.getEndpointSSM()).build();
95+
return wrapApiAsyncClientV2(SecretsManagerAsyncClient.builder(), Localstack.INSTANCE.getEndpointSSM()).build();
96+
}
97+
98+
public static SecretsManagerClient getClientSecretsManagerV2() {
99+
return wrapApiSyncClientV2(SecretsManagerClient.builder(), Localstack.INSTANCE< 10000 /span>.getEndpointSSM()).build();
58100
}
59101

60102
public static S3AsyncClient getClientS3AsyncV2() {
61-
return wrapApiClientV2(S3AsyncClient.builder(), Localstack.INSTANCE.getEndpointS3()).build();
103+
return wrapApiAsyncClientV2(S3AsyncClient.builder(), Localstack.INSTANCE.getEndpointS3()).build();
62104
}
63-
105+
106+
public static S3Client getClientS3V2() {
107+
return wrapApiSyncClientV2(S3Client.builder(), Localstack.INSTANCE.getEndpointS3()).build();
108+
}
109+
64110
public static CloudWatchAsyncClient getClientCloudWatchAsyncV2() {
65-
return wrapApiClientV2(CloudWatchAsyncClient.builder(), Localstack.INSTANCE.getEndpointCloudWatch()).build();
111+
return wrapApiAsyncClientV2(CloudWatchAsyncClient.builder(), Localstack.INSTANCE.getEndpointCloudWatch()).build();
112+
}
113+
114+
public static CloudWatchClient getClientCloudWatchV2() {
115+
return wrapApiSyncClientV2(CloudWatchClient.builder(), Localstack.INSTANCE.getEndpointCloudWatch()).build();
66116
}
67117

68118
public static LambdaAsyncClient getClientLambdaAsyncV2() {
69-
return wrapApiClientV2(LambdaAsyncClient.builder(), Localstack.INSTANCE.getEndpointLambda()).build();
119+
return wrapApiAsyncClientV2(LambdaAsyncClient.builder(), Localstack.INSTANCE.getEndpointLambda()).build();
120+
}
121+
122+
public static LambdaClient getClientLambdaV2() {
123+
return wrapApiSyncClientV2(LambdaClient.builder(), Localstack.INSTANCE.getEndpointLambda()).build();
70124
}
71-
125+
72126
public static IamAsyncClient getClientIamAsyncV2() {
73-
return wrapApiClientV2(IamAsyncClient.builder(), Localstack.INSTANCE.getEndpointIAM()).build();
127+
return wrapApiAsyncClientV2(IamAsyncClient.builder(), Localstack.INSTANCE.getEndpointIAM()).build();
128+
}
129+
130+
public static IamClient getClientIamV2() {
131+
return wrapApiSyncClientV2(IamClient.builder(), Localstack.INSTANCE.getEndpointIAM()).build();
74132
}
75-
76-
public static <T extends SdkAsyncClientBuilder> T wrapApiClientV2(T builder, String endpointURL) {
133+
134+
public static <T extends SdkAsyncClientBuilder> T wrapApiAsyncClientV2(T builder, String endpointURL) {
77135
try {
78136
return (T) ((AwsClientBuilder)builder
79137
.httpClient(NettyNioAsyncHttpClient.builder().buildWithDefaults(
@@ -87,6 +145,20 @@ public static <T extends SdkAsyncClientBuilder> T wrapApiClientV2(T builder, Str
87145
}
88146
}
89147

148+
public static <T extends SdkSyncClientBuilder> T wrapApiSyncClientV2(T builder, String endpointURL) {
149+
try {
150+
return (T) ((AwsClientBuilder)builder
151+
.httpClient(ApacheHttpClient.builder().buildWithDefaults(
152+
AttributeMap.builder().put(
153+
SdkHttpConfigurationOption.TRUST_ALL_CERTIFICATES, java.lang.Boolean.TRUE).build())))
154+
.credentialsProvider(getCredentialsV2())
155+
.region(Region.of(Localstack.INSTANCE.getDefaultRegion()))
156+
.endpointOverride(new URI(endpointURL));
157+
} catch (Exception e) {
158+
throw new RuntimeException(e);
159+
}
160+
}
161+
90162
private static AwsCredentialsProvider getCredentialsV2() throws Exception {
91163
return StaticCredentialsProvider.create(AwsBasicCredentials.create("access", "secret"));
92164
}

0 commit comments

Comments
 (0)
0