You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tiles.apache.org by ap...@apache.org on 2010/08/27 21:33:36 UTC
svn commit: r990237 - in /tiles/sandbox/trunk/tiles3: ./
tiles-core/src/main/java/org/apache/tiles/definition/dao/
tiles-core/src/main/java/org/apache/tiles/definition/digester/
tiles-core/src/test/java/org/apache/tiles/config/ tiles-core/src/test/java...
Author: apetrelli
Date: Fri Aug 27 19:33:35 2010
New Revision: 990237
URL: http://svn.apache.org/viewvc?rev=990237&view=rev
Log:
TILES-512
TILES-513
Merge from trunk to sandboxed Tiles 3.
Added:
tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/config/defs-tiles-513.xml
- copied unchanged from r990230, tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/config/defs-tiles-513.xml
Modified:
tiles/sandbox/trunk/tiles3/ (props changed)
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAO.java
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAO.java
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java
tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/config/tiles-defs-2.1.xml
tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAOTest.java
tiles/sandbox/trunk/tiles3/tiles-test-pom/tiles-test/ (props changed)
tiles/sandbox/trunk/tiles3/tiles-test-pom/tiles-test/src/main/webapp/WEB-INF/tools.xml (props changed)
Propchange: tiles/sandbox/trunk/tiles3/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Aug 27 19:33:35 2010
@@ -1 +1 @@
-/tiles/framework/trunk:829356,836356,880940,880948,887758,900938-902966,904552,921998,931637,949559,950449,982366-982367
+/tiles/framework/trunk:829356,836356,880940,880948,887758,900938-902966,904552,921998,931637,949559,950449,982366-982367,989864-990230
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAO.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAO.java?rev=990237&r1=990236&r2=990237&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAO.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAO.java Fri Aug 27 19:33:35 2010
@@ -200,6 +200,23 @@ public class CachingLocaleUrlDefinitionD
* @since 2.1.0
*/
protected Map<String, Definition> loadDefinitionsFromURLs(Locale customizationKey) {
+ Map<String, Definition> localeDefsMap = loadRawDefinitionsFromURLs(customizationKey);
+ Map<String, Definition> defsMap = definitionResolver
+ .storeDefinitionPatterns(copyDefinitionMap(localeDefsMap),
+ customizationKey);
+ locale2definitionMap.put(customizationKey, defsMap);
+ return localeDefsMap;
+ }
+
+ /**
+ * Loads the raw definitions from the URLs associated with a locale.
+ *
+ * @param customizationKey The locale to use when loading URLs.
+ * @return The loaded definitions.
+ * @since 2.1.3
+ */
+ protected Map<String, Definition> loadRawDefinitionsFromURLs(
+ Locale customizationKey) {
Map<String, Definition> localeDefsMap;
String postfix = LocaleUtil.calculatePostfix(customizationKey);
@@ -227,10 +244,6 @@ public class CachingLocaleUrlDefinitionD
+ newPath, e);
}
}
- Map<String, Definition> defsMap = definitionResolver
- .storeDefinitionPatterns(copyDefinitionMap(localeDefsMap),
- customizationKey);
- locale2definitionMap.put(customizationKey, defsMap);
return localeDefsMap;
}
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAO.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAO.java?rev=990237&r1=990236&r2=990237&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAO.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAO.java Fri Aug 27 19:33:35 2010
@@ -55,17 +55,18 @@ public class ResolvingLocaleUrlDefinitio
/** {@inheritDoc} */
@Override
protected Map<String, Definition> loadParentDefinitions(Locale parentLocale) {
- return loadDefinitionsFromURLs(parentLocale);
+ return loadRawDefinitionsFromURLs(parentLocale);
}
- /** {@inheritDoc} */
@Override
- protected Map<String, Definition> loadDefinitionsFromURLs(
- Locale customizationKey) {
- Map<String, Definition> retValue = super.loadDefinitionsFromURLs(customizationKey);
- Map<String, Definition> defsMap = locale2definitionMap.get(customizationKey);
+ protected Map<String, Definition> loadDefinitions(Locale customizationKey) {
+ Map<String, Definition> localeDefsMap = super.loadDefinitions(customizationKey);
+ Map<String, Definition> defsMap = definitionResolver
+ .storeDefinitionPatterns(copyDefinitionMap(localeDefsMap),
+ customizationKey);
resolveInheritances(defsMap, customizationKey);
- return retValue;
+ locale2definitionMap.put(customizationKey, defsMap);
+ return defsMap;
}
/** {@inheritDoc} */
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java?rev=990237&r1=990236&r2=990237&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java Fri Aug 27 19:33:35 2010
@@ -151,7 +151,8 @@ public class DigesterDefinitionsReader i
Definition definition = (Definition) digester.peek();
definition.setName(attributes.getValue("name"));
definition.setPreparer(attributes.getValue("preparer"));
- definition.setExtends(attributes.getValue("extends"));
+ String extendsAttribute = attributes.getValue("extends");
+ definition.setExtends(extendsAttribute);
String template = attributes.getValue("template");
Attribute attribute = Attribute.createTemplateAttribute(template);
@@ -162,6 +163,8 @@ public class DigesterDefinitionsReader i
String templateType = attributes.getValue("templateType");
if (templateType != null) {
attribute.setRenderer(templateType);
+ } else if (extendsAttribute != null && templateType == null) {
+ attribute.setRenderer(null);
}
definition.setTemplateAttribute(attribute);
}
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/config/tiles-defs-2.1.xml
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/config/tiles-defs-2.1.xml?rev=990237&r1=990236&r2=990237&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/config/tiles-defs-2.1.xml (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/config/tiles-defs-2.1.xml Fri Aug 27 19:33:35 2010
@@ -80,4 +80,11 @@
templateType="mytype" >
<put-attribute name="body" expression="${my.attribute.expression}" />
</definition>
+
+ <definition name="test.inherit.othertype.base" template="/layout.ftl" templateType="freemarker">
+ <put-attribute name="body" value="/jsp/body.jsp" />
+ </definition>
+
+ <definition name="test.inherit.othertype" extends="test.inherit.othertype.base">
+ </definition>
</tiles-definitions>
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAOTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAOTest.java?rev=990237&r1=990236&r2=990237&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAOTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAOTest.java Fri Aug 27 19:33:35 2010
@@ -427,4 +427,61 @@ public class ResolvingLocaleUrlDefinitio
assertEquals(2, attributes.size());
verify(applicationContext);
}
+
+ /**
+ * Tests
+ * {@link ResolvingLocaleUrlDefinitionDAO#getDefinition(String, Locale)}
+ * to solve the TILES-512 issue.
+ *
+ * @throws IOException If something goes wrong.
+ */
+ public void testTiles512() throws IOException {
+ URL url = this.getClass().getClassLoader().getResource(
+ "org/apache/tiles/config/tiles-defs-2.1.xml");
+ List<URL> urls = new ArrayList<URL>();
+ urls.add(url);
+ definitionDao.setSourceURLs(urls);
+ ApplicationContext applicationContext = createMock(ApplicationContext.class);
+ definitionDao.setReader(new DigesterDefinitionsReader());
+ replay(applicationContext);
+
+ Definition definition = definitionDao.getDefinition(
+ "test.inherit.othertype", Locale.ITALIAN);
+ assertEquals("/layout.ftl", definition.getTemplateAttribute().getValue());
+ assertEquals("freemarker", definition.getTemplateAttribute().getRenderer());
+ }
+
+ /**
+ * Tests
+ * {@link ResolvingLocaleUrlDefinitionDAO#getDefinition(String, Locale)}
+ * to solve the TILES-513 issue.
+ *
+ * @throws IOException If something goes wrong.
+ */
+ public void testTiles513() throws IOException {
+ URL url = this.getClass().getClassLoader().getResource(
+ "org/apache/tiles/config/defs-tiles-513.xml");
+ List<URL> urls = new ArrayList<URL>();
+ urls.add(url);
+ definitionDao.setSourceURLs(urls);
+ ApplicationContext applicationContext = createMock(ApplicationContext.class);
+ definitionDao.setReader(new DigesterDefinitionsReader());
+ replay(applicationContext);
+
+ Definition definition = definitionDao.getDefinition(
+ "test.anonymous", null);
+ definitionDao.getDefinition(
+ "test.anonymous", new Locale("es", "CO"));
+ definitionDao.getDefinition(
+ "test.anonymous", new Locale("en", "CA"));
+ Attribute attribute = definition.getAttribute("header");
+ Definition child = definitionDao.getDefinition((String) attribute.getValue(), null);
+ assertNotNull(child);
+ attribute = definition.getAttribute("menu");
+ child = definitionDao.getDefinition((String) attribute.getValue(), null);
+ assertNotNull(child);
+ attribute = definition.getAttribute("footer");
+ child = definitionDao.getDefinition((String) attribute.getValue(), null);
+ assertNotNull(child);
+ }
}
Propchange: tiles/sandbox/trunk/tiles3/tiles-test-pom/tiles-test/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Aug 27 19:33:35 2010
@@ -1,3 +1,3 @@
-/tiles/framework/trunk/tiles-test-pom/tiles-test:829356,836356,880940,880948,887758,900938-902966,904552,921998,931637,949559,950449,982366-982367
+/tiles/framework/trunk/tiles-test-pom/tiles-test:829356,836356,880940,880948,887758,900938-902966,904552,921998,931637,949559,950449,982366-982367,989864-990230
/tiles/sandbox/trunk/tiles-test:740289
/tiles/sandbox/trunk/tiles-test-sandbox:740290-745038,747727-751891
Propchange: tiles/sandbox/trunk/tiles3/tiles-test-pom/tiles-test/src/main/webapp/WEB-INF/tools.xml
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Aug 27 19:33:35 2010
@@ -1 +1 @@
-/tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/WEB-INF/tools.xml:829356,836356,880940,880948,887758,900938-902966,904552,921998,931637,949559,950449,982366-982367
+/tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/WEB-INF/tools.xml:829356,836356,880940,880948,887758,900938-902966,904552,921998,931637,949559,950449,982366-982367,989864-990230