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