package dk.thoerup.curcuitbreaker.web; import java.net.URLEncoder; import javax.servlet.http.*; import dk.thoerup.curcuitbreaker.CircuitBreaker; import dk.thoerup.curcuitbreaker.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("\n"); for (String breakerName : manager.getCircuitBreakerNames()) { CircuitBreaker breaker = manager.getCircuitBreaker(breakerName); String color = "white"; if (breaker.getStateName().equalsIgnoreCase("open")) { color = "red"; } else if (breaker.getStateName().equalsIgnoreCase("Half-open")) { color = "yellow"; } else { //must be "closed" color ="green"; } 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("\n"); sb.append("\n"); sb.append("\n\n"); } sb.append("
NameStatus
").append(breakerName).append(" 
\n"); return sb.toString(); } }