- Revision
- 626
- Author
- mauro
- Date
- 2008-04-19 08:46:15 -0500 (Sat, 19 Apr 2008)
Log Message
WAFFLE-72: Enhanced ServletMonitor.
Modified Paths
- trunk/waffle-core/src/main/java/org/codehaus/waffle/monitor/AbstractWritingMonitor.java
- trunk/waffle-core/src/main/java/org/codehaus/waffle/monitor/ServletMonitor.java
- trunk/waffle-core/src/main/java/org/codehaus/waffle/servlet/WaffleServlet.java
- trunk/waffle-core/src/test/java/org/codehaus/waffle/servlet/WaffleServletTest.java
- trunk/waffle-core/src/test/java/org/codehaus/waffle/testmodel/StubMonitor.java
Diff
Modified: trunk/waffle-core/src/main/java/org/codehaus/waffle/monitor/AbstractWritingMonitor.java (625 => 626)
--- trunk/waffle-core/src/main/java/org/codehaus/waffle/monitor/AbstractWritingMonitor.java 2008-04-19 13:11:22 UTC (rev 625) +++ trunk/waffle-core/src/main/java/org/codehaus/waffle/monitor/AbstractWritingMonitor.java 2008-04-19 13:46:15 UTC (rev 626) @@ -10,31 +10,34 @@ *****************************************************************************/ package org.codehaus.waffle.monitor; -import org.codehaus.waffle.action.ActionMethodResponse; -import org.codehaus.waffle.action.HierarchicalArgumentResolver.Scope; -import org.codehaus.waffle.action.MethodDefinition; -import org.codehaus.waffle.context.ContextContainer; -import org.codehaus.waffle.controller.ControllerDefinition; +import static java.text.MessageFormat.format; +import static java.util.Arrays.asList; import static org.codehaus.waffle.monitor.Monitor.Level.DEBUG; import static org.codehaus.waffle.monitor.Monitor.Level.INFO; import static org.codehaus.waffle.monitor.Monitor.Level.WARN; -import org.codehaus.waffle.registrar.Registrar; -import org.codehaus.waffle.validation.BindErrorMessage; -import org.codehaus.waffle.view.RedirectView; -import org.codehaus.waffle.view.ResponderView; -import org.codehaus.waffle.view.View; -import javax.servlet.http.HttpServletResponse; import java.lang.reflect.Method; -import static java.text.MessageFormat.format; import java.util.ArrayList; -import static java.util.Arrays.asList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.NoSuchElementException; import java.util.Set; +import javax.servlet.Servlet; +import javax.servlet.http.HttpServletResponse; + +import org.codehaus.waffle.action.ActionMethodResponse; +import org.codehaus.waffle.action.MethodDefinition; +import org.codehaus.waffle.action.HierarchicalArgumentResolver.Scope; +import org.codehaus.waffle.context.ContextContainer; +import org.codehaus.waffle.controller.ControllerDefinition; +import org.codehaus.waffle.registrar.Registrar; +import org.codehaus.waffle.validation.BindErrorMessage; +import org.codehaus.waffle.view.RedirectView; +import org.codehaus.waffle.view.ResponderView; +import org.codehaus.waffle.view.View; + /** * Abstract implementation of Monitor that delegates writing to concrete subclasses. * @@ -92,6 +95,8 @@ levels.put("instanceRegistered", DEBUG); levels.put("nonCachingComponentRegistered", DEBUG); levels.put("actionMethodInvocationFailed", WARN); + levels.put("servletInitialized", INFO); + levels.put("servletServiceFailed", WARN); levels.put("servletServiceRequested", DEBUG); levels.put("controllerValidatorNotFound", WARN); levels.put("methodDefinitionNotFound", WARN); @@ -145,6 +150,8 @@ messages.put("instanceRegistered", "Registered instance ''{1}'' with key ''{0}''"); messages.put("nonCachingComponentRegistered", "Registered non-caching component of type ''{1}'' with key ''{0}'' and parameters ''{2}''"); messages.put("actionMethodInvocationFailed", "ActionMethod invocation failed: {0}"); + messages.put("servletInitialized", "Servlet initialized: {0}"); + messages.put("servletServiceFailed", "Servlet service failed: {0}"); messages.put("servletServiceRequested", "Servlet service requested with parameters: {0}"); messages.put("controllerValidatorNotFound", "Controller validator ''{0}'' not found: defaulting to controller ''{1}''"); messages.put("methodDefinitionNotFound", "Method definition not found in controller definition ''{0}''"); @@ -326,7 +333,15 @@ public void actionMethodInvocationFailed(Exception cause){ write("actionMethodInvocationFailed", cause); } + + public void servletInitialized(Servlet servlet) { + write("servletInitialized", servlet); + } + public void servletServiceFailed(Exception cause){ + write("servletServiceFailed", cause); + } + public void servletServiceRequested(Map<String, List<String>> parameters){ write("servletServiceRequested", parameters); }
Modified: trunk/waffle-core/src/main/java/org/codehaus/waffle/monitor/ServletMonitor.java (625 => 626)
--- trunk/waffle-core/src/main/java/org/codehaus/waffle/monitor/ServletMonitor.java 2008-04-19 13:11:22 UTC (rev 625) +++ trunk/waffle-core/src/main/java/org/codehaus/waffle/monitor/ServletMonitor.java 2008-04-19 13:46:15 UTC (rev 626) @@ -13,7 +13,9 @@ import java.util.List; import java.util.Map; +import javax.servlet.Servlet; + /** * A monitor for servlet-related events * @@ -23,6 +25,10 @@ void actionMethodInvocationFailed(Exception cause); + void servletInitialized(Servlet servlet); + void servletServiceRequested(Map<String, List<String>> parameters); + void servletServiceFailed(Exception cause); + }
Modified: trunk/waffle-core/src/main/java/org/codehaus/waffle/servlet/WaffleServlet.java (625 => 626)
--- trunk/waffle-core/src/main/java/org/codehaus/waffle/servlet/WaffleServlet.java 2008-04-19 13:11:22 UTC (rev 625) +++ trunk/waffle-core/src/main/java/org/codehaus/waffle/servlet/WaffleServlet.java 2008-04-19 13:46:15 UTC (rev 626) @@ -62,16 +62,16 @@ private static final String DEFAULT_ERRORS_VIEW = "errors"; private static final String EMPTY = ""; private static final String POST = "POST"; + private String viewPrefix; + private String viewSuffix; + private String errorsView; private ActionMethodExecutor actionMethodExecutor; private ActionMethodResponseHandler actionMethodResponseHandler; - private ServletMonitor servletMonitor; + private ControllerDefinitionFactory controllerDefinitionFactory; private DataBinder dataBinder; private RequestAttributeBinder requestAttributeBinder; - private ControllerDefinitionFactory controllerDefinitionFactory; private Validator validator; - private String viewPrefix; - private String viewSuffix; - private String errorsView; + private ServletMonitor servletMonitor; private boolean componentsRetrieved = false; /** @@ -119,12 +119,13 @@ ComponentRegistry registry = getComponentRegistry(); actionMethodExecutor = registry.getActionMethodExecutor(); actionMethodResponseHandler = registry.getActionMethodResponseHandler(); - servletMonitor = registry.getServletMonitor(); + controllerDefinitionFactory = registry.getControllerDefinitionFactory(); dataBinder = registry.getDataBinder(); requestAttributeBinder = registry.getRequestAttributeBinder(); - controllerDefinitionFactory = registry.getControllerDefinitionFactory(); validator = registry.getValidator(); + servletMonitor = registry.getServletMonitor(); } + servletMonitor.servletInitialized(this); } private String initParam(String key, String defaultValue) { @@ -194,6 +195,7 @@ } requestAttributeBinder.bind(request, controllerDefinition.getController()); } catch (WaffleException e) { + servletMonitor.servletServiceFailed(e); errorsContext.addErrorMessage(new GlobalErrorMessage(e.getMessage(), e)); view = buildErrorsView(request); } @@ -282,4 +284,30 @@ return buildView(new ControllerDefinition(errorsView, null, null)); } + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("[WaffleServlet "); + sb.append(" viewPrefix="); + sb.append(viewPrefix); + sb.append(", viewSuffix="); + sb.append(viewSuffix); + sb.append(", errorsView="); + sb.append(errorsView); + sb.append(", actionMethodExecutor="); + sb.append(actionMethodExecutor); + sb.append(", actionMethodResponseHandler="); + sb.append(actionMethodResponseHandler); + sb.append(", controllerDefinitionFactory="); + sb.append(controllerDefinitionFactory); + sb.append(", dataBinder="); + sb.append(dataBinder); + sb.append(", requestAttributeBinder="); + sb.append(requestAttributeBinder); + sb.append(", validator="); + sb.append(validator); + sb.append("]"); + return sb.toString(); + } + }
Modified: trunk/waffle-core/src/test/java/org/codehaus/waffle/servlet/WaffleServletTest.java (625 => 626)
--- trunk/waffle-core/src/test/java/org/codehaus/waffle/servlet/WaffleServletTest.java 2008-04-19 13:11:22 UTC (rev 625) +++ trunk/waffle-core/src/test/java/org/codehaus/waffle/servlet/WaffleServletTest.java 2008-04-19 13:46:15 UTC (rev 626) @@ -290,7 +290,7 @@ @SuppressWarnings({ "serial", "unchecked" }) @Test - public void canHandleControllerNotFound() throws Exception { + public void canHandleSystemExceptions() throws Exception { // Mock ErrorsContext final ErrorsContext errorsContext = mockery.mock(ErrorsContext.class); final ContextContainer contextContainer = mockery.mock(ContextContainer.class); @@ -354,6 +354,7 @@ // Mock ServletMonitor final ServletMonitor servletMonitor = mockery.mock(ServletMonitor.class); mockery.checking(new Expectations() {{ + allowing(servletMonitor).servletServiceFailed(with(any(WaffleException.class))); allowing(servletMonitor).servletServiceRequested(with(any(Map.class))); }});
Modified: trunk/waffle-core/src/test/java/org/codehaus/waffle/testmodel/StubMonitor.java (625 => 626)
--- trunk/waffle-core/src/test/java/org/codehaus/waffle/testmodel/StubMonitor.java 2008-04-19 13:11:22 UTC (rev 625) +++ trunk/waffle-core/src/test/java/org/codehaus/waffle/testmodel/StubMonitor.java 2008-04-19 13:46:15 UTC (rev 626) @@ -5,6 +5,7 @@ import java.util.Map; import java.util.Set; +import javax.servlet.Servlet; import javax.servlet.http.HttpServletResponse; import org.codehaus.waffle.action.ActionMethodResponse; @@ -122,6 +123,12 @@ public void actionMethodInvocationFailed(Exception cause) { } + public void servletInitialized(Servlet servlet) { + } + + public void servletServiceFailed(Exception cause) { + } + public void servletServiceRequested(Map<String, List<String>> parameters) { }
To unsubscribe from this list please visit:
