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/14 14:40:33 UTC
svn commit: r836174 [1/5] - in /tiles/sandbox/trunk:
tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/freemarker/context/
tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/jsp/context/
tiles-request/tiles-request-veloc...
Author: apetrelli
Date: Sat Nov 14 13:40:31 2009
New Revision: 836174
URL: http://svn.apache.org/viewvc?rev=836174&view=rev
Log:
TILESSB-13
Moved request creation outside of the Tiles container.
Modified:
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerTilesRequestContext.java
tiles/sandbox/trunk/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/jsp/context/JspTilesRequestContext.java
tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/velocity/context/VelocityTilesRequestContext.java
tiles/sandbox/trunk/tiles3/tiles-api/src/main/java/org/apache/tiles/TilesContainer.java
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/impl/BasicTilesContainer.java
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/renderer/impl/DefinitionAttributeRenderer.java
tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/evaluator/impl/DirectAttributeEvaluatorTest.java
tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/impl/BasicTilesContainerTest.java
tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/DefinitionAttributeRendererTest.java
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/GetAsStringFMModel.java
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/ImportAttributeFMModel.java
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertAttributeFMModel.java
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModel.java
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertTemplateFMModel.java
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutAttributeFMModel.java
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/GetAsStringFMModelTest.java
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/ImportAttributeFMModelTest.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/GetAsStringTag.java
tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/ImportAttributeTag.java
tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertAttributeTag.java
tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertDefinitionTag.java
tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertTemplateTag.java
tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/PutAttributeTag.java
tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/PutListAttributeTag.java
tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/UseAttributeTag.java
tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/TilesDecorationFilter.java
tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/TilesDispatchServlet.java
tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/AttributeResolver.java
tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/DefaultAttributeResolver.java
tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/GetAsStringModel.java
tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/ImportAttributeModel.java
tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/InsertAttributeModel.java
tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/InsertDefinitionModel.java
tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/InsertTemplateModel.java
tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/PutAttributeModel.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/DefaultAttributeResolverTest.java
tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/GetAsStringModelTest.java
tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/ImportAttributeModelTest.java
tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/InsertAttributeModelTest.java
tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/InsertDefinitionModelTest.java
tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/InsertTemplateModelTest.java
tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/PutAttributeModelTest.java
tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/PutListAttributeModelTest.java
tiles/sandbox/trunk/tiles3/tiles-test-pom/tiles-test/src/main/java/org/apache/tiles/test/portlet/TestPortlet.java
tiles/sandbox/trunk/tiles3/tiles-test-pom/tiles-test/src/main/java/org/apache/tiles/test/servlet/SelectLocaleServlet.java
tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/GetAsStringVModel.java
tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/ImportAttributeVModel.java
tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertAttributeVModel.java
tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertDefinitionVModel.java
tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertTemplateVModel.java
tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutAttributeVModel.java
tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutListAttributeVModel.java
tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/VelocityStyleTilesTool.java
tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/GetAsStringVModelTest.java
tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/ImportAttributeVModelTest.java
tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/InsertAttributeVModelTest.java
tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/InsertDefinitionVModelTest.java
tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/InsertTemplateVModelTest.java
tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/PutAttributeVModelTest.java
tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/PutListAttributeVModelTest.java
tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/Tiles2ToolTest.java
tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/VelocityStyleTilesToolTest.java
Modified: tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerTilesRequestContext.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerTilesRequestContext.java?rev=836174&r1=836173&r2=836174&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerTilesRequestContext.java (original)
+++ tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerTilesRequestContext.java Sat Nov 14 13:40:31 2009
@@ -26,10 +26,16 @@
import java.io.Writer;
import java.util.Locale;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.Request;
+import org.apache.tiles.request.servlet.ServletTilesRequestContext;
import org.apache.tiles.request.util.TilesRequestContextWrapper;
import freemarker.core.Environment;
+import freemarker.ext.servlet.HttpRequestHashModel;
/**
* The FreeMarker-specific request context.
@@ -37,29 +43,44 @@
* @version $Rev$ $Date$
* @since 2.2.0
*/
-public class FreeMarkerTilesRequestContext extends TilesRequestContextWrapper implements Request {
+public class FreeMarkerTilesRequestContext extends TilesRequestContextWrapper
+ implements Request {
+
+ /**
+ * The FreeMarker current environment.
+ */
+ private Environment env;
- /**
- * The FreeMarker current environment.
- */
- private Environment env;
-
- /**
- * The request objects.
- */
- private transient Object[] requestObjects;
-
- /**
- * Constructor.
- *
- * @param enclosedRequest The request that exposes non-FreeMarker specific properties
- * @param env The FreeMarker environment.
- */
- public FreeMarkerTilesRequestContext(
- Request enclosedRequest, Environment env) {
- super(enclosedRequest);
- this.env = env;
- }
+ /**
+ * The request objects.
+ */
+ private transient Object[] requestObjects;
+
+ public static FreeMarkerTilesRequestContext createServletFreemarkerRequest(
+ ApplicationContext applicationContext, Environment env) {
+ HttpRequestHashModel requestModel = FreeMarkerRequestUtil
+ .getRequestHashModel(env);
+ HttpServletRequest request = requestModel.getRequest();
+ HttpServletResponse response = requestModel.getResponse();
+ Request enclosedRequest = new ServletTilesRequestContext(
+ applicationContext, (HttpServletRequest) request,
+ (HttpServletResponse) response);
+ return new FreeMarkerTilesRequestContext(enclosedRequest, env);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param enclosedRequest
+ * The request that exposes non-FreeMarker specific properties
+ * @param env
+ * The FreeMarker environment.
+ */
+ public FreeMarkerTilesRequestContext(Request enclosedRequest,
+ Environment env) {
+ super(enclosedRequest);
+ this.env = env;
+ }
/**
* Returns the environment object.
@@ -68,45 +89,45 @@
* @since 3.0.0
*/
public Environment getEnvironment() {
- return env;
- }
+ return env;
+ }
- /** {@inheritDoc} */
- @Override
+ /** {@inheritDoc} */
+ @Override
public Locale getRequestLocale() {
- return env.getLocale();
- }
+ return env.getLocale();
+ }
- /** {@inheritDoc} */
- @Override
+ /** {@inheritDoc} */
+ @Override
public void dispatch(String path) throws IOException {
- include(path);
- }
+ include(path);
+ }
- /** {@inheritDoc} */
- @Override
- public PrintWriter getPrintWriter() throws IOException {
- Writer writer = env.getOut();
- if (writer instanceof PrintWriter) {
- return (PrintWriter) writer;
- } else {
- return new PrintWriter(writer);
- }
- }
-
- /** {@inheritDoc} */
- @Override
- public Writer getWriter() throws IOException {
- return env.getOut();
- }
-
- /** {@inheritDoc} */
- @Override
- public Object[] getRequestObjects() {
- if (requestObjects == null) {
- requestObjects = new Object[1];
- requestObjects[0] = env;
- }
- return requestObjects;
- }
+ /** {@inheritDoc} */
+ @Override
+ public PrintWriter getPrintWriter() throws IOException {
+ Writer writer = env.getOut();
+ if (writer instanceof PrintWriter) {
+ return (PrintWriter) writer;
+ } else {
+ return new PrintWriter(writer);
+ }
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public Writer getWriter() throws IOException {
+ return env.getOut();
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public Object[] getRequestObjects() {
+ if (requestObjects == null) {
+ requestObjects = new Object[1];
+ requestObjects[0] = env;
+ }
+ return requestObjects;
+ }
}
Modified: tiles/sandbox/trunk/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/jsp/context/JspTilesRequestContext.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/jsp/context/JspTilesRequestContext.java?rev=836174&r1=836173&r2=836174&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/jsp/context/JspTilesRequestContext.java (original)
+++ tiles/sandbox/trunk/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/jsp/context/JspTilesRequestContext.java Sat Nov 14 13:40:31 2009
@@ -25,9 +25,13 @@
import java.io.Writer;
import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.PageContext;
+import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.Request;
+import org.apache.tiles.request.servlet.ServletTilesRequestContext;
import org.apache.tiles.request.servlet.ServletUtil;
import org.apache.tiles.request.util.TilesRequestContextWrapper;
@@ -50,6 +54,13 @@
*/
private Object[] requestObjects;
+ public static JspTilesRequestContext createServletJspRequest(ApplicationContext applicationContext, PageContext pageContext) {
+ return new JspTilesRequestContext(new ServletTilesRequestContext(
+ applicationContext, (HttpServletRequest) pageContext
+ .getRequest(), (HttpServletResponse) pageContext
+ .getResponse()), pageContext);
+ }
+
/**
* Constructor.
*
Modified: tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/velocity/context/VelocityTilesRequestContext.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/velocity/context/VelocityTilesRequestContext.java?rev=836174&r1=836173&r2=836174&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/velocity/context/VelocityTilesRequestContext.java (original)
+++ tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/velocity/context/VelocityTilesRequestContext.java Sat Nov 14 13:40:31 2009
@@ -30,7 +30,9 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.Request;
+import org.apache.tiles.request.servlet.ServletTilesRequestContext;
import org.apache.tiles.request.servlet.ServletUtil;
import org.apache.tiles.request.servlet.ExternalWriterHttpServletResponse;
import org.apache.tiles.request.util.TilesRequestContextWrapper;
@@ -148,4 +150,14 @@
}
return requestObjects;
}
+
+ public static Request createVelocityRequest(ApplicationContext applicationContext,
+ HttpServletRequest request, HttpServletResponse response,
+ Context velocityContext, Writer writer) {
+ Request servletRequest = new ServletTilesRequestContext(
+ applicationContext, request, response);
+ Request velocityRequest = new VelocityTilesRequestContext(
+ servletRequest, velocityContext, writer);
+ return velocityRequest;
+ }
}
Modified: tiles/sandbox/trunk/tiles3/tiles-api/src/main/java/org/apache/tiles/TilesContainer.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-api/src/main/java/org/apache/tiles/TilesContainer.java?rev=836174&r1=836173&r2=836174&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-api/src/main/java/org/apache/tiles/TilesContainer.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-api/src/main/java/org/apache/tiles/TilesContainer.java Sat Nov 14 13:40:31 2009
@@ -23,6 +23,7 @@
import java.io.IOException;
import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.Request;
/**
* An encapsulation of the tiles framework. This interface is
@@ -44,84 +45,82 @@
/**
* Retrive the attribute context of the current request.
- * @param requestItems the current request objects.
+ * @param request TODO
* @return map of the attributes in the current attribute context.
*/
- AttributeContext getAttributeContext(Object... requestItems);
+ AttributeContext getAttributeContext(Request request);
/**
* Starts a new context, where attribute values are stored independently
* from others.<br>
* When the use of the contexts is finished, call
- * {@link TilesContainer#endContext(Object...)}
+ * {@link TilesContainer#endContext(Request)}
+ * @param request TODO
*
- * @param requestItems the current request objects.
* @return The newly created context.
*/
- AttributeContext startContext(Object... requestItems);
+ AttributeContext startContext(Request request);
/**
* Ends a context, where attribute values are stored independently
* from others.<br>
* It must be called after a
- * {@link TilesContainer#startContext(Object...)} call.
- *
- * @param requestItems the current request objects.
+ * {@link TilesContainer#startContext(Request)} call.
+ * @param request TODO
*/
- void endContext(Object... requestItems);
+ void endContext(Request request);
/**
* Renders the current context, as it is.
+ * @param request TODO
*
- * @param requestItems the current request objects.
* @since 2.1.0
*/
- void renderContext(Object... requestItems);
+ void renderContext(Request request);
/**
* Executes a preparer.
*
* @param preparer The name of the preparer to execute.
- * @param requestItems the current request objects.
+ * @param request TODO
*/
- void prepare(String preparer, Object... requestItems);
+ void prepare(String preparer, Request request);
/**
* Render the given tiles request.
*
* @param definition the current definition.
- * @param requestItems the current request objects.
+ * @param request TODO
*/
- void render(String definition, Object... requestItems);
+ void render(String definition, Request request);
/**
* Render the given Attribute.
*
* @param attribute The attribute to render.
- * @param requestItems the current request objects.
+ * @param request TODO
* @throws IOException If something goes wrong during writing to the output.
* @since 2.1.2
*/
- void render(Attribute attribute, Object... requestItems)
+ void render(Attribute attribute, Request request)
throws IOException;
/**
* Evaluates the given attribute.
*
* @param attribute The attribute to evaluate.
- * @param requestItems the current request objects.
+ * @param request TODO
* @return The evaluated object.
* @since 2.1.0
*/
- Object evaluate(Attribute attribute, Object... requestItems);
+ Object evaluate(Attribute attribute, Request request);
/**
* Determine whether or not the definition exists.
*
* @param definition the name of the definition.
- * @param requestItems the current request objects.
- *
+ * @param request TODO
* @return true if the definition is found.
*/
- boolean isValidDefinition(String definition, Object... requestItems);
+ boolean isValidDefinition(String definition, Request request);
}
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/impl/BasicTilesContainer.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/impl/BasicTilesContainer.java?rev=836174&r1=836173&r2=836174&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/impl/BasicTilesContainer.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/impl/BasicTilesContainer.java Sat Nov 14 13:40:31 2009
@@ -106,20 +106,24 @@
private boolean initialized = false;
/** {@inheritDoc} */
- public AttributeContext startContext(Object... requestItems) {
- Request tilesContext = getRequestContext(requestItems);
- return startContext(tilesContext);
+ public AttributeContext startContext(Request request) {
+ AttributeContext context = new BasicAttributeContext();
+ ArrayStack<AttributeContext> stack = getContextStack(request);
+ if (!stack.isEmpty()) {
+ AttributeContext parent = stack.peek();
+ context.inheritCascadedAttributes(parent);
+ }
+ stack.push(context);
+ return context;
}
/** {@inheritDoc} */
- public void endContext(Object... requestItems) {
- Request tilesContext = getRequestContext(requestItems);
- endContext(tilesContext);
+ public void endContext(Request request) {
+ popContext(request);
}
/** {@inheritDoc} */
- public void renderContext(Object... requestItems) {
- Request request = getRequestContext(requestItems);
+ public void renderContext(Request request) {
AttributeContext attributeContext = getAttributeContext(request);
render(request, attributeContext);
@@ -144,9 +148,13 @@
}
/** {@inheritDoc} */
- public AttributeContext getAttributeContext(Object... requestItems) {
- Request tilesContext = getRequestContext(requestItems);
- return getAttributeContext(tilesContext);
+ public AttributeContext getAttributeContext(Request request) {
+ AttributeContext context = getContext(request);
+ if (context == null) {
+ context = new BasicAttributeContext();
+ pushContext(context, request);
+ }
+ return context;
}
@@ -227,43 +235,55 @@
}
/** {@inheritDoc} */
- public void prepare(String preparer, Object... requestItems) {
- Request requestContext = getRequestContextFactory().createRequestContext(
- getApplicationContext(),
- requestItems
- );
- prepare(requestContext, preparer, false);
+ public void prepare(String preparer, Request request) {
+ prepare(request, preparer, false);
}
/** {@inheritDoc} */
- public void render(String definitionName, Object... requestItems) {
- Request requestContext = getRequestContextFactory().createRequestContext(
- getApplicationContext(),
- requestItems
- );
- render(requestContext, definitionName);
+ public void render(String definitionName, Request request) {
+ if (log.isDebugEnabled()) {
+ log.debug("Render request recieved for definition '" + definitionName + "'");
+ }
+
+ Definition definition = getDefinition(definitionName, request);
+
+ if (definition == null) {
+ if (log.isWarnEnabled()) {
+ String message = "Unable to find the definition '" + definitionName + "'";
+ log.warn(message);
+ }
+ throw new NoSuchDefinitionException(definitionName);
+ }
+ render(request, definition);
}
/** {@inheritDoc} */
- public void render(Attribute attr, Object... requestItems)
+ public void render(Attribute attr, Request request)
throws IOException {
- Request requestContext = getRequestContextFactory()
- .createRequestContext(getApplicationContext(), requestItems);
- render(attr, requestContext);
+ if (attr == null) {
+ throw new CannotRenderException("Cannot render a null attribute");
+ }
+
+ AttributeRenderer renderer = rendererFactory.getRenderer(attr
+ .getRenderer());
+ if (renderer == null) {
+ throw new CannotRenderException(
+ "Cannot render an attribute with renderer name "
+ + attr.getRenderer());
+ }
+ renderer.render(attr, request);
}
/** {@inheritDoc} */
- public Object evaluate(Attribute attribute, Object... requestItems) {
- Request request = getRequestContextFactory()
- .createRequestContext(context, requestItems);
+ public Object evaluate(Attribute attribute, Request request) {
AttributeEvaluator evaluator = attributeEvaluatorFactory
.getAttributeEvaluator(attribute);
return evaluator.evaluate(attribute, request);
}
/** {@inheritDoc} */
- public boolean isValidDefinition(String definitionName, Object... requestItems) {
- return isValidDefinition(getRequestContext(requestItems), definitionName);
+ public boolean isValidDefinition(String definitionName, Request request) {
+ return isValidDefinition(request, definitionName);
}
/**
@@ -359,58 +379,6 @@
}
/**
- * Returns the current attribute context.
- *
- * @param tilesContext The request context to use.
- * @return The current attribute context.
- */
- private AttributeContext getAttributeContext(Request tilesContext) {
- AttributeContext context = getContext(tilesContext);
- if (context == null) {
- context = new BasicAttributeContext();
- pushContext(context, tilesContext);
- }
- return context;
- }
-
- /**
- * Creates a Tiles request context from request items.
- *
- * @param requestItems The request items.
- * @return The created Tiles request context.
- */
- private Request getRequestContext(Object... requestItems) {
- return getRequestContextFactory().createRequestContext(
- getApplicationContext(), requestItems);
- }
-
- /**
- * Starts an attribute context inside the container.
- *
- * @param tilesContext The request context to use.
- * @return The newly created attribute context.
- */
- private AttributeContext startContext(Request tilesContext) {
- AttributeContext context = new BasicAttributeContext();
- ArrayStack<AttributeContext> stack = getContextStack(tilesContext);
- if (!stack.isEmpty()) {
- AttributeContext parent = stack.peek();
- context.inheritCascadedAttributes(parent);
- }
- stack.push(context);
- return context;
- }
-
- /**
- * Releases and removes a previously created attribute context.
- *
- * @param tilesContext The request context to use.
- */
- private void endContext(Request tilesContext) {
- popContext(tilesContext);
- }
-
- /**
* Execute a preparer.
*
* @param context The request context.
@@ -490,29 +458,6 @@
}
/**
- * Renders an attribute.
- *
- * @param attr The attribute to render.
- * @param requestContext The Tiles request context.
- * @throws IOException If something goes wrong during rendering.
- */
- private void render(Attribute attr, Request requestContext)
- throws IOException {
- if (attr == null) {
- throw new CannotRenderException("Cannot render a null attribute");
- }
-
- AttributeRenderer renderer = rendererFactory.getRenderer(attr
- .getRenderer());
- if (renderer == null) {
- throw new CannotRenderException(
- "Cannot render an attribute with renderer name "
- + attr.getRenderer());
- }
- renderer.render(attr, requestContext);
- }
-
- /**
* Renders the specified attribute context.
*
* @param request The request context.
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/renderer/impl/DefinitionAttributeRenderer.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/renderer/impl/DefinitionAttributeRenderer.java?rev=836174&r1=836173&r2=836174&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/renderer/impl/DefinitionAttributeRenderer.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/renderer/impl/DefinitionAttributeRenderer.java Sat Nov 14 13:40:31 2009
@@ -53,15 +53,14 @@
public void write(Object value, Attribute attribute,
Request request)
throws IOException {
- container.render(value.toString(), request.getRequestObjects());
+ container.render(value.toString(), request);
}
/** {@inheritDoc} */
public boolean isRenderable(Object value, Attribute attribute,
Request request) {
if (value instanceof String) {
- return container.isValidDefinition((String) value, request
- .getRequestObjects());
+ return container.isValidDefinition((String) value, request);
}
return false;
}
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/evaluator/impl/DirectAttributeEvaluatorTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/evaluator/impl/DirectAttributeEvaluatorTest.java?rev=836174&r1=836173&r2=836174&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/evaluator/impl/DirectAttributeEvaluatorTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/evaluator/impl/DirectAttributeEvaluatorTest.java Sat Nov 14 13:40:31 2009
@@ -24,6 +24,7 @@
import org.apache.tiles.Attribute;
import org.apache.tiles.Expression;
+import org.apache.tiles.request.Request;
/**
* Tests {@link DirectAttributeEvaluator}.
@@ -45,7 +46,7 @@
/**
* Tests
- * {@link DirectAttributeEvaluator#evaluate(Attribute, org.apache.tiles.context.TilesRequestContext)}.
+ * {@link DirectAttributeEvaluator#evaluate(Attribute, Request)}.
*/
public void testEvaluate() {
String expression = "This is an expression";
@@ -63,7 +64,7 @@
/**
* Tests
- * {@link DirectAttributeEvaluator#evaluate(String, org.apache.tiles.context.TilesRequestContext)}.
+ * {@link DirectAttributeEvaluator#evaluate(String, Request)}.
*/
public void testEvaluateString() {
String expression = "This is an expression";
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/impl/BasicTilesContainerTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/impl/BasicTilesContainerTest.java?rev=836174&r1=836173&r2=836174&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/impl/BasicTilesContainerTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/impl/BasicTilesContainerTest.java Sat Nov 14 13:40:31 2009
@@ -145,7 +145,7 @@
}
/**
- * Tests {@link BasicTilesContainer#evaluate(Attribute, Object...)}.
+ * Tests {@link BasicTilesContainer#evaluate(Attribute, Request)}.
*/
public void testEvaluate() {
Request request = EasyMock.createMock(Request.class);
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/DefinitionAttributeRendererTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/DefinitionAttributeRendererTest.java?rev=836174&r1=836173&r2=836174&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/DefinitionAttributeRendererTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/renderer/impl/DefinitionAttributeRendererTest.java Sat Nov 14 13:40:31 2009
@@ -32,7 +32,6 @@
import org.apache.tiles.evaluator.impl.DirectAttributeEvaluator;
import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.Request;
-import org.apache.tiles.request.TilesRequestContextFactory;
import org.junit.Before;
import org.junit.Test;
@@ -67,20 +66,14 @@
Attribute attribute = new Attribute("my.definition", (Expression) null,
null, "definition");
ApplicationContext applicationContext = createMock(ApplicationContext.class);
- TilesRequestContextFactory contextFactory = createMock(TilesRequestContextFactory.class);
TilesContainer container = createMock(TilesContainer.class);
Request requestContext = createMock(Request.class);
- Object[] requestObjects = new Object[0];
- expect(requestContext.getRequestObjects()).andReturn(requestObjects);
- container.render("my.definition");
- replay(applicationContext, contextFactory, requestContext,
- container);
+ container.render("my.definition", requestContext);
+ replay(applicationContext, requestContext, container);
renderer.setApplicationContext(applicationContext);
- renderer.setRequestContextFactory(contextFactory);
renderer.setContainer(container);
renderer.render(attribute, requestContext);
- verify(applicationContext, contextFactory, requestContext,
- container);
+ verify(applicationContext, requestContext, container);
}
/**
@@ -93,19 +86,13 @@
Attribute attribute = new Attribute("my.definition", (Expression) null,
null, "definition");
ApplicationContext applicationContext = createMock(ApplicationContext.class);
- TilesRequestContextFactory contextFactory = createMock(TilesRequestContextFactory.class);
TilesContainer container = createMock(TilesContainer.class);
Request requestContext = createMock(Request.class);
- Object[] requestObjects = new Object[0];
- expect(requestContext.getRequestObjects()).andReturn(requestObjects);
- expect(container.isValidDefinition("my.definition", requestObjects)).andReturn(Boolean.TRUE);
- replay(applicationContext, contextFactory, requestContext,
- container);
+ expect(container.isValidDefinition("my.definition", requestContext)).andReturn(Boolean.TRUE);
+ replay(applicationContext, requestContext, container);
renderer.setApplicationContext(applicationContext);
- renderer.setRequestContextFactory(contextFactory);
renderer.setContainer(container);
assertTrue(renderer.isRenderable("my.definition", attribute, requestContext));
- verify(applicationContext, contextFactory, requestContext,
- container);
+ verify(applicationContext, requestContext, container);
}
}
Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/GetAsStringFMModel.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/GetAsStringFMModel.java?rev=836174&r1=836173&r2=836174&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/GetAsStringFMModel.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/GetAsStringFMModel.java Sat Nov 14 13:40:31 2009
@@ -26,7 +26,9 @@
import org.apache.tiles.Attribute;
import org.apache.tiles.TilesContainer;
+import org.apache.tiles.freemarker.context.FreeMarkerTilesRequestContext;
import org.apache.tiles.freemarker.context.FreeMarkerUtil;
+import org.apache.tiles.request.Request;
import org.apache.tiles.template.GetAsStringModel;
import freemarker.core.Environment;
@@ -40,9 +42,9 @@
* parameters, see
* {@link GetAsStringModel
* #start(java.util.Stack, TilesContainer, boolean, String, String, Object, String, String, String,
- * Attribute, Object...)}
+ * Attribute, Request)}
* and
- * {@link GetAsStringModel#end(java.util.Stack, TilesContainer, java.io.Writer, boolean, Object...)}
+ * {@link GetAsStringModel#end(java.util.Stack, TilesContainer, java.io.Writer, boolean, Request)}
* .
*
* @version $Rev$ $Date$
@@ -71,6 +73,9 @@
TemplateDirectiveBody body) throws TemplateException, IOException {
Map<String, TemplateModel> parms = (Map<String, TemplateModel>) params;
TilesContainer container = FreeMarkerUtil.getCurrentContainer(env);
+ Request request = FreeMarkerTilesRequestContext
+ .createServletFreemarkerRequest(container
+ .getApplicationContext(), env);
model.start(
FreeMarkerUtil.getComposeStack(env),
container,
@@ -83,10 +88,10 @@
.getAsString(parms.get("defaultValueType")),
FreeMarkerUtil.getAsString(parms.get("name")),
(Attribute) FreeMarkerUtil.getAsObject(parms
- .get("value")), env);
+ .get("value")), request);
FreeMarkerUtil.evaluateBody(body);
model.end(FreeMarkerUtil.getComposeStack(env), container, env.getOut(),
- FreeMarkerUtil.getAsBoolean(parms.get("ignore"), false), env);
+ FreeMarkerUtil.getAsBoolean(parms.get("ignore"), false), request);
}
}
Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/ImportAttributeFMModel.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/ImportAttributeFMModel.java?rev=836174&r1=836173&r2=836174&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/ImportAttributeFMModel.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/ImportAttributeFMModel.java Sat Nov 14 13:40:31 2009
@@ -25,7 +25,9 @@
import java.util.Map;
import org.apache.tiles.TilesContainer;
+import org.apache.tiles.freemarker.context.FreeMarkerTilesRequestContext;
import org.apache.tiles.freemarker.context.FreeMarkerUtil;
+import org.apache.tiles.request.Request;
import org.apache.tiles.template.ImportAttributeModel;
import freemarker.core.Environment;
@@ -37,7 +39,7 @@
/**
* Wraps {@link ImportAttributeModel} to be used in FreeMarker. For the list of
* parameters, see
- * {@link ImportAttributeModel#getImportedAttributes(TilesContainer, String, String, boolean, Object...)}
+ * {@link ImportAttributeModel#getImportedAttributes(TilesContainer, String, String, boolean, Request)}
* .
*
* @version $Rev$ $Date$
@@ -45,36 +47,40 @@
*/
public class ImportAttributeFMModel implements TemplateDirectiveModel {
- /**
- * The template model.
- */
- private ImportAttributeModel model;
-
- /**
- * Constructor.
- *
- * @param model The template model.
- * @since 2.2.0
- */
- public ImportAttributeFMModel(ImportAttributeModel model) {
- this.model = model;
- }
-
- /** {@inheritDoc} */
- @SuppressWarnings("unchecked")
- public void execute(Environment env, Map params, TemplateModel[] loopVars,
- TemplateDirectiveBody body) throws TemplateException, IOException {
- Map<String, TemplateModel> parms = (Map<String, TemplateModel>) params;
- TilesContainer container = FreeMarkerUtil.getCurrentContainer(env);
- Map<String, Object> attributes = model.getImportedAttributes(container,
- FreeMarkerUtil.getAsString(parms.get("name")), FreeMarkerUtil
- .getAsString(parms.get("toName")), FreeMarkerUtil
- .getAsBoolean(parms.get("ignore"), false), env);
- String scope = FreeMarkerUtil.getAsString(parms.get("scope"));
- for (Map.Entry<String, Object> entry : attributes.entrySet()) {
- FreeMarkerUtil.setAttribute(env, entry.getKey(), entry.getValue(),
- scope);
- }
- }
+ /**
+ * The template model.
+ */
+ private ImportAttributeModel model;
+
+ /**
+ * Constructor.
+ *
+ * @param model
+ * The template model.
+ * @since 2.2.0
+ */
+ public ImportAttributeFMModel(ImportAttributeModel model) {
+ this.model = model;
+ }
+
+ /** {@inheritDoc} */
+ @SuppressWarnings("unchecked")
+ public void execute(Environment env, Map params, TemplateModel[] loopVars,
+ TemplateDirectiveBody body) throws TemplateException, IOException {
+ Map<String, TemplateModel> parms = (Map<String, TemplateModel>) params;
+ TilesContainer container = FreeMarkerUtil.getCurrentContainer(env);
+ Request request = FreeMarkerTilesRequestContext
+ .createServletFreemarkerRequest(container
+ .getApplicationContext(), env);
+ Map<String, Object> attributes = model.getImportedAttributes(container,
+ FreeMarkerUtil.getAsString(parms.get("name")), FreeMarkerUtil
+ .getAsString(parms.get("toName")), FreeMarkerUtil
+ .getAsBoolean(parms.get("ignore"), false), request);
+ String scope = FreeMarkerUtil.getAsString(parms.get("scope"));
+ for (Map.Entry<String, Object> entry : attributes.entrySet()) {
+ FreeMarkerUtil.setAttribute(env, entry.getKey(), entry.getValue(),
+ scope);
+ }
+ }
}
Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertAttributeFMModel.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertAttributeFMModel.java?rev=836174&r1=836173&r2=836174&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertAttributeFMModel.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertAttributeFMModel.java Sat Nov 14 13:40:31 2009
@@ -26,7 +26,9 @@
import org.apache.tiles.Attribute;
import org.apache.tiles.TilesContainer;
+import org.apache.tiles.freemarker.context.FreeMarkerTilesRequestContext;
import org.apache.tiles.freemarker.context.FreeMarkerUtil;
+import org.apache.tiles.request.Request;
import org.apache.tiles.template.InsertAttributeModel;
import freemarker.core.Environment;
@@ -38,12 +40,9 @@
/**
* Wraps {@link InsertAttributeModel} to be used in FreeMarker. For the list of
* parameters, see
- * {@link InsertAttributeModel
- * #start(java.util.Stack, TilesContainer, boolean, String, String,
- * Object, String, String, String, Attribute, Object...)}
+ * {@link InsertAttributeModel #start(java.util.Stack, TilesContainer, boolean, String, String, Object, String, String, String, Attribute, Request)}
* and
- * {@link InsertAttributeModel
- * #end(java.util.Stack, TilesContainer, boolean, Object...)}
+ * {@link InsertAttributeModel #end(java.util.Stack, TilesContainer, boolean, Request)}
* .
*
* @version $Rev$ $Date$
@@ -51,43 +50,45 @@
*/
public class InsertAttributeFMModel implements TemplateDirectiveModel {
- /**
- * The template model.
- */
- private InsertAttributeModel model;
-
- /**
- * Constructor.
- *
- * @param model The template model.
- * @since 2.2.0
- */
- public InsertAttributeFMModel(InsertAttributeModel model) {
- this.model = model;
- }
-
- /** {@inheritDoc} */
- @SuppressWarnings("unchecked")
- public void execute(Environment env, Map params, TemplateModel[] loopVars,
- TemplateDirectiveBody body) throws TemplateException, IOException {
- Map<String, TemplateModel> parms = (Map<String, TemplateModel>) params;
- TilesContainer container = FreeMarkerUtil.getCurrentContainer(env);
- model.start(
- FreeMarkerUtil.getComposeStack(env),
- container,
- FreeMarkerUtil.getAsBoolean(parms.get("ignore"), false),
- FreeMarkerUtil.getAsString(parms.get("preparer")),
- FreeMarkerUtil.getAsString(parms.get("role")),
- FreeMarkerUtil.getAsObject(parms.get("defaultValue")),
- FreeMarkerUtil.getAsString(parms
- .get("defaultValueRole")), FreeMarkerUtil
- .getAsString(parms.get("defaultValueType")),
- FreeMarkerUtil.getAsString(parms.get("name")),
- (Attribute) FreeMarkerUtil.getAsObject(parms
- .get("value")), env);
- FreeMarkerUtil.evaluateBody(body);
- model.end(FreeMarkerUtil.getComposeStack(env), container,
- FreeMarkerUtil.getAsBoolean(parms.get("ignore"), false), env);
- }
+ /**
+ * The template model.
+ */
+ private InsertAttributeModel model;
+
+ /**
+ * Constructor.
+ *
+ * @param model
+ * The template model.
+ * @since 2.2.0
+ */
+ public InsertAttributeFMModel(InsertAttributeModel model) {
+ this.model = model;
+ }
+
+ /** {@inheritDoc} */
+ @SuppressWarnings("unchecked")
+ public void execute(Environment env, Map params, TemplateModel[] loopVars,
+ TemplateDirectiveBody body) throws TemplateException, IOException {
+ Map<String, TemplateModel> parms = (Map<String, TemplateModel>) params;
+ TilesContainer container = FreeMarkerUtil.getCurrentContainer(env);
+ Request request = FreeMarkerTilesRequestContext
+ .createServletFreemarkerRequest(container
+ .getApplicationContext(), env);
+ model.start(FreeMarkerUtil.getComposeStack(env), container,
+ FreeMarkerUtil.getAsBoolean(parms.get("ignore"), false),
+ FreeMarkerUtil.getAsString(parms.get("preparer")),
+ FreeMarkerUtil.getAsString(parms.get("role")), FreeMarkerUtil
+ .getAsObject(parms.get("defaultValue")), FreeMarkerUtil
+ .getAsString(parms.get("defaultValueRole")),
+ FreeMarkerUtil.getAsString(parms.get("defaultValueType")),
+ FreeMarkerUtil.getAsString(parms.get("name")),
+ (Attribute) FreeMarkerUtil.getAsObject(parms.get("value")),
+ request);
+ FreeMarkerUtil.evaluateBody(body);
+ model.end(FreeMarkerUtil.getComposeStack(env), container,
+ FreeMarkerUtil.getAsBoolean(parms.get("ignore"), false),
+ request);
+ }
}
Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModel.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModel.java?rev=836174&r1=836173&r2=836174&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModel.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModel.java Sat Nov 14 13:40:31 2009
@@ -24,7 +24,10 @@
import java.io.IOException;
import java.util.Map;
+import org.apache.tiles.TilesContainer;
+import org.apache.tiles.freemarker.context.FreeMarkerTilesRequestContext;
import org.apache.tiles.freemarker.context.FreeMarkerUtil;
+import org.apache.tiles.request.Request;
import org.apache.tiles.template.InsertDefinitionModel;
import freemarker.core.Environment;
@@ -36,10 +39,9 @@
/**
* Wraps {@link InsertDefinitionModel} to be used in FreeMarker. For the list of
* parameters, see
- * {@link InsertDefinitionModel#start(org.apache.tiles.TilesContainer, Object...)}
+ * {@link InsertDefinitionModel#start(org.apache.tiles.TilesContainer, Request)}
* and
- * {@link InsertDefinitionModel#end(org.apache.tiles.TilesContainer,
- * String, String, String, String, String, String, Object...)}
+ * {@link InsertDefinitionModel#end(org.apache.tiles.TilesContainer, String, String, String, String, String, String, Request)}
* .
*
* @version $Rev$ $Date$
@@ -47,35 +49,39 @@
*/
public class InsertDefinitionFMModel implements TemplateDirectiveModel {
- /**
- * The template model.
- */
- private InsertDefinitionModel model;
-
- /**
- * Constructor.
- *
- * @param model The template model.
- * @since 2.2.0
- */
- public InsertDefinitionFMModel(InsertDefinitionModel model) {
- this.model = model;
- }
-
- /** {@inheritDoc} */
- @SuppressWarnings("unchecked")
- public void execute(Environment env, Map params, TemplateModel[] loopVars,
- TemplateDirectiveBody body) throws TemplateException, IOException {
- Map<String, TemplateModel> parms = (Map<String, TemplateModel>) params;
- model.start(FreeMarkerUtil.getCurrentContainer(env), env);
- FreeMarkerUtil.evaluateBody(body);
- model.end(FreeMarkerUtil.getCurrentContainer(env), FreeMarkerUtil
- .getAsString(parms.get("name")), FreeMarkerUtil
- .getAsString(parms.get("template")), FreeMarkerUtil
- .getAsString(parms.get("templateType")), FreeMarkerUtil
- .getAsString(parms.get("templateExpression")), FreeMarkerUtil
- .getAsString(parms.get("role")), FreeMarkerUtil
- .getAsString(parms.get("preparer")), env);
- }
+ /**
+ * The template model.
+ */
+ private InsertDefinitionModel model;
+
+ /**
+ * Constructor.
+ *
+ * @param model
+ * The template model.
+ * @since 2.2.0
+ */
+ public InsertDefinitionFMModel(InsertDefinitionModel model) {
+ this.model = model;
+ }
+
+ /** {@inheritDoc} */
+ @SuppressWarnings("unchecked")
+ public void execute(Environment env, Map params, TemplateModel[] loopVars,
+ TemplateDirectiveBody body) throws TemplateException, IOException {
+ Map<String, TemplateModel> parms = (Map<String, TemplateModel>) params;
+ TilesContainer container = FreeMarkerUtil.getCurrentContainer(env);
+ Request request = FreeMarkerTilesRequestContext
+ .createServletFreemarkerRequest(container
+ .getApplicationContext(), env);
+ model.start(container, request);
+ FreeMarkerUtil.evaluateBody(body);
+ model.end(container, FreeMarkerUtil.getAsString(parms.get("name")),
+ FreeMarkerUtil.getAsString(parms.get("template")),
+ FreeMarkerUtil.getAsString(parms.get("templateType")),
+ FreeMarkerUtil.getAsString(parms.get("templateExpression")),
+ FreeMarkerUtil.getAsString(parms.get("role")), FreeMarkerUtil
+ .getAsString(parms.get("preparer")), request);
+ }
}
Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertTemplateFMModel.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertTemplateFMModel.java?rev=836174&r1=836173&r2=836174&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertTemplateFMModel.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertTemplateFMModel.java Sat Nov 14 13:40:31 2009
@@ -24,7 +24,10 @@
import java.io.IOException;
import java.util.Map;
+import org.apache.tiles.TilesContainer;
+import org.apache.tiles.freemarker.context.FreeMarkerTilesRequestContext;
import org.apache.tiles.freemarker.context.FreeMarkerUtil;
+import org.apache.tiles.request.Request;
import org.apache.tiles.template.InsertTemplateModel;
import freemarker.core.Environment;
@@ -36,9 +39,9 @@
/**
* Wraps {@link InsertTemplateModel} to be used in FreeMarker. For the list of
* parameters, see
- * {@link InsertTemplateModel#start(org.apache.tiles.TilesContainer, Object...)}
+ * {@link InsertTemplateModel#start(org.apache.tiles.TilesContainer, Request)}
* and
- * {@link InsertTemplateModel#end(org.apache.tiles.TilesContainer, String, String, String, String, String, Object...)}
+ * {@link InsertTemplateModel#end(org.apache.tiles.TilesContainer, String, String, String, String, String, Request)}
* .
*
* @version $Rev$ $Date$
@@ -46,35 +49,39 @@
*/
public class InsertTemplateFMModel implements TemplateDirectiveModel {
- /**
- * The template model.
- */
- private InsertTemplateModel model;
-
- /**
- * Constructor.
- *
- * @param model The template model.
- * @since 2.2.0
- */
- public InsertTemplateFMModel(InsertTemplateModel model) {
- this.model = model;
- }
-
- /** {@inheritDoc} */
- @SuppressWarnings("unchecked")
- public void execute(Environment env, Map params, TemplateModel[] loopVars,
- TemplateDirectiveBody body) throws TemplateException, IOException {
- Map<String, TemplateModel> parms = (Map<String, TemplateModel>) params;
- model.start(FreeMarkerUtil.getCurrentContainer(env), env);
- FreeMarkerUtil.evaluateBody(body);
- FreeMarkerUtil.setForceInclude(env, true);
- model.end(FreeMarkerUtil.getCurrentContainer(env), FreeMarkerUtil
- .getAsString(parms.get("template")), FreeMarkerUtil
- .getAsString(parms.get("templateType")), FreeMarkerUtil
- .getAsString(parms.get("templateExpression")), FreeMarkerUtil.getAsString(parms.get("role")),
- FreeMarkerUtil
- .getAsString(parms.get("preparer")), env);
- }
+ /**
+ * The template model.
+ */
+ private InsertTemplateModel model;
+
+ /**
+ * Constructor.
+ *
+ * @param model
+ * The template model.
+ * @since 2.2.0
+ */
+ public InsertTemplateFMModel(InsertTemplateModel model) {
+ this.model = model;
+ }
+
+ /** {@inheritDoc} */
+ @SuppressWarnings("unchecked")
+ public void execute(Environment env, Map params, TemplateModel[] loopVars,
+ TemplateDirectiveBody body) throws TemplateException, IOException {
+ Map<String, TemplateModel> parms = (Map<String, TemplateModel>) params;
+ TilesContainer container = FreeMarkerUtil.getCurrentContainer(env);
+ Request request = FreeMarkerTilesRequestContext
+ .createServletFreemarkerRequest(container
+ .getApplicationContext(), env);
+ model.start(container, request);
+ FreeMarkerUtil.evaluateBody(body);
+ FreeMarkerUtil.setForceInclude(env, true);
+ model.end(container, FreeMarkerUtil.getAsString(parms.get("template")),
+ FreeMarkerUtil.getAsString(parms.get("templateType")),
+ FreeMarkerUtil.getAsString(parms.get("templateExpression")),
+ FreeMarkerUtil.getAsString(parms.get("role")), FreeMarkerUtil
+ .getAsString(parms.get("preparer")), request);
+ }
}
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=836174&r1=836173&r2=836174&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 Nov 14 13:40:31 2009
@@ -25,7 +25,10 @@
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;
+import org.apache.tiles.request.Request;
import org.apache.tiles.template.PutAttributeModel;
import freemarker.core.Environment;
@@ -37,44 +40,48 @@
/**
* Wraps {@link PutAttributeModel} to be used in FreeMarker. For the list of
* parameters, see {@link PutAttributeModel#start(ArrayStack)} and
- * {@link PutAttributeModel #end(org.apache.tiles.TilesContainer, ArrayStack,
- * String, Object, String, String, String, String, boolean, Object...)}.
+ * {@link PutAttributeModel #end(org.apache.tiles.TilesContainer, ArrayStack, String, Object, String, String, String, String, boolean, Request)}
+ * .
*
* @version $Rev$ $Date$
* @since 2.2.0
*/
public class PutAttributeFMModel implements TemplateDirectiveModel {
- /**
- * The template model.
- */
- private PutAttributeModel model;
-
- /**
- * Constructor.
- *
- * @param model The template model.
- * @since 2.2.0
- */
- public PutAttributeFMModel(PutAttributeModel model) {
- this.model = model;
- }
-
- /** {@inheritDoc} */
- @SuppressWarnings("unchecked")
- public void execute(Environment env, Map params, TemplateModel[] loopVars,
- TemplateDirectiveBody body) throws TemplateException, IOException {
- ArrayStack<Object> composeStack = FreeMarkerUtil.getComposeStack(env);
- model.start(composeStack);
- String bodyString = FreeMarkerUtil.renderAsString(body);
- Map<String, TemplateModel> parms = (Map<String, TemplateModel>) params;
- model.end(FreeMarkerUtil.getCurrentContainer(env), composeStack,
- 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), env);
- }
+ /**
+ * The template model.
+ */
+ private PutAttributeModel model;
+
+ /**
+ * Constructor.
+ *
+ * @param model
+ * The template model.
+ * @since 2.2.0
+ */
+ public PutAttributeFMModel(PutAttributeModel model) {
+ this.model = model;
+ }
+
+ /** {@inheritDoc} */
+ @SuppressWarnings("unchecked")
+ public void execute(Environment env, Map params, TemplateModel[] loopVars,
+ TemplateDirectiveBody body) throws TemplateException, IOException {
+ ArrayStack<Object> composeStack = FreeMarkerUtil.getComposeStack(env);
+ TilesContainer container = FreeMarkerUtil.getCurrentContainer(env);
+ Request request = FreeMarkerTilesRequestContext
+ .createServletFreemarkerRequest(container
+ .getApplicationContext(), env);
+ model.start(composeStack);
+ String bodyString = FreeMarkerUtil.renderAsString(body);
+ Map<String, TemplateModel> parms = (Map<String, TemplateModel>) params;
+ model.end(container, composeStack, 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);
+ }
}
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=836174&r1=836173&r2=836174&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 Sat Nov 14 13:40:31 2009
@@ -25,7 +25,10 @@
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;
+import org.apache.tiles.request.Request;
import org.apache.tiles.template.PutListAttributeModel;
import freemarker.core.Environment;
@@ -37,9 +40,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, Object...)}
+ * {@link PutListAttributeModel#start(ArrayStack, String, boolean)} and
+ * {@link PutListAttributeModel#end(org.apache.tiles.TilesContainer, ArrayStack, String, boolean, Request)}
* .
*
* @version $Rev$ $Date$
@@ -47,32 +49,38 @@
*/
public class PutListAttributeFMModel implements TemplateDirectiveModel {
- /**
- * The template model.
- */
- private PutListAttributeModel model;
-
- /**
- * Constructor.
- *
- * @param model The template model.
- * @since 2.2.0
- */
- public PutListAttributeFMModel(PutListAttributeModel model) {
- this.model = model;
- }
-
- /** {@inheritDoc} */
- @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);
- model.start(composeStack, FreeMarkerUtil.getAsString(parms.get("role")),
- FreeMarkerUtil.getAsBoolean(parms.get("inherit"), false));
- FreeMarkerUtil.evaluateBody(body);
- model.end(FreeMarkerUtil.getCurrentContainer(env), composeStack,
- FreeMarkerUtil.getAsString(parms.get("name")), FreeMarkerUtil
- .getAsBoolean(parms.get("cascade"), false), env);
- }
+ /**
+ * The template model.
+ */
+ private PutListAttributeModel model;
+
+ /**
+ * Constructor.
+ *
+ * @param model
+ * The template model.
+ * @since 2.2.0
+ */
+ public PutListAttributeFMModel(PutListAttributeModel model) {
+ this.model = model;
+ }
+
+ /** {@inheritDoc} */
+ @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);
+ 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));
+ FreeMarkerUtil.evaluateBody(body);
+ model.end(container, composeStack, FreeMarkerUtil.getAsString(parms
+ .get("name")), FreeMarkerUtil.getAsBoolean(
+ parms.get("cascade"), false), request);
+ }
}
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=836174&r1=836173&r2=836174&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 Nov 14 13:40:31 2009
@@ -38,8 +38,10 @@
import org.apache.tiles.Attribute;
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;
import org.apache.tiles.template.GetAsStringModel;
import org.junit.Before;
@@ -64,11 +66,6 @@
public class GetAsStringFMModelTest {
/**
- * The number of times the method is called.
- */
- private static final int CALL_COUNT = 3;
-
- /**
* The FreeMarker environment.
*/
private Environment env;
@@ -122,7 +119,9 @@
GetAsStringModel tModel = createMock(GetAsStringModel.class);
GetAsStringFMModel fmModel = new GetAsStringFMModel(tModel);
TilesContainer container = createMock(TilesContainer.class);
+ ApplicationContext applicationContext = createMock(ApplicationContext.class);
+ 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).times(2);
@@ -137,7 +136,7 @@
expect(servletContext.getAttribute(TilesAccess.CONTAINER_ATTRIBUTE)).andReturn(container);
replay(servlet, servletContext);
ServletContextHashModel servletContextModel = new ServletContextHashModel(servlet, objectWrapper);
- expect(model.get(FreemarkerServlet.KEY_REQUEST)).andReturn(requestModel).times(CALL_COUNT);
+ expect(model.get(FreemarkerServlet.KEY_REQUEST)).andReturn(requestModel).anyTimes();
expect(model.get(FreemarkerServlet.KEY_APPLICATION)).andReturn(servletContextModel);
initEnvironment();
@@ -152,14 +151,19 @@
params.put("name", objectWrapper.wrap("myName"));
params.put("value", objectWrapper.wrap(attribute));
- tModel.start(composeStack, container, false, "myPreparer", "myRole", "myDefaultValue", "myDefaultValueRole",
- "myDefaultValueType", "myName", attribute, env);
- tModel.end(composeStack, container, writer, false, env);
+ tModel.start(eq(composeStack), eq(container), eq(false),
+ eq("myPreparer"), eq("myRole"), eq("myDefaultValue"),
+ eq("myDefaultValueRole"), eq("myDefaultValueType"),
+ eq("myName"), eq(attribute),
+ isA(FreeMarkerTilesRequestContext.class));
+ tModel.end(eq(composeStack), eq(container), eq(writer), eq(false),
+ isA(FreeMarkerTilesRequestContext.class));
body.render(isA(NullWriter.class));
- replay(tModel, body, container, attribute);
+ replay(tModel, body, container, attribute, applicationContext);
fmModel.execute(env, params, null, body);
- verify(template, model, request, tModel, body, container, servlet, servletContext, attribute);
+ verify(template, model, request, tModel, body, container, servlet,
+ servletContext, attribute, applicationContext);
}
/**
Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/ImportAttributeFMModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/ImportAttributeFMModelTest.java?rev=836174&r1=836173&r2=836174&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/ImportAttributeFMModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/ImportAttributeFMModelTest.java Sat Nov 14 13:40:31 2009
@@ -21,6 +21,7 @@
package org.apache.tiles.freemarker.template;
+import static org.easymock.EasyMock.*;
import static org.easymock.classextension.EasyMock.*;
import static org.junit.Assert.*;
@@ -38,6 +39,8 @@
import org.apache.tiles.Attribute;
import org.apache.tiles.TilesContainer;
import org.apache.tiles.access.TilesAccess;
+import org.apache.tiles.freemarker.context.FreeMarkerTilesRequestContext;
+import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.servlet.context.ServletUtil;
import org.apache.tiles.template.ImportAttributeModel;
import org.junit.Before;
@@ -63,16 +66,6 @@
public class ImportAttributeFMModelTest {
/**
- * The number of times the method is called.
- */
- private static final int CALL_COUNT = 3;
-
- /**
- * The number of times the method is called.
- */
- private static final int CALL_COUNT_4 = 4;
-
- /**
* The FreeMarker environment.
*/
private Environment env;
@@ -126,7 +119,9 @@
ImportAttributeModel tModel = createMock(ImportAttributeModel.class);
ImportAttributeFMModel fmModel = new ImportAttributeFMModel(tModel);
TilesContainer container = createMock(TilesContainer.class);
+ ApplicationContext applicationContext = createMock(ApplicationContext.class);
+ expect(container.getApplicationContext()).andReturn(applicationContext);
HttpServletRequest request = createMock(HttpServletRequest.class);
expect(request.getAttribute(ServletUtil.CURRENT_CONTAINER_ATTRIBUTE_NAME)).andReturn(null);
request.setAttribute(ServletUtil.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
@@ -139,7 +134,7 @@
expect(servletContext.getAttribute(TilesAccess.CONTAINER_ATTRIBUTE)).andReturn(container);
replay(servlet, servletContext);
ServletContextHashModel servletContextModel = new ServletContextHashModel(servlet, objectWrapper);
- expect(model.get(FreemarkerServlet.KEY_REQUEST)).andReturn(requestModel);
+ expect(model.get(FreemarkerServlet.KEY_REQUEST)).andReturn(requestModel).anyTimes();
expect(model.get(FreemarkerServlet.KEY_APPLICATION)).andReturn(servletContextModel);
expect(template.getObjectWrapper()).andReturn(objectWrapper).times(2);
initEnvironment();
@@ -154,14 +149,15 @@
Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put("one", "value1");
attributes.put("two", "value2");
- expect(tModel.getImportedAttributes(container, "myName", "myToName",
- false, env)).andReturn(attributes);
+ expect(tModel.getImportedAttributes(eq(container), eq("myName"), eq("myToName"),
+ eq(false), isA(FreeMarkerTilesRequestContext.class))).andReturn(attributes);
- replay(tModel, body, container, attribute);
+ replay(tModel, body, container, attribute, applicationContext);
fmModel.execute(env, params, null, body);
assertEquals("value1", DeepUnwrap.unwrap(env.getCurrentNamespace().get("one")));
assertEquals("value2", DeepUnwrap.unwrap(env.getCurrentNamespace().get("two")));
- verify(template, model, request, tModel, body, container, servlet, servletContext, attribute);
+ verify(template, model, request, tModel, body, container, servlet,
+ servletContext, attribute, applicationContext);
}
/**
@@ -176,7 +172,9 @@
ImportAttributeModel tModel = createMock(ImportAttributeModel.class);
ImportAttributeFMModel fmModel = new ImportAttributeFMModel(tModel);
TilesContainer container = createMock(TilesContainer.class);
+ ApplicationContext applicationContext = createMock(ApplicationContext.class);
+ expect(container.getApplicationContext()).andReturn(applicationContext);
HttpServletRequest request = createMock(HttpServletRequest.class);
expect(request.getAttribute(ServletUtil.CURRENT_CONTAINER_ATTRIBUTE_NAME)).andReturn(null);
request.setAttribute(ServletUtil.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
@@ -191,7 +189,7 @@
expect(servletContext.getAttribute(TilesAccess.CONTAINER_ATTRIBUTE)).andReturn(container);
replay(servlet, servletContext);
ServletContextHashModel servletContextModel = new ServletContextHashModel(servlet, objectWrapper);
- expect(model.get(FreemarkerServlet.KEY_REQUEST)).andReturn(requestModel).times(CALL_COUNT);
+ expect(model.get(FreemarkerServlet.KEY_REQUEST)).andReturn(requestModel).anyTimes();
expect(model.get(FreemarkerServlet.KEY_APPLICATION)).andReturn(servletContextModel);
initEnvironment();
@@ -206,12 +204,13 @@
Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put("one", "value1");
attributes.put("two", "value2");
- expect(tModel.getImportedAttributes(container, "myName", "myToName",
- false, env)).andReturn(attributes);
+ expect(tModel.getImportedAttributes(eq(container), eq("myName"), eq("myToName"),
+ eq(false), isA(FreeMarkerTilesRequestContext.class))).andReturn(attributes);
- replay(tModel, body, container, attribute);
+ replay(tModel, body, container, attribute, applicationContext);
fmModel.execute(env, params, null, body);
- verify(template, model, request, tModel, body, container, servlet, servletContext, attribute);
+ verify(template, model, request, tModel, body, container, servlet,
+ servletContext, attribute, applicationContext);
}
/**
@@ -226,7 +225,9 @@
ImportAttributeModel tModel = createMock(ImportAttributeModel.class);
ImportAttributeFMModel fmModel = new ImportAttributeFMModel(tModel);
TilesContainer container = createMock(TilesContainer.class);
+ ApplicationContext applicationContext = createMock(ApplicationContext.class);
+ expect(container.getApplicationContext()).andReturn(applicationContext);
HttpServletRequest request = createMock(HttpServletRequest.class);
HttpSession session = createMock(HttpSession.class);
expect(request.getSession()).andReturn(session).times(2);
@@ -243,7 +244,7 @@
expect(servletContext.getAttribute(TilesAccess.CONTAINER_ATTRIBUTE)).andReturn(container);
replay(servlet, servletContext);
ServletContextHashModel servletContextModel = new ServletContextHashModel(servlet, objectWrapper);
- expect(model.get(FreemarkerServlet.KEY_REQUEST)).andReturn(requestModel).times(CALL_COUNT);
+ expect(model.get(FreemarkerServlet.KEY_REQUEST)).andReturn(requestModel).anyTimes();
expect(model.get(FreemarkerServlet.KEY_APPLICATION)).andReturn(servletContextModel);
initEnvironment();
@@ -258,12 +259,13 @@
Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put("one", "value1");
attributes.put("two", "value2");
- expect(tModel.getImportedAttributes(container, "myName", "myToName",
- false, env)).andReturn(attributes);
+ expect(tModel.getImportedAttributes(eq(container), eq("myName"), eq("myToName"),
+ eq(false), isA(FreeMarkerTilesRequestContext.class))).andReturn(attributes);
- replay(tModel, body, container, attribute);
+ replay(tModel, body, container, attribute, applicationContext);
fmModel.execute(env, params, null, body);
- verify(template, model, request, session, tModel, body, container, servlet, servletContext, attribute);
+ verify(template, model, request, session, tModel, body, container,
+ servlet, servletContext, attribute, applicationContext);
}
/**
@@ -278,7 +280,9 @@
ImportAttributeModel tModel = createMock(ImportAttributeModel.class);
ImportAttributeFMModel fmModel = new ImportAttributeFMModel(tModel);
TilesContainer container = createMock(TilesContainer.class);
+ ApplicationContext applicationContext = createMock(ApplicationContext.class);
+ expect(container.getApplicationContext()).andReturn(applicationContext);
HttpServletRequest request = createMock(HttpServletRequest.class);
expect(request.getAttribute(ServletUtil.CURRENT_CONTAINER_ATTRIBUTE_NAME)).andReturn(null);
request.setAttribute(ServletUtil.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
@@ -287,14 +291,14 @@
GenericServlet servlet = createMock(GenericServlet.class);
ServletContext servletContext = createMock(ServletContext.class);
- expect(servlet.getServletContext()).andReturn(servletContext).times(CALL_COUNT_4);
+ expect(servlet.getServletContext()).andReturn(servletContext).anyTimes();
expect(servletContext.getAttribute(TilesAccess.CONTAINER_ATTRIBUTE)).andReturn(container);
servletContext.setAttribute("one", "value1");
servletContext.setAttribute("two", "value2");
replay(servlet, servletContext);
ServletContextHashModel servletContextModel = new ServletContextHashModel(servlet, objectWrapper);
- expect(model.get(FreemarkerServlet.KEY_REQUEST)).andReturn(requestModel);
- expect(model.get(FreemarkerServlet.KEY_APPLICATION)).andReturn(servletContextModel).times(CALL_COUNT);
+ expect(model.get(FreemarkerServlet.KEY_REQUEST)).andReturn(requestModel).anyTimes();
+ expect(model.get(FreemarkerServlet.KEY_APPLICATION)).andReturn(servletContextModel).anyTimes();
initEnvironment();
TemplateDirectiveBody body = createMock(TemplateDirectiveBody.class);
@@ -308,12 +312,13 @@
Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put("one", "value1");
attributes.put("two", "value2");
- expect(tModel.getImportedAttributes(container, "myName", "myToName",
- false, env)).andReturn(attributes);
+ expect(tModel.getImportedAttributes(eq(container), eq("myName"), eq("myToName"),
+ eq(false), isA(FreeMarkerTilesRequestContext.class))).andReturn(attributes);
- replay(tModel, body, container, attribute);
+ replay(tModel, body, container, attribute, applicationContext);
fmModel.execute(env, params, null, body);
- verify(template, model, request, tModel, body, container, servlet, servletContext, attribute);
+ verify(template, model, request, tModel, body, container, servlet,
+ servletContext, attribute, applicationContext);
}
/**
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=836174&r1=836173&r2=836174&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 Nov 14 13:40:31 2009
@@ -38,8 +38,10 @@
import org.apache.tiles.Attribute;
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;
import org.apache.tiles.template.InsertAttributeModel;
import org.junit.Before;
@@ -64,11 +66,6 @@
public class InsertAttributeFMModelTest {
/**
- * The number of times the method is called.
- */
- private static final int CALL_COUNT = 3;
-
- /**
* The FreeMarker environment.
*/
private Environment env;
@@ -122,7 +119,9 @@
InsertAttributeModel tModel = createMock(InsertAttributeModel.class);
InsertAttributeFMModel fmModel = new InsertAttributeFMModel(tModel);
TilesContainer container = createMock(TilesContainer.class);
+ ApplicationContext applicationContext = createMock(ApplicationContext.class);
+ 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).times(2);
@@ -137,7 +136,7 @@
expect(servletContext.getAttribute(TilesAccess.CONTAINER_ATTRIBUTE)).andReturn(container);
replay(servlet, servletContext);
ServletContextHashModel servletContextModel = new ServletContextHashModel(servlet, objectWrapper);
- expect(model.get(FreemarkerServlet.KEY_REQUEST)).andReturn(requestModel).times(CALL_COUNT);
+ expect(model.get(FreemarkerServlet.KEY_REQUEST)).andReturn(requestModel).anyTimes();
expect(model.get(FreemarkerServlet.KEY_APPLICATION)).andReturn(servletContextModel);
initEnvironment();
@@ -152,14 +151,18 @@
params.put("name", objectWrapper.wrap("myName"));
params.put("value", objectWrapper.wrap(attribute));
- tModel.start(composeStack, container, false, "myPreparer", "myRole", "myDefaultValue", "myDefaultValueRole",
- "myDefaultValueType", "myName", attribute, env);
- tModel.end(composeStack, container, false, env);
+ tModel.start(eq(composeStack), eq(container), eq(false),
+ eq("myPreparer"), eq("myRole"), eq("myDefaultValue"),
+ eq("myDefaultValueRole"), eq("myDefaultValueType"),
+ eq("myName"), eq(attribute),
+ isA(FreeMarkerTilesRequestContext.class));
+ tModel.end(eq(composeStack), eq(container), eq(false), isA(FreeMarkerTilesRequestContext.class));
body.render(isA(NullWriter.class));
- replay(tModel, body, container, attribute);
+ replay(tModel, body, container, attribute, applicationContext);
fmModel.execute(env, params, null, body);
- verify(template, model, request, tModel, body, container, servlet, servletContext, attribute);
+ verify(template, model, request, tModel, body, container, servlet,
+ servletContext, attribute, applicationContext);
}
/**
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=836174&r1=836173&r2=836174&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 Nov 14 13:40:31 2009
@@ -21,6 +21,7 @@
package org.apache.tiles.freemarker.template;
+import static org.easymock.EasyMock.*;
import static org.easymock.classextension.EasyMock.*;
import java.io.IOException;
@@ -36,7 +37,9 @@
import org.apache.tiles.Attribute;
import org.apache.tiles.TilesContainer;
import org.apache.tiles.access.TilesAccess;
+import org.apache.tiles.freemarker.context.FreeMarkerTilesRequestContext;
import org.apache.tiles.freemarker.io.NullWriter;
+import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.servlet.context.ServletUtil;
import org.apache.tiles.template.InsertDefinitionModel;
import org.junit.Before;
@@ -61,11 +64,6 @@
public class InsertDefinitionFMModelTest {
/**
- * The number of times the method is called.
- */
- private static final int CALL_COUNT = 3;
-
- /**
* The FreeMarker environment.
*/
private Environment env;
@@ -119,22 +117,23 @@
InsertDefinitionModel tModel = createMock(InsertDefinitionModel.class);
InsertDefinitionFMModel fmModel = new InsertDefinitionFMModel(tModel);
TilesContainer container = createMock(TilesContainer.class);
+ ApplicationContext applicationContext = createMock(ApplicationContext.class);
+ expect(container.getApplicationContext()).andReturn(applicationContext);
HttpServletRequest request = createMock(HttpServletRequest.class);
- expect(request.getAttribute(ServletUtil.CURRENT_CONTAINER_ATTRIBUTE_NAME)).andReturn(null).times(2);
+ expect(request.getAttribute(ServletUtil.CURRENT_CONTAINER_ATTRIBUTE_NAME)).andReturn(null);
request.setAttribute(ServletUtil.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
- expectLastCall().times(2);
replay(request);
HttpRequestHashModel requestModel = new HttpRequestHashModel(request, objectWrapper);
GenericServlet servlet = createMock(GenericServlet.class);
ServletContext servletContext = createMock(ServletContext.class);
- expect(servlet.getServletContext()).andReturn(servletContext).times(CALL_COUNT);
- expect(servletContext.getAttribute(TilesAccess.CONTAINER_ATTRIBUTE)).andReturn(container).times(2);
+ expect(servlet.getServletContext()).andReturn(servletContext).times(2);
+ expect(servletContext.getAttribute(TilesAccess.CONTAINER_ATTRIBUTE)).andReturn(container);
replay(servlet, servletContext);
ServletContextHashModel servletContextModel = new ServletContextHashModel(servlet, objectWrapper);
expect(model.get(FreemarkerServlet.KEY_REQUEST)).andReturn(requestModel).times(2);
- expect(model.get(FreemarkerServlet.KEY_APPLICATION)).andReturn(servletContextModel).times(2);
+ expect(model.get(FreemarkerServlet.KEY_APPLICATION)).andReturn(servletContextModel);
initEnvironment();
TemplateDirectiveBody body = createMock(TemplateDirectiveBody.class);
@@ -147,14 +146,16 @@
params.put("role", objectWrapper.wrap("myRole"));
params.put("preparer", objectWrapper.wrap("myPreparer"));
- tModel.start(container, env);
- tModel.end(container, "myName", "myTemplate", "myTemplateType",
- "myTemplateExpression", "myRole", "myPreparer", env);
+ tModel.start(eq(container), isA(FreeMarkerTilesRequestContext.class));
+ tModel.end(eq(container), eq("myName"), eq("myTemplate"),
+ eq("myTemplateType"), eq("myTemplateExpression"), eq("myRole"),
+ eq("myPreparer"), isA(FreeMarkerTilesRequestContext.class));
body.render(isA(NullWriter.class));
- replay(tModel, body, container, attribute);
+ replay(tModel, body, container, attribute, applicationContext);
fmModel.execute(env, params, null, body);
- verify(template, model, request, tModel, body, container, servlet, servletContext, attribute);
+ verify(template, model, request, tModel, body, container, servlet,
+ servletContext, attribute, applicationContext);
}
/**