Author: bdekruijff at gmail.com
Date: Mon Jan 31 16:33:30 2011
New Revision: 732

Log:
AMDATU-245 consult servletmatchers when search dispatcher target

Modified:
   
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/dispatch/FilterPipeline.java
   
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/dispatch/ServletPipeline.java
   
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/handler/ServletHandler.java

Modified: 
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/dispatch/FilterPipeline.java
==============================================================================
--- 
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/dispatch/FilterPipeline.java
       (original)
+++ 
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/dispatch/FilterPipeline.java
       Mon Jan 31 16:33:30 2011
@@ -37,7 +37,7 @@
 
         @Override
         public RequestDispatcher getRequestDispatcher(String path) {
-            final RequestDispatcher dispatcher = 
m_servletPipeline.getRequestDispatcher(path);
+            final RequestDispatcher dispatcher = 
m_servletPipeline.getRequestDispatcher(this, path);
             return (null != dispatcher) ? dispatcher : 
super.getRequestDispatcher(path);
         }
     }

Modified: 
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/dispatch/ServletPipeline.java
==============================================================================
--- 
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/dispatch/ServletPipeline.java
      (original)
+++ 
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/dispatch/ServletPipeline.java
      Mon Jan 31 16:33:30 2011
@@ -33,9 +33,9 @@
         return m_servletHandlers.length > 0;
     }
 
-    public RequestDispatcher getRequestDispatcher(String path) {
+    public RequestDispatcher getRequestDispatcher(HttpServletRequest 
httpServletRequest, String path) {
         for (ServletHandler handler : m_servletHandlers) {
-            if (handler.matchesPath(path)) {
+            if (handler.matches(httpServletRequest, path)) {
                 return new Dispatcher(path, handler);
             }
         }

Modified: 
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/handler/ServletHandler.java
==============================================================================
--- 
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/handler/ServletHandler.java
        (original)
+++ 
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/handler/ServletHandler.java
        Mon Jan 31 16:33:30 2011
@@ -44,17 +44,23 @@
 
     public boolean handle(HttpServletRequest httpServletRequest, 
HttpServletResponse httpServletResponse)
         throws ServletException, IOException {
-
-        boolean matches = matchesPath(httpServletRequest.getPathInfo());
-        if (matches) {
-            if (m_servletHandlerRegistry.servletHandlerMatches(this, 
httpServletRequest)) {
-                doHandle(httpServletRequest, httpServletResponse);
-                return true;
-            }
+        if (matches(httpServletRequest)) {
+            doHandle(httpServletRequest, httpServletResponse);
+            return true;
         }
         return false;
     }
 
+    public boolean matches(HttpServletRequest httpServletRequest) {
+        return matches(httpServletRequest, httpServletRequest.getPathInfo());
+    }
+
+    public boolean matches(HttpServletRequest httpServletRequest, String path) 
{
+        return matchesPath(path)
+                && m_servletHandlerRegistry.servletHandlerMatches(this,
+                        httpServletRequest);
+    }
+
     public boolean matchesPath(String uri) {
         if (uri == null) {
             return m_alias.equals("/");

Reply via email to