Skip to content

Commit bbd93c6

Browse files
authored
Fixing Readme (#696)
* Fixing Readme * Updated from code review comments * Switched interface order
1 parent 66aa479 commit bbd93c6

File tree

1 file changed

+19
-7
lines changed
  • spring-cloud-azure-starters/spring-cloud-starter-azure-appconfiguration-config

1 file changed

+19
-7
lines changed

spring-cloud-azure-starters/spring-cloud-starter-azure-appconfiguration-config/README.md

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -191,21 +191,33 @@ public class MyCredentials implements AppConfigCredentialProvider, KeyVaultCrede
191191
}
192192
```
193193

194-
### Modifying Connection Client
194+
### Client Builder Customization
195195

196-
In some situations the client connection needs to be modified, such as adding proxy configurations. Using the AppConfigurationClientProvider and/or KeyVaultClientProvider. By implementing either of these classes and providing and generating a @Bean of them will enable client modification following [App Configuration SDK](https://github.com/Azure/azure-sdk-for-java/tree/master/sdk/appconfiguration/azure-data-appconfiguration#key-concepts) and [Key Vault SDK](https://github.com/Azure/azure-sdk-for-java/tree/master/sdk/keyvault/azure-security-keyvault-secrets#key-concepts).
196+
The service client builders used for connecting to App Configuration and Key Vault can be customized by implementing interfaces `ConfigurationClientBuilderSetup` and `SecretClientBuilderSetup` respectively. Generating and providing a `@Bean` of them will update the default service client builders used in [App Configuration SDK](https://github.com/Azure/azure-sdk-for-java/tree/master/sdk/appconfiguration/azure-data-appconfiguration#key-concepts) and [Key Vault SDK](https://github.com/Azure/azure-sdk-for-java/tree/master/sdk/keyvault/azure-security-keyvault-secrets#key-concepts). If necessary, the customization can be done per App Configuration store or Key Vault instance.
197197

198198
```java
199-
public class MyClients implements AppConfigurationClientProvider, KeyVaultClientProvider {
199+
public interface ConfigurationClientBuilderSetup {
200+
public void setup(ConfigurationClientBuilder builder, String endpoint);
201+
}
202+
203+
public interface SecretClientBuilderSetup {
204+
public void setup(SecretClientBuilder builder, String uri);
205+
}
206+
```
207+
208+
For example, the following implementation of `MyClient` replaces the default `HttpClient` with one using a proxy for all traffic to App Configuration and Key Vault.
209+
210+
```java
211+
public class MyClient implements ConfigurationClientBuilderSetup, SecretClientBuilderSetup {
200212

201213
@Override
202-
public SecretClientBuilder modifyKeyVaultClient(SecretClientBuilder keyVaultClientBuilder) {
203-
return keyVaultClientBuilder.httpClient(buildHttpClient());
214+
public void setup(ConfigurationClientBuilder builder, String endpoint) {
215+
builder.httpClient(buildHttpClient());
204216
}
205217

206218
@Override
207-
public ConfigurationClientBuilder modifyConfigurationClient(ConfigurationClientBuilder configurationClientBuilder) {
208-
return configurationClientBuilder.httpClient(buildHttpClient());
219+
public void setup(SecretClientBuilder builder, String uri) {
220+
builder.httpClient(buildHttpClient());
209221
}
210222

211223
private HttpClient buildHttpClient() {

0 commit comments

Comments
 (0)