You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2003/03/31 23:46:44 UTC

cvs commit: jakarta-tapestry/framework/src/org/apache/tapestry/pageload PageLoader.java

hlship      2003/03/31 13:46:44

  Modified:    framework/src/org/apache/tapestry/pageload PageLoader.java
  Log:
  Handle private assets with absolute paths properly.
  
  Revision  Changes    Path
  1.8       +16 -2     jakarta-tapestry/framework/src/org/apache/tapestry/pageload/PageLoader.java
  
  Index: PageLoader.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tapestry/framework/src/org/apache/tapestry/pageload/PageLoader.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- PageLoader.java	26 Mar 2003 19:53:22 -0000	1.7
  +++ PageLoader.java	31 Mar 2003 21:46:44 -0000	1.8
  @@ -901,13 +901,27 @@
               return new ExternalAsset(path, location);
   
           if (type == AssetType.PRIVATE)
  +        {
  +            IResourceLocation baseLocation = specificationLocation;
  +
  +            // Fudge a special case for private assets with complete paths.  The specificationLocation
  +            // can't be used because it is often a ContextResourceLocation,
  +            // not a ClasspathResourceLocation.
  +
  +            if (path.startsWith("/"))
  +            {
  +                baseLocation = new ClasspathResourceLocation(_resolver, "/");
  +                path = path.substring(1);
  +            }
  +
               return new PrivateAsset(
                   (ClasspathResourceLocation) findAsset(assetName,
                       component,
  -                    specificationLocation,
  +                    baseLocation,
                       path,
                       location),
                   location);
  +        }
   
           return new ContextAsset(
               (ContextResourceLocation) findAsset(assetName,