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);
}
}