You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2012/02/07 18:02:46 UTC

git commit: WICKET-4393 no trailing dots from ResourceNameIterator

Updated Branches:
  refs/heads/master 42daa225c -> 6c54afda0


WICKET-4393 no trailing dots from ResourceNameIterator

Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/6c54afda
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/6c54afda
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/6c54afda

Branch: refs/heads/master
Commit: 6c54afda00653bb1f355938a2d1743f55f0cad17
Parents: 42daa22
Author: svenmeier <sv...@apache.org>
Authored: Tue Feb 7 18:02:16 2012 +0100
Committer: svenmeier <sv...@apache.org>
Committed: Tue Feb 7 18:02:16 2012 +0100

----------------------------------------------------------------------
 .../apache/wicket/resource/PropertiesFactory.java  |    2 +-
 .../locator/ExtensionResourceNameIterator.java     |   24 ++++--
 .../resource/locator/ResourceNameIteratorTest.java |   63 +++++++++++++--
 3 files changed, 73 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/6c54afda/wicket-core/src/main/java/org/apache/wicket/resource/PropertiesFactory.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/resource/PropertiesFactory.java b/wicket-core/src/main/java/org/apache/wicket/resource/PropertiesFactory.java
index 279de87..18b98f8 100644
--- a/wicket-core/src/main/java/org/apache/wicket/resource/PropertiesFactory.java
+++ b/wicket-core/src/main/java/org/apache/wicket/resource/PropertiesFactory.java
@@ -147,7 +147,7 @@ public class PropertiesFactory implements IPropertiesFactory
 			while ((properties == null) && iter.hasNext())
 			{
 				IPropertiesLoader loader = iter.next();
-				String fullPath = path + loader.getFileExtension();
+				String fullPath = path + "." + loader.getFileExtension();
 
 				// If not in the cache than try to load properties
 				IResourceStream resourceStream = context.getResourceStreamLocator()

http://git-wip-us.apache.org/repos/asf/wicket/blob/6c54afda/wicket-core/src/main/java/org/apache/wicket/util/resource/locator/ExtensionResourceNameIterator.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/util/resource/locator/ExtensionResourceNameIterator.java b/wicket-core/src/main/java/org/apache/wicket/util/resource/locator/ExtensionResourceNameIterator.java
index 319d994..6a83510 100644
--- a/wicket-core/src/main/java/org/apache/wicket/util/resource/locator/ExtensionResourceNameIterator.java
+++ b/wicket-core/src/main/java/org/apache/wicket/util/resource/locator/ExtensionResourceNameIterator.java
@@ -23,7 +23,7 @@ import org.apache.wicket.util.string.Strings;
 
 /**
  * Iterate over a list of 'comma' separated strings. If an empty string is provided, hasNext() will
- * successfully return once with next() returning an empty string ("").
+ * successfully return once with next() returning {@code null}.
  * 
  * @author Juergen Donnerstag
  */
@@ -37,6 +37,7 @@ public class ExtensionResourceNameIterator implements Iterator<String>
 	 * Construct.
 	 * 
 	 * @param extension
+	 *            {@code null} or comma separated extensions
 	 * @param separatorChar
 	 */
 	public ExtensionResourceNameIterator(final String extension, final char separatorChar)
@@ -46,7 +47,7 @@ public class ExtensionResourceNameIterator implements Iterator<String>
 		if (extensions.length == 0)
 		{
 			// Fail safe: hasNext() needs to return at least once with true.
-			extensions = new String[] { "" };
+			extensions = new String[] { null };
 		}
 		this.extensions = extensions;
 
@@ -64,13 +65,14 @@ public class ExtensionResourceNameIterator implements Iterator<String>
 	}
 
 	/**
-	 * @return The next filename extension. A leading '.' will be removed.
+	 * @return The next filename extension.
 	 */
 	@Override
 	public String next()
 	{
-		String rtn = extensions[index++].trim();
-		return rtn.startsWith(".") ? rtn.substring(1) : rtn;
+		index++;
+
+		return getExtension();
 	}
 
 	/**
@@ -78,8 +80,16 @@ public class ExtensionResourceNameIterator implements Iterator<String>
 	 */
 	public final String getExtension()
 	{
-		String rtn = extensions[index - 1].trim();
-		return rtn.startsWith(".") ? rtn.substring(1) : rtn;
+		String extension = extensions[index - 1];
+		if (extension != null)
+		{
+			extension = extension.trim();
+			if (extension.startsWith("."))
+			{
+				extension = extension.substring(1);
+			}
+		}
+		return extension;
 	}
 
 	/**

http://git-wip-us.apache.org/repos/asf/wicket/blob/6c54afda/wicket-core/src/test/java/org/apache/wicket/util/resource/locator/ResourceNameIteratorTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/util/resource/locator/ResourceNameIteratorTest.java b/wicket-core/src/test/java/org/apache/wicket/util/resource/locator/ResourceNameIteratorTest.java
index 68191ec..965be43 100644
--- a/wicket-core/src/test/java/org/apache/wicket/util/resource/locator/ResourceNameIteratorTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/util/resource/locator/ResourceNameIteratorTest.java
@@ -84,25 +84,57 @@ public class ResourceNameIteratorTest extends WicketTestCase
 		iterator.next();
 		assertFalse(iterator.hasNext());
 
-		iterator = new StyleAndVariationResourceNameIterator("style", "variation");
+		iterator = new StyleAndVariationResourceNameIterator("style", null);
 		assertTrue(iterator.hasNext());
+		iterator.next();
+		assertEquals("style", iterator.getStyle());
+		assertEquals(null, iterator.getVariation());
+		iterator.next();
+		assertEquals(null, iterator.getStyle());
+		assertEquals(null, iterator.getVariation());
+		assertFalse(iterator.hasNext());
 
+		iterator = new StyleAndVariationResourceNameIterator("style", "variation");
+		assertTrue(iterator.hasNext());
 		iterator.next();
 		assertEquals("style", iterator.getStyle());
 		assertEquals("variation", iterator.getVariation());
-
 		iterator.next();
 		assertEquals("style", iterator.getStyle());
-		assertNull(iterator.getVariation());
-
+		assertEquals(null, iterator.getVariation());
 		iterator.next();
-		assertNull(iterator.getStyle());
+		assertEquals(null, iterator.getStyle());
 		assertEquals("variation", iterator.getVariation());
-
 		iterator.next();
-		assertNull(iterator.getStyle());
-		assertNull(iterator.getVariation());
+		assertEquals(null, iterator.getStyle());
+		assertEquals(null, iterator.getVariation());
+		assertFalse(iterator.hasNext());
+	}
+
+	/**
+	 * 
+	 */
+	@Test
+	public void extensionResourceNameIterator()
+	{
+		ExtensionResourceNameIterator iterator = new ExtensionResourceNameIterator(null, ',');
+		assertTrue(iterator.hasNext());
+		assertEquals(null, iterator.next());
+		assertFalse(iterator.hasNext());
 
+		iterator = new ExtensionResourceNameIterator("txt", ',');
+		assertTrue(iterator.hasNext());
+		assertEquals("txt", iterator.next());
+		assertFalse(iterator.hasNext());
+
+		iterator = new ExtensionResourceNameIterator("properties,utf8.properties,properties.xml",
+			',');
+		assertTrue(iterator.hasNext());
+		assertEquals("properties", iterator.next());
+		assertTrue(iterator.hasNext());
+		assertEquals("utf8.properties", iterator.next());
+		assertTrue(iterator.hasNext());
+		assertEquals("properties.xml", iterator.next());
 		assertFalse(iterator.hasNext());
 	}
 
@@ -126,4 +158,19 @@ public class ResourceNameIteratorTest extends WicketTestCase
 		}
 		assertEquals(6, variations.size());
 	}
+
+	/**
+	 * 
+	 */
+	@Test
+	public void noTrailingDotWhenNoExtension()
+	{
+		Iterator<String> iterator = new ResourceNameIterator("foo", null, null, null, null, false);
+
+		assertTrue(iterator.hasNext());
+
+		assertEquals("foo", iterator.next());
+
+		assertFalse(iterator.hasNext());
+	}
 }