You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by dd...@apache.org on 2006/11/09 19:36:38 UTC
svn commit: r473011 - in /struts/sandbox/trunk/tiles:
tiles-core/src/main/java/org/apache/tiles/definition/
tiles-core/src/main/java/org/apache/tiles/impl/mgmt/
tiles-core/src/main/java/org/apache/tiles/taglib/
tiles-core/src/main/java/org/apache/tiles...
Author: ddewolf
Date: Thu Nov 9 10:36:37 2006
New Revision: 473011
URL: http://svn.apache.org/viewvc?view=rev&rev=473011
Log:
Fixing several jsp defined definition tests
Modified:
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/ComponentDefinitionsImpl.java
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/UrlDefinitionsFactory.java
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/impl/mgmt/DefinitionManager.java
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/AttributeTag.java
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/definition/DefinitionTag.java
struts/sandbox/trunk/tiles/tiles-test/src/main/webapp/index.jsp
Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/ComponentDefinitionsImpl.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/ComponentDefinitionsImpl.java?view=diff&rev=473011&r1=473010&r2=473011
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/ComponentDefinitionsImpl.java (original)
+++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/ComponentDefinitionsImpl.java Thu Nov 9 10:36:37 2006
@@ -103,9 +103,12 @@
*/
public ComponentDefinition getDefinition(String name, Locale locale) {
ComponentDefinition definition = null;
- Map localeSpecificMap = (Map) localeSpecificDefinitions.get(locale);
- if (localeSpecificMap != null) {
- definition = (ComponentDefinition) localeSpecificMap.get(name);
+
+ if (locale != null) {
+ Map localeSpecificMap = localeSpecificDefinitions.get(locale);
+ if (localeSpecificMap != null) {
+ definition = (ComponentDefinition) localeSpecificMap.get(name);
+ }
}
if (definition == null) {
@@ -156,13 +159,13 @@
}
public void resolveAttributeDependencies() {
- for (ComponentDefinition def: baseDefinitions.values()) {
+ for (ComponentDefinition def : baseDefinitions.values()) {
Map<String, ComponentAttribute> attributes = def.getAttributes();
- for (ComponentAttribute attr: attributes.values()) {
+ for (ComponentAttribute attr : attributes.values()) {
if (isDefinitionType(attr)) {
- ComponentDefinition subDef =
- getDefinitionByAttribute(attr);
- attr.setAttributes(subDef.getAttributes());
+ ComponentDefinition subDef =
+ getDefinitionByAttribute(attr);
+ attr.setAttributes(subDef.getAttributes());
}
}
}
@@ -170,11 +173,11 @@
private boolean isDefinitionType(ComponentAttribute attr) {
boolean explicit = (attr.getType() != null &&
- (attr.getType().equalsIgnoreCase("definition") ||
+ (attr.getType().equalsIgnoreCase("definition") ||
attr.getType().equalsIgnoreCase("instance")));
boolean implicit =
- attr.getType() == null &&
+ attr.getType() == null &&
attr.getValue() != null &&
baseDefinitions.containsKey(attr.getValue().toString());
Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/UrlDefinitionsFactory.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/UrlDefinitionsFactory.java?view=diff&rev=473011&r1=473010&r2=473011
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/UrlDefinitionsFactory.java (original)
+++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/UrlDefinitionsFactory.java Thu Nov 9 10:36:37 2006
@@ -21,16 +21,21 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.tiles.TilesException;
import org.apache.tiles.context.TilesRequestContext;
import org.apache.tiles.definition.digester.DigesterDefinitionsReader;
import org.apache.tiles.util.ClassUtil;
-import org.apache.tiles.TilesException;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
/**
* {@link DefinitionsFactory DefinitionsFactory} implementation
@@ -127,10 +132,14 @@
throws DefinitionsFactoryException {
ComponentDefinitions definitions = getComponentDefinitions();
- Locale locale = tilesContext.getRequestLocale();
- if (!isLocaleProcessed(tilesContext)) {
- synchronized (definitions) {
- addDefinitions(definitions, tilesContext);
+ Locale locale = null;
+
+ if (tilesContext != null) {
+ tilesContext.getRequestLocale();
+ if (!isLocaleProcessed(tilesContext)) {
+ synchronized (definitions) {
+ addDefinitions(definitions, tilesContext);
+ }
}
}
Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/impl/mgmt/DefinitionManager.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/impl/mgmt/DefinitionManager.java?view=diff&rev=473011&r1=473010&r2=473011
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/impl/mgmt/DefinitionManager.java (original)
+++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/impl/mgmt/DefinitionManager.java Thu Nov 9 10:36:37 2006
@@ -42,10 +42,19 @@
return getFactory().getDefinition(definition, request);
}
- public void addDefinition(ComponentDefinition definition) {
+ public void addDefinition(ComponentDefinition definition)
+ throws DefinitionsFactoryException {
validate(definition);
- if(definition.getExtends() != null) {
+ if(definition.isExtending()) {
+ this.resolveInheritance(definition);
+ }
+
+ for(ComponentAttribute attr : definition.getAttributes().values()) {
+ if(ComponentAttribute.DEFINITION.equals(attr.getType())) {
+ ComponentDefinition d = getDefinition(attr.getValue().toString(), null);
+ attr.setAttributes(d.getAttributes());
+ }
}
definitions.put(definition.getName(), definition);
Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/AttributeTag.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/AttributeTag.java?view=diff&rev=473011&r1=473010&r2=473011
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/AttributeTag.java (original)
+++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/AttributeTag.java Thu Nov 9 10:36:37 2006
@@ -20,11 +20,10 @@
package org.apache.tiles.taglib;
-import org.apache.tiles.context.jsp.JspUtil;
import org.apache.tiles.ComponentAttribute;
-import org.apache.tiles.TilesException;
import org.apache.tiles.ComponentContext;
-import org.apache.tiles.taglib.RenderTagSupport;
+import org.apache.tiles.TilesException;
+import org.apache.tiles.context.jsp.JspUtil;
import javax.servlet.jsp.JspException;
import java.io.IOException;
@@ -72,31 +71,31 @@
protected void render() throws JspException, TilesException, IOException {
ComponentContext context = container.getComponentContext(pageContext);
ComponentAttribute attr = context.getAttribute(name);
- if(attr == null && ignore) {
+ if (attr == null && ignore) {
return;
}
- if(attr == null) {
- throw new TilesException("Attribute '"+name+"' not found.");
+ if (attr == null) {
+ throw new TilesException("Attribute '" + name + "' not found.");
}
String type = calculateType(attr);
- if("string".equalsIgnoreCase(type)) {
+ if ("string".equalsIgnoreCase(type)) {
pageContext.getOut().print(attr.getValue());
- } else if(isDefinition(attr)) {
- if(template != null) {
+ } else if (isDefinition(attr)) {
+ if (template != null) {
attr.setValue(template);
}
-
+
Map<String, ComponentAttribute> attrs = attr.getAttributes();
- if(attrs != null) {
- for(Map.Entry<String, ComponentAttribute> a : attrs.entrySet()) {
+ if (attrs != null) {
+ for (Map.Entry<String, ComponentAttribute> a : attrs.entrySet()) {
context.putAttribute(a.getKey(), a.getValue());
}
}
container.render(pageContext, attr.getValue().toString());
-
+
} else {
JspUtil.doInclude(pageContext, attr.getValue().toString(), flush);
}
@@ -114,33 +113,18 @@
Object valueContent = attr.getValue();
if (valueContent instanceof String) {
String valueString = (String) valueContent;
- if (valueString.startsWith("/")) {
+ if (container.isValidDefinition(pageContext, valueString)) {
+ type = ComponentAttribute.DEFINITION;
+ } else if (valueString.startsWith("/")) {
type = ComponentAttribute.TEMPLATE;
} else {
- if (container.isValidDefinition(pageContext, valueString)) {
- type = ComponentAttribute.DEFINITION;
- attr.setValue(valueString);
- } else {
- type = ComponentAttribute.STRING;
- }
+ type = ComponentAttribute.STRING;
}
}
if (type == null) {
throw new JspException("Unrecognized type for attribute value "
+ attr.getValue());
}
- attr.setType(type);
- } else if (type.equalsIgnoreCase("definition")) {
- Object valueContent = attr.getValue();
- if (valueContent instanceof String) {
- // FIXME If the value is the name of a definition, the
- // corresponding definition should be put as the value of the
- // attribute
- if (!container.isValidDefinition(pageContext, (String) valueContent))
- throw new JspException("Cannot find any definition named '"
- + valueContent + "'");
- }
- attr.setValue(valueContent);
}
return type;
}
Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/definition/DefinitionTag.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/definition/DefinitionTag.java?view=diff&rev=473011&r1=473010&r2=473011
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/definition/DefinitionTag.java (original)
+++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/definition/DefinitionTag.java Thu Nov 9 10:36:37 2006
@@ -121,7 +121,7 @@
}
/**
- * TODO: Implement mutable container features.
+ *
*
* @return
*/
Modified: struts/sandbox/trunk/tiles/tiles-test/src/main/webapp/index.jsp
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-test/src/main/webapp/index.jsp?view=diff&rev=473011&r1=473010&r2=473011
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-test/src/main/webapp/index.jsp (original)
+++ struts/sandbox/trunk/tiles/tiles-test/src/main/webapp/index.jsp Thu Nov 9 10:36:37 2006
@@ -43,13 +43,12 @@
<h2>Container Management Tags</h2>
<a href="testinitcontainer.jsp">Test Initialize Container</a><br/>
-
- <h2>Currently not working tests</h2>
<a href="testdef.jsp">Test Definition Tag</a><br/>
- <!-- Currently all the tests work.-->
<a href="testinsertdefinition_composite_tags_includes_configured.jsp">Test Insert Definition that contains another definition inside (configured via tiles-defs.xml) using JSP tags</a><br/>
- <a href="testinsertdefinition_composite_tags_includes_configured_notype.jsp">Test Insert Definition that contains another definition inside (configured via tiles-defs.xml) using JSP tags without types</a><br/>
<a href="testinsertdefinition_composite_tags.jsp">Test Insert Definition that contains another definition inside using JSP tags</a><br/>
+
+ <h2>Currently not working tests</h2>
+ <a href="testinsertdefinition_composite_tags_includes_configured_notype.jsp">Test Insert Definition that contains another definition inside (configured via tiles-defs.xml) using JSP tags without types</a><br/>
<a href="testinsertdefinition_composite_tags_notype.jsp">Test Insert Definition that contains another definition inside using JSP tags without types</a><br/></body>
</html>