in core/servicemix-core/src/main/java/org/apache/servicemix/jbi/view/DotViewEndpointListener.java [79:142]
protected void generateFile(PrintWriter writer) throws Exception {
writer.println("digraph \"Apache ServiceMix\" {");
writer.println();
writer.println("node [ shape = box, style = \"rounded,filled\", fontname = \"Helvetica-Oblique\", fontsize = 8 ];");
writer.println();
writer.println("jbi [ fillcolor = \"#FFFF99\", label=\"Apache ServiceMix: " + container.getName() + "\" ];");
writer.println();
List<String> brokerLinks = new ArrayList<String>();
Registry registry = container.getRegistry();
Collection<ComponentMBeanImpl> components = registry.getComponents();
for (ComponentMBeanImpl component : components) {
String name = component.getName();
String id = encode(name);
writer.print(id);
writer.print(" [ fillcolor = gray, label = \"");
writer.print(name);
writer.println("\" ];");
brokerLinks.add("jbi -> " + id);
}
writer.println();
generateLinks(writer, brokerLinks);
writer.println();
List<String> componentEndpointLinks = new ArrayList<String>();
Collection<Endpoint> endpointMBeans = registry.getEndpointRegistry().getEndpointMBeans();
for (Endpoint endpoint : endpointMBeans) {
String key = endpoint.getSubType().toLowerCase() + ":{"
+ endpoint.getServiceName().getNamespaceURI() + "}"
+ endpoint.getServiceName().getLocalPart() + ":"
+ endpoint.getEndpointName();
String componentName = encode(endpoint.getComponentName());
String id = encode(key);
writer.print(id);
String epname = formatEndpoint(key);
String color = "lightgray";
if (epname.startsWith("internal")) {
epname = epname.substring(10);
color = "#6699ff";
} else if (epname.startsWith("external")) {
epname = epname.substring(10);
color = "#66ccff";
} else if (epname.startsWith("dynamic")) {
epname = epname.substring(9);
color = "#6666ff";
} else if (epname.startsWith("linked")) {
epname = epname.substring(8);
color = "#66ffff";
} else {
color = "#f3f3f3";
}
writer.print(" [ fillcolor = \"" + color + "\", label = \"");
writer.print(epname);
writer.println("\" ];");
componentEndpointLinks.add(componentName + " -> " + id);
}
generateLinks(writer, componentEndpointLinks);
writer.println("}");
}