diff --git a/spring-cloud-netflix-dependencies/pom.xml b/spring-cloud-netflix-dependencies/pom.xml
index 9e21b629..68886f23 100644
--- a/spring-cloud-netflix-dependencies/pom.xml
+++ b/spring-cloud-netflix-dependencies/pom.xml
@@ -15,7 +15,7 @@
Spring Cloud Netflix Dependencies
0.7.5
- 1.7.0
+ 1.8.2
9.5.0
1.5.12
2.2.2
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 3e5ab858..86d191c0 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
@@ -383,6 +383,12 @@ public class EurekaClientConfigBean implements EurekaClientConfig {
*/
private String clientDataAccept = EurekaAccept.full.name();
+ /**
+ * Indicates whether the client should explicitly unregister itself from the remote server
+ * on client shutdown.
+ */
+ private boolean unregisterOnShutdown = true;
+
@Override
public boolean shouldGZipContent() {
return this.gZipContent;
@@ -413,6 +419,11 @@ public class EurekaClientConfigBean implements EurekaClientConfig {
return this.disableDelta;
}
+ @Override
+ public boolean shouldUnregisterOnShutdown() {
+ return this.unregisterOnShutdown;
+ }
+
@Override
public String fetchRegistryForRemoteRegions() {
return this.fetchRemoteRegionsRegistry;
diff --git a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/CloudJacksonJson.java b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/CloudJacksonJson.java
index eeb30fa8..1c2f99e6 100644
--- a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/CloudJacksonJson.java
+++ b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/CloudJacksonJson.java
@@ -5,6 +5,7 @@ import java.io.InputStream;
import java.io.OutputStream;
import java.lang.reflect.Field;
import java.util.HashMap;
+import java.util.function.Supplier;
import org.springframework.util.ReflectionUtils;
import org.springframework.util.StringUtils;
@@ -84,8 +85,9 @@ public class CloudJacksonJson extends LegacyJacksonJson {
module.addSerializer(Applications.class, new ApplicationsSerializer(
this.getVersionDeltaKey(), this.getAppHashCodeKey()));
- module.addDeserializer(DataCenterInfo.class,
- new DataCenterInfoDeserializer());
+ // TODO: Watch if this causes problems
+ // module.addDeserializer(DataCenterInfo.class,
+ // new DataCenterInfoDeserializer());
module.addDeserializer(LeaseInfo.class, new LeaseInfoDeserializer());
module.addDeserializer(InstanceInfo.class,
new CloudInstanceInfoDeserializer(mapper));
@@ -96,12 +98,12 @@ public class CloudJacksonJson extends LegacyJacksonJson {
mapper.registerModule(module);
- HashMap, ObjectReader> readers = new HashMap<>();
- readers.put(InstanceInfo.class, mapper.reader().withType(InstanceInfo.class)
+ HashMap, Supplier> readers = new HashMap<>();
+ readers.put(InstanceInfo.class, ()-> mapper.reader().withType(InstanceInfo.class)
.withRootName("instance"));
- readers.put(Application.class, mapper.reader().withType(Application.class)
+ readers.put(Application.class, ()-> mapper.reader().withType(Application.class)
.withRootName("application"));
- readers.put(Applications.class, mapper.reader().withType(Applications.class)
+ readers.put(Applications.class, ()-> mapper.reader().withType(Applications.class)
.withRootName("applications"));
setField("objectReaderByClass", readers);