From d3c8374f9f16fb6c0ed15d21ea46f35d566b72b2 Mon Sep 17 00:00:00 2001 From: mrm9084 Date: Tue, 25 May 2021 10:17:01 -0700 Subject: [PATCH 01/15] Added Basic Test and ARM file --- .../pom.xml | 119 +++++++++++------ .../spring/cloud/config/LoadConfigsTest.java | 27 ++++ .../azure/spring/cloud/config/SampleIT.java | 17 --- .../cloud/config/app/AppConfiguration.java | 13 ++ .../spring/cloud/config/app/DummyApp.java | 7 + .../cloud/config/app/MyCredentials.java | 25 ++++ .../test/resources/META-INF/spring.factories | 3 + .../test-resources.json | 125 ++++++++++++++++++ 8 files changed, 280 insertions(+), 56 deletions(-) create mode 100644 sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/LoadConfigsTest.java delete mode 100644 sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/SampleIT.java create mode 100644 sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/app/AppConfiguration.java create mode 100644 sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/app/DummyApp.java create mode 100644 sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/app/MyCredentials.java create mode 100644 sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/resources/META-INF/spring.factories create mode 100644 sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/test-resources.json diff --git a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml index 196200997eed..b43ee4f37516 100644 --- a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml +++ b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml @@ -1,48 +1,89 @@ + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - 4.0.0 + 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 2.4.5 - - + + org.springframework.boot + spring-boot-starter-parent + 2.4.5 + + - com.azure.spring - azure-spring-cloud-test-appconfiguration-config - 1.0.0 + com.azure.spring + azure-spring-cloud-test-appconfiguration-config + 1.0.0 - - - com.microsoft.azure - spring-cloud-starter-azure-appconfiguration-config - 1.4.0-beta.1 - - - org.springframework.boot - spring-boot-starter-test - test - - - junit - junit - 4.13.2 - test - - + + + com.azure.spring + azure-spring-cloud-starter-appconfiguration-config + 2.0.0-beta.2 + + + com.azure.spring + azure-spring-boot-test-core + 1.0.0 + + + com.microsoft.azure + azure + 1.34.0 + + + com.fasterxml.jackson.core + jackson-core + + + com.google.code.gson + gson + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-test + test + + + junit + junit + 4.13.2 + test + + + org.junit.vintage + junit-vintage-engine + 5.7.1 + test + + + org.hamcrest + hamcrest-core + + + + - - - - org.apache.maven.plugins - maven-failsafe-plugin - 2.22.0 - - - + + + + org.apache.maven.plugins + maven-failsafe-plugin + 2.22.0 + + + org.apache.maven.plugins + maven-surefire-plugin + 2.22.0 + + + diff --git a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/LoadConfigsTest.java b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/LoadConfigsTest.java new file mode 100644 index 000000000000..fe96dece5711 --- /dev/null +++ b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/LoadConfigsTest.java @@ -0,0 +1,27 @@ +package com.microsoft.azure.spring.cloud.config; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.azure.spring.test.AppRunner; +import com.microsoft.azure.spring.cloud.config.app.DummyApp; + +public class LoadConfigsTest { + + private final Logger log = LoggerFactory.getLogger(LoadConfigsTest.class); + + private static final String STORE_NAME = System.getenv("STORE_NAME"); + + + @Test + public void sampleTest() { + try (AppRunner app = new AppRunner(DummyApp.class)) { + app.property("spring.cloud.azure.appconfiguration.stores[0].endpoint", STORE_NAME); + app.start(); + assertEquals("Test",app.getProperty("config.message")); + } + } +} diff --git a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/SampleIT.java b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/SampleIT.java deleted file mode 100644 index 2ed15e8597b4..000000000000 --- a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/SampleIT.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.microsoft.azure.spring.cloud.config; - -import org.junit.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import static org.assertj.core.api.Assertions.assertThat; - -public class SampleIT { - - private final Logger log = LoggerFactory.getLogger(SampleIT.class); - @Test - public void sampleTest() { - log.info("test log info."); - assertThat(true).isEqualTo(true); - } -} diff --git a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/app/AppConfiguration.java b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/app/AppConfiguration.java new file mode 100644 index 000000000000..eddea1060ac3 --- /dev/null +++ b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/app/AppConfiguration.java @@ -0,0 +1,13 @@ +package com.microsoft.azure.spring.cloud.config.app; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class AppConfiguration { + + @Bean + public MyCredentials azureCredentials() { + return new MyCredentials(); + } +} \ No newline at end of file diff --git a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/app/DummyApp.java b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/app/DummyApp.java new file mode 100644 index 000000000000..3be7b7183662 --- /dev/null +++ b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/app/DummyApp.java @@ -0,0 +1,7 @@ +package com.microsoft.azure.spring.cloud.config.app; + +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class DummyApp { +} \ No newline at end of file diff --git a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/app/MyCredentials.java b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/app/MyCredentials.java new file mode 100644 index 000000000000..262a852fce0f --- /dev/null +++ b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/app/MyCredentials.java @@ -0,0 +1,25 @@ +package com.microsoft.azure.spring.cloud.config.app; + +import com.azure.core.credential.TokenCredential; +import com.azure.identity.EnvironmentCredentialBuilder; +//import com.azure.identity.AzureCliCredentialBuilder; +import com.microsoft.azure.spring.cloud.config.AppConfigurationCredentialProvider; +import com.microsoft.azure.spring.cloud.config.KeyVaultCredentialProvider; + +public class MyCredentials implements AppConfigurationCredentialProvider, KeyVaultCredentialProvider{ + + @Override + public TokenCredential getKeyVaultCredential(String uri) { + return buildCredential(); + } + + @Override + public TokenCredential getAppConfigCredential(String uri) { + return buildCredential(); + } + + TokenCredential buildCredential() { + return new EnvironmentCredentialBuilder().build(); + } + +} \ No newline at end of file diff --git a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/resources/META-INF/spring.factories b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/resources/META-INF/spring.factories new file mode 100644 index 000000000000..66d05d960422 --- /dev/null +++ b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/resources/META-INF/spring.factories @@ -0,0 +1,3 @@ +org.springframework.cloud.bootstrap.BootstrapConfiguration=\ +com.microsoft.azure.spring.cloud.config.app.AppConfiguration + diff --git a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/test-resources.json b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/test-resources.json new file mode 100644 index 000000000000..f191005c493b --- /dev/null +++ b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/test-resources.json @@ -0,0 +1,125 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "configStoreName": { + "type": "string", + "defaultValue": "appconfigspringintegrationtests", + "metadata": { + "description": "Specifies the name of the App Configuration store." + } + }, + "location": { + "type": "string", + "defaultValue": "[resourceGroup().location]", + "metadata": { + "description": "Specifies the Azure location where the app configuration store should be created." + } + }, + "keyValueNames": { + "type": "array", + "defaultValue": [ + "~2Fapplication~2Fconfig.message" + ], + "metadata": { + "description": "Specifies the names of the key-value resources. The name is a combination of key and label with $ as delimiter. The label is optional." + } + }, + "keyValueValues": { + "type": "array", + "defaultValue": [ + "Test" + ], + "metadata": { + "description": "Specifies the values of the key-value resources. It's optional" + } + }, + "contentType": { + "type": "string", + "defaultValue": "", + "metadata": { + "description": "Specifies the content type of the key-value resources. For feature flag, the value should be application/vnd.microsoft.appconfig.ff+json;charset=utf-8. For Key Value reference, the value should be application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8. Otherwise, it's optional." + } + }, + "tags": { + "type": "object", + "defaultValue": {}, + "metadata": { + "description": "Adds tags for the key-value resources. It's optional" + } + }, + "principalId": { + "type": "string", + "metadata": { + "description": "The principal to assign the role to" + } + }, + "builtInRoleType": { + "type": "string", + "defaultValue":"App Configuration Data Owner", + "allowedValues": [ + "App Configuration Data Owner" + ], + "metadata": { + "description": "Built-in role to assign" + } + }, + "roleNameGuid": { + "type": "string", + "defaultValue": "[newGuid()]", + "metadata": { + "description": "A new GUID used to identify the role assignment" + } + } + }, + "variables": { + "App Configuration Data Owner": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', '5ae67dd6-50cb-40e7-96ff-dc2bfa4b606b')]" + }, + "resources": [ + { + "type": "Microsoft.AppConfiguration/configurationStores", + "apiVersion": "2020-07-01-preview", + "name": "[parameters('configStoreName')]", + "location": "[parameters('location')]", + "sku": { + "name": "standard" + } + }, + { + "type": "Microsoft.AppConfiguration/configurationStores/keyValues", + "apiVersion": "2020-07-01-preview", + "name": "[concat(parameters('configStoreName'), '/', parameters('keyValueNames')[copyIndex()])]", + "copy": { + "name": "keyValueCopy", + "count": "[length(parameters('keyValueNames'))]" + }, + "dependsOn": [ + "[parameters('configStoreName')]" + ], + "properties": { + "value": "[parameters('keyValueValues')[copyIndex()]]", + "contentType": "[parameters('contentType')]", + "tags": "[parameters('tags')]" + } + }, + { + "type": "Microsoft.Authorization/roleAssignments", + "apiVersion": "2020-04-01-preview", + "name": "[parameters('roleNameGuid')]", + "scope": "[concat('Microsoft.AppConfiguration/configurationStores', '/', parameters('configStoreName'))]", + "dependsOn": [ + "[parameters('configStoreName')]" + ], + "properties": { + "roleDefinitionId": "[variables(parameters('builtInRoleType'))]", + "principalId": "[parameters('principalId')]" + } + } + ], + "outputs": { + "STORE_NAME": { + "type": "string", + "value": "[concat('https://', parameters('configStoreName'), '.azconfig.io')]" + } + } +} \ No newline at end of file From ee3b60b6f2810545edc7e34b130d80073996c25b Mon Sep 17 00:00:00 2001 From: mrm9084 Date: Tue, 25 May 2021 19:51:54 -0700 Subject: [PATCH 02/15] Fixing arm template --- .../test-resources.json | 77 +++++-------------- 1 file changed, 18 insertions(+), 59 deletions(-) diff --git a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/test-resources.json b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/test-resources.json index f191005c493b..36d1f5c2397d 100644 --- a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/test-resources.json +++ b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/test-resources.json @@ -2,53 +2,7 @@ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { - "configStoreName": { - "type": "string", - "defaultValue": "appconfigspringintegrationtests", - "metadata": { - "description": "Specifies the name of the App Configuration store." - } - }, - "location": { - "type": "string", - "defaultValue": "[resourceGroup().location]", - "metadata": { - "description": "Specifies the Azure location where the app configuration store should be created." - } - }, - "keyValueNames": { - "type": "array", - "defaultValue": [ - "~2Fapplication~2Fconfig.message" - ], - "metadata": { - "description": "Specifies the names of the key-value resources. The name is a combination of key and label with $ as delimiter. The label is optional." - } - }, - "keyValueValues": { - "type": "array", - "defaultValue": [ - "Test" - ], - "metadata": { - "description": "Specifies the values of the key-value resources. It's optional" - } - }, - "contentType": { - "type": "string", - "defaultValue": "", - "metadata": { - "description": "Specifies the content type of the key-value resources. For feature flag, the value should be application/vnd.microsoft.appconfig.ff+json;charset=utf-8. For Key Value reference, the value should be application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8. Otherwise, it's optional." - } - }, - "tags": { - "type": "object", - "defaultValue": {}, - "metadata": { - "description": "Adds tags for the key-value resources. It's optional" - } - }, - "principalId": { + "testApplicationId": { "type": "string", "metadata": { "description": "The principal to assign the role to" @@ -73,14 +27,19 @@ } }, "variables": { + "configStoreName": "[substring(toLower(concat('appconfig-', uniqueString(resourceGroup().id))), 0, 22)]", + "keyValueNames": ["~2Fapplication~2Fconfig.message"], + "keyValueValues": ["Test"], + "contentType": "", + "tags": {}, "App Configuration Data Owner": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', '5ae67dd6-50cb-40e7-96ff-dc2bfa4b606b')]" }, "resources": [ { + "location": "[resourceGroup().location]", "type": "Microsoft.AppConfiguration/configurationStores", "apiVersion": "2020-07-01-preview", - "name": "[parameters('configStoreName')]", - "location": "[parameters('location')]", + "name": "[variables('configStoreName')]", "sku": { "name": "standard" } @@ -88,38 +47,38 @@ { "type": "Microsoft.AppConfiguration/configurationStores/keyValues", "apiVersion": "2020-07-01-preview", - "name": "[concat(parameters('configStoreName'), '/', parameters('keyValueNames')[copyIndex()])]", + "name": "[concat(variables('configStoreName'), '/', variables('keyValueNames')[copyIndex()])]", "copy": { "name": "keyValueCopy", - "count": "[length(parameters('keyValueNames'))]" + "count": "[length(variables('keyValueNames'))]" }, "dependsOn": [ - "[parameters('configStoreName')]" + "[variables('configStoreName')]" ], "properties": { - "value": "[parameters('keyValueValues')[copyIndex()]]", - "contentType": "[parameters('contentType')]", - "tags": "[parameters('tags')]" + "value": "[variables('keyValueValues')[copyIndex()]]", + "contentType": "[variables('contentType')]", + "tags": "[variables('tags')]" } }, { "type": "Microsoft.Authorization/roleAssignments", "apiVersion": "2020-04-01-preview", "name": "[parameters('roleNameGuid')]", - "scope": "[concat('Microsoft.AppConfiguration/configurationStores', '/', parameters('configStoreName'))]", + "scope": "[concat('Microsoft.AppConfiguration/configurationStores', '/', variables('configStoreName'))]", "dependsOn": [ - "[parameters('configStoreName')]" + "[variables('configStoreName')]" ], "properties": { "roleDefinitionId": "[variables(parameters('builtInRoleType'))]", - "principalId": "[parameters('principalId')]" + "principalId": "[parameters('testApplicationId')]" } } ], "outputs": { "STORE_NAME": { "type": "string", - "value": "[concat('https://', parameters('configStoreName'), '.azconfig.io')]" + "value": "[concat('https://', variables('configStoreName'), '.azconfig.io')]" } } } \ No newline at end of file From 2dcfb83360a1c14170bbca3fbcb120c6cc68b2d4 Mon Sep 17 00:00:00 2001 From: mrm9084 Date: Tue, 25 May 2021 20:29:23 -0700 Subject: [PATCH 03/15] Fix outputs --- .../test-resources.json | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/test-resources.json b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/test-resources.json index 36d1f5c2397d..532402a0f4c2 100644 --- a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/test-resources.json +++ b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/test-resources.json @@ -10,7 +10,7 @@ }, "builtInRoleType": { "type": "string", - "defaultValue":"App Configuration Data Owner", + "defaultValue": "App Configuration Data Owner", "allowedValues": [ "App Configuration Data Owner" ], @@ -28,8 +28,12 @@ }, "variables": { "configStoreName": "[substring(toLower(concat('appconfig-', uniqueString(resourceGroup().id))), 0, 22)]", - "keyValueNames": ["~2Fapplication~2Fconfig.message"], - "keyValueValues": ["Test"], + "keyValueNames": [ + "~2Fapplication~2Fconfig.message" + ], + "keyValueValues": [ + "Test" + ], "contentType": "", "tags": {}, "App Configuration Data Owner": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', '5ae67dd6-50cb-40e7-96ff-dc2bfa4b606b')]" @@ -76,6 +80,18 @@ } ], "outputs": { + "AZURE_TENANT_ID": { + "type": "string", + "value": "[parameters('tenantId')]" + }, + "AZURE_CLIENT_ID": { + "type": "string", + "value": "[parameters('testApplicationId')]" + }, + "AZURE_CLIENT_SECRET": { + "type": "string", + "value": "[parameters('testApplicationSecret')]" + }, "STORE_NAME": { "type": "string", "value": "[concat('https://', variables('configStoreName'), '.azconfig.io')]" From 9262b1c403209254775dcc8225a4dce517ce654b Mon Sep 17 00:00:00 2001 From: mrm9084 Date: Tue, 25 May 2021 20:31:39 -0700 Subject: [PATCH 04/15] Added SP info --- .../test-resources.json | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/test-resources.json b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/test-resources.json index 532402a0f4c2..3cf80a294869 100644 --- a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/test-resources.json +++ b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/test-resources.json @@ -8,6 +8,12 @@ "description": "The principal to assign the role to" } }, + "testApplicationSecret": { + "type": "String" + }, + "testApplicationOid": { + "type": "String" + }, "builtInRoleType": { "type": "string", "defaultValue": "App Configuration Data Owner", @@ -32,9 +38,8 @@ "~2Fapplication~2Fconfig.message" ], "keyValueValues": [ - "Test" - ], - "contentType": "", + + "contentType": "", "tags": {}, "App Configuration Data Owner": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', '5ae67dd6-50cb-40e7-96ff-dc2bfa4b606b')]" }, @@ -89,12 +94,12 @@ "value": "[parameters('testApplicationId')]" }, "AZURE_CLIENT_SECRET": { - "type": "string", - "value": "[parameters('testApplicationSecret')]" - }, - "STORE_NAME": { - "type": "string", - "value": "[concat('https://', variables('configStoreName'), '.azconfig.io')]" + "type": "string", + "value": "[parameters('testApplicationSecret')]" + }, + "STORE_NAME": { + "type": "string", + "value": "[concat('https://', variables('configStoreName'), '.azconfig.io')]" + } } - } -} \ No newline at end of file + } \ No newline at end of file From 25dbd974f18b46ce0ece15e1228a1db970c73bcb Mon Sep 17 00:00:00 2001 From: Xiaolu Dai Date: Wed, 26 May 2021 17:16:45 +0800 Subject: [PATCH 05/15] refactor the test-resources.json --- .../test-resources.json | 70 +++++++------------ 1 file changed, 24 insertions(+), 46 deletions(-) diff --git a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/test-resources.json b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/test-resources.json index 3cf80a294869..096886aad1a9 100644 --- a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/test-resources.json +++ b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/test-resources.json @@ -3,45 +3,26 @@ "contentVersion": "1.0.0.0", "parameters": { "testApplicationId": { - "type": "string", - "metadata": { - "description": "The principal to assign the role to" - } + "type": "string" }, "testApplicationSecret": { "type": "String" }, - "testApplicationOid": { + "tenantId": { "type": "String" }, - "builtInRoleType": { - "type": "string", - "defaultValue": "App Configuration Data Owner", - "allowedValues": [ - "App Configuration Data Owner" - ], - "metadata": { - "description": "Built-in role to assign" - } - }, - "roleNameGuid": { - "type": "string", - "defaultValue": "[newGuid()]", - "metadata": { - "description": "A new GUID used to identify the role assignment" - } + "testApplicationOid": { + "type": "String" } }, "variables": { "configStoreName": "[substring(toLower(concat('appconfig-', uniqueString(resourceGroup().id))), 0, 22)]", - "keyValueNames": [ - "~2Fapplication~2Fconfig.message" - ], - "keyValueValues": [ - - "contentType": "", - "tags": {}, - "App Configuration Data Owner": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', '5ae67dd6-50cb-40e7-96ff-dc2bfa4b606b')]" + "roleNameGuid": "[guid(resourceGroup().id)]", + "roleDefinitionId": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '5ae67dd6-50cb-40e7-96ff-dc2bfa4b606b')]", + "keyValueName": "~2Fapplication~2Fconfig.message", + "keyValueValue": "Test", + "contentType": "", + "tags": "" }, "resources": [ { @@ -56,16 +37,13 @@ { "type": "Microsoft.AppConfiguration/configurationStores/keyValues", "apiVersion": "2020-07-01-preview", - "name": "[concat(variables('configStoreName'), '/', variables('keyValueNames')[copyIndex()])]", - "copy": { - "name": "keyValueCopy", - "count": "[length(variables('keyValueNames'))]" - }, + "name": "[concat(variables('configStoreName'), '/', variables('keyValueName'))]", + "dependsOn": [ "[variables('configStoreName')]" ], "properties": { - "value": "[variables('keyValueValues')[copyIndex()]]", + "value": "[variables('keyValueValue')]", "contentType": "[variables('contentType')]", "tags": "[variables('tags')]" } @@ -73,14 +51,14 @@ { "type": "Microsoft.Authorization/roleAssignments", "apiVersion": "2020-04-01-preview", - "name": "[parameters('roleNameGuid')]", + "name": "[variables('roleNameGuid')]", "scope": "[concat('Microsoft.AppConfiguration/configurationStores', '/', variables('configStoreName'))]", "dependsOn": [ "[variables('configStoreName')]" ], "properties": { - "roleDefinitionId": "[variables(parameters('builtInRoleType'))]", - "principalId": "[parameters('testApplicationId')]" + "roleDefinitionId": "[variables('roleDefinitionId')]", + "principalId": "[parameters('testApplicationOid')]" } } ], @@ -94,12 +72,12 @@ "value": "[parameters('testApplicationId')]" }, "AZURE_CLIENT_SECRET": { - "type": "string", - "value": "[parameters('testApplicationSecret')]" - }, - "STORE_NAME": { - "type": "string", - "value": "[concat('https://', variables('configStoreName'), '.azconfig.io')]" - } + "type": "string", + "value": "[parameters('testApplicationSecret')]" + }, + "STORE_NAME": { + "type": "string", + "value": "[concat('https://', variables('configStoreName'), '.azconfig.io')]" } - } \ No newline at end of file + } +} \ No newline at end of file From 8d9c0236427532d5bb6b012eaad0565b99961d2b Mon Sep 17 00:00:00 2001 From: Xiaolu Dai Date: Wed, 26 May 2021 17:38:23 +0800 Subject: [PATCH 06/15] remove the role assignment --- .../test-resources.json | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/test-resources.json b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/test-resources.json index 096886aad1a9..5bad01335900 100644 --- a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/test-resources.json +++ b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/test-resources.json @@ -47,19 +47,6 @@ "contentType": "[variables('contentType')]", "tags": "[variables('tags')]" } - }, - { - "type": "Microsoft.Authorization/roleAssignments", - "apiVersion": "2020-04-01-preview", - "name": "[variables('roleNameGuid')]", - "scope": "[concat('Microsoft.AppConfiguration/configurationStores', '/', variables('configStoreName'))]", - "dependsOn": [ - "[variables('configStoreName')]" - ], - "properties": { - "roleDefinitionId": "[variables('roleDefinitionId')]", - "principalId": "[parameters('testApplicationOid')]" - } } ], "outputs": { From 31c8ec5ce79a65601f97bf80a67c126c3641b29e Mon Sep 17 00:00:00 2001 From: mrm9084 Date: Wed, 26 May 2021 09:24:51 -0700 Subject: [PATCH 07/15] Fixed current version --- .../azure-spring-cloud-test-appconfiguration-config/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml index b43ee4f37516..2fb4c380ec12 100644 --- a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml +++ b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml @@ -20,7 +20,7 @@ com.azure.spring azure-spring-cloud-starter-appconfiguration-config - 2.0.0-beta.2 + 2.0.0-beta.2 com.azure.spring From 9ddad11a50a62be98d1a2c4c40743fd746db5071 Mon Sep 17 00:00:00 2001 From: mrm9084 Date: Wed, 26 May 2021 11:50:16 -0700 Subject: [PATCH 08/15] updated maven plugin --- .../pom.xml | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml index 2fb4c380ec12..85c8238d8ed5 100644 --- a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml +++ b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml @@ -74,10 +74,21 @@ - org.apache.maven.plugins - maven-failsafe-plugin - 2.22.0 - + org.apache.maven.plugins + maven-failsafe-plugin + 2.22.0 + + + default + + integration-test + + + ${skipSpringITs} + + + + org.apache.maven.plugins maven-surefire-plugin From ca37954bf1b4af4009044807ff6f534c5c38c9a2 Mon Sep 17 00:00:00 2001 From: mrm9084 Date: Thu, 27 May 2021 09:09:56 -0700 Subject: [PATCH 09/15] Added skip test --- .../pom.xml | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml index 85c8238d8ed5..57e9636f1689 100644 --- a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml +++ b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml @@ -16,6 +16,10 @@ azure-spring-cloud-test-appconfiguration-config 1.0.0 + + true + + com.azure.spring @@ -74,21 +78,21 @@ - org.apache.maven.plugins - maven-failsafe-plugin - 2.22.0 - - - default - - integration-test - - - ${skipSpringITs} - - - - + org.apache.maven.plugins + maven-failsafe-plugin + 2.22.0 + + + default + + integration-test + + + ${skipSpringITs} + + + + org.apache.maven.plugins maven-surefire-plugin From 57bf3c6ea240a33c6cf4b18ac65e33e479f180e3 Mon Sep 17 00:00:00 2001 From: mrm9084 Date: Thu, 27 May 2021 09:37:19 -0700 Subject: [PATCH 10/15] Updated to new dependency. --- .../azure-spring-cloud-test-appconfiguration-config/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml index 67540549e0aa..ab3bdcd02653 100644 --- a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml +++ b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml @@ -64,7 +64,7 @@ org.junit.vintage junit-vintage-engine - 5.7.1 + 5.7.2 test From 60213da0b066b27ae11eb2f7f8c5dbbcb064b7ee Mon Sep 17 00:00:00 2001 From: mrm9084 Date: Thu, 27 May 2021 10:08:54 -0700 Subject: [PATCH 11/15] Skipping Tests unless flag is set --- .../azure-spring-cloud-test-appconfiguration-config/pom.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml index ab3bdcd02653..5e479ee0fe37 100644 --- a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml +++ b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml @@ -97,6 +97,9 @@ org.apache.maven.plugins maven-surefire-plugin 2.22.0 + + ${skipSpringITs} + From 9e9c713e46853385f078ca47a34fad9d8922e0a1 Mon Sep 17 00:00:00 2001 From: mrm9084 Date: Thu, 27 May 2021 10:40:41 -0700 Subject: [PATCH 12/15] Added Stages --- sdk/appconfiguration/ci.yml | 67 +++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/sdk/appconfiguration/ci.yml b/sdk/appconfiguration/ci.yml index 5dda50c40dd9..564545b4bd23 100644 --- a/sdk/appconfiguration/ci.yml +++ b/sdk/appconfiguration/ci.yml @@ -99,3 +99,70 @@ extends: - name: azure-spring-cloud-test-appconfiguration-config groupId: com.azure.spring safeName: azurespringcloudtestappconfigurationconfig +stages: + - template: ../../eng/pipelines/templates/stages/archetype-sdk-tests.yml + parameters: + TimeoutInMinutes: 240 + ServiceDirectory: spring + EnvVars: ${{ parameters.EnvVars }} + TestName: ${{ parameters.TestName }} + Clouds: ${{ parameters.Clouds }} + TestResourceDirectories: ${{ parameters.TestResourceDirectories }} + Artifacts: ${{ parameters.Artifacts }} + TestStepMavenInputs: + options: '-Dmaven.wagon.http.pool=false $(DefaultOptions) -Dmaven.javadoc.skip=true -Drevapi.skip=true -DskipSpringITs=false -pl $(ProjectList)' + goals: "verify" + PreSteps: + - script: | + az cloud set --name AzureChinaCloud + condition: endsWith('${{ parameters.EnvVars.AAD_USER_NAME_ON_DEMAND }}', 'cn') + displayName: 'Switch to Azure China Cloud' + - powershell: | + az login --allow-no-subscriptions --tenant ${{ parameters.EnvVars.AAD_TENANT_ID_1 }} --service-principal -u ${{ parameters.EnvVars.AAD_SERVICE_PRICIPAL_CLIENT_ID }} -p ${{ parameters.EnvVars.AAD_SERVICE_PRICIPAL_CLIENT_SECRET }} + az ad user create --user-principal-name "${{ parameters.EnvVars.AAD_USER_NAME_ON_DEMAND }}" --display-name "${{ parameters.AadOnDemandUserDisplayName }}" --password "${{ parameters.EnvVars.AAD_USER_PASSWORD_ON_DEMAND }}" --force-change-password-next-login false + displayName: 'Create On-demand test user' + PostSteps: + - powershell: | + az ad user delete --id "${{ parameters.EnvVars.AAD_USER_NAME_ON_DEMAND }}" + az logout + condition: always() + displayName: 'Delete On-demand test user' + - script: | + python --version + python -m pip install setuptools termcolor in_place + python sdk/spring/scripts/replace_util.py --module spring --log debug --color false + displayName: 'Run replace_util.py' + - task: Maven@3 + displayName: 'Build and Install again, JDK Version: $(JavaBuildVersion)' + inputs: + mavenPomFile: pom.xml + goals: 'install' + options: '$(DefaultOptions) -DskipTests -Dgpg.skip -Dmaven.javadoc.skip=true -Dcheckstyle.skip=true -Dspotbugs.skip=true -Drevapi.skip=true -pl $(ProjectList) -am' + mavenOptions: '$(MemoryOptions) $(LoggingOptions)' + javaHomeOption: 'JDKVersion' + jdkVersionOption: $(JavaBuildVersion) + jdkArchitectureOption: 'x64' + publishJUnitResults: false + + - script: | + az cloud set --name AzureChinaCloud + condition: endsWith('${{ parameters.EnvVars.AAD_USER_NAME_ON_DEMAND }}', 'cn') + displayName: 'Switch to Azure China Cloud' + - powershell: | + az login --allow-no-subscriptions --tenant ${{ parameters.EnvVars.AAD_TENANT_ID_1 }} --service-principal -u ${{ parameters.EnvVars.AAD_SERVICE_PRICIPAL_CLIENT_ID }} -p ${{ parameters.EnvVars.AAD_SERVICE_PRICIPAL_CLIENT_SECRET }} + az ad user create --user-principal-name "${{ parameters.EnvVars.AAD_USER_NAME_ON_DEMAND }}" --display-name "${{ parameters.AadOnDemandUserDisplayName }}" --password "${{ parameters.EnvVars.AAD_USER_PASSWORD_ON_DEMAND }}" --force-change-password-next-login false + displayName: 'Create On-demand test user' + - task: Maven@3 + displayName: 'Run tests again, JDK Version: $(JavaBuildVersion)' + inputs: + mavenPomFile: pom.xml + goals: verify + options: '-Dmaven.wagon.http.pool=false $(DefaultOptions) -Dmaven.javadoc.skip=true -Drevapi.skip=true -DskipSpringITs=false -pl $(ProjectList)' + env: + ${{ parameters.EnvVars }} + + - powershell: | + az ad user delete --id "${{ parameters.EnvVars.AAD_USER_NAME_ON_DEMAND }}" + az logout + condition: always() + displayName: 'Delete On-demand test user' \ No newline at end of file From 3947ea9037446514673107febb99220ca316b812 Mon Sep 17 00:00:00 2001 From: mrm9084 Date: Thu, 27 May 2021 10:50:47 -0700 Subject: [PATCH 13/15] moved to the right place --- sdk/appconfiguration/ci.yml | 69 +--------------------------------- sdk/appconfiguration/tests.yml | 3 ++ 2 files changed, 4 insertions(+), 68 deletions(-) diff --git a/sdk/appconfiguration/ci.yml b/sdk/appconfiguration/ci.yml index 564545b4bd23..a2ef0744b67b 100644 --- a/sdk/appconfiguration/ci.yml +++ b/sdk/appconfiguration/ci.yml @@ -98,71 +98,4 @@ extends: AdditionalModules: - name: azure-spring-cloud-test-appconfiguration-config groupId: com.azure.spring - safeName: azurespringcloudtestappconfigurationconfig -stages: - - template: ../../eng/pipelines/templates/stages/archetype-sdk-tests.yml - parameters: - TimeoutInMinutes: 240 - ServiceDirectory: spring - EnvVars: ${{ parameters.EnvVars }} - TestName: ${{ parameters.TestName }} - Clouds: ${{ parameters.Clouds }} - TestResourceDirectories: ${{ parameters.TestResourceDirectories }} - Artifacts: ${{ parameters.Artifacts }} - TestStepMavenInputs: - options: '-Dmaven.wagon.http.pool=false $(DefaultOptions) -Dmaven.javadoc.skip=true -Drevapi.skip=true -DskipSpringITs=false -pl $(ProjectList)' - goals: "verify" - PreSteps: - - script: | - az cloud set --name AzureChinaCloud - condition: endsWith('${{ parameters.EnvVars.AAD_USER_NAME_ON_DEMAND }}', 'cn') - displayName: 'Switch to Azure China Cloud' - - powershell: | - az login --allow-no-subscriptions --tenant ${{ parameters.EnvVars.AAD_TENANT_ID_1 }} --service-principal -u ${{ parameters.EnvVars.AAD_SERVICE_PRICIPAL_CLIENT_ID }} -p ${{ parameters.EnvVars.AAD_SERVICE_PRICIPAL_CLIENT_SECRET }} - az ad user create --user-principal-name "${{ parameters.EnvVars.AAD_USER_NAME_ON_DEMAND }}" --display-name "${{ parameters.AadOnDemandUserDisplayName }}" --password "${{ parameters.EnvVars.AAD_USER_PASSWORD_ON_DEMAND }}" --force-change-password-next-login false - displayName: 'Create On-demand test user' - PostSteps: - - powershell: | - az ad user delete --id "${{ parameters.EnvVars.AAD_USER_NAME_ON_DEMAND }}" - az logout - condition: always() - displayName: 'Delete On-demand test user' - - script: | - python --version - python -m pip install setuptools termcolor in_place - python sdk/spring/scripts/replace_util.py --module spring --log debug --color false - displayName: 'Run replace_util.py' - - task: Maven@3 - displayName: 'Build and Install again, JDK Version: $(JavaBuildVersion)' - inputs: - mavenPomFile: pom.xml - goals: 'install' - options: '$(DefaultOptions) -DskipTests -Dgpg.skip -Dmaven.javadoc.skip=true -Dcheckstyle.skip=true -Dspotbugs.skip=true -Drevapi.skip=true -pl $(ProjectList) -am' - mavenOptions: '$(MemoryOptions) $(LoggingOptions)' - javaHomeOption: 'JDKVersion' - jdkVersionOption: $(JavaBuildVersion) - jdkArchitectureOption: 'x64' - publishJUnitResults: false - - - script: | - az cloud set --name AzureChinaCloud - condition: endsWith('${{ parameters.EnvVars.AAD_USER_NAME_ON_DEMAND }}', 'cn') - displayName: 'Switch to Azure China Cloud' - - powershell: | - az login --allow-no-subscriptions --tenant ${{ parameters.EnvVars.AAD_TENANT_ID_1 }} --service-principal -u ${{ parameters.EnvVars.AAD_SERVICE_PRICIPAL_CLIENT_ID }} -p ${{ parameters.EnvVars.AAD_SERVICE_PRICIPAL_CLIENT_SECRET }} - az ad user create --user-principal-name "${{ parameters.EnvVars.AAD_USER_NAME_ON_DEMAND }}" --display-name "${{ parameters.AadOnDemandUserDisplayName }}" --password "${{ parameters.EnvVars.AAD_USER_PASSWORD_ON_DEMAND }}" --force-change-password-next-login false - displayName: 'Create On-demand test user' - - task: Maven@3 - displayName: 'Run tests again, JDK Version: $(JavaBuildVersion)' - inputs: - mavenPomFile: pom.xml - goals: verify - options: '-Dmaven.wagon.http.pool=false $(DefaultOptions) -Dmaven.javadoc.skip=true -Drevapi.skip=true -DskipSpringITs=false -pl $(ProjectList)' - env: - ${{ parameters.EnvVars }} - - - powershell: | - az ad user delete --id "${{ parameters.EnvVars.AAD_USER_NAME_ON_DEMAND }}" - az logout - condition: always() - displayName: 'Delete On-demand test user' \ No newline at end of file + safeName: azurespringcloudtestappconfigurationconfig \ No newline at end of file diff --git a/sdk/appconfiguration/tests.yml b/sdk/appconfiguration/tests.yml index 4396553e4137..69f158facb8f 100644 --- a/sdk/appconfiguration/tests.yml +++ b/sdk/appconfiguration/tests.yml @@ -14,3 +14,6 @@ stages: AZURE_CLIENT_ID: $(aad-azure-sdk-test-client-id) AZURE_CLIENT_SECRET: $(aad-azure-sdk-test-client-secret) AZURE_TENANT_ID: $(aad-azure-sdk-test-tenant-id) + TestStepMavenInputs: + options: '-Dmaven.wagon.http.pool=false $(DefaultOptions) -Dmaven.javadoc.skip=true -Drevapi.skip=true -DskipSpringITs=false -pl $(ProjectList)' + goals: "verify" From 880da1432b37c4ef75a6a95347995aaa73fd6ea4 Mon Sep 17 00:00:00 2001 From: mrm9084 Date: Tue, 8 Jun 2021 09:08:32 -0700 Subject: [PATCH 14/15] Switched to JUnit5, removed unused import --- .../pom.xml | 29 +------------------ .../cloud/config/app/MyCredentials.java | 1 - 2 files changed, 1 insertion(+), 29 deletions(-) diff --git a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml index 5e479ee0fe37..bb51a3dd8f2c 100644 --- a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml +++ b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/pom.xml @@ -35,16 +35,6 @@ com.microsoft.azure azure 1.34.0 - - - com.fasterxml.jackson.core - jackson-core - - - com.google.code.gson - gson - - org.springframework.boot @@ -53,26 +43,9 @@ org.springframework.boot spring-boot-starter-test + 2.5.0 test - - junit - junit - 4.13.2 - test - - - org.junit.vintage - junit-vintage-engine - 5.7.2 - test - - - org.hamcrest - hamcrest-core - - - diff --git a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/app/MyCredentials.java b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/app/MyCredentials.java index 262a852fce0f..57a54ab4f633 100644 --- a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/app/MyCredentials.java +++ b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/app/MyCredentials.java @@ -2,7 +2,6 @@ import com.azure.core.credential.TokenCredential; import com.azure.identity.EnvironmentCredentialBuilder; -//import com.azure.identity.AzureCliCredentialBuilder; import com.microsoft.azure.spring.cloud.config.AppConfigurationCredentialProvider; import com.microsoft.azure.spring.cloud.config.KeyVaultCredentialProvider; From a7f7b41332565b51aafd67aee107b315b5c05aa2 Mon Sep 17 00:00:00 2001 From: mrm9084 Date: Tue, 8 Jun 2021 09:56:19 -0700 Subject: [PATCH 15/15] Fixed import --- .../microsoft/azure/spring/cloud/config/LoadConfigsTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/LoadConfigsTest.java b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/LoadConfigsTest.java index fe96dece5711..573764471925 100644 --- a/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/LoadConfigsTest.java +++ b/sdk/appconfiguration/azure-spring-cloud-test-appconfiguration-config/src/test/java/com/microsoft/azure/spring/cloud/config/LoadConfigsTest.java @@ -2,7 +2,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory;