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 2009/11/17 20:56:12 UTC
svn commit: r881468 - in /tiles/sandbox/trunk/tiles3:
tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/
tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/
tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/ tiles-t...
Author: apetrelli
Date: Tue Nov 17 19:56:11 2009
New Revision: 881468
URL: http://svn.apache.org/viewvc?rev=881468&view=rev
Log:
TILESSB-14
Converted PutListAttributeModel.
Modified:
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutListAttributeFMModel.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/PutListAttributeTag.java
tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/PutListAttributeModel.java
tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/PutListAttributeModelTest.java
tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutListAttributeVModel.java
tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/PutListAttributeVModelTest.java
Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutListAttributeFMModel.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutListAttributeFMModel.java?rev=881468&r1=881467&r2=881468&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutListAttributeFMModel.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutListAttributeFMModel.java Tue Nov 17 19:56:11 2009
@@ -24,7 +24,6 @@
import java.io.IOException;
import java.util.Map;
-import org.apache.tiles.ArrayStack;
import org.apache.tiles.TilesContainer;
import org.apache.tiles.freemarker.context.FreeMarkerTilesRequestContext;
import org.apache.tiles.freemarker.context.FreeMarkerUtil;
@@ -40,8 +39,8 @@
/**
* Wraps {@link PutListAttributeModel} to be used in FreeMarker. For the list of
* parameters, see
- * {@link PutListAttributeModel#start(ArrayStack, String, boolean)} and
- * {@link PutListAttributeModel#end(org.apache.tiles.TilesContainer, ArrayStack, String, boolean, Request)}
+ * {@link PutListAttributeModel#start(String, boolean, Request)} and
+ * {@link PutListAttributeModel#end(org.apache.tiles.TilesContainer, String, boolean, Request)}
* .
*
* @version $Rev$ $Date$
@@ -69,18 +68,17 @@
@SuppressWarnings("unchecked")
public void execute(Environment env, Map params, TemplateModel[] loopVars,
TemplateDirectiveBody body) throws TemplateException, IOException {
- Map<String, TemplateModel> parms = (Map<String, TemplateModel>) params;
- ArrayStack<Object> composeStack = FreeMarkerUtil.getComposeStack(env);
+ Map<String, TemplateModel> parms = params;
TilesContainer container = FreeMarkerUtil.getCurrentContainer(env);
Request request = FreeMarkerTilesRequestContext
.createServletFreemarkerRequest(container
.getApplicationContext(), env);
- model.start(composeStack,
- FreeMarkerUtil.getAsString(parms.get("role")), FreeMarkerUtil
- .getAsBoolean(parms.get("inherit"), false));
+ model.start(FreeMarkerUtil.getAsString(parms.get("role")),
+ FreeMarkerUtil
+ .getAsBoolean(parms.get("inherit"), false), request);
FreeMarkerUtil.evaluateBody(body);
- model.end(container, composeStack, FreeMarkerUtil.getAsString(parms
+ model.end(container, FreeMarkerUtil.getAsString(parms
.get("name")), FreeMarkerUtil.getAsBoolean(
- parms.get("cascade"), false), request);
+ parms.get("cascade"), false), request);
}
}
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=881468&r1=881467&r2=881468&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 Tue Nov 17 19:56:11 2009
@@ -34,11 +34,9 @@
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
-import org.apache.tiles.ArrayStack;
import org.apache.tiles.TilesContainer;
import org.apache.tiles.access.TilesAccess;
import org.apache.tiles.freemarker.context.FreeMarkerTilesRequestContext;
-import org.apache.tiles.freemarker.context.FreeMarkerUtil;
import org.apache.tiles.freemarker.io.NullWriter;
import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.servlet.context.ServletUtil;
@@ -95,10 +93,10 @@
private ObjectWrapper objectWrapper;
/**
- * @throws java.lang.Exception If something goes wrong.
+ * Sets up the model.
*/
@Before
- public void setUp() throws Exception {
+ public void setUp() {
template = createMock(Template.class);
model = createMock(TemplateHashModel.class);
expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
@@ -122,8 +120,6 @@
expect(container.getApplicationContext()).andReturn(applicationContext);
HttpServletRequest request = createMock(HttpServletRequest.class);
- ArrayStack<Object> composeStack = new ArrayStack<Object>();
- expect(request.getAttribute(FreeMarkerUtil.COMPOSE_STACK_ATTRIBUTE_NAME)).andReturn(composeStack);
expect(request.getAttribute(ServletUtil.CURRENT_CONTAINER_ATTRIBUTE_NAME)).andReturn(null);
request.setAttribute(ServletUtil.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
replay(request);
@@ -146,9 +142,8 @@
params.put("inherit", objectWrapper.wrap(false));
params.put("cascade", objectWrapper.wrap(false));
- tModel.start(composeStack, "myRole", false);
- tModel.end(eq(container), eq(composeStack), eq("myName"), eq(false),
- isA(FreeMarkerTilesRequestContext.class));
+ tModel.start(eq("myRole"), eq(false), isA(FreeMarkerTilesRequestContext.class));
+ tModel.end(eq(container), eq("myName"), eq(false), isA(FreeMarkerTilesRequestContext.class));
body.render(isA(NullWriter.class));
replay(tModel, body, container, applicationContext);
Modified: tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/PutListAttributeTag.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/PutListAttributeTag.java?rev=881468&r1=881467&r2=881468&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/PutListAttributeTag.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/PutListAttributeTag.java Tue Nov 17 19:56:11 2009
@@ -213,9 +213,9 @@
Request request = JspTilesRequestContext.createServletJspRequest(
currentContainer.getApplicationContext(),
(PageContext) jspContext);
- model.start(JspUtil.getComposeStack(jspContext), role, inherit);
+ model.start(role, inherit, request);
JspUtil.evaluateFragment(getJspBody());
- model.end(currentContainer, JspUtil.getComposeStack(jspContext), name,
- cascade, request);
+ model.end(currentContainer, name, cascade,
+ 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=881468&r1=881467&r2=881468&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 Tue Nov 17 19:56:11 2009
@@ -45,15 +45,17 @@
/**
* Starts the operation.
- *
- * @param composeStack The composing stack.
* @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 inherit If <code>true</code> the list contained in the in the same
* attribute of the parent definition will be extended.
+ * @param request TODO
+ * @param composeStack The composing stack.
+ *
* @since 2.2.0
*/
- public void start(ArrayStack<Object> composeStack, String role, boolean inherit) {
+ public void start(String role, boolean inherit, Request request) {
+ ArrayStack<Object> composeStack = ComposeStackUtil.getComposeStack(request);
ListAttribute listAttribute = new ListAttribute();
listAttribute.setRole(role);
listAttribute.setInherit(inherit);
@@ -64,14 +66,15 @@
* Ends the operation.
*
* @param container The Tiles container to use.
- * @param composeStack The composing stack.
* @param name The name of the attribute to put.
* @param cascade If <code>true</code> the attribute will be cascaded to all nested attributes.
* @param request TODO
+ * @param composeStack The composing stack.
* @since 2.2.0
*/
- public void end(TilesContainer container, ArrayStack<Object> composeStack,
- String name, boolean cascade, Request request) {
+ public void end(TilesContainer container, String name,
+ boolean cascade, Request request) {
+ ArrayStack<Object> composeStack = ComposeStackUtil.getComposeStack(request);
ListAttribute listAttribute = (ListAttribute) composeStack.pop();
AttributeContext attributeContext = null;
if (!composeStack.isEmpty()) {
Modified: tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/PutListAttributeModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/PutListAttributeModelTest.java?rev=881468&r1=881467&r2=881468&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/PutListAttributeModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/PutListAttributeModelTest.java Tue Nov 17 19:56:11 2009
@@ -22,8 +22,12 @@
package org.apache.tiles.template;
import static org.easymock.EasyMock.*;
+import static org.easymock.classextension.EasyMock.*;
import static org.junit.Assert.*;
+import java.util.HashMap;
+import java.util.Map;
+
import org.apache.tiles.ArrayStack;
import org.apache.tiles.AttributeContext;
import org.apache.tiles.ListAttribute;
@@ -53,20 +57,28 @@
}
/**
- * Test method for {@link org.apache.tiles.template.PutListAttributeModel#start(ArrayStack, String, boolean)}.
+ * Test method for {@link org.apache.tiles.template.PutListAttributeModel#start(String, boolean, Request)}.
*/
@Test
public void testStart() {
ArrayStack<Object> composeStack = new ArrayStack<Object>();
- model.start(composeStack, "myRole", false);
+ Map<String, Object> requestScope = new HashMap<String, Object>();
+ Request request = createMock(Request.class);
+ requestScope.put(ComposeStackUtil.COMPOSE_STACK_ATTRIBUTE_NAME, composeStack);
+
+ expect(request.getRequestScope()).andReturn(requestScope);
+
+ replay(request);
+ model.start("myRole", false, request);
assertEquals(1, composeStack.size());
ListAttribute listAttribute = (ListAttribute) composeStack.peek();
assertEquals("myRole", listAttribute.getRole());
+ verify(request);
}
/**
* Test method for {@link org.apache.tiles.template.PutListAttributeModel
- * #end(org.apache.tiles.TilesContainer, ArrayStack, String, boolean, Request)}.
+ * #end(org.apache.tiles.TilesContainer, String, boolean, Request)}.
*/
@Test
public void testEnd() {
@@ -76,12 +88,15 @@
ArrayStack<Object> composeStack = new ArrayStack<Object>();
ListAttribute listAttribute = new ListAttribute();
composeStack.push(listAttribute);
+ Map<String, Object> requestScope = new HashMap<String, Object>();
+ requestScope.put(ComposeStackUtil.COMPOSE_STACK_ATTRIBUTE_NAME, composeStack);
+ expect(request.getRequestScope()).andReturn(requestScope);
expect(container.getAttributeContext(request)).andReturn(attributeContext);
attributeContext.putAttribute("myName", listAttribute, false);
replay(container, attributeContext, request);
- model.end(container, composeStack, "myName", false, request);
+ model.end(container, "myName", false, request);
assertEquals(0, composeStack.size());
verify(container, attributeContext, request);
}
Modified: tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutListAttributeVModel.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutListAttributeVModel.java?rev=881468&r1=881467&r2=881468&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutListAttributeVModel.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutListAttributeVModel.java Tue Nov 17 19:56:11 2009
@@ -39,8 +39,8 @@
/**
* Wraps {@link PutListAttributeModel} to be used in Velocity. For the list of
* parameters, see
- * {@link PutListAttributeModel#start(java.util.Stack, String, boolean)}
- * AND {@link PutListAttributeModel#end(org.apache.tiles.TilesContainer, java.util.Stack, String, boolean, Request)}.
+ * {@link PutListAttributeModel#start(String, boolean, Request)}
+ * AND {@link PutListAttributeModel#end(org.apache.tiles.TilesContainer, String, boolean, Request)}.
*
* @version $Rev$ $Date$
* @since 2.2.0
@@ -81,10 +81,9 @@
.createVelocityRequest(container.getApplicationContext(),
request, response, velocityContext, null);
model.end(container,
- ServletUtil.getComposeStack(request), (String) params
+ (String) params
.get("name"), VelocityUtil.toSimpleBoolean(
- (Boolean) params.get("cascade"), false),
- currentRequest);
+ (Boolean) params.get("cascade"), false), currentRequest);
return VelocityUtil.EMPTY_RENDERABLE;
}
@@ -92,8 +91,12 @@
public void start(HttpServletRequest request, HttpServletResponse response,
Context velocityContext, Map<String, Object> params) {
VelocityUtil.getParameterStack(velocityContext).push(params);
- model.start(ServletUtil.getComposeStack(request), (String) params
- .get("role"), VelocityUtil.toSimpleBoolean((Boolean) params
- .get("inherit"), false));
+ TilesContainer container = ServletUtil.getCurrentContainer(
+ request, servletContext);
+ Request currentRequest = VelocityTilesRequestContext
+ .createVelocityRequest(container.getApplicationContext(),
+ request, response, velocityContext, null);
+ model.start((String) params.get("role"), VelocityUtil.toSimpleBoolean(
+ (Boolean) params.get("inherit"), false), currentRequest);
}
}
Modified: tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/PutListAttributeVModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/PutListAttributeVModelTest.java?rev=881468&r1=881467&r2=881468&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/PutListAttributeVModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/PutListAttributeVModelTest.java Tue Nov 17 19:56:11 2009
@@ -88,20 +88,21 @@
HttpServletResponse response = createMock(HttpServletResponse.class);
Context velocityContext = createMock(Context.class);
Map<String, Object> params = createParams();
- ArrayStack<Object> composeStack = new ArrayStack<Object>();
ArrayStack<Map<String, Object>> parameterMapStack = new ArrayStack<Map<String, Object>>();
+ TilesContainer container = createMock(TilesContainer.class);
+ ApplicationContext applicationContext = createMock(ApplicationContext.class);
- expect(request.getAttribute(ServletUtil.COMPOSE_STACK_ATTRIBUTE_NAME))
- .andReturn(composeStack);
+ expect(container.getApplicationContext()).andReturn(applicationContext);
+ expect(request.getAttribute(ServletUtil.CURRENT_CONTAINER_ATTRIBUTE_NAME)).andReturn(container);
expect(velocityContext.get(PARAMETER_MAP_STACK_KEY)).andReturn(parameterMapStack);
- tModel.start(composeStack, "myRole", false);
+ tModel.start(eq("myRole"), eq(false), isA(VelocityTilesRequestContext.class));
- replay(tModel, servletContext, request, response, velocityContext);
+ replay(tModel, servletContext, request, response, velocityContext, container, applicationContext);
initializeModel();
model.start(request, response, velocityContext, params);
assertEquals(1, parameterMapStack.size());
assertEquals(params, parameterMapStack.peek());
- verify(tModel, servletContext, request, response, velocityContext);
+ verify(tModel, servletContext, request, response, velocityContext, container, applicationContext);
}
/**
@@ -114,19 +115,16 @@
HttpServletRequest request = createMock(HttpServletRequest.class);
HttpServletResponse response = createMock(HttpServletResponse.class);
Context velocityContext = createMock(Context.class);
- TilesContainer container = createMock(TilesContainer.class);
- ArrayStack<Object> composeStack = new ArrayStack<Object>();
Map<String, Object> params = createParams();
ArrayStack<Map<String, Object>> parameterMapStack = new ArrayStack<Map<String, Object>>();
parameterMapStack.push(params);
+ TilesContainer container = createMock(TilesContainer.class);
ApplicationContext applicationContext = createMock(ApplicationContext.class);
expect(container.getApplicationContext()).andReturn(applicationContext);
- expect(request.getAttribute(ServletUtil.COMPOSE_STACK_ATTRIBUTE_NAME))
- .andReturn(composeStack);
expect(velocityContext.get(PARAMETER_MAP_STACK_KEY)).andReturn(parameterMapStack);
expect(request.getAttribute(ServletUtil.CURRENT_CONTAINER_ATTRIBUTE_NAME)).andReturn(container);
- tModel.end(eq(container), eq(composeStack), eq("myName"), eq(false), isA(VelocityTilesRequestContext.class));
+ tModel.end(eq(container), eq("myName"), eq(false), isA(VelocityTilesRequestContext.class));
replay(tModel, servletContext, container, request, response, velocityContext, applicationContext);
initializeModel();