jvanzyl 02/01/18 19:23:27
Modified: src/java/org/apache/turbine/pipeline
DefaultACLCreationValve.java
DefaultActionValve.java DefaultLoginValve.java
DefaultResolver.java
DefaultSessionTimeoutValve.java
DefaultSessionValidationValve.java
DefaultTargetValve.java DirectRenderer.java
DirectTargetValve.java Renderer.java
src/rttest/testapp/templates/app/layouts Default.vm
Log:
- Applying patch submitted by James Taylor that allows the renderer
to be used in templates with the $data parameter which is definitely
better as a designer wouldn't really know what $data is and it's
not require as the renderer has access to Rundata before being placed
in the context. A very good improvement.
NOTE: this change will break templates using
$renderer.render(type, $data, $template)
and will have to be changed to
$renderer.render(type, $template);
Revision Changes Path
1.2 +2 -2
jakarta-turbine-3/src/java/org/apache/turbine/pipeline/DefaultACLCreationValve.java
Index: DefaultACLCreationValve.java
===================================================================
RCS file:
/home/cvs/jakarta-turbine-3/src/java/org/apache/turbine/pipeline/DefaultACLCreationValve.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DefaultACLCreationValve.java 18 Jan 2002 22:33:55 -0000 1.1
+++ DefaultACLCreationValve.java 19 Jan 2002 03:23:26 -0000 1.2
@@ -74,13 +74,13 @@
* pipeline (from the Turbine 2.x series).
*
* @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
- * @version $Id: DefaultACLCreationValve.java,v 1.1 2002/01/18 22:33:55 jvanzyl Exp
$
+ * @version $Id: DefaultACLCreationValve.java,v 1.2 2002/01/19 03:23:26 jvanzyl Exp
$
*/
public class DefaultACLCreationValve
implements Valve, TurbineConstants
{
private static final Category log =
- Category.getInstance( DefaultACLCreationValve.class );
+ Category.getInstance(DefaultACLCreationValve.class);
protected AccessController accessController = null;
1.6 +2 -2
jakarta-turbine-3/src/java/org/apache/turbine/pipeline/DefaultActionValve.java
Index: DefaultActionValve.java
===================================================================
RCS file:
/home/cvs/jakarta-turbine-3/src/java/org/apache/turbine/pipeline/DefaultActionValve.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- DefaultActionValve.java 18 Jan 2002 22:33:55 -0000 1.5
+++ DefaultActionValve.java 19 Jan 2002 03:23:26 -0000 1.6
@@ -80,13 +80,13 @@
* @author <a href="mailto:[EMAIL PROTECTED]">Jon S. Stevens</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Mike Haberman</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Daniel Rall</a>
- * @version $Id: DefaultActionValve.java,v 1.5 2002/01/18 22:33:55 jvanzyl Exp $
+ * @version $Id: DefaultActionValve.java,v 1.6 2002/01/19 03:23:26 jvanzyl Exp $
*/
public class DefaultActionValve
implements Valve, TurbineConstants
{
private static final Category log =
- Category.getInstance( DefaultActionValve.class );
+ Category.getInstance(DefaultActionValve.class);
/**
* Here we can setup objects that are thread safe and can be
1.2 +2 -2
jakarta-turbine-3/src/java/org/apache/turbine/pipeline/DefaultLoginValve.java
Index: DefaultLoginValve.java
===================================================================
RCS file:
/home/cvs/jakarta-turbine-3/src/java/org/apache/turbine/pipeline/DefaultLoginValve.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DefaultLoginValve.java 18 Jan 2002 22:33:55 -0000 1.1
+++ DefaultLoginValve.java 19 Jan 2002 03:23:26 -0000 1.2
@@ -76,13 +76,13 @@
* cycle.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
- * @version $Id: DefaultLoginValve.java,v 1.1 2002/01/18 22:33:55 jvanzyl Exp $
+ * @version $Id: DefaultLoginValve.java,v 1.2 2002/01/19 03:23:26 jvanzyl Exp $
*/
public class DefaultLoginValve
implements Valve, TurbineConstants
{
private static final Category log =
- Category.getInstance( DefaultLoginValve.class );
+ Category.getInstance(DefaultLoginValve.class);
/**
* Here we can setup objects that are thread safe and can be
1.12 +2 -2
jakarta-turbine-3/src/java/org/apache/turbine/pipeline/DefaultResolver.java
Index: DefaultResolver.java
===================================================================
RCS file:
/home/cvs/jakarta-turbine-3/src/java/org/apache/turbine/pipeline/DefaultResolver.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- DefaultResolver.java 18 Jan 2002 03:33:58 -0000 1.11
+++ DefaultResolver.java 19 Jan 2002 03:23:26 -0000 1.12
@@ -134,13 +134,13 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Mike Haberman</a>
- * @version $Id: DefaultResolver.java,v 1.11 2002/01/18 03:33:58 jvanzyl Exp $
+ * @version $Id: DefaultResolver.java,v 1.12 2002/01/19 03:23:26 jvanzyl Exp $
*/
public class DefaultResolver
implements Resolver, TurbineConstants
{
private static final Category log =
- Category.getInstance( DefaultResolver.class );
+ Category.getInstance(DefaultResolver.class);
protected String defaultTemplate;
1.2 +2 -2
jakarta-turbine-3/src/java/org/apache/turbine/pipeline/DefaultSessionTimeoutValve.java
Index: DefaultSessionTimeoutValve.java
===================================================================
RCS file:
/home/cvs/jakarta-turbine-3/src/java/org/apache/turbine/pipeline/DefaultSessionTimeoutValve.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DefaultSessionTimeoutValve.java 18 Jan 2002 22:33:55 -0000 1.1
+++ DefaultSessionTimeoutValve.java 19 Jan 2002 03:23:26 -0000 1.2
@@ -71,13 +71,13 @@
* pipeline (from the Turbine 2.x series).
*
* @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
- * @version $Id: DefaultSessionTimeoutValve.java,v 1.1 2002/01/18 22:33:55 jvanzyl
Exp $
+ * @version $Id: DefaultSessionTimeoutValve.java,v 1.2 2002/01/19 03:23:26 jvanzyl
Exp $
*/
public class DefaultSessionTimeoutValve
implements Valve, TurbineConstants
{
private static final Category log =
- Category.getInstance( DefaultSessionTimeoutValve.class );
+ Category.getInstance(DefaultSessionTimeoutValve.class);
/**
* The default session timeout.
1.2 +2 -2
jakarta-turbine-3/src/java/org/apache/turbine/pipeline/DefaultSessionValidationValve.java
Index: DefaultSessionValidationValve.java
===================================================================
RCS file:
/home/cvs/jakarta-turbine-3/src/java/org/apache/turbine/pipeline/DefaultSessionValidationValve.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DefaultSessionValidationValve.java 18 Jan 2002 22:33:55 -0000 1.1
+++ DefaultSessionValidationValve.java 19 Jan 2002 03:23:26 -0000 1.2
@@ -76,13 +76,13 @@
* pipeline (from the Turbine 2.x series).
*
* @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
- * @version $Id: DefaultSessionValidationValve.java,v 1.1 2002/01/18 22:33:55
jvanzyl Exp $
+ * @version $Id: DefaultSessionValidationValve.java,v 1.2 2002/01/19 03:23:26
jvanzyl Exp $
*/
public class DefaultSessionValidationValve
implements Valve, TurbineConstants
{
private static final Category log =
- Category.getInstance( DefaultSessionValidationValve.class );
+ Category.getInstance(DefaultSessionValidationValve.class);
protected SessionValidator sessionValidator = null;
1.7 +6 -6
jakarta-turbine-3/src/java/org/apache/turbine/pipeline/DefaultTargetValve.java
Index: DefaultTargetValve.java
===================================================================
RCS file:
/home/cvs/jakarta-turbine-3/src/java/org/apache/turbine/pipeline/DefaultTargetValve.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- DefaultTargetValve.java 18 Jan 2002 15:53:42 -0000 1.6
+++ DefaultTargetValve.java 19 Jan 2002 03:23:26 -0000 1.7
@@ -81,13 +81,13 @@
* @author <a href="mailto:[EMAIL PROTECTED]">Daniel Rall</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Mike Haberman</a>
* @author <a href="mailto:[EMAIL PROTECTED]">James Taylor</a>
- * @version $Id: DefaultTargetValve.java,v 1.6 2002/01/18 15:53:42 jvanzyl Exp $
+ * @version $Id: DefaultTargetValve.java,v 1.7 2002/01/19 03:23:26 jvanzyl Exp $
*/
public class DefaultTargetValve
implements Valve
{
private static final Category log =
- Category.getInstance( DefaultTargetValve.class );
+ Category.getInstance(DefaultTargetValve.class);
protected static final String DEFAULT_MODULE_TYPE = "screens";
@@ -170,15 +170,15 @@
log.debug( "Rendering target " + target );
}
- Renderer r = new Renderer();
+ Renderer r = new Renderer( data );
- // FIXME: Can we remove some hardcoding here?
+ // FIXME: Can we remove hardcoding here?
- context.put("renderer", r);
+ context.put( "renderer", r );
// Render the target
- String out = r.render(data, target);
+ String out = r.render( target );
// Write the composed string to the response
1.5 +11 -33
jakarta-turbine-3/src/java/org/apache/turbine/pipeline/DirectRenderer.java
Index: DirectRenderer.java
===================================================================
RCS file:
/home/cvs/jakarta-turbine-3/src/java/org/apache/turbine/pipeline/DirectRenderer.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- DirectRenderer.java 18 Jan 2002 23:21:38 -0000 1.4
+++ DirectRenderer.java 19 Jan 2002 03:23:26 -0000 1.5
@@ -63,63 +63,41 @@
import org.apache.log4j.Category;
/**
- * This class is used in the context to render templates.
+ * Helper class for rendering templates. Unlike its parent, it renders directly
+ * to the Writer associated with its RunData.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Jon S. Stevens</a>
* @author <a href="mailto:[EMAIL PROTECTED]">John McNally</a>
* @author <a href="mailto:[EMAIL PROTECTED]">James Taylor</a>
- * @version $Id: DirectRenderer.java,v 1.4 2002/01/18 23:21:38 jvanzyl Exp $
+ * @version $Id: DirectRenderer.java,v 1.5 2002/01/19 03:23:26 jvanzyl Exp $
*/
public class DirectRenderer
extends Renderer
{
private static final Category log =
- Category.getInstance( DirectRenderer.class );
+ Category.getInstance(DirectRenderer.class);
private static final String EMPTY = "";
- private Writer writer;
-
- public DirectRenderer(Writer writer)
+ public DirectRenderer(RunData data)
{
- this.writer = writer;
+ super(data);
}
/**
- * @see org.apache.turbine.pipeline.Renderer#render(TemplateContext,String)
- * @return zero length String
- */
- public String render(TemplateContext context, String target)
- throws TurbineException,Exception
- {
- try
- {
- log.debug("Rendering target " + target);
- Module.handleRequest(context, target, writer);
- }
- catch (Exception e)
- {
- log.error("Rendering failed", e);
- Module.handleRequest(context, "screens/Error.vm", writer);
- }
-
- return EMPTY;
- }
-
- /**
- * @see org.apache.turbine.pipeline.Renderer#render(RunData,String)
+ * @see org.apache.turbine.pipeline.Renderer#render( String )
* @return zero length String
*/
- public String render(RunData data, String target)
+ public String render(String template)
throws TurbineException, Exception
{
- log.debug("Rendering target " + target);
+ log.debug("Rendering template " + template);
TemplateContext context = Module.getTemplateContext(data);
- Module.handleRequest(context, target, writer);
-
+ Module.handleRequest(context, template, data.getOut());
+
return EMPTY;
}
}
1.4 +8 -10
jakarta-turbine-3/src/java/org/apache/turbine/pipeline/DirectTargetValve.java
Index: DirectTargetValve.java
===================================================================
RCS file:
/home/cvs/jakarta-turbine-3/src/java/org/apache/turbine/pipeline/DirectTargetValve.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- DirectTargetValve.java 18 Jan 2002 15:53:42 -0000 1.3
+++ DirectTargetValve.java 19 Jan 2002 03:23:26 -0000 1.4
@@ -70,14 +70,14 @@
* @author <a href="mailto:[EMAIL PROTECTED]">John McNally</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Daniel Rall</a>
* @author <a href="mailto:[EMAIL PROTECTED]">James Taylor</a>
- * @version $Id: DirectTargetValve.java,v 1.3 2002/01/18 15:53:42 jvanzyl Exp $
+ * @version $Id: DirectTargetValve.java,v 1.4 2002/01/19 03:23:26 jvanzyl Exp $
* @see org.apache.turbine.pipeline.ClassicPipeline
*/
public class DirectTargetValve
extends DefaultTargetValve
{
private static final Category log =
- Category.getInstance( DirectTargetValve.class );
+ Category.getInstance(DirectTargetValve.class);
/**
* Renders and writes result to the output stream in an
@@ -85,23 +85,21 @@
*
* @see org.apache.turbine.pipeline.DefaultTargetValve#execute(RunData)
*/
- protected void render( RunData data, TemplateContext context, String target )
+ protected void render(RunData data, TemplateContext context, String target)
throws Exception
{
- if ( log.isDebugEnabled() )
+ if (log.isDebugEnabled())
{
- log.debug( "Rendering target " + target );
+ log.debug("Rendering target " + target);
}
- Renderer r = new DirectRenderer( data.getOut() );
-
- // FIXME: Can we remove some hardcoding here?
+ Renderer r = new DirectRenderer(data);
+ // FIXME: Can we remove hardcoding here?
context.put("renderer", r);
// Render the target directly to the response
-
- r.render( data, target );
+ r.render(target);
}
}
1.7 +44 -46
jakarta-turbine-3/src/java/org/apache/turbine/pipeline/Renderer.java
Index: Renderer.java
===================================================================
RCS file:
/home/cvs/jakarta-turbine-3/src/java/org/apache/turbine/pipeline/Renderer.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- Renderer.java 18 Jan 2002 03:33:58 -0000 1.6
+++ Renderer.java 19 Jan 2002 03:23:26 -0000 1.7
@@ -63,85 +63,83 @@
import org.apache.log4j.Category;
/**
- * This class is used in the context to render templates.
+ * Helper class for rendering templates. This is used by valves to render
+ * templates. It can also be placed on the context to allow templates to render
+ * other templates.
+ *
+ * Renderers are not thread safe, they must be constructed for and used by a
+ * single RunData. In the future this class is a candidate for being made thread
+ * safe or poolable.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Jon S. Stevens</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Mike Haberman</a>
- * @version $Id: Renderer.java,v 1.6 2002/01/18 03:33:58 jvanzyl Exp $
+ * @author <a href="mailto:[EMAIL PROTECTED]">James Taylor</a>
+ * @version $Id: Renderer.java,v 1.7 2002/01/19 03:23:26 jvanzyl Exp $
*/
public class Renderer
{
private static final Category log =
- Category.getInstance( Renderer.class );
-
- public String render(TemplateContext context, String target)
- throws TurbineException, Exception
- {
- try
- {
- log.debug("Rendering target " + target);
- return Module.handleRequest(context, target);
- }
- catch (Exception e)
- {
- log.error("Rendering failed", e);
- return Module.handleRequest(context, "screens/Error.vm");
- }
- }
+ Category.getInstance(Renderer.class);
+
+ /**
+ * RunData of the request this Renderer is for.
+ */
+ protected RunData data = null;
/**
- * use the resolver to find the template
+ * Construct a renderer for the given RunData.
*/
- public String render(String moduleType, RunData data, String template)
- throws TurbineException,Exception
+ public Renderer(RunData data)
{
- String target = Turbine.getResolver().getTemplate(moduleType, template);
- return render(data, target);
+ this.data = data;
}
/**
- * This method is called in the ClassicPipeline because it doesn't
- * catch exceptions when attempting to render the template. That way,
- * exceptions can be caught way up in the Turbine class and the
- * error page can be dealt with properly without a lot of extra code
- * here.
+ * Render the given template. TemplateContext to use will be extracted from
+ * the RunData with which this Renderer was constructer.
+ *
+ * @param template name/path of template in the format expected by the
+ * appropriate template engine service
+ * @return Result of template merge
*/
- public String render(RunData data, String target)
+ public String render(String template)
throws TurbineException, Exception
{
- log.debug("Rendering target " + target);
+ log.debug("Rendering template " + template);
+
TemplateContext context = Module.getTemplateContext(data);
- return Module.handleRequest(context, target);
+
+ return Module.handleRequest( context, template );
}
- public String render(String moduleType, TemplateContext context,
- String template)
+ /**
+ * Use the resolver to find the template, then render.
+ */
+ public String render(String type, String target)
throws TurbineException, Exception
{
- String target = Turbine.getResolver().getTemplate(moduleType, template);
- return render(context, target);
+ String template = Turbine.getResolver().getTemplate(type, target);
+
+ return render( template );
}
/**
- * Attemps to locate the template and if it can't find it, then
- * it will attempt to render the defaultTemplate
+ * Attemps to locate the template for target and render, if it can't find
+ * it, then it will attempt to render the template for defaultTarget
*/
- public String render(String moduleType, RunData data,
- String template, String defaultTemplate)
- throws TurbineException,Exception
+ public String render(String type, String target, String defaultTarget)
+ throws TurbineException, Exception
{
- String target = Turbine.getResolver().getTemplate(moduleType, template);
+ String template = Turbine.getResolver().getTemplate(type, target);
- String output = null;
- if (Module.templateExists(target))
+ if (Module.templateExists(template))
{
- output = render(data, target);
+ return render(template);
}
else
{
- output = render(moduleType, data, defaultTemplate);
+ return render(type, defaultTarget);
}
- return output;
}
}
1.4 +6 -6
jakarta-turbine-3/src/rttest/testapp/templates/app/layouts/Default.vm
Index: Default.vm
===================================================================
RCS file:
/home/cvs/jakarta-turbine-3/src/rttest/testapp/templates/app/layouts/Default.vm,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- Default.vm 19 Jan 2002 02:53:39 -0000 1.3
+++ Default.vm 19 Jan 2002 03:23:26 -0000 1.4
@@ -7,20 +7,20 @@
</head>
<body bgcolor="#ffffff">
-<table id="layout" width="100%">
+<table id=layout width="100%">
<tr>
- <td id="topNav">
- $renderer.render("navigations", $data, "/DefaultTop.vm")
+ <td id=topNav>
+ $renderer.render("navigations", "/DefaultTop.vm")
</td>
</tr>
<tr>
<td align="left" valign="top" id="screen">
- $renderer.render("screens", $data, $template)
+ $renderer.render("screens", $template)
</td>
</tr>
<tr>
- <td id="bottomNav">
- $renderer.render("navigations", $data, "/DefaultBottom.vm")
+ <td id=bottomNav>
+ $renderer.render("navigations", "/DefaultBottom.vm")
</td>
</tr>
</table>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>