- Revision
- 99
- Author
- mauro
- Date
- 2007-05-28 05:14:28 -0500 (Mon, 28 May 2007)
Log Message
Added monitoring for MethodNameResolver.
Modified Paths
- trunk/core/src/main/java/org/codehaus/waffle/action/RequestParameterMethodNameResolver.java
- trunk/core/src/main/java/org/codehaus/waffle/monitor/ConsoleMonitor.java
- trunk/core/src/main/java/org/codehaus/waffle/monitor/Monitor.java
- trunk/core/src/test/java/org/codehaus/waffle/action/RequestParameterMethodNameResolverTest.java
- trunk/core/src/test/java/org/codehaus/waffle/testmodel/StubMonitor.java
Diff
Modified: trunk/core/src/main/java/org/codehaus/waffle/action/RequestParameterMethodNameResolver.java (98 => 99)
--- trunk/core/src/main/java/org/codehaus/waffle/action/RequestParameterMethodNameResolver.java 2007-05-28 09:41:10 UTC (rev 98) +++ trunk/core/src/main/java/org/codehaus/waffle/action/RequestParameterMethodNameResolver.java 2007-05-28 10:14:28 UTC (rev 99) @@ -12,24 +12,33 @@ import javax.servlet.http.HttpServletRequest; +import org.codehaus.waffle.monitor.Monitor; + /** * Implementation of method name resolver which returns the value of a configurable action parameter key, * which defaults to 'method'. + * <p/> + * The resolved name is monitored along with the available parameter key set. * * @author Michael Ward + * @author Mauro Talevi */ public class RequestParameterMethodNameResolver implements MethodNameResolver { private String methodParameterKey = "method"; + private Monitor monitor; - public RequestParameterMethodNameResolver() { - // default + public RequestParameterMethodNameResolver(Monitor monitor) { + this.monitor = monitor; } - public RequestParameterMethodNameResolver(RequestParameterMethodNameResolverConfig configuration) { + public RequestParameterMethodNameResolver(RequestParameterMethodNameResolverConfig configuration, Monitor monitor) { this.methodParameterKey = configuration.getMethodParameterKey(); + this.monitor = monitor; } public String resolve(HttpServletRequest request) { - return request.getParameter(methodParameterKey); + String methodName = request.getParameter(methodParameterKey); + monitor.methodNameResolved(methodName, methodParameterKey, request.getParameterMap().keySet()); + return methodName; } }
Modified: trunk/core/src/main/java/org/codehaus/waffle/monitor/ConsoleMonitor.java (98 => 99)
--- trunk/core/src/main/java/org/codehaus/waffle/monitor/ConsoleMonitor.java 2007-05-28 09:41:10 UTC (rev 98) +++ trunk/core/src/main/java/org/codehaus/waffle/monitor/ConsoleMonitor.java 2007-05-28 10:14:28 UTC (rev 99) @@ -10,15 +10,21 @@ *****************************************************************************/ package org.codehaus.waffle.monitor; +import java.util.Set; + import org.codehaus.waffle.action.MethodDefinition; /** - * Implementation of Monitor that write to console + * Implementation of Monitor that writes to console * * @author Mauro Talevi */ public class ConsoleMonitor implements Monitor { + protected void write(String message) { + System.out.println(message); + } + public void defaultActionMethodFound(MethodDefinition methodDefinition) { write("Default ActionMethod found: "+methodDefinition); } @@ -35,8 +41,9 @@ write("ActionMethod found: "+methodDefinition); } - protected void write(String message) { - System.out.println(message); + public void methodNameResolved(String methodName, String methodKey, Set<String> keys) { + write("Method name '"+methodName+"' found for key '"+methodKey+"' among keys "+keys); } + }
Modified: trunk/core/src/main/java/org/codehaus/waffle/monitor/Monitor.java (98 => 99)
--- trunk/core/src/main/java/org/codehaus/waffle/monitor/Monitor.java 2007-05-28 09:41:10 UTC (rev 98) +++ trunk/core/src/main/java/org/codehaus/waffle/monitor/Monitor.java 2007-05-28 10:14:28 UTC (rev 99) @@ -10,6 +10,8 @@ *****************************************************************************/ package org.codehaus.waffle.monitor; +import java.util.Set; + import org.codehaus.waffle.action.MethodDefinition; /** @@ -30,4 +32,6 @@ void actionMethodFound(MethodDefinition methodDefinition); + void methodNameResolved(String methodName, String methodKey, Set<String> keys); + }
Modified: trunk/core/src/test/java/org/codehaus/waffle/action/RequestParameterMethodNameResolverTest.java (98 => 99)
--- trunk/core/src/test/java/org/codehaus/waffle/action/RequestParameterMethodNameResolverTest.java 2007-05-28 09:41:10 UTC (rev 98) +++ trunk/core/src/test/java/org/codehaus/waffle/action/RequestParameterMethodNameResolverTest.java 2007-05-28 10:14:28 UTC (rev 99) @@ -1,24 +1,32 @@ package org.codehaus.waffle.action; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; + +import org.codehaus.waffle.monitor.Monitor; +import org.codehaus.waffle.monitor.SilentMonitor; import org.jmock.Mock; import org.jmock.MockObjectTestCase; -import org.codehaus.waffle.action.MethodNameResolver; -import org.codehaus.waffle.action.RequestParameterMethodNameResolverConfig; -import org.codehaus.waffle.action.RequestParameterMethodNameResolver; -import javax.servlet.http.HttpServletRequest; - public class RequestParameterMethodNameResolverTest extends MockObjectTestCase { + private Monitor monitor = new SilentMonitor(); + public void testResolve() { Mock mockRequest = mock(HttpServletRequest.class); mockRequest.expects(once()) .method("getParameter") .with(eq("method")) .will(returnValue("foobar")); + mockRequest.expects(once()) + .method("getParameterMap") + .will(returnValue(mockParameterMap("method"))); HttpServletRequest request = (HttpServletRequest) mockRequest.proxy(); - MethodNameResolver resolver = new RequestParameterMethodNameResolver(); + MethodNameResolver resolver = new RequestParameterMethodNameResolver(monitor); assertEquals("foobar", resolver.resolve(request)); } @@ -28,6 +36,9 @@ .method("getParameter") .with(eq("soda")) .will(returnValue("foobar")); + mockRequest.expects(once()) + .method("getParameterMap") + .will(returnValue(mockParameterMap("soda"))); HttpServletRequest request = (HttpServletRequest) mockRequest.proxy(); RequestParameterMethodNameResolverConfig configuration = new RequestParameterMethodNameResolverConfig() { @@ -36,7 +47,17 @@ } }; - MethodNameResolver resolver = new RequestParameterMethodNameResolver(configuration); + MethodNameResolver resolver = new RequestParameterMethodNameResolver(configuration, monitor); assertEquals("foobar", resolver.resolve(request)); } + + private Map mockParameterMap(String name) { + Mock mockMap = mock(Map.class); + mockMap.expects(once()) + .method("keySet") + .will(returnValue(new HashSet(Arrays.asList(new String[]{name})))); + return (Map) mockMap.proxy(); + } + + }
Modified: trunk/core/src/test/java/org/codehaus/waffle/testmodel/StubMonitor.java (98 => 99)
--- trunk/core/src/test/java/org/codehaus/waffle/testmodel/StubMonitor.java 2007-05-28 09:41:10 UTC (rev 98) +++ trunk/core/src/test/java/org/codehaus/waffle/testmodel/StubMonitor.java 2007-05-28 10:14:28 UTC (rev 99) @@ -1,5 +1,7 @@ package org.codehaus.waffle.testmodel; +import java.util.Set; + import org.codehaus.waffle.action.MethodDefinition; import org.codehaus.waffle.monitor.Monitor; @@ -17,5 +19,8 @@ public void actionMethodFound(MethodDefinition methodDefinition) { } + public void methodNameResolved(String methodName, String methodKey, Set<String> keys) { + } + }
To unsubscribe from this list please visit:
