You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by il...@apache.org on 2011/07/01 09:59:11 UTC

svn commit: r1141861 - in /cocoon/cocoon3/trunk: cocoon-servlet/src/main/java/org/apache/cocoon/servlet/XMLSitemapServlet.java cocoon-sitemap/src/main/java/org/apache/cocoon/sitemap/InvocationImpl.java

Author: ilgrosso
Date: Fri Jul  1 07:59:10 2011
New Revision: 1141861

URL: http://svn.apache.org/viewvc?rev=1141861&view=rev
Log:
Using cocoon-spring-configurator for sitemap reload and exception unroll

Modified:
    cocoon/cocoon3/trunk/cocoon-servlet/src/main/java/org/apache/cocoon/servlet/XMLSitemapServlet.java
    cocoon/cocoon3/trunk/cocoon-sitemap/src/main/java/org/apache/cocoon/sitemap/InvocationImpl.java

Modified: cocoon/cocoon3/trunk/cocoon-servlet/src/main/java/org/apache/cocoon/servlet/XMLSitemapServlet.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-servlet/src/main/java/org/apache/cocoon/servlet/XMLSitemapServlet.java?rev=1141861&r1=1141860&r2=1141861&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-servlet/src/main/java/org/apache/cocoon/servlet/XMLSitemapServlet.java (original)
+++ cocoon/cocoon3/trunk/cocoon-servlet/src/main/java/org/apache/cocoon/servlet/XMLSitemapServlet.java Fri Jul  1 07:59:10 2011
@@ -24,6 +24,7 @@ import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import org.apache.cocoon.configuration.Settings;
 
 import org.apache.cocoon.spring.configurator.WebAppContextUtils;
 import org.apache.commons.logging.Log;
@@ -57,7 +58,12 @@ public class XMLSitemapServlet extends H
             throws ServletException {
 
         synchronized (this) {
-            if (this.requestProcessor != null) {
+            final Settings settings = (Settings) WebAppContextUtils.
+                    getCurrentWebApplicationContext().getBean(
+                    Settings.class.getName());
+            
+            if (!settings.isReloadingEnabled("sitemap")
+                    && this.requestProcessor != null) {
                 return;
             }
 

Modified: cocoon/cocoon3/trunk/cocoon-sitemap/src/main/java/org/apache/cocoon/sitemap/InvocationImpl.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-sitemap/src/main/java/org/apache/cocoon/sitemap/InvocationImpl.java?rev=1141861&r1=1141860&r2=1141861&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-sitemap/src/main/java/org/apache/cocoon/sitemap/InvocationImpl.java (original)
+++ cocoon/cocoon3/trunk/cocoon-sitemap/src/main/java/org/apache/cocoon/sitemap/InvocationImpl.java Fri Jul  1 07:59:10 2011
@@ -27,6 +27,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
+import org.apache.cocoon.configuration.Settings;
 
 import org.apache.cocoon.pipeline.Pipeline;
 import org.apache.cocoon.pipeline.component.Finisher;
@@ -38,6 +39,7 @@ import org.apache.cocoon.sitemap.util.Ex
 import org.apache.cocoon.sitemap.util.ParameterHelper;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 
 public class InvocationImpl implements Invocation {
 
@@ -62,6 +64,9 @@ public class InvocationImpl implements I
     private ObjectModel objectModel;
 
     private boolean hasFinisher;
+    
+    @Autowired
+    private Settings settings;
 
     public InvocationImpl() {
     }
@@ -319,7 +324,18 @@ public class InvocationImpl implements I
      */
     public void setThrowable(final Throwable throwable) {
         Throwable cause = ExceptionHandler.getCause(throwable);
-
+        // settings might be null when this instance is not managed by Spring
+        if (null != cause && null != settings) {
+            final String unroll =
+                    settings.getProperty("org.apache.cocoon.exception."
+                    + cause.getClass().getSimpleName() + ".unroll");
+            if (unroll != null && "true".equalsIgnoreCase(unroll)) {
+                while (cause.getCause() != null) {
+                    cause = cause.getCause();
+                }
+            }
+        }
+        
         this.objectModel.getCocoonObject().put("exception", cause);
         ParameterHelper.setThrowable(this.parameters, cause);