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/09/14 09:14:58 UTC
svn commit: r814502 - in /tiles/framework/branches/TILES_2_1_X: ./
tiles-core/src/main/java/org/apache/tiles/definition/dao/
tiles-core/src/test/java/org/apache/tiles/definition/dao/
tiles-jsp/src/test/java/org/apache/tiles/jsp/taglib/
Author: apetrelli
Date: Mon Sep 14 07:14:57 2009
New Revision: 814502
URL: http://svn.apache.org/viewvc?rev=814502&view=rev
Log:
TILES-340
Merge from trunk to TILES_2_1_X branch.
Now the raw definition map is correctly used, as it is deep copied when needed by definition maps of higher-level customization keys.
Added tests to check wildcard mappings in ResolvingLocaleUrlDefinitionDAO.
Modified:
tiles/framework/branches/TILES_2_1_X/ (props changed)
tiles/framework/branches/TILES_2_1_X/tiles-core/src/main/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAO.java
tiles/framework/branches/TILES_2_1_X/tiles-core/src/main/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAO.java
tiles/framework/branches/TILES_2_1_X/tiles-core/src/test/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAOTest.java
tiles/framework/branches/TILES_2_1_X/tiles-core/src/test/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAOTest.java
tiles/framework/branches/TILES_2_1_X/tiles-jsp/src/test/java/org/apache/tiles/jsp/taglib/ (props changed)
tiles/framework/branches/TILES_2_1_X/tiles-jsp/src/test/java/org/apache/tiles/jsp/taglib/ImportAttributeTagTest.java (props changed)
Propchange: tiles/framework/branches/TILES_2_1_X/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 14 07:14:57 2009
@@ -1 +1 @@
-/tiles/framework/trunk:749981,761052,761061,772781,785782,788065-789653,798944
+/tiles/framework/trunk:749981,761052,761061,772781,785782,788065-789653,798944,814331
Modified: tiles/framework/branches/TILES_2_1_X/tiles-core/src/main/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAO.java
URL: http://svn.apache.org/viewvc/tiles/framework/branches/TILES_2_1_X/tiles-core/src/main/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAO.java?rev=814502&r1=814501&r2=814502&view=diff
==============================================================================
--- tiles/framework/branches/TILES_2_1_X/tiles-core/src/main/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAO.java (original)
+++ tiles/framework/branches/TILES_2_1_X/tiles-core/src/main/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAO.java Mon Sep 14 07:14:57 2009
@@ -204,8 +204,8 @@
return localeDefsMap;
}
- localeDefsMap = loadDefinitionsFromURLs(customizationKey);
- return localeDefsMap;
+ loadDefinitionsFromURLs(customizationKey);
+ return locale2definitionMap.get(customizationKey);
}
/**
@@ -216,21 +216,6 @@
* @since 2.1.0
*/
protected Map<String, Definition> loadDefinitionsFromURLs(Locale customizationKey) {
- Map<String, Definition> localeDefsMap = loadRawDefinitionsFromURLs(customizationKey);
- postDefinitionLoadOperations(localeDefsMap, customizationKey);
-
- 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);
@@ -258,8 +243,23 @@
+ newPath, e);
}
}
+ Map<String, Definition> retValue = copyDefinitionMap(localeDefsMap);
locale2definitionMap.put(customizationKey, localeDefsMap);
- return localeDefsMap;
+ postDefinitionLoadOperations(localeDefsMap, customizationKey);
+ return retValue;
+ }
+
+ /**
+ * 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
+ * @deprecated Use {@link #loadDefinitionsFromURLs(Locale)}.
+ */
+ protected Map<String, Definition> loadRawDefinitionsFromURLs(
+ Locale customizationKey) {
+ return loadDefinitionsFromURLs(customizationKey);
}
/**
@@ -452,4 +452,18 @@
return pattern;
}
}
+
+ /**
+ * Copies the definition map to be passed to a higher level of customization
+ * key.
+ *
+ * @param localeDefsMap The map of definition to be copied.
+ * @return The copy of the definition map. This particular implementation
+ * return the <code>localeDefsMap</code> itself.
+ * @since 2.1.4
+ */
+ protected Map<String, Definition> copyDefinitionMap(
+ Map<String, Definition> localeDefsMap) {
+ return localeDefsMap;
+ }
}
Modified: tiles/framework/branches/TILES_2_1_X/tiles-core/src/main/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAO.java
URL: http://svn.apache.org/viewvc/tiles/framework/branches/TILES_2_1_X/tiles-core/src/main/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAO.java?rev=814502&r1=814501&r2=814502&view=diff
==============================================================================
--- tiles/framework/branches/TILES_2_1_X/tiles-core/src/main/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAO.java (original)
+++ tiles/framework/branches/TILES_2_1_X/tiles-core/src/main/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAO.java Mon Sep 14 07:14:57 2009
@@ -22,6 +22,7 @@
package org.apache.tiles.definition.dao;
import java.util.HashSet;
+import java.util.LinkedHashMap;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
@@ -54,7 +55,7 @@
/** {@inheritDoc} */
@Override
protected Map<String, Definition> loadParentDefinitions(Locale parentLocale) {
- return loadRawDefinitionsFromURLs(parentLocale);
+ return loadDefinitionsFromURLs(parentLocale);
}
/** {@inheritDoc} */
@@ -133,4 +134,27 @@
definition.inherit(parent);
}
+
+ /**
+ * Copies the definition map to be passed to a higher level of customization
+ * key.
+ *
+ * @param localeDefsMap The map of definition to be copied.
+ * @return The copy of the definition map. This particular implementation
+ * deep-copies the <code>localeDefsMap</code> into a {@link LinkedHashMap}.
+ * @since 2.1.4
+ */
+ @Override
+ protected Map<String, Definition> copyDefinitionMap(
+ Map<String, Definition> localeDefsMap) {
+ Map<String, Definition> retValue = new LinkedHashMap<String, Definition>(
+ localeDefsMap.size());
+
+ for (Map.Entry<String, Definition> entry : localeDefsMap.entrySet()) {
+ Definition definition = new Definition(entry.getValue());
+ retValue.put(entry.getKey(), definition);
+ }
+
+ return retValue;
+ }
}
Modified: tiles/framework/branches/TILES_2_1_X/tiles-core/src/test/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAOTest.java
URL: http://svn.apache.org/viewvc/tiles/framework/branches/TILES_2_1_X/tiles-core/src/test/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAOTest.java?rev=814502&r1=814501&r2=814502&view=diff
==============================================================================
--- tiles/framework/branches/TILES_2_1_X/tiles-core/src/test/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAOTest.java (original)
+++ tiles/framework/branches/TILES_2_1_X/tiles-core/src/test/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAOTest.java Mon Sep 14 07:14:57 2009
@@ -39,7 +39,9 @@
import junit.framework.TestCase;
+import org.apache.tiles.Attribute;
import org.apache.tiles.Definition;
+import org.apache.tiles.ListAttribute;
import org.apache.tiles.TilesApplicationContext;
import org.apache.tiles.awareness.TilesApplicationContextAware;
import org.apache.tiles.context.TilesRequestContext;
@@ -658,4 +660,30 @@
definition = definitionDao.getDefinition("test.def3", null);
assertNotNull("The simple definition is null", definition);
}
+
+ /**
+ * Tests
+ * {@link ResolvingLocaleUrlDefinitionDAO#getDefinition(String, Locale)}
+ * when loading multiple files for a locale.
+ *
+ * @throws IOException If something goes wrong.
+ */
+ @SuppressWarnings("unchecked")
+ public void testListAttributeLocaleInheritance() throws IOException {
+ URL url = this.getClass().getClassLoader().getResource(
+ "org/apache/tiles/config/tiles-defs-2.1.xml");
+ definitionDao.addSourceURL(url);
+ TilesApplicationContext applicationContext = EasyMock
+ .createMock(TilesApplicationContext.class);
+ definitionDao.setReader(new DigesterDefinitionsReader());
+ EasyMock.replay(applicationContext);
+
+ Definition definition = definitionDao.getDefinition(
+ "test.inherit.list", Locale.ITALIAN);
+ ListAttribute listAttribute = (ListAttribute) definition
+ .getAttribute("list");
+ List<Attribute> attributes = (List<Attribute>) listAttribute.getValue();
+ // It is right not to resolve inheritance in this DAO.
+ assertEquals(1, attributes.size());
+ }
}
Modified: tiles/framework/branches/TILES_2_1_X/tiles-core/src/test/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAOTest.java
URL: http://svn.apache.org/viewvc/tiles/framework/branches/TILES_2_1_X/tiles-core/src/test/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAOTest.java?rev=814502&r1=814501&r2=814502&view=diff
==============================================================================
--- tiles/framework/branches/TILES_2_1_X/tiles-core/src/test/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAOTest.java (original)
+++ tiles/framework/branches/TILES_2_1_X/tiles-core/src/test/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAOTest.java Mon Sep 14 07:14:57 2009
@@ -649,12 +649,27 @@
.setApplicationContext(applicationContext);
definitionDao.setReader(new DigesterDefinitionsReader());
- Definition definition = definitionDao.getDefinition("test.defName.subLayered", null);
+ Definition definition = definitionDao.getDefinition("test.defName.subLayered", Locale.ITALY);
assertEquals("The template is not correct", "/testName.jsp", definition
.getTemplateAttribute().getValue());
assertEquals("The header attribute is not correct",
"/common/headerLayered.jsp", definition.getAttribute("header")
.getValue());
+ definition = definitionDao.getDefinition("test.defName.subLayered", Locale.ITALIAN);
+ assertEquals("The template is not correct", "/testName.jsp", definition
+ .getTemplateAttribute().getValue());
+ assertEquals("The header attribute is not correct",
+ "/common/headerLayered.jsp", definition.getAttribute("header")
+ .getValue());
+ definition = definitionDao.getDefinition("test.defName.subLayered", null);
+ assertEquals("The template is not correct", "/testName.jsp", definition
+ .getTemplateAttribute().getValue());
+ assertEquals("The header attribute is not correct",
+ "/common/headerLayered.jsp", definition.getAttribute("header")
+ .getValue());
+ definition = definitionDao.getDefinition("test.defName.noAttribute", null);
+ assertEquals("/testName.jsp", definition.getTemplateAttribute().getValue());
+ assertEquals(null, definition.getLocalAttributeNames());
definition = definitionDao.getDefinition("test.def3", null);
assertNotNull("The simple definition is null", definition);
}
Propchange: tiles/framework/branches/TILES_2_1_X/tiles-jsp/src/test/java/org/apache/tiles/jsp/taglib/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 14 07:14:57 2009
@@ -1 +1 @@
-/tiles/framework/trunk/tiles-jsp/src/test/java/org/apache/tiles/jsp/taglib:749981,761052,761061,772781,785782,788065-789653,798944*
+/tiles/framework/trunk/tiles-jsp/src/test/java/org/apache/tiles/jsp/taglib:749981,761052,761061,772781,785782,788065-789653,798944*,814331*
Propchange: tiles/framework/branches/TILES_2_1_X/tiles-jsp/src/test/java/org/apache/tiles/jsp/taglib/ImportAttributeTagTest.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 14 07:14:57 2009
@@ -1 +1 @@
-/tiles/framework/trunk/tiles-jsp/src/test/java/org/apache/tiles/jsp/taglib/ImportAttributeTagTest.java:749981,761052,761061,772781,785782,788065-789653,798944
+/tiles/framework/trunk/tiles-jsp/src/test/java/org/apache/tiles/jsp/taglib/ImportAttributeTagTest.java:749981,761052,761061,772781,785782,788065-789653,798944,814331