You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2008/07/23 21:44:21 UTC

svn commit: r679169 - /incubator/sling/trunk/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/SlingServletResolver.java

Author: bdelacretaz
Date: Wed Jul 23 12:44:21 2008
New Revision: 679169

URL: http://svn.apache.org/viewvc?rev=679169&view=rev
Log:
SLING-580 - improve SlingServletResolver logging

Modified:
    incubator/sling/trunk/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/SlingServletResolver.java

Modified: incubator/sling/trunk/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/SlingServletResolver.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/SlingServletResolver.java?rev=679169&r1=679168&r2=679169&view=diff
==============================================================================
--- incubator/sling/trunk/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/SlingServletResolver.java (original)
+++ incubator/sling/trunk/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/SlingServletResolver.java Wed Jul 23 12:44:21 2008
@@ -128,24 +128,38 @@
 
         Servlet servlet = null;
 
+        final String type = resource.getResourceType();
+        if(log.isDebugEnabled()) {
+        	log.debug("resolveServlet called for Resource {}", request.getResource());
+        }
+        
         // first check whether the type of a resource is the absolute
         // path of a servlet (or script)
-        String type = resource.getResourceType();
         if (type.charAt(0) == '/') {
             Resource res = request.getResourceResolver().getResource(type);
             if (res != null) {
                 servlet = res.adaptTo(Servlet.class);
             }
+            if(servlet!=null && log.isDebugEnabled()) {
+            	log.debug("Servlet {} found using absolute resource type {}", RequestUtil.getServletName(servlet), type);
+            }
         }
 
         // the resource type is not absolute, so lets go for the deep search
         if (servlet == null) {
             ResourceCollector locationUtil = ResourceCollector.create(request);
             servlet = getServlet(locationUtil, request, resource);
+            
+            if(log.isDebugEnabled()) {
+            	log.debug("getServlet returns Servlet {}", RequestUtil.getServletName(servlet));
+            }
         }
 
         // last resort, use the core bundle default servlet
         if (servlet == null) {
+            if(log.isDebugEnabled()) {
+            	log.debug("No specific Servlet found, trying default");
+            }
             servlet = getDefaultServlet();
         }
 
@@ -379,13 +393,37 @@
     private Servlet getServlet(ResourceCollector locationUtil,
             SlingHttpServletRequest request, Resource resource) {
         Collection<Resource> candidates = locationUtil.getServlets(resource);
+        
+    	if(log.isDebugEnabled()) {
+    		if(candidates.isEmpty()) {
+        		log.debug("No Servlet candidates found");
+    		} else {
+        		log.debug("Ordered list of Servlet candidates follows");
+                for (Resource candidateResource : candidates) {
+                	log.debug("Servlet candidate: {}", candidateResource.getPath());
+                }
+    		}
+    	}
+    	
         for (Resource candidateResource : candidates) {
+        	if(log.isDebugEnabled()) {
+        		log.debug("Checking if candidate Resource {} adapts to Servlet and accepts request", 
+        				candidateResource.getPath());
+        	}
             Servlet candidate = candidateResource.adaptTo(Servlet.class);
             if (candidate != null) {
                 boolean servletAcceptsRequest = !(candidate instanceof OptingServlet)
                     || ((OptingServlet) candidate).accepts(request);
                 if (servletAcceptsRequest) {
                     return candidate;
+                } else {
+                	if(log.isDebugEnabled()) {
+                		log.debug("Candidate {} does not accept request, ignored", candidateResource.getPath());
+                	}
+                }
+            } else {
+                if(log.isDebugEnabled()) {
+                	log.debug("Candidate {} does not adapt to a Servlet, ignored", candidateResource.getPath()); 
                 }
             }
         }