in src/main/java/org/apache/sling/discovery/impl/TopologyWebConsolePlugin.java [316:385]
private void renderCluster(final PrintWriter pw, final ClusterView renderCluster, final ClusterView localCluster, final boolean odd, final boolean current) {
final Collection<Announcement> announcements = announcementRegistry.listAnnouncementsInSameCluster(localCluster);
for (Iterator<InstanceDescription> it = renderCluster.getInstances()
.iterator(); it.hasNext();) {
final InstanceDescription instanceDescription = it.next();
final boolean inLocalCluster = renderCluster == localCluster;
Announcement parentAnnouncement = null;
for (Iterator<Announcement> it2 = announcements.iterator(); it2
.hasNext();) {
Announcement announcement = it2.next();
for (Iterator<InstanceDescription> it3 = announcement
.listInstances().iterator(); it3.hasNext();) {
InstanceDescription announcedInstance = it3.next();
if (announcedInstance.getSlingId().equals(
instanceDescription.getSlingId())) {
parentAnnouncement = announcement;
break;
}
}
}
final String oddEven = odd ? "odd" : "even";
if (current && (inLocalCluster || (parentAnnouncement!=null))) {
pw.println("<tr class=\"" + oddEven + " ui-state-default\">");
} else {
pw.println("<tr class=\"" + oddEven + " ui-state-error\">");
}
final boolean isLocal = instanceDescription.isLocal();
final String slingId = instanceDescription.getSlingId();
pw.print("<td>");
if ( isLocal) {
pw.print("<b>");
}
pw.print("<a href=\"");
pw.print(this.getLabel());
pw.print('/');
pw.print(slingId);
pw.print("\">");
pw.print(slingId);
pw.print("</a>");
if ( isLocal) {
pw.print("</b>");
}
pw.println("</td>");
pw.println("<td>"
+ (instanceDescription.getClusterView() == null ? "null"
: instanceDescription.getClusterView().getId())
+ "</td>");
pw.println("<td>" + (isLocal ? "<b>true</b>" : "false") + "</td>");
pw.println("<td>"
+ (instanceDescription.isLeader() ? "<b>true</b>" : "false")
+ "</td>");
if (inLocalCluster) {
pw.println("<td>local</td>");
pw.println("<td>n/a</td>");
} else {
pw.println("<td>remote</td>");
if (parentAnnouncement != null) {
pw.println("<td>" + parentAnnouncement.getOwnerId()
+ "</td>");
} else {
pw.println("<td><b>(changing)</b></td>");
}
}
pw.println("</tr>");
}
}