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));
+ }
+}