Skip to content

Commit f9ef45f

Browse files
authored
feat: make region provider chain accept list of region providers (#1010)
1 parent 1632a01 commit f9ef45f

File tree

4 files changed

+24
-0
lines changed

4 files changed

+24
-0
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"id": "bcac069f-17fa-45ec-aa1e-e392a4c99042",
3+
"type": "feature",
4+
"description": "Make RegionProviderChain accept a list of RegionProvider",
5+
"issues": [
6+
"awslabs/aws-sdk-kotlin#1004"
7+
]
8+
}

aws-runtime/aws-config/api/aws-config.api

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1665,6 +1665,7 @@ public abstract interface class aws/sdk/kotlin/runtime/region/RegionProvider {
16651665
}
16661666

16671667
public class aws/sdk/kotlin/runtime/region/RegionProviderChain : aws/sdk/kotlin/runtime/region/RegionProvider {
1668+
public fun <init> (Ljava/util/List;)V
16681669
public fun <init> ([Laws/sdk/kotlin/runtime/region/RegionProvider;)V
16691670
protected final fun getProviders ()[Laws/sdk/kotlin/runtime/region/RegionProvider;
16701671
public fun getRegion (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;

aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/region/RegionProviderChain.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ public open class RegionProviderChain(
1919
protected vararg val providers: RegionProvider,
2020
) : RegionProvider {
2121

22+
public constructor(providers: List<RegionProvider>) : this(*providers.toTypedArray())
23+
2224
private val resolvedRegion = asyncLazy(::resolveRegion)
2325

2426
init {

aws-runtime/aws-config/common/test/aws/sdk/kotlin/runtime/region/AwsRegionProviderChainTest.kt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,17 @@ class AwsRegionProviderChainTest {
3333

3434
assertEquals("us-east-1", chain.getRegion())
3535
}
36+
37+
@Test
38+
fun testChainList() = runTest {
39+
val providers = listOf<RegionProvider>(
40+
TestProvider(null),
41+
TestProvider("us-east-1"),
42+
TestProvider("us-east-2"),
43+
)
44+
45+
val chain = RegionProviderChain(providers)
46+
47+
assertEquals("us-east-1", chain.getRegion())
48+
}
3649
}

0 commit comments

Comments
 (0)