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/05/10 21:58:08 UTC

svn commit: r942880 - in /tiles/sandbox/trunk/tiles3: tiles-compat/src/main/java/org/apache/tiles/compat/definition/digester/ tiles-core/ tiles-core/src/main/java/org/apache/tiles/context/enhanced/ tiles-core/src/main/java/org/apache/tiles/definition/ ...

Author: apetrelli
Date: Mon May 10 19:58:07 2010
New Revision: 942880

URL: http://svn.apache.org/viewvc?rev=942880&view=rev
Log:
TILESSB-11
More code coverage to tiles-core.
Moved some code to tiles-compat.

TILESSB-10
Removed some old code.

Added:
    tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/DefinitionsFactoryExceptionTest.java   (with props)
    tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/FactoryNotFoundExceptitonTest.java   (with props)
    tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/NoSuchDefinitionExceptionTest.java   (with props)
    tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAOTest.java   (with props)
    tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/digester/DigesterDefinitionsReaderExceptionTest.java   (with props)
Removed:
    tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/context/enhanced/
    tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/Refreshable.java
    tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/context/enhanced/
Modified:
    tiles/sandbox/trunk/tiles3/tiles-compat/src/main/java/org/apache/tiles/compat/definition/digester/CompatibilityDigesterDefinitionsReader.java
    tiles/sandbox/trunk/tiles3/tiles-core/pom.xml
    tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/DefinitionsFactoryException.java
    tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/FactoryNotFoundException.java
    tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/NoSuchDefinitionException.java
    tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAO.java
    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/LocaleUrlDefinitionDAO.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/dao/URLReader.java
    tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java
    tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReaderException.java
    tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/pattern/PrefixedPatternDefinitionResolver.java
    tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/factory/BasicTilesContainerFactory.java
    tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/LocaleDefinitionsFactoryTest.java
    tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAOTest.java
    tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/LocaleUrlDefinitionDAOTest.java
    tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAOTest.java
    tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/digester/TestDigesterDefinitionsReader.java
    tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/pattern/PatternUtilTest.java

Modified: tiles/sandbox/trunk/tiles3/tiles-compat/src/main/java/org/apache/tiles/compat/definition/digester/CompatibilityDigesterDefinitionsReader.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-compat/src/main/java/org/apache/tiles/compat/definition/digester/CompatibilityDigesterDefinitionsReader.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-compat/src/main/java/org/apache/tiles/compat/definition/digester/CompatibilityDigesterDefinitionsReader.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-compat/src/main/java/org/apache/tiles/compat/definition/digester/CompatibilityDigesterDefinitionsReader.java Mon May 10 19:58:07 2010
@@ -22,8 +22,11 @@
 package org.apache.tiles.compat.definition.digester;
 
 import org.apache.commons.digester.Digester;
+import org.apache.commons.digester.Rule;
+import org.apache.tiles.Attribute;
 import org.apache.tiles.beans.SimpleMenuItem;
 import org.apache.tiles.definition.digester.DigesterDefinitionsReader;
+import org.xml.sax.Attributes;
 
 /**
  * Digester reader that can read Tiles 1.1, 1.2, 1.3, 1.4 and 2.0 files.
@@ -242,4 +245,20 @@ public class CompatibilityDigesterDefini
         }
         return registrations;
     }
+
+    /**
+     * Digester rule to manage assignment of an object as an attribute value.
+     *
+     * @since 3.0.0
+     */
+    public static class SetValueToAttributeRule extends Rule {
+
+        /** {@inheritDoc} */
+        @Override
+        public void begin(String namespace, String name, Attributes attributes) {
+            Object obj = digester.pop();
+            Attribute attribute = new Attribute(obj);
+            digester.push(attribute);
+        }
+    }
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-core/pom.xml
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/pom.xml?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/pom.xml (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/pom.xml Mon May 10 19:58:07 2010
@@ -126,14 +126,14 @@
     <dependency>
       <groupId>org.easymock</groupId>
       <artifactId>easymock</artifactId>
-      <version>2.5.1</version>
+      <version>2.5.2</version>
       <scope>test</scope>
     </dependency>
 
     <dependency>
       <groupId>org.easymock</groupId>
       <artifactId>easymockclassextension</artifactId>
-      <version>2.4</version>
+      <version>2.5.2</version>
       <scope>test</scope>
     </dependency>
 

Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/DefinitionsFactoryException.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/DefinitionsFactoryException.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/DefinitionsFactoryException.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/DefinitionsFactoryException.java Mon May 10 19:58:07 2010
@@ -57,7 +57,7 @@ public class DefinitionsFactoryException
      *
      * @param e The exception to be wrapped.
      */
-    public DefinitionsFactoryException(Exception e) {
+    public DefinitionsFactoryException(Throwable e) {
         super(e);
     }
 
@@ -71,7 +71,7 @@ public class DefinitionsFactoryException
      * @param message The detail message.
      * @param e       The exception to be wrapped.
      */
-    public DefinitionsFactoryException(String message, Exception e) {
+    public DefinitionsFactoryException(String message, Throwable e) {
         super(message, e);
     }
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/FactoryNotFoundException.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/FactoryNotFoundException.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/FactoryNotFoundException.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/FactoryNotFoundException.java Mon May 10 19:58:07 2010
@@ -43,4 +43,12 @@ public class FactoryNotFoundException ex
     public FactoryNotFoundException(String msg) {
         super(msg);
     }
+
+    public FactoryNotFoundException(String message, Throwable e) {
+        super(message, e);
+    }
+
+    public FactoryNotFoundException(Throwable e) {
+        super(e);
+    }
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/NoSuchDefinitionException.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/NoSuchDefinitionException.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/NoSuchDefinitionException.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/NoSuchDefinitionException.java Mon May 10 19:58:07 2010
@@ -43,4 +43,12 @@ public class NoSuchDefinitionException e
     public NoSuchDefinitionException(String msg) {
         super(msg);
     }
+
+    public NoSuchDefinitionException(String message, Throwable e) {
+        super(message, e);
+    }
+
+    public NoSuchDefinitionException(Throwable e) {
+        super(e);
+    }
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAO.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAO.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAO.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAO.java Mon May 10 19:58:07 2010
@@ -25,7 +25,6 @@ import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.net.URL;
 import java.net.URLConnection;
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
@@ -80,7 +79,6 @@ public abstract class BaseLocaleUrlDefin
      * Constructor.
      */
     public BaseLocaleUrlDefinitionDAO() {
-        sourceURLs = new ArrayList<URL>();
         lastModifiedDates = new HashMap<String, Long>();
     }
 
@@ -94,14 +92,6 @@ public abstract class BaseLocaleUrlDefin
         this.reader = reader;
     }
 
-    /**  {@inheritDoc}*/
-    public void addSourceURL(URL sourceURL) {
-        if (sourceURLs == null) {
-            sourceURLs = new ArrayList<URL>();
-        }
-        sourceURLs.add(sourceURL);
-    }
-
     /** {@inheritDoc} */
     public boolean refreshRequired() {
         boolean status = false;
@@ -120,7 +110,7 @@ public abstract class BaseLocaleUrlDefin
                     break;
                 }
             }
-        } catch (Exception e) {
+        } catch (IOException e) {
             log.warn("Exception while monitoring update times.", e);
             return true;
         }
@@ -146,9 +136,7 @@ public abstract class BaseLocaleUrlDefin
             defsMap = reader.read(connection.getInputStream());
         } catch (FileNotFoundException e) {
             // File not found. continue.
-            if (log.isDebugEnabled()) {
-                log.debug("File " + null + " not found, continue");
-            }
+            log.debug("File {} not found, continue", url);
         } catch (IOException e) {
             throw new DefinitionsFactoryException(
                     "I/O error processing configuration.", e);

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=942880&r1=942879&r2=942880&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 Mon May 10 19:58:07 2010
@@ -30,8 +30,6 @@ import java.util.Map;
 
 import org.apache.tiles.Definition;
 import org.apache.tiles.definition.DefinitionsFactoryException;
-import org.apache.tiles.definition.NoSuchDefinitionException;
-import org.apache.tiles.definition.Refreshable;
 import org.apache.tiles.definition.pattern.PatternDefinitionResolver;
 import org.apache.tiles.definition.pattern.PatternDefinitionResolverAware;
 import org.apache.tiles.util.LocaleUtil;
@@ -50,7 +48,7 @@ import org.apache.tiles.util.LocaleUtil;
  * @since 2.1.0
  */
 public class CachingLocaleUrlDefinitionDAO extends BaseLocaleUrlDefinitionDAO
-        implements Refreshable, PatternDefinitionResolverAware<Locale> {
+        implements PatternDefinitionResolverAware<Locale> {
 
     /**
      * Initialization parameter to set whether we want to refresh URLs when they
@@ -112,13 +110,8 @@ public class CachingLocaleUrlDefinitionD
                 retValue = getDefinitionFromResolver(name, customizationKey);
 
                 if (retValue != null) {
-                    try {
-                        synchronized (definitions) {
-                            definitions.put(name, retValue);
-                        }
-                    } catch (NoSuchDefinitionException ex) {
-                        throw new IllegalStateException(
-                                "Unable to resolve wildcard mapping", ex);
+                    synchronized (definitions) {
+                        definitions.put(name, retValue);
                     }
                 }
             }
@@ -140,13 +133,6 @@ public class CachingLocaleUrlDefinitionD
         return retValue;
     }
 
-    /** {@inheritDoc} */
-    public synchronized void refresh() {
-        if (refreshRequired()) {
-            locale2definitionMap.clear();
-        }
-    }
-
     /**
      * Sets the flag to check URL refresh. If not called, the default is
      * <code>false</code>.

Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/LocaleUrlDefinitionDAO.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/LocaleUrlDefinitionDAO.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/LocaleUrlDefinitionDAO.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/LocaleUrlDefinitionDAO.java Mon May 10 19:58:07 2010
@@ -55,7 +55,7 @@ public class LocaleUrlDefinitionDAO exte
      */
     public Definition getDefinition(String name, Locale customizationKey) {
         Map<String, Definition> defsMap = getDefinitions(customizationKey);
-        return defsMap != null ? defsMap.get(name) : null;
+        return defsMap.get(name);
     }
 
     /** {@inheritDoc} */

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=942880&r1=942879&r2=942880&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 Mon May 10 19:58:07 2010
@@ -123,13 +123,10 @@ public class ResolvingLocaleUrlDefinitio
             return;
         }
 
-        if (log.isDebugEnabled()) {
-            log.debug("Resolve definition for child name='"
-                + definition.getName()
-                + "' extends='" + definition.getExtends() + "'.");
-        }
+        log.debug("Resolve definition for child name='{}' extends='{}.",
+                definition.getName(), definition.getExtends());
 
-        // Set as visited to avoid endless recurisvity.
+        // Set as visited to avoid endless recursivity.
         alreadyResolvedDefinitions.add(definition.getName());
 
         // Resolve parent before itself.

Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/URLReader.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/URLReader.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/URLReader.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/URLReader.java Mon May 10 19:58:07 2010
@@ -49,12 +49,4 @@ public interface URLReader {
      * @since 2.1.0
      */
     void setReader(DefinitionsReader reader);
-
-    /**
-     * Adds a single URL to use.
-     *
-     * @param sourceURL The source URL to add.
-     * @since 2.1.0
-     */
-    void addSourceURL(URL sourceURL);
 }

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=942880&r1=942879&r2=942880&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 Mon May 10 19:58:07 2010
@@ -227,22 +227,6 @@ public class DigesterDefinitionsReader i
     }
 
     /**
-     * Digester rule to manage assignment of an object as an attribute value.
-     *
-     * @since 3.0.0
-     */
-    public static class SetValueToAttributeRule extends Rule {
-
-        /** {@inheritDoc} */
-        @Override
-        public void begin(String namespace, String name, Attributes attributes) {
-            Object obj = digester.pop();
-            Attribute attribute = new Attribute(obj);
-            digester.push(attribute);
-        }
-    }
-
-    /**
      * <code>Digester</code> object used to read Definition data
      * from the source.
      */

Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReaderException.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReaderException.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReaderException.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReaderException.java Mon May 10 19:58:07 2010
@@ -55,7 +55,7 @@ public class DigesterDefinitionsReaderEx
      * @param e The exception to be wrapped.
      * @since 2.1.0
      */
-    public DigesterDefinitionsReaderException(Exception e) {
+    public DigesterDefinitionsReaderException(Throwable e) {
         super(e);
     }
 
@@ -66,7 +66,7 @@ public class DigesterDefinitionsReaderEx
      * @param e The exception to be wrapped.
      * @since 2.1.0
      */
-    public DigesterDefinitionsReaderException(String message, Exception e) {
+    public DigesterDefinitionsReaderException(String message, Throwable e) {
         super(message, e);
     }
 

Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/pattern/PrefixedPatternDefinitionResolver.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/pattern/PrefixedPatternDefinitionResolver.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/pattern/PrefixedPatternDefinitionResolver.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/pattern/PrefixedPatternDefinitionResolver.java Mon May 10 19:58:07 2010
@@ -99,8 +99,8 @@ public class PrefixedPatternDefinitionRe
                                     .getValue()));
                     matchers.add(matcher);
                 } else {
-                    logger.warn("Cannot find a DefinitionPatternMatcherFactory for expression '"
-                            + key + "'");
+                    logger.warn("Cannot find a DefinitionPatternMatcherFactory for expression '{}'",
+                            key);
                 }
             } else {
                 excludedKeys.add(key);

Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/factory/BasicTilesContainerFactory.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/factory/BasicTilesContainerFactory.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/factory/BasicTilesContainerFactory.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/factory/BasicTilesContainerFactory.java Mon May 10 19:58:07 2010
@@ -29,7 +29,6 @@ import java.util.Locale;
 import org.apache.tiles.TilesContainer;
 import org.apache.tiles.definition.DefinitionsFactory;
 import org.apache.tiles.definition.DefinitionsReader;
-import org.apache.tiles.definition.Refreshable;
 import org.apache.tiles.definition.UnresolvingLocaleDefinitionsFactory;
 import org.apache.tiles.definition.dao.BaseLocaleUrlDefinitionDAO;
 import org.apache.tiles.definition.dao.DefinitionDAO;
@@ -126,9 +125,6 @@ public class BasicTilesContainerFactory 
         factory.setLocaleResolver(resolver);
         factory.setDefinitionDAO(createLocaleDefinitionDao(applicationContext,
                 resolver));
-        if (factory instanceof Refreshable) {
-            ((Refreshable) factory).refresh();
-        }
         return factory;
     }
 

Added: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/DefinitionsFactoryExceptionTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/DefinitionsFactoryExceptionTest.java?rev=942880&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/DefinitionsFactoryExceptionTest.java (added)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/DefinitionsFactoryExceptionTest.java Mon May 10 19:58:07 2010
@@ -0,0 +1,77 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tiles.definition;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+/**
+ * Tests {@link DefinitionsFactoryException}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class DefinitionsFactoryExceptionTest {
+
+    /**
+     * Test method for {@link DefinitionsFactoryException#DefinitionsFactoryException()}.
+     */
+    @Test
+    public void testDefinitionsFactoryException() {
+        DefinitionsFactoryException exception = new DefinitionsFactoryException();
+        assertNull(exception.getMessage());
+        assertNull(exception.getCause());
+    }
+
+    /**
+     * Test method for {@link DefinitionsFactoryException#DefinitionsFactoryException(java.lang.String)}.
+     */
+    @Test
+    public void testDefinitionsFactoryExceptionString() {
+        DefinitionsFactoryException exception = new DefinitionsFactoryException("my message");
+        assertEquals("my message", exception.getMessage());
+        assertNull(exception.getCause());
+    }
+
+    /**
+     * Test method for {@link DefinitionsFactoryException#DefinitionsFactoryException(java.lang.Throwable)}.
+     */
+    @Test
+    public void testDefinitionsFactoryExceptionThrowable() {
+        Throwable cause = new Throwable();
+        DefinitionsFactoryException exception = new DefinitionsFactoryException(cause);
+        assertEquals(cause.toString(), exception.getMessage());
+        assertEquals(cause, exception.getCause());
+    }
+
+    /**
+     * Test method for {@link DefinitionsFactoryException#DefinitionsFactoryException(java.lang.String, java.lang.Throwable)}.
+     */
+    @Test
+    public void testDefinitionsFactoryExceptionStringThrowable() {
+        Throwable cause = new Throwable();
+        DefinitionsFactoryException exception = new DefinitionsFactoryException("my message", cause);
+        assertEquals("my message", exception.getMessage());
+        assertEquals(cause, exception.getCause());
+    }
+
+}

Propchange: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/DefinitionsFactoryExceptionTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/DefinitionsFactoryExceptionTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/FactoryNotFoundExceptitonTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/FactoryNotFoundExceptitonTest.java?rev=942880&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/FactoryNotFoundExceptitonTest.java (added)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/FactoryNotFoundExceptitonTest.java Mon May 10 19:58:07 2010
@@ -0,0 +1,77 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tiles.definition;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+/**
+ * Tests {@link FactoryNotFoundException}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class FactoryNotFoundExceptitonTest {
+
+    /**
+     * Test method for {@link FactoryNotFoundException#FactoryNotFoundException()}.
+     */
+    @Test
+    public void testFactoryNotFoundException() {
+        FactoryNotFoundException exception = new FactoryNotFoundException();
+        assertNull(exception.getMessage());
+        assertNull(exception.getCause());
+    }
+
+    /**
+     * Test method for {@link FactoryNotFoundException#FactoryNotFoundException(java.lang.String)}.
+     */
+    @Test
+    public void testFactoryNotFoundExceptionString() {
+        FactoryNotFoundException exception = new FactoryNotFoundException("my message");
+        assertEquals("my message", exception.getMessage());
+        assertNull(exception.getCause());
+    }
+
+    /**
+     * Test method for {@link FactoryNotFoundException#FactoryNotFoundException(java.lang.Throwable)}.
+     */
+    @Test
+    public void testFactoryNotFoundExceptionThrowable() {
+        Throwable cause = new Throwable();
+        FactoryNotFoundException exception = new FactoryNotFoundException(cause);
+        assertEquals(cause.toString(), exception.getMessage());
+        assertEquals(cause, exception.getCause());
+    }
+
+    /**
+     * Test method for {@link FactoryNotFoundException#FactoryNotFoundException(java.lang.String, java.lang.Throwable)}.
+     */
+    @Test
+    public void testFactoryNotFoundExceptionStringThrowable() {
+        Throwable cause = new Throwable();
+        FactoryNotFoundException exception = new FactoryNotFoundException("my message", cause);
+        assertEquals("my message", exception.getMessage());
+        assertEquals(cause, exception.getCause());
+    }
+
+}

Propchange: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/FactoryNotFoundExceptitonTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/FactoryNotFoundExceptitonTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/LocaleDefinitionsFactoryTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/LocaleDefinitionsFactoryTest.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/LocaleDefinitionsFactoryTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/LocaleDefinitionsFactoryTest.java Mon May 10 19:58:07 2010
@@ -74,4 +74,35 @@ public class LocaleDefinitionsFactoryTes
         assertEquals(realDefinition, factory.getDefinition("myDefinition", request));
         verify(dao, localeResolver, request);
     }
+
+    /**
+     * Test method for {@link LocaleDefinitionsFactory#getDefinition(String, Request)}.
+     */
+    @SuppressWarnings("unchecked")
+    @Test(expected=NoSuchDefinitionException.class)
+    public void testGetDefinitionNoParent() {
+        DefinitionDAO<Locale> dao = createMock(DefinitionDAO.class);
+        LocaleResolver localeResolver = createMock(LocaleResolver.class);
+        Request request = createMock(Request.class);
+        Definition definition = new Definition("myDefinition", null, null);
+        definition.setExtends("anotherDefinition");
+        Map<String, Attribute> attributes = new HashMap<String, Attribute>();
+        attributes.put("first", new Attribute("myValue"));
+        Locale locale = Locale.ITALY;
+
+        expect(localeResolver.resolveLocale(request)).andReturn(locale);
+        expect(dao.getDefinition("myDefinition", locale)).andReturn(definition);
+        expect(dao.getDefinition("anotherDefinition", locale)).andReturn(null);
+
+        LocaleDefinitionsFactory factory = new LocaleDefinitionsFactory();
+
+        replay(dao, localeResolver, request);
+        try {
+            factory.setDefinitionDAO(dao);
+            factory.setLocaleResolver(localeResolver);
+            factory.getDefinition("myDefinition", request);
+        } finally {
+            verify(dao, localeResolver, request);
+        }
+    }
 }

Added: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/NoSuchDefinitionExceptionTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/NoSuchDefinitionExceptionTest.java?rev=942880&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/NoSuchDefinitionExceptionTest.java (added)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/NoSuchDefinitionExceptionTest.java Mon May 10 19:58:07 2010
@@ -0,0 +1,77 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tiles.definition;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+/**
+ * Tests {@link NoSuchDefinitionException}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class NoSuchDefinitionExceptionTest {
+
+    /**
+     * Test method for {@link NoSuchDefinitionException#NoSuchDefinitionException()}.
+     */
+    @Test
+    public void testNoSuchDefinitionException() {
+        NoSuchDefinitionException exception = new NoSuchDefinitionException();
+        assertNull(exception.getMessage());
+        assertNull(exception.getCause());
+    }
+
+    /**
+     * Test method for {@link NoSuchDefinitionException#NoSuchDefinitionException(java.lang.String)}.
+     */
+    @Test
+    public void testNoSuchDefinitionExceptionString() {
+        NoSuchDefinitionException exception = new NoSuchDefinitionException("my message");
+        assertEquals("my message", exception.getMessage());
+        assertNull(exception.getCause());
+    }
+
+    /**
+     * Test method for {@link NoSuchDefinitionException#NoSuchDefinitionException(java.lang.Throwable)}.
+     */
+    @Test
+    public void testNoSuchDefinitionExceptionThrowable() {
+        Throwable cause = new Throwable();
+        NoSuchDefinitionException exception = new NoSuchDefinitionException(cause);
+        assertEquals(cause.toString(), exception.getMessage());
+        assertEquals(cause, exception.getCause());
+    }
+
+    /**
+     * Test method for {@link NoSuchDefinitionException#NoSuchDefinitionException(java.lang.String, java.lang.Throwable)}.
+     */
+    @Test
+    public void testNoSuchDefinitionExceptionStringThrowable() {
+        Throwable cause = new Throwable();
+        NoSuchDefinitionException exception = new NoSuchDefinitionException("my message", cause);
+        assertEquals("my message", exception.getMessage());
+        assertEquals(cause, exception.getCause());
+    }
+
+}

Propchange: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/NoSuchDefinitionExceptionTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/NoSuchDefinitionExceptionTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAOTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAOTest.java?rev=942880&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAOTest.java (added)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAOTest.java Mon May 10 19:58:07 2010
@@ -0,0 +1,186 @@
+/**
+ *
+ */
+package org.apache.tiles.definition.dao;
+
+import static org.easymock.EasyMock.*;
+import static org.easymock.classextension.EasyMock.*;
+import static org.junit.Assert.*;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.tiles.Attribute;
+import org.apache.tiles.Definition;
+import org.apache.tiles.definition.DefinitionsFactory;
+import org.apache.tiles.definition.DefinitionsReader;
+import org.apache.tiles.definition.RefreshMonitor;
+import org.apache.tiles.definition.digester.DigesterDefinitionsReader;
+import org.apache.tiles.request.Request;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests {@link BaseLocaleUrlDefinitionDAO}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class BaseLocaleUrlDefinitionDAOTest {
+
+    /**
+     * The time (in milliseconds) to wait to be sure that the system updates the
+     * modify date of a file.
+     */
+    private static final int SLEEP_MILLIS = 2000;
+
+    private BaseLocaleUrlDefinitionDAO dao;
+
+    /**
+     * Sets up the test.
+     */
+    @Before
+    public void setUp() {
+        dao = createMockBuilder(BaseLocaleUrlDefinitionDAO.class).withConstructor().createMock();
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.definition.dao.BaseLocaleUrlDefinitionDAO#refreshRequired()}.
+     * @throws URISyntaxException If something goes wrong.
+     * @throws IOException If something goes wrong.
+     * @throws InterruptedException If something goes wrong.
+     */
+    @Test
+    public void testRefreshRequired() throws URISyntaxException, IOException, InterruptedException {
+        // Set up multiple data sources.
+        Map<String, Attribute> attribs = new HashMap<String, Attribute>();
+        attribs.put("testparm", new Attribute("testval"));
+        Definition rewriteTest = new Definition("rewrite.test", Attribute.createTemplateAttribute("/test.jsp"), attribs);
+        expect(dao.getDefinition("rewrite.test", null)).andReturn(rewriteTest);
+
+        replay(dao);
+        URL url = this.getClass().getClassLoader().getResource(
+                "org/apache/tiles/config/temp-defs.xml");
+
+        URI uri = null;
+        String urlPath = null;
+
+        // The following madness is necessary b/c of the way Windows hanndles
+        // URLs.
+        // We must add a slash to the protocol if Windows does not. But we
+        // cannot
+        // add a slash to Unix paths b/c they already have one.
+        if (url.getPath().startsWith("/")) {
+            urlPath = "file:" + url.getPath();
+        } else {
+            urlPath = "file:/" + url.getPath();
+        }
+
+        // The following second madness is necessary b/c sometimes spaces
+        // are encoded as '%20', sometimes they are not. For example in
+        // Windows 2000 under Eclipse they are encoded, under the prompt of
+        // Windows 2000 they are not.
+        // It seems to be in the different behaviour of
+        // sun.misc.Launcher$AppClassLoader (called under Eclipse) and
+        // java.net.URLClassLoader (under maven).
+        // And an URL accepts spaces while URIs need '%20'.
+        try {
+            uri = new URI(urlPath);
+        } catch (URISyntaxException e) {
+            uri = new URI(urlPath.replaceAll(" ", "%20"));
+        }
+
+        List<URL> sourceURLs = new ArrayList<URL>();
+        sourceURLs.add(uri.toURL());
+        dao.setSourceURLs(sourceURLs);
+        DefinitionsReader reader = new DigesterDefinitionsReader();
+        dao.setReader(reader);
+
+        String xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n"
+                + "<!DOCTYPE tiles-definitions PUBLIC "
+                + "\"-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN\" "
+                + "\"http://tiles.apache.org/dtds/tiles-config_3_0.dtd\">\n\n"
+                + "<tiles-definitions>"
+                + "<definition name=\"rewrite.test\" template=\"/test.jsp\">"
+                + "<put-attribute name=\"testparm\" value=\"testval\"/>"
+                + "</definition>" + "</tiles-definitions>";
+
+        File file = new File(uri);
+        FileOutputStream fileOut = new FileOutputStream(file);
+        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
+                fileOut));
+        writer.write(xml);
+        writer.close();
+
+        Map<String, String> params = new HashMap<String, String>();
+        params.put(DefinitionsFactory.DEFINITIONS_CONFIG, urlPath);
+        Request context = createMock(Request.class);
+        expect(context.getContext("session")).andReturn(
+                new HashMap<String, Object>()).anyTimes();
+        expect(context.getRequestLocale()).andReturn(null).anyTimes();
+        replay(context);
+
+        Definition definition = dao.getDefinition("rewrite.test",
+                null);
+        assertNotNull("rewrite.test definition not found.", definition);
+        assertEquals("Incorrect initial template value", "/test.jsp",
+                definition.getTemplateAttribute().getValue());
+
+        RefreshMonitor reloadable = dao;
+        dao.loadDefinitionsFromURL(url);
+        assertEquals("Factory should be fresh.", false, reloadable
+                .refreshRequired());
+
+        // Make sure the system actually updates the timestamp.
+        Thread.sleep(SLEEP_MILLIS);
+
+        // Set up multiple data sources.
+        xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n"
+                + "<!DOCTYPE tiles-definitions PUBLIC "
+                + "\"-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN\" "
+                + "\"http://tiles.apache.org/dtds/tiles-config_3_0.dtd\">\n\n"
+                + "<tiles-definitions>"
+                + "<definition name=\"rewrite.test\" template=\"/newtest.jsp\">"
+                + "<put-attribute name=\"testparm\" value=\"testval\"/>"
+                + "</definition>" + "</tiles-definitions>";
+
+        file = new File(uri);
+        fileOut = new FileOutputStream(file);
+        writer = new BufferedWriter(new OutputStreamWriter(fileOut));
+        writer.write(xml);
+        writer.close();
+        file = new File(uri);
+
+        assertEquals("Factory should be stale.", true, reloadable
+                .refreshRequired());
+
+        verify(context, dao);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.definition.dao.BaseLocaleUrlDefinitionDAO#loadDefinitionsFromURL(java.net.URL)}.
+     * @throws MalformedURLException If something goes wrong.
+     */
+    @Test
+    public void testLoadDefinitionsFromURLFileNotFound() throws MalformedURLException {
+        URL url = new URL("file:///hello/there.txt");
+        replay(dao);
+        DefinitionsReader reader = createMock(DefinitionsReader.class);
+        replay(reader);
+
+        dao.setReader(reader);
+        assertNull(dao.loadDefinitionsFromURL(url));
+        verify(dao, reader);
+    }
+
+}

Propchange: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAOTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAOTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAOTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAOTest.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAOTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAOTest.java Mon May 10 19:58:07 2010
@@ -23,16 +23,9 @@ package org.apache.tiles.definition.dao;
 
 import static org.easymock.EasyMock.*;
 
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.net.URI;
-import java.net.URISyntaxException;
 import java.net.URL;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Locale;
@@ -44,16 +37,13 @@ import junit.framework.TestCase;
 import org.apache.tiles.Attribute;
 import org.apache.tiles.Definition;
 import org.apache.tiles.ListAttribute;
-import org.apache.tiles.definition.DefinitionsFactory;
 import org.apache.tiles.definition.DefinitionsReader;
 import org.apache.tiles.definition.MockDefinitionsReader;
-import org.apache.tiles.definition.RefreshMonitor;
 import org.apache.tiles.definition.digester.DigesterDefinitionsReader;
 import org.apache.tiles.definition.pattern.BasicPatternDefinitionResolver;
 import org.apache.tiles.definition.pattern.PatternDefinitionResolver;
 import org.apache.tiles.definition.pattern.wildcard.WildcardDefinitionPatternMatcherFactory;
 import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.Request;
 
 /**
  * Tests {@link CachingLocaleUrlDefinitionDAO}.
@@ -63,12 +53,6 @@ import org.apache.tiles.request.Request;
 public class CachingLocaleUrlDefinitionDAOTest extends TestCase {
 
     /**
-     * The time (in milliseconds) to wait to be sure that the system updates the
-     * modify date of a file.
-     */
-    private static final int SLEEP_MILLIS = 2000;
-
-    /**
      * The object to test.
      */
     private CachingLocaleUrlDefinitionDAO definitionDao;
@@ -287,35 +271,6 @@ public class CachingLocaleUrlDefinitionD
     }
 
     /**
-     * Tests {@link LocaleUrlDefinitionDAO#addSourceURL(URL)}.
-     */
-    public void testAddSourceURL() {
-        // Set up multiple data sources.
-        URL url1 = this.getClass().getClassLoader().getResource(
-                "org/apache/tiles/config/defs1.xml");
-        assertNotNull("Could not load defs1 file.", url1);
-        URL url2 = this.getClass().getClassLoader().getResource(
-                "org/apache/tiles/config/defs2.xml");
-        assertTrue("The source URLs is not empty", definitionDao.sourceURLs
-                .isEmpty());
-        definitionDao.addSourceURL(url1);
-        assertEquals("The size of the source URLs is not correct", 1,
-                definitionDao.sourceURLs.size());
-        assertEquals("The URL is not correct", url1, definitionDao.sourceURLs
-                .get(0));
-        List<URL> sourceURLs = new ArrayList<URL>();
-        sourceURLs.add(url2);
-        definitionDao.setSourceURLs(sourceURLs);
-        definitionDao.addSourceURL(url1);
-        assertEquals("The size of the source URLs is not correct", 2,
-                definitionDao.sourceURLs.size());
-        assertEquals("The URL is not correct", url2, definitionDao.sourceURLs
-                .get(0));
-        assertEquals("The URL is not correct", url1, definitionDao.sourceURLs
-                .get(1));
-    }
-
-    /**
      * Tests execution.
      *
      * @throws IOException If something goes wrong.
@@ -358,119 +313,14 @@ public class CachingLocaleUrlDefinitionD
     }
 
     /**
-     * Tests {@link LocaleUrlDefinitionDAO#refreshRequired()}.
-     *
-     * @throws IOException If something goes wrong during I/O.
-     * @throws InterruptedException If the "sleep" instruction fails.
-     * @throws URISyntaxException If the URIs are not correct.
-     */
-    public void testRefreshRequired() throws IOException, InterruptedException,
-            URISyntaxException {
-        // Set up multiple data sources.
-        URL url = this.getClass().getClassLoader().getResource(
-                "org/apache/tiles/config/temp-defs.xml");
-
-        URI uri = null;
-        String urlPath = null;
-
-        // The following madness is necessary b/c of the way Windows hanndles
-        // URLs.
-        // We must add a slash to the protocol if Windows does not. But we
-        // cannot
-        // add a slash to Unix paths b/c they already have one.
-        if (url.getPath().startsWith("/")) {
-            urlPath = "file:" + url.getPath();
-        } else {
-            urlPath = "file:/" + url.getPath();
-        }
-
-        // The following second madness is necessary b/c sometimes spaces
-        // are encoded as '%20', sometimes they are not. For example in
-        // Windows 2000 under Eclipse they are encoded, under the prompt of
-        // Windows 2000 they are not.
-        // It seems to be in the different behaviour of
-        // sun.misc.Launcher$AppClassLoader (called under Eclipse) and
-        // java.net.URLClassLoader (under maven).
-        // And an URL accepts spaces while URIs need '%20'.
-        try {
-            uri = new URI(urlPath);
-        } catch (URISyntaxException e) {
-            uri = new URI(urlPath.replaceAll(" ", "%20"));
-        }
-
-        List<URL> sourceURLs = new ArrayList<URL>();
-        sourceURLs.add(uri.toURL());
-        definitionDao.setSourceURLs(sourceURLs);
-        DefinitionsReader reader = new DigesterDefinitionsReader();
-        definitionDao.setReader(reader);
-
-        String xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n"
-                + "<!DOCTYPE tiles-definitions PUBLIC "
-                + "\"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN\" "
-                + "\"http://tiles.apache.org/dtds/tiles-config_2_0.dtd\">\n\n"
-                + "<tiles-definitions>"
-                + "<definition name=\"rewrite.test\" template=\"/test.jsp\">"
-                + "<put-attribute name=\"testparm\" value=\"testval\"/>"
-                + "</definition>" + "</tiles-definitions>";
-
-        File file = new File(uri);
-        FileOutputStream fileOut = new FileOutputStream(file);
-        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
-                fileOut));
-        writer.write(xml);
-        writer.close();
-
-        Map<String, String> params = new HashMap<String, String>();
-        params.put(DefinitionsFactory.DEFINITIONS_CONFIG, urlPath);
-        Request context = createMock(Request.class);
-        expect(context.getContext("session")).andReturn(
-                new HashMap<String, Object>()).anyTimes();
-        expect(context.getRequestLocale()).andReturn(null).anyTimes();
-        replay(context);
-
-        Definition definition = definitionDao.getDefinition("rewrite.test",
-                null);
-        assertNotNull("rewrite.test definition not found.", definition);
-        assertEquals("Incorrect initial template value", "/test.jsp",
-                definition.getTemplateAttribute().getValue());
-
-        RefreshMonitor reloadable = definitionDao;
-        assertEquals("Factory should be fresh.", false, reloadable
-                .refreshRequired());
-
-        // Make sure the system actually updates the timestamp.
-        Thread.sleep(SLEEP_MILLIS);
-
-        // Set up multiple data sources.
-        xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n"
-                + "<!DOCTYPE tiles-definitions PUBLIC "
-                + "\"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN\" "
-                + "\"http://tiles.apache.org/dtds/tiles-config_2_0.dtd\">\n\n"
-                + "<tiles-definitions>"
-                + "<definition name=\"rewrite.test\" template=\"/newtest.jsp\">"
-                + "<put-attribute name=\"testparm\" value=\"testval\"/>"
-                + "</definition>" + "</tiles-definitions>";
-
-        file = new File(uri);
-        fileOut = new FileOutputStream(file);
-        writer = new BufferedWriter(new OutputStreamWriter(fileOut));
-        writer.write(xml);
-        writer.close();
-        file = new File(uri);
-
-        assertEquals("Factory should be stale.", true, reloadable
-                .refreshRequired());
-
-        verify(context);
-    }
-
-    /**
      * Tests wildcard mappings.
      */
     public void testWildcardMapping() {
         URL url = this.getClass().getClassLoader().getResource(
                 "org/apache/tiles/config/defs-wildcard.xml");
-        definitionDao.addSourceURL(url);
+        List<URL> urls = new ArrayList<URL>();
+        urls.add(url);
+        definitionDao.setSourceURLs(urls);
         definitionDao.setReader(new DigesterDefinitionsReader());
 
         Definition definition = definitionDao.getDefinition("test.defName.subLayered", Locale.ITALY);
@@ -514,7 +364,9 @@ public class CachingLocaleUrlDefinitionD
     public void testListAttributeLocaleInheritance() {
         URL url = this.getClass().getClassLoader().getResource(
                 "org/apache/tiles/config/tiles-defs-2.1.xml");
-        definitionDao.addSourceURL(url);
+        List<URL> urls = new ArrayList<URL>();
+        urls.add(url);
+        definitionDao.setSourceURLs(urls);
         ApplicationContext applicationContext = createMock(ApplicationContext.class);
         definitionDao.setReader(new DigesterDefinitionsReader());
         replay(applicationContext);

Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/LocaleUrlDefinitionDAOTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/LocaleUrlDefinitionDAOTest.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/LocaleUrlDefinitionDAOTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/LocaleUrlDefinitionDAOTest.java Mon May 10 19:58:07 2010
@@ -23,16 +23,9 @@ package org.apache.tiles.definition.dao;
 
 import static org.easymock.EasyMock.*;
 
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.net.URI;
-import java.net.URISyntaxException;
 import java.net.URL;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Locale;
@@ -42,13 +35,10 @@ import java.util.Set;
 import junit.framework.TestCase;
 
 import org.apache.tiles.Definition;
-import org.apache.tiles.definition.DefinitionsFactory;
 import org.apache.tiles.definition.DefinitionsReader;
 import org.apache.tiles.definition.MockDefinitionsReader;
-import org.apache.tiles.definition.RefreshMonitor;
 import org.apache.tiles.definition.digester.DigesterDefinitionsReader;
 import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.Request;
 
 /**
  * Tests {@link LocaleUrlDefinitionDAO}.
@@ -58,12 +48,6 @@ import org.apache.tiles.request.Request;
 public class LocaleUrlDefinitionDAOTest extends TestCase {
 
     /**
-     * The time (in milliseconds) to wait to be sure that the system updates the
-     * modify date of a file.
-     */
-    private static final int SLEEP_MILLIS = 2000;
-
-    /**
      * The object to test.
      */
     private LocaleUrlDefinitionDAO definitionDao;
@@ -278,35 +262,6 @@ public class LocaleUrlDefinitionDAOTest 
     }
 
     /**
-     * Tests {@link LocaleUrlDefinitionDAO#addSourceURL(URL)}.
-     */
-    public void testAddSourceURL() {
-        // Set up multiple data sources.
-        URL url1 = this.getClass().getClassLoader().getResource(
-                "org/apache/tiles/config/defs1.xml");
-        assertNotNull("Could not load defs1 file.", url1);
-        URL url2 = this.getClass().getClassLoader().getResource(
-                "org/apache/tiles/config/defs2.xml");
-        assertTrue("The source URLs is not empty", definitionDao.sourceURLs
-                .isEmpty());
-        definitionDao.addSourceURL(url1);
-        assertEquals("The size of the source URLs is not correct", 1,
-                definitionDao.sourceURLs.size());
-        assertEquals("The URL is not correct", url1, definitionDao.sourceURLs
-                .get(0));
-        List<URL> sourceURLs = new ArrayList<URL>();
-        sourceURLs.add(url2);
-        definitionDao.setSourceURLs(sourceURLs);
-        definitionDao.addSourceURL(url1);
-        assertEquals("The size of the source URLs is not correct", 2,
-                definitionDao.sourceURLs.size());
-        assertEquals("The URL is not correct", url2, definitionDao.sourceURLs
-                .get(0));
-        assertEquals("The URL is not correct", url1, definitionDao.sourceURLs
-                .get(1));
-    }
-
-    /**
      * Tests execution.
      *
      * @throws IOException If something goes wrong.
@@ -347,114 +302,4 @@ public class LocaleUrlDefinitionDAOTest 
         assertEquals("The source URLs are not correct", sourceURLs,
                 definitionDao.sourceURLs);
     }
-
-    /**
-     * Tests {@link LocaleUrlDefinitionDAO#refreshRequired()}.
-     *
-     * @throws IOException If something goes wrong during I/O.
-     * @throws InterruptedException If the "sleep" instruction fails.
-     * @throws URISyntaxException If the URIs are not correct.
-     */
-    public void testRefreshRequired() throws IOException, InterruptedException,
-            URISyntaxException {
-        // Set up multiple data sources.
-        URL url = this.getClass().getClassLoader().getResource(
-                "org/apache/tiles/config/temp-defs.xml");
-
-        URI uri = null;
-        String urlPath = null;
-
-        // The following madness is necessary b/c of the way Windows hanndles
-        // URLs.
-        // We must add a slash to the protocol if Windows does not. But we
-        // cannot
-        // add a slash to Unix paths b/c they already have one.
-        if (url.getPath().startsWith("/")) {
-            urlPath = "file:" + url.getPath();
-        } else {
-            urlPath = "file:/" + url.getPath();
-        }
-
-        ApplicationContext applicationContext = createMock(ApplicationContext.class);
-        replay(applicationContext);
-
-        // The following second madness is necessary b/c sometimes spaces
-        // are encoded as '%20', sometimes they are not. For example in
-        // Windows 2000 under Eclipse they are encoded, under the prompt of
-        // Windows 2000 they are not.
-        // It seems to be in the different behaviour of
-        // sun.misc.Launcher$AppClassLoader (called under Eclipse) and
-        // java.net.URLClassLoader (under maven).
-        // And an URL accepts spaces while URIs need '%20'.
-        try {
-            uri = new URI(urlPath);
-        } catch (URISyntaxException e) {
-            uri = new URI(urlPath.replaceAll(" ", "%20"));
-        }
-
-        List<URL> sourceURLs = new ArrayList<URL>();
-        sourceURLs.add(uri.toURL());
-        definitionDao.setSourceURLs(sourceURLs);
-        DefinitionsReader reader = new DigesterDefinitionsReader();
-        definitionDao.setReader(reader);
-
-        String xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n"
-                + "<!DOCTYPE tiles-definitions PUBLIC "
-                + "\"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN\" "
-                + "\"http://tiles.apache.org/dtds/tiles-config_2_0.dtd\">\n\n"
-                + "<tiles-definitions>"
-                + "<definition name=\"rewrite.test\" template=\"/test.jsp\">"
-                + "<put-attribute name=\"testparm\" value=\"testval\"/>"
-                + "</definition>" + "</tiles-definitions>";
-
-        File file = new File(uri);
-        FileOutputStream fileOut = new FileOutputStream(file);
-        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
-                fileOut));
-        writer.write(xml);
-        writer.close();
-
-        Map<String, String> params = new HashMap<String, String>();
-        params.put(DefinitionsFactory.DEFINITIONS_CONFIG, urlPath);
-        Request context = createMock(Request.class);
-        expect(context.getContext("session")).andReturn(
-                new HashMap<String, Object>()).anyTimes();
-        expect(context.getRequestLocale()).andReturn(null).anyTimes();
-        replay(context);
-
-        Definition definition = definitionDao.getDefinition("rewrite.test",
-                null);
-        assertNotNull("rewrite.test definition not found.", definition);
-        assertEquals("Incorrect initial template value", "/test.jsp",
-                definition.getTemplateAttribute().getValue());
-
-        RefreshMonitor reloadable = definitionDao;
-        assertEquals("Factory should be fresh.", false, reloadable
-                .refreshRequired());
-
-        // Make sure the system actually updates the timestamp.
-        Thread.sleep(SLEEP_MILLIS);
-
-        // Set up multiple data sources.
-        xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n"
-                + "<!DOCTYPE tiles-definitions PUBLIC "
-                + "\"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN\" "
-                + "\"http://tiles.apache.org/dtds/tiles-config_2_0.dtd\">\n\n"
-                + "<tiles-definitions>"
-                + "<definition name=\"rewrite.test\" template=\"/newtest.jsp\">"
-                + "<put-attribute name=\"testparm\" value=\"testval\"/>"
-                + "</definition>" + "</tiles-definitions>";
-
-        file = new File(uri);
-        fileOut = new FileOutputStream(file);
-        writer = new BufferedWriter(new OutputStreamWriter(fileOut));
-        writer.write(xml);
-        writer.close();
-        file = new File(uri);
-
-        assertEquals("Factory should be stale.", true, reloadable
-                .refreshRequired());
-
-        verify(applicationContext, context);
-    }
 }

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=942880&r1=942879&r2=942880&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 Mon May 10 19:58:07 2010
@@ -22,14 +22,9 @@
 package org.apache.tiles.definition.dao;
 
 import static org.easymock.EasyMock.*;
+import static org.junit.Assert.*;
 
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.net.URI;
-import java.net.URISyntaxException;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -39,28 +34,27 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 
-import junit.framework.TestCase;
-
 import org.apache.tiles.Attribute;
 import org.apache.tiles.Definition;
 import org.apache.tiles.ListAttribute;
 import org.apache.tiles.definition.DefinitionsFactory;
 import org.apache.tiles.definition.DefinitionsReader;
 import org.apache.tiles.definition.MockDefinitionsReader;
-import org.apache.tiles.definition.RefreshMonitor;
+import org.apache.tiles.definition.NoSuchDefinitionException;
 import org.apache.tiles.definition.digester.DigesterDefinitionsReader;
 import org.apache.tiles.definition.pattern.BasicPatternDefinitionResolver;
 import org.apache.tiles.definition.pattern.PatternDefinitionResolver;
 import org.apache.tiles.definition.pattern.wildcard.WildcardDefinitionPatternMatcherFactory;
 import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.Request;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * Tests {@link ResolvingLocaleUrlDefinitionDAO}.
  *
  * @version $Rev$ $Date$
  */
-public class ResolvingLocaleUrlDefinitionDAOTest extends TestCase {
+public class ResolvingLocaleUrlDefinitionDAOTest {
 
     /**
      * The number of attribute names.
@@ -68,20 +62,13 @@ public class ResolvingLocaleUrlDefinitio
     private static final int ATTRIBUTE_NAMES_COUNT = 6;
 
     /**
-     * The time (in milliseconds) to wait to be sure that the system updates the
-     * modify date of a file.
-     */
-    private static final int SLEEP_MILLIS = 2000;
-
-    /**
      * The object to test.
      */
     private ResolvingLocaleUrlDefinitionDAO definitionDao;
 
     /** {@inheritDoc} */
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
+    @Before
+    public void setUp() {
         definitionDao = new ResolvingLocaleUrlDefinitionDAO();
         WildcardDefinitionPatternMatcherFactory definitionPatternMatcherFactory =
             new WildcardDefinitionPatternMatcherFactory();
@@ -94,6 +81,7 @@ public class ResolvingLocaleUrlDefinitio
     /**
      * Tests {@link LocaleUrlDefinitionDAO#getDefinition(String, Locale)}.
      */
+    @Test
     public void testGetDefinition() {
         // Set up multiple data sources.
         URL url1 = this.getClass().getClassLoader().getResource(
@@ -180,6 +168,7 @@ public class ResolvingLocaleUrlDefinitio
     /**
      * Tests {@link LocaleUrlDefinitionDAO#getDefinitions(Locale)}.
      */
+    @Test
     public void testGetDefinitions() {
         // Set up multiple data sources.
         URL url1 = this.getClass().getClassLoader().getResource(
@@ -272,6 +261,7 @@ public class ResolvingLocaleUrlDefinitio
     /**
      * Tests {@link LocaleUrlDefinitionDAO#setSourceURLs(List)}.
      */
+    @Test
     public void testSetSourceURLs() {
         // Set up multiple data sources.
         URL url1 = this.getClass().getClassLoader().getResource(
@@ -295,6 +285,7 @@ public class ResolvingLocaleUrlDefinitio
     /**
      * Tests {@link LocaleUrlDefinitionDAO#setReader(DefinitionsReader)}.
      */
+    @Test
     public void testSetReader() {
         DefinitionsReader reader = createMock(DefinitionsReader.class);
         definitionDao.setReader(reader);
@@ -302,33 +293,13 @@ public class ResolvingLocaleUrlDefinitio
                 definitionDao.reader);
     }
 
-    /**
-     * Tests {@link LocaleUrlDefinitionDAO#addSourceURL(URL)}.
-     */
-    public void testAddSourceURL() {
-        // Set up multiple data sources.
-        URL url1 = this.getClass().getClassLoader().getResource(
-                "org/apache/tiles/config/defs1.xml");
-        assertNotNull("Could not load defs1 file.", url1);
-        URL url2 = this.getClass().getClassLoader().getResource(
-                "org/apache/tiles/config/defs2.xml");
-        assertTrue("The source URLs is not empty", definitionDao.sourceURLs
-                .isEmpty());
-        definitionDao.addSourceURL(url1);
-        assertEquals("The size of the source URLs is not correct", 1,
-                definitionDao.sourceURLs.size());
-        assertEquals("The URL is not correct", url1, definitionDao.sourceURLs
-                .get(0));
-        List<URL> sourceURLs = new ArrayList<URL>();
-        sourceURLs.add(url2);
-        definitionDao.setSourceURLs(sourceURLs);
-        definitionDao.addSourceURL(url1);
-        assertEquals("The size of the source URLs is not correct", 2,
-                definitionDao.sourceURLs.size());
-        assertEquals("The URL is not correct", url2, definitionDao.sourceURLs
-                .get(0));
-        assertEquals("The URL is not correct", url1, definitionDao.sourceURLs
-                .get(1));
+    @Test(expected=NoSuchDefinitionException.class)
+    public void testResolveInheritanceNoParent() {
+        Definition definition = new Definition("mydef", null, null);
+        definition.setExtends("otherDef");
+        definitionDao.resolveInheritance(definition,
+                new HashMap<String, Definition>(), Locale.ITALY,
+                new HashSet<String>());
     }
 
     /**
@@ -336,6 +307,7 @@ public class ResolvingLocaleUrlDefinitio
      *
      * @throws IOException If something goes wrong.
      */
+    @Test
     public void testInit() throws IOException {
         URL url1 = this.getClass().getClassLoader().getResource(
                 "org/apache/tiles/config/defs1.xml");
@@ -385,117 +357,15 @@ public class ResolvingLocaleUrlDefinitio
     }
 
     /**
-     * Tests {@link LocaleUrlDefinitionDAO#refreshRequired()}.
-     *
-     * @throws IOException If something goes wrong during I/O.
-     * @throws InterruptedException If the "sleep" instruction fails.
-     * @throws URISyntaxException If the URIs are not correct.
-     */
-    public void testRefreshRequired() throws IOException, InterruptedException,
-            URISyntaxException {
-        // Set up multiple data sources.
-        URL url = this.getClass().getClassLoader().getResource(
-                "org/apache/tiles/config/temp-defs.xml");
-
-        URI uri = null;
-        String urlPath = null;
-
-        // The following madness is necessary b/c of the way Windows hanndles
-        // URLs.
-        // We must add a slash to the protocol if Windows does not. But we
-        // cannot
-        // add a slash to Unix paths b/c they already have one.
-        if (url.getPath().startsWith("/")) {
-            urlPath = "file:" + url.getPath();
-        } else {
-            urlPath = "file:/" + url.getPath();
-        }
-
-        // The following second madness is necessary b/c sometimes spaces
-        // are encoded as '%20', sometimes they are not. For example in
-        // Windows 2000 under Eclipse they are encoded, under the prompt of
-        // Windows 2000 they are not.
-        // It seems to be in the different behaviour of
-        // sun.misc.Launcher$AppClassLoader (called under Eclipse) and
-        // java.net.URLClassLoader (under maven).
-        // And an URL accepts spaces while URIs need '%20'.
-        try {
-            uri = new URI(urlPath);
-        } catch (URISyntaxException e) {
-            uri = new URI(urlPath.replaceAll(" ", "%20"));
-        }
-
-        List<URL> sourceURLs = new ArrayList<URL>();
-        sourceURLs.add(uri.toURL());
-        definitionDao.setSourceURLs(sourceURLs);
-        DefinitionsReader reader = new DigesterDefinitionsReader();
-        definitionDao.setReader(reader);
-
-        String xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n"
-                + "<!DOCTYPE tiles-definitions PUBLIC "
-                + "\"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN\" "
-                + "\"http://tiles.apache.org/dtds/tiles-config_2_0.dtd\">\n\n"
-                + "<tiles-definitions>"
-                + "<definition name=\"rewrite.test\" template=\"/test.jsp\">"
-                + "<put-attribute name=\"testparm\" value=\"testval\"/>"
-                + "</definition>" + "</tiles-definitions>";
-
-        File file = new File(uri);
-        FileOutputStream fileOut = new FileOutputStream(file);
-        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
-                fileOut));
-        writer.write(xml);
-        writer.close();
-
-        Map<String, String> params = new HashMap<String, String>();
-        params.put(DefinitionsFactory.DEFINITIONS_CONFIG, urlPath);
-        Request context = createMock(Request.class);
-        expect(context.getContext("session")).andReturn(
-                new HashMap<String, Object>()).anyTimes();
-        expect(context.getRequestLocale()).andReturn(null).anyTimes();
-        replay(context);
-
-        Definition definition = definitionDao.getDefinition("rewrite.test",
-                null);
-        assertNotNull("rewrite.test definition not found.", definition);
-        assertEquals("Incorrect initial template value", "/test.jsp",
-                definition.getTemplateAttribute().getValue());
-
-        RefreshMonitor reloadable = definitionDao;
-        assertEquals("Factory should be fresh.", false, reloadable
-                .refreshRequired());
-
-        // Make sure the system actually updates the timestamp.
-        Thread.sleep(SLEEP_MILLIS);
-
-        // Set up multiple data sources.
-        xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n"
-                + "<!DOCTYPE tiles-definitions PUBLIC "
-                + "\"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN\" "
-                + "\"http://tiles.apache.org/dtds/tiles-config_2_0.dtd\">\n\n"
-                + "<tiles-definitions>"
-                + "<definition name=\"rewrite.test\" template=\"/newtest.jsp\">"
-                + "<put-attribute name=\"testparm\" value=\"testval\"/>"
-                + "</definition>" + "</tiles-definitions>";
-
-        file = new File(uri);
-        fileOut = new FileOutputStream(file);
-        writer = new BufferedWriter(new OutputStreamWriter(fileOut));
-        writer.write(xml);
-        writer.close();
-        file = new File(uri);
-
-        assertEquals("Factory should be stale.", true, reloadable
-                .refreshRequired());
-    }
-
-    /**
      * Tests wildcard mappings.
      */
+    @Test
     public void testWildcardMapping() {
         URL url = this.getClass().getClassLoader().getResource(
                 "org/apache/tiles/config/defs-wildcard.xml");
-        definitionDao.addSourceURL(url);
+        List<URL> urls = new ArrayList<URL>();
+        urls.add(url);
+        definitionDao.setSourceURLs(urls);
         definitionDao.setReader(new DigesterDefinitionsReader());
 
         Definition definition = definitionDao.getDefinition("test.defName.subLayered", Locale.ITALY);
@@ -538,10 +408,13 @@ public class ResolvingLocaleUrlDefinitio
      * {@link ResolvingLocaleUrlDefinitionDAO#getDefinition(String, Locale)}
      * when loading multiple files for a locale.
      */
+    @Test
     public void testListAttributeLocaleInheritance() {
         URL url = this.getClass().getClassLoader().getResource(
                 "org/apache/tiles/config/tiles-defs-2.1.xml");
-        definitionDao.addSourceURL(url);
+        List<URL> urls = new ArrayList<URL>();
+        urls.add(url);
+        definitionDao.setSourceURLs(urls);
         ApplicationContext applicationContext = createMock(ApplicationContext.class);
         definitionDao.setReader(new DigesterDefinitionsReader());
         replay(applicationContext);

Added: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/digester/DigesterDefinitionsReaderExceptionTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/digester/DigesterDefinitionsReaderExceptionTest.java?rev=942880&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/digester/DigesterDefinitionsReaderExceptionTest.java (added)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/digester/DigesterDefinitionsReaderExceptionTest.java Mon May 10 19:58:07 2010
@@ -0,0 +1,77 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tiles.definition.digester;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+/**
+ * Tests {@link DigesterDefinitionsReaderException}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class DigesterDefinitionsReaderExceptionTest {
+
+    /**
+     * Test method for {@link DigesterDefinitionsReaderException#DigesterDefinitionsReaderException()}.
+     */
+    @Test
+    public void testDigesterDefinitionsReaderException() {
+        DigesterDefinitionsReaderException exception = new DigesterDefinitionsReaderException();
+        assertNull(exception.getMessage());
+        assertNull(exception.getCause());
+    }
+
+    /**
+     * Test method for {@link DigesterDefinitionsReaderException#DigesterDefinitionsReaderException(java.lang.String)}.
+     */
+    @Test
+    public void testDigesterDefinitionsReaderExceptionString() {
+        DigesterDefinitionsReaderException exception = new DigesterDefinitionsReaderException("my message");
+        assertEquals("my message", exception.getMessage());
+        assertNull(exception.getCause());
+    }
+
+    /**
+     * Test method for {@link DigesterDefinitionsReaderException#DigesterDefinitionsReaderException(java.lang.Throwable)}.
+     */
+    @Test
+    public void testDigesterDefinitionsReaderExceptionThrowable() {
+        Throwable cause = new Throwable();
+        DigesterDefinitionsReaderException exception = new DigesterDefinitionsReaderException(cause);
+        assertEquals(cause.toString(), exception.getMessage());
+        assertEquals(cause, exception.getCause());
+    }
+
+    /**
+     * Test method for {@link DigesterDefinitionsReaderException#DigesterDefinitionsReaderException(java.lang.String, java.lang.Throwable)}.
+     */
+    @Test
+    public void testDigesterDefinitionsReaderExceptionStringThrowable() {
+        Throwable cause = new Throwable();
+        DigesterDefinitionsReaderException exception = new DigesterDefinitionsReaderException("my message", cause);
+        assertEquals("my message", exception.getMessage());
+        assertEquals(cause, exception.getCause());
+    }
+
+}

Propchange: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/digester/DigesterDefinitionsReaderExceptionTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/digester/DigesterDefinitionsReaderExceptionTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/digester/TestDigesterDefinitionsReader.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/digester/TestDigesterDefinitionsReader.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/digester/TestDigesterDefinitionsReader.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/digester/TestDigesterDefinitionsReader.java Mon May 10 19:58:07 2010
@@ -21,20 +21,20 @@
 
 package org.apache.tiles.definition.digester;
 
+import static org.junit.Assert.*;
+
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
 import java.util.List;
 import java.util.Map;
 
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
 import org.apache.tiles.Attribute;
 import org.apache.tiles.Definition;
 import org.apache.tiles.ListAttribute;
 import org.apache.tiles.definition.DefinitionsFactoryException;
+import org.junit.Before;
+import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -43,7 +43,7 @@ import org.slf4j.LoggerFactory;
  *
  * @version $Rev$ $Date$
  */
-public class TestDigesterDefinitionsReader extends TestCase {
+public class TestDigesterDefinitionsReader {
 
     /**
      * The logging object.
@@ -57,36 +57,12 @@ public class TestDigesterDefinitionsRead
     private DigesterDefinitionsReader reader;
 
     /**
-     * Creates a new instance of TestDigesterDefinitionsReader.
+     * Sets up the test.
      *
-     * @param name The name of the test.
-     */
-    public TestDigesterDefinitionsReader(String name) {
-        super(name);
-    }
-
-    /**
-     * Start the tests.
-     *
-     * @param theArgs the arguments. Not used
-     */
-    public static void main(String[] theArgs) {
-        junit.textui.TestRunner.main(
-            new String[] { TestDigesterDefinitionsReader.class.getName()});
-    }
-
-    /**
-     * @return a test suite (<code>TestSuite</code>) that includes all methods
-     *         starting with "test"
+     * @throws Exception
      */
-    public static Test suite() {
-        return new TestSuite(TestDigesterDefinitionsReader.class);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
+    @Before
+    public void setUp() {
         reader = new DigesterDefinitionsReader();
     }
 
@@ -95,6 +71,7 @@ public class TestDigesterDefinitionsRead
      * @throws IOException If something goes wrong.
      */
     @SuppressWarnings("unchecked")
+    @Test
     public void testRead() throws IOException {
         URL configFile = this.getClass().getClassLoader().getResource(
                 "org/apache/tiles/config/tiles-defs.xml");
@@ -136,6 +113,7 @@ public class TestDigesterDefinitionsRead
      * version of the DTD.
      * @throws IOException If something goes wrong.
      */
+    @Test
     public void testRead21Version() throws IOException {
         URL configFile = this.getClass().getClassLoader().getResource(
                 "org/apache/tiles/config/tiles-defs-2.1.xml");
@@ -220,6 +198,7 @@ public class TestDigesterDefinitionsRead
     /**
      * Tests read with bad input source.
      */
+    @Test
     public void testBadSource() {
         try {
             // Read definitions.
@@ -238,6 +217,7 @@ public class TestDigesterDefinitionsRead
     /**
      * Tests read with bad XML source.
      */
+    @Test
     public void testBadXml() {
         try {
             URL configFile = this.getClass().getClassLoader().getResource(
@@ -263,6 +243,7 @@ public class TestDigesterDefinitionsRead
      * This test case enables Digester's validating property then passes in a
      * configuration file with invalid XML.
      */
+    @Test
     public void testValidatingParameter() {
         // Testing with default (validation ON).
         try {
@@ -304,6 +285,7 @@ public class TestDigesterDefinitionsRead
      *
      * @throws IOException If something goes wrong.
      */
+    @Test
     public void testRegressionTiles352() throws IOException {
         URL configFile = this.getClass().getClassLoader().getResource(
                 "org/apache/tiles/config/defs_regression_TILES-352.xml");
@@ -319,4 +301,21 @@ public class TestDigesterDefinitionsRead
         List<Attribute> list = listAttribute.getValue();
         assertEquals((list.get(0)).getValue(), "This is a value");
     }
+
+    /**
+     * Tests {@link DigesterDefinitionsReader#read(Object)}.
+     */
+    @Test
+    public void testReadNoSource() {
+        assertNull(reader.read(null));
+    }
+
+    /**
+     * Tests {@link DigesterDefinitionsReader#addDefinition(Definition)}.
+     */
+    @Test(expected=DigesterDefinitionsReaderException.class)
+    public void testAddDefinitionNoName() {
+        Definition def = new Definition();
+        reader.addDefinition(def);
+    }
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/pattern/PatternUtilTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/pattern/PatternUtilTest.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/pattern/PatternUtilTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/pattern/PatternUtilTest.java Mon May 10 19:58:07 2010
@@ -31,6 +31,7 @@ import java.util.Set;
 
 import org.apache.tiles.Attribute;
 import org.apache.tiles.Definition;
+import org.apache.tiles.Expression;
 import org.apache.tiles.ListAttribute;
 import org.junit.Test;
 
@@ -56,6 +57,8 @@ public class PatternUtilTest {
         Map<String, Attribute> attributes = new HashMap<String, Attribute>();
         attributes.put("attrib1", new Attribute("value{2}"));
         attributes.put("attrib2", new Attribute("value{2}{3}"));
+        attributes.put("attrib3", new Attribute(null, Expression
+                .createExpression("expr{1}", "EL"), null, null));
         Definition definition = new Definition("definitionName", new Attribute(
                 "template{1}"), attributes);
         definition.setExtends("{2}ext");
@@ -71,6 +74,8 @@ public class PatternUtilTest {
         assertEquals("valuevalue2", attribute.getValue());
         attribute = nudef.getAttribute("attrib2");
         assertEquals("valuevalue2value3", attribute.getValue());
+        attribute = nudef.getAttribute("attrib3");
+        assertEquals("exprvalue1", attribute.getExpressionObject().getExpression());
     }
 
     /**