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/02/20 22:06:16 UTC

svn commit: r912223 [2/2] - in /tiles/sandbox/trunk/tiles3: tiles-freemarker/src/main/java/org/apache/tiles/freemarker/io/ tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/ tiles-freemarker/src/test/java/org/apache/tiles/freemarker/t...

Modified: tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/InsertTemplateModel.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/InsertTemplateModel.java?rev=912223&r1=912222&r2=912223&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/InsertTemplateModel.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/InsertTemplateModel.java Sat Feb 20 21:06:14 2010
@@ -21,11 +21,14 @@
 
 package org.apache.tiles.template;
 
+import java.io.IOException;
+
 import org.apache.tiles.Attribute;
 import org.apache.tiles.AttributeContext;
 import org.apache.tiles.TilesContainer;
 import org.apache.tiles.access.TilesAccess;
 import org.apache.tiles.request.Request;
+import org.apache.tiles.template.body.ModelBody;
 
 /**
  * <p>
@@ -110,14 +113,17 @@
      * rendered. If specified, it overrides the preparer specified in the
      * definition itself.
      * @param request TODO
+     * @param modelBody TODO
      * @param container The Tiles container.
-     *
+     * @throws IOException If something goes wrong.
      * @since 2.2.0
      */
     public void execute(String template, String templateType, String templateExpression,
-            String role, String preparer, Request request) {
+            String role, String preparer, Request request, ModelBody modelBody) throws IOException {
         TilesContainer container = TilesAccess.getCurrentContainer(request);
         container.startContext(request);
+        modelBody.evaluateWithoutWriting();
+        container = TilesAccess.getCurrentContainer(request);
         renderTemplate(container, template, templateType, templateExpression,
                 role, preparer, request);
     }

Modified: tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/PutListAttributeModel.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/PutListAttributeModel.java?rev=912223&r1=912222&r2=912223&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/PutListAttributeModel.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/PutListAttributeModel.java Sat Feb 20 21:06:14 2010
@@ -21,6 +21,8 @@
 
 package org.apache.tiles.template;
 
+import java.io.IOException;
+
 import org.apache.tiles.ArrayStack;
 import org.apache.tiles.AttributeContext;
 import org.apache.tiles.Definition;
@@ -28,6 +30,7 @@
 import org.apache.tiles.TilesContainer;
 import org.apache.tiles.access.TilesAccess;
 import org.apache.tiles.request.Request;
+import org.apache.tiles.template.body.ModelBody;
 
 /**
  * <p>
@@ -89,4 +92,27 @@
         }
         attributeContext.putAttribute(name, listAttribute, cascade);
     }
+
+    public void execute(String name, String role, boolean inherit,
+            boolean cascade, Request request, ModelBody modelBody) throws IOException {
+        ArrayStack<Object> composeStack = ComposeStackUtil.getComposeStack(request);
+        ListAttribute listAttribute = new ListAttribute();
+        listAttribute.setRole(role);
+        listAttribute.setInherit(inherit);
+        composeStack.push(listAttribute);
+        modelBody.evaluateWithoutWriting();
+        TilesContainer container = TilesAccess.getCurrentContainer(request);
+        listAttribute = (ListAttribute) composeStack.pop();
+        AttributeContext attributeContext = null;
+        if (!composeStack.isEmpty()) {
+            Object obj = composeStack.peek();
+            if (obj instanceof Definition) {
+                attributeContext = (AttributeContext) obj;
+            }
+        }
+        if (attributeContext == null) {
+            attributeContext = container.getAttributeContext(request);
+        }
+        attributeContext.putAttribute(name, listAttribute, cascade);
+    }
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/DefinitionModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/DefinitionModelTest.java?rev=912223&r1=912222&r2=912223&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/DefinitionModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/DefinitionModelTest.java Sat Feb 20 21:06:14 2010
@@ -24,6 +24,7 @@
 import static org.easymock.EasyMock.*;
 import static org.junit.Assert.*;
 
+import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -34,6 +35,7 @@
 import org.apache.tiles.mgmt.MutableTilesContainer;
 import org.apache.tiles.request.ApplicationContext;
 import org.apache.tiles.request.Request;
+import org.apache.tiles.template.body.ModelBody;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -141,10 +143,11 @@
     /**
      * Test method for {@link org.apache.tiles.template.DefinitionModel
      * #execute(java.lang.String, java.lang.String,
-     * java.lang.String, java.lang.String, java.lang.String, Request)}.
+     * java.lang.String, java.lang.String, java.lang.String, Request, ModelBody)}.
+     * @throws IOException If something goes wrong.
      */
     @Test
-    public void testExecute() {
+    public void testExecute() throws IOException {
         MutableTilesContainer container = createMock(MutableTilesContainer.class);
         Request request = createMock(Request.class);
         ArrayStack<Object> composeStack = new ArrayStack<Object>();
@@ -154,18 +157,20 @@
         requestScope.put(ComposeStackUtil.COMPOSE_STACK_ATTRIBUTE_NAME, composeStack);
         requestScope.put(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
         ApplicationContext applicationContext = createMock(ApplicationContext.class);
+        ModelBody modelBody = createMock(ModelBody.class);
 
+        modelBody.evaluateWithoutWriting();
         expect(request.getApplicationContext()).andReturn(applicationContext);
         expect(request.getContext("request")).andReturn(requestScope).anyTimes();
         container.register((Definition) notNull(), eq(request));
 
-        replay(container, request, applicationContext);
+        replay(container, request, modelBody, applicationContext);
         model.execute("myName", "myTemplate", "myRole", "myExtends",
-                "myPreparer", request);
+                "myPreparer", request, modelBody);
         assertEquals(1, composeStack.size());
         attribute = (Attribute) composeStack.peek();
         assertEquals("definition", attribute.getRenderer());
-        verify(container, request, applicationContext);
+        verify(container, request, modelBody, applicationContext);
     }
 
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/GetAsStringModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/GetAsStringModelTest.java?rev=912223&r1=912222&r2=912223&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/GetAsStringModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/GetAsStringModelTest.java Sat Feb 20 21:06:14 2010
@@ -37,6 +37,7 @@
 import org.apache.tiles.access.TilesAccess;
 import org.apache.tiles.request.ApplicationContext;
 import org.apache.tiles.request.Request;
+import org.apache.tiles.template.body.ModelBody;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -131,7 +132,7 @@
      * Test method for {@link org.apache.tiles.template.GetAsStringModel
      * #execute(boolean, java.lang.String, java.lang.String,
      * java.lang.Object, java.lang.String, java.lang.String, java.lang.String,
-     * org.apache.tiles.Attribute, Request)}.
+     * org.apache.tiles.Attribute, Request, ModelBody)}.
      * @throws IOException If something goes wrong.
      */
     @Test
@@ -142,11 +143,15 @@
         Request request = createMock(Request.class);
         Writer writer = createMock(Writer.class);
         Map<String, Object> requestScope = new HashMap<String, Object>();
+        ArrayStack<Object> composeStack = new ArrayStack<Object>();
+        requestScope.put(ComposeStackUtil.COMPOSE_STACK_ATTRIBUTE_NAME, composeStack);
         requestScope.put(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
         ApplicationContext applicationContext = createMock(ApplicationContext.class);
+        ModelBody modelBody = createMock(ModelBody.class);
 
-        expect(request.getApplicationContext()).andReturn(applicationContext);
-        expect(request.getContext("request")).andReturn(requestScope);
+        modelBody.evaluateWithoutWriting();
+        expect(request.getApplicationContext()).andReturn(applicationContext).times(2);
+        expect(request.getContext("request")).andReturn(requestScope).anyTimes();
         expect(request.getWriter()).andReturn(writer);
         container.prepare("myPreparer", request);
         expect(resolver.computeAttribute(container, attribute, "myName", "myRole", false, "myDefaultValue",
@@ -155,10 +160,10 @@
         writer.write("myValue");
         container.endContext(request);
 
-        replay(resolver, container, writer, request, applicationContext);
+        replay(resolver, container, writer, request, applicationContext, modelBody);
         model.execute(false, "myPreparer", "myRole", "myDefaultValue", "myDefaultValueRole", "myDefaultValueType",
-                "myName", attribute, request);
-        verify(resolver, container, writer, request, applicationContext);
+                "myName", attribute, request, modelBody);
+        verify(resolver, container, writer, request, applicationContext, modelBody);
     }
 
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/InsertAttributeModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/InsertAttributeModelTest.java?rev=912223&r1=912222&r2=912223&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/InsertAttributeModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/InsertAttributeModelTest.java Sat Feb 20 21:06:14 2010
@@ -35,6 +35,7 @@
 import org.apache.tiles.access.TilesAccess;
 import org.apache.tiles.request.ApplicationContext;
 import org.apache.tiles.request.Request;
+import org.apache.tiles.template.body.ModelBody;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -126,7 +127,7 @@
     /**
      * Test method for {@link org.apache.tiles.template.InsertAttributeModel
      * #execute(boolean, String, String, Object, String, String, String,
-     * Attribute, Request)}.
+     * Attribute, Request, ModelBody)}.
      * @throws IOException If something goes wrong.
      */
     @Test
@@ -138,8 +139,10 @@
         Map<String, Object> requestScope = new HashMap<String, Object>();
         requestScope.put(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
         ApplicationContext applicationContext = createMock(ApplicationContext.class);
+        ModelBody modelBody = createMock(ModelBody.class);
 
-        expect(request.getApplicationContext()).andReturn(applicationContext);
+        modelBody.evaluateWithoutWriting();
+        expect(request.getApplicationContext()).andReturn(applicationContext).times(2);
         expect(request.getContext("request")).andReturn(requestScope).anyTimes();
 
         container.prepare("myPreparer", request);
@@ -149,10 +152,10 @@
         container.endContext(request);
         container.render(attribute, request);
 
-        replay(resolver, container, request, applicationContext);
+        replay(resolver, container, request, applicationContext, modelBody);
         model.execute(false, "myPreparer", "myRole", "myDefaultValue", "myDefaultValueRole",
-                "myDefaultValueType", "myName", attribute, request);
-        verify(resolver, container, request, applicationContext);
+                "myDefaultValueType", "myName", attribute, request, modelBody);
+        verify(resolver, container, request, applicationContext, modelBody);
     }
 
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/InsertDefinitionModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/InsertDefinitionModelTest.java?rev=912223&r1=912222&r2=912223&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/InsertDefinitionModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/InsertDefinitionModelTest.java Sat Feb 20 21:06:14 2010
@@ -22,7 +22,9 @@
 package org.apache.tiles.template;
 
 import static org.easymock.EasyMock.*;
+import static org.easymock.classextension.EasyMock.*;
 
+import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -32,6 +34,7 @@
 import org.apache.tiles.access.TilesAccess;
 import org.apache.tiles.request.ApplicationContext;
 import org.apache.tiles.request.Request;
+import org.apache.tiles.template.body.ModelBody;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -109,18 +112,21 @@
     /**
      * Test method for {@link org.apache.tiles.template.InsertDefinitionModel
      * #execute(java.lang.String, java.lang.String, String,
-     * String, java.lang.String, java.lang.String, Request)}.
+     * String, java.lang.String, java.lang.String, Request, ModelBody)}.
+     * @throws IOException If something goes wrong.
      */
     @Test
-    public void testExecute() {
+    public void testExecute() throws IOException {
         TilesContainer container = createMock(TilesContainer.class);
         Request request = createMock(Request.class);
         AttributeContext attributeContext = createMock(AttributeContext.class);
         Map<String, Object> requestScope = new HashMap<String, Object>();
         requestScope.put(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
         ApplicationContext applicationContext = createMock(ApplicationContext.class);
+        ModelBody modelBody = createMock(ModelBody.class);
 
-        expect(request.getApplicationContext()).andReturn(applicationContext);
+        modelBody.evaluateWithoutWriting();
+        expect(request.getApplicationContext()).andReturn(applicationContext).times(2);
         expect(request.getContext("request")).andReturn(requestScope).anyTimes();
         expect(container.startContext(request)).andReturn(attributeContext);
         expect(container.getAttributeContext(request)).andReturn(attributeContext);
@@ -129,11 +135,11 @@
         attributeContext.setTemplateAttribute((Attribute) notNull());
         container.render("myDefinitionName", request);
 
-        replay(container, attributeContext, request, applicationContext);
+        replay(container, attributeContext, request, applicationContext, modelBody);
         model.execute("myDefinitionName", "myTemplate", "myTemplateType",
                 "myTemplateExpression", "myRole", "myPreparer",
-                request);
-        verify(container, attributeContext, request, applicationContext);
+                request, modelBody);
+        verify(container, attributeContext, request, applicationContext, modelBody);
     }
 
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/InsertTemplateModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/InsertTemplateModelTest.java?rev=912223&r1=912222&r2=912223&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/InsertTemplateModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/InsertTemplateModelTest.java Sat Feb 20 21:06:14 2010
@@ -23,6 +23,7 @@
 
 import static org.easymock.EasyMock.*;
 
+import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -32,6 +33,7 @@
 import org.apache.tiles.access.TilesAccess;
 import org.apache.tiles.request.ApplicationContext;
 import org.apache.tiles.request.Request;
+import org.apache.tiles.template.body.ModelBody;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -106,18 +108,21 @@
 
     /**
      * Test method for {@link org.apache.tiles.template.InsertTemplateModel
-     * #execute(String, String, String, String, String, Request)}.
+     * #execute(String, String, String, String, String, Request, ModelBody)}.
+     * @throws IOException If something goes wrong.
      */
     @Test
-    public void testExecute() {
+    public void testExecute() throws IOException {
         TilesContainer container = createMock(TilesContainer.class);
         Request request = createMock(Request.class);
         AttributeContext attributeContext = createMock(AttributeContext.class);
         Map<String, Object> requestScope = new HashMap<String, Object>();
         requestScope.put(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
         ApplicationContext applicationContext = createMock(ApplicationContext.class);
+        ModelBody modelBody = createMock(ModelBody.class);
 
-        expect(request.getApplicationContext()).andReturn(applicationContext);
+        modelBody.evaluateWithoutWriting();
+        expect(request.getApplicationContext()).andReturn(applicationContext).times(2);
         expect(request.getContext("request")).andReturn(requestScope).anyTimes();
         expect(container.startContext(request)).andReturn(attributeContext);
         expect(container.getAttributeContext(request)).andReturn(attributeContext);
@@ -126,11 +131,11 @@
         attributeContext.setTemplateAttribute((Attribute) notNull());
         container.renderContext(request);
 
-        replay(container, attributeContext, request, applicationContext);
+        replay(container, attributeContext, request, applicationContext, modelBody);
         model.execute("myTemplate", "myTemplateType", "myTemplateExpression",
                 "myRole", "myPreparer",
-                request);
-        verify(container, attributeContext, request, applicationContext);
+                request, modelBody);
+        verify(container, attributeContext, request, applicationContext, modelBody);
     }
 
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/AddAttributeDirective.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/AddAttributeDirective.java?rev=912223&r1=912222&r2=912223&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/AddAttributeDirective.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/AddAttributeDirective.java Sat Feb 20 21:06:14 2010
@@ -38,7 +38,7 @@
  * @version $Rev$ $Date$
  * @since 2.2.2
  */
-public class AddAttributeDirective extends BodyBlockDirective {
+public class AddAttributeDirective extends BodyDirective {
 
     /**
      * The template model.

Modified: tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/AddListAttributeDirective.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/AddListAttributeDirective.java?rev=912223&r1=912222&r2=912223&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/AddListAttributeDirective.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/AddListAttributeDirective.java Sat Feb 20 21:06:14 2010
@@ -21,18 +21,12 @@
 
 package org.apache.tiles.velocity.template;
 
-import java.io.Writer;
+import java.io.IOException;
 import java.util.Map;
 
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
 import org.apache.tiles.request.Request;
-import org.apache.tiles.request.servlet.ServletUtil;
-import org.apache.tiles.request.velocity.VelocityRequest;
 import org.apache.tiles.template.AddListAttributeModel;
-import org.apache.velocity.context.InternalContextAdapter;
+import org.apache.tiles.template.body.ModelBody;
 
 /**
  * Wraps {@link AddListAttributeModel} to be used in Velocity. For the list of
@@ -42,7 +36,7 @@
  * @version $Rev$ $Date$
  * @since 2.2.2
  */
-public class AddListAttributeDirective extends BlockDirective {
+public class AddListAttributeDirective extends BodyDirective {
 
     /**
      * The template model.
@@ -76,24 +70,9 @@
 
     /** {@inheritDoc} */
     @Override
-    protected void end(InternalContextAdapter context, Writer writer,
-            Map<String, Object> params, HttpServletRequest request,
-            HttpServletResponse response, ServletContext servletContext) {
-        Request currentRequest = VelocityRequest.createVelocityRequest(
-                ServletUtil.getApplicationContext(servletContext), request,
-                response, context, null);
-        model.end(currentRequest);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    protected void start(InternalContextAdapter context, Writer writer,
-            Map<String, Object> params, HttpServletRequest request,
-            HttpServletResponse response, ServletContext servletContext) {
-        Request currentRequest = VelocityRequest.createVelocityRequest(
-                ServletUtil.getApplicationContext(servletContext), request,
-                response, context, null);
-        model.start((String) params.get("role"), currentRequest);
+    protected void execute(Map<String, Object> params, Request request,
+            ModelBody modelBody) throws IOException {
+        model.execute((String) params.get("role"), request, modelBody);
     }
 
 }

Copied: tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/BodyDirective.java (from r912109, tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/BodyBlockDirective.java)
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/BodyDirective.java?p2=tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/BodyDirective.java&p1=tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/BodyBlockDirective.java&r1=912109&r2=912223&rev=912223&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/BodyBlockDirective.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/BodyDirective.java Sat Feb 20 21:06:14 2010
@@ -48,7 +48,7 @@
  * @version $Rev$ $Date$
  * @since 2.2.2
  */
-public abstract class BodyBlockDirective extends Directive {
+public abstract class BodyDirective extends Directive {
 
     /** {@inheritDoc} */
     @Override

Added: tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/BodylessDirective.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/BodylessDirective.java?rev=912223&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/BodylessDirective.java (added)
+++ tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/BodylessDirective.java Sat Feb 20 21:06:14 2010
@@ -0,0 +1,76 @@
+/*
+ * $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.velocity.template;
+
+import java.io.IOException;
+import java.io.Writer;
+import java.util.Map;
+
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.tiles.request.Request;
+import org.apache.tiles.request.servlet.ServletUtil;
+import org.apache.tiles.request.velocity.VelocityRequest;
+import org.apache.tiles.velocity.context.VelocityUtil;
+import org.apache.velocity.context.InternalContextAdapter;
+import org.apache.velocity.runtime.directive.Directive;
+import org.apache.velocity.runtime.parser.node.Node;
+import org.apache.velocity.tools.view.ViewContext;
+
+/**
+ * Base abstract directive for those models who need to evaluate and use a
+ * body.
+ *
+ * @version $Rev$ $Date$
+ * @since 2.2.2
+ */
+public abstract class BodylessDirective extends Directive {
+
+    /** {@inheritDoc} */
+    @Override
+    public int getType() {
+        return LINE;
+    }
+
+    /** {@inheritDoc} */
+
+    @Override
+    public boolean render(InternalContextAdapter context, Writer writer, Node node)
+            throws IOException {
+        ViewContext viewContext = (ViewContext) context
+                .getInternalUserContext();
+        Map<String, Object> params = VelocityUtil.getParameters(context, node);
+        HttpServletRequest request = viewContext.getRequest();
+        HttpServletResponse response = viewContext.getResponse();
+        ServletContext servletContext = viewContext.getServletContext();
+        Request currentRequest = VelocityRequest.createVelocityRequest(
+                ServletUtil.getApplicationContext(servletContext), request,
+                response, context, writer);
+        execute(params, currentRequest);
+        return true;
+    }
+
+    protected abstract void execute(Map<String, Object> params,
+            Request request) throws IOException;
+}

Propchange: tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/BodylessDirective.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/BodylessDirective.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/DefinitionDirective.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/DefinitionDirective.java?rev=912223&r1=912222&r2=912223&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/DefinitionDirective.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/DefinitionDirective.java Sat Feb 20 21:06:14 2010
@@ -21,19 +21,13 @@
 
 package org.apache.tiles.velocity.template;
 
-import java.io.Writer;
+import java.io.IOException;
 import java.util.Map;
 
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
 import org.apache.tiles.mgmt.MutableTilesContainer;
 import org.apache.tiles.request.Request;
-import org.apache.tiles.request.servlet.ServletUtil;
-import org.apache.tiles.request.velocity.VelocityRequest;
 import org.apache.tiles.template.DefinitionModel;
-import org.apache.velocity.context.InternalContextAdapter;
+import org.apache.tiles.template.body.ModelBody;
 
 /**
  * Wraps {@link DefinitionModel} to be used in Velocity. For the list of
@@ -48,7 +42,7 @@
  * @version $Rev$ $Date$
  * @since 2.2.2
  */
-public class DefinitionDirective extends BlockDirective {
+public class DefinitionDirective extends BodyDirective {
 
     /**
      * The template model.
@@ -82,27 +76,12 @@
 
     /** {@inheritDoc} */
     @Override
-    protected void end(InternalContextAdapter context, Writer writer,
-            Map<String, Object> params, HttpServletRequest request,
-            HttpServletResponse response, ServletContext servletContext) {
-        Request currentRequest = VelocityRequest.createVelocityRequest(
-                ServletUtil.getApplicationContext(servletContext), request,
-                response, context, writer);
-        model.end(currentRequest);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    protected void start(InternalContextAdapter context, Writer writer,
-            Map<String, Object> params, HttpServletRequest request,
-            HttpServletResponse response, ServletContext servletContext) {
-        Request currentRequest = VelocityRequest.createVelocityRequest(
-                ServletUtil.getApplicationContext(servletContext), request,
-                response, context, writer);
-        model.start((String) params.get("name"), (String) params
+    protected void execute(Map<String, Object> params, Request request,
+            ModelBody modelBody) throws IOException {
+        model.execute((String) params.get("name"), (String) params
                 .get("template"), (String) params.get("role"), (String) params
                 .get("extends"), (String) params.get("preparer"),
-                currentRequest);
+                request, modelBody);
     }
 
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/GetAsStringDirective.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/GetAsStringDirective.java?rev=912223&r1=912222&r2=912223&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/GetAsStringDirective.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/GetAsStringDirective.java Sat Feb 20 21:06:14 2010
@@ -25,19 +25,13 @@
 import java.io.Writer;
 import java.util.Map;
 
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
 import org.apache.tiles.Attribute;
 import org.apache.tiles.TilesContainer;
 import org.apache.tiles.request.Request;
-import org.apache.tiles.request.servlet.ServletUtil;
-import org.apache.tiles.request.velocity.VelocityRequest;
 import org.apache.tiles.template.DefaultAttributeResolver;
 import org.apache.tiles.template.GetAsStringModel;
+import org.apache.tiles.template.body.ModelBody;
 import org.apache.tiles.velocity.context.VelocityUtil;
-import org.apache.velocity.context.InternalContextAdapter;
 
 /**
  * Wraps {@link GetAsStringModel} to be used in Velocity. For the list of
@@ -52,7 +46,7 @@
  * @version $Rev$ $Date$
  * @since 2.2.2
  */
-public class GetAsStringDirective extends BlockDirective {
+public class GetAsStringDirective extends BodyDirective {
 
     /**
      * The template model.
@@ -87,32 +81,15 @@
 
     /** {@inheritDoc} */
     @Override
-    protected void end(InternalContextAdapter context, Writer writer,
-            Map<String, Object> params, HttpServletRequest request,
-            HttpServletResponse response, ServletContext servletContext)
-            throws IOException {
-        Request currentRequest = VelocityRequest.createVelocityRequest(
-                ServletUtil.getApplicationContext(servletContext), request,
-                response, context, writer);
-        model.end(VelocityUtil.toSimpleBoolean((Boolean) params.get("ignore"),
-                false), currentRequest);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    protected void start(InternalContextAdapter context, Writer writer,
-            Map<String, Object> params, HttpServletRequest request,
-            HttpServletResponse response, ServletContext servletContext) {
-        Request currentRequest = VelocityRequest.createVelocityRequest(
-                ServletUtil.getApplicationContext(servletContext), request,
-                response, context, writer);
-        model.start(VelocityUtil.toSimpleBoolean(
+    protected void execute(Map<String, Object> params, Request request,
+            ModelBody modelBody) throws IOException {
+        model.execute(VelocityUtil.toSimpleBoolean(
                 (Boolean) params.get("ignore"), false), (String) params
                 .get("preparer"), (String) params.get("role"), params
                 .get("defaultValue"), (String) params.get("defaultValueRole"),
                 (String) params.get("defaultValueType"), (String) params
                         .get("name"), (Attribute) params.get("value"),
-                currentRequest);
+                request, modelBody);
     }
 
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/ImportAttributeDirective.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/ImportAttributeDirective.java?rev=912223&r1=912222&r2=912223&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/ImportAttributeDirective.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/ImportAttributeDirective.java Sat Feb 20 21:06:14 2010
@@ -21,22 +21,11 @@
 
 package org.apache.tiles.velocity.template;
 
-import java.io.Writer;
 import java.util.Map;
 
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
 import org.apache.tiles.request.Request;
-import org.apache.tiles.request.servlet.ServletUtil;
-import org.apache.tiles.request.velocity.VelocityRequest;
 import org.apache.tiles.template.ImportAttributeModel;
 import org.apache.tiles.velocity.context.VelocityUtil;
-import org.apache.velocity.context.InternalContextAdapter;
-import org.apache.velocity.runtime.directive.Directive;
-import org.apache.velocity.runtime.parser.node.Node;
-import org.apache.velocity.tools.view.ViewContext;
 
 /**
  * Wraps {@link ImportAttributeModel} to be used in Velocity. For the list of
@@ -47,7 +36,7 @@
  * @version $Rev$ $Date$
  * @since 2.2.2
  */
-public class ImportAttributeDirective extends Directive {
+public class ImportAttributeDirective extends BodylessDirective {
 
     /**
      * The template model.
@@ -87,22 +76,11 @@
 
     /** {@inheritDoc} */
     @Override
-    public boolean render(InternalContextAdapter context, Writer writer,
-            Node node) {
-        ViewContext viewContext = (ViewContext) context
-                .getInternalUserContext();
-        Map<String, Object> params = VelocityUtil.getParameters(context, node);
-        HttpServletRequest request = viewContext.getRequest();
-        HttpServletResponse response = viewContext.getResponse();
-        ServletContext servletContext = viewContext.getServletContext();
-        Request currentRequest = VelocityRequest.createVelocityRequest(
-                ServletUtil.getApplicationContext(servletContext), request,
-                response, context, writer);
+    protected void execute(Map<String, Object> params, Request request) {
         model.execute((String) params.get("name"),
                 (String) params.get("scope"), (String) params.get("toName"),
                 VelocityUtil.toSimpleBoolean((Boolean) params.get("ignore"),
-                        false), currentRequest);
-        return true;
+                        false), request);
     }
 
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertAttributeDirective.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertAttributeDirective.java?rev=912223&r1=912222&r2=912223&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertAttributeDirective.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertAttributeDirective.java Sat Feb 20 21:06:14 2010
@@ -22,21 +22,14 @@
 package org.apache.tiles.velocity.template;
 
 import java.io.IOException;
-import java.io.Writer;
 import java.util.Map;
 
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
 import org.apache.tiles.Attribute;
 import org.apache.tiles.request.Request;
-import org.apache.tiles.request.servlet.ServletUtil;
-import org.apache.tiles.request.velocity.VelocityRequest;
 import org.apache.tiles.template.DefaultAttributeResolver;
 import org.apache.tiles.template.InsertAttributeModel;
+import org.apache.tiles.template.body.ModelBody;
 import org.apache.tiles.velocity.context.VelocityUtil;
-import org.apache.velocity.context.InternalContextAdapter;
 
 /**
  * Wraps {@link InsertAttributeModel} to be used in Velocity. For the list of
@@ -51,7 +44,7 @@
  * @version $Rev$ $Date$
  * @since 2.2.2
  */
-public class InsertAttributeDirective extends BlockDirective {
+public class InsertAttributeDirective extends BodyDirective {
 
     /**
      * The template model.
@@ -86,32 +79,15 @@
 
     /** {@inheritDoc} */
     @Override
-    protected void end(InternalContextAdapter context, Writer writer,
-            Map<String, Object> params, HttpServletRequest request,
-            HttpServletResponse response, ServletContext servletContext)
-            throws IOException {
-        Request currentRequest = VelocityRequest.createVelocityRequest(
-                ServletUtil.getApplicationContext(servletContext), request,
-                response, context, writer);
-        model.end(VelocityUtil.toSimpleBoolean((Boolean) params.get("ignore"),
-                false), currentRequest);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    protected void start(InternalContextAdapter context, Writer writer,
-            Map<String, Object> params, HttpServletRequest request,
-            HttpServletResponse response, ServletContext servletContext) {
-        Request currentRequest = VelocityRequest.createVelocityRequest(
-                ServletUtil.getApplicationContext(servletContext), request,
-                response, context, writer);
-        model.start(VelocityUtil.toSimpleBoolean(
+    protected void execute(Map<String, Object> params, Request request,
+            ModelBody modelBody) throws IOException {
+        model.execute(VelocityUtil.toSimpleBoolean(
                 (Boolean) params.get("ignore"), false), (String) params
                 .get("preparer"), (String) params.get("role"), params
                 .get("defaultValue"), (String) params.get("defaultValueRole"),
                 (String) params.get("defaultValueType"), (String) params
                         .get("name"), (Attribute) params.get("value"),
-                currentRequest);
+                request, modelBody);
     }
 
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertDefinitionDirective.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertDefinitionDirective.java?rev=912223&r1=912222&r2=912223&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertDefinitionDirective.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertDefinitionDirective.java Sat Feb 20 21:06:14 2010
@@ -21,18 +21,12 @@
 
 package org.apache.tiles.velocity.template;
 
-import java.io.Writer;
+import java.io.IOException;
 import java.util.Map;
 
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
 import org.apache.tiles.request.Request;
-import org.apache.tiles.request.servlet.ServletUtil;
-import org.apache.tiles.request.velocity.VelocityRequest;
 import org.apache.tiles.template.InsertDefinitionModel;
-import org.apache.velocity.context.InternalContextAdapter;
+import org.apache.tiles.template.body.ModelBody;
 
 /**
  * Wraps {@link InsertDefinitionModel} to be used in Velocity. For the list of
@@ -47,7 +41,7 @@
  * @version $Rev$ $Date$
  * @since 2.2.2
  */
-public class InsertDefinitionDirective extends BlockDirective {
+public class InsertDefinitionDirective extends BodyDirective {
 
     /**
      * The template model.
@@ -81,28 +75,12 @@
 
     /** {@inheritDoc} */
     @Override
-    protected void end(InternalContextAdapter context, Writer writer,
-            Map<String, Object> params, HttpServletRequest request,
-            HttpServletResponse response, ServletContext servletContext) {
-        Request currentRequest = VelocityRequest.createVelocityRequest(
-                ServletUtil.getApplicationContext(servletContext), request,
-                response, context, writer);
-        model.end((String) params.get("name"), (String) params.get("template"),
+    protected void execute(Map<String, Object> params, Request request,
+            ModelBody modelBody) throws IOException {
+        model.execute((String) params.get("name"), (String) params.get("template"),
                 (String) params.get("templateType"), (String) params
                         .get("templateExpression"),
                 (String) params.get("role"), (String) params.get("preparer"),
-                currentRequest);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    protected void start(InternalContextAdapter context, Writer writer,
-            Map<String, Object> params, HttpServletRequest request,
-            HttpServletResponse response, ServletContext servletContext) {
-        Request currentRequest = VelocityRequest.createVelocityRequest(
-                ServletUtil.getApplicationContext(servletContext), request,
-                response, context, writer);
-        model.start(currentRequest);
+                request, modelBody);
     }
-
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertTemplateDirective.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertTemplateDirective.java?rev=912223&r1=912222&r2=912223&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertTemplateDirective.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertTemplateDirective.java Sat Feb 20 21:06:14 2010
@@ -21,18 +21,12 @@
 
 package org.apache.tiles.velocity.template;
 
-import java.io.Writer;
+import java.io.IOException;
 import java.util.Map;
 
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
 import org.apache.tiles.request.Request;
-import org.apache.tiles.request.servlet.ServletUtil;
-import org.apache.tiles.request.velocity.VelocityRequest;
 import org.apache.tiles.template.InsertTemplateModel;
-import org.apache.velocity.context.InternalContextAdapter;
+import org.apache.tiles.template.body.ModelBody;
 
 /**
  * Wraps {@link InsertTemplateModel} to be used in Velocity. For the list of
@@ -47,7 +41,7 @@
  * @version $Rev$ $Date$
  * @since 2.2.2
  */
-public class InsertTemplateDirective extends BlockDirective {
+public class InsertTemplateDirective extends BodyDirective {
 
     /**
      * The template model.
@@ -81,28 +75,12 @@
 
     /** {@inheritDoc} */
     @Override
-    protected void end(InternalContextAdapter context, Writer writer,
-            Map<String, Object> params, HttpServletRequest request,
-            HttpServletResponse response, ServletContext servletContext) {
-        Request currentRequest = VelocityRequest.createVelocityRequest(
-                ServletUtil.getApplicationContext(servletContext), request,
-                response, context, writer);
-        model.end((String) params.get("template"), (String) params
+    protected void execute(Map<String, Object> params, Request request,
+            ModelBody modelBody) throws IOException {
+        model.execute((String) params.get("template"), (String) params
                 .get("templateType"),
                 (String) params.get("templateExpression"), (String) params
                         .get("role"), (String) params.get("preparer"),
-                currentRequest);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    protected void start(InternalContextAdapter context, Writer writer,
-            Map<String, Object> params, HttpServletRequest request,
-            HttpServletResponse response, ServletContext servletContext) {
-        Request currentRequest = VelocityRequest.createVelocityRequest(
-                ServletUtil.getApplicationContext(servletContext), request,
-                response, context, writer);
-        model.start(currentRequest);
+                request, modelBody);
     }
-
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutAttributeDirective.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutAttributeDirective.java?rev=912223&r1=912222&r2=912223&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutAttributeDirective.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutAttributeDirective.java Sat Feb 20 21:06:14 2010
@@ -40,7 +40,7 @@
  * @version $Rev$ $Date$
  * @since 2.2.2
  */
-public class PutAttributeDirective extends BodyBlockDirective {
+public class PutAttributeDirective extends BodyDirective {
 
     /**
      * The template model.

Modified: tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutListAttributeDirective.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutListAttributeDirective.java?rev=912223&r1=912222&r2=912223&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutListAttributeDirective.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutListAttributeDirective.java Sat Feb 20 21:06:14 2010
@@ -21,19 +21,13 @@
 
 package org.apache.tiles.velocity.template;
 
-import java.io.Writer;
+import java.io.IOException;
 import java.util.Map;
 
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
 import org.apache.tiles.request.Request;
-import org.apache.tiles.request.servlet.ServletUtil;
-import org.apache.tiles.request.velocity.VelocityRequest;
 import org.apache.tiles.template.PutListAttributeModel;
+import org.apache.tiles.template.body.ModelBody;
 import org.apache.tiles.velocity.context.VelocityUtil;
-import org.apache.velocity.context.InternalContextAdapter;
 
 /**
  * Wraps {@link PutListAttributeModel} to be used in Velocity. For the list of
@@ -45,7 +39,7 @@
  * @version $Rev$ $Date$
  * @since 2.2.2
  */
-public class PutListAttributeDirective extends BlockDirective {
+public class PutListAttributeDirective extends BodyDirective {
 
     /**
      * The template model.
@@ -73,32 +67,18 @@
 
     /** {@inheritDoc} */
     @Override
-    protected void end(InternalContextAdapter context, Writer writer,
-            Map<String, Object> params, HttpServletRequest request,
-            HttpServletResponse response, ServletContext servletContext) {
-        Request currentRequest = VelocityRequest.createVelocityRequest(
-                ServletUtil.getApplicationContext(servletContext), request,
-                response, context, writer);
-        model.end((String) params.get("name"), VelocityUtil.toSimpleBoolean(
-                (Boolean) params.get("cascade"), false), currentRequest);
+    public String getName() {
+        return "tiles_putListAttribute";
     }
 
-    /** {@inheritDoc} */
-    @Override
-    protected void start(InternalContextAdapter context, Writer writer,
-            Map<String, Object> params, HttpServletRequest request,
-            HttpServletResponse response, ServletContext servletContext) {
-        Request currentRequest = VelocityRequest.createVelocityRequest(
-                ServletUtil.getApplicationContext(servletContext), request,
-                response, context, writer);
-        model.start((String) params.get("role"), VelocityUtil.toSimpleBoolean(
-                (Boolean) params.get("inherit"), false), currentRequest);
-    }
 
     /** {@inheritDoc} */
     @Override
-    public String getName() {
-        return "tiles_putListAttribute";
+    protected void execute(Map<String, Object> params, Request request,
+            ModelBody modelBody) throws IOException {
+        model.execute((String) params.get("name"), (String) params.get("role"),
+                VelocityUtil.toSimpleBoolean((Boolean) params.get("inherit"),
+                        false), VelocityUtil.toSimpleBoolean((Boolean) params
+                        .get("cascade"), false), request, modelBody);
     }
-
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/BodyBlockDirectiveTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/BodyBlockDirectiveTest.java?rev=912223&r1=912222&r2=912223&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/BodyBlockDirectiveTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/BodyBlockDirectiveTest.java Sat Feb 20 21:06:14 2010
@@ -48,7 +48,7 @@
 import org.junit.Test;
 
 /**
- * Tests {@link BodyBlockDirective}.
+ * Tests {@link BodyDirective}.
  *
  * @version $Rev$ $Date$
  */
@@ -57,14 +57,14 @@
     /**
      * The directive to test.
      */
-    private BodyBlockDirective directive;
+    private BodyDirective directive;
 
     /**
      * @throws java.lang.Exception
      */
     @Before
     public void setUp() {
-        directive = createMock(BodyBlockDirective.class, new Method[0]);
+        directive = createMock(BodyDirective.class, new Method[0]);
     }
 
     /**