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