You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2011/02/24 20:56:37 UTC
svn commit: r1074277 - in /myfaces:
core/trunk/impl/src/main/java/org/apache/myfaces/resource/InternalClassLoaderResourceLoader.java
shared/trunk/core/src/main/java/org/apache/myfaces/shared/resource/ClassLoaderResourceLoader.java
Author: lu4242
Date: Thu Feb 24 19:56:36 2011
New Revision: 1074277
URL: http://svn.apache.org/viewvc?rev=1074277&view=rev
Log:
MYFACES-3044 Resource jsf.js not found when using the OSGi bundle (Alternate fix) and MYFACES-3051 Use multiple ClassLoaders to find resources (not only ContextClassLoader)
Modified:
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/resource/InternalClassLoaderResourceLoader.java
myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/resource/ClassLoaderResourceLoader.java
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/resource/InternalClassLoaderResourceLoader.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/resource/InternalClassLoaderResourceLoader.java?rev=1074277&r1=1074276&r2=1074277&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/resource/InternalClassLoaderResourceLoader.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/resource/InternalClassLoaderResourceLoader.java Thu Feb 24 19:56:36 2011
@@ -18,18 +18,19 @@
*/
package org.apache.myfaces.resource;
+import java.io.InputStream;
+import java.net.URL;
+
+import javax.faces.context.FacesContext;
+
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFWebConfigParam;
import org.apache.myfaces.shared_impl.resource.AliasResourceMetaImpl;
import org.apache.myfaces.shared_impl.resource.ResourceLoader;
import org.apache.myfaces.shared_impl.resource.ResourceMeta;
import org.apache.myfaces.shared_impl.resource.ResourceMetaImpl;
-import org.apache.myfaces.shared_impl.util.MyFacesClassLoader;
+import org.apache.myfaces.shared_impl.util.ClassUtils;
import org.apache.myfaces.shared_impl.util.WebConfigParamUtils;
-import javax.faces.context.FacesContext;
-import java.io.InputStream;
-import java.net.URL;
-
/**
* A resource loader implementation which loads resources from the thread ClassLoader.
*
@@ -47,7 +48,6 @@ public class InternalClassLoaderResource
public static final String USE_MULTIPLE_JS_FILES_FOR_JSF_UNCOMPRESSED_JS = "org.apache.myfaces.USE_MULTIPLE_JS_FILES_FOR_JSF_UNCOMPRESSED_JS";
private final boolean _useMultipleJsFilesForJsfUncompressedJs;
- private MyFacesClassLoader classLoader;
public InternalClassLoaderResourceLoader(String prefix)
{
@@ -65,26 +65,50 @@ public class InternalClassLoaderResource
@Override
public InputStream getResourceInputStream(ResourceMeta resourceMeta)
{
+ InputStream is = null;
if (getPrefix() != null && !"".equals(getPrefix()))
{
- return getClassLoader().getResourceAsStream(getPrefix() + '/' + resourceMeta.getResourceIdentifier());
+ String name = getPrefix() + '/' + resourceMeta.getResourceIdentifier();
+ is = getClassLoader().getResourceAsStream(name);
+ if (is == null)
+ {
+ is = this.getClass().getClassLoader().getResourceAsStream(name);
+ }
+ return is;
}
else
{
- return getClassLoader().getResourceAsStream(resourceMeta.getResourceIdentifier());
+ is = getClassLoader().getResourceAsStream(resourceMeta.getResourceIdentifier());
+ if (is == null)
+ {
+ is = this.getClass().getClassLoader().getResourceAsStream(resourceMeta.getResourceIdentifier());
+ }
+ return is;
}
}
@Override
public URL getResourceURL(ResourceMeta resourceMeta)
{
+ URL url = null;
if (getPrefix() != null && !"".equals(getPrefix()))
{
- return getClassLoader().getResource(getPrefix() + '/' + resourceMeta.getResourceIdentifier());
+ String name = getPrefix() + '/' + resourceMeta.getResourceIdentifier();
+ url = getClassLoader().getResource(name);
+ if (url == null)
+ {
+ url = this.getClass().getClassLoader().getResource(name);
+ }
+ return url;
}
else
{
- return getClassLoader().getResource(resourceMeta.getResourceIdentifier());
+ url = getClassLoader().getResource(resourceMeta.getResourceIdentifier());
+ if (url == null)
+ {
+ url = this.getClass().getClassLoader().getResource(resourceMeta.getResourceIdentifier());
+ }
+ return url;
}
}
@@ -138,11 +162,7 @@ public class InternalClassLoaderResource
*/
protected ClassLoader getClassLoader()
{
- if (classLoader == null)
- {
- classLoader = new MyFacesClassLoader();
- }
- return classLoader;
+ return ClassUtils.getContextClassLoader();
}
@Override
@@ -151,6 +171,10 @@ public class InternalClassLoaderResource
if (getPrefix() != null && !"".equals(getPrefix()))
{
URL url = getClassLoader().getResource(getPrefix() + '/' + libraryName);
+ if (url == null)
+ {
+ url = this.getClass().getClassLoader().getResource(getPrefix() + '/' + libraryName);
+ }
if (url != null)
{
return true;
@@ -159,6 +183,10 @@ public class InternalClassLoaderResource
else
{
URL url = getClassLoader().getResource(libraryName);
+ if (url == null)
+ {
+ url = this.getClass().getClassLoader().getResource(libraryName);
+ }
if (url != null)
{
return true;
Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/resource/ClassLoaderResourceLoader.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/resource/ClassLoaderResourceLoader.java?rev=1074277&r1=1074276&r2=1074277&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/resource/ClassLoaderResourceLoader.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/resource/ClassLoaderResourceLoader.java Thu Feb 24 19:56:36 2011
@@ -18,13 +18,14 @@
*/
package org.apache.myfaces.shared.resource;
-import org.apache.myfaces.shared.renderkit.html.util.ResourceUtils;
-import org.apache.myfaces.shared.util.MyFacesClassLoader;
+import java.io.InputStream;
+import java.net.URL;
import javax.faces.application.ProjectStage;
import javax.faces.context.FacesContext;
-import java.io.InputStream;
-import java.net.URL;
+
+import org.apache.myfaces.shared.renderkit.html.util.ResourceUtils;
+import org.apache.myfaces.shared.util.ClassUtils;
/**
* A resource loader implementation which loads resources from the thread ClassLoader.
@@ -73,7 +74,6 @@ public class ClassLoaderResourceLoader e
};*/
private final boolean _developmentStage;
- private MyFacesClassLoader classLoader;
public ClassLoaderResourceLoader(String prefix)
{
@@ -243,26 +243,50 @@ public class ClassLoaderResourceLoader e
@Override
public InputStream getResourceInputStream(ResourceMeta resourceMeta)
{
+ InputStream is = null;
if (getPrefix() != null && !"".equals(getPrefix()))
{
- return getClassLoader().getResourceAsStream(getPrefix() + '/' + resourceMeta.getResourceIdentifier());
+ String name = getPrefix() + '/' + resourceMeta.getResourceIdentifier();
+ is = getClassLoader().getResourceAsStream(name);
+ if (is == null)
+ {
+ is = this.getClass().getClassLoader().getResourceAsStream(name);
+ }
+ return is;
}
else
{
- return getClassLoader().getResourceAsStream(resourceMeta.getResourceIdentifier());
+ is = getClassLoader().getResourceAsStream(resourceMeta.getResourceIdentifier());
+ if (is == null)
+ {
+ is = this.getClass().getClassLoader().getResourceAsStream(resourceMeta.getResourceIdentifier());
+ }
+ return is;
}
}
@Override
public URL getResourceURL(ResourceMeta resourceMeta)
{
+ URL url = null;
if (getPrefix() != null && !"".equals(getPrefix()))
{
- return getClassLoader().getResource(getPrefix() + '/' + resourceMeta.getResourceIdentifier());
+ String name = getPrefix() + '/' + resourceMeta.getResourceIdentifier();
+ url = getClassLoader().getResource(name);
+ if (url == null)
+ {
+ url = this.getClass().getClassLoader().getResource(name);
+ }
+ return url;
}
else
{
- return getClassLoader().getResource(resourceMeta.getResourceIdentifier());
+ url = getClassLoader().getResource(resourceMeta.getResourceIdentifier());
+ if (url == null)
+ {
+ url = this.getClass().getClassLoader().getResource(resourceMeta.getResourceIdentifier());
+ }
+ return url;
}
}
@@ -435,11 +459,7 @@ public class ClassLoaderResourceLoader e
*/
protected ClassLoader getClassLoader()
{
- if (classLoader == null)
- {
- classLoader = new MyFacesClassLoader();
- }
- return classLoader;
+ return ClassUtils.getContextClassLoader();
}
@Override
@@ -448,6 +468,10 @@ public class ClassLoaderResourceLoader e
if (getPrefix() != null && !"".equals(getPrefix()))
{
URL url = getClassLoader().getResource(getPrefix() + '/' + libraryName);
+ if (url == null)
+ {
+ url = this.getClass().getClassLoader().getResource(getPrefix() + '/' + libraryName);
+ }
if (url != null)
{
return true;
@@ -456,6 +480,10 @@ public class ClassLoaderResourceLoader e
else
{
URL url = getClassLoader().getResource(libraryName);
+ if (url == null)
+ {
+ url = this.getClass().getClassLoader().getResource(libraryName);
+ }
if (url != null)
{
return true;