in fractions/topology-webapp/src/main/java/org/wildfly/swarm/topology/webapp/runtime/TopologySSEServlet.java [97:149]
private String topologyToJson(boolean secure) {
StringBuilder json = new StringBuilder();
json.append("{");
Map<String, List<Topology.Entry>> map = this.topology.asMap();
Set<String> keys = map.keySet();
Iterator<String> keyIter = keys.iterator();
while (keyIter.hasNext()) {
String key = keyIter.next();
json.append(" ").append('"').append(key).append('"').append(": [");
List<Topology.Entry> list = map.get(key);
Iterator<Topology.Entry> listIter = list.iterator();
String proxyContext = getServletContext().getInitParameter(key + "-proxy");
if (proxyContext != null) {
List<String> tags = new ArrayList<>();
tags.add(secure ? "https" : "http");
while (listIter.hasNext()) {
Topology.Entry server = listIter.next();
tags.add(formatMaybeIpv6(server.getAddress()) + ":" + server.getPort());
}
populateEndpointAndTagsJson(json, proxyContext, tags);
} else {
while (listIter.hasNext()) {
Topology.Entry server = listIter.next();
boolean invalidServerAddress = false;
try {
//noinspection ResultOfMethodCallIgnored
InetAddress.getByName(server.getAddress());
} catch (UnknownHostException e) {
invalidServerAddress = true;
}
String endpoint = (!invalidServerAddress ? (server.getTags().contains("https") ? "https" : "http") + "://" : "")
+ formatMaybeIpv6(server.getAddress()) + ":" + server.getPort();
populateEndpointAndTagsJson(json, endpoint, server.getTags());
if (listIter.hasNext()) {
json.append(",");
}
}
}
json.append("]");
if (keyIter.hasNext()) {
json.append(",");
}
}
json.append("}\n\n");
return json.toString();
}