Fix so brixton eureka clients can use angel eureka servers.

see #978
This commit is contained in:
Spencer Gibb
2016-05-13 15:43:45 -06:00
parent b59bc5fb05
commit afe8f4d0ef

View File

@@ -177,8 +177,7 @@ public class DataCenterAwareMarshallingStrategy implements MarshallingStrategy {
String instanceId = info.getMetadata().get("instanceId");
DataCenterInfo dataCenter = info.getDataCenterInfo();
if (instanceId != null && Name.Amazon != dataCenter.getName()) {
String old = info.getId();
String id = old.endsWith(instanceId) ? old : old + ":" + instanceId;
String id = calculateId(info, instanceId);
info = new InstanceInfo.Builder(info).setDataCenterInfo(
new InstanceIdDataCenterInfo(id)).build();
source = info;
@@ -186,6 +185,17 @@ public class DataCenterAwareMarshallingStrategy implements MarshallingStrategy {
super.marshal(source, writer, context);
}
String calculateId(InstanceInfo info, String instanceId) {
String old = info.getId();
if (old.endsWith(instanceId)) {
return old;
}
if (instanceId.startsWith(old)) {
return instanceId;
}
return old + ":" + instanceId;
}
@Override
public Object unmarshal(HierarchicalStreamReader reader,
UnmarshallingContext context) {
@@ -194,8 +204,7 @@ public class DataCenterAwareMarshallingStrategy implements MarshallingStrategy {
String instanceId = info.getMetadata().get("instanceId");
DataCenterInfo dataCenter = info.getDataCenterInfo();
if (instanceId != null && Name.Amazon != dataCenter.getName()) {
String old = info.getId();
String id = old.endsWith(instanceId) ? old : old + ":" + instanceId;
String id = calculateId(info, instanceId);
info = new InstanceInfo.Builder(info).setDataCenterInfo(
new InstanceIdDataCenterInfo(id)).build();
obj = info;