1 |
torben |
416 |
package dk.thoerup.curcuitbreaker.web; |
2 |
|
|
|
3 |
|
|
import javax.servlet.http.HttpServletRequest; |
4 |
|
|
import javax.servlet.http.HttpServletResponse; |
5 |
|
|
|
6 |
|
|
import dk.thoerup.curcuitbreaker.AccountingCircuitBreaker; |
7 |
|
|
import dk.thoerup.curcuitbreaker.CircuitBreaker; |
8 |
|
|
import dk.thoerup.curcuitbreaker.CircuitBreakerManager; |
9 |
|
|
|
10 |
|
|
public class ViewCircuitBreaker implements Command { |
11 |
|
|
|
12 |
|
|
public String execute(HttpServletRequest req, HttpServletResponse resp) { |
13 |
|
|
CircuitBreaker breaker = CircuitBreakerManager.getManager().getCircuitBreaker( req.getParameter("breaker")); |
14 |
|
|
|
15 |
|
|
if (breaker == null) |
16 |
|
|
return "<html><body><h2>No breaker named '" + req.getParameter("breaker") + "'</h2></body></html>"; |
17 |
|
|
|
18 |
|
|
StringBuilder sb = new StringBuilder(); |
19 |
|
|
|
20 |
|
|
sb.append("<html><head><title>View Circuitbreaker</title></head><body>"); |
21 |
|
|
sb.append("<<== <a href=\"").append(req.getRequestURI()).append("\">Back to overview</a><br><br>"); |
22 |
|
|
sb.append("<h2>CircuitBreaker</h2>\n"); |
23 |
|
|
|
24 |
|
|
|
25 |
|
|
sb.append("<b>Attributes:</b>\n"); |
26 |
|
|
sb.append("<table border=\"1\" cellspacing=0>"); |
27 |
|
|
sb.append("<tr><td>Name </td><td>").append(breaker.getName()).append("</td></tr>\n"); |
28 |
|
|
sb.append("<tr><td>State </td><td><b>").append(breaker.getStateName()).append("</b></td></tr>\n"); |
29 |
|
|
sb.append("<tr><td>Type </td><td>").append(breaker.getClass().getSimpleName() ).append("</td></tr>\n"); |
30 |
|
|
sb.append("<tr><td>Notifier </td><td>").append(breaker.getNotifierName()).append("</td></tr>\n"); |
31 |
|
|
sb.append("<tr><td>Failure count </td><td>").append(breaker.getFailureCount()).append("</td></tr>\n"); |
32 |
|
|
sb.append("<tr><td>Failure threshold </td><td>").append(breaker.getThreshold()).append("</td></tr>\n"); |
33 |
|
|
sb.append("<tr><td>Timeout, elapsed</td><td>").append( breaker.getElapsed() ).append("</td></tr>\n"); |
34 |
|
|
sb.append("<tr><td>Timeout, limit</td><td>").append( breaker.getTimeout() ).append("</td></tr>\n"); |
35 |
|
|
if (breaker instanceof AccountingCircuitBreaker) { |
36 |
|
|
AccountingCircuitBreaker acb = (AccountingCircuitBreaker) breaker; |
37 |
|
|
} |
38 |
|
|
|
39 |
|
|
sb.append("</table><br>\n"); |
40 |
|
|
|
41 |
|
|
sb.append("<b>Commands:</b>\n"); |
42 |
|
|
|
43 |
|
|
|
44 |
|
|
sb.append("</body></html>"); |
45 |
|
|
|
46 |
|
|
return sb.toString(); |
47 |
|
|
} |
48 |
|
|
|
49 |
|
|
} |