You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tiles.apache.org by ap...@apache.org on 2010/09/25 11:17:59 UTC

svn commit: r1001169 - in /tiles/sandbox/trunk: tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/ tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/render/ tiles-request/tiles-request-freemarker/ tiles-...

Author: apetrelli
Date: Sat Sep 25 09:17:56 2010
New Revision: 1001169

URL: http://svn.apache.org/viewvc?rev=1001169&view=rev
Log:
TILESSB-35
Moved code and tests from tiles-parent to tiles-request.
Removed some now useless code.

Added:
    tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/StringRenderer.java
      - copied, changed from r996298, tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/renderer/impl/StringAttributeRenderer.java
    tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/render/
    tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/render/DispatchRendererTest.java
      - copied, changed from r996298, tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/TemplateAttributeRendererTest.java
    tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/render/StringRendererTest.java
      - copied, changed from r996298, tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/StringAttributeRendererTest.java
    tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/render/
      - copied from r996298, tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/renderer/
    tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/render/FreemarkerRendererTest.java
      - copied, changed from r996298, tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRendererTest.java
    tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/resources/test.ftl
      - copied unchanged from r996298, tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/resources/test.ftl
    tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/render/
      - copied from r996298, tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/renderer/
    tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/render/VelocityRendererTest.java
      - copied, changed from r996298, tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/renderer/VelocityAttributeRendererTest.java
    tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/DefinitionRendererTest.java
      - copied, changed from r996298, tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/DefinitionAttributeRendererTest.java
    tiles/sandbox/trunk/tiles3/tiles-test-pom/tiles-test-common/src/main/java/org/apache/tiles/test/renderer/ReverseStringAttributeRenderer.java
Removed:
    tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/render/FreeMarkerAttributeRendererTest.java
    tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/render/VelocityAttributeRendererTest.java
    tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/renderer/impl/DefinitionAttributeRenderer.java
    tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/renderer/impl/StringAttributeRenderer.java
    tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/renderer/impl/TemplateAttributeRenderer.java
    tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/DefinitionAttributeRendererTest.java
    tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/StringAttributeRendererTest.java
    tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/TemplateAttributeRendererTest.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/FreeMarkerTilesException.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/renderer/
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/FreeMarkerTilesExceptionTest.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/renderer/
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/resources/test.ftl
    tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/renderer/
    tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/context/
    tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/renderer/
Modified:
    tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/pom.xml
    tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/factory/BasicTilesContainerFactory.java
    tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/factory/BasicTilesContainerFactoryTest.java
    tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/BasicRendererFactoryTest.java
    tiles/sandbox/trunk/tiles3/tiles-extras/src/test/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactoryTest.java

Copied: tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/StringRenderer.java (from r996298, tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/renderer/impl/StringAttributeRenderer.java)
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/StringRenderer.java?p2=tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/StringRenderer.java&p1=tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/renderer/impl/StringAttributeRenderer.java&r1=996298&r2=1001169&rev=1001169&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/renderer/impl/StringAttributeRenderer.java (original)
+++ tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/StringRenderer.java Sat Sep 25 09:17:56 2010
@@ -18,32 +18,30 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.tiles.renderer.impl;
+package org.apache.tiles.request.render;
 
 import java.io.IOException;
 
-import org.apache.tiles.Attribute;
 import org.apache.tiles.request.Request;
 
 /**
  * Renders an attribute that contains a string.
  *
  * @version $Rev$ $Date$
- * @since 2.1.0
  */
-public class StringAttributeRenderer extends AbstractTypeDetectingAttributeRenderer {
+public class StringRenderer implements TypeDetectingRenderer {
 
     /** {@inheritDoc} */
     @Override
-    public void write(Object value, Attribute attribute,
-            Request request)
-            throws IOException {
-        request.getWriter().write(value.toString());
+    public void render(String value, Request request) throws IOException {
+        if (value == null) {
+            throw new InvalidTemplateException("Cannot render a null string");
+        }
+        request.getWriter().write(value);
     }
 
     /** {@inheritDoc} */
-    public boolean isRenderable(Object value, Attribute attribute,
-            Request request) {
-        return value instanceof String;
+    public boolean isRenderable(String value, Request request) {
+        return value != null;
     }
 }

Copied: tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/render/DispatchRendererTest.java (from r996298, tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/TemplateAttributeRendererTest.java)
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/render/DispatchRendererTest.java?p2=tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/render/DispatchRendererTest.java&p1=tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/TemplateAttributeRendererTest.java&r1=996298&r2=1001169&rev=1001169&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/TemplateAttributeRendererTest.java (original)
+++ tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/render/DispatchRendererTest.java Sat Sep 25 09:17:56 2010
@@ -18,122 +18,77 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.tiles.renderer.impl;
+package org.apache.tiles.request.render;
 
 import static org.easymock.EasyMock.*;
 import static org.junit.Assert.*;
 
 import java.io.IOException;
 
-import org.apache.tiles.Attribute;
-import org.apache.tiles.Expression;
-import org.apache.tiles.evaluator.BasicAttributeEvaluatorFactory;
-import org.apache.tiles.evaluator.impl.DirectAttributeEvaluator;
-import org.apache.tiles.impl.InvalidTemplateException;
 import org.apache.tiles.request.Request;
+import org.apache.tiles.request.render.DispatchRenderer;
+import org.apache.tiles.request.render.InvalidTemplateException;
 import org.junit.Before;
 import org.junit.Test;
 
 /**
- * Tests {@link TemplateAttributeRenderer}.
+ * Tests {@link DispatchRenderer}.
  *
  * @version $Rev$ $Date$
  */
-public class TemplateAttributeRendererTest {
+public class DispatchRendererTest {
 
     /**
      * The renderer.
      */
-    private TemplateAttributeRenderer renderer;
+    private DispatchRenderer renderer;
 
     /** {@inheritDoc} */
     @Before
     public void setUp() {
-        renderer = new TemplateAttributeRenderer();
-        renderer.setAttributeEvaluatorFactory(new BasicAttributeEvaluatorFactory(
-                new DirectAttributeEvaluator()));
+        renderer = new DispatchRenderer();
     }
 
     /**
      * Tests
-     * {@link StringAttributeRenderer#write(Object, Attribute, Request)}.
+     * {@link DispatchRenderer#render(String, Request)}.
      *
      * @throws IOException If something goes wrong during rendition.
      */
     @Test
     public void testWrite() throws IOException {
-        Attribute attribute = new Attribute("/myTemplate.jsp",
-                (Expression) null, null, "template");
         Request requestContext = createMock(Request.class);
         requestContext.dispatch("/myTemplate.jsp");
         replay(requestContext);
-        renderer.render(attribute, requestContext);
+        renderer.render("/myTemplate.jsp", requestContext);
         verify(requestContext);
     }
 
     /**
      * Tests
-     * {@link StringAttributeRenderer#write(Object, Attribute, Request)}.
-     *
-     * @throws IOException If something goes wrong during rendition.
-     */
-    @Test(expected=InvalidTemplateException.class)
-    public void testWriteNotString() throws IOException {
-        Attribute attribute = new Attribute(new Integer(1),
-                (Expression) null, null, "template");
-        Request requestContext = createMock(Request.class);
-        replay(requestContext);
-        renderer.render(attribute, requestContext);
-        verify(requestContext);
-    }
-
-    /**
-     * Tests
-     * {@link StringAttributeRenderer#write(Object, Attribute, Request)}.
+     * {@link DispatchRenderer#render(String, Request)}.
      *
      * @throws IOException If something goes wrong during rendition.
      */
     @Test(expected=InvalidTemplateException.class)
     public void testWriteNull() throws IOException {
-        Attribute attribute = new Attribute(null, (Expression) null, null,
-                "template");
         Request requestContext = createMock(Request.class);
         replay(requestContext);
-        renderer.render(attribute, requestContext);
+        renderer.render(null, requestContext);
         verify(requestContext);
     }
 
     /**
      * Tests
-     * {@link StringAttributeRenderer#isRenderable(Object, Attribute, Request)}.
+     * {@link DispatchRenderer#isRenderable(String, Request)}.
      *
      * @throws IOException If something goes wrong during rendition.
      */
     @Test
     public void testIsRenderable() {
-        Attribute attribute = new Attribute("/myTemplate.jsp",
-                (Expression) null, null, "template");
-        Request requestContext = createMock(Request.class);
-        replay(requestContext);
-        assertTrue(renderer.isRenderable("/myTemplate.jsp", attribute,
-                requestContext));
-        verify(requestContext);
-    }
-
-    /**
-     * Tests
-     * {@link StringAttributeRenderer#isRenderable(Object, Attribute, Request)}.
-     *
-     * @throws IOException If something goes wrong during rendition.
-     */
-    @Test
-    public void testIsRenderableFalse() {
-        Attribute attribute = new Attribute(new Integer(1),
-                (Expression) null, null, "template");
         Request requestContext = createMock(Request.class);
         replay(requestContext);
-        assertFalse(renderer.isRenderable(new Integer(1), attribute,
-                requestContext));
+        assertTrue(renderer.isRenderable("/myTemplate.jsp", requestContext));
         verify(requestContext);
     }
 }

Copied: tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/render/StringRendererTest.java (from r996298, tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/StringAttributeRendererTest.java)
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/render/StringRendererTest.java?p2=tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/render/StringRendererTest.java&p1=tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/StringAttributeRendererTest.java&r1=996298&r2=1001169&rev=1001169&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/StringAttributeRendererTest.java (original)
+++ tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/render/StringRendererTest.java Sat Sep 25 09:17:56 2010
@@ -18,7 +18,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.tiles.renderer.impl;
+package org.apache.tiles.request.render;
 
 import static org.easymock.EasyMock.*;
 import static org.junit.Assert.*;
@@ -26,49 +26,42 @@ import static org.junit.Assert.*;
 import java.io.IOException;
 import java.io.StringWriter;
 
-import org.apache.tiles.Attribute;
-import org.apache.tiles.Expression;
-import org.apache.tiles.evaluator.BasicAttributeEvaluatorFactory;
-import org.apache.tiles.evaluator.impl.DirectAttributeEvaluator;
 import org.apache.tiles.request.Request;
+import org.apache.tiles.request.render.StringRenderer;
 import org.junit.Before;
 import org.junit.Test;
 
 /**
- * Tests {@link StringAttributeRenderer}.
+ * Tests {@link StringRenderer}.
  *
  * @version $Rev$ $Date$
  */
-public class StringAttributeRendererTest {
+public class StringRendererTest {
 
     /**
      * The renderer.
      */
-    private StringAttributeRenderer renderer;
+    private StringRenderer renderer;
 
     /** {@inheritDoc} */
     @Before
     public void setUp() {
-        renderer = new StringAttributeRenderer();
-        renderer.setAttributeEvaluatorFactory(new BasicAttributeEvaluatorFactory(
-                new DirectAttributeEvaluator()));
+        renderer = new StringRenderer();
     }
 
     /**
      * Tests
-     * {@link StringAttributeRenderer#write(Object, Attribute, Request)}.
+     * {@link StringRenderer#render(String, Request)}.
      *
      * @throws IOException If something goes wrong during rendition.
      */
     @Test
     public void testWrite() throws IOException {
         StringWriter writer = new StringWriter();
-        Attribute attribute = new Attribute("Result", (Expression) null, null,
-                "string");
         Request requestContext = createMock(Request.class);
         expect(requestContext.getWriter()).andReturn(writer);
         replay(requestContext);
-        renderer.render(attribute, requestContext);
+        renderer.render("Result", requestContext);
         writer.close();
         assertEquals("Not written 'Result'", "Result", writer.toString());
         verify(requestContext);
@@ -76,17 +69,15 @@ public class StringAttributeRendererTest
 
     /**
      * Tests
-     * {@link StringAttributeRenderer#isRenderable(Object, Attribute, Request)}.
+     * {@link StringRenderer#isRenderable(String, Request)}.
      *
      * @throws IOException If something goes wrong.
      */
     @Test
     public void testIsRenderable() {
-        Attribute attribute = new Attribute("Result", (Expression) null, null,
-                "string");
         Request requestContext = createMock(Request.class);
         replay(requestContext);
-        assertTrue(renderer.isRenderable("Result", attribute, requestContext));
+        assertTrue(renderer.isRenderable("Result", requestContext));
         verify(requestContext);
     }
 }

Modified: tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/pom.xml
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/pom.xml?rev=1001169&r1=1001168&r2=1001169&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/pom.xml (original)
+++ tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/pom.xml Sat Sep 25 09:17:56 2010
@@ -53,7 +53,7 @@
   	<dependency>
   		<groupId>org.easymock</groupId>
   		<artifactId>easymockclassextension</artifactId>
-  		<version>2.4</version>
+  		<version>2.5.2</version>
   		<scope>test</scope>
   	</dependency>
   </dependencies>

Copied: tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/render/FreemarkerRendererTest.java (from r996298, tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRendererTest.java)
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/render/FreemarkerRendererTest.java?p2=tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/render/FreemarkerRendererTest.java&p1=tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRendererTest.java&r1=996298&r2=1001169&rev=1001169&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRendererTest.java (original)
+++ tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/render/FreemarkerRendererTest.java Sat Sep 25 09:17:56 2010
@@ -18,17 +18,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.tiles.freemarker.renderer;
+package org.apache.tiles.request.freemarker.render;
 
-import static org.easymock.EasyMock.eq;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.isA;
-import static org.easymock.classextension.EasyMock.createMock;
-import static org.easymock.classextension.EasyMock.createMockBuilder;
-import static org.easymock.classextension.EasyMock.replay;
-import static org.easymock.classextension.EasyMock.verify;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.easymock.EasyMock.*;
+import static org.easymock.classextension.EasyMock.*;
+import static org.junit.Assert.*;
 
 import java.io.IOException;
 import java.io.PrintWriter;
@@ -42,8 +36,9 @@ import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.tiles.evaluator.AttributeEvaluatorFactory;
 import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.freemarker.render.FreemarkerRenderer;
+import org.apache.tiles.request.freemarker.render.FreemarkerRendererBuilder;
 import org.apache.tiles.request.servlet.ServletApplicationContext;
 import org.apache.tiles.request.servlet.ServletRequest;
 import org.junit.Before;
@@ -55,11 +50,11 @@ import freemarker.ext.servlet.ServletCon
 import freemarker.template.ObjectWrapper;
 
 /**
- * Tests {@link FreeMarkerAttributeRenderer}.
+ * Tests {@link FreemarkerRenderer}.
  *
  * @version $Rev$ $Date$
  */
-public class FreeMarkerAttributeRendererTest {
+public class FreemarkerRendererTest {
 
     private static final String ATTR_APPLICATION_MODEL =
         ".freemarker.Application";
@@ -72,47 +67,41 @@ public class FreeMarkerAttributeRenderer
     private static final String ATTR_REQUEST_PARAMETERS_MODEL =
         ".freemarker.RequestParameters";
 
-    private FreeMarkerAttributeRenderer renderer;
+    private FreemarkerRenderer renderer;
 
     private ApplicationContext applicationContext;
 
     private ServletContext servletContext;
 
-    private AttributeEvaluatorFactory attributeEvaluatorFactory;
-
     /**
      * Sets up the test.
      */
     @Before
     public void setUp() {
         applicationContext = createMock(ServletApplicationContext.class);
-        attributeEvaluatorFactory = createMock(AttributeEvaluatorFactory.class);
         servletContext = createMock(ServletContext.class);
 
         expect(applicationContext.getContext()).andReturn(servletContext);
 
         replay(applicationContext, servletContext);
-        renderer = new FreeMarkerAttributeRenderer();
-        renderer.setApplicationContext(applicationContext);
-        renderer.setAttributeEvaluatorFactory(attributeEvaluatorFactory);
-        renderer.setParameter("TemplatePath", "/");
-        renderer.setParameter("NoCache", "true");
-        renderer.setParameter("ContentType", "text/html");
-        renderer.setParameter("template_update_delay", "0");
-        renderer.setParameter("default_encoding", "ISO-8859-1");
-        renderer.setParameter("number_format", "0.##########");
-        renderer.commit();
+        renderer = FreemarkerRendererBuilder.createInstance()
+                .setApplicationContext(applicationContext)
+                .setParameter("TemplatePath", "/")
+                .setParameter("NoCache", "true")
+                .setParameter("ContentType", "text/html")
+                .setParameter("template_update_delay", "0")
+                .setParameter("default_encoding", "ISO-8859-1")
+                .setParameter("number_format", "0.##########").build();
     }
 
     /**
-     * Tests {@link FreeMarkerAttributeRenderer#write(Object, org.apache.tiles.Attribute, org.apache.tiles.request.Request)}.
+     * Tests {@link FreemarkerRenderer#render(String, org.apache.tiles.request.Request)}.
      * @throws IOException If something goes wrong.
      * @throws ServletException If something goes wrong.
      */
     @Test
     public void testWrite() throws IOException, ServletException {
         ApplicationContext applicationContext = createMock(ServletApplicationContext.class);
-        AttributeEvaluatorFactory attributeEvaluatorFactory = createMock(AttributeEvaluatorFactory.class);
         ServletContext servletContext = createMock(ServletContext.class);
         GenericServlet servlet = createMockBuilder(GenericServlet.class).createMock();
         ServletConfig servletConfig = createMock(ServletConfig.class);
@@ -133,16 +122,14 @@ public class FreeMarkerAttributeRenderer
 
         replay(applicationContext, servletContext, objectWrapper);
 
-        FreeMarkerAttributeRenderer renderer = new FreeMarkerAttributeRenderer();
-        renderer.setApplicationContext(applicationContext);
-        renderer.setAttributeEvaluatorFactory(attributeEvaluatorFactory);
-        renderer.setParameter("TemplatePath", "/");
-        renderer.setParameter("NoCache", "true");
-        renderer.setParameter("ContentType", "text/html");
-        renderer.setParameter("template_update_delay", "0");
-        renderer.setParameter("default_encoding", "ISO-8859-1");
-        renderer.setParameter("number_format", "0.##########");
-        renderer.commit();
+        FreemarkerRenderer renderer = FreemarkerRendererBuilder
+                .createInstance().setApplicationContext(applicationContext)
+                .setParameter("TemplatePath", "/")
+                .setParameter("NoCache", "true")
+                .setParameter("ContentType", "text/html")
+                .setParameter("template_update_delay", "0")
+                .setParameter("default_encoding", "ISO-8859-1")
+                .setParameter("number_format", "0.##########").build();
 
         ServletRequest request = createMock(ServletRequest.class);
         HttpServletRequest httpRequest = createMock(HttpServletRequest.class);
@@ -163,29 +150,26 @@ public class FreeMarkerAttributeRenderer
         response.setHeader("Pragma", "no-cache");
         response.setHeader(eq("Expires"), isA(String.class));
 
-        replay(attributeEvaluatorFactory, request, httpRequest, response);
-        renderer.write("hello", null, request);
+        replay(request, httpRequest, response);
+        renderer.render("hello", request);
         stringWriter.close();
         assertTrue(stringWriter.toString().startsWith("Hello!"));
-        verify(applicationContext, servletContext, attributeEvaluatorFactory,
-                request, httpRequest, response, servlet, servletConfig,
-                objectWrapper);
+        verify(applicationContext, servletContext, request, httpRequest,
+                response, servlet, servletConfig, objectWrapper);
     }
 
     /**
      * Test method for
-     * {@link FreeMarkerAttributeRenderer
+     * {@link FreemarkerRenderer
      * #isRenderable(Object, org.apache.tiles.Attribute, org.apache.tiles.context.TilesRequestContext)}
      * .
      */
     @Test
     public void testIsRenderable() {
-        replay(attributeEvaluatorFactory);
-        assertTrue(renderer.isRenderable("/my/template.ftl", null, null));
-        assertFalse(renderer.isRenderable("my/template.ftl", null, null));
-        assertFalse(renderer.isRenderable("/my/template.jsp", null, null));
-        assertFalse(renderer.isRenderable(0, null, null));
-        verify(applicationContext, servletContext, attributeEvaluatorFactory);
+        assertTrue(renderer.isRenderable("/my/template.ftl", null));
+        assertFalse(renderer.isRenderable("my/template.ftl", null));
+        assertFalse(renderer.isRenderable("/my/template.jsp", null));
+        verify(applicationContext, servletContext);
     }
 
 }

Copied: tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/render/VelocityRendererTest.java (from r996298, tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/renderer/VelocityAttributeRendererTest.java)
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/render/VelocityRendererTest.java?p2=tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/render/VelocityRendererTest.java&p1=tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/renderer/VelocityAttributeRendererTest.java&r1=996298&r2=1001169&rev=1001169&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/renderer/VelocityAttributeRendererTest.java (original)
+++ tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/render/VelocityRendererTest.java Sat Sep 25 09:17:56 2010
@@ -18,33 +18,74 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.tiles.velocity.renderer;
+package org.apache.tiles.request.velocity.render;
 
+import static org.easymock.EasyMock.*;
+import static org.easymock.classextension.EasyMock.*;
 import static org.junit.Assert.*;
 
-import org.apache.tiles.renderer.TypeDetectingAttributeRenderer;
+import java.io.IOException;
+import java.io.Writer;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.tiles.request.render.TypeDetectingRenderer;
+import org.apache.tiles.request.servlet.ServletRequest;
+import org.apache.tiles.request.velocity.render.VelocityRenderer;
+import org.apache.velocity.Template;
+import org.apache.velocity.tools.view.VelocityView;
+import org.apache.velocity.tools.view.ViewToolContext;
 import org.junit.Test;
 
 /**
- * Tests {@link VelocityAttributeRenderer}.
+ * Tests {@link VelocityRenderer}.
  *
  * @version $Rev$ $Date$
  */
-public class VelocityAttributeRendererTest {
+public class VelocityRendererTest {
+
+    /**
+     * Tests {@link VelocityRenderer#render(String, org.apache.tiles.request.Request)}.
+     * @throws IOException If something goes wrong.
+     */
+    @Test
+    public void testRender() throws IOException {
+        VelocityView view = createMock(VelocityView.class);
+        ServletRequest request = createMock(ServletRequest.class);
+        HttpServletRequest httpRequest = createMock(HttpServletRequest.class);
+        HttpServletResponse response = createMock(HttpServletResponse.class);
+        ViewToolContext context = createMock(ViewToolContext.class);
+        Template template = createMock(Template.class);
+        Writer writer = createMock(Writer.class);
+
+        expect(request.getRequest()).andReturn(httpRequest);
+        expect(request.getResponse()).andReturn(response);
+        expect(view.createContext(httpRequest, response)).andReturn(context);
+        expect(view.getTemplate("/test.vm")).andReturn(template);
+        expect(request.getWriter()).andReturn(writer);
+        view.merge(template, context, writer);
+
+        replay(view, request, httpRequest, response, context, template, writer);
+        TypeDetectingRenderer renderer = new VelocityRenderer(view);
+        renderer.render("/test.vm", request);
+        verify(view, request, httpRequest, response, context, template, writer);
+    }
 
     /**
      * Test method for
-     * {@link VelocityAttributeRenderer
-     * #isRenderable(Object, org.apache.tiles.Attribute, org.apache.tiles.context.TilesRequestContext)}
+     * {@link VelocityRenderer#isRenderable(String, org.apache.tiles.request.Request)}
      * .
      */
     @Test
     public void testIsRenderable() {
-        TypeDetectingAttributeRenderer renderer = new VelocityAttributeRenderer();
-        assertTrue(renderer.isRenderable("/my/template.vm", null, null));
-        assertFalse(renderer.isRenderable("my/template.vm", null, null));
-        assertFalse(renderer.isRenderable("/my/template.jsp", null, null));
-        assertFalse(renderer.isRenderable(0, null, null));
+        VelocityView view = createMock(VelocityView.class);
+        replay(view);
+        TypeDetectingRenderer renderer = new VelocityRenderer(view);
+        assertTrue(renderer.isRenderable("/my/template.vm", null));
+        assertFalse(renderer.isRenderable("my/template.vm", null));
+        assertFalse(renderer.isRenderable("/my/template.jsp", null));
+        verify(view);
     }
 
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/factory/BasicTilesContainerFactory.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/factory/BasicTilesContainerFactory.java?rev=1001169&r1=1001168&r2=1001169&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/factory/BasicTilesContainerFactory.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/factory/BasicTilesContainerFactory.java Sat Sep 25 09:17:56 2010
@@ -51,13 +51,11 @@ import org.apache.tiles.renderer.Rendere
 import org.apache.tiles.renderer.TypeDetectingAttributeRenderer;
 import org.apache.tiles.renderer.impl.BasicRendererFactory;
 import org.apache.tiles.renderer.impl.ChainedDelegateAttributeRenderer;
-import org.apache.tiles.renderer.impl.DefinitionAttributeRenderer;
 import org.apache.tiles.renderer.impl.DefinitionRenderer;
 import org.apache.tiles.renderer.impl.DelegateAttributeRenderer;
-import org.apache.tiles.renderer.impl.StringAttributeRenderer;
-import org.apache.tiles.renderer.impl.TemplateAttributeRenderer;
 import org.apache.tiles.request.ApplicationContext;
 import org.apache.tiles.request.render.DispatchRenderer;
+import org.apache.tiles.request.render.StringRenderer;
 
 /**
  * Factory that builds a standard Tiles container using only Java code.
@@ -263,9 +261,10 @@ public class BasicTilesContainerFactory 
     /**
      * Creates a renderer factory. By default it returns a
      * {@link BasicRendererFactory}, composed of an
-     * {@link UntypedAttributeRenderer} as default, and
-     * {@link StringAttributeRenderer}, {@link TemplateAttributeRenderer} and
-     * {@link DefinitionAttributeRenderer}.
+     * {@link UntypedAttributeRenderer} as default, and delegates of
+     * {@link StringRenderer}, {@link DispatchRenderer},
+     * {@link DefinitionRenderer}.
+     *
      * @param applicationContext The Tiles application context.
      * @param container The container.
      * @param attributeEvaluatorFactory The attribute evaluator factory.
@@ -335,9 +334,8 @@ public class BasicTilesContainerFactory 
 
     /**
      * Registers attribute renderers in a {@link BasicRendererFactory}. By
-     * default, it registers a {@link StringAttributeRenderer}, a
-     * {@link TemplateAttributeRenderer} and a
-     * {@link DefinitionAttributeRenderer}.
+     * default, it registers delegates to {@link StringRenderer},
+     * {@link DispatchRenderer} and {@link DefinitionRenderer}.
      *
      * @param rendererFactory The renderer factory to configure.
      * @param applicationContext The Tiles application context.
@@ -362,7 +360,7 @@ public class BasicTilesContainerFactory 
     }
 
     /**
-     * Creates a {@link StringAttributeRenderer}.
+     * Creates an attribute renderer to render strings.
      *
      * @param rendererFactory The renderer factory to configure.
      * @param applicationContext The Tiles application context.
@@ -376,13 +374,11 @@ public class BasicTilesContainerFactory 
             ApplicationContext applicationContext,
             TilesContainer container,
             AttributeEvaluatorFactory attributeEvaluatorFactory) {
-        StringAttributeRenderer stringRenderer = new StringAttributeRenderer();
-        stringRenderer.setAttributeEvaluatorFactory(attributeEvaluatorFactory);
-        return stringRenderer;
+        return new DelegateAttributeRenderer(new StringRenderer(), attributeEvaluatorFactory);
     }
 
     /**
-     * Creates a {@link TemplateAttributeRenderer}.
+     * Creates a {@link AttributeRenderer} that uses a {@link DispatchRenderer}.
      *
      * @param rendererFactory The renderer factory to configure.
      * @param applicationContext The Tiles application context.
@@ -400,7 +396,7 @@ public class BasicTilesContainerFactory 
     }
 
     /**
-     * Creates a {@link DefinitionAttributeRenderer}.
+     * Creates a {@link AttributeRenderer} using a {@link DefinitionRenderer}
      *
      * @param rendererFactory The renderer factory to configure.
      * @param applicationContext The Tiles application context.

Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/factory/BasicTilesContainerFactoryTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/factory/BasicTilesContainerFactoryTest.java?rev=1001169&r1=1001168&r2=1001169&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/factory/BasicTilesContainerFactoryTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/factory/BasicTilesContainerFactoryTest.java Sat Sep 25 09:17:56 2010
@@ -20,10 +20,8 @@
  */
 package org.apache.tiles.factory;
 
-import static org.easymock.EasyMock.expect;
-import static org.easymock.classextension.EasyMock.createMock;
-import static org.easymock.classextension.EasyMock.replay;
-import static org.easymock.classextension.EasyMock.verify;
+import static org.easymock.EasyMock.*;
+import static org.easymock.classextension.EasyMock.*;
 
 import java.net.URL;
 import java.util.List;
@@ -47,9 +45,7 @@ import org.apache.tiles.renderer.Rendere
 import org.apache.tiles.renderer.TypeDetectingAttributeRenderer;
 import org.apache.tiles.renderer.impl.BasicRendererFactory;
 import org.apache.tiles.renderer.impl.ChainedDelegateAttributeRenderer;
-import org.apache.tiles.renderer.impl.DefinitionAttributeRenderer;
 import org.apache.tiles.renderer.impl.DelegateAttributeRenderer;
-import org.apache.tiles.renderer.impl.StringAttributeRenderer;
 import org.apache.tiles.request.ApplicationContext;
 import org.easymock.EasyMock;
 
@@ -179,7 +175,7 @@ public class BasicTilesContainerFactoryT
         AttributeRenderer renderer = rendererFactory.getRenderer("string");
         assertNotNull("The string renderer is null", renderer);
         assertTrue("The string renderer class is not correct",
-                renderer instanceof StringAttributeRenderer);
+                renderer instanceof DelegateAttributeRenderer);
         renderer = rendererFactory.getRenderer("template");
         assertNotNull("The template renderer is null", renderer);
         assertTrue("The template renderer class is not correct",
@@ -231,7 +227,7 @@ public class BasicTilesContainerFactoryT
                 rendererFactory, applicationContext, container,
                 attributeEvaluatorFactory);
         assertTrue("The renderer class is not correct",
-                renderer instanceof StringAttributeRenderer);
+                renderer instanceof DelegateAttributeRenderer);
         verify(container, attributeEvaluatorFactory, rendererFactory);
     }
 

Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/BasicRendererFactoryTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/BasicRendererFactoryTest.java?rev=1001169&r1=1001168&r2=1001169&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/BasicRendererFactoryTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/BasicRendererFactoryTest.java Sat Sep 25 09:17:56 2010
@@ -23,13 +23,14 @@ package org.apache.tiles.renderer.impl;
 import static org.easymock.classextension.EasyMock.*;
 import static org.junit.Assert.*;
 
-import java.util.HashMap;
-import java.util.Map;
+import java.io.IOException;
 
+import org.apache.tiles.Attribute;
 import org.apache.tiles.TilesContainer;
 import org.apache.tiles.evaluator.AttributeEvaluatorFactory;
 import org.apache.tiles.renderer.AttributeRenderer;
 import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.Request;
 import org.apache.tiles.request.util.ApplicationContextAware;
 import org.junit.Before;
 import org.junit.Test;
@@ -74,10 +75,6 @@ public class BasicRendererFactoryTest {
         AttributeEvaluatorFactory attributeEvaluatorFactory = createMock(AttributeEvaluatorFactory.class);
 
         replay(renderer1, renderer2, renderer3, renderer4, applicationContext, attributeEvaluatorFactory);
-        Map<String, String> params = new HashMap<String, String>();
-        params.put(BasicRendererFactory.TYPE_RENDERERS_INIT_PARAM, "test,"
-                + StringAttributeRenderer.class.getName() + ";test2,"
-                + StringAttributeRenderer.class.getName());
         rendererFactory.registerRenderer("string", renderer1);
         rendererFactory.registerRenderer("test", renderer2);
         rendererFactory.registerRenderer("test2", renderer3);
@@ -121,9 +118,7 @@ public class BasicRendererFactoryTest {
      */
     @Test
     public void testInitializeRenderer() {
-        DefinitionAttributeRenderer renderer = new DefinitionAttributeRenderer();
-        rendererFactory.initializeRenderer(renderer);
-        assertNotNull("The container is null", renderer.container);
+        // TODO This will be removed in future, only named renderers should be available.
     }
 
     /**
@@ -131,7 +126,7 @@ public class BasicRendererFactoryTest {
      *
      * @version $Rev$ $Date$
      */
-    public static class ExtendedStringAttributeRenderer extends StringAttributeRenderer implements ApplicationContextAware {
+    public static class ExtendedStringAttributeRenderer extends AbstractBaseAttributeRenderer implements ApplicationContextAware {
 
         /**
          * The application context.
@@ -143,5 +138,19 @@ public class BasicRendererFactoryTest {
         public void setApplicationContext(ApplicationContext applicationContext) {
             this.applicationContext = applicationContext;
         }
+
+        /** {@inheritDoc} */
+        @Override
+        public void write(Object value, Attribute attribute,
+                Request request)
+                throws IOException {
+            request.getWriter().write(value.toString());
+        }
+
+        /** {@inheritDoc} */
+        public boolean isRenderable(Object value, Attribute attribute,
+                Request request) {
+            return value instanceof String;
+        }
     }
 }

Copied: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/DefinitionRendererTest.java (from r996298, tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/DefinitionAttributeRendererTest.java)
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/DefinitionRendererTest.java?p2=tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/DefinitionRendererTest.java&p1=tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/DefinitionAttributeRendererTest.java&r1=996298&r2=1001169&rev=1001169&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/DefinitionAttributeRendererTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/DefinitionRendererTest.java Sat Sep 25 09:17:56 2010
@@ -26,68 +26,61 @@ import static org.junit.Assert.*;
 import java.io.IOException;
 
 import org.apache.tiles.Attribute;
-import org.apache.tiles.Expression;
 import org.apache.tiles.TilesContainer;
-import org.apache.tiles.evaluator.BasicAttributeEvaluatorFactory;
-import org.apache.tiles.evaluator.impl.DirectAttributeEvaluator;
 import org.apache.tiles.request.Request;
 import org.junit.Before;
 import org.junit.Test;
 
 /**
- * Tests {@link DefinitionAttributeRenderer}.
+ * Tests {@link DefinitionRenderer}.
  *
  * @version $Rev$ $Date$
  */
-public class DefinitionAttributeRendererTest {
+public class DefinitionRendererTest {
 
     /**
      * The renderer.
      */
-    private DefinitionAttributeRenderer renderer;
+    private DefinitionRenderer renderer;
+
+    /**
+     * The container
+     */
+    private TilesContainer container;
 
     /** {@inheritDoc} */
     @Before
     public void setUp() {
-        renderer = new DefinitionAttributeRenderer();
-        renderer.setAttributeEvaluatorFactory(new BasicAttributeEvaluatorFactory(
-                new DirectAttributeEvaluator()));
+        container = createMock(TilesContainer.class);
+        renderer = new DefinitionRenderer(container);
     }
 
     /**
      * Tests
-     * {@link StringAttributeRenderer#write(Object, Attribute, Request)}.
+     * {@link DefinitionRenderer#render(String, Request)}.
      *
      * @throws IOException If something goes wrong during rendition.
      */
     @Test
     public void testWrite() throws IOException {
-        Attribute attribute = new Attribute("my.definition", (Expression) null,
-                null, "definition");
-        TilesContainer container = createMock(TilesContainer.class);
         Request requestContext = createMock(Request.class);
         container.render("my.definition", requestContext);
         replay(requestContext, container);
-        renderer.setContainer(container);
-        renderer.render(attribute, requestContext);
+        renderer.render("my.definition", requestContext);
         verify(requestContext, container);
     }
 
     /**
      * Tests
-     * {@link DefinitionAttributeRenderer#isRenderable(Object, Attribute, Request)}
+     * {@link DefinitionRenderer#isRenderable(String, Request)}
      * .
      */
     @Test
     public void testIsRenderable() {
-        Attribute attribute = new Attribute("my.definition", (Expression) null,
-                null, "definition");
-        TilesContainer container = createMock(TilesContainer.class);
         Request requestContext = createMock(Request.class);
         expect(container.isValidDefinition("my.definition", requestContext)).andReturn(Boolean.TRUE);
         replay(requestContext, container);
-        renderer.setContainer(container);
-        assertTrue(renderer.isRenderable("my.definition", attribute, requestContext));
+        assertTrue(renderer.isRenderable("my.definition", requestContext));
         verify(requestContext, container);
     }
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-extras/src/test/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactoryTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-extras/src/test/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactoryTest.java?rev=1001169&r1=1001168&r2=1001169&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-extras/src/test/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactoryTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-extras/src/test/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactoryTest.java Sat Sep 25 09:17:56 2010
@@ -53,7 +53,6 @@ import org.apache.tiles.renderer.TypeDet
 import org.apache.tiles.renderer.impl.BasicRendererFactory;
 import org.apache.tiles.renderer.impl.ChainedDelegateAttributeRenderer;
 import org.apache.tiles.renderer.impl.DelegateAttributeRenderer;
-import org.apache.tiles.renderer.impl.StringAttributeRenderer;
 import org.apache.tiles.request.ApplicationContext;
 import org.apache.tiles.request.servlet.ServletApplicationContext;
 import org.apache.velocity.tools.view.VelocityView;
@@ -114,7 +113,7 @@ public class CompleteAutoloadTilesContai
         ServletContext servletContext = createMock(ServletContext.class);
 
         rendererFactory.registerRenderer(eq("string"),
-                isA(StringAttributeRenderer.class));
+                isA(DelegateAttributeRenderer.class));
         rendererFactory.registerRenderer(eq("template"),
                 isA(DelegateAttributeRenderer.class));
         rendererFactory.registerRenderer(eq("definition"),

Added: tiles/sandbox/trunk/tiles3/tiles-test-pom/tiles-test-common/src/main/java/org/apache/tiles/test/renderer/ReverseStringAttributeRenderer.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-test-pom/tiles-test-common/src/main/java/org/apache/tiles/test/renderer/ReverseStringAttributeRenderer.java?rev=1001169&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-test-pom/tiles-test-common/src/main/java/org/apache/tiles/test/renderer/ReverseStringAttributeRenderer.java (added)
+++ tiles/sandbox/trunk/tiles3/tiles-test-pom/tiles-test-common/src/main/java/org/apache/tiles/test/renderer/ReverseStringAttributeRenderer.java Sat Sep 25 09:17:56 2010
@@ -0,0 +1,49 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tiles.test.renderer;
+
+import java.io.IOException;
+
+import org.apache.tiles.Attribute;
+import org.apache.tiles.renderer.impl.AbstractBaseAttributeRenderer;
+import org.apache.tiles.request.Request;
+
+/**
+ * A simple test <code>AttributeRenderer</code>.
+ *
+ * @version $Rev$ $Date$
+ */
+public class ReverseStringAttributeRenderer extends AbstractBaseAttributeRenderer {
+
+    /** {@inheritDoc} */
+    @Override
+    public void write(Object value, Attribute attribute,
+            Request request)
+            throws IOException {
+        String original = attribute.getValue().toString();
+        char[] array = original.toCharArray();
+        char[] newArray = new char[array.length];
+        for (int i = 0; i < array.length; i++) {
+            newArray[array.length - i - 1] = array[i];
+        }
+        request.getWriter().write(String.valueOf(newArray));
+    }
+}