From 1840647458d849c372a36ac3c19b5d59085463d6 Mon Sep 17 00:00:00 2001 From: Spencer Gibb Date: Wed, 16 Aug 2017 00:53:40 -0600 Subject: [PATCH] Move `EurekaClient.close()` to `EurekaRegistration.close()`. This moves the lifecycle of the eureka client of of EurekaServiceRegistry. fixes gh-2099 --- .../eureka/EurekaClientConfigBean.java | 6 +- .../serviceregistry/EurekaRegistration.java | 9 ++- .../EurekaServiceRegistry.java | 5 +- .../EurekaClientAutoConfigurationTests.java | 73 ++++++++++++++++++- .../EurekaServiceRegistryTests.java | 60 +++++++++++++++ 5 files changed, 144 insertions(+), 9 deletions(-) create mode 100644 spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/serviceregistry/EurekaServiceRegistryTests.java diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientConfigBean.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientConfigBean.java index a5747d37..3e5ab858 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientConfigBean.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientConfigBean.java @@ -43,9 +43,6 @@ public class EurekaClientConfigBean implements EurekaClientConfig { public static final String PREFIX = "eureka.client"; - @Autowired(required = false) - PropertyResolver propertyResolver; - public static final String DEFAULT_URL = "http://localhost:8761" + DEFAULT_PREFIX + "/"; @@ -53,6 +50,9 @@ public class EurekaClientConfigBean implements EurekaClientConfig { private static final int MINUTES = 60; + @Autowired(required = false) + PropertyResolver propertyResolver; + /** * Flag to indicate that the Eureka client is enabled. */ diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/serviceregistry/EurekaRegistration.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/serviceregistry/EurekaRegistration.java index c4ea82b0..e0afab9c 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/serviceregistry/EurekaRegistration.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/serviceregistry/EurekaRegistration.java @@ -17,6 +17,8 @@ package org.springframework.cloud.netflix.eureka.serviceregistry; +import java.io.Closeable; +import java.io.IOException; import java.util.concurrent.atomic.AtomicReference; import org.apache.commons.logging.Log; @@ -39,7 +41,7 @@ import com.netflix.discovery.EurekaClientConfig; /** * @author Spencer Gibb */ -public class EurekaRegistration implements Registration { +public class EurekaRegistration implements Registration, Closeable { private static final Log log = LogFactory.getLog(EurekaRegistration.class); private final EurekaClient eurekaClient; @@ -159,4 +161,9 @@ public class EurekaRegistration implements Registration { public int getNonSecurePort() { return this.instanceConfig.getNonSecurePort(); } + + @Override + public void close() throws IOException { + this.eurekaClient.shutdown(); + } } diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/serviceregistry/EurekaServiceRegistry.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/serviceregistry/EurekaServiceRegistry.java index 950e57d1..de11522f 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/serviceregistry/EurekaServiceRegistry.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/serviceregistry/EurekaServiceRegistry.java @@ -67,8 +67,9 @@ public class EurekaServiceRegistry implements ServiceRegistry