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 13:14:17 UTC
svn commit: r912109 - in /tiles/sandbox/trunk/tiles3:
tiles-freemarker/src/main/java/org/apache/tiles/freemarker/
tiles-freemarker/src/main/java/org/apache/tiles/freemarker/context/
tiles-freemarker/src/main/java/org/apache/tiles/freemarker/io/ tiles-f...
Author: apetrelli
Date: Sat Feb 20 12:14:16 2010
New Revision: 912109
URL: http://svn.apache.org/viewvc?rev=912109&view=rev
Log:
TILESSB-23
Created body abstraction and implementations for JSP, Freemarker and Velocity.
Modified AddAttribute and PutAttribute tags for all technologies.
Added:
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/FreemarkerModelBody.java (with props)
tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/JspModelBody.java (with props)
tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/body/
tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/body/AbstractModelBody.java (with props)
tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/body/ModelBody.java (with props)
tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/body/NullWriter.java
- copied, changed from r903407, tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/io/NullWriter.java
tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/VelocityModelBody.java (with props)
Removed:
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/io/NullWriter.java
Modified:
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerUtil.java
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/AddAttributeFMModel.java
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutAttributeFMModel.java
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/context/FreeMarkerUtilTest.java
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/io/NullWriterTest.java
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/AddAttributeFMModelTest.java
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/AddListAttributeFMModelTest.java
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/DefinitionFMModelTest.java
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/GetAsStringFMModelTest.java
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertAttributeFMModelTest.java
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModelTest.java
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertTemplateFMModelTest.java
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/PutAttributeFMModelTest.java
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/PutListAttributeFMModelTest.java
tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/AddAttributeTag.java
tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/PutAttributeTag.java
tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/AddAttributeModel.java
tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/PutAttributeModel.java
tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/AddAttributeModelTest.java
tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/PutAttributeModelTest.java
tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/AddAttributeDirective.java
tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/BodyBlockDirective.java
tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutAttributeDirective.java
tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/AddAttributeDirectiveTest.java
tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/BodyBlockDirectiveTest.java
tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/PutAttributeDirectiveTest.java
Added: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/FreemarkerModelBody.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/FreemarkerModelBody.java?rev=912109&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/FreemarkerModelBody.java (added)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/FreemarkerModelBody.java Sat Feb 20 12:14:16 2010
@@ -0,0 +1,33 @@
+package org.apache.tiles.freemarker;
+
+import java.io.IOException;
+import java.io.Writer;
+
+import org.apache.tiles.template.body.AbstractModelBody;
+
+import freemarker.template.TemplateDirectiveBody;
+import freemarker.template.TemplateException;
+
+public class FreemarkerModelBody extends AbstractModelBody {
+
+ private TemplateDirectiveBody templateDirectiveBody;
+
+ public FreemarkerModelBody(Writer defaultWriter, TemplateDirectiveBody templateDirectiveBody) {
+ super(defaultWriter);
+ this.templateDirectiveBody = templateDirectiveBody;
+ }
+
+ @Override
+ public void evaluate(Writer writer) throws IOException {
+ if (templateDirectiveBody == null) {
+ return;
+ }
+
+ try {
+ templateDirectiveBody.render(writer);
+ } catch (TemplateException e) {
+ throw new IOException("TemplateException when rendering body", e);
+ }
+ }
+
+}
Propchange: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/FreemarkerModelBody.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/FreemarkerModelBody.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerUtil.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerUtil.java?rev=912109&r1=912108&r2=912109&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerUtil.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerUtil.java Sat Feb 20 12:14:16 2010
@@ -25,8 +25,8 @@
import java.io.StringWriter;
import org.apache.tiles.freemarker.FreeMarkerTilesException;
-import org.apache.tiles.freemarker.io.NullWriter;
import org.apache.tiles.request.freemarker.FreemarkerRequestUtil;
+import org.apache.tiles.template.body.NullWriter;
import freemarker.core.Environment;
import freemarker.template.TemplateDirectiveBody;
Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/AddAttributeFMModel.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/AddAttributeFMModel.java?rev=912109&r1=912108&r2=912109&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/AddAttributeFMModel.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/AddAttributeFMModel.java Sat Feb 20 12:14:16 2010
@@ -24,16 +24,17 @@
import java.io.IOException;
import java.util.Map;
+import org.apache.tiles.freemarker.FreemarkerModelBody;
import org.apache.tiles.freemarker.context.FreeMarkerUtil;
import org.apache.tiles.request.Request;
import org.apache.tiles.request.freemarker.FreemarkerRequest;
import org.apache.tiles.request.freemarker.FreemarkerRequestUtil;
import org.apache.tiles.template.AddAttributeModel;
+import org.apache.tiles.template.body.ModelBody;
import freemarker.core.Environment;
import freemarker.template.TemplateDirectiveBody;
import freemarker.template.TemplateDirectiveModel;
-import freemarker.template.TemplateException;
import freemarker.template.TemplateModel;
/**
@@ -64,15 +65,15 @@
/** {@inheritDoc} */
@SuppressWarnings("unchecked")
public void execute(Environment env, Map params, TemplateModel[] loopVars,
- TemplateDirectiveBody body) throws TemplateException, IOException {
+ TemplateDirectiveBody body) throws IOException {
Request request = FreemarkerRequest
.createServletFreemarkerRequest(FreemarkerRequestUtil
.getApplicationContext(env), env);
- model.start(request);
- String bodyString = FreeMarkerUtil.renderAsString(body);
+ ModelBody modelBody = new FreemarkerModelBody(env.getOut(), body);
Map<String, TemplateModel> parms = params;
- model.end(FreeMarkerUtil.getAsObject(parms.get("value")), FreeMarkerUtil.getAsString(parms.get("expression")),
- bodyString, FreeMarkerUtil.getAsString(parms.get("role")),
- FreeMarkerUtil.getAsString(parms.get("type")), request);
+ model.execute(FreeMarkerUtil.getAsObject(parms.get("value")),
+ FreeMarkerUtil.getAsString(parms.get("expression")),
+ FreeMarkerUtil.getAsString(parms.get("role")), FreeMarkerUtil
+ .getAsString(parms.get("type")), request, modelBody);
}
}
Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutAttributeFMModel.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutAttributeFMModel.java?rev=912109&r1=912108&r2=912109&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutAttributeFMModel.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutAttributeFMModel.java Sat Feb 20 12:14:16 2010
@@ -24,16 +24,17 @@
import java.io.IOException;
import java.util.Map;
+import org.apache.tiles.freemarker.FreemarkerModelBody;
import org.apache.tiles.freemarker.context.FreeMarkerUtil;
import org.apache.tiles.request.Request;
import org.apache.tiles.request.freemarker.FreemarkerRequest;
import org.apache.tiles.request.freemarker.FreemarkerRequestUtil;
import org.apache.tiles.template.PutAttributeModel;
+import org.apache.tiles.template.body.ModelBody;
import freemarker.core.Environment;
import freemarker.template.TemplateDirectiveBody;
import freemarker.template.TemplateDirectiveModel;
-import freemarker.template.TemplateException;
import freemarker.template.TemplateModel;
/**
@@ -66,19 +67,19 @@
/** {@inheritDoc} */
@SuppressWarnings("unchecked")
public void execute(Environment env, Map params, TemplateModel[] loopVars,
- TemplateDirectiveBody body) throws TemplateException, IOException {
+ TemplateDirectiveBody body) throws IOException {
Request request = FreemarkerRequest
.createServletFreemarkerRequest(FreemarkerRequestUtil
.getApplicationContext(env), env);
- model.start(request);
- String bodyString = FreeMarkerUtil.renderAsString(body);
+ ModelBody modelBody = new FreemarkerModelBody(env.getOut(), body);
Map<String, TemplateModel> parms = params;
- model.end(FreeMarkerUtil.getAsString(parms
- .get("name")), FreeMarkerUtil.getAsObject(parms.get("value")), FreeMarkerUtil.getAsString(parms.get("expression")), bodyString,
- FreeMarkerUtil.getAsString(parms.get("role")),
- FreeMarkerUtil.getAsString(parms.get("type")), FreeMarkerUtil
- .getAsBoolean(parms.get("cascade"), false),
- request);
+ model.execute(FreeMarkerUtil.getAsString(parms.get("name")),
+ FreeMarkerUtil.getAsObject(parms.get("value")), FreeMarkerUtil
+ .getAsString(parms.get("expression")), FreeMarkerUtil
+ .getAsString(parms.get("role")), FreeMarkerUtil
+ .getAsString(parms.get("type")), FreeMarkerUtil
+ .getAsBoolean(parms.get("cascade"), false), request,
+ modelBody);
}
}
Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/context/FreeMarkerUtilTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/context/FreeMarkerUtilTest.java?rev=912109&r1=912108&r2=912109&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/context/FreeMarkerUtilTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/context/FreeMarkerUtilTest.java Sat Feb 20 12:14:16 2010
@@ -36,7 +36,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
-import org.apache.tiles.freemarker.io.NullWriter;
+import org.apache.tiles.template.body.NullWriter;
import org.junit.Before;
import org.junit.Test;
Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/io/NullWriterTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/io/NullWriterTest.java?rev=912109&r1=912108&r2=912109&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/io/NullWriterTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/io/NullWriterTest.java Sat Feb 20 12:14:16 2010
@@ -20,6 +20,7 @@
*/
package org.apache.tiles.freemarker.io;
+import org.apache.tiles.template.body.NullWriter;
import org.junit.Before;
import org.junit.Test;
@@ -48,7 +49,7 @@
}
/**
- * Test method for {@link org.apache.tiles.freemarker.io.NullWriter#write(char[], int, int)}.
+ * Test method for {@link org.apache.tiles.template.body.NullWriter#write(char[], int, int)}.
*/
@Test
public void testWriteCharArrayIntInt() {
@@ -56,7 +57,7 @@
}
/**
- * Test method for {@link org.apache.tiles.freemarker.io.NullWriter#flush()}.
+ * Test method for {@link org.apache.tiles.template.body.NullWriter#flush()}.
*/
@Test
public void testFlush() {
@@ -64,7 +65,7 @@
}
/**
- * Test method for {@link org.apache.tiles.freemarker.io.NullWriter#close()}.
+ * Test method for {@link org.apache.tiles.template.body.NullWriter#close()}.
*/
@Test
public void testClose() {
Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/AddAttributeFMModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/AddAttributeFMModelTest.java?rev=912109&r1=912108&r2=912109&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/AddAttributeFMModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/AddAttributeFMModelTest.java Sat Feb 20 12:14:16 2010
@@ -34,6 +34,7 @@
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
+import org.apache.tiles.freemarker.FreemarkerModelBody;
import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.freemarker.FreemarkerRequest;
import org.apache.tiles.request.util.ApplicationAccess;
@@ -136,10 +137,9 @@
params.put("role", objectWrapper.wrap("myRole"));
params.put("type", objectWrapper.wrap("myType"));
- tModel.start(isA(FreemarkerRequest.class));
- tModel.end(eq(value), eq("myExpression"), eq(""), eq("myRole"),
- eq("myType"), isA(FreemarkerRequest.class));
- body.render(isA(StringWriter.class));
+ tModel.execute(eq(value), eq("myExpression"), eq("myRole"),
+ eq("myType"), isA(FreemarkerRequest.class),
+ isA(FreemarkerModelBody.class));
replay(request, tModel, body, applicationContext);
fmModel.execute(env, params, null, body);
Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/AddListAttributeFMModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/AddListAttributeFMModelTest.java?rev=912109&r1=912108&r2=912109&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/AddListAttributeFMModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/AddListAttributeFMModelTest.java Sat Feb 20 12:14:16 2010
@@ -34,11 +34,11 @@
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
-import org.apache.tiles.freemarker.io.NullWriter;
import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.freemarker.FreemarkerRequest;
import org.apache.tiles.request.util.ApplicationAccess;
import org.apache.tiles.template.AddListAttributeModel;
+import org.apache.tiles.template.body.NullWriter;
import org.junit.Before;
import org.junit.Test;
Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/DefinitionFMModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/DefinitionFMModelTest.java?rev=912109&r1=912108&r2=912109&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/DefinitionFMModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/DefinitionFMModelTest.java Sat Feb 20 12:14:16 2010
@@ -34,11 +34,11 @@
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
-import org.apache.tiles.freemarker.io.NullWriter;
import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.freemarker.FreemarkerRequest;
import org.apache.tiles.request.util.ApplicationAccess;
import org.apache.tiles.template.DefinitionModel;
+import org.apache.tiles.template.body.NullWriter;
import org.junit.Before;
import org.junit.Test;
Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/GetAsStringFMModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/GetAsStringFMModelTest.java?rev=912109&r1=912108&r2=912109&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/GetAsStringFMModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/GetAsStringFMModelTest.java Sat Feb 20 12:14:16 2010
@@ -35,11 +35,11 @@
import javax.servlet.http.HttpServletRequest;
import org.apache.tiles.Attribute;
-import org.apache.tiles.freemarker.io.NullWriter;
import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.freemarker.FreemarkerRequest;
import org.apache.tiles.request.util.ApplicationAccess;
import org.apache.tiles.template.GetAsStringModel;
+import org.apache.tiles.template.body.NullWriter;
import org.junit.Before;
import org.junit.Test;
Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertAttributeFMModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertAttributeFMModelTest.java?rev=912109&r1=912108&r2=912109&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertAttributeFMModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertAttributeFMModelTest.java Sat Feb 20 12:14:16 2010
@@ -35,11 +35,11 @@
import javax.servlet.http.HttpServletRequest;
import org.apache.tiles.Attribute;
-import org.apache.tiles.freemarker.io.NullWriter;
import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.freemarker.FreemarkerRequest;
import org.apache.tiles.request.util.ApplicationAccess;
import org.apache.tiles.template.InsertAttributeModel;
+import org.apache.tiles.template.body.NullWriter;
import org.junit.Before;
import org.junit.Test;
Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModelTest.java?rev=912109&r1=912108&r2=912109&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModelTest.java Sat Feb 20 12:14:16 2010
@@ -35,11 +35,11 @@
import javax.servlet.http.HttpServletRequest;
import org.apache.tiles.Attribute;
-import org.apache.tiles.freemarker.io.NullWriter;
import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.freemarker.FreemarkerRequest;
import org.apache.tiles.request.util.ApplicationAccess;
import org.apache.tiles.template.InsertDefinitionModel;
+import org.apache.tiles.template.body.NullWriter;
import org.junit.Before;
import org.junit.Test;
Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertTemplateFMModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertTemplateFMModelTest.java?rev=912109&r1=912108&r2=912109&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertTemplateFMModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertTemplateFMModelTest.java Sat Feb 20 12:14:16 2010
@@ -35,11 +35,11 @@
import javax.servlet.http.HttpServletRequest;
import org.apache.tiles.Attribute;
-import org.apache.tiles.freemarker.io.NullWriter;
import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.freemarker.FreemarkerRequest;
import org.apache.tiles.request.util.ApplicationAccess;
import org.apache.tiles.template.InsertTemplateModel;
+import org.apache.tiles.template.body.NullWriter;
import org.junit.Before;
import org.junit.Test;
Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/PutAttributeFMModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/PutAttributeFMModelTest.java?rev=912109&r1=912108&r2=912109&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/PutAttributeFMModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/PutAttributeFMModelTest.java Sat Feb 20 12:14:16 2010
@@ -34,6 +34,7 @@
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
+import org.apache.tiles.freemarker.FreemarkerModelBody;
import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.freemarker.FreemarkerRequest;
import org.apache.tiles.request.util.ApplicationAccess;
@@ -139,10 +140,9 @@
params.put("type", objectWrapper.wrap("myType"));
params.put("cascade", objectWrapper.wrap(false));
- tModel.start(isA(FreemarkerRequest.class));
- tModel.end(eq("myName"), eq(value), eq("myExpression"), eq(""),
- eq("myRole"), eq("myType"), eq(false), isA(FreemarkerRequest.class));
- body.render(isA(StringWriter.class));
+ tModel.execute(eq("myName"), eq(value), eq("myExpression"),
+ eq("myRole"), eq("myType"), eq(false),
+ isA(FreemarkerRequest.class), isA(FreemarkerModelBody.class));
replay(tModel, body, applicationContext);
fmModel.execute(env, params, null, body);
Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/PutListAttributeFMModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/PutListAttributeFMModelTest.java?rev=912109&r1=912108&r2=912109&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/PutListAttributeFMModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/PutListAttributeFMModelTest.java Sat Feb 20 12:14:16 2010
@@ -34,11 +34,11 @@
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
-import org.apache.tiles.freemarker.io.NullWriter;
import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.freemarker.FreemarkerRequest;
import org.apache.tiles.request.util.ApplicationAccess;
import org.apache.tiles.template.PutListAttributeModel;
+import org.apache.tiles.template.body.NullWriter;
import org.junit.Before;
import org.junit.Test;
Added: tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/JspModelBody.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/JspModelBody.java?rev=912109&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/JspModelBody.java (added)
+++ tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/JspModelBody.java Sat Feb 20 12:14:16 2010
@@ -0,0 +1,34 @@
+package org.apache.tiles.jsp;
+
+import java.io.IOException;
+import java.io.Writer;
+
+import javax.servlet.jsp.JspContext;
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.tagext.JspFragment;
+
+import org.apache.tiles.template.body.AbstractModelBody;
+
+public class JspModelBody extends AbstractModelBody {
+
+ private JspFragment jspFragment;
+
+ public JspModelBody(JspFragment jspFragment, JspContext jspContext) {
+ super(jspContext.getOut());
+ this.jspFragment = jspFragment;
+ }
+
+ @Override
+ public void evaluate(Writer writer) throws IOException {
+ if (jspFragment == null) {
+ return;
+ }
+
+ try {
+ jspFragment.invoke(writer);
+ } catch (JspException e) {
+ throw new IOException("JspException when evaluating the body", e);
+ }
+ }
+
+}
Propchange: tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/JspModelBody.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/JspModelBody.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified: tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/AddAttributeTag.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/AddAttributeTag.java?rev=912109&r1=912108&r2=912109&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/AddAttributeTag.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/AddAttributeTag.java Sat Feb 20 12:14:16 2010
@@ -24,14 +24,14 @@
import java.io.IOException;
import javax.servlet.jsp.JspContext;
-import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.SimpleTagSupport;
-import org.apache.tiles.jsp.JspUtil;
+import org.apache.tiles.jsp.JspModelBody;
import org.apache.tiles.request.Request;
import org.apache.tiles.request.jsp.JspRequest;
import org.apache.tiles.template.AddAttributeModel;
+import org.apache.tiles.template.body.ModelBody;
/**
* <p>
@@ -199,15 +199,13 @@
/** {@inheritDoc} */
@Override
- public void doTag() throws JspException, IOException {
+ public void doTag() throws IOException {
JspContext pageContext = getJspContext();
Request request = JspRequest.createServletJspRequest(
org.apache.tiles.request.jsp.JspUtil
.getApplicationContext(pageContext),
(PageContext) pageContext);
- model.start(request);
- String body = JspUtil.evaluateFragmentAsString(getJspBody());
- model.end(value, expression, body,
- role, type, request);
+ ModelBody modelBody = new JspModelBody(getJspBody(), pageContext);
+ model.execute(value, expression, role, type, request, modelBody);
}
}
Modified: tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/PutAttributeTag.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/PutAttributeTag.java?rev=912109&r1=912108&r2=912109&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/PutAttributeTag.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/PutAttributeTag.java Sat Feb 20 12:14:16 2010
@@ -24,14 +24,14 @@
import java.io.IOException;
import javax.servlet.jsp.JspContext;
-import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.SimpleTagSupport;
-import org.apache.tiles.jsp.JspUtil;
+import org.apache.tiles.jsp.JspModelBody;
import org.apache.tiles.request.Request;
import org.apache.tiles.request.jsp.JspRequest;
import org.apache.tiles.template.PutAttributeModel;
+import org.apache.tiles.template.body.ModelBody;
/**
* <p>
@@ -266,15 +266,14 @@
/** {@inheritDoc} */
@Override
- public void doTag() throws JspException, IOException {
+ public void doTag() throws IOException {
JspContext jspContext = getJspContext();
Request request = JspRequest.createServletJspRequest(
org.apache.tiles.request.jsp.JspUtil
.getApplicationContext(jspContext),
(PageContext) jspContext);
- model.start(request);
- String body = JspUtil.evaluateFragmentAsString(getJspBody());
- model.end(name, value, expression,
- body, role, type, cascade, request);
+ ModelBody modelBody = new JspModelBody(getJspBody(), jspContext);
+ model.execute(name, value, expression, role, type, cascade, request,
+ modelBody);
}
}
Modified: tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/AddAttributeModel.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/AddAttributeModel.java?rev=912109&r1=912108&r2=912109&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/AddAttributeModel.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/AddAttributeModel.java Sat Feb 20 12:14:16 2010
@@ -21,11 +21,14 @@
package org.apache.tiles.template;
+import java.io.IOException;
+
import org.apache.tiles.ArrayStack;
import org.apache.tiles.Attribute;
import org.apache.tiles.Expression;
import org.apache.tiles.ListAttribute;
import org.apache.tiles.request.Request;
+import org.apache.tiles.template.body.ModelBody;
/**
* <p>
@@ -85,20 +88,23 @@
* expression, or body.
* @param expression The expression to calculate the value from. Use this
* parameter, or value, or body.
- * @param body The body of the tag. Use this parameter, or value, or
- * expression.
* @param role A comma-separated list of roles. If present, the attribute
* will be rendered only if the current user belongs to one of the roles.
* @param type The type (renderer) of the attribute.
* @param request TODO
- *
+ * @param modelBody TODO
* @since 2.2.0
*/
- public void execute(Object value, String expression,
- String body, String role, String type, Request request) {
+ public void execute(Object value, String expression, String role,
+ String type, Request request, ModelBody modelBody)
+ throws IOException {
+ Attribute attribute = new Attribute();
ArrayStack<Object> composeStack = ComposeStackUtil.getComposeStack(request);
- addAttributeToList(new Attribute(), composeStack, value, expression,
- body, role, type);
+ composeStack.push(attribute);
+ String body = modelBody.evaluateAsString();
+ attribute = (Attribute) composeStack.pop();
+ addAttributeToList(attribute, composeStack, value, expression, body,
+ role, type);
}
/**
Modified: tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/PutAttributeModel.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/PutAttributeModel.java?rev=912109&r1=912108&r2=912109&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/PutAttributeModel.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/PutAttributeModel.java Sat Feb 20 12:14:16 2010
@@ -21,6 +21,8 @@
package org.apache.tiles.template;
+import java.io.IOException;
+
import org.apache.tiles.ArrayStack;
import org.apache.tiles.Attribute;
import org.apache.tiles.AttributeContext;
@@ -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>
@@ -116,25 +119,27 @@
* expression, or body.
* @param expression The expression to calculate the value from. Use this
* parameter, or value, or body.
- * @param body The body of the tag. Use this parameter, or value, or
- * expression.
* @param role A comma-separated list of roles. If present, the attribute
* will be rendered only if the current user belongs to one of the roles.
* @param type The type (renderer) of the attribute.
* @param cascade If <code>true</code> the attribute will be cascaded to all nested attributes.
* @param request TODO
+ * @param modelBody TODO
* @param container The Tiles container to use.
* @param composeStack The composing stack.
- *
* @since 2.2.0
*/
public void execute(String name, Object value,
- String expression, String body, String role, String type,
- boolean cascade, Request request) {
- TilesContainer container = TilesAccess.getCurrentContainer(request);
+ String expression, String role, String type, boolean cascade,
+ Request request, ModelBody modelBody) throws IOException {
ArrayStack<Object> composeStack = ComposeStackUtil.getComposeStack(request);
- putAttributeInParent(new Attribute(), container, composeStack, name,
- value, expression, body, role, type, cascade, request);
+ Attribute attribute = new Attribute();
+ composeStack.push(attribute);
+ String currentBody = modelBody.evaluateAsString();
+ TilesContainer container = TilesAccess.getCurrentContainer(request);
+ attribute = (Attribute) composeStack.pop();
+ putAttributeInParent(attribute, container, composeStack, name,
+ value, expression, currentBody, role, type, cascade, request);
}
/**
Added: tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/body/AbstractModelBody.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/body/AbstractModelBody.java?rev=912109&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/body/AbstractModelBody.java (added)
+++ tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/body/AbstractModelBody.java Sat Feb 20 12:14:16 2010
@@ -0,0 +1,48 @@
+package org.apache.tiles.template.body;
+
+import java.io.IOException;
+import java.io.StringWriter;
+import java.io.Writer;
+
+public abstract class AbstractModelBody implements ModelBody {
+
+ private Writer defaultWriter;
+
+ public AbstractModelBody(Writer defaultWriter) {
+ this.defaultWriter = defaultWriter;
+ }
+
+ @Override
+ public void evaluate() throws IOException {
+ evaluate(defaultWriter);
+ }
+
+ @Override
+ public String evaluateAsString() throws IOException {
+ StringWriter writer = new StringWriter();
+ try {
+ evaluate(writer);
+ } finally {
+ writer.close();
+ }
+ String body = writer.toString();
+ if (body != null) {
+ body = body.replaceAll("^\\s*|\\s*$", "");
+ if (body.length() <= 0) {
+ body = null;
+ }
+ }
+ return body;
+ }
+
+ @Override
+ public void evaluateWithoutWriting() throws IOException {
+ NullWriter writer = new NullWriter();
+ try {
+ evaluate(writer);
+ } finally {
+ writer.close();
+ }
+ }
+
+}
Propchange: tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/body/AbstractModelBody.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/body/AbstractModelBody.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Added: tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/body/ModelBody.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/body/ModelBody.java?rev=912109&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/body/ModelBody.java (added)
+++ tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/body/ModelBody.java Sat Feb 20 12:14:16 2010
@@ -0,0 +1,15 @@
+package org.apache.tiles.template.body;
+
+import java.io.IOException;
+import java.io.Writer;
+
+public interface ModelBody {
+
+ String evaluateAsString() throws IOException;
+
+ void evaluateWithoutWriting() throws IOException;
+
+ void evaluate() throws IOException;
+
+ void evaluate(Writer writer) throws IOException;
+}
Propchange: tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/body/ModelBody.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/body/ModelBody.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Copied: tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/body/NullWriter.java (from r903407, tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/io/NullWriter.java)
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/body/NullWriter.java?p2=tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/body/NullWriter.java&p1=tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/io/NullWriter.java&r1=903407&r2=912109&rev=912109&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/io/NullWriter.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/body/NullWriter.java Sat Feb 20 12:14:16 2010
@@ -19,7 +19,7 @@
* under the License.
*/
-package org.apache.tiles.freemarker.io;
+package org.apache.tiles.template.body;
import java.io.Writer;
Modified: tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/AddAttributeModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/AddAttributeModelTest.java?rev=912109&r1=912108&r2=912109&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/AddAttributeModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/AddAttributeModelTest.java Sat Feb 20 12:14:16 2010
@@ -24,6 +24,7 @@
import static org.easymock.classextension.EasyMock.*;
import static org.junit.Assert.*;
+import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -32,6 +33,7 @@
import org.apache.tiles.Attribute;
import org.apache.tiles.ListAttribute;
import org.apache.tiles.request.Request;
+import org.apache.tiles.template.body.ModelBody;
import org.junit.Before;
import org.junit.Test;
@@ -122,11 +124,13 @@
/**
* Test method for {@link org.apache.tiles.template.AddAttributeModel
* #execute(java.lang.Object, java.lang.String, java.lang.String, java.lang.String,
- * java.lang.String, Request)}.
+ * Request, ModelBody)}.
+ * @throws IOException If something goes wrong.
*/
@Test
- public void testExecute() {
+ public void testExecute() throws IOException {
Request request = createMock(Request.class);
+ ModelBody modelBody = createMock(ModelBody.class);
ArrayStack<Object> composeStack = new ArrayStack<Object>();
ListAttribute listAttribute = new ListAttribute();
Attribute attribute;
@@ -135,10 +139,12 @@
requestScope.put(ComposeStackUtil.COMPOSE_STACK_ATTRIBUTE_NAME, composeStack);
expect(request.getContext("request")).andReturn(requestScope).times(2);
+ expect(modelBody.evaluateAsString()).andReturn(null);
+ expect(modelBody.evaluateAsString()).andReturn("myBody");
- replay(request);
- model.execute("myValue", "myExpression", "myBody", "myRole",
- "myType", request);
+ replay(request, modelBody);
+ model.execute("myValue", "myExpression", "myRole", "myType",
+ request, modelBody);
List<Attribute> attributes = listAttribute.getValue();
assertEquals(1, attributes.size());
attribute = attributes.iterator().next();
@@ -153,8 +159,8 @@
composeStack.push(listAttribute);
composeStack.push(attribute);
- model.execute(null, "myExpression", "myBody", "myRole", "myType",
- request);
+ model.execute(null, "myExpression", "myRole", "myType", request,
+ modelBody);
attributes = listAttribute.getValue();
assertEquals(1, attributes.size());
attribute = attributes.iterator().next();
@@ -163,7 +169,7 @@
.getExpression());
assertEquals("myRole", attribute.getRole());
assertEquals("myType", attribute.getRenderer());
- verify(request);
+ verify(request, modelBody);
}
}
Modified: tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/PutAttributeModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/PutAttributeModelTest.java?rev=912109&r1=912108&r2=912109&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/PutAttributeModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/PutAttributeModelTest.java Sat Feb 20 12:14:16 2010
@@ -25,6 +25,7 @@
import static org.easymock.classextension.EasyMock.*;
import static org.junit.Assert.*;
+import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
@@ -36,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;
@@ -148,12 +150,14 @@
/**
* Test method for {@link org.apache.tiles.template.PutAttributeModel
* #execute(String, Object, String, String, String,
- * String, boolean, Request)}.
+ * boolean, Request, ModelBody)}.
+ * @throws IOException If something goes wrong.
*/
@Test
- public void testExecuteListAttribute() {
+ public void testExecuteListAttribute() throws IOException {
TilesContainer container = createMock(TilesContainer.class);
Request request = createMock(Request.class);
+ ModelBody modelBody = createMock(ModelBody.class);
AttributeContext attributeContext = createMock(AttributeContext.class);
ArrayStack<Object> composeStack = new ArrayStack<Object>();
ListAttribute listAttribute = new ListAttribute();
@@ -167,10 +171,11 @@
expect(request.getContext("request")).andReturn(requestScope).anyTimes();
expect(container.getAttributeContext(request)).andReturn(attributeContext);
attributeContext.putAttribute(eq("myName"), (Attribute) notNull(), eq(false));
+ expect(modelBody.evaluateAsString()).andReturn(null);
- replay(container, attributeContext, request, applicationContext);
- model.execute("myName", "myValue", "myExpression", "myBody",
- "myRole", "myType", false, request);
- verify(container, attributeContext, request, applicationContext);
+ replay(container, attributeContext, request, applicationContext, modelBody);
+ model.execute("myName", "myValue", "myExpression", "myRole",
+ "myType", false, request, modelBody);
+ verify(container, attributeContext, request, applicationContext, modelBody);
}
}
Added: tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/VelocityModelBody.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/VelocityModelBody.java?rev=912109&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/VelocityModelBody.java (added)
+++ tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/VelocityModelBody.java Sat Feb 20 12:14:16 2010
@@ -0,0 +1,27 @@
+package org.apache.tiles.velocity;
+
+import java.io.IOException;
+import java.io.Writer;
+
+import org.apache.tiles.template.body.AbstractModelBody;
+import org.apache.velocity.context.InternalContextAdapter;
+import org.apache.velocity.runtime.parser.node.ASTBlock;
+
+public class VelocityModelBody extends AbstractModelBody {
+
+ private ASTBlock body;
+
+ private InternalContextAdapter context;
+
+ public VelocityModelBody(InternalContextAdapter context, ASTBlock body, Writer defaultWriter) {
+ super(defaultWriter);
+ this.context = context;
+ this.body = body;
+ }
+
+ @Override
+ public void evaluate(Writer writer) throws IOException {
+ body.render(context, writer);
+ }
+
+}
Propchange: tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/VelocityModelBody.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/VelocityModelBody.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
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=912109&r1=912108&r2=912109&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 12:14:16 2010
@@ -21,25 +21,19 @@
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.AddAttributeModel;
-import org.apache.velocity.context.InternalContextAdapter;
+import org.apache.tiles.template.body.ModelBody;
/**
* Wraps {@link AddAttributeModel} to be used in Velocity. For the list of
* parameters, see {@link AddAttributeModel#start(java.util.Stack)},
* {@link AddAttributeModel#end(java.util.Stack, Object, String, String, String, String)}
* and
- * {@link AddAttributeModel#execute(java.util.Stack, Object, String, String, String, String)}
+ * {@link AddAttributeModel#execute(java.util.Stack, Object, String, String, String, ModelBody)}
*
* @version $Rev$ $Date$
* @since 2.2.2
@@ -76,29 +70,11 @@
return "tiles_addAttribute";
}
- /** {@inheritDoc} */
@Override
- protected void end(InternalContextAdapter context, Writer writer,
- Map<String, Object> params, String body,
- HttpServletRequest request, HttpServletResponse response,
- ServletContext servletContext) {
- Request currentRequest = VelocityRequest.createVelocityRequest(
- ServletUtil.getApplicationContext(servletContext), request,
- response, context, writer);
- model.end(params.get("value"), (String) params.get("expression"), body,
+ protected void execute(Map<String, Object> params, Request request,
+ ModelBody modelBody) throws IOException {
+ model.execute(params.get("value"), (String) params.get("expression"),
(String) params.get("role"), (String) params.get("type"),
- currentRequest);
+ request, modelBody);
}
-
- /** {@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);
- }
-
}
Modified: 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/BodyBlockDirective.java?rev=912109&r1=912108&r2=912109&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/BodyBlockDirective.java Sat Feb 20 12:14:16 2010
@@ -29,9 +29,15 @@
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.body.ModelBody;
+import org.apache.tiles.velocity.VelocityModelBody;
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.ASTBlock;
import org.apache.velocity.runtime.parser.node.Node;
import org.apache.velocity.tools.view.ViewContext;
@@ -61,42 +67,15 @@
HttpServletRequest request = viewContext.getRequest();
HttpServletResponse response = viewContext.getResponse();
ServletContext servletContext = viewContext.getServletContext();
- start(context, writer, params, request, response, servletContext);
- String body = VelocityUtil.getBodyAsString(context, node);
- end(context, writer, params, body, request, response, servletContext);
+ Request currentRequest = VelocityRequest.createVelocityRequest(
+ ServletUtil.getApplicationContext(servletContext), request,
+ response, context, writer);
+ ASTBlock block = (ASTBlock) node.jjtGetChild(1);
+ ModelBody modelBody = new VelocityModelBody(context, block, writer);
+ execute(params, currentRequest, modelBody);
return true;
}
- /**
- * Starts the directive, before evaluating the body.
- *
- * @param context The Velocity context.
- * @param writer The writer user to write the result.
- * @param params The parameters got from the first node of the directive.
- * @param request The HTTP request.
- * @param response The HTTP response.
- * @param servletContext The servlet context.
- * @since 2.2.2
- */
- protected abstract void start(InternalContextAdapter context, Writer writer,
- Map<String, Object> params, HttpServletRequest request,
- HttpServletResponse response, ServletContext servletContext);
-
- /**
- * Ends the directive, after evaluating the body.
- *
- * @param context The Velocity context.
- * @param writer The writer user to write the result.
- * @param params The parameters got from the first node of the directive.
- * @param body The body contained in this directive, as a string.
- * @param request The HTTP request.
- * @param response The HTTP response.
- * @param servletContext The servlet context.
- * @throws IOException If something goes wrong when finishing this directive.
- * @since 2.2.2
- */
- protected abstract void end(InternalContextAdapter context, Writer writer,
- Map<String, Object> params, String body,
- HttpServletRequest request, HttpServletResponse response, ServletContext servletContext)
- throws IOException;
+ protected abstract void execute(Map<String, Object> params,
+ Request request, ModelBody modelBody) throws IOException;
}
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=912109&r1=912108&r2=912109&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 12:14:16 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.PutAttributeModel;
+import org.apache.tiles.template.body.ModelBody;
import org.apache.tiles.velocity.context.VelocityUtil;
-import org.apache.velocity.context.InternalContextAdapter;
/**
* Wraps {@link PutAttributeModel} to be used in Velocity. For the list of
@@ -78,31 +72,13 @@
return "tiles_putAttribute";
}
- /** {@inheritDoc} */
@Override
- protected void end(InternalContextAdapter context, Writer writer,
- Map<String, Object> params, String body,
- HttpServletRequest request, HttpServletResponse response,
- ServletContext servletContext) {
- Request currentRequest = VelocityRequest.createVelocityRequest(
- ServletUtil.getApplicationContext(servletContext), request,
- response, context, writer);
- model.end((String) params.get("name"), params.get("value"),
- (String) params.get("expression"), body, (String) params
- .get("role"), (String) params.get("type"),
- VelocityUtil.toSimpleBoolean((Boolean) params.get("cascade"),
- false), currentRequest);
+ protected void execute(Map<String, Object> params, Request request,
+ ModelBody modelBody) throws IOException {
+ model.execute((String) params.get("name"), params.get("value"),
+ (String) params.get("expression"), (String) params.get("role"),
+ (String) params.get("type"), VelocityUtil.toSimpleBoolean(
+ (Boolean) params.get("cascade"), false), request,
+ modelBody);
}
-
- /** {@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);
- }
-
}
Modified: tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/AddAttributeDirectiveTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/AddAttributeDirectiveTest.java?rev=912109&r1=912108&r2=912109&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/AddAttributeDirectiveTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/AddAttributeDirectiveTest.java Sat Feb 20 12:14:16 2010
@@ -24,19 +24,13 @@
import static org.easymock.EasyMock.*;
import static org.easymock.classextension.EasyMock.*;
-import java.io.Writer;
+import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.util.ApplicationAccess;
-import org.apache.tiles.request.velocity.VelocityRequest;
+import org.apache.tiles.request.Request;
import org.apache.tiles.template.AddAttributeModel;
-import org.apache.velocity.context.InternalContextAdapter;
+import org.apache.tiles.template.body.ModelBody;
import org.junit.Before;
import org.junit.Test;
@@ -65,50 +59,23 @@
}
/**
- * Test method for {@link AddAttributeDirective#start(InternalContextAdapter,
- * Writer, Map, HttpServletRequest, HttpServletResponse, ServletContext)}.
+ * Test method for
+ * {@link AddAttributeDirective#execute(Map, org.apache.tiles.request.Request, org.apache.tiles.template.body.ModelBody)}
+ * .
+ * @throws IOException If something goes wrong.
*/
@Test
- public void testStart() {
- HttpServletRequest request = createMock(HttpServletRequest.class);
- HttpServletResponse response = createMock(HttpServletResponse.class);
- InternalContextAdapter velocityContext = createMock(InternalContextAdapter.class);
+ public void testExecute() throws IOException {
+ Request request = createMock(Request.class);
Map<String, Object> params = createParams();
- Writer writer = createMock(Writer.class);
- ServletContext servletContext = createMock(ServletContext.class);
- ApplicationContext applicationContext = createMock(ApplicationContext.class);
-
- expect(servletContext.getAttribute(ApplicationAccess.APPLICATION_CONTEXT_ATTRIBUTE))
- .andReturn(applicationContext);
- tModel.start(isA(VelocityRequest.class));
-
- replay(tModel, request, response, velocityContext, writer, servletContext, applicationContext);
- model.start(velocityContext, writer, params, request, response, servletContext);
- verify(tModel, request, response, velocityContext, writer, servletContext, applicationContext);
- }
+ ModelBody modelBody = createMock(ModelBody.class);
- /**
- * Test method for {@link AddAttributeDirective#end(InternalContextAdapter,
- * Writer, Map, String, HttpServletRequest, HttpServletResponse, ServletContext)}.
- */
- @Test
- public void testEnd() {
- HttpServletRequest request = createMock(HttpServletRequest.class);
- HttpServletResponse response = createMock(HttpServletResponse.class);
- InternalContextAdapter velocityContext = createMock(InternalContextAdapter.class);
- Map<String, Object> params = createParams();
- Writer writer = createMock(Writer.class);
- ServletContext servletContext = createMock(ServletContext.class);
- ApplicationContext applicationContext = createMock(ApplicationContext.class);
-
- expect(servletContext.getAttribute(ApplicationAccess.APPLICATION_CONTEXT_ATTRIBUTE))
- .andReturn(applicationContext);
- tModel.end(eq("myValue"), eq("myExpression"), eq("myBody"),
- eq("myRole"), eq("myType"), isA(VelocityRequest.class));
-
- replay(tModel, request, response, velocityContext, writer, servletContext);
- model.end(velocityContext, writer, params, "myBody", request, response, servletContext);
- verify(tModel, request, response, velocityContext);
+ tModel.execute("myValue", "myExpression", "myRole", "myType", request,
+ modelBody);
+
+ replay(tModel, request, modelBody);
+ model.execute(params, request, modelBody);
+ verify(tModel, 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=912109&r1=912108&r2=912109&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 12:14:16 2010
@@ -26,7 +26,6 @@
import static org.junit.Assert.*;
import java.io.IOException;
-import java.io.StringWriter;
import java.io.Writer;
import java.lang.reflect.Method;
import java.util.Map;
@@ -35,6 +34,10 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.util.ApplicationAccess;
+import org.apache.tiles.request.velocity.VelocityRequest;
+import org.apache.tiles.velocity.VelocityModelBody;
import org.apache.velocity.context.InternalContextAdapter;
import org.apache.velocity.runtime.directive.DirectiveConstants;
import org.apache.velocity.runtime.parser.node.ASTBlock;
@@ -91,6 +94,7 @@
ASTMap astMap = createMock(ASTMap.class);
ASTBlock block = createMock(ASTBlock.class);
Map<String, Object> params = createMock(Map.class);
+ ApplicationContext applicationContext = createMock(ApplicationContext.class);
expect(context.getInternalUserContext()).andReturn(viewContext);
expect(viewContext.getRequest()).andReturn(request);
@@ -99,13 +103,17 @@
expect(node.jjtGetChild(0)).andReturn(astMap);
expect(astMap.value(context)).andReturn(params);
expect(node.jjtGetChild(1)).andReturn(block);
- expect(block.render(eq(context), isA(StringWriter.class))).andReturn(true);
+ expect(servletContext.getAttribute(ApplicationAccess.APPLICATION_CONTEXT_ATTRIBUTE))
+ .andReturn(applicationContext);
- directive.start(context, writer, params, request, response, servletContext);
- directive.end(context, writer, params, null, request, response, servletContext);
+ directive.execute(eq(params), isA(VelocityRequest.class), isA(VelocityModelBody.class));
- replay(directive, context, writer, node, viewContext, servletContext, request, response, astMap, params, block);
+ replay(directive, context, writer, node, viewContext,
+ applicationContext, servletContext, request, response, astMap,
+ params, block);
directive.render(context, writer, node);
- verify(directive, context, writer, node, viewContext, servletContext, request, response, astMap, params, block);
+ verify(directive, context, writer, node, viewContext,
+ applicationContext, servletContext, request, response, astMap,
+ params, block);
}
}
Modified: tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/PutAttributeDirectiveTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/PutAttributeDirectiveTest.java?rev=912109&r1=912108&r2=912109&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/PutAttributeDirectiveTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/PutAttributeDirectiveTest.java Sat Feb 20 12:14:16 2010
@@ -21,22 +21,15 @@
package org.apache.tiles.velocity.template;
-import static org.easymock.EasyMock.*;
import static org.easymock.classextension.EasyMock.*;
-import java.io.Writer;
+import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.util.ApplicationAccess;
-import org.apache.tiles.request.velocity.VelocityRequest;
+import org.apache.tiles.request.Request;
import org.apache.tiles.template.PutAttributeModel;
-import org.apache.velocity.context.InternalContextAdapter;
+import org.apache.tiles.template.body.ModelBody;
import org.junit.Before;
import org.junit.Test;
@@ -64,53 +57,24 @@
}
/**
- * Test method for {@link PutAttributeDirective#start(InternalContextAdapter,
- * Writer, Map, HttpServletRequest, HttpServletResponse, ServletContext)}.
+ * Test method for
+ * {@link PutAttributeDirective#execute(Map, org.apache.tiles.request.Request, org.apache.tiles.template.body.ModelBody)}
+ * .
+ * @throws IOException If something goes wrong.
*/
@Test
- public void testStart() {
- HttpServletRequest request = createMock(HttpServletRequest.class);
- HttpServletResponse response = createMock(HttpServletResponse.class);
- InternalContextAdapter velocityContext = createMock(InternalContextAdapter.class);
- Writer writer = createMock(Writer.class);
- ServletContext servletContext = createMock(ServletContext.class);
+ public void testExecute() throws IOException {
+ Request request = createMock(Request.class);
Map<String, Object> params = createParams();
- ApplicationContext applicationContext = createMock(ApplicationContext.class);
+ ModelBody modelBody = createMock(ModelBody.class);
- expect(servletContext.getAttribute(ApplicationAccess.APPLICATION_CONTEXT_ATTRIBUTE))
- .andReturn(applicationContext);
- tModel.start(isA(VelocityRequest.class));
+ tModel.execute("myName", "myValue", "myExpression", "myRole", "myType",
+ false, request, modelBody);
- replay(tModel, request, response, velocityContext, writer, servletContext, applicationContext);
+ replay(tModel, request, modelBody);
initializeModel();
- model.start(velocityContext, writer, params, request, response, servletContext);
- verify(tModel, request, response, velocityContext, writer, servletContext, applicationContext);
- }
-
- /**
- * Test method for {@link PutAttributeDirective#end(InternalContextAdapter,
- * Writer, Map, String, HttpServletRequest, HttpServletResponse, ServletContext)}.
- */
- @Test
- public void testEnd() {
- HttpServletRequest request = createMock(HttpServletRequest.class);
- HttpServletResponse response = createMock(HttpServletResponse.class);
- InternalContextAdapter velocityContext = createMock(InternalContextAdapter.class);
- Writer writer = createMock(Writer.class);
- ServletContext servletContext = createMock(ServletContext.class);
- Map<String, Object> params = createParams();
- ApplicationContext applicationContext = createMock(ApplicationContext.class);
-
- expect(servletContext.getAttribute(ApplicationAccess.APPLICATION_CONTEXT_ATTRIBUTE))
- .andReturn(applicationContext);
- tModel.end(eq("myName"), eq("myValue"),
- eq("myExpression"), eq("myBody"), eq("myRole"), eq("myType"),
- eq(false), isA(VelocityRequest.class));
-
- replay(tModel, request, response, velocityContext, writer, servletContext, applicationContext);
- initializeModel();
- model.end(velocityContext, writer, params, "myBody", request, response, servletContext);
- verify(tModel, request, response, velocityContext, writer, servletContext, applicationContext);
+ model.execute(params, request, modelBody);
+ verify(tModel, request, modelBody);
}
/**