--- CircuitBreaker/src/dk/thoerup/curcuitbreaker/web/ViewCircuitBreaker.java 2009/10/19 14:04:40 448 +++ CircuitBreaker/src/dk/thoerup/circuitbreaker/web/ViewCircuitBreaker.java 2011/04/16 11:11:07 1293 @@ -1,13 +1,15 @@ -package dk.thoerup.curcuitbreaker.web; +package dk.thoerup.circuitbreaker.web; import java.util.Date; +import java.util.LinkedList; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import dk.thoerup.curcuitbreaker.AccountingCircuitBreaker; -import dk.thoerup.curcuitbreaker.CircuitBreaker; -import dk.thoerup.curcuitbreaker.CircuitBreakerManager; +import dk.thoerup.circuitbreaker.AccountingCircuitBreaker; +import dk.thoerup.circuitbreaker.LoggingCircuitBreaker; +import dk.thoerup.circuitbreaker.CircuitBreaker; +import dk.thoerup.circuitbreaker.CircuitBreakerManager; public class ViewCircuitBreaker implements Command { @@ -45,6 +47,14 @@ return sb.toString(); } + public static String formatDate(long date) { + if (date == 0L) { + return "-"; + } else { + return new Date(date).toString(); + } + } + public String execute(HttpServletRequest req, HttpServletResponse resp) { CircuitBreaker breaker = CircuitBreakerManager.getManager().getCircuitBreaker( req.getParameter("breaker")); String uri = req.getRequestURI(); @@ -62,7 +72,7 @@ sb.append("Attributes:\n"); sb.append(""); sb.append("\n"); - sb.append("\n"); + sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); @@ -74,13 +84,37 @@ AccountingCircuitBreaker acb = (AccountingCircuitBreaker) breaker; sb.append("\n"); sb.append("\n"); + sb.append("\n"); sb.append("\n"); sb.append("\n"); sb.append("\n"); - sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + sb.append("\n"); + + sb.append("\n"); + } + + if (breaker instanceof LoggingCircuitBreaker) { + LoggingCircuitBreaker lcb = (LoggingCircuitBreaker) breaker; + + LinkedList list = lcb.getLog(); + String headerLink = String.format("Logging", req.getRequestURI(), breaker.getName() ); + + sb.append("\n"); + + int max = list.size() > 10 ? 10 : list.size(); + for (int i=0; i"); + } } - sb.append("
Name ").append(breaker.getName()).append("
State ").append( breaker ).append("
State ").append( getStateBar(breaker) ).append("
Type ").append(breaker.getClass().getSimpleName() ).append("
Notifier ").append(breaker.getNotifierName()).append("
Failure count ").append(breaker.getFailureCount()).append("
Accounting
Trip count").append( acb.getTripCount() ).append("
Re-trip count").append( acb.getRetripCount() ).append("
Block count").append( acb.getBlockCount() ).append("
Total failure count").append( acb.getTotalFailureCount() ).append("
Total Call count").append( acb.getTotalCallCount() ).append("
Last reset").append( new Date(acb.getLastResetCounters()).toString() ).append("
Last failure").append( formatDate(acb.getLastFailure()) ).append("
Last trip").append( formatDate(acb.getLastTrip()) ).append("
Last re-trip").append( formatDate(acb.getLastRetrip()) ).append("
Last reset").append( formatDate(acb.getLastReset()) ).append("
Last resetCounters").append( formatDate(acb.getLastResetCounters()) ).append("
").append(headerLink).append("
"); + sb.append( entry.toString() ); + sb.append("

\n"); + sb.append("\n"); + sb.append("Current time: ").append( new Date().toString() ).append("

\n"); sb.append("Operations:\n"); if ( !readOnly ) { @@ -89,6 +123,9 @@ if (breaker instanceof AccountingCircuitBreaker ) { sb.append( actionBuilder(uri, "resetCounters", breaker.getName())).append("
\n"); } + if (breaker instanceof LoggingCircuitBreaker ) { + sb.append( actionBuilder(uri, "clearLog", breaker.getName())).append("
\n"); + } } else { sb.append("the CircuitBreakers can only be viewed"); }