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/04/30 00:07:36 UTC
svn commit: r769961 [1/2] - in /tiles/framework/trunk:
tiles-api/src/main/java/org/apache/tiles/
tiles-core/src/main/java/org/apache/tiles/context/
tiles-core/src/main/java/org/apache/tiles/renderer/impl/
tiles-core/src/test/java/org/apache/tiles/defin...
Author: apetrelli
Date: Wed Apr 29 22:07:34 2009
New Revision: 769961
URL: http://svn.apache.org/viewvc?rev=769961&view=rev
Log:
TILES-400
FreeMarker attribute renderer created
TILES-408
A Velocity-styled tool has been created.
TILES-406
initContainer deprecated and test removed.
TILES-398
Velocity attribute renderer created.
TILES-403
Now TilesRequestContext can set content type and write response headers.
TILES-405
templateExpression and templateType now supported.
Removed:
tiles/framework/trunk/tiles-test/src/main/webapp/testinitcontainer.jsp
tiles/framework/trunk/tiles-test/src/test/selenium/InitContainerTest.html
tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/context/ExternalWriterHttpServletResponse.java
tiles/framework/trunk/tiles-velocity/src/test/java/org/apache/tiles/velocity/context/ExternalWriterHttpServletResponseTest.java
Modified:
tiles/framework/trunk/tiles-api/src/main/java/org/apache/tiles/Attribute.java
tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/TilesRequestContext.java
tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/TilesRequestContextWrapper.java
tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/renderer/impl/BasicRendererFactory.java
tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/definition/MockOnlyLocaleTilesContext.java
tiles/framework/trunk/tiles-freemarker/pom.xml
tiles/framework/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModel.java
tiles/framework/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertTemplateFMModel.java
tiles/framework/trunk/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModelTest.java
tiles/framework/trunk/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertTemplateFMModelTest.java
tiles/framework/trunk/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertDefinitionTag.java
tiles/framework/trunk/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertTemplateTag.java
tiles/framework/trunk/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/definition/InitContainerTag.java
tiles/framework/trunk/tiles-jsp/src/main/resources/META-INF/tld/tiles-jsp.tld
tiles/framework/trunk/tiles-portlet/src/main/java/org/apache/tiles/portlet/context/PortletTilesRequestContext.java
tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/ServletHeaderMap.java
tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/ServletTilesRequestContext.java
tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/ServletUtil.java
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/InsertDefinitionModel.java
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/InsertTemplateModel.java
tiles/framework/trunk/tiles-template/src/test/java/org/apache/tiles/template/InsertDefinitionModelTest.java
tiles/framework/trunk/tiles-template/src/test/java/org/apache/tiles/template/InsertTemplateModelTest.java
tiles/framework/trunk/tiles-test/pom.xml
tiles/framework/trunk/tiles-test/src/main/java/org/apache/tiles/test/factory/TestTilesContainerFactory.java
tiles/framework/trunk/tiles-test/src/main/webapp/WEB-INF/freemarker/tiles-defs.xml
tiles/framework/trunk/tiles-test/src/main/webapp/WEB-INF/velocity/tiles-defs.xml
tiles/framework/trunk/tiles-test/src/main/webapp/index.jsp
tiles/framework/trunk/tiles-test/src/main/webapp/velocity/layout_closebody.vm
tiles/framework/trunk/tiles-test/src/main/webapp/velocity/testdef.vm
tiles/framework/trunk/tiles-test/src/main/webapp/velocity/testdef_extend.vm
tiles/framework/trunk/tiles-test/src/main/webapp/velocity/testdef_preparer.vm
tiles/framework/trunk/tiles-test/src/main/webapp/velocity/testinsertdefinition_composite_tags.vm
tiles/framework/trunk/tiles-test/src/main/webapp/velocity/testinsertdefinition_composite_tags_includes_configured.vm
tiles/framework/trunk/tiles-test/src/main/webapp/velocity/testinsertdefinition_composite_tags_includes_configured_notype.vm
tiles/framework/trunk/tiles-test/src/main/webapp/velocity/testinsertdefinition_composite_tags_notype.vm
tiles/framework/trunk/tiles-test/src/main/webapp/velocity/testinsertdefinition_override.vm
tiles/framework/trunk/tiles-test/src/main/webapp/velocity/testinsertdefinition_override_and_not.vm
tiles/framework/trunk/tiles-test/src/main/webapp/velocity/testinsertnesteddefinition_tags.vm
tiles/framework/trunk/tiles-test/src/main/webapp/velocity/testinsertnestedlistdefinition_tags.vm
tiles/framework/trunk/tiles-test/src/main/webapp/velocity/testput.vm
tiles/framework/trunk/tiles-test/src/main/webapp/velocity/testput_cascaded.vm
tiles/framework/trunk/tiles-test/src/main/webapp/velocity/testput_cascaded_overridden.vm
tiles/framework/trunk/tiles-test/src/main/webapp/velocity/testput_cascaded_template.vm
tiles/framework/trunk/tiles-test/src/main/webapp/velocity/testput_el.vm
tiles/framework/trunk/tiles-test/src/main/webapp/velocity/testput_el_singleeval.vm
tiles/framework/trunk/tiles-test/src/main/webapp/velocity/testput_flush.vm
tiles/framework/trunk/tiles-test/src/main/webapp/velocity/testput_reversed.vm
tiles/framework/trunk/tiles-test/src/main/webapp/velocity/testput_reversed_explicit.vm
tiles/framework/trunk/tiles-test/src/main/webapp/velocity/testput_servlet.vm
tiles/framework/trunk/tiles-test/src/main/webapp/velocity/testputlist_cascaded.vm
tiles/framework/trunk/tiles-test/src/test/selenium/TestSuite.html
tiles/framework/trunk/tiles-velocity/pom.xml
tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/context/VelocityTilesRequestContext.java
tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertDefinitionVModel.java
tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertTemplateVModel.java
tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/Tiles2Tool.java
tiles/framework/trunk/tiles-velocity/src/main/resources/tools.xml
tiles/framework/trunk/tiles-velocity/src/test/java/org/apache/tiles/velocity/context/VelocityTilesRequestContextTest.java
tiles/framework/trunk/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/InsertDefinitionVModelTest.java
tiles/framework/trunk/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/InsertTemplateVModelTest.java
Modified: tiles/framework/trunk/tiles-api/src/main/java/org/apache/tiles/Attribute.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-api/src/main/java/org/apache/tiles/Attribute.java?rev=769961&r1=769960&r2=769961&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-api/src/main/java/org/apache/tiles/Attribute.java (original)
+++ tiles/framework/trunk/tiles-api/src/main/java/org/apache/tiles/Attribute.java Wed Apr 29 22:07:34 2009
@@ -21,6 +21,7 @@
package org.apache.tiles;
+import static org.apache.tiles.CompareUtil.*;
import java.io.Serializable;
import java.util.HashMap;
import java.util.HashSet;
@@ -491,4 +492,14 @@
renderer = attribute.getRenderer();
}
}
+
+ /** {@inheritDoc} */
+ @Override
+ public boolean equals(Object obj) {
+ Attribute attribute = (Attribute) obj;
+ return nullSafeEquals(value, attribute.value)
+ || nullSafeEquals(renderer, attribute.renderer)
+ || nullSafeEquals(roles, attribute.roles)
+ || nullSafeEquals(expression, attribute.expression);
+ }
}
Modified: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/TilesRequestContext.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/TilesRequestContext.java?rev=769961&r1=769960&r2=769961&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/TilesRequestContext.java (original)
+++ tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/TilesRequestContext.java Wed Apr 29 22:07:34 2009
@@ -123,6 +123,23 @@
PrintWriter getPrintWriter() throws IOException;
/**
+ * Sets the content type when rendering the result.
+ *
+ * @param contentType The content type. It should follow the specifications
+ * from W3C about content types.
+ * @since 2.2.0
+ */
+ void setContentType(String contentType);
+
+ /**
+ * Checks if the response has been committed.
+ *
+ * @return <code>true</code> only if the response has been committed.
+ * @since 2.2.0
+ */
+ boolean isResponseCommitted();
+
+ /**
* Return an immutable Map that maps request parameter names to the first
* (or only) value (as a String).
*
Modified: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/TilesRequestContextWrapper.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/TilesRequestContextWrapper.java?rev=769961&r1=769960&r2=769961&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/TilesRequestContextWrapper.java (original)
+++ tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/TilesRequestContextWrapper.java Wed Apr 29 22:07:34 2009
@@ -113,6 +113,16 @@
}
/** {@inheritDoc} */
+ public boolean isResponseCommitted() {
+ return context.isResponseCommitted();
+ }
+
+ /** {@inheritDoc} */
+ public void setContentType(String contentType) {
+ context.setContentType(contentType);
+ }
+
+ /** {@inheritDoc} */
public Map<String, String> getParam() {
return context.getParam();
}
Modified: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/renderer/impl/BasicRendererFactory.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/renderer/impl/BasicRendererFactory.java?rev=769961&r1=769960&r2=769961&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/renderer/impl/BasicRendererFactory.java (original)
+++ tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/renderer/impl/BasicRendererFactory.java Wed Apr 29 22:07:34 2009
@@ -23,6 +23,7 @@
import java.util.HashMap;
import java.util.Map;
+import org.apache.tiles.Initializable;
import org.apache.tiles.TilesApplicationContext;
import org.apache.tiles.TilesContainer;
import org.apache.tiles.awareness.TilesApplicationContextAware;
@@ -113,6 +114,11 @@
protected Map<String, AttributeRenderer> renderers;
/**
+ * Initialization parameters, as passed by the constructor.
+ */
+ private Map<String, String> initParameters;
+
+ /**
* The default renderer.
*
* @since 2.1.0
@@ -140,6 +146,7 @@
/** {@inheritDoc} */
public void init(Map<String, String> parameters) {
+ this.initParameters = parameters;
String defaultRendererParam = parameters.get(DEFAULT_RENDERER_INIT_PARAM);
if (defaultRendererParam == null) {
defaultRendererParam = DEFAULT_RENDERER_CLASS_NAME;
@@ -250,5 +257,8 @@
if (renderer instanceof AttributeEvaluatorAware) {
((AttributeEvaluatorAware) renderer).setEvaluator(evaluator);
}
+ if (renderer instanceof Initializable && initParameters != null) {
+ ((Initializable) renderer).init(initParameters);
+ }
}
}
Modified: tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/definition/MockOnlyLocaleTilesContext.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/definition/MockOnlyLocaleTilesContext.java?rev=769961&r1=769960&r2=769961&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/definition/MockOnlyLocaleTilesContext.java (original)
+++ tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/definition/MockOnlyLocaleTilesContext.java Wed Apr 29 22:07:34 2009
@@ -90,6 +90,16 @@
}
/** {@inheritDoc} */
+ public boolean isResponseCommitted() {
+ return false;
+ }
+
+ /** {@inheritDoc} */
+ public void setContentType(String contentType) {
+ // Does nothing
+ }
+
+ /** {@inheritDoc} */
public Map<String, String[]> getHeaderValues() {
return null;
}
Modified: tiles/framework/trunk/tiles-freemarker/pom.xml
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-freemarker/pom.xml?rev=769961&r1=769960&r2=769961&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-freemarker/pom.xml (original)
+++ tiles/framework/trunk/tiles-freemarker/pom.xml Wed Apr 29 22:07:34 2009
@@ -76,5 +76,10 @@
<version>2.4</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ <version>3.2.1</version>
+ </dependency>
</dependencies>
</project>
\ No newline at end of file
Modified: tiles/framework/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModel.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModel.java?rev=769961&r1=769960&r2=769961&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModel.java (original)
+++ tiles/framework/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModel.java Wed Apr 29 22:07:34 2009
@@ -38,7 +38,7 @@
* parameters, see
* {@link InsertDefinitionModel#start(org.apache.tiles.TilesContainer, Object...)}
* and
- * {@link InsertDefinitionModel#end(org.apache.tiles.TilesContainer, String, String, String, String, Object...)}
+ * {@link InsertDefinitionModel#end(org.apache.tiles.TilesContainer, String, String, String, String, String, String, Object...)}
* .
*
* @version $Rev$ $Date$
@@ -71,6 +71,8 @@
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);
}
Modified: tiles/framework/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertTemplateFMModel.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertTemplateFMModel.java?rev=769961&r1=769960&r2=769961&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertTemplateFMModel.java (original)
+++ tiles/framework/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertTemplateFMModel.java Wed Apr 29 22:07:34 2009
@@ -38,7 +38,7 @@
* parameters, see
* {@link InsertTemplateModel#start(org.apache.tiles.TilesContainer, Object...)}
* and
- * {@link InsertTemplateModel#end(org.apache.tiles.TilesContainer, String, String, String, Object...)}
+ * {@link InsertTemplateModel#end(org.apache.tiles.TilesContainer, String, String, String, String, String, Object...)}
* .
*
* @version $Rev$ $Date$
@@ -71,6 +71,8 @@
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);
}
Modified: tiles/framework/trunk/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModelTest.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModelTest.java?rev=769961&r1=769960&r2=769961&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModelTest.java (original)
+++ tiles/framework/trunk/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModelTest.java Wed Apr 29 22:07:34 2009
@@ -142,11 +142,14 @@
Attribute attribute = createMock(Attribute.class);
params.put("name", objectWrapper.wrap("myName"));
params.put("template", objectWrapper.wrap("myTemplate"));
+ params.put("templateType", objectWrapper.wrap("myTemplateType"));
+ params.put("templateExpression", objectWrapper.wrap("myTemplateExpression"));
params.put("role", objectWrapper.wrap("myRole"));
params.put("preparer", objectWrapper.wrap("myPreparer"));
tModel.start(container, env);
- tModel.end(container, "myName", "myTemplate", "myRole", "myPreparer", env);
+ tModel.end(container, "myName", "myTemplate", "myTemplateType",
+ "myTemplateExpression", "myRole", "myPreparer", env);
body.render(isA(NullWriter.class));
replay(tModel, body, container, attribute);
Modified: tiles/framework/trunk/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertTemplateFMModelTest.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertTemplateFMModelTest.java?rev=769961&r1=769960&r2=769961&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertTemplateFMModelTest.java (original)
+++ tiles/framework/trunk/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertTemplateFMModelTest.java Wed Apr 29 22:07:34 2009
@@ -142,11 +142,14 @@
Map<String, Object> params = new HashMap<String, Object>();
Attribute attribute = createMock(Attribute.class);
params.put("template", objectWrapper.wrap("myTemplate"));
+ params.put("templateType", objectWrapper.wrap("myTemplateType"));
+ params.put("templateExpression", objectWrapper.wrap("myTemplateExpression"));
params.put("role", objectWrapper.wrap("myRole"));
params.put("preparer", objectWrapper.wrap("myPreparer"));
tModel.start(container, env);
- tModel.end(container, "myTemplate", "myRole", "myPreparer", env);
+ tModel.end(container, "myTemplate", "myTemplateType",
+ "myTemplateExpression", "myRole", "myPreparer", env);
body.render(isA(NullWriter.class));
replay(tModel, body, container, attribute);
Modified: tiles/framework/trunk/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertDefinitionTag.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertDefinitionTag.java?rev=769961&r1=769960&r2=769961&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertDefinitionTag.java (original)
+++ tiles/framework/trunk/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertDefinitionTag.java Wed Apr 29 22:07:34 2009
@@ -80,6 +80,20 @@
private String template;
/**
+ * The type of the template attribute.
+ *
+ * @since 2.2.0
+ */
+ private String templateType;
+
+ /**
+ * The expression to evaluate to get the value of the template.
+ *
+ * @since 2.2.0
+ */
+ private String templateExpression;
+
+ /**
* Returns the name of the definition to insert.
*
* @return The name of the definition.
@@ -209,6 +223,46 @@
this.template = template;
}
+ /**
+ * Returns the type of the template attribute.
+ *
+ * @return The template type.
+ * @since 2.2.0
+ */
+ public String getTemplateType() {
+ return templateType;
+ }
+
+ /**
+ * Sets the type of the template attribute.
+ *
+ * @param templateType The template type.
+ * @since 2.2.0
+ */
+ public void setTemplateType(String templateType) {
+ this.templateType = templateType;
+ }
+
+ /**
+ * Returns the expression to evaluate to get the value of the template.
+ *
+ * @return The template expression.
+ * @since 2.2.0
+ */
+ public String getTemplateExpression() {
+ return templateExpression;
+ }
+
+ /**
+ * Sets the expression to evaluate to get the value of the template.
+ *
+ * @param templateExpression The template expression.
+ * @since 2.2.0
+ */
+ public void setTemplateExpression(String templateExpression) {
+ this.templateExpression = templateExpression;
+ }
+
/** {@inheritDoc} */
@Override
public void release() {
@@ -232,7 +286,7 @@
@Override
public int doEndTag() throws TilesJspException {
model.end(JspUtil.getCurrentContainer(pageContext), name, template,
- role, preparer, pageContext);
+ templateType, templateExpression, role, preparer, pageContext);
return EVAL_PAGE;
}
}
Modified: tiles/framework/trunk/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertTemplateTag.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertTemplateTag.java?rev=769961&r1=769960&r2=769961&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertTemplateTag.java (original)
+++ tiles/framework/trunk/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertTemplateTag.java Wed Apr 29 22:07:34 2009
@@ -75,6 +75,20 @@
private String template;
/**
+ * The type of the template attribute.
+ *
+ * @since 2.2.0
+ */
+ private String templateType;
+
+ /**
+ * The expression to evaluate to get the value of the template.
+ *
+ * @since 2.2.0
+ */
+ private String templateExpression;
+
+ /**
* Returns the role to check. If the user is in the specified role, the tag is
* taken into account; otherwise, the tag is ignored (skipped).
*
@@ -186,6 +200,46 @@
this.template = template;
}
+ /**
+ * Returns the type of the template attribute.
+ *
+ * @return The template type.
+ * @since 2.2.0
+ */
+ public String getTemplateType() {
+ return templateType;
+ }
+
+ /**
+ * Sets the type of the template attribute.
+ *
+ * @param templateType The template type.
+ * @since 2.2.0
+ */
+ public void setTemplateType(String templateType) {
+ this.templateType = templateType;
+ }
+
+ /**
+ * Returns the expression to evaluate to get the value of the template.
+ *
+ * @return The template expression.
+ * @since 2.2.0
+ */
+ public String getTemplateExpression() {
+ return templateExpression;
+ }
+
+ /**
+ * Sets the expression to evaluate to get the value of the template.
+ *
+ * @param templateExpression The template expression.
+ * @since 2.2.0
+ */
+ public void setTemplateExpression(String templateExpression) {
+ this.templateExpression = templateExpression;
+ }
+
/** {@inheritDoc} */
@Override
protected void reset() {
@@ -207,7 +261,8 @@
/** {@inheritDoc} */
@Override
public int doEndTag() throws TilesJspException {
- model.end(JspUtil.getCurrentContainer(pageContext), template, role, preparer, pageContext);
+ model.end(JspUtil.getCurrentContainer(pageContext), template,
+ templateType, templateExpression, role, preparer, pageContext);
return EVAL_PAGE;
}
}
Modified: tiles/framework/trunk/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/definition/InitContainerTag.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/definition/InitContainerTag.java?rev=769961&r1=769960&r2=769961&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/definition/InitContainerTag.java (original)
+++ tiles/framework/trunk/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/definition/InitContainerTag.java Wed Apr 29 22:07:34 2009
@@ -53,7 +53,11 @@
* Init definitions impl.
*
* @version $Rev$ $Date$
+ * @deprecated Don't use it, to initialize Tiles use
+ * {@link org.apache.tiles.startup.TilesInitializer} and the various ways to
+ * initialize Tiles, like {@link org.apache.tiles.web.startup.TilesServlet}.
*/
+@Deprecated
public class InitContainerTag extends TilesBodyTag {
/**
@@ -258,19 +262,18 @@
}
/** {@inheritDoc} */
- @SuppressWarnings("deprecation")
public Servlet getServlet(String string) throws ServletException {
return rootContext.getServlet(string);
}
/** {@inheritDoc} */
- @SuppressWarnings({ "deprecation", "unchecked" })
+ @SuppressWarnings({ "unchecked" })
public Enumeration getServlets() {
return rootContext.getServlets();
}
/** {@inheritDoc} */
- @SuppressWarnings({ "deprecation", "unchecked" })
+ @SuppressWarnings({ "unchecked" })
public Enumeration getServletNames() {
return rootContext.getServletNames();
}
@@ -281,7 +284,6 @@
}
/** {@inheritDoc} */
- @SuppressWarnings("deprecation")
public void log(Exception exception, String string) {
rootContext.log(exception, string);
}
Modified: tiles/framework/trunk/tiles-jsp/src/main/resources/META-INF/tld/tiles-jsp.tld
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-jsp/src/main/resources/META-INF/tld/tiles-jsp.tld?rev=769961&r1=769960&r2=769961&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-jsp/src/main/resources/META-INF/tld/tiles-jsp.tld (original)
+++ tiles/framework/trunk/tiles-jsp/src/main/resources/META-INF/tld/tiles-jsp.tld Wed Apr 29 22:07:34 2009
@@ -41,17 +41,17 @@
<description>
<![CDATA[
<p><strong>Insert a template.</strong></p>
- <p>Insert a template with the possibility to pass
+ <p>Insert a template with the possibility to pass
parameters (called attributes).
A template can be seen as a procedure that can take parameters or attributes.
- <code><tiles:insertTemplate></code> allows to define these attributes
+ <code><tiles:insertTemplate></code> allows to define these attributes
and pass them to the inserted jsp page, called template.
Attributes are defined using nested tag
<code><tiles:putAttribute></code> or
<code><tiles:putListAttribute></code>.
</p>
<p>You must specify <code>template</code> attribute, for inserting a template</p>
-
+
<p><strong>Example : </strong></p>
<pre>
<code>
@@ -85,7 +85,7 @@
<type>boolean</type>
<description>
<![CDATA[
- <p>True or false. If true, current page out stream is flushed
+ <p>True or false. If true, current page out stream is flushed
before insertion.</p>
]]>
</description>
@@ -132,16 +132,16 @@
<description>
<![CDATA[
<p><strong>Insert a definition.</strong></p>
- <p>Insert a definition with the possibility to override and specify
+ <p>Insert a definition with the possibility to override and specify
parameters (called attributes).
A definition can be seen as a (partially or totally) filled template that
can override or complete attribute values.
- <code><tiles:insertDefinition></code> allows to define these attributes
+ <code><tiles:insertDefinition></code> allows to define these attributes
and pass them to the inserted jsp page, called template.
Attributes are defined using nested tag <code><tiles:putAttribute></code> or
<code><tiles:putListAttribute></code>.
</p>
- <p>You must specify <code>name</code> tag attribute, for inserting a definition from
+ <p>You must specify <code>name</code> tag attribute, for inserting a definition from
definitions factory.</p>
<p><strong>Example : </strong></p>
<pre>
@@ -174,7 +174,7 @@
<description>
<![CDATA[
<p>A string representing the URI of a template (for example, a JSP
- page) that will override the one used by the definition itself.
+ page) that will override the one used by the definition itself.
</p>
]]>
</description>
@@ -186,7 +186,7 @@
<type>boolean</type>
<description>
<![CDATA[
- <p>True or false. If true, current page out stream is flushed
+ <p>True or false. If true, current page out stream is flushed
before insertion.</p>
]]>
</description>
@@ -234,13 +234,13 @@
<![CDATA[
<p><strong>Inserts the value of an attribute into the page.</strong></p>
<p>This tag can be flexibly used to insert the value of an attribute into a page.
- As in other usages in Tiles, every attribute can be determined to have a "type",
+ As in other usages in Tiles, every attribute can be determined to have a "type",
either set explicitly when it was defined, or "computed". If the type is not explicit, then
if the attribute value is a valid definition, it will be inserted as such. Otherwise,
- if it begins with a "/" character, it will be treated as a "template". Finally, if it
- has not otherwise been assigned a type, it will be treated as a String and included without
+ if it begins with a "/" character, it will be treated as a "template". Finally, if it
+ has not otherwise been assigned a type, it will be treated as a String and included without
any special handling.</p>
-
+
<p><strong>Example : </strong></p>
<pre>
<code>
@@ -279,7 +279,7 @@
<type>boolean</type>
<description>
<![CDATA[
- <p>True or false. If true, current page out stream is flushed
+ <p>True or false. If true, current page out stream is flushed
before insertion.</p>
]]>
</description>
@@ -374,7 +374,7 @@
<rtexprvalue>true</rtexprvalue>
<description>
<![CDATA[
- <p>Specifies the name under which the newly created definition bean
+ <p>Specifies the name under which the newly created definition bean
will be saved.</p>
]]>
</description>
@@ -385,7 +385,7 @@
<rtexprvalue>true</rtexprvalue>
<description>
<![CDATA[
- <p>A string representing the URI of a template
+ <p>A string representing the URI of a template
(a JSP page).</p>
]]>
</description>
@@ -396,7 +396,7 @@
<rtexprvalue>true</rtexprvalue>
<description>
<![CDATA[
- <p>Role to check before inserting this definition. If role is not
+ <p>Role to check before inserting this definition. If role is not
defined for current user, definition is not inserted. Checking is
done at insert time, not during definition process.</p>
]]>
@@ -408,7 +408,7 @@
<rtexprvalue>true</rtexprvalue>
<description>
<![CDATA[
- <p>Name of a parent definition that is used to initialize this new
+ <p>Name of a parent definition that is used to initialize this new
definition. Parent definition is searched in definitions factory.</p>
]]>
</description>
@@ -433,11 +433,11 @@
<![CDATA[
<p><strong>Put an attribute in enclosing attribute container tag.</strong></p>
<p>
- Enclosing attribute container tag can be :
+ Enclosing attribute container tag can be :
<ul>
- <li><initContainer></li>
- <li><definition></li>
- <li><insertAttribute></li>
+ <li><initContainer></li>
+ <li><definition></li>
+ <li><insertAttribute></li>
<li><insertDefinition></li>
<li><putListAttribute></li>
</ul>
@@ -591,7 +591,7 @@
<![CDATA[
<p><strong>Add an element to the surrounding list.
Equivalent to 'putAttribute', but for list element.</strong></p>
-
+
<p>Add an element to the surrounding list.
This tag can only be used inside 'putListAttribute' or 'addListAttribute' tags.
Value can come from a direct assignment (value="aValue")</p>
@@ -662,8 +662,8 @@
<p><strong>
Render the value of the specified template attribute to the current JspWriter
</strong></p>
-
- <p>Retrieve the value of the specified template attribute
+
+ <p>Retrieve the value of the specified template attribute
property, and render it to the current JspWriter as a String.
The usual toString() conversions is applied on found value.</p>
<p>Throw a JSPException if named value is not found.</p>
@@ -716,7 +716,7 @@
<description>
<![CDATA[
<p><strong>Use attribute value inside page.</strong></p>
- <p>Declare a Java variable, and an attribute in the specified scope,
+ <p>Declare a Java variable, and an attribute in the specified scope,
using its attribute value.</p>
<p>Java variable and attribute will have the name specified by 'id',
or the original name if not specified.</p>
@@ -788,7 +788,7 @@
<p>Import attribute(s) to requested scope.
Attribute name and scope are optional. If not specified, all
attributes are imported in page scope.
- Once imported, an attribute can be used as any other beans from jsp
+ Once imported, an attribute can be used as any other beans from jsp
contexts.</p>
]]>
</description>
@@ -831,8 +831,8 @@
<type>boolean</type>
<description>
<![CDATA[
- <p>If this attribute is set to true, and the attribute specified by
- the name does not exist, simply return without error. The default
+ <p>If this attribute is set to true, and the attribute specified by
+ the name does not exist, simply return without error. The default
value is false, which will cause a runtime exception to be thrown.</p>
]]>
</description>
@@ -844,6 +844,8 @@
<body-content>JSP</body-content>
<description>
<![CDATA[
+ <p><strong>THIS TAG HAS BEEN DEPRECATED! Please use TilesInitializer or a
+ servlet-based way, like TilesServlet, for initialization!</strong></p>
<p><strong>Initialize the TilesContainer.</strong></p>
<p>
In order to use the Tiles system, a TilesContainer must be instantiated.
Modified: tiles/framework/trunk/tiles-portlet/src/main/java/org/apache/tiles/portlet/context/PortletTilesRequestContext.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-portlet/src/main/java/org/apache/tiles/portlet/context/PortletTilesRequestContext.java?rev=769961&r1=769960&r2=769961&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-portlet/src/main/java/org/apache/tiles/portlet/context/PortletTilesRequestContext.java (original)
+++ tiles/framework/trunk/tiles-portlet/src/main/java/org/apache/tiles/portlet/context/PortletTilesRequestContext.java Wed Apr 29 22:07:34 2009
@@ -310,6 +310,16 @@
}
/** {@inheritDoc} */
+ public boolean isResponseCommitted() {
+ return ((RenderResponse) response).isCommitted();
+ }
+
+ /** {@inheritDoc} */
+ public void setContentType(String contentType) {
+ ((RenderResponse) response).setContentType(contentType);
+ }
+
+ /** {@inheritDoc} */
public Object[] getRequestObjects() {
if (requestObjects == null) {
requestObjects = new Object[2];
Modified: tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/ServletHeaderMap.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/ServletHeaderMap.java?rev=769961&r1=769960&r2=769961&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/ServletHeaderMap.java (original)
+++ tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/ServletHeaderMap.java Wed Apr 29 22:07:34 2009
@@ -30,6 +30,7 @@
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import org.apache.tiles.context.MapEntry;
@@ -47,9 +48,23 @@
* Constructor.
*
* @param request The request object to use.
+ * @deprecated Use {@link #ServletHeaderMap(HttpServletRequest,HttpServletResponse)} instead
*/
public ServletHeaderMap(HttpServletRequest request) {
+ this(request, null);
+ }
+
+
+ /**
+ * Constructor.
+ *
+ * @param request The request object to use.
+ * @param response The response object to use.
+ * @since 2.2.0
+ */
+ public ServletHeaderMap(HttpServletRequest request, HttpServletResponse response) {
this.request = request;
+ this.response = response;
}
@@ -58,6 +73,11 @@
*/
private HttpServletRequest request = null;
+ /**
+ * The request object to use.
+ */
+ private HttpServletResponse response = null;
+
/** {@inheritDoc} */
public void clear() {
@@ -149,13 +169,17 @@
/** {@inheritDoc} */
public String put(String key, String value) {
- throw new UnsupportedOperationException();
+ response.setHeader(key, value);
+ return value;
}
/** {@inheritDoc} */
public void putAll(Map<? extends String, ? extends String> map) {
- throw new UnsupportedOperationException();
+ for (Map.Entry<? extends String, ? extends String> entry : map
+ .entrySet()) {
+ response.setHeader(entry.getKey(), entry.getValue());
+ }
}
Modified: tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/ServletTilesRequestContext.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/ServletTilesRequestContext.java?rev=769961&r1=769960&r2=769961&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/ServletTilesRequestContext.java (original)
+++ tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/ServletTilesRequestContext.java Wed Apr 29 22:07:34 2009
@@ -148,7 +148,7 @@
public Map<String, String> getHeader() {
if ((header == null) && (request != null)) {
- header = new ServletHeaderMap(request);
+ header = new ServletHeaderMap(request, response);
}
return (header);
@@ -286,6 +286,16 @@
}
/** {@inheritDoc} */
+ public boolean isResponseCommitted() {
+ return response.isCommitted();
+ }
+
+ /** {@inheritDoc} */
+ public void setContentType(String contentType) {
+ response.setContentType(contentType);
+ }
+
+ /** {@inheritDoc} */
public Locale getRequestLocale() {
return request.getLocale();
}
Modified: tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/ServletUtil.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/ServletUtil.java?rev=769961&r1=769960&r2=769961&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/ServletUtil.java (original)
+++ tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/ServletUtil.java Wed Apr 29 22:07:34 2009
@@ -31,8 +31,11 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.tiles.TilesApplicationContext;
import org.apache.tiles.TilesContainer;
import org.apache.tiles.access.TilesAccess;
+import org.apache.tiles.context.TilesRequestContext;
+import org.apache.tiles.context.TilesRequestContextWrapper;
import org.apache.tiles.impl.NoSuchContainerException;
import org.apache.tiles.util.TilesIOException;
@@ -261,4 +264,47 @@
}
return composeStack;
}
+
+ /**
+ * Opens a TilesRequestContext until it finds a ServletTilesRequestContext.
+ *
+ * @param request The request to open.
+ * @return The servlet-based request context.
+ * @throws NotAServletEnvironmentException If a servlet-based request
+ * context could not be found.
+ * @since 2.2.0
+ */
+ public static ServletTilesRequestContext getServletRequest(TilesRequestContext request) {
+ TilesRequestContext currentRequest = request;
+ while (true) {
+ if (currentRequest == null) {
+ throw new NotAServletEnvironmentException("Last Tiles request context is null");
+ }
+
+ if (currentRequest instanceof ServletTilesRequestContext) {
+ return (ServletTilesRequestContext) currentRequest;
+ }
+ if (!(currentRequest instanceof TilesRequestContextWrapper)) {
+ throw new NotAServletEnvironmentException("Not a Servlet environment, not supported");
+ }
+ currentRequest = ((TilesRequestContextWrapper) currentRequest).getWrappedRequest();
+ }
+ }
+
+ /**
+ * Gets a servlet context from a TilesApplicationContext.
+ *
+ * @param applicationContext The application context to analyze.
+ * @return The servlet context.
+ * @throws NotAServletEnvironmentException If the application context is not
+ * servlet-based.
+ * @since 2.2.0
+ */
+ public static ServletContext getServletContext(TilesApplicationContext applicationContext) {
+ if (applicationContext instanceof ServletTilesApplicationContext) {
+ return (ServletContext) ((ServletTilesApplicationContext) applicationContext).getContext();
+ }
+
+ throw new NotAServletEnvironmentException("Not a Servlet-based environment");
+ }
}
Modified: tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/InsertDefinitionModel.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/InsertDefinitionModel.java?rev=769961&r1=769960&r2=769961&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/InsertDefinitionModel.java (original)
+++ tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/InsertDefinitionModel.java Wed Apr 29 22:07:34 2009
@@ -81,6 +81,8 @@
* @param definitionName The name of the definition to render.
* @param template If specified, this template will be used instead of the
* one used by the definition.
+ * @param templateType The type of the template attribute.
+ * @param templateExpression The expression to evaluate to get the value of the template.
* @param role A comma-separated list of roles. If present, the definition
* will be rendered only if the current user belongs to one of the roles.
* @param preparer The preparer to use to invoke before the definition is
@@ -90,8 +92,8 @@
* @since 2.2.0
*/
public void end(TilesContainer container, String definitionName,
- String template, String role, String preparer,
- Object... requestItems) {
+ String template, String templateType, String templateExpression,
+ String role, String preparer, Object... requestItems) {
try {
AttributeContext attributeContext = container
.getAttributeContext(requestItems);
@@ -113,6 +115,8 @@
* @param definitionName The name of the definition to render.
* @param template If specified, this template will be used instead of the
* one used by the definition.
+ * @param templateType The type of the template attribute.
+ * @param templateExpression The expression to evaluate to get the value of the template.
* @param role A comma-separated list of roles. If present, the definition
* will be rendered only if the current user belongs to one of the roles.
* @param preparer The preparer to use to invoke before the definition is
@@ -122,9 +126,9 @@
* @since 2.2.0
*/
public void execute(TilesContainer container, String definitionName,
- String template, String role, String preparer,
- Object... requestItems) {
+ String template, String templateType, String templateExpression,
+ String role, String preparer, Object... requestItems) {
start(container, requestItems);
- end(container, definitionName, template, role, preparer, requestItems);
+ end(container, definitionName, template, templateType, templateExpression, role, preparer, requestItems);
}
}
Modified: tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/InsertTemplateModel.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/InsertTemplateModel.java?rev=769961&r1=769960&r2=769961&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/InsertTemplateModel.java (original)
+++ tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/InsertTemplateModel.java Wed Apr 29 22:07:34 2009
@@ -79,6 +79,8 @@
*
* @param container The Tiles container.
* @param template The template to render.
+ * @param templateType The type of the template attribute.
+ * @param templateExpression The expression to evaluate to get the value of the template.
* @param role A comma-separated list of roles. If present, the template
* will be rendered only if the current user belongs to one of the roles.
* @param preparer The preparer to use to invoke before the definition is
@@ -87,14 +89,18 @@
* @param requestItems The request objects.
* @since 2.2.0
*/
- public void end(TilesContainer container, String template, String role,
- String preparer, Object... requestItems) {
+ public void end(TilesContainer container, String template, String templateType,
+ String templateExpression, String role, String preparer, Object... requestItems) {
try {
AttributeContext attributeContext = container
.getAttributeContext(requestItems);
Attribute templateAttribute = Attribute
.createTemplateAttribute(template);
templateAttribute.setRole(role);
+ if (templateType != null) {
+ templateAttribute.setRenderer(templateType);
+ }
+ templateAttribute.setExpression(templateExpression);
attributeContext.setPreparer(preparer);
attributeContext.setTemplateAttribute(templateAttribute);
container.renderContext(requestItems);
@@ -108,6 +114,8 @@
*
* @param container The Tiles container.
* @param template The template to render.
+ * @param templateType The type of the template attribute.
+ * @param templateExpression The expression to evaluate to get the value of the template.
* @param role A comma-separated list of roles. If present, the template
* will be rendered only if the current user belongs to one of the roles.
* @param preparer The preparer to use to invoke before the definition is
@@ -116,9 +124,9 @@
* @param requestItems The request objects.
* @since 2.2.0
*/
- public void execute(TilesContainer container, String template, String role,
- String preparer, Object... requestItems) {
+ public void execute(TilesContainer container, String template, String templateType,
+ String templateExpression, String role, String preparer, Object... requestItems) {
start(container, requestItems);
- end(container, template, role, preparer, requestItems);
+ end(container, template, templateType, templateExpression, role, preparer, requestItems);
}
}
Modified: tiles/framework/trunk/tiles-template/src/test/java/org/apache/tiles/template/InsertDefinitionModelTest.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-template/src/test/java/org/apache/tiles/template/InsertDefinitionModelTest.java?rev=769961&r1=769960&r2=769961&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-template/src/test/java/org/apache/tiles/template/InsertDefinitionModelTest.java (original)
+++ tiles/framework/trunk/tiles-template/src/test/java/org/apache/tiles/template/InsertDefinitionModelTest.java Wed Apr 29 22:07:34 2009
@@ -69,7 +69,7 @@
/**
* Test method for {@link org.apache.tiles.template.InsertDefinitionModel
* #end(org.apache.tiles.TilesContainer, java.lang.String, java.lang.String,
- * java.lang.String, java.lang.String, java.lang.Object[])}.
+ * String, String, java.lang.String, java.lang.String, java.lang.Object[])}.
*/
@Test
public void testEnd() {
@@ -84,14 +84,16 @@
container.render("myDefinitionName", requestItem);
replay(container, attributeContext);
- model.end(container, "myDefinitionName", "myTemplate", "myRole", "myPreparer", requestItem);
+ model.end(container, "myDefinitionName", "myTemplate",
+ "myTemplateType", "myTemplateExpression", "myRole",
+ "myPreparer", requestItem);
verify(container, attributeContext);
}
/**
* Test method for {@link org.apache.tiles.template.InsertDefinitionModel
* #execute(org.apache.tiles.TilesContainer, java.lang.String, java.lang.String,
- * java.lang.String, java.lang.String, java.lang.Object[])}.
+ * String, String, java.lang.String, java.lang.String, java.lang.Object[])}.
*/
@Test
public void testExecute() {
@@ -107,7 +109,9 @@
container.render("myDefinitionName", requestItem);
replay(container, attributeContext);
- model.execute(container, "myDefinitionName", "myTemplate", "myRole", "myPreparer", requestItem);
+ model.execute(container, "myDefinitionName", "myTemplate",
+ "myTemplateType", "myTemplateExpression", "myRole",
+ "myPreparer", requestItem);
verify(container, attributeContext);
}
Modified: tiles/framework/trunk/tiles-template/src/test/java/org/apache/tiles/template/InsertTemplateModelTest.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-template/src/test/java/org/apache/tiles/template/InsertTemplateModelTest.java?rev=769961&r1=769960&r2=769961&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-template/src/test/java/org/apache/tiles/template/InsertTemplateModelTest.java (original)
+++ tiles/framework/trunk/tiles-template/src/test/java/org/apache/tiles/template/InsertTemplateModelTest.java Wed Apr 29 22:07:34 2009
@@ -68,7 +68,7 @@
/**
* Test method for {@link org.apache.tiles.template.InsertTemplateModel
- * #end(TilesContainer, String, String, String, Object...)}.
+ * #end(TilesContainer, String, String, String, String, String, Object...)}.
*/
@Test
public void testEnd() {
@@ -83,13 +83,13 @@
container.renderContext(requestItem);
replay(container, attributeContext);
- model.end(container, "myTemplate", "myRole", "myPreparer", requestItem);
+ model.end(container, "myTemplate", "myTemplateType", "myTemplateExpression", "myRole", "myPreparer", requestItem);
verify(container, attributeContext);
}
/**
* Test method for {@link org.apache.tiles.template.InsertTemplateModel
- * #execute(TilesContainer, String, String, String, Object...)}.
+ * #execute(TilesContainer, String, String, String, String, String, Object...)}.
*/
@Test
public void testExecute() {
@@ -105,7 +105,7 @@
container.renderContext(requestItem);
replay(container, attributeContext);
- model.execute(container, "myTemplate", "myRole", "myPreparer", requestItem);
+ model.execute(container, "myTemplate", "myTemplateType", "myTemplateExpression", "myRole", "myPreparer", requestItem);
verify(container, attributeContext);
}
Modified: tiles/framework/trunk/tiles-test/pom.xml
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-test/pom.xml?rev=769961&r1=769960&r2=769961&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-test/pom.xml (original)
+++ tiles/framework/trunk/tiles-test/pom.xml Wed Apr 29 22:07:34 2009
@@ -35,7 +35,7 @@
<name>Tiles - Apps - Test</name>
<description>Tiles Test web application: tests Tiles functionality.
</description>
-
+
<dependencies>
<dependency>
<groupId>${pom.groupId}</groupId>
@@ -113,7 +113,7 @@
<version>2.5.6</version>
</dependency>
</dependencies>
-
+
<build>
<plugins>
<plugin>
@@ -217,7 +217,7 @@
</repository>
</repositories>
</profile>
-
+
<profile>
<id>hostedqa</id>
<dependencies>
Modified: tiles/framework/trunk/tiles-test/src/main/java/org/apache/tiles/test/factory/TestTilesContainerFactory.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-test/src/main/java/org/apache/tiles/test/factory/TestTilesContainerFactory.java?rev=769961&r1=769960&r2=769961&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-test/src/main/java/org/apache/tiles/test/factory/TestTilesContainerFactory.java (original)
+++ tiles/framework/trunk/tiles-test/src/main/java/org/apache/tiles/test/factory/TestTilesContainerFactory.java Wed Apr 29 22:07:34 2009
@@ -47,6 +47,7 @@
import org.apache.tiles.evaluator.el.TilesContextELResolver;
import org.apache.tiles.factory.BasicTilesContainerFactory;
import org.apache.tiles.freemarker.context.FreeMarkerTilesRequestContextFactory;
+import org.apache.tiles.freemarker.renderer.FreeMarkerAttributeRenderer;
import org.apache.tiles.impl.BasicTilesContainer;
import org.apache.tiles.impl.mgmt.CachingTilesContainer;
import org.apache.tiles.locale.LocaleResolver;
@@ -54,6 +55,8 @@
import org.apache.tiles.test.evaluator.el.MultiversionExpressionFactoryFactory;
import org.apache.tiles.test.renderer.ReverseStringAttributeRenderer;
import org.apache.tiles.velocity.context.VelocityTilesRequestContextFactory;
+import org.apache.tiles.velocity.renderer.TilesApplicationContextJeeConfig;
+import org.apache.tiles.velocity.renderer.VelocityAttributeRenderer;
/**
@@ -112,6 +115,28 @@
renderer.setRequestContextFactory(contextFactory);
renderer.setEvaluator(evaluator);
rendererFactory.registerRenderer("reversed", renderer);
+
+ FreeMarkerAttributeRenderer freemarkerRenderer = new FreeMarkerAttributeRenderer();
+ freemarkerRenderer.setApplicationContext(applicationContext);
+ freemarkerRenderer.setEvaluator(evaluator);
+ freemarkerRenderer.setRequestContextFactory(contextFactory);
+ freemarkerRenderer.setParameter("TemplatePath", "/");
+ freemarkerRenderer.setParameter("NoCache", "true");
+ freemarkerRenderer.setParameter("ContentType", "text/html");
+ freemarkerRenderer.setParameter("template_update_delay", "0");
+ freemarkerRenderer.setParameter("default_encoding", "ISO-8859-1");
+ freemarkerRenderer.setParameter("number_format", "0.##########");
+ freemarkerRenderer.commit();
+ rendererFactory.registerRenderer("freemarker", freemarkerRenderer);
+
+ VelocityAttributeRenderer velocityRenderer = new VelocityAttributeRenderer();
+ velocityRenderer.setApplicationContext(applicationContext);
+ velocityRenderer.setEvaluator(evaluator);
+ velocityRenderer.setRequestContextFactory(contextFactory);
+ velocityRenderer.setParameter("org.apache.velocity.toolbox", "/WEB-INF/tools.xml");
+ velocityRenderer.setParameter("org.apache.velocity.properties", "/WEB-INF/velocity.properties");
+ velocityRenderer.commit();
+ rendererFactory.registerRenderer("velocity", velocityRenderer);
}
/** {@inheritDoc} */
Modified: tiles/framework/trunk/tiles-test/src/main/webapp/WEB-INF/freemarker/tiles-defs.xml
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-test/src/main/webapp/WEB-INF/freemarker/tiles-defs.xml?rev=769961&r1=769960&r2=769961&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-test/src/main/webapp/WEB-INF/freemarker/tiles-defs.xml (original)
+++ tiles/framework/trunk/tiles-test/src/main/webapp/WEB-INF/freemarker/tiles-defs.xml Wed Apr 29 22:07:34 2009
@@ -35,48 +35,48 @@
<!-- ======================================================= -->
<!-- Doc index page description -->
- <definition name="freemarker.test.inner.definition" template="/freemarker/layout.ftl">
+ <definition name="freemarker.test.inner.definition" template="/freemarker/layout.ftl" templateType="freemarker">
<put-attribute name="title" value="This is a configured inner definition."/>
- <put-attribute name="header" value="/freemarker/header.ftl"/>
- <put-attribute name="body" value="/freemarker/body.ftl"/>
+ <put-attribute name="header" value="/freemarker/header.ftl" type="freemarker" />
+ <put-attribute name="body" value="/freemarker/body.ftl" type="freemarker" />
</definition>
- <definition name="freemarker.test.definition" template="/freemarker/layout.ftl">
+ <definition name="freemarker.test.definition" template="/freemarker/layout.ftl" templateType="freemarker">
<put-attribute name="title" value="This is the title."/>
- <put-attribute name="header" value="/freemarker/header.ftl"/>
- <put-attribute name="body" value="/freemarker/body.ftl"/>
+ <put-attribute name="header" value="/freemarker/header.ftl" type="freemarker" />
+ <put-attribute name="body" value="/freemarker/body.ftl" type="freemarker" />
</definition>
- <definition name="freemarker.test.definition.ignore" template="/freemarker/layout_ignore.ftl">
+ <definition name="freemarker.test.definition.ignore" template="/freemarker/layout_ignore.ftl" templateType="freemarker">
<put-attribute name="title" value="This is the title."/>
- <put-attribute name="body" value="/freemarker/body.ftl"/>
+ <put-attribute name="body" value="/freemarker/body.ftl" type="freemarker" />
</definition>
- <definition name="freemarker.test.definition.freemarker" template="/freemarker/layout.ftl">
+ <definition name="freemarker.test.definition.freemarker" template="/freemarker/layout.ftl" templateType="freemarker">
<put-attribute name="title" value="This is the title."/>
- <put-attribute name="header" value="/freemarker/header.ftl"/>
- <put-attribute name="body" value="/freemarker/body.ftl"/>
+ <put-attribute name="header" value="/freemarker/header.ftl" type="freemarker" />
+ <put-attribute name="body" value="/freemarker/body.ftl" type="freemarker" />
</definition>
- <definition name="freemarker.test.definition.flush" template="/freemarker/layout_flush.ftl">
+ <definition name="freemarker.test.definition.flush" template="/freemarker/layout_flush.ftl" templateType="freemarker">
<put-attribute name="title" value="This is the title."/>
- <put-attribute name="header" value="/freemarker/header.ftl"/>
- <put-attribute name="body" value="/freemarker/body.ftl"/>
+ <put-attribute name="header" value="/freemarker/header.ftl" type="freemarker" />
+ <put-attribute name="body" value="/freemarker/body.ftl" type="freemarker" />
</definition>
- <definition name="freemarker.test.definition.exception" template="/freemarker/layout.ftl">
+ <definition name="freemarker.test.definition.exception" template="/freemarker/layout.ftl" templateType="freemarker">
<put-attribute name="title" value="This is the title."/>
- <put-attribute name="header" value="/freemarker/exception.ftl"/>
- <put-attribute name="body" value="/freemarker/body.ftl"/>
+ <put-attribute name="header" value="/freemarker/exception.ftl" type="freemarker" />
+ <put-attribute name="body" value="/freemarker/body.ftl" type="freemarker" />
</definition>
- <definition name="freemarker.test.composite.definition" template="/freemarker/layout.ftl">
+ <definition name="freemarker.test.composite.definition" template="/freemarker/layout.ftl" templateType="freemarker">
<put-attribute name="title" value="This is a configured composite definition."/>
- <put-attribute name="header" value="/freemarker/header.ftl"/>
+ <put-attribute name="header" value="/freemarker/header.ftl" type="freemarker" />
<put-attribute name="body" value="test.inner.definition"/>
</definition>
- <definition name="freemarker.test.putAttributes" template="/freemarker/putattributeslayout.ftl">
+ <definition name="freemarker.test.putAttributes" template="/freemarker/putattributeslayout.ftl" templateType="freemarker">
<put-attribute name="stringTest" value="This is a string" type="string" />
<put-list-attribute name="list">
<add-attribute value="valueOne" type="string" />
@@ -91,26 +91,26 @@
</put-list-attribute>
</definition>
- <definition name="freemarker.test.putAllAttributes" template="/freemarker/putallattributeslayout.ftl">
+ <definition name="freemarker.test.putAllAttributes" template="/freemarker/putallattributeslayout.ftl" templateType="freemarker">
<put-attribute name="one" value="There should be three more strings" type="string" />
<put-attribute name="two" value="One" type="string" />
<put-attribute name="three" value="Two" type="string" />
<put-attribute name="four" value="Three" type="string" />
</definition>
- <definition name="freemarker.preparer.definition" template="/freemarker/layout.ftl">
+ <definition name="freemarker.preparer.definition" template="/freemarker/layout.ftl" templateType="freemarker">
<put-attribute name="title" value="This is the title."/>
- <put-attribute name="header" value="/freemarker/header.ftl"/>
+ <put-attribute name="header" value="/freemarker/header.ftl" type="freemarker" />
</definition>
<definition name="freemarker.testdispatchservlet" extends="test.definition"/>
<definition name="freemarker.preparer.definition.configured" extends="preparer.definition" preparer="org.apache.tiles.test.preparer.TestViewPreparer" />
-
- <definition name="freemarker.test.localized.definition" template="/freemarker/layout.ftl">
+
+ <definition name="freemarker.test.localized.definition" template="/freemarker/layout.ftl" templateType="freemarker">
<put-attribute name="title" value="Default locale" />
- <put-attribute name="header" value="/freemarker/header.ftl" />
- <put-attribute name="body" value="/freemarker/defaultlocale.ftl" />
+ <put-attribute name="header" value="/freemarker/header.ftl" type="freemarker" />
+ <put-attribute name="body" value="/freemarker/defaultlocale.ftl" type="freemarker" />
</definition>
<definition name="freemarker.test.definition.appears" extends="test.definition">
@@ -128,45 +128,45 @@
<definition name="freemarker.test.definition.does_not_appear.configured"
extends="test.definition.does_not_appear" role="badrole" />
- <definition name="freemarker.test.definition.roles" template="/freemarker/layout.ftl">
+ <definition name="freemarker.test.definition.roles" template="/freemarker/layout.ftl" templateType="freemarker">
<put-attribute name="title" value="This is the title."/>
<put-attribute name="header" value="/freemarker/header.ftl" role="goodrole" />
<put-attribute name="body" value="/freemarker/body.ftl" role="badrole" />
</definition>
- <definition name="freemarker.test.definition.roles.tags" template="/freemarker/layout_roles.ftl">
+ <definition name="freemarker.test.definition.roles.tags" template="/freemarker/layout_roles.ftl" templateType="freemarker">
<put-attribute name="title" value="This is the title."/>
- <put-attribute name="header" value="/freemarker/header.ftl" />
- <put-attribute name="body" value="/freemarker/body.ftl" />
+ <put-attribute name="header" value="/freemarker/header.ftl" type="freemarker" />
+ <put-attribute name="body" value="/freemarker/body.ftl" type="freemarker" />
</definition>
<!-- Tests for cascaded attributes -->
- <definition name="freemarker.test.overridden.cascaded.definition" template="/freemarker/layout.ftl">
+ <definition name="freemarker.test.overridden.cascaded.definition" template="/freemarker/layout.ftl" templateType="freemarker">
<put-attribute name="title" value="This is the title." cascade="true" />
<put-attribute name="header" value="/freemarker/alternate-header.ftl" cascade="true"/>
<put-attribute name="body" value="test.inner.definition"/>
</definition>
- <definition name="freemarker.test.inner.cascadable.definition" template="/freemarker/layout.ftl">
- <put-attribute name="body" value="/freemarker/body.ftl"/>
+ <definition name="freemarker.test.inner.cascadable.definition" template="/freemarker/layout.ftl" templateType="freemarker">
+ <put-attribute name="body" value="/freemarker/body.ftl" type="freemarker" />
</definition>
- <definition name="freemarker.test.cascaded.definition" template="/freemarker/layout.ftl">
+ <definition name="freemarker.test.cascaded.definition" template="/freemarker/layout.ftl" templateType="freemarker">
<put-attribute name="title" value="This is the title." cascade="true" />
<put-attribute name="header" value="/freemarker/header.ftl" cascade="true"/>
<put-attribute name="body" value="test.inner.cascadable.definition"/>
</definition>
- <definition name="freemarker.test.cascaded.template.definition" template="/freemarker/layout.ftl">
+ <definition name="freemarker.test.cascaded.template.definition" template="/freemarker/layout.ftl" templateType="freemarker">
<put-attribute name="title" value="This is the title." cascade="true" />
<put-attribute name="header" value="/freemarker/header.ftl" cascade="true"/>
- <put-attribute name="body" value="/freemarker/layout_nobody.ftl"/>
+ <put-attribute name="body" value="/freemarker/layout_nobody.ftl" type="freemarker" />
</definition>
- <definition name="freemarker.test.cascaded.list.definition" template="/freemarker/layout.ftl">
+ <definition name="freemarker.test.cascaded.list.definition" template="/freemarker/layout.ftl" templateType="freemarker">
<put-attribute name="title" value="This is the title." cascade="true" />
<put-attribute name="header" value="/freemarker/header.ftl" cascade="true"/>
- <put-attribute name="body" value="/freemarker/putattributeslayout.ftl"/>
+ <put-attribute name="body" value="/freemarker/putattributeslayout.ftl" type="freemarker" />
<put-attribute name="stringTest" value="This is a string" type="string" cascade="true" />
<put-list-attribute name="list" cascade="true">
<add-attribute value="valueOne" type="string" />
@@ -175,40 +175,40 @@
</put-list-attribute>
</definition>
- <definition name="freemarker.test.reversed.definition" template="/freemarker/layout_alt_title.ftl">
+ <definition name="freemarker.test.reversed.definition" template="/freemarker/layout_alt_title.ftl" templateType="freemarker">
<put-attribute name="title" value="This is the title." type="reversed"/>
- <put-attribute name="header" value="/freemarker/header.ftl"/>
- <put-attribute name="body" value="/freemarker/body.ftl"/>
+ <put-attribute name="header" value="/freemarker/header.ftl" type="freemarker" />
+ <put-attribute name="body" value="/freemarker/body.ftl" type="freemarker" />
</definition>
- <definition name="freemarker.test.reversed.explicit.definition" template="/freemarker/layout_alt_title.ftl">
+ <definition name="freemarker.test.reversed.explicit.definition" template="/freemarker/layout_alt_title.ftl" templateType="freemarker">
<put-attribute name="title" value="This is the title."
type="org.apache.tiles.test.renderer.ReverseStringAttributeRenderer"/>
- <put-attribute name="header" value="/freemarker/header.ftl"/>
- <put-attribute name="body" value="/freemarker/body.ftl"/>
+ <put-attribute name="header" value="/freemarker/header.ftl" type="freemarker" />
+ <put-attribute name="body" value="/freemarker/body.ftl" type="freemarker" />
</definition>
- <definition name="freemarker.test.nesting.definitions" template="/freemarker/layout.ftl">
+ <definition name="freemarker.test.nesting.definitions" template="/freemarker/layout.ftl" templateType="freemarker">
<put-attribute name="title" value="This is the title."/>
- <put-attribute name="header" value="/freemarker/header.ftl"/>
+ <put-attribute name="header" value="/freemarker/header.ftl" type="freemarker" />
<put-attribute name="body">
- <definition template="/freemarker/layout.ftl">
+ <definition template="/freemarker/layout.ftl" templateType="freemarker">
<put-attribute name="title" value="This is a nested definition."/>
- <put-attribute name="header" value="/freemarker/header.ftl"/>
- <put-attribute name="body" value="/freemarker/body.ftl"/>
+ <put-attribute name="header" value="/freemarker/header.ftl" type="freemarker" />
+ <put-attribute name="body" value="/freemarker/body.ftl" type="freemarker" />
</definition>
</put-attribute>
</definition>
- <definition name="freemarker.test.nesting.list.definitions" template="/freemarker/layout_list.ftl">
+ <definition name="freemarker.test.nesting.list.definitions" template="/freemarker/layout_list.ftl" templateType="freemarker">
<put-attribute name="title" value="This is the title."/>
- <put-attribute name="header" value="/freemarker/header.ftl"/>
+ <put-attribute name="header" value="/freemarker/header.ftl" type="freemarker" />
<put-list-attribute name="list">
<add-attribute>
- <definition template="/freemarker/layout.ftl">
+ <definition template="/freemarker/layout.ftl" templateType="freemarker">
<put-attribute name="title" value="This is a nested definition."/>
- <put-attribute name="header" value="/freemarker/header.ftl"/>
- <put-attribute name="body" value="/freemarker/body.ftl"/>
+ <put-attribute name="header" value="/freemarker/header.ftl" type="freemarker" />
+ <put-attribute name="body" value="/freemarker/body.ftl" type="freemarker" />
</definition>
</add-attribute>
</put-list-attribute>
@@ -217,29 +217,29 @@
<definition name="freemarker.test.composite.el.definition" templateExpression="${layout}"
preparer="org.apache.tiles.test.preparer.RequestSettingViewPreparer">
<put-attribute name="title" value="This is a configured composite definition."/>
- <put-attribute name="header" value="/freemarker/header.ftl"/>
+ <put-attribute name="header" value="/freemarker/header.ftl" type="freemarker" />
<put-attribute name="body" expression="${requestScope.body}"/>
</definition>
<definition name="freemarker.test.composite.el.doNotShow.definition" templateExpression="${layout}"
preparer="org.apache.tiles.test.preparer.RequestSettingViewPreparer">
<put-attribute name="title" value="This is a configured definition."/>
- <put-attribute name="header" value="/freemarker/header.ftl"/>
+ <put-attribute name="header" value="/freemarker/header.ftl" type="freemarker" />
<put-attribute name="body" expression="${requestScope.doNotShowBody}"/>
</definition>
- <definition name="freemarker.test.definition.attribute.preparer" template="/freemarker/layout_preparer.ftl">
+ <definition name="freemarker.test.definition.attribute.preparer" template="/freemarker/layout_preparer.ftl" templateType="freemarker">
<put-attribute name="title" value="This is the title."/>
- <put-attribute name="header" value="/freemarker/header.ftl"/>
+ <put-attribute name="header" value="/freemarker/header.ftl" type="freemarker" />
</definition>
- <definition name="freemarker.test.openbody.definition" template="/freemarker/layout_closebody.ftl">
+ <definition name="freemarker.test.openbody.definition" template="/freemarker/layout_closebody.ftl" templateType="freemarker">
<put-attribute name="title" value="This is the title."/>
- <put-attribute name="header" value="/freemarker/header.ftl"/>
- <put-attribute name="body" value="/freemarker/layout.ftl" />
+ <put-attribute name="header" value="/freemarker/header.ftl" type="freemarker" />
+ <put-attribute name="body" value="/freemarker/layout.ftl" type="freemarker" />
</definition>
- <definition name="freemarker.test.defaultvalues.definition" template="/freemarker/layout_default.ftl">
+ <definition name="freemarker.test.defaultvalues.definition" template="/freemarker/layout_default.ftl" templateType="freemarker">
<put-attribute name="title" value="This is the title."/>
</definition>
</tiles-definitions>