1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.view.facelets.impl;
20
21 import javax.faces.application.ProjectStage;
22 import javax.faces.application.ViewHandler;
23 import javax.faces.context.ExternalContext;
24 import javax.faces.context.FacesContext;
25 import javax.faces.view.facelets.FaceletCache;
26 import javax.faces.view.facelets.FaceletCacheFactory;
27
28 import org.apache.myfaces.shared.util.WebConfigParamUtils;
29 import org.apache.myfaces.view.facelets.ELExpressionCacheMode;
30 import org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage;
31
32
33
34
35
36
37
38 public class FaceletCacheFactoryImpl extends FaceletCacheFactory
39 {
40 private final static String PARAM_REFRESH_PERIOD_DEPRECATED = "facelets.REFRESH_PERIOD";
41
42 private final static String[] PARAMS_REFRESH_PERIOD
43 = {ViewHandler.FACELETS_REFRESH_PERIOD_PARAM_NAME, PARAM_REFRESH_PERIOD_DEPRECATED};
44
45
46 @Override
47 public FaceletCache getFaceletCache()
48 {
49 FacesContext context = FacesContext.getCurrentInstance();
50 ExternalContext eContext = context.getExternalContext();
51
52 long refreshPeriod;
53 if(context.isProjectStage(ProjectStage.Production))
54 {
55 refreshPeriod = WebConfigParamUtils.getLongInitParameter(eContext, PARAMS_REFRESH_PERIOD,
56 FaceletViewDeclarationLanguage.DEFAULT_REFRESH_PERIOD_PRODUCTION);
57 }
58 else
59 {
60 refreshPeriod = WebConfigParamUtils.getLongInitParameter(eContext, PARAMS_REFRESH_PERIOD,
61 FaceletViewDeclarationLanguage.DEFAULT_REFRESH_PERIOD);
62 }
63
64 String elMode = WebConfigParamUtils.getStringInitParameter(
65 context.getExternalContext(),
66 FaceletCompositionContextImpl.INIT_PARAM_CACHE_EL_EXPRESSIONS,
67 ELExpressionCacheMode.noCache.name());
68
69 if (ELExpressionCacheMode.alwaysRecompile.toString().equals(elMode))
70 {
71 return new CacheELFaceletCacheImpl(refreshPeriod);
72 }
73 else
74 {
75 return new FaceletCacheImpl(refreshPeriod);
76 }
77 }
78
79 }