Use the appname and id from in mem instanceInfo object instead of raw config (#3212)
This commit is contained in:
@@ -39,7 +39,7 @@ public class EurekaServiceRegistry implements ServiceRegistry<EurekaRegistration
|
||||
maybeInitializeClient(reg);
|
||||
|
||||
if (log.isInfoEnabled()) {
|
||||
log.info("Registering application " + reg.getInstanceConfig().getAppname()
|
||||
log.info("Registering application " + reg.getApplicationInfoManager().getInfo().getAppName()
|
||||
+ " with eureka with status "
|
||||
+ reg.getInstanceConfig().getInitialStatus());
|
||||
}
|
||||
@@ -62,7 +62,7 @@ public class EurekaServiceRegistry implements ServiceRegistry<EurekaRegistration
|
||||
if (reg.getApplicationInfoManager().getInfo() != null) {
|
||||
|
||||
if (log.isInfoEnabled()) {
|
||||
log.info("Unregistering application " + reg.getInstanceConfig().getAppname()
|
||||
log.info("Unregistering application " + reg.getApplicationInfoManager().getInfo().getAppName()
|
||||
+ " with eureka with status DOWN");
|
||||
}
|
||||
|
||||
@@ -91,8 +91,8 @@ public class EurekaServiceRegistry implements ServiceRegistry<EurekaRegistration
|
||||
|
||||
@Override
|
||||
public Object getStatus(EurekaRegistration registration) {
|
||||
String appname = registration.getInstanceConfig().getAppname();
|
||||
String instanceId = registration.getInstanceConfig().getInstanceId();
|
||||
String appname = registration.getApplicationInfoManager().getInfo().getAppName();
|
||||
String instanceId = registration.getApplicationInfoManager().getInfo().getId();
|
||||
InstanceInfo info = registration.getEurekaClient().getInstanceInfo(appname, instanceId);
|
||||
|
||||
HashMap<String, Object> status = new HashMap<>();
|
||||
|
||||
@@ -31,6 +31,7 @@ import com.netflix.appinfo.ApplicationInfoManager;
|
||||
import com.netflix.appinfo.InstanceInfo;
|
||||
|
||||
import static com.netflix.appinfo.InstanceInfo.InstanceStatus.DOWN;
|
||||
import static com.netflix.appinfo.InstanceInfo.InstanceStatus.OUT_OF_SERVICE;
|
||||
import static com.netflix.appinfo.InstanceInfo.InstanceStatus.UNKNOWN;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.mockito.Mockito.mock;
|
||||
@@ -70,20 +71,29 @@ public class EurekaServiceRegistryTests {
|
||||
config.setAppname("myapp");
|
||||
config.setInstanceId("1234");
|
||||
|
||||
CloudEurekaClient eurekaClient = mock(CloudEurekaClient.class);
|
||||
|
||||
InstanceInfo instanceInfo = InstanceInfo.Builder.newBuilder()
|
||||
InstanceInfo local = InstanceInfo.Builder.newBuilder()
|
||||
.setAppName("myapp")
|
||||
.setInstanceId("1234")
|
||||
.setStatus(DOWN)
|
||||
.setOverriddenStatus(UNKNOWN)
|
||||
.build();
|
||||
when(eurekaClient.getInstanceInfo("myapp", "1234"))
|
||||
.thenReturn(instanceInfo);
|
||||
|
||||
InstanceInfo remote = InstanceInfo.Builder.newBuilder()
|
||||
.setAppName("myapp")
|
||||
.setInstanceId("1234")
|
||||
.setStatus(DOWN)
|
||||
.setOverriddenStatus(OUT_OF_SERVICE)
|
||||
.build();
|
||||
|
||||
CloudEurekaClient eurekaClient = mock(CloudEurekaClient.class);
|
||||
when(eurekaClient.getInstanceInfo(local.getAppName(), local.getId()))
|
||||
.thenReturn(remote);
|
||||
|
||||
ApplicationInfoManager applicationInfoManager = mock(ApplicationInfoManager.class);
|
||||
when(applicationInfoManager.getInfo()).thenReturn(local);
|
||||
|
||||
EurekaRegistration registration = EurekaRegistration.builder(config)
|
||||
.with(eurekaClient)
|
||||
.with(mock(ApplicationInfoManager.class))
|
||||
.with(applicationInfoManager)
|
||||
.with(new EurekaClientConfigBean(), mock(ApplicationEventPublisher.class))
|
||||
.build();
|
||||
|
||||
@@ -95,7 +105,7 @@ public class EurekaServiceRegistryTests {
|
||||
|
||||
assertThat(map).hasSize(2)
|
||||
.containsEntry("status", DOWN.toString())
|
||||
.containsEntry("overriddenStatus", UNKNOWN.toString());
|
||||
.containsEntry("overriddenStatus", OUT_OF_SERVICE.toString());
|
||||
}
|
||||
|
||||
|
||||
@@ -112,9 +122,12 @@ public class EurekaServiceRegistryTests {
|
||||
when(eurekaClient.getInstanceInfo("myapp", "1234"))
|
||||
.thenReturn(null);
|
||||
|
||||
ApplicationInfoManager applicationInfoManager = mock(ApplicationInfoManager.class);
|
||||
when(applicationInfoManager.getInfo()).thenReturn(mock(InstanceInfo.class));
|
||||
|
||||
EurekaRegistration registration = EurekaRegistration.builder(config)
|
||||
.with(eurekaClient)
|
||||
.with(mock(ApplicationInfoManager.class))
|
||||
.with(applicationInfoManager)
|
||||
.with(new EurekaClientConfigBean(), mock(ApplicationEventPublisher.class))
|
||||
.build();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user