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/06/17 02:08:15 UTC
svn commit: r414964 - in
/incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity:
VelocityRenderer.java VelocityRendererFactory.java
VelocityWeblogPageRenderer.java
Author: agilliland
Date: Fri Jun 16 17:08:15 2006
New Revision: 414964
URL: http://svn.apache.org/viewvc?rev=414964&view=rev
Log:
some small tweaks to velocity rendering system.
- velocity renderers now lookup the velocity template at construction time and throw an exception if they can't find the template via velocity.
- velocity renderers now have debugging which times how long rendering takes.
- removed search for decorator by custom name from VelocityWeblogPageRenderer. there didn't appear to be any way for that to be possible, so i ditched it.
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=414964&r1=414963&r2=414964&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 Fri Jun 16 17:08:15 2006
@@ -36,24 +36,33 @@
private static Log log = LogFactory.getLog(VelocityRenderer.class);
private String resourceId = null;
+ private Template resourceTemplate = null;
- public VelocityRenderer(String resource) {
+ 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");
}
public void render(Map model, Writer out) throws Exception {
- // lookup the specified resource
- Template tmpl = RollerVelocity.getTemplate(this.resourceId, "UTF-8");
+ long startTime = System.currentTimeMillis();
// convert model to Velocity Context
Context ctx = new VelocityContext(model);
- // render output to servlet response
- tmpl.merge(ctx, out);
+ // render output to Writer
+ this.resourceTemplate.merge(ctx, out);
+
+ long endTime = System.currentTimeMillis();
+ long renderTime = (endTime - startTime)/1000;
+
+ log.debug("Rendered ["+this.resourceId+"] in "+renderTime+" secs");
}
}
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=414964&r1=414963&r2=414964&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 Fri Jun 16 17:08:15 2006
@@ -30,6 +30,8 @@
public Renderer getRenderer(String rendererType, String resourceId) {
+ Renderer renderer = null;
+
// nothing we can do with null values
if(rendererType == null || resourceId == null) {
return null;
@@ -38,16 +40,23 @@
if("velocity".equals(rendererType)) {
// standard velocity template
- return new VelocityRenderer(resourceId);
+ try {
+ renderer = new VelocityRenderer(resourceId);
+ } catch(Exception e) {
+ // couldn't find the given resource, can't render
+ }
} else if("velocityWeblogPage".equals(rendererType)) {
// special case for velocity weblog page templates
// needed because of the way we do the decorator stuff
- return new VelocityWeblogPageRenderer(resourceId);
+ try {
+ renderer = new VelocityWeblogPageRenderer(resourceId);
+ } catch(Exception e) {
+ // couldn't find the given resource, can't render
+ }
}
- // we don't want to handle this content
- return null;
+ return renderer;
}
}
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=414964&r1=414963&r2=414964&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 Fri Jun 16 17:08:15 2006
@@ -42,34 +42,42 @@
private static Log log = LogFactory.getLog(VelocityWeblogPageRenderer.class);
private String resourceId = null;
+ private Template resourceTemplate = null;
- public VelocityWeblogPageRenderer(String resource) {
+ 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");
}
public void render(Map model, Writer out) throws Exception {
- // lookup the specified resource
- Template tmpl = RollerVelocity.getTemplate(this.resourceId, "UTF-8");
+ long startTime = System.currentTimeMillis();
+
+ // the template we are going to render
+ // we already looked this up at construction time
+ Template tmpl = this.resourceTemplate;
// convert model to Velocity Context
Context ctx = new VelocityContext(model);
- // if there is a decorator template then apply it
- WebsiteData website = null;
// TODO: this is poor form, we should not need to access the pojo from the wrapper
+ WebsiteData weblog = null;
WebsiteDataWrapper websiteWrapper = (WebsiteDataWrapper) model.get("website");
if(websiteWrapper != null) {
- website = websiteWrapper.getPojo();
+ weblog = websiteWrapper.getPojo();
}
- if (website != null) {
+
+ if (weblog != null) {
Template decorator = null;
try {
// look for decorator
- decorator = findDecorator(website, (String) ctx.get("decorator"));
+ decorator = findDecorator(weblog);
} catch(Exception e) {
// error finding decorator
log.warn("Could not find a decorator to apply");
@@ -86,8 +94,14 @@
}
}
- // render output to servlet response
+ // render output to Writer
tmpl.merge(ctx, out);
+
+ long endTime = System.currentTimeMillis();
+ long renderTime = (endTime - startTime)/1000;
+
+ log.debug("Rendered ["+this.resourceId+"] from weblog "+
+ weblog.getHandle()+" in "+renderTime+" secs");
}
@@ -95,34 +109,23 @@
* Load the decorator template and apply it. If there is no user specified
* decorator then the default decorator is applied.
*/
- private Template findDecorator(WebsiteData website, String decorator_name)
- throws Exception {
+ private Template findDecorator(WebsiteData website) throws Exception {
Template decorator = null;
org.apache.roller.pojos.Template decorator_template = null;
- // check for user-specified decorator
- if (decorator_name != null) {
- decorator_template = website.getPageByName(decorator_name);
- }
-
- // if no user-specified decorator try default page-name
- if (decorator_template == null) {
+ try {
+ // see if user defined a custom decorator
decorator_template = website.getPageByName("_decorator");
- }
-
- // try loading Template
- if (decorator_template != null) {
- try {
- decorator = RollerVelocity.getTemplate(decorator_template.getId(), "UTF-8");
- } catch (Exception e) {
- // it may not exist, so this is okay
- }
+
+ decorator = RollerVelocity.getTemplate(decorator_template.getId(), "UTF-8");
+ } catch (Exception e) {
+ // it may not exist, so this is okay
}
// couldn't find Template, load default "no-op" decorator
if (decorator == null) {
- decorator = RollerVelocity.getTemplate("/themes/noop_decorator.vm", "UTF-8");
+ decorator = RollerVelocity.getTemplate("templates/weblog/noop_decorator.vm", "UTF-8");
}
return decorator;