1
1
package cloud .localstack .awssdkv2 ;
2
2
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 ;
3
13
import software .amazon .awssdk .regions .Region ;
14
+ import software .amazon .awssdk .services .cloudwatch .CloudWatchAsyncClient ;
15
+ import software .amazon .awssdk .services .cloudwatch .CloudWatchClient ;
4
16
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 ;
5
22
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 ;
13
28
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 ;
23
37
24
- import java .net .* ;
38
+ import java .net .URI ;
25
39
26
40
/**
27
41
* Utility methods for AWS SDK v2
30
44
public class TestUtils {
31
45
32
46
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 ();
34
52
}
35
53
36
54
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 ();
38
60
}
39
61
40
62
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 ();
42
68
}
43
69
44
70
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 ();
46
76
}
47
77
48
78
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 ();
50
84
}
51
85
52
86
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 ();
54
92
}
55
93
56
94
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 ();
58
100
}
59
101
60
102
public static S3AsyncClient getClientS3AsyncV2 () {
61
- return wrapApiClientV2 (S3AsyncClient .builder (), Localstack .INSTANCE .getEndpointS3 ()).build ();
103
+ return wrapApiAsyncClientV2 (S3AsyncClient .builder (), Localstack .INSTANCE .getEndpointS3 ()).build ();
62
104
}
63
-
105
+
106
+ public static S3Client getClientS3V2 () {
107
+ return wrapApiSyncClientV2 (S3Client .builder (), Localstack .INSTANCE .getEndpointS3 ()).build ();
108
+ }
109
+
64
110
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 ();
66
116
}
67
117
68
118
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 ();
70
124
}
71
-
125
+
72
126
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 ();
74
132
}
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 ) {
77
135
try {
78
136
return (T ) ((AwsClientBuilder )builder
79
137
.httpClient (NettyNioAsyncHttpClient .builder ().buildWithDefaults (
@@ -87,6 +145,20 @@ public static <T extends SdkAsyncClientBuilder> T wrapApiClientV2(T builder, Str
87
145
}
88
146
}
89
147
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
+
90
162
private static AwsCredentialsProvider getCredentialsV2 () throws Exception {
91
163
return StaticCredentialsProvider .create (AwsBasicCredentials .create ("access" , "secret" ));
92
164
}
0 commit comments