1 |
package dk.thoerup.circuitbreaker.web;
|
2 |
|
3 |
|
4 |
import java.net.URLEncoder;
|
5 |
import javax.servlet.http.*;
|
6 |
|
7 |
import dk.thoerup.circuitbreaker.CircuitBreaker;
|
8 |
import dk.thoerup.circuitbreaker.CircuitBreakerManager;
|
9 |
|
10 |
public class ListCircuitBreakers implements Command {
|
11 |
public String execute(HttpServletRequest req, HttpServletResponse resp) {
|
12 |
|
13 |
|
14 |
StringBuilder sb = new StringBuilder();
|
15 |
CircuitBreakerManager manager = CircuitBreakerManager.getManager();
|
16 |
|
17 |
sb.append("<html><head><title>CircuitBreakers</title></head>\n\n<body>");
|
18 |
sb.append("<h2>CircuitBreakers:</h2>\n\n");
|
19 |
sb.append("<table border=\"1\"><tr><th>Name</th><th>Status</th></tr>\n");
|
20 |
|
21 |
for (String breakerName : manager.getCircuitBreakerNames()) {
|
22 |
CircuitBreaker breaker = manager.getCircuitBreaker(breakerName);
|
23 |
String color = "white";
|
24 |
|
25 |
if (breaker.isOpen() ) {
|
26 |
color = "red";
|
27 |
} else if (breaker.isClosed() ) {
|
28 |
color = "green";
|
29 |
} else {
|
30 |
color ="yellow";
|
31 |
}
|
32 |
|
33 |
String encodedName = breakerName;
|
34 |
try {
|
35 |
encodedName = URLEncoder.encode(breakerName,"UTF-8" );
|
36 |
} catch (Exception e) {
|
37 |
//if Encoding fails we just use normal name and cross our fingers
|
38 |
}
|
39 |
|
40 |
sb.append("<tr>");
|
41 |
sb.append("<td><a href=\"").append( req.getRequestURI() ).append("?command=view&breaker=");
|
42 |
sb.append( encodedName ).append("\">").append(breakerName).append("</a></td>\n");
|
43 |
sb.append("<td style=\"background-color: ").append(color).append("\"> </td>\n");
|
44 |
sb.append("</tr>\n\n");
|
45 |
}
|
46 |
|
47 |
sb.append("</table></body></html>\n");
|
48 |
|
49 |
return sb.toString();
|
50 |
}
|
51 |
}
|