1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.application;
20
21 import javax.faces.application.ProjectStage;
22 import javax.faces.context.FacesContext;
23
24 import org.apache.myfaces.resource.InternalClassLoaderResourceLoader;
25 import org.apache.myfaces.shared.renderkit.html.util.ResourceUtils;
26 import org.apache.myfaces.shared.resource.BaseResourceHandlerSupport;
27 import org.apache.myfaces.shared.resource.ClassLoaderResourceLoader;
28 import org.apache.myfaces.shared.resource.ExternalContextResourceLoader;
29 import org.apache.myfaces.shared.resource.ResourceLoader;
30 import org.apache.myfaces.shared.util.WebConfigParamUtils;
31
32
33
34
35
36
37
38
39 public class DefaultResourceHandlerSupport extends BaseResourceHandlerSupport
40 {
41
42 private static final String META_INF_RESOURCES = "META-INF/resources";
43 private static final String RESOURCES = "/resources";
44 private static final String META_INF_INTERNAL_RESOURCES = "META-INF/internal-resources";
45
46 private ResourceLoader[] _resourceLoaders;
47
48 public DefaultResourceHandlerSupport()
49 {
50 super();
51 }
52
53 public ResourceLoader[] getResourceLoaders()
54 {
55 if (_resourceLoaders == null)
56 {
57 FacesContext facesContext = FacesContext.getCurrentInstance();
58
59
60 String renderedJSFJS = WebConfigParamUtils.getStringInitParameter(facesContext.getExternalContext(),
61 InternalClassLoaderResourceLoader.MYFACES_JSF_MODE,
62 ResourceUtils.JSF_MYFACES_JSFJS_NORMAL);
63
64 if (facesContext.isProjectStage(ProjectStage.Development) ||
65 !renderedJSFJS.equals(ResourceUtils.JSF_MYFACES_JSFJS_NORMAL))
66 {
67 _resourceLoaders = new ResourceLoader[] {
68 new ExternalContextResourceLoader(RESOURCES),
69 new InternalClassLoaderResourceLoader(META_INF_INTERNAL_RESOURCES),
70 new ClassLoaderResourceLoader(META_INF_RESOURCES)
71 };
72 }
73 else
74 {
75 _resourceLoaders = new ResourceLoader[] {
76 new ExternalContextResourceLoader(RESOURCES),
77 new ClassLoaderResourceLoader(META_INF_RESOURCES)
78 };
79 }
80 }
81 return _resourceLoaders;
82 }
83 }