You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by jk...@apache.org on 2006/12/16 21:49:56 UTC

svn commit: r487880 - in /tapestry/tapestry4/trunk/tapestry-framework/src: java/org/apache/tapestry/asset/AssetSource.java java/org/apache/tapestry/asset/AssetSourceImpl.java test/org/apache/tapestry/asset/TestAssetSource.java

Author: jkuhnert
Date: Sat Dec 16 12:49:55 2006
New Revision: 487880

URL: http://svn.apache.org/viewvc?view=rev&rev=487880
Log:
Fixes TAPESTRY-726. Base parameter for finding asset was documented as optional but required because of 
a Defense.notNull check. Confirmed that base wasn't required to operate and removed the defense check.

Modified:
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/AssetSource.java
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/AssetSourceImpl.java
    tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/asset/TestAssetSource.java

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/AssetSource.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/AssetSource.java?view=diff&rev=487880&r1=487879&r2=487880
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/AssetSource.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/AssetSource.java Sat Dec 16 12:49:55 2006
@@ -34,7 +34,7 @@
      * specification).
      * 
      * @param base
-     *            the base resource used for resolving the asset
+     *            The base resource used for resolving the asset
      * @param path
      *            the path relative to the base resource; alternately, the path may include a prefix
      *            that defines a domain (such as "classpath:" or "context:") in which case the base
@@ -44,7 +44,9 @@
      *            localization
      * @param location
      *            used to report errors (such as missing resources)
+     *            
      * @return the asset, possibly localized
+     * 
      * @throws org.apache.hivemind.ApplicationRuntimeException
      *             if the asset does not exist
      */

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/AssetSourceImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/AssetSourceImpl.java?view=diff&rev=487880&r1=487879&r2=487880
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/AssetSourceImpl.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/AssetSourceImpl.java Sat Dec 16 12:49:55 2006
@@ -54,18 +54,17 @@
 
     public IAsset findAsset(Resource base, String path, Locale locale, Location location)
     {
-        Defense.notNull(base, "base");
         Defense.notNull(path, "path");
         Defense.notNull(location, "location");
 
         int colonx = path.indexOf(':');
-
+        
         if (colonx < 0)
             return _lookupAssetFactory.createAsset(base, path, locale, location);
-
+        
         String prefix = path.substring(0, colonx);
         String truePath = path.substring(colonx + 1);
-
+        
         AssetFactory factory = (AssetFactory) _assetFactoryByPrefix.get(prefix);
 
         // Unknown prefix is expected to happen when an external asset (using an established
@@ -80,7 +79,7 @@
 
             truePath = path;
         }
-
+        
         if (truePath.startsWith("/"))
             return factory.createAbsoluteAsset(truePath, locale, location);
 

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/asset/TestAssetSource.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/asset/TestAssetSource.java?view=diff&rev=487880&r1=487879&r2=487880
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/asset/TestAssetSource.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/asset/TestAssetSource.java Sat Dec 16 12:49:55 2006
@@ -59,7 +59,7 @@
         return f;
     }
     
-    public void testKnownPrefix()
+    public void test_Known_Prefix()
     {
         Location l = newLocation();
 
@@ -87,7 +87,7 @@
         verify();
     }
 
-    public void testUnknownPrefix()
+    public void test_Unknown_Prefix()
     {
         Location l = fabricateLocation(17);
 
@@ -108,7 +108,7 @@
         verify();
     }
 
-    public void testNoPrefix()
+    public void test_No_Prefix()
     {
         Location l = fabricateLocation(17);
 
@@ -123,6 +123,32 @@
         as.setLookupAssetFactory(f);
 
         IAsset actual = as.findAsset(r, "path/to/asset", Locale.ENGLISH, l);
+
+        assertSame(actual, asset);
+
+        verify();
+    }
+    
+    public void test_Known_Prefix_Null_Base()
+    {
+        Location l = newLocation();
+        IAsset asset = newAsset();
+
+        List contributions = newContributions("known", newAssetFactory(
+                null,
+                "path/to/asset",
+                Locale.ENGLISH,
+                l,
+                asset));
+
+        replay();
+
+        AssetSourceImpl as = new AssetSourceImpl();
+        as.setContributions(contributions);
+
+        as.initializeService();
+
+        IAsset actual = as.findAsset(null, "known:path/to/asset", Locale.ENGLISH, l);
 
         assertSame(actual, asset);