Author: jdonnerstag
Date: Sat Jan  6 23:42:32 2007
New Revision: 493676

URL: http://svn.apache.org/viewvc?view=rev&rev=493676
Log:
changed return type for IResourceFinder from URL to IResourceStream as 
discussed on the mailing list and
renamed OsgiPath to OsgiResourceFinder as it doesnt implement IPath 
functionality

Added:
    
incubator/wicket/trunk/wicket/src/main/java/wicket/util/file/OsgiResourceFinder.java
      - copied, changed from r492061, 
incubator/wicket/trunk/wicket/src/main/java/wicket/util/file/OsgiPath.java
Modified:
    
incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/portlet/PortletApplicationPath.java
    
incubator/wicket/trunk/wicket/src/main/java/wicket/util/file/IResourceFinder.java
    incubator/wicket/trunk/wicket/src/main/java/wicket/util/file/Path.java
    
incubator/wicket/trunk/wicket/src/main/java/wicket/util/file/WebApplicationPath.java
    
incubator/wicket/trunk/wicket/src/main/java/wicket/util/resource/locator/AbstractResourceStreamLocator.java
    
incubator/wicket/trunk/wicket/src/main/java/wicket/util/resource/locator/PathResourceStreamLocator.java
    
incubator/wicket/trunk/wicket/src/main/java/wicket/util/resource/locator/ResourceFinderResourceStreamLocator.java

Modified: 
incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/portlet/PortletApplicationPath.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/portlet/PortletApplicationPath.java?view=diff&rev=493676&r1=493675&r2=493676
==============================================================================
--- 
incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/portlet/PortletApplicationPath.java
 (original)
+++ 
incubator/wicket/trunk/wicket/src/main/java/wicket/protocol/http/portlet/PortletApplicationPath.java
 Sat Jan  6 23:42:32 2007
@@ -16,16 +16,18 @@
  */
 package wicket.protocol.http.portlet;
 
-import java.io.File;
-import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.List;
 
 import javax.portlet.PortletContext;
 
+import wicket.util.file.File;
 import wicket.util.file.Folder;
 import wicket.util.file.IResourcePath;
+import wicket.util.resource.FileResourceStream;
+import wicket.util.resource.IResourceStream;
+import wicket.util.resource.UrlResourceStream;
 import wicket.util.string.StringList;
 
 
@@ -43,6 +45,7 @@
        /** The list of folders in the path */
        private final List<Folder> folders = new ArrayList<Folder>();
 
+       /** Portlet Context */
        private final PortletContext portletContext;
 
        /**
@@ -74,6 +77,7 @@
                        {
                                folder = "/" + folder;
                        }
+                       
                        if (!folder.endsWith("/"))
                        {
                                folder += "/";
@@ -83,37 +87,27 @@
        }
 
        /**
-        * Looks for a given pathname along this path
         * 
-        * @param pathname
-        *            The filename with possible path
-        * @return The file located on the path
+        * @see wicket.util.file.IResourceFinder#find(java.lang.String)
         */
-       public URL find(final String pathname)
+       public IResourceStream find(final String pathname)
        {
                for (Folder folder : folders)
                {
                        File file = new File(folder, pathname);
                        if (file.exists())
                        {
-                               try
-                               {
-                                       return file.toURI().toURL();
-                               }
-                               catch (MalformedURLException ex)
-                               {
-                                       // ignore
-                               }
+                               return new FileResourceStream(file);
                        }
                }
                for (String path : webappPaths)
                {
                        try
                        {
-                               final URL file = 
portletContext.getResource(path + pathname);
-                               if (file != null)
+                               final URL url = portletContext.getResource(path 
+ pathname);
+                               if (url != null)
                                {
-                                       return file;
+                                       return new UrlResourceStream(url);
                                }
                        }
                        catch (Exception ex)

Modified: 
incubator/wicket/trunk/wicket/src/main/java/wicket/util/file/IResourceFinder.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/util/file/IResourceFinder.java?view=diff&rev=493676&r1=493675&r2=493676
==============================================================================
--- 
incubator/wicket/trunk/wicket/src/main/java/wicket/util/file/IResourceFinder.java
 (original)
+++ 
incubator/wicket/trunk/wicket/src/main/java/wicket/util/file/IResourceFinder.java
 Sat Jan  6 23:42:32 2007
@@ -16,7 +16,7 @@
  */
 package wicket.util.file;
 
-import java.net.URL;
+import wicket.util.resource.IResourceStream;
 
 /**
  * Knows how to find resources.
@@ -30,7 +30,7 @@
         * 
         * @param pathname
         *            The filename with possible path
-        * @return The url located on the path
+        * @return The resource stream
         */
-       URL find(final String pathname);
+       IResourceStream find(final String pathname);
 }

Copied: 
incubator/wicket/trunk/wicket/src/main/java/wicket/util/file/OsgiResourceFinder.java
 (from r492061, 
incubator/wicket/trunk/wicket/src/main/java/wicket/util/file/OsgiPath.java)
URL: 
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/util/file/OsgiResourceFinder.java?view=diff&rev=493676&p1=incubator/wicket/trunk/wicket/src/main/java/wicket/util/file/OsgiPath.java&r1=492061&p2=incubator/wicket/trunk/wicket/src/main/java/wicket/util/file/OsgiResourceFinder.java&r2=493676
==============================================================================
--- incubator/wicket/trunk/wicket/src/main/java/wicket/util/file/OsgiPath.java 
(original)
+++ 
incubator/wicket/trunk/wicket/src/main/java/wicket/util/file/OsgiResourceFinder.java
 Sat Jan  6 23:42:32 2007
@@ -21,15 +21,18 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import wicket.util.resource.IResourceStream;
+import wicket.util.resource.UrlResourceStream;
+
 /**
  * A Finder (note: it is not a Path) for working with OSGi bundles.
  * 
  * @author Timur Mehrvarz
  */
-public final class OsgiPath implements IResourceFinder
+public final class OsgiResourceFinder implements IResourceFinder
 {
-       private final Logger log = LoggerFactory.getLogger(OsgiPath.class);
-       
+       private final Logger log = 
LoggerFactory.getLogger(OsgiResourceFinder.class);
+
        /** ClassLoader to be used for locating resources. */
        final ClassLoader classLoader;
 
@@ -39,25 +42,33 @@
         * @param classLoader
         *            class loader to be used for locating resources
         */
-       public OsgiPath(ClassLoader classLoader)
+       public OsgiResourceFinder(ClassLoader classLoader)
        {
                this.classLoader = classLoader;
        }
 
        /**
-        * Looks for a given pathname along this path in the OSGi (jar) bundle.
         * 
-        * @param pathname
-        *            The filename with possible path
-        * @return The url located on the path
+        * @see wicket.util.file.IResourceFinder#find(java.lang.String)
         */
-       public URL find(final String pathname)
+       public IResourceStream find(final String pathname)
        {
-               String resourcePathName = /* "/" + */ pathname;
+               String resourcePathName = /* "/" + */pathname;
                if (log.isDebugEnabled())
                {
                        log.debug("classLoader: " + classLoader.toString());
                }
-               return classLoader.getResource(resourcePathName);
+               URL url = classLoader.getResource(resourcePathName);
+               if (url != null)
+               {
+                       IResourceStream stream = new UrlResourceStream(url);
+                       if (stream == null)
+                       {
+                               log.error("ClassLoader problem: found the URL 
(" + url.toExternalForm()
+                                               + ") but was unable to load the 
resource stream");
+                       }
+                       return stream;
+               }
+               return null;
        }
 }

Modified: incubator/wicket/trunk/wicket/src/main/java/wicket/util/file/Path.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/util/file/Path.java?view=diff&rev=493676&r1=493675&r2=493676
==============================================================================
--- incubator/wicket/trunk/wicket/src/main/java/wicket/util/file/Path.java 
(original)
+++ incubator/wicket/trunk/wicket/src/main/java/wicket/util/file/Path.java Sat 
Jan  6 23:42:32 2007
@@ -16,11 +16,11 @@
  */
 package wicket.util.file;
 
-import java.net.MalformedURLException;
-import java.net.URL;
 import java.util.ArrayList;
 import java.util.List;
 
+import wicket.util.resource.FileResourceStream;
+import wicket.util.resource.IResourceStream;
 import wicket.util.string.StringList;
 
 /**
@@ -90,13 +90,10 @@
        }
 
        /**
-        * Looks for a given pathname along this path
         * 
-        * @param pathname
-        *            The filename with possible path
-        * @return The url located on the path
+        * @see wicket.util.file.IResourceFinder#find(java.lang.String)
         */
-       public URL find(final String pathname)
+       public IResourceStream find(final String pathname)
        {
                for (Folder folder : folders)
                {
@@ -104,14 +101,7 @@
 
                        if (file.exists())
                        {
-                               try
-                               {
-                                       return file.toURI().toURL();
-                               }
-                               catch (MalformedURLException ex)
-                               {
-                                       // ignore
-                               }
+                               return new FileResourceStream(file);
                        }
                }
 

Modified: 
incubator/wicket/trunk/wicket/src/main/java/wicket/util/file/WebApplicationPath.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/util/file/WebApplicationPath.java?view=diff&rev=493676&r1=493675&r2=493676
==============================================================================
--- 
incubator/wicket/trunk/wicket/src/main/java/wicket/util/file/WebApplicationPath.java
 (original)
+++ 
incubator/wicket/trunk/wicket/src/main/java/wicket/util/file/WebApplicationPath.java
 Sat Jan  6 23:42:32 2007
@@ -16,13 +16,18 @@
  */
 package wicket.util.file;
 
-import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.List;
 
 import javax.servlet.ServletContext;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import wicket.util.resource.FileResourceStream;
+import wicket.util.resource.IResourceStream;
+import wicket.util.resource.UrlResourceStream;
 import wicket.util.string.StringList;
 
 /**
@@ -33,6 +38,8 @@
  */
 public final class WebApplicationPath implements IResourcePath
 {
+       private final static Logger log = 
LoggerFactory.getLogger(WebApplicationPath.class);
+
        /** The list of urls in the path */
        private final List<String> webappPaths = new ArrayList<String>();
 
@@ -80,27 +87,17 @@
        }
 
        /**
-        * Looks for a given pathname along this path
         * 
-        * @param pathname
-        *            The filename with possible path
-        * @return The file located on the path
+        * @see wicket.util.file.IResourceFinder#find(java.lang.String)
         */
-       public URL find(final String pathname)
+       public IResourceStream find(final String pathname)
        {
                for (Folder folder : folders)
                {
                        final File file = new File(folder, pathname);
                        if (file.exists())
                        {
-                               try
-                               {
-                                       return file.toURI().toURL();
-                               }
-                               catch (MalformedURLException ex)
-                               {
-                                       // ignore
-                               }
+                               return new FileResourceStream(file);
                        }
                }
 
@@ -108,10 +105,16 @@
                {
                        try
                        {
-                               final URL file = 
servletContext.getResource(path + pathname);
-                               if (file != null)
+                               final URL url = servletContext.getResource(path 
+ pathname);
+                               if (url != null)
                                {
-                                       return file;
+                                       IResourceStream stream = new 
UrlResourceStream(url);
+                                       if (stream == null)
+                                       {
+                                               log.error("ClassLoader problem: 
found the URL, but was unable to load it. URL="
+                                                                               
+ url.toExternalForm());
+                                       }
+                                       return stream;
                                }
                        }
                        catch (Exception ex)

Modified: 
incubator/wicket/trunk/wicket/src/main/java/wicket/util/resource/locator/AbstractResourceStreamLocator.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/util/resource/locator/AbstractResourceStreamLocator.java?view=diff&rev=493676&r1=493675&r2=493676
==============================================================================
--- 
incubator/wicket/trunk/wicket/src/main/java/wicket/util/resource/locator/AbstractResourceStreamLocator.java
 (original)
+++ 
incubator/wicket/trunk/wicket/src/main/java/wicket/util/resource/locator/AbstractResourceStreamLocator.java
 Sat Jan  6 23:42:32 2007
@@ -18,6 +18,7 @@
 
 import java.util.Locale;
 
+import wicket.Application;
 import wicket.util.resource.IResourceStream;
 import wicket.util.string.Strings;
 
@@ -57,6 +58,16 @@
        {
        }
 
+       /**
+        * Helper to get the Application registered resource stream locator
+        * 
+        * @return resource stream locator
+        */
+       public static IResourceStreamLocator get()
+       {
+               return 
Application.get().getResourceSettings().getResourceStreamLocator();
+       }
+       
        /**
         * Locate a resource. See class comments for more details.
         * 

Modified: 
incubator/wicket/trunk/wicket/src/main/java/wicket/util/resource/locator/PathResourceStreamLocator.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/util/resource/locator/PathResourceStreamLocator.java?view=diff&rev=493676&r1=493675&r2=493676
==============================================================================
--- 
incubator/wicket/trunk/wicket/src/main/java/wicket/util/resource/locator/PathResourceStreamLocator.java
 (original)
+++ 
incubator/wicket/trunk/wicket/src/main/java/wicket/util/resource/locator/PathResourceStreamLocator.java
 Sat Jan  6 23:42:32 2007
@@ -16,14 +16,11 @@
  */
 package wicket.util.resource.locator;
 
-import java.net.URL;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import wicket.util.file.Path;
 import wicket.util.resource.IResourceStream;
-import wicket.util.resource.UrlResourceStream;
 
 /**
  * IResourceStreamLocator implementation that locates resources along a
@@ -65,14 +62,6 @@
                }
 
                // Try to find file resource on the path supplied
-               final URL url = searchPath.find(path);
-
-               // Found resource?
-               if (url != null)
-               {
-                       // Return file resource
-                       return new UrlResourceStream(url);
-               }
-               return null;
+               return searchPath.find(path);
        }
 }

Modified: 
incubator/wicket/trunk/wicket/src/main/java/wicket/util/resource/locator/ResourceFinderResourceStreamLocator.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/util/resource/locator/ResourceFinderResourceStreamLocator.java?view=diff&rev=493676&r1=493675&r2=493676
==============================================================================
--- 
incubator/wicket/trunk/wicket/src/main/java/wicket/util/resource/locator/ResourceFinderResourceStreamLocator.java
 (original)
+++ 
incubator/wicket/trunk/wicket/src/main/java/wicket/util/resource/locator/ResourceFinderResourceStreamLocator.java
 Sat Jan  6 23:42:32 2007
@@ -16,14 +16,11 @@
  */
 package wicket.util.resource.locator;
 
-import java.net.URL;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import wicket.util.file.IResourceFinder;
 import wicket.util.resource.IResourceStream;
-import wicket.util.resource.UrlResourceStream;
 
 /**
  * IResourceStreamLocator implementation that locates resources along a
@@ -66,30 +63,6 @@
                }
 
                // Try to find file resource on the path supplied
-               final URL file = finder.find(path);
-
-               // Found resource?
-               if (file != null)
-               {
-                       // Return file resource
-                       IResourceStream stream = new UrlResourceStream(file);
-
-                       if (log.isDebugEnabled())
-                       {
-                               if (stream != null)
-                               {
-                                       log.error("ResourceFinder found a file 
(URL) but the locator failed to create the UrlResourceStream. Maybe a 
classloader issue?");
-                               }
-                               else
-                               {
-                                       log.debug("'file' classLoader: " + 
file.getClass().getClassLoader().toString()
-                                                       + "; 'stream' 
classLoader: "
-                                                       + 
stream.getClass().getClassLoader().toString());
-                               }
-                       }
-
-                       return stream;
-               }
-               return null;
+               return finder.find(path);
        }
 }


Reply via email to