You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tiles.apache.org by mc...@apache.org on 2012/04/30 11:34:09 UTC
svn commit: r1332136 - in /tiles/framework/trunk/tiles-parent/tiles-extras:
./ src/main/java/org/apache/tiles/extras/complete/
src/test/java/org/apache/tiles/extras/complete/
Author: mck
Date: Mon Apr 30 09:34:09 2012
New Revision: 1332136
URL: http://svn.apache.org/viewvc?rev=1332136&view=rev
Log:
add basic setup of the mustache renderer into the CompleteAutoloadTilesContainerFactory
Modified:
tiles/framework/trunk/tiles-parent/tiles-extras/pom.xml
tiles/framework/trunk/tiles-parent/tiles-extras/src/main/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactory.java
tiles/framework/trunk/tiles-parent/tiles-extras/src/test/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactoryTest.java
Modified: tiles/framework/trunk/tiles-parent/tiles-extras/pom.xml
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-parent/tiles-extras/pom.xml?rev=1332136&r1=1332135&r2=1332136&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-parent/tiles-extras/pom.xml (original)
+++ tiles/framework/trunk/tiles-parent/tiles-extras/pom.xml Mon Apr 30 09:34:09 2012
@@ -72,6 +72,11 @@
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
+ <artifactId>tiles-request-mustache</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>${pom.groupId}</groupId>
<artifactId>tiles-jsp</artifactId>
<version>${project.version}</version>
</dependency>
Modified: tiles/framework/trunk/tiles-parent/tiles-extras/src/main/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactory.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-parent/tiles-extras/src/main/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactory.java?rev=1332136&r1=1332135&r2=1332136&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-parent/tiles-extras/src/main/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactory.java (original)
+++ tiles/framework/trunk/tiles-parent/tiles-extras/src/main/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactory.java Mon Apr 30 09:34:09 2012
@@ -21,10 +21,12 @@
package org.apache.tiles.extras.complete;
+import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Locale;
+import java.util.regex.Pattern;
import javax.el.ArrayELResolver;
import javax.el.BeanELResolver;
@@ -77,9 +79,11 @@ import org.apache.tiles.request.Request;
import org.apache.tiles.request.freemarker.render.FreemarkerRenderer;
import org.apache.tiles.request.freemarker.render.FreemarkerRendererBuilder;
import org.apache.tiles.request.freemarker.servlet.SharedVariableLoaderFreemarkerServlet;
+import org.apache.tiles.request.mustache.MustacheRenderer;
import org.apache.tiles.request.render.BasicRendererFactory;
import org.apache.tiles.request.render.ChainedDelegateRenderer;
import org.apache.tiles.request.render.Renderer;
+import org.apache.tiles.request.servlet.ServletUtil;
import org.apache.tiles.request.velocity.render.VelocityRenderer;
import org.apache.tiles.request.velocity.render.VelocityRendererBuilder;
import org.mvel2.integration.VariableResolverFactory;
@@ -88,7 +92,7 @@ import org.mvel2.integration.VariableRes
* Tiles container factory that:
* <ul>
* <li>create supporting objects for Velocity and FreeMarker;</li>
- * <li>create renderers for Velocity and FreeMarker templates;</li>
+ * <li>create renderers for Velocity, FreeMarker, and Mustache templates;</li>
* <li>allows using EL, MVEL and OGNL as attribute expressions;</li>
* <li>allows using Wildcards and Regular Expressions in definition names;</li>
* <li>loads Tiles 1.x definition files;</li>
@@ -112,6 +116,11 @@ public class CompleteAutoloadTilesContai
*/
private static final String VELOCITY_RENDERER_NAME = "velocity";
+ /**
+ * The mustache renderer name.
+ */
+ private static final String MUSTACHE_RENDERER_NAME = "mustache";
+
/** {@inheritDoc} */
@Override
public TilesContainer createDecoratedContainer(TilesContainer originalContainer,
@@ -121,9 +130,11 @@ public class CompleteAutoloadTilesContai
/** {@inheritDoc} */
@Override
- protected void registerAttributeRenderers(BasicRendererFactory rendererFactory,
- ApplicationContext applicationContext, TilesContainer container,
- AttributeEvaluatorFactory attributeEvaluatorFactory) {
+ protected void registerAttributeRenderers(
+ final BasicRendererFactory rendererFactory,
+ final ApplicationContext applicationContext,
+ final TilesContainer container,
+ final AttributeEvaluatorFactory attributeEvaluatorFactory) {
super.registerAttributeRenderers(rendererFactory, applicationContext, container, attributeEvaluatorFactory);
FreemarkerRenderer freemarkerRenderer = FreemarkerRendererBuilder
@@ -142,6 +153,10 @@ public class CompleteAutoloadTilesContai
VelocityRenderer velocityRenderer = VelocityRendererBuilder.createInstance()
.setApplicationContext(applicationContext).build();
rendererFactory.registerRenderer(VELOCITY_RENDERER_NAME, velocityRenderer);
+
+ MustacheRenderer mustacheRenderer = new MustacheRenderer();
+ mustacheRenderer.setAcceptPattern(Pattern.compile(".+\\.mustache"));
+ rendererFactory.registerRenderer(MUSTACHE_RENDERER_NAME, mustacheRenderer);
}
/** {@inheritDoc} */
@@ -149,10 +164,12 @@ public class CompleteAutoloadTilesContai
protected Renderer createDefaultAttributeRenderer(BasicRendererFactory rendererFactory,
ApplicationContext applicationContext, TilesContainer container,
AttributeEvaluatorFactory attributeEvaluatorFactory) {
+
ChainedDelegateRenderer retValue = new ChainedDelegateRenderer();
retValue.addAttributeRenderer(rendererFactory.getRenderer(DEFINITION_RENDERER_NAME));
retValue.addAttributeRenderer(rendererFactory.getRenderer(VELOCITY_RENDERER_NAME));
retValue.addAttributeRenderer(rendererFactory.getRenderer(FREEMARKER_RENDERER_NAME));
+ retValue.addAttributeRenderer(rendererFactory.getRenderer(MUSTACHE_RENDERER_NAME));
retValue.addAttributeRenderer(rendererFactory.getRenderer(TEMPLATE_RENDERER_NAME));
retValue.addAttributeRenderer(rendererFactory.getRenderer(STRING_RENDERER_NAME));
return retValue;
Modified: tiles/framework/trunk/tiles-parent/tiles-extras/src/test/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactoryTest.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-parent/tiles-extras/src/test/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactoryTest.java?rev=1332136&r1=1332135&r2=1332136&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-parent/tiles-extras/src/test/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactoryTest.java (original)
+++ tiles/framework/trunk/tiles-parent/tiles-extras/src/test/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactoryTest.java Mon Apr 30 09:34:09 2012
@@ -52,6 +52,7 @@ import org.apache.tiles.renderer.Definit
import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.ApplicationResource;
import org.apache.tiles.request.freemarker.render.FreemarkerRenderer;
+import org.apache.tiles.request.mustache.MustacheRenderer;
import org.apache.tiles.request.render.BasicRendererFactory;
import org.apache.tiles.request.render.ChainedDelegateRenderer;
import org.apache.tiles.request.render.DispatchRenderer;
@@ -121,6 +122,7 @@ public class CompleteAutoloadTilesContai
rendererFactory.registerRenderer(eq("definition"), isA(DefinitionRenderer.class));
rendererFactory.registerRenderer(eq("freemarker"), isA(FreemarkerRenderer.class));
rendererFactory.registerRenderer(eq("velocity"), isA(VelocityRenderer.class));
+ rendererFactory.registerRenderer(eq("mustache"), isA(MustacheRenderer.class));
expect(applicationContext.getContext()).andReturn(servletContext).anyTimes();
expect(servletContext.getInitParameter(VelocityView.PROPERTIES_KEY)).andReturn(null);
@@ -158,12 +160,14 @@ public class CompleteAutoloadTilesContai
Renderer definitionRenderer = createMock(Renderer.class);
Renderer velocityRenderer = createMock(Renderer.class);
Renderer freemarkerRenderer = createMock(Renderer.class);
+ Renderer mustacheRenderer = createMock(Renderer.class);
expect(rendererFactory.getRenderer("string")).andReturn(stringRenderer);
expect(rendererFactory.getRenderer("template")).andReturn(templateRenderer);
expect(rendererFactory.getRenderer("definition")).andReturn(definitionRenderer);
expect(rendererFactory.getRenderer("velocity")).andReturn(velocityRenderer);
expect(rendererFactory.getRenderer("freemarker")).andReturn(freemarkerRenderer);
+ expect(rendererFactory.getRenderer("mustache")).andReturn(mustacheRenderer);
replay(container, attributeEvaluatorFactory, rendererFactory, applicationContext);
Renderer renderer = factory.createDefaultAttributeRenderer(rendererFactory, applicationContext, container,