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,