You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jd...@apache.org on 2009/02/23 21:48:46 UTC
svn commit: r747131 -
/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/ResourceStreamLocator.java
Author: jdonnerstag
Date: Mon Feb 23 20:48:43 2009
New Revision: 747131
URL: http://svn.apache.org/viewvc?rev=747131&view=rev
Log:
WICKET-2034 Resources refereced by HeaderContributor outside of WAR inaccessible
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/ResourceStreamLocator.java
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/ResourceStreamLocator.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/ResourceStreamLocator.java?rev=747131&r1=747130&r2=747131&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/ResourceStreamLocator.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/ResourceStreamLocator.java Mon Feb 23 20:48:43 2009
@@ -84,7 +84,7 @@
* @see org.apache.wicket.util.resource.locator.IResourceStreamLocator#locate(java.lang.Class,
* java.lang.String)
*/
- public IResourceStream locate(final Class< ? > clazz, final String path)
+ public IResourceStream locate(final Class<?> clazz, final String path)
{
// First try with the resource finder registered with the application
// (allows for markup reloading)
@@ -109,7 +109,7 @@
* @see org.apache.wicket.util.resource.locator.IResourceStreamLocator#locate(java.lang.Class,
* java.lang.String, java.lang.String, java.util.Locale, java.lang.String)
*/
- public IResourceStream locate(final Class< ? > clazz, String path, final String style,
+ public IResourceStream locate(final Class<?> clazz, String path, final String style,
final Locale locale, final String extension)
{
// Try the various combinations of style, locale and extension to find
@@ -117,7 +117,7 @@
ResourceNameIterator iter = new ResourceNameIterator(path, style, locale, extension);
while (iter.hasNext())
{
- String newPath = (String)iter.next();
+ String newPath = iter.next();
IResourceStream stream = locate(clazz, newPath);
if (stream != null)
@@ -137,28 +137,50 @@
* @param path
* @return resource stream
*/
- protected IResourceStream locateByClassLoader(final Class< ? > clazz, final String path)
+ protected IResourceStream locateByClassLoader(final Class<?> clazz, final String path)
{
- ClassLoader classLoader = null;
+ IResourceStream resourceStream = null;
+
if (clazz != null)
{
- classLoader = clazz.getClassLoader();
+ resourceStream = getResourceStream(clazz.getClassLoader(), path);
+ if (resourceStream != null)
+ {
+ return resourceStream;
+ }
}
- if (classLoader == null)
+ // use context classloader when no specific classloader is set
+ // (package resources for instance)
+ resourceStream = getResourceStream(Thread.currentThread().getContextClassLoader(), path);
+ if (resourceStream != null)
{
- // use context classloader when no specific classloader is set
- // (package resources for instance)
- classLoader = Thread.currentThread().getContextClassLoader();
+ return resourceStream;
}
+ // use Wicket classloader when no specific classloader is set
+ resourceStream = getResourceStream(getClass().getClassLoader(), path);
+ if (resourceStream != null)
+ {
+ return resourceStream;
+ }
+ return null;
+ }
+
+ /**
+ * Get the resource
+ *
+ * @param classLoader
+ * @param path
+ * @return resource stream
+ */
+ private IResourceStream getResourceStream(final ClassLoader classLoader, final String path)
+ {
if (classLoader == null)
{
- // use Wicket classloader when no specific classloader is set
- classLoader = getClass().getClassLoader();
+ return null;
}
- // Log attempt
if (log.isDebugEnabled())
{
log.debug("Attempting to locate resource '" + path + "' using classloader " +
@@ -181,7 +203,7 @@
* @param path
* @return resource stream
*/
- protected IResourceStream locateByResourceFinder(final Class< ? > clazz, final String path)
+ protected IResourceStream locateByResourceFinder(final Class<?> clazz, final String path)
{
if (finder == null)
{