You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by ag...@apache.org on 2006/07/20 20:11:18 UTC

svn commit: r424010 - in /incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity: VelocityRenderer.java VelocityRendererFactory.java VelocityWeblogPageRenderer.java

Author: agilliland
Date: Thu Jul 20 11:11:18 2006
New Revision: 424010

URL: http://svn.apache.org/viewvc?rev=424010&view=rev
Log:
cleaning up velocity renderer error page handling and adding support to VelocityWeblogPageRenderer.


Modified:
    incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/VelocityRenderer.java
    incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/VelocityRendererFactory.java
    incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/VelocityWeblogPageRenderer.java

Modified: incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/VelocityRenderer.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/VelocityRenderer.java?rev=424010&r1=424009&r2=424010&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/VelocityRenderer.java (original)
+++ incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/VelocityRenderer.java Thu Jul 20 11:11:18 2006
@@ -27,6 +27,7 @@
 import org.apache.velocity.Template;
 import org.apache.velocity.VelocityContext;
 import org.apache.velocity.context.Context;
+import org.apache.velocity.exception.ParseErrorException;
 
 
 /**
@@ -38,30 +39,41 @@
     
     private String resourceId = null;
     private Template resourceTemplate = null;
-    private Exception exception = null;  
-    private String exceptionSource = null;
+    private Exception parseException = null;
+    
     
     public VelocityRenderer(String resource) throws Exception {
         
         this.resourceId = resource;
         
-        // make sure that we can locate the template
-        // if we can't then this will throw an exception
-        resourceTemplate = RollerVelocity.getTemplate(this.resourceId, "UTF-8");
-    }
-    
-    /** Construct rendering for displaying exception */
-    public VelocityRenderer(Exception exception, String exceptionSource, String resource) throws Exception {
-        this(resource);        
-        this.exception = exception;
-        this.exceptionSource = exceptionSource;
+        try {
+            // make sure that we can locate the template
+            // if we can't then this will throw an exception
+            resourceTemplate = RollerVelocity.getTemplate(this.resourceId, "UTF-8");
+        } catch(ParseErrorException ex) {
+            // in the case of a parsing error we want to render an
+            // error page instead so the user knows what was wrong
+            parseException = ex;
+            
+            // need to lookup error page template
+            resourceTemplate = RollerVelocity.getTemplate("templates/error-page.vm");
+        }
     }
     
     
     public void render(Map model, Writer out) throws Exception {
         
-        if (exception != null) {
-            renderException(model, out);
+        if(parseException != null) {
+            
+            Context ctx = new VelocityContext(model);
+            ctx.put("exception", parseException);
+            ctx.put("exceptionSource", resourceId);
+            ctx.put("utils", new UtilitiesModel());
+            
+            // render output to Writer
+            resourceTemplate.merge(ctx, out);
+            
+            // and we're done
             return;
         }
         
@@ -78,20 +90,5 @@
         
         log.debug("Rendered ["+this.resourceId+"] in "+renderTime+" secs");
     }
-        
-    
-    private void renderException(Map model, Writer out) throws Exception { 
-                
-        // add exception to Velocity Context and utils for formatting
-        Context ctx = new VelocityContext(model);
-        ctx.put("exception", exception);
-        ctx.put("exceptionSource", exceptionSource);
-        ctx.put("utils", new UtilitiesModel()); 
-        
-        // render output to Writer
-        resourceTemplate.merge(ctx, out);
-    }
-    
-    
 
 }

Modified: incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/VelocityRendererFactory.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/VelocityRendererFactory.java?rev=424010&r1=424009&r2=424010&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/VelocityRendererFactory.java (original)
+++ incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/VelocityRendererFactory.java Thu Jul 20 11:11:18 2006
@@ -43,15 +43,8 @@
             // standard velocity template
             try {
                renderer = new VelocityRenderer(resourceId);
-            } catch (ParseErrorException pe) {            
-                // Author needs to see parsing error so display error page
-                try {
-                    renderer = new VelocityRenderer(pe, resourceId, "templates/error-page.vm");
-                } catch (Throwable t) {
-                    throw new RuntimeException("ERROR displaying error page", t);
-                }
             } catch(Exception ignored) {
-                // couldn't find the given resource, can't render
+                // can't render
             }            
             
         } else if("velocityWeblogPage".equals(rendererType)) {
@@ -60,15 +53,8 @@
             // needed because of the way we do the decorator stuff
             try {
                 renderer = new VelocityWeblogPageRenderer(resourceId);
-            } catch (ParseErrorException pe) {            
-                // Author needs to see parsing error so display error page
-                try {
-                    renderer = new VelocityRenderer(pe, resourceId, "templates/error-page.vm");
-                } catch (Throwable t) {
-                    throw new RuntimeException("ERROR displaying error page", t);
-                }
             } catch(Exception ignored) {
-                // couldn't find the given resource, can't render
+                // can't render
             }   
         }
         

Modified: incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/VelocityWeblogPageRenderer.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/VelocityWeblogPageRenderer.java?rev=424010&r1=424009&r2=424010&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/VelocityWeblogPageRenderer.java (original)
+++ incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/VelocityWeblogPageRenderer.java Thu Jul 20 11:11:18 2006
@@ -26,9 +26,11 @@
 import org.apache.roller.pojos.WebsiteData;
 import org.apache.roller.pojos.wrapper.WebsiteDataWrapper;
 import org.apache.roller.ui.rendering.Renderer;
+import org.apache.roller.ui.rendering.model.UtilitiesModel;
 import org.apache.velocity.Template;
 import org.apache.velocity.VelocityContext;
 import org.apache.velocity.context.Context;
+import org.apache.velocity.exception.ParseErrorException;
 
 
 /**
@@ -43,19 +45,43 @@
     
     private String resourceId = null;
     private Template resourceTemplate = null;
+    private Exception parseException = null;
     
     
     public VelocityWeblogPageRenderer(String resource) throws Exception {
         
         this.resourceId = resource;
         
-        // make sure that we can locate the template
-        // if we can't then this will throw an exception
-        resourceTemplate = RollerVelocity.getTemplate(this.resourceId, "UTF-8");
+        try {
+            // make sure that we can locate the template
+            // if we can't then this will throw an exception
+            resourceTemplate = RollerVelocity.getTemplate(this.resourceId, "UTF-8");
+        } catch(ParseErrorException ex) {
+            // in the case of a parsing error we want to render an
+            // error page instead so the user knows what was wrong
+            parseException = ex;
+            
+            // need to lookup error page template
+            resourceTemplate = RollerVelocity.getTemplate("templates/error-page.vm");
+        }
     }
     
     
     public void render(Map model, Writer out) throws Exception {
+        
+        if(parseException != null) {
+            
+            Context ctx = new VelocityContext(model);
+            ctx.put("exception", parseException);
+            ctx.put("exceptionSource", resourceId);
+            ctx.put("utils", new UtilitiesModel());
+            
+            // render output to Writer
+            resourceTemplate.merge(ctx, out);
+            
+            // and we're done
+            return;
+        }
         
         long startTime = System.currentTimeMillis();