package dk.thoerup.circuitbreaker.web;
import java.net.URLEncoder;
import javax.servlet.http.*;
import dk.thoerup.circuitbreaker.CircuitBreaker;
import dk.thoerup.circuitbreaker.CircuitBreakerManager;
public class ListCircuitBreakers implements Command {
public String execute(HttpServletRequest req, HttpServletResponse resp) {
StringBuilder sb = new StringBuilder();
CircuitBreakerManager manager = CircuitBreakerManager.getManager();
sb.append("
CircuitBreakers\n\n");
sb.append("CircuitBreakers:
\n\n");
sb.append("Name | Status |
\n");
for (String breakerName : manager.getCircuitBreakerNames()) {
CircuitBreaker breaker = manager.getCircuitBreaker(breakerName);
String color = "white";
if (breaker.isOpen() ) {
color = "red";
} else if (breaker.isClosed() ) {
color = "green";
} else {
color ="yellow";
}
String encodedName = breakerName;
try {
encodedName = URLEncoder.encode(breakerName,"UTF-8" );
} catch (Exception e) {
//if Encoding fails we just use normal name and cross our fingers
}
sb.append("");
sb.append("").append(breakerName).append(" | \n");
sb.append(" | \n");
sb.append("
\n\n");
}
sb.append("
\n");
return sb.toString();
}
}