Skip to content

Commit

Permalink
Merge pull request #3 from mrm9084/4.0ReviewUpdates
Browse files Browse the repository at this point in the history
App Configuration Config 4.0 Review Changes
  • Loading branch information
mrm9084 authored Jan 13, 2023
2 parents 406c5da + 3677d6a commit 4493272
Show file tree
Hide file tree
Showing 11 changed files with 36 additions and 45 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
/**
* Creates Custom CustomClientBuilder for connecting to Azure App Configuration.
*/
public interface ConfigurationClientBuilderSetup {
public interface ConfigurationClientCustomizer {

/**
* Updates the ConfigurationClientBuilder for connecting to the given App Configuration.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
import com.azure.data.appconfiguration.ConfigurationClientBuilder;
import com.azure.identity.ManagedIdentityCredentialBuilder;
import com.azure.spring.cloud.config.AppConfigurationCredentialProvider;
import com.azure.spring.cloud.config.ConfigurationClientBuilderSetup;
import com.azure.spring.cloud.config.ConfigurationClientCustomizer;
import com.azure.spring.cloud.config.implementation.pipline.policies.BaseAppConfigurationPolicy;
import com.azure.spring.cloud.config.implementation.properties.ConfigStore;
import com.azure.spring.cloud.core.provider.ClientOptionsProvider;
Expand Down Expand Up @@ -60,7 +60,7 @@ public class AppConfigurationReplicaClientsBuilder extends ConfigurationClientBu

private AppConfigurationCredentialProvider tokenCredentialProvider;

private ConfigurationClientBuilderSetup clientProvider;
private ConfigurationClientCustomizer clientProvider;

private boolean isDev = false;

Expand Down Expand Up @@ -106,7 +106,7 @@ public void setTokenCredentialProvider(AppConfigurationCredentialProvider tokenC
/**
* @param clientProvider the clientProvider to set
*/
public void setClientProvider(ConfigurationClientBuilderSetup clientProvider) {
public void setClientProvider(ConfigurationClientCustomizer clientProvider) {
this.clientProvider = clientProvider;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public class AppConfigurationAutoConfiguration {
*/
@Configuration
@ConditionalOnClass(RefreshEndpoint.class)
static class AppConfigurationWatchAutoConfiguration {
public static class AppConfigurationWatchAutoConfiguration {

@Bean
@ConditionalOnMissingBean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import org.springframework.context.annotation.Configuration;

import com.azure.spring.cloud.config.AppConfigurationCredentialProvider;
import com.azure.spring.cloud.config.ConfigurationClientBuilderSetup;
import com.azure.spring.cloud.config.ConfigurationClientCustomizer;
import com.azure.spring.cloud.config.KeyVaultCredentialProvider;
import com.azure.spring.cloud.config.KeyVaultSecretProvider;
import com.azure.spring.cloud.config.SecretClientBuilderSetup;
Expand Down Expand Up @@ -109,7 +109,7 @@ AppConfigurationReplicaClientsBuilder replicaClientBuilder(AppConfigurationProvi
clientBuilder.setTokenCredentialProvider(
context.getBeanProvider(AppConfigurationCredentialProvider.class).getIfAvailable());
clientBuilder
.setClientProvider(context.getBeanProvider(ConfigurationClientBuilderSetup.class)
.setClientProvider(context.getBeanProvider(ConfigurationClientCustomizer.class)
.getIfAvailable());

clientBuilder.setIsKeyVaultConfigured(keyVaultClientFactory.isConfigured());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
import com.azure.data.appconfiguration.ConfigurationClientBuilder;
import com.azure.data.appconfiguration.ConfigurationServiceVersion;
import com.azure.spring.cloud.config.AppConfigurationCredentialProvider;
import com.azure.spring.cloud.config.ConfigurationClientBuilderSetup;
import com.azure.spring.cloud.config.ConfigurationClientCustomizer;
import com.azure.spring.cloud.config.implementation.properties.ConfigStore;
import com.azure.spring.cloud.service.implementation.appconfiguration.ConfigurationClientProperties;

Expand All @@ -45,7 +45,7 @@ public class AppConfigurationReplicaClientBuilderTest {
private TokenCredential credentialMock;

@Mock
private ConfigurationClientBuilderSetup modifierMock;
private ConfigurationClientCustomizer modifierMock;

AppConfigurationReplicaClientsBuilder clientBuilder;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,27 +52,6 @@ public void cleanup() throws Exception {
MockitoAnnotations.openMocks(this).close();
}

@Test
public void multipleArguments() throws URISyntaxException {
String keyVaultUri = "https://keyvault.vault.azure.net";

KeyVaultCredentialProvider provider = new KeyVaultCredentialProvider() {

@Override
public TokenCredential getKeyVaultCredential(String uri) {
assertEquals("https://keyvault.vault.azure.net", uri);
return credentialMock;
}
};

clientStore = new AppConfigurationSecretClientManager(keyVaultUri, provider, null, null);

AppConfigurationSecretClientManager test = Mockito.spy(clientStore);
Mockito.doReturn(builderMock).when(test).getBuilder();

Assertions.assertThrows(IllegalArgumentException.class, test::build);
}

@Test
public void configProviderAuth() throws URISyntaxException {
String keyVaultUri = "https://keyvault.vault.azure.net";
Expand Down
6 changes: 6 additions & 0 deletions sdk/spring/spring-cloud-azure-actuator-autoconfigure/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,12 @@
<version>1.3.9</version> <!-- {x-version-update;com.azure:azure-data-appconfiguration;dependency} -->
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-appconfiguration-config</artifactId>
<version>4.0.0-beta.1</version> <!-- {x-version-update;com.azure.spring:spring-cloud-azure-appconfiguration-config;dependency} -->
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-messaging-eventhubs</artifactId>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
package com.azure.spring.cloud.config.implementation.config;
package com.azure.spring.cloud.actuator.autoconfigure.appconfiguration;

import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator;
import org.springframework.boot.actuate.health.HealthIndicator;
Expand All @@ -10,9 +10,9 @@
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.azure.spring.cloud.actuator.appconfiguration.AppConfigurationConfigHealthIndicator;
import com.azure.spring.cloud.config.AppConfigurationRefresh;
import com.azure.spring.cloud.config.implementation.config.AppConfigurationAutoConfiguration.AppConfigurationWatchAutoConfiguration;
import com.azure.spring.cloud.config.implementation.health.AppConfigurationHealthIndicator;

/**
* Health Indicator for Azure App Configuration store connections.
Expand All @@ -21,12 +21,12 @@
@ConditionalOnClass({ HealthIndicator.class })
@ConditionalOnEnabledHealthIndicator("azure-app-configuration")
@AutoConfigureAfter(AppConfigurationWatchAutoConfiguration.class)
public class AppConfigurationHealthAutoConfiguration {
public class AppConfigurationConfigHealthConfiguration {

@Bean
@ConditionalOnBean(AppConfigurationRefresh.class)
AppConfigurationHealthIndicator appConfigurationHealthIndicator(AppConfigurationRefresh refresh) {
return new AppConfigurationHealthIndicator(refresh);
AppConfigurationConfigHealthIndicator appConfigurationHealthIndicator(AppConfigurationRefresh refresh) {
return new AppConfigurationConfigHealthIndicator(refresh);
}

}
6 changes: 6 additions & 0 deletions sdk/spring/spring-cloud-azure-actuator/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,12 @@
<version>1.3.9</version> <!-- {x-version-update;com.azure:azure-data-appconfiguration;dependency} -->
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-appconfiguration-config</artifactId>
<version>4.0.0-beta.1</version> <!-- {x-version-update;com.azure.spring:spring-cloud-azure-appconfiguration-config;dependency} -->
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-messaging-eventhubs</artifactId>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,24 +1,25 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
package com.azure.spring.cloud.config.implementation.health;
package com.azure.spring.cloud.actuator.appconfiguration;

import org.springframework.boot.actuate.health.Health;
import org.springframework.boot.actuate.health.HealthIndicator;

import com.azure.spring.cloud.config.AppConfigurationRefresh;
import com.azure.spring.cloud.config.implementation.health.AppConfigurationStoreHealth;

/**
* Indicator class of App Configuration
*/
public final class AppConfigurationHealthIndicator implements HealthIndicator {
public final class AppConfigurationConfigHealthIndicator implements HealthIndicator {

private final AppConfigurationRefresh refresh;

/**
* Indicator for the Health endpoint for connections to App Configurations.
* @param refresh App Configuration store refresher
*/
public AppConfigurationHealthIndicator(AppConfigurationRefresh refresh) {
public AppConfigurationConfigHealthIndicator(AppConfigurationRefresh refresh) {
this.refresh = refresh;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
package com.azure.spring.cloud.config.implementation;
package com.azure.spring.cloud.actuator.appconfiguration;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.when;
Expand All @@ -18,12 +18,11 @@
import org.springframework.boot.actuate.health.Status;

import com.azure.spring.cloud.config.AppConfigurationRefresh;
import com.azure.spring.cloud.config.implementation.health.AppConfigurationHealthIndicator;
import com.azure.spring.cloud.config.implementation.health.AppConfigurationStoreHealth;
import com.azure.spring.cloud.config.implementation.properties.AppConfigurationProperties;
import com.azure.spring.cloud.config.implementation.properties.ConfigStore;

public class AppConfigurationHealthIndicatorTest {
public class AppConfigurationConfigHealthIndicatorTest {

@Mock
private AppConfigurationRefresh refreshMock;
Expand All @@ -35,7 +34,7 @@ public void setup() {

@Test
public void noConfigurationStores() {
AppConfigurationHealthIndicator indicator = new AppConfigurationHealthIndicator(refreshMock);
AppConfigurationConfigHealthIndicator indicator = new AppConfigurationConfigHealthIndicator(refreshMock);
Map<String, AppConfigurationStoreHealth> storeHealth = new HashMap<>();

when(refreshMock.getAppConfigurationStoresHealth()).thenReturn(storeHealth);
Expand All @@ -49,7 +48,7 @@ public void noConfigurationStores() {
public void heathlyConfigurationStore() {
String storeName = "singleHealthyStoreIndicatorTest";

AppConfigurationHealthIndicator indicator = new AppConfigurationHealthIndicator(refreshMock);
AppConfigurationConfigHealthIndicator indicator = new AppConfigurationConfigHealthIndicator(refreshMock);
Map<String, AppConfigurationStoreHealth> storeHealth = new HashMap<>();

storeHealth.put(storeName, AppConfigurationStoreHealth.UP);
Expand All @@ -76,7 +75,7 @@ public void unloadedConfigurationStore() {

properties.setStores(stores);

AppConfigurationHealthIndicator indicator = new AppConfigurationHealthIndicator(refreshMock);
AppConfigurationConfigHealthIndicator indicator = new AppConfigurationConfigHealthIndicator(refreshMock);

Map<String, AppConfigurationStoreHealth> mockHealth = new HashMap<>();

Expand All @@ -94,7 +93,7 @@ public void unloadedConfigurationStore() {
public void unheathlyConfigurationStore() {
String storeName = "singleUnhealthyStoreIndicatorTest";

AppConfigurationHealthIndicator indicator = new AppConfigurationHealthIndicator(refreshMock);
AppConfigurationConfigHealthIndicator indicator = new AppConfigurationConfigHealthIndicator(refreshMock);

Map<String, AppConfigurationStoreHealth> healthStatus = new HashMap<>();

Expand Down

0 comments on commit 4493272

Please sign in to comment.