Skip to content

Commit 62dcf25

Browse files
committed
Use AwsCredentialsProvider and AwsRegionProvider interfaces for bean declaration instead of their Chain classes
1 parent 222f602 commit 62dcf25

12 files changed

+43
-43
lines changed

aws-sdk-v2/src/main/java/io/micronaut/aws/sdk/v2/CredentialsAndRegionFactory.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,13 @@
1515
*/
1616
package io.micronaut.aws.sdk.v2;
1717

18-
import io.micronaut.context.annotation.Bean;
1918
import io.micronaut.context.annotation.BootstrapContextCompatible;
2019
import io.micronaut.context.annotation.Factory;
2120
import io.micronaut.context.env.Environment;
21+
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
2222
import software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain;
2323
import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;
24+
import software.amazon.awssdk.regions.providers.AwsRegionProvider;
2425
import software.amazon.awssdk.regions.providers.AwsRegionProviderChain;
2526
import software.amazon.awssdk.regions.providers.DefaultAwsRegionProviderChain;
2627

@@ -41,9 +42,8 @@ public class CredentialsAndRegionFactory {
4142
* @return An {@link AwsCredentialsProviderChain} that attempts to read the values from the Micronaut environment
4243
* first, then delegates to {@link DefaultCredentialsProvider}.
4344
*/
44-
@Bean(preDestroy = "close")
4545
@Singleton
46-
public AwsCredentialsProviderChain awsCredentialsProvider(Environment environment) {
46+
public AwsCredentialsProvider awsCredentialsProvider(Environment environment) {
4747
return AwsCredentialsProviderChain.of(
4848
EnvironmentAwsCredentialsProvider.create(environment),
4949
DefaultCredentialsProvider.create()
@@ -56,7 +56,7 @@ public AwsCredentialsProviderChain awsCredentialsProvider(Environment environmen
5656
* first, then delegates to {@link DefaultAwsRegionProviderChain}.
5757
*/
5858
@Singleton
59-
public AwsRegionProviderChain awsRegionProvider(Environment environment) {
59+
public AwsRegionProvider awsRegionProvider(Environment environment) {
6060
return new AwsRegionProviderChain(
6161
new EnvironmentAwsRegionProvider(environment),
6262
new DefaultAwsRegionProviderChain()

aws-sdk-v2/src/main/java/io/micronaut/aws/sdk/v2/service/AwsClientFactory.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@
1515
*/
1616
package io.micronaut.aws.sdk.v2.service;
1717

18-
import software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain;
18+
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
1919
import software.amazon.awssdk.awscore.client.builder.AwsAsyncClientBuilder;
2020
import software.amazon.awssdk.awscore.client.builder.AwsClientBuilder;
2121
import software.amazon.awssdk.awscore.client.builder.AwsSyncClientBuilder;
2222
import software.amazon.awssdk.core.SdkClient;
2323
import software.amazon.awssdk.http.SdkHttpClient;
2424
import software.amazon.awssdk.http.async.SdkAsyncHttpClient;
25-
import software.amazon.awssdk.regions.providers.AwsRegionProviderChain;
25+
import software.amazon.awssdk.regions.providers.AwsRegionProvider;
2626

2727
/**
2828
* Abstract class that eases creation of AWS client factories.
@@ -37,16 +37,16 @@
3737
*/
3838
public abstract class AwsClientFactory<SB extends AwsSyncClientBuilder<SB, SC> & AwsClientBuilder<SB, SC>, AB extends AwsAsyncClientBuilder<AB, AC> & AwsClientBuilder<AB, AC>, SC, AC extends SdkClient> {
3939

40-
protected final AwsCredentialsProviderChain credentialsProvider;
41-
protected final AwsRegionProviderChain regionProvider;
40+
protected final AwsCredentialsProvider credentialsProvider;
41+
protected final AwsRegionProvider regionProvider;
4242

4343
/**
4444
* Constructor.
4545
*
4646
* @param credentialsProvider The credentials provider
4747
* @param regionProvider The region provider
4848
*/
49-
protected AwsClientFactory(AwsCredentialsProviderChain credentialsProvider, AwsRegionProviderChain regionProvider) {
49+
protected AwsClientFactory(AwsCredentialsProvider credentialsProvider, AwsRegionProvider regionProvider) {
5050
this.credentialsProvider = credentialsProvider;
5151
this.regionProvider = regionProvider;
5252
}

aws-sdk-v2/src/main/java/io/micronaut/aws/sdk/v2/service/dynamodb/DynamoDbClientFactory.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@
1919
import io.micronaut.context.annotation.Bean;
2020
import io.micronaut.context.annotation.Factory;
2121
import io.micronaut.context.annotation.Requires;
22-
import software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain;
22+
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
2323
import software.amazon.awssdk.http.SdkHttpClient;
2424
import software.amazon.awssdk.http.async.SdkAsyncHttpClient;
25-
import software.amazon.awssdk.regions.providers.AwsRegionProviderChain;
25+
import software.amazon.awssdk.regions.providers.AwsRegionProvider;
2626
import software.amazon.awssdk.services.dynamodb.DynamoDbAsyncClient;
2727
import software.amazon.awssdk.services.dynamodb.DynamoDbAsyncClientBuilder;
2828
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
@@ -45,7 +45,7 @@ public class DynamoDbClientFactory extends AwsClientFactory<DynamoDbClientBuilde
4545
* @param credentialsProvider The credentials provider
4646
* @param regionProvider The region provider
4747
*/
48-
protected DynamoDbClientFactory(AwsCredentialsProviderChain credentialsProvider, AwsRegionProviderChain regionProvider) {
48+
protected DynamoDbClientFactory(AwsCredentialsProvider credentialsProvider, AwsRegionProvider regionProvider) {
4949
super(credentialsProvider, regionProvider);
5050
}
5151

aws-sdk-v2/src/main/java/io/micronaut/aws/sdk/v2/service/s3/S3ClientFactory.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@
1919
import io.micronaut.context.annotation.Bean;
2020
import io.micronaut.context.annotation.Factory;
2121
import io.micronaut.context.annotation.Requires;
22-
import software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain;
22+
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
2323
import software.amazon.awssdk.http.SdkHttpClient;
2424
import software.amazon.awssdk.http.async.SdkAsyncHttpClient;
25-
import software.amazon.awssdk.regions.providers.AwsRegionProviderChain;
25+
import software.amazon.awssdk.regions.providers.AwsRegionProvider;
2626
import software.amazon.awssdk.services.s3.S3AsyncClient;
2727
import software.amazon.awssdk.services.s3.S3AsyncClientBuilder;
2828
import software.amazon.awssdk.services.s3.S3Client;
@@ -48,7 +48,7 @@ public class S3ClientFactory extends AwsClientFactory<S3ClientBuilder, S3AsyncCl
4848
* @param regionProvider The region provider
4949
* @param configuration The service configuration
5050
*/
51-
public S3ClientFactory(AwsCredentialsProviderChain credentialsProvider, AwsRegionProviderChain regionProvider,
51+
public S3ClientFactory(AwsCredentialsProvider credentialsProvider, AwsRegionProvider regionProvider,
5252
S3ConfigurationProperties configuration) {
5353
super(credentialsProvider, regionProvider);
5454
this.configuration = configuration;

aws-sdk-v2/src/main/java/io/micronaut/aws/sdk/v2/service/secretsmanager/SecretsManagerClientFactory.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@
2020
import io.micronaut.context.annotation.BootstrapContextCompatible;
2121
import io.micronaut.context.annotation.Factory;
2222
import io.micronaut.context.annotation.Requires;
23-
import software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain;
23+
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
2424
import software.amazon.awssdk.http.SdkHttpClient;
2525
import software.amazon.awssdk.http.async.SdkAsyncHttpClient;
26-
import software.amazon.awssdk.regions.providers.AwsRegionProviderChain;
26+
import software.amazon.awssdk.regions.providers.AwsRegionProvider;
2727
import software.amazon.awssdk.services.secretsmanager.SecretsManagerAsyncClient;
2828
import software.amazon.awssdk.services.secretsmanager.SecretsManagerAsyncClientBuilder;
2929
import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient;
@@ -46,7 +46,7 @@ public class SecretsManagerClientFactory extends AwsClientFactory<SecretsManager
4646
* @param credentialsProvider The credentials provider
4747
* @param regionProvider The region provider
4848
*/
49-
protected SecretsManagerClientFactory(AwsCredentialsProviderChain credentialsProvider, AwsRegionProviderChain regionProvider) {
49+
protected SecretsManagerClientFactory(AwsCredentialsProvider credentialsProvider, AwsRegionProvider regionProvider) {
5050
super(credentialsProvider, regionProvider);
5151
}
5252

aws-sdk-v2/src/main/java/io/micronaut/aws/sdk/v2/service/ses/SesClientFactory.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@
1919
import io.micronaut.context.annotation.Bean;
2020
import io.micronaut.context.annotation.Factory;
2121
import io.micronaut.context.annotation.Requires;
22-
import software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain;
22+
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
2323
import software.amazon.awssdk.http.SdkHttpClient;
2424
import software.amazon.awssdk.http.async.SdkAsyncHttpClient;
25-
import software.amazon.awssdk.regions.providers.AwsRegionProviderChain;
25+
import software.amazon.awssdk.regions.providers.AwsRegionProvider;
2626
import software.amazon.awssdk.services.ses.SesAsyncClient;
2727
import software.amazon.awssdk.services.ses.SesAsyncClientBuilder;
2828
import software.amazon.awssdk.services.ses.SesClient;
@@ -45,7 +45,7 @@ public class SesClientFactory extends AwsClientFactory<SesClientBuilder, SesAsyn
4545
* @param credentialsProvider The credentials provider
4646
* @param regionProvider The region provider
4747
*/
48-
protected SesClientFactory(AwsCredentialsProviderChain credentialsProvider, AwsRegionProviderChain regionProvider) {
48+
protected SesClientFactory(AwsCredentialsProvider credentialsProvider, AwsRegionProvider regionProvider) {
4949
super(credentialsProvider, regionProvider);
5050
}
5151

aws-sdk-v2/src/main/java/io/micronaut/aws/sdk/v2/service/sns/SnsClientFactory.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@
1919
import io.micronaut.context.annotation.Bean;
2020
import io.micronaut.context.annotation.Factory;
2121
import io.micronaut.context.annotation.Requires;
22-
import software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain;
22+
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
2323
import software.amazon.awssdk.http.SdkHttpClient;
2424
import software.amazon.awssdk.http.async.SdkAsyncHttpClient;
25-
import software.amazon.awssdk.regions.providers.AwsRegionProviderChain;
25+
import software.amazon.awssdk.regions.providers.AwsRegionProvider;
2626
import software.amazon.awssdk.services.sns.SnsAsyncClient;
2727
import software.amazon.awssdk.services.sns.SnsAsyncClientBuilder;
2828
import software.amazon.awssdk.services.sns.SnsClient;
@@ -45,7 +45,7 @@ public class SnsClientFactory extends AwsClientFactory<SnsClientBuilder, SnsAsyn
4545
* @param credentialsProvider The credentials provider
4646
* @param regionProvider The region provider
4747
*/
48-
protected SnsClientFactory(AwsCredentialsProviderChain credentialsProvider, AwsRegionProviderChain regionProvider) {
48+
protected SnsClientFactory(AwsCredentialsProvider credentialsProvider, AwsRegionProvider regionProvider) {
4949
super(credentialsProvider, regionProvider);
5050
}
5151

aws-sdk-v2/src/main/java/io/micronaut/aws/sdk/v2/service/sqs/SqsClientFactory.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@
1919
import io.micronaut.context.annotation.Bean;
2020
import io.micronaut.context.annotation.Factory;
2121
import io.micronaut.context.annotation.Requires;
22-
import software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain;
22+
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
2323
import software.amazon.awssdk.http.SdkHttpClient;
2424
import software.amazon.awssdk.http.async.SdkAsyncHttpClient;
25-
import software.amazon.awssdk.regions.providers.AwsRegionProviderChain;
25+
import software.amazon.awssdk.regions.providers.AwsRegionProvider;
2626
import software.amazon.awssdk.services.sqs.SqsAsyncClient;
2727
import software.amazon.awssdk.services.sqs.SqsAsyncClientBuilder;
2828
import software.amazon.awssdk.services.sqs.SqsClient;
@@ -45,7 +45,7 @@ public class SqsClientFactory extends AwsClientFactory<SqsClientBuilder, SqsAsyn
4545
* @param credentialsProvider The credentials provider
4646
* @param regionProvider The region provider
4747
*/
48-
protected SqsClientFactory(AwsCredentialsProviderChain credentialsProvider, AwsRegionProviderChain regionProvider) {
48+
protected SqsClientFactory(AwsCredentialsProvider credentialsProvider, AwsRegionProvider regionProvider) {
4949
super(credentialsProvider, regionProvider);
5050
}
5151

aws-sdk-v2/src/main/java/io/micronaut/aws/sdk/v2/service/ssm/SsmClientFactory.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@
2020
import io.micronaut.context.annotation.BootstrapContextCompatible;
2121
import io.micronaut.context.annotation.Factory;
2222
import io.micronaut.context.annotation.Requires;
23-
import software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain;
23+
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
2424
import software.amazon.awssdk.http.SdkHttpClient;
2525
import software.amazon.awssdk.http.async.SdkAsyncHttpClient;
26-
import software.amazon.awssdk.regions.providers.AwsRegionProviderChain;
26+
import software.amazon.awssdk.regions.providers.AwsRegionProvider;
2727
import software.amazon.awssdk.services.ssm.SsmAsyncClient;
2828
import software.amazon.awssdk.services.ssm.SsmAsyncClientBuilder;
2929
import software.amazon.awssdk.services.ssm.SsmClient;
@@ -47,7 +47,7 @@ public class SsmClientFactory extends AwsClientFactory<SsmClientBuilder, SsmAsyn
4747
* @param credentialsProvider The credentials provider
4848
* @param regionProvider The region provider
4949
*/
50-
protected SsmClientFactory(AwsCredentialsProviderChain credentialsProvider, AwsRegionProviderChain regionProvider) {
50+
protected SsmClientFactory(AwsCredentialsProvider credentialsProvider, AwsRegionProvider regionProvider) {
5151
super(credentialsProvider, regionProvider);
5252
}
5353

aws-sdk-v2/src/test/groovy/io/micronaut/aws/sdk/v2/EnvironmentAwsCredentialsProviderSpec.groovy

+6-6
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ package io.micronaut.aws.sdk.v2
1717

1818
import io.micronaut.context.ApplicationContext
1919
import software.amazon.awssdk.auth.credentials.AwsCredentials
20-
import software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain
20+
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider
2121
import software.amazon.awssdk.auth.credentials.AwsSessionCredentials
2222
import spock.lang.Specification
2323
import spock.util.environment.RestoreSystemProperties
@@ -38,7 +38,7 @@ class EnvironmentAwsCredentialsProviderSpec extends Specification {
3838

3939
when:
4040
AwsCredentials awsCredentials =
41-
applicationContext.getBean(AwsCredentialsProviderChain).resolveCredentials()
41+
applicationContext.getBean(AwsCredentialsProvider).resolveCredentials()
4242

4343
then:
4444
awsCredentials.accessKeyId() == TEST_KEY_ID
@@ -59,7 +59,7 @@ class EnvironmentAwsCredentialsProviderSpec extends Specification {
5959

6060
when:
6161
AwsCredentials awsCredentials =
62-
applicationContext.getBean(AwsCredentialsProviderChain).resolveCredentials()
62+
applicationContext.getBean(AwsCredentialsProvider).resolveCredentials()
6363

6464
then:
6565
awsCredentials.accessKeyId() == TEST_KEY_ID
@@ -79,7 +79,7 @@ class EnvironmentAwsCredentialsProviderSpec extends Specification {
7979

8080
when:
8181
AwsSessionCredentials awsCredentials =
82-
applicationContext.getBean(AwsCredentialsProviderChain).resolveCredentials() as AwsSessionCredentials
82+
applicationContext.getBean(AwsCredentialsProvider).resolveCredentials() as AwsSessionCredentials
8383

8484
then:
8585
awsCredentials.accessKeyId() == TEST_KEY_ID
@@ -96,7 +96,7 @@ class EnvironmentAwsCredentialsProviderSpec extends Specification {
9696

9797
when:
9898
AwsSessionCredentials awsCredentials =
99-
applicationContext.getBean(AwsCredentialsProviderChain).resolveCredentials() as AwsSessionCredentials
99+
applicationContext.getBean(AwsCredentialsProvider).resolveCredentials() as AwsSessionCredentials
100100

101101
then:
102102
awsCredentials.accessKeyId() == "yamlAccessKeyId"
@@ -117,7 +117,7 @@ class EnvironmentAwsCredentialsProviderSpec extends Specification {
117117

118118
when:
119119
AwsCredentials awsCredentials =
120-
applicationContext.getBean(AwsCredentialsProviderChain).resolveCredentials()
120+
applicationContext.getBean(AwsCredentialsProvider).resolveCredentials()
121121

122122
then:
123123
awsCredentials.accessKeyId() == TEST_KEY_ID

aws-sdk-v2/src/test/groovy/io/micronaut/aws/sdk/v2/EnvironmentAwsRegionProviderSpec.groovy

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package io.micronaut.aws.sdk.v2
22

33
import io.micronaut.context.ApplicationContext
44
import software.amazon.awssdk.regions.Region
5-
import software.amazon.awssdk.regions.providers.AwsRegionProviderChain
5+
import software.amazon.awssdk.regions.providers.AwsRegionProvider
66
import spock.lang.Specification
77
import spock.util.environment.RestoreSystemProperties
88

@@ -17,7 +17,7 @@ class EnvironmentAwsRegionProviderSpec extends Specification {
1717
])
1818

1919
when:
20-
Region region = applicationContext.getBean(AwsRegionProviderChain).region
20+
Region region = applicationContext.getBean(AwsRegionProvider).region
2121

2222
then:
2323
region.toString() == TEST_REGION
@@ -31,7 +31,7 @@ class EnvironmentAwsRegionProviderSpec extends Specification {
3131
ApplicationContext applicationContext = ApplicationContext.run("yaml")
3232

3333
when:
34-
Region region = applicationContext.getBean(AwsRegionProviderChain).region
34+
Region region = applicationContext.getBean(AwsRegionProvider).region
3535

3636
then:
3737
region.toString() == TEST_REGION
@@ -47,7 +47,7 @@ class EnvironmentAwsRegionProviderSpec extends Specification {
4747
ApplicationContext applicationContext = ApplicationContext.run()
4848

4949
when:
50-
Region region = applicationContext.getBean(AwsRegionProviderChain).region
50+
Region region = applicationContext.getBean(AwsRegionProvider).region
5151

5252
then:
5353
region.toString() == TEST_REGION

aws-sdk-v2/src/test/java/io/micronaut/aws/sdk/v2/RekognitionClientFactory.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
import io.micronaut.context.annotation.Bean;
55
import io.micronaut.context.annotation.Factory;
66
import io.micronaut.context.annotation.Requires;
7-
import software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain;
7+
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
88
import software.amazon.awssdk.http.SdkHttpClient;
99
import software.amazon.awssdk.http.async.SdkAsyncHttpClient;
10-
import software.amazon.awssdk.regions.providers.AwsRegionProviderChain;
10+
import software.amazon.awssdk.regions.providers.AwsRegionProvider;
1111
import software.amazon.awssdk.services.rekognition.RekognitionAsyncClient;
1212
import software.amazon.awssdk.services.rekognition.RekognitionAsyncClientBuilder;
1313
import software.amazon.awssdk.services.rekognition.RekognitionClient;
@@ -20,7 +20,7 @@
2020
@Factory
2121
public class RekognitionClientFactory extends AwsClientFactory<RekognitionClientBuilder, RekognitionAsyncClientBuilder, RekognitionClient, RekognitionAsyncClient> {
2222

23-
protected RekognitionClientFactory(AwsCredentialsProviderChain credentialsProvider, AwsRegionProviderChain regionProvider) {
23+
protected RekognitionClientFactory(AwsCredentialsProvider credentialsProvider, AwsRegionProvider regionProvider) {
2424
super(credentialsProvider, regionProvider);
2525
}
2626

0 commit comments

Comments
 (0)