Skip to content

Commit 885e3af

Browse files
committed
testing closing the client
1 parent 36c190e commit 885e3af

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/ConfigUtils.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636

3737
import org.springframework.boot.BootstrapRegistry;
3838
import org.springframework.boot.ConfigurableBootstrapContext;
39+
import org.springframework.context.ApplicationListener;
3940
import org.springframework.core.env.Environment;
4041
import org.springframework.core.style.ToStringCreator;
4142
import org.springframework.util.CollectionUtils;
@@ -329,17 +330,23 @@ private static Map<String, String> decodeData(Map<String, String> data) {
329330
}
330331

331332
public static <T> void registerSingle(ConfigurableBootstrapContext bootstrapContext, Class<T> cls, T instance,
332-
String name) {
333+
String name, ApplicationListener<?> listener) {
333334
bootstrapContext.registerIfAbsent(cls, BootstrapRegistry.InstanceSupplier.of(instance));
334335
bootstrapContext.addCloseListener(event -> {
335336
if (event.getApplicationContext().getBeanFactory().getSingleton(name) == null) {
336337
event.getApplicationContext()
337338
.getBeanFactory()
338339
.registerSingleton(name, event.getBootstrapContext().get(cls));
340+
event.getApplicationContext().addApplicationListener(listener);
339341
}
340342
});
341343
}
342344

345+
public static <T> void registerSingle(ConfigurableBootstrapContext bootstrapContext, Class<T> cls, T instance,
346+
String name) {
347+
registerSingle(bootstrapContext, cls, instance, name, event -> {});
348+
}
349+
343350
/**
344351
* append prefix to the keys and return a new Map with the new values.
345352
*/

spring-cloud-kubernetes-fabric8-config/src/main/java/org/springframework/cloud/kubernetes/fabric8/config/Fabric8ConfigDataLocationResolver.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
import org.springframework.cloud.kubernetes.commons.config.SecretsConfigProperties;
3535
import org.springframework.cloud.kubernetes.commons.config.SecretsPropertySourceLocator;
3636
import org.springframework.cloud.kubernetes.fabric8.Fabric8AutoConfiguration;
37+
import org.springframework.context.ApplicationListener;
38+
import org.springframework.context.event.ContextClosedEvent;
3739
import org.springframework.core.env.Environment;
3840

3941
import static org.springframework.cloud.kubernetes.commons.config.ConfigUtils.registerSingle;
@@ -85,12 +87,14 @@ protected void registerBeans(ConfigDataLocationResolverContext resolverContext,
8587
}
8688

8789
private KubernetesClient registerConfigAndClient(ConfigurableBootstrapContext bootstrapContext,
88-
KubernetesClientProperties kubernetesClientProperties) {
90+
KubernetesClientProperties kubernetesClientProperties) {
8991
Config config = new Fabric8AutoConfiguration().kubernetesClientConfig(kubernetesClientProperties);
9092
registerSingle(bootstrapContext, Config.class, config, "fabric8Config");
9193

9294
KubernetesClient kubernetesClient = new Fabric8AutoConfiguration().kubernetesClient(config);
93-
registerSingle(bootstrapContext, KubernetesClient.class, kubernetesClient, "configKubernetesClient");
95+
registerSingle(bootstrapContext, KubernetesClient.class, kubernetesClient, "configKubernetesClient", (ApplicationListener<ContextClosedEvent>) event -> {
96+
kubernetesClient.close();
97+
});
9498
return kubernetesClient;
9599
}
96100

0 commit comments

Comments
 (0)