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);