1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.shared.config;
20
21
22 import java.util.logging.Level;
23 import java.util.logging.Logger;
24 import javax.faces.context.ExternalContext;
25 import javax.servlet.ServletContext;
26
27 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFWebConfigParam;
28 import org.apache.myfaces.shared.util.ClassUtils;
29 import org.apache.myfaces.shared.util.WebConfigParamUtils;
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 public class MyfacesConfig
45 {
46 private static final String APPLICATION_MAP_PARAM_NAME = MyfacesConfig.class.getName();
47
48
49
50
51
52 @JSFWebConfigParam(tags="tomahawk")
53 public static final String INIT_PARAM_RESOURCE_VIRTUAL_PATH = "org.apache.myfaces.RESOURCE_VIRTUAL_PATH";
54 public static final String INIT_PARAM_RESOURCE_VIRTUAL_PATH_DEFAULT = "/faces/myFacesExtensionResource";
55
56
57
58
59
60
61 @JSFWebConfigParam(defaultValue="true", expectedValues="true, false, on, off, yes, no",since="1.1",
62 ignoreUpperLowerCase=true, group="render")
63 private static final String INIT_PARAM_PRETTY_HTML = "org.apache.myfaces.PRETTY_HTML";
64 private static final boolean INIT_PARAM_PRETTY_HTML_DEFAULT = true;
65
66
67
68
69
70
71
72
73
74 @JSFWebConfigParam(defaultValue="true", expectedValues="true, false, on, off, yes, no",since="1.1",
75 ignoreUpperLowerCase=true, group="render")
76 private static final String INIT_PARAM_ALLOW_JAVASCRIPT = "org.apache.myfaces.ALLOW_JAVASCRIPT";
77 private static final boolean INIT_PARAM_ALLOW_JAVASCRIPT_DEFAULT = true;
78
79
80
81
82 @JSFWebConfigParam(defaultValue="false", expectedValues="true, false, on, off, yes, no",since="1.1",
83 ignoreUpperLowerCase=true, deprecated=true, tags="tomahawk", group="render")
84 private static final String INIT_PARAM_DETECT_JAVASCRIPT = "org.apache.myfaces.DETECT_JAVASCRIPT";
85 private static final boolean INIT_PARAM_DETECT_JAVASCRIPT_DEFAULT = false;
86
87
88
89
90
91
92
93
94 @JSFWebConfigParam(defaultValue="false", expectedValues="true, false, on, off, yes, no",since="1.1",
95 ignoreUpperLowerCase=true, tags="tomahawk")
96 private static final String INIT_PARAM_AUTO_SCROLL = "org.apache.myfaces.AUTO_SCROLL";
97 private static final boolean INIT_PARAM_AUTO_SCROLL_DEFAULT = false;
98
99
100
101
102
103
104
105
106
107
108
109 @JSFWebConfigParam(defaultValue="org.apache.myfaces. renderkit.html.util. DefaultAddResource",since="1.1",
110 desc="Tomahawk specific: Indicate the class responsible to place scripts and css using " +
111 "tomahawk AddResource API", tags="tomahawk")
112 private static final String INIT_PARAM_ADD_RESOURCE_CLASS = "org.apache.myfaces.ADD_RESOURCE_CLASS";
113 private static final String INIT_PARAM_ADD_RESOURCE_CLASS_DEFAULT =
114 "org.apache.myfaces.renderkit.html.util.DefaultAddResource";
115
116
117
118
119
120
121
122
123
124
125
126
127
128 @JSFWebConfigParam(defaultValue="for JSF 2.0 since 1.1.11 false, otherwise true",
129 expectedValues="true, false, on, off, yes, no",since="1.1", ignoreUpperLowerCase=true,
130 desc="Tomahawk specific: This parameter will check for a properly configured Extensions-Filter if " +
131 "it is needed by the web-app.", tags="tomahawk")
132 private static final String INIT_CHECK_EXTENSIONS_FILTER = "org.apache.myfaces.CHECK_EXTENSIONS_FILTER";
133 private static final boolean INIT_CHECK_EXTENSIONS_FILTER_DEFAULT = false;
134
135
136
137
138 @JSFWebConfigParam(defaultValue="true", expectedValues="true, false, on, off, yes, no",since="1.1",
139 ignoreUpperLowerCase=true, tags="tomahawk", group="render")
140 private static final String INIT_READONLY_AS_DISABLED_FOR_SELECT =
141 "org.apache.myfaces.READONLY_AS_DISABLED_FOR_SELECTS";
142 private static final boolean INIT_READONLY_AS_DISABLED_FOR_SELECT_DEFAULT = true;
143
144
145
146
147
148
149 @JSFWebConfigParam(defaultValue="2",since="1.1", classType="java.lang.Long")
150 public static final String INIT_PARAM_CONFIG_REFRESH_PERIOD = "org.apache.myfaces.CONFIG_REFRESH_PERIOD";
151 public static final long INIT_PARAM_CONFIG_REFRESH_PERIOD_DEFAULT = 2;
152
153
154
155
156 @JSFWebConfigParam(defaultValue="false", expectedValues="true, false, on, off, yes, no",since="1.1",
157 ignoreUpperLowerCase=true, deprecated=true, group="state")
158 private static final String INIT_PARAM_VIEWSTATE_JAVASCRIPT = "org.apache.myfaces.VIEWSTATE_JAVASCRIPT";
159 private static final boolean INIT_PARAM_VIEWSTATE_JAVASCRIPT_DEFAULT = false;
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176 @JSFWebConfigParam(defaultValue="true", expectedValues="true, false, on, off, yes, no",since="1.1",
177 ignoreUpperLowerCase=true, group="state")
178 private static final String INIT_PARAM_RENDER_VIEWSTATE_ID = "org.apache.myfaces.RENDER_VIEWSTATE_ID";
179 private static final boolean INIT_PARAM_RENDER_VIEWSTATE_ID_DEFAULT = true;
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196 @JSFWebConfigParam(defaultValue="true", expectedValues="true, false, on, off, yes, no",since="1.1.6",
197 ignoreUpperLowerCase=true, group="render")
198 private static final String INIT_PARAM_STRICT_XHTML_LINKS = "org.apache.myfaces.STRICT_XHTML_LINKS";
199 private static final boolean INIT_PARAM_STRICT_XHTML_LINKS_DEFAULT = true;
200
201
202
203
204
205
206
207 @JSFWebConfigParam(defaultValue="false", expectedValues="true, false, on, off, yes, no",since="1.2.3",
208 ignoreUpperLowerCase=true, group="render")
209 private static final String INIT_PARAM_RENDER_CLEAR_JAVASCRIPT_FOR_BUTTON =
210 "org.apache.myfaces.RENDER_CLEAR_JAVASCRIPT_FOR_BUTTON";
211 private static final boolean INIT_PARAM_RENDER_CLEAR_JAVASCRIPT_FOR_BUTTON_DEFAULT= false;
212
213
214
215
216
217
218
219
220 @JSFWebConfigParam(defaultValue="false", expectedValues="true, false, on, off, yes, no",since="1.2.9",
221 ignoreUpperLowerCase=true, group="render")
222 private static final String INIT_PARAM_RENDER_HIDDEN_FIELDS_FOR_LINK_PARAMS =
223 "org.apache.myfaces.RENDER_HIDDEN_FIELDS_FOR_LINK_PARAMS";
224 private static final boolean INIT_PARAM_RENDER_HIDDEN_FIELDS_FOR_LINK_PARAMS_DEFAULT= false;
225
226
227
228
229
230 @JSFWebConfigParam(defaultValue="false", expectedValues="true, false, on, off, yes, no",since="1.1",
231 ignoreUpperLowerCase=true, group="render")
232 private static final String INIT_PARAM_SAVE_FORM_SUBMIT_LINK_IE = "org.apache.myfaces.SAVE_FORM_SUBMIT_LINK_IE";
233 private static final boolean INIT_PARAM_SAVE_FORM_SUBMIT_LINK_IE_DEFAULT = false;
234
235
236
237
238
239
240
241
242
243 @JSFWebConfigParam(since="1.2.7")
244 private static final String INIT_PARAM_DELEGATE_FACES_SERVLET = "org.apache.myfaces.DELEGATE_FACES_SERVLET";
245
246
247
248
249
250
251
252
253
254
255
256
257 @JSFWebConfigParam(since="2.0", defaultValue="auto", expectedValues="true,false,auto", tags="performance",
258 ignoreUpperLowerCase=true, group="state")
259 public final static String INIT_PARAM_REFRESH_TRANSIENT_BUILD_ON_PSS =
260 "org.apache.myfaces.REFRESH_TRANSIENT_BUILD_ON_PSS";
261 public final static String INIT_PARAM_REFRESH_TRANSIENT_BUILD_ON_PSS_DEFAULT = "auto";
262
263
264
265
266
267
268
269
270
271
272 @JSFWebConfigParam(since="2.0", defaultValue="false", expectedValues="true, false, on, off, yes, no",
273 tags="performance", ignoreUpperLowerCase=true, group="state")
274 public final static String INIT_PARAM_REFRESH_TRANSIENT_BUILD_ON_PSS_PRESERVE_STATE =
275 "org.apache.myfaces.REFRESH_TRANSIENT_BUILD_ON_PSS_PRESERVE_STATE";
276 public final static boolean INIT_PARAM_REFRESH_TRANSIENT_BUILD_ON_PSS_PRESERVE_STATE_DEFAULT = false;
277
278
279
280
281
282 @JSFWebConfigParam(since="2.0", expectedValues="true, false, on, off, yes, no", ignoreUpperLowerCase=true)
283 public final static String INIT_PARAM_VALIDATE_XML = "org.apache.myfaces.VALIDATE_XML";
284 public final static boolean INIT_PARAM_VALIDATE_XML_DEFAULT = false;
285
286
287
288
289 @JSFWebConfigParam(since="2.0.1", expectedValues="true, false, on, off, yes, no", defaultValue="false",
290 ignoreUpperLowerCase=true, group="render")
291 public final static String INIT_PARAM_WRAP_SCRIPT_CONTENT_WITH_XML_COMMENT_TAG =
292 "org.apache.myfaces.WRAP_SCRIPT_CONTENT_WITH_XML_COMMENT_TAG";
293 public final static boolean INIT_PARAM_WRAP_SCRIPT_CONTENT_WITH_XML_COMMENT_TAG_DEFAULT = false;
294
295
296
297
298 @JSFWebConfigParam(since="2.0.2", expectedValues="true, false, on, off, yes, no", defaultValue="false",
299 ignoreUpperLowerCase=true, group="render")
300 public final static String INIT_PARAM_RENDER_FORM_SUBMIT_SCRIPT_INLINE =
301 "org.apache.myfaces.RENDER_FORM_SUBMIT_SCRIPT_INLINE";
302 public final static boolean INIT_PARAM_RENDER_FORM_SUBMIT_SCRIPT_INLINE_DEFAULT = false;
303
304
305
306
307
308
309
310
311 @JSFWebConfigParam(since="2.0.8")
312 public final static String INIT_PARAM_DEBUG_PHASE_LISTENER = "org.apache.myfaces.DEBUG_PHASE_LISTENER";
313 public final static boolean INIT_PARAM_DEBUG_PHASE_LISTENER_DEFAULT = false;
314
315
316
317
318
319
320
321
322 @JSFWebConfigParam(since="2.0.10", expectedValues="true, false", defaultValue="false")
323 public final static String INIT_PARAM_STRICT_JSF_2_REFRESH_TARGET_AJAX =
324 "org.apache.myfaces.STRICT_JSF_2_REFRESH_TARGET_AJAX";
325 public final static boolean INIT_PARAM_STRICT_JSF_2_REFRESH_TARGET_AJAX_DEFAULT = false;
326
327
328
329
330
331
332
333
334
335
336
337 @JSFWebConfigParam(since="2.0.10", expectedValues="true, false", defaultValue="false", group="EL")
338 public final static String INIT_PARAM_STRICT_JSF_2_CC_EL_RESOLVER =
339 "org.apache.myfaces.STRICT_JSF_2_CC_EL_RESOLVER";
340 public final static boolean INIT_PARAM_STRICT_JSF_2_CC_EL_RESOLVER_DEFAULT = false;
341
342
343
344
345
346 @JSFWebConfigParam(since="2.0.11,2.1.5", expectedValues="text/html, application/xhtml+xml",
347 defaultValue="text/html", group="render")
348 public final static String INIT_PARAM_DEFAULT_RESPONSE_WRITER_CONTENT_TYPE_MODE =
349 "org.apache.myfaces.DEFAULT_RESPONSE_WRITER_CONTENT_TYPE_MODE";
350 public final static String INIT_PARAM_DEFAULT_RESPONSE_WRITER_CONTENT_TYPE_MODE_DEFAULT = "text/html";
351
352
353
354
355
356 @JSFWebConfigParam(defaultValue = "true", since = "2.0.13, 2.1.7", expectedValues="true, false",
357 group="viewhandler", tags="performance",
358 desc="Enable or disable a cache used to 'remember' the generated facelets unique ids " +
359 "and reduce the impact over memory usage.")
360 public static final String INIT_PARAM_VIEW_UNIQUE_IDS_CACHE_ENABLED =
361 "org.apache.myfaces.VIEW_UNIQUE_IDS_CACHE_ENABLED";
362 public static final boolean INIT_PARAM_VIEW_UNIQUE_IDS_CACHE_ENABLED_DEFAULT = true;
363
364
365
366
367
368 @JSFWebConfigParam(defaultValue = "100", since = "2.0.13, 2.1.7",
369 group="viewhandler", tags="performance")
370 public static final String INIT_PARAM_COMPONENT_UNIQUE_IDS_CACHE_SIZE =
371 "org.apache.myfaces.COMPONENT_UNIQUE_IDS_CACHE_SIZE";
372 public static final int INIT_PARAM_COMPONENT_UNIQUE_IDS_CACHE_SIZE_DEFAULT = 100;
373
374
375
376
377
378
379
380
381 @JSFWebConfigParam(since="2.0.13,2.1.7", expectedValues="true,false", defaultValue="true",
382 desc="If set false, myfaces won't support JSP and javax.faces.el. JSP are deprecated in " +
383 "JSF 2.X, javax.faces.el in in JSF 1.2. Default value is true.",
384 group="EL", tags="performance ")
385 public final static String INIT_PARAM_SUPPORT_JSP_AND_FACES_EL = "org.apache.myfaces.SUPPORT_JSP_AND_FACES_EL";
386 public final static boolean INIT_PARAM_SUPPORT_JSP_AND_FACES_EL_DEFAULT = true;
387
388
389
390
391
392
393
394
395 @JSFWebConfigParam(since = "2.1.8, 2.0.14", expectedValues="none, myfavoritejsflib-*.jar",
396 tags="performance, GAE")
397 public static final String INIT_PARAM_GAE_JSF_JAR_FILES = "org.apache.myfaces.GAE_JSF_JAR_FILES";
398 public final static String INIT_PARAM_GAE_JSF_JAR_FILES_DEFAULT = null;
399
400
401
402
403
404
405
406
407
408
409
410 @JSFWebConfigParam(since = "2.1.8, 2.0.14", expectedValues="none, myfavoritejsflib-*.jar",
411 tags="performance, GAE")
412 public static final String INIT_PARAM_GAE_JSF_ANNOTATIONS_JAR_FILES =
413 "org.apache.myfaces.GAE_JSF_ANNOTATIONS_JAR_FILES";
414 public final static String INIT_PARAM_GAE_JSF_ANNOTATIONS_JAR_FILES_DEFAULT = null;
415
416
417
418
419
420
421
422
423 @JSFWebConfigParam(since = "2.1.13", defaultValue="false", expectedValues="true,false",
424 group="viewhandler")
425 public static final String INIT_PARAM_STRICT_JSF_2_VIEW_NOT_FOUND =
426 "org.apache.myfaces.STRICT_JSF_2_VIEW_NOT_FOUND";
427 public final static boolean INIT_PARAM_STRICT_JSF_2_VIEW_NOT_FOUND_DEFAULT = false;
428
429 @JSFWebConfigParam(defaultValue = "false", since = "2.2.0", expectedValues="true, false", group="render",
430 tags="performance",
431 desc="Enable or disable an early flush which allows to send e.g. the HTML-Head to the client " +
432 "while the rest gets rendered. It's a well known technique to reduce the time for loading a page.")
433 private static final String INIT_PARAM_EARLY_FLUSH_ENABLED =
434 "org.apache.myfaces.EARLY_FLUSH_ENABLED";
435 private static final boolean INIT_PARAM_EARLY_FLUSH_ENABLED_DEFAULT = false;
436
437 @JSFWebConfigParam(defaultValue = "false", since = "2.2.0", expectedValues="true, false", group="cdi",
438 tags="injection",
439 desc="Enable or disable CDI support for converters.")
440 private static final String INIT_PARAM_CDI_MANAGED_CONVERTERS_ENABLED =
441 "org.apache.myfaces.CDI_MANAGED_CONVERTERS_ENABLED";
442 private static final boolean INIT_PARAM_CDI_MANAGED_CONVERTERS_DEFAULT = false;
443 @JSFWebConfigParam(defaultValue = "false", since = "2.2.0", expectedValues="true, false", group="cdi",
444 tags="injection",
445 desc="Enable or disable CDI support for validators.")
446 private static final String INIT_PARAM_CDI_MANAGED_VALIDATORS_ENABLED =
447 "org.apache.myfaces.CDI_MANAGED_VALIDATORS_ENABLED";
448 private static final boolean INIT_PARAM_CDI_MANAGED_VALIDATORS_DEFAULT = false;
449
450
451
452
453
454
455 @JSFWebConfigParam(since = "2.2.0", defaultValue="false", expectedValues="true,false",
456 group="viewhandler")
457 public static final String INIT_PARAM_STRICT_JSF_2_FACELETS_COMPATIBILITY =
458 "org.apache.myfaces.STRICT_JSF_2_FACELETS_COMPATIBILITY";
459 public final static boolean INIT_PARAM_STRICT_JSF_2_FACELETS_COMPATIBILITY_DEFAULT = false;
460
461
462
463
464
465
466 @JSFWebConfigParam(since = "2.2.4", defaultValue = "false", expectedValues = "true,false",
467 group="render")
468 public static final String INIT_PARAM_RENDER_FORM_VIEW_STATE_AT_BEGIN =
469 "org.apache.myfaces.RENDER_FORM_VIEW_STATE_AT_BEGIN";
470 public final static boolean INIT_PARAM_RENDER_FORM_VIEW_STATE_AT_BEGIN_DEFAULT = false;
471
472
473
474
475
476
477 @JSFWebConfigParam(defaultValue="false",since="2.0.5")
478 public static final String INIT_PARAM_FLASH_SCOPE_DISABLED = "org.apache.myfaces.FLASH_SCOPE_DISABLED";
479 public static final boolean INIT_PARAM_FLASH_SCOPE_DISABLED_DEFAULT = false;
480
481
482
483
484
485
486
487
488 @JSFWebConfigParam(defaultValue="20",since="1.1", classType="java.lang.Integer", group="state", tags="performance")
489 public static final String INIT_PARAM_NUMBER_OF_VIEWS_IN_SESSION = "org.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSION";
490
491
492
493
494 public static final int INIT_PARAM_NUMBER_OF_VIEWS_IN_SESSION_DEFAULT = 20;
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509 @JSFWebConfigParam(since="2.0.6", classType="java.lang.Integer", group="state", tags="performance",
510 defaultValue = "4")
511 public static final String INIT_PARAM_NUMBER_OF_SEQUENTIAL_VIEWS_IN_SESSION
512 = "org.apache.myfaces.NUMBER_OF_SEQUENTIAL_VIEWS_IN_SESSION";
513 public static final Integer INIT_PARAM_NUMBER_OF_SEQUENTIAL_VIEWS_IN_SESSION_DEFAULT = 4;
514
515
516
517
518
519
520
521
522
523
524 @JSFWebConfigParam(since="2.2.6", group="state", tags="performance")
525 static final String INIT_PARAM_NUMBER_OF_FLASH_TOKENS_IN_SESSION =
526 "org.apache.myfaces.NUMBER_OF_FLASH_TOKENS_IN_SESSION";
527
528
529
530
531
532
533
534
535
536
537
538 @JSFWebConfigParam(since="2.2.6", group="state", tags="performance")
539 static final String INIT_PARAM_NUMBER_OF_FACES_FLOW_CLIENT_WINDOW_IDS_IN_SESSION =
540 "org.apache.myfaces.FACES_FLOW_CLIENT_WINDOW_IDS_IN_SESSION";
541
542
543
544
545 @JSFWebConfigParam(since="2.2.9", defaultValue="false", expectedValues="true,false", group="EL")
546 protected static final String SUPPORT_EL_3_IMPORT_HANDLER = "org.apache.myfaces.SUPPORT_EL_3_IMPORT_HANDLER";
547 public final static boolean SUPPORT_EL_3_IMPORT_HANDLER_DEFAULT = false;
548
549
550
551
552 @JSFWebConfigParam(since="2.2.13", defaultValue="false", expectedValues="true,false")
553 protected static final String STRICT_JSF_2_ORIGIN_HEADER_APP_PATH =
554 "org.apache.myfaces.STRICT_JSF_2_ORIGIN_HEADER_APP_PATH";
555 public final static boolean STRICT_JSF_2_ORIGIN_HEADER_APP_PATH_DEFAULT = false;
556
557
558
559
560
561
562
563
564 @JSFWebConfigParam(since="2.2.13", defaultValue="true", expectedValues="true,false")
565 protected static final String ALWAYS_FORCE_SESSION_CREATION =
566 "org.apache.myfaces.ALWAYS_FORCE_SESSION_CREATION";
567 public final static boolean ALWAYS_FORCE_SESSION_CREATION_DEFAULT = true;
568
569
570 private boolean _prettyHtml;
571 private boolean _detectJavascript;
572 private boolean _allowJavascript;
573 private boolean _autoScroll;
574 private String _addResourceClass;
575 private String _resourceVirtualPath;
576 private boolean _checkExtensionsFilter;
577 private boolean _readonlyAsDisabledForSelect;
578 private long _configRefreshPeriod;
579 private boolean _viewStateJavascript;
580 private boolean _renderViewStateId;
581 private boolean _strictXhtmlLinks;
582 private boolean _renderClearJavascriptOnButton;
583 private boolean renderHiddenFieldsForLinkParams;
584 private boolean _saveFormSubmitLinkIE;
585 private String _delegateFacesServlet;
586 private boolean _refreshTransientBuildOnPSS;
587 private boolean _refreshTransientBuildOnPSSAuto;
588 private boolean refreshTransientBuildOnPSSPreserveState;
589 private boolean _validateXML;
590 private boolean _wrapScriptContentWithXmlCommentTag;
591 private boolean _renderFormSubmitScriptInline;
592 private boolean _debugPhaseListenerEnabled;
593 private boolean _strictJsf2RefreshTargetAjax;
594 private boolean _strictJsf2CCELResolver;
595 private String _defaultResponseWriterContentTypeMode;
596 private boolean _viewUniqueIdsCacheEnabled;
597 private int _componentUniqueIdsCacheSize;
598 private boolean _supportJSPAndFacesEL;
599 private String _gaeJsfJarFiles;
600 private String _gaeJsfAnnotationsJarFiles;
601 private boolean _strictJsf2ViewNotFound;
602 private boolean _earlyFlushEnabled;
603 private boolean _cdiManagedConvertersEnabled;
604 private boolean _cdiManagedValidatorsEnabled;
605 private boolean _strictJsf2FaceletsCompatibility;
606 private boolean _renderFormViewStateAtBegin;
607 private boolean _flashScopeDisabled;
608 private Integer _numberOfViewsInSession;
609 private Integer _numberOfSequentialViewsInSession;
610 private Integer _numberOfFlashTokensInSession;
611 private Integer _numberOfFacesFlowClientWindowIdsInSession;
612 private boolean _supportEL3ImportHandler;
613 private boolean _strictJsf2OriginHeaderAppPath;
614 private boolean _alwaysForceSessionCreation;
615
616 private static final boolean TOMAHAWK_AVAILABLE;
617 private static final boolean MYFACES_IMPL_AVAILABLE;
618 private static final boolean RI_IMPL_AVAILABLE;
619
620 static
621 {
622 boolean tomahawkAvailable;
623 try
624 {
625 ClassUtils.classForName("org.apache.myfaces.webapp.filter.ExtensionsFilter");
626 tomahawkAvailable = true;
627 }
628 catch (ClassNotFoundException e)
629 {
630 tomahawkAvailable = false;
631 }
632 TOMAHAWK_AVAILABLE = tomahawkAvailable;
633 }
634
635 static
636 {
637 boolean myfacesImplAvailable;
638 try
639 {
640 ClassUtils.classForName("org.apache.myfaces.application.ApplicationImpl");
641 myfacesImplAvailable = true;
642 }
643 catch (ClassNotFoundException e)
644 {
645 myfacesImplAvailable = false;
646 }
647 MYFACES_IMPL_AVAILABLE = myfacesImplAvailable;
648 }
649
650 static
651 {
652 boolean riImplAvailable;
653 try
654 {
655 ClassUtils.classForName("com.sun.faces.application.ApplicationImpl");
656 riImplAvailable = true;
657 }
658 catch (ClassNotFoundException e)
659 {
660 riImplAvailable = false;
661 }
662 RI_IMPL_AVAILABLE = riImplAvailable;
663 }
664
665 public static MyfacesConfig getCurrentInstance(ExternalContext extCtx)
666 {
667 MyfacesConfig myfacesConfig = (MyfacesConfig) extCtx
668 .getApplicationMap().get(APPLICATION_MAP_PARAM_NAME);
669 if (myfacesConfig == null)
670 {
671
672 myfacesConfig = createAndInitializeMyFacesConfig(extCtx);
673
674 extCtx.getApplicationMap().put(APPLICATION_MAP_PARAM_NAME, myfacesConfig);
675
676 }
677
678 return myfacesConfig;
679 }
680
681 public MyfacesConfig()
682 {
683 setPrettyHtml(INIT_PARAM_PRETTY_HTML_DEFAULT);
684 setAllowJavascript(INIT_PARAM_ALLOW_JAVASCRIPT_DEFAULT);
685 setRenderClearJavascriptOnButton(INIT_PARAM_RENDER_CLEAR_JAVASCRIPT_FOR_BUTTON_DEFAULT);
686 setRenderHiddenFieldsForLinkParams(INIT_PARAM_RENDER_HIDDEN_FIELDS_FOR_LINK_PARAMS_DEFAULT);
687 setSaveFormSubmitLinkIE(INIT_PARAM_SAVE_FORM_SUBMIT_LINK_IE_DEFAULT);
688 setReadonlyAsDisabledForSelect(INIT_READONLY_AS_DISABLED_FOR_SELECT_DEFAULT);
689 setRenderViewStateId(INIT_PARAM_RENDER_VIEWSTATE_ID_DEFAULT);
690 setStrictXhtmlLinks(INIT_PARAM_STRICT_XHTML_LINKS_DEFAULT);
691 setConfigRefreshPeriod(INIT_PARAM_CONFIG_REFRESH_PERIOD_DEFAULT);
692 setViewStateJavascript(INIT_PARAM_VIEWSTATE_JAVASCRIPT_DEFAULT);
693 setRefreshTransientBuildOnPSS(true);
694 setRefreshTransientBuildOnPSSAuto(true);
695 setRefreshTransientBuildOnPSSPreserveState(INIT_PARAM_REFRESH_TRANSIENT_BUILD_ON_PSS_PRESERVE_STATE_DEFAULT);
696 setValidateXML(INIT_PARAM_VALIDATE_XML_DEFAULT);
697 setWrapScriptContentWithXmlCommentTag(INIT_PARAM_WRAP_SCRIPT_CONTENT_WITH_XML_COMMENT_TAG_DEFAULT);
698 setDetectJavascript(INIT_PARAM_DETECT_JAVASCRIPT_DEFAULT);
699 setAutoScroll(INIT_PARAM_AUTO_SCROLL_DEFAULT);
700 setAddResourceClass(INIT_PARAM_ADD_RESOURCE_CLASS_DEFAULT);
701 setResourceVirtualPath(INIT_PARAM_RESOURCE_VIRTUAL_PATH_DEFAULT);
702
703
704 setCheckExtensionsFilter(false);
705 setRenderFormSubmitScriptInline(INIT_PARAM_RENDER_FORM_SUBMIT_SCRIPT_INLINE_DEFAULT);
706 setDebugPhaseListenerEnabled(INIT_PARAM_DEBUG_PHASE_LISTENER_DEFAULT);
707 setStrictJsf2RefreshTargetAjax(INIT_PARAM_STRICT_JSF_2_REFRESH_TARGET_AJAX_DEFAULT);
708 setStrictJsf2CCELResolver(INIT_PARAM_STRICT_JSF_2_CC_EL_RESOLVER_DEFAULT);
709 setDefaultResponseWriterContentTypeMode(INIT_PARAM_DEFAULT_RESPONSE_WRITER_CONTENT_TYPE_MODE_DEFAULT);
710 setViewUniqueIdsCacheEnabled(INIT_PARAM_VIEW_UNIQUE_IDS_CACHE_ENABLED_DEFAULT);
711 setComponentUniqueIdsCacheSize(INIT_PARAM_COMPONENT_UNIQUE_IDS_CACHE_SIZE_DEFAULT);
712 setSupportJSPAndFacesEL(INIT_PARAM_SUPPORT_JSP_AND_FACES_EL_DEFAULT);
713 setGaeJsfJarFiles(INIT_PARAM_GAE_JSF_JAR_FILES_DEFAULT);
714 setGaeJsfAnnotationsJarFiles(INIT_PARAM_GAE_JSF_ANNOTATIONS_JAR_FILES_DEFAULT);
715 setStrictJsf2ViewNotFound(INIT_PARAM_STRICT_JSF_2_VIEW_NOT_FOUND_DEFAULT);
716 setEarlyFlushEnabled(INIT_PARAM_EARLY_FLUSH_ENABLED_DEFAULT);
717 setCdiManagedConvertersEnabled(INIT_PARAM_CDI_MANAGED_CONVERTERS_DEFAULT);
718 setCdiManagedValidatorsEnabled(INIT_PARAM_CDI_MANAGED_VALIDATORS_DEFAULT);
719 setStrictJsf2FaceletsCompatibility(INIT_PARAM_STRICT_JSF_2_FACELETS_COMPATIBILITY_DEFAULT);
720 setRenderFormViewStateAtBegin(INIT_PARAM_RENDER_FORM_VIEW_STATE_AT_BEGIN_DEFAULT);
721 setFlashScopeDisabled(INIT_PARAM_FLASH_SCOPE_DISABLED_DEFAULT);
722 setNumberOfViewsInSession(INIT_PARAM_NUMBER_OF_VIEWS_IN_SESSION_DEFAULT);
723 setNumberOfSequentialViewsInSession(INIT_PARAM_NUMBER_OF_SEQUENTIAL_VIEWS_IN_SESSION_DEFAULT);
724 setNumberOfFlashTokensInSession(
725 (INIT_PARAM_NUMBER_OF_VIEWS_IN_SESSION_DEFAULT /
726 INIT_PARAM_NUMBER_OF_SEQUENTIAL_VIEWS_IN_SESSION_DEFAULT)+1);
727 setSupportEL3ImportHandler(SUPPORT_EL_3_IMPORT_HANDLER_DEFAULT);
728 setStrictJsf2OriginHeaderAppPath(STRICT_JSF_2_ORIGIN_HEADER_APP_PATH_DEFAULT);
729 setAlwaysForceSessionCreation(ALWAYS_FORCE_SESSION_CREATION_DEFAULT);
730 }
731
732 private static MyfacesConfig createAndInitializeMyFacesConfig(ExternalContext extCtx)
733 {
734
735 MyfacesConfig myfacesConfig = new MyfacesConfig();
736
737 myfacesConfig.setPrettyHtml(getBooleanInitParameter(extCtx, INIT_PARAM_PRETTY_HTML,
738 INIT_PARAM_PRETTY_HTML_DEFAULT));
739 myfacesConfig.setAllowJavascript(getBooleanInitParameter(extCtx, INIT_PARAM_ALLOW_JAVASCRIPT,
740 INIT_PARAM_ALLOW_JAVASCRIPT_DEFAULT));
741
742 myfacesConfig.setRenderClearJavascriptOnButton(getBooleanInitParameter(extCtx,
743 INIT_PARAM_RENDER_CLEAR_JAVASCRIPT_FOR_BUTTON,
744 INIT_PARAM_RENDER_CLEAR_JAVASCRIPT_FOR_BUTTON_DEFAULT));
745
746 myfacesConfig.setRenderHiddenFieldsForLinkParams(getBooleanInitParameter(extCtx,
747 INIT_PARAM_RENDER_HIDDEN_FIELDS_FOR_LINK_PARAMS,
748 INIT_PARAM_RENDER_HIDDEN_FIELDS_FOR_LINK_PARAMS_DEFAULT));
749
750 myfacesConfig.setSaveFormSubmitLinkIE(getBooleanInitParameter(extCtx, INIT_PARAM_SAVE_FORM_SUBMIT_LINK_IE,
751 INIT_PARAM_SAVE_FORM_SUBMIT_LINK_IE_DEFAULT));
752
753 myfacesConfig.setReadonlyAsDisabledForSelect(getBooleanInitParameter(extCtx,
754 INIT_READONLY_AS_DISABLED_FOR_SELECT,
755 INIT_READONLY_AS_DISABLED_FOR_SELECT_DEFAULT));
756 myfacesConfig.setRenderViewStateId(getBooleanInitParameter(extCtx, INIT_PARAM_RENDER_VIEWSTATE_ID,
757 INIT_PARAM_RENDER_VIEWSTATE_ID_DEFAULT));
758 myfacesConfig.setStrictXhtmlLinks(getBooleanInitParameter(extCtx, INIT_PARAM_STRICT_XHTML_LINKS,
759 INIT_PARAM_STRICT_XHTML_LINKS_DEFAULT));
760 myfacesConfig.setRenderFormSubmitScriptInline(getBooleanInitParameter(extCtx,
761 INIT_PARAM_RENDER_FORM_SUBMIT_SCRIPT_INLINE,
762 INIT_PARAM_RENDER_FORM_SUBMIT_SCRIPT_INLINE_DEFAULT));
763
764 myfacesConfig.setConfigRefreshPeriod(getLongInitParameter(extCtx, INIT_PARAM_CONFIG_REFRESH_PERIOD,
765 INIT_PARAM_CONFIG_REFRESH_PERIOD_DEFAULT));
766
767 myfacesConfig.setViewStateJavascript(getBooleanInitParameter(extCtx, INIT_PARAM_VIEWSTATE_JAVASCRIPT,
768 INIT_PARAM_VIEWSTATE_JAVASCRIPT_DEFAULT));
769
770 myfacesConfig.setDelegateFacesServlet(extCtx.getInitParameter(INIT_PARAM_DELEGATE_FACES_SERVLET));
771
772 String refreshTransientBuildOnPSS = getStringInitParameter(extCtx,
773 INIT_PARAM_REFRESH_TRANSIENT_BUILD_ON_PSS,
774 INIT_PARAM_REFRESH_TRANSIENT_BUILD_ON_PSS_DEFAULT);
775
776 if (refreshTransientBuildOnPSS == null)
777 {
778 myfacesConfig.setRefreshTransientBuildOnPSS(false);
779 myfacesConfig.setRefreshTransientBuildOnPSSAuto(false);
780 }
781 else if ("auto".equalsIgnoreCase(refreshTransientBuildOnPSS))
782 {
783 myfacesConfig.setRefreshTransientBuildOnPSS(true);
784 myfacesConfig.setRefreshTransientBuildOnPSSAuto(true);
785 }
786 else if (refreshTransientBuildOnPSS.equalsIgnoreCase("true") ||
787 refreshTransientBuildOnPSS.equalsIgnoreCase("on") ||
788 refreshTransientBuildOnPSS.equalsIgnoreCase("yes"))
789 {
790 myfacesConfig.setRefreshTransientBuildOnPSS(true);
791 myfacesConfig.setRefreshTransientBuildOnPSSAuto(false);
792 }
793 else
794 {
795 myfacesConfig.setRefreshTransientBuildOnPSS(false);
796 myfacesConfig.setRefreshTransientBuildOnPSSAuto(false);
797 }
798
799 myfacesConfig.setRefreshTransientBuildOnPSSPreserveState(getBooleanInitParameter(extCtx,
800 INIT_PARAM_REFRESH_TRANSIENT_BUILD_ON_PSS_PRESERVE_STATE,
801 INIT_PARAM_REFRESH_TRANSIENT_BUILD_ON_PSS_PRESERVE_STATE_DEFAULT));
802
803 myfacesConfig.setValidateXML(getBooleanInitParameter(extCtx, INIT_PARAM_VALIDATE_XML,
804 INIT_PARAM_VALIDATE_XML_DEFAULT));
805
806 myfacesConfig.setWrapScriptContentWithXmlCommentTag(getBooleanInitParameter(extCtx,
807 INIT_PARAM_WRAP_SCRIPT_CONTENT_WITH_XML_COMMENT_TAG,
808 INIT_PARAM_WRAP_SCRIPT_CONTENT_WITH_XML_COMMENT_TAG_DEFAULT));
809
810 myfacesConfig.setDebugPhaseListenerEnabled(getBooleanInitParameter(extCtx, INIT_PARAM_DEBUG_PHASE_LISTENER,
811 INIT_PARAM_DEBUG_PHASE_LISTENER_DEFAULT));
812
813 myfacesConfig.setStrictJsf2RefreshTargetAjax(WebConfigParamUtils.getBooleanInitParameter(extCtx,
814 INIT_PARAM_STRICT_JSF_2_REFRESH_TARGET_AJAX, INIT_PARAM_STRICT_JSF_2_REFRESH_TARGET_AJAX_DEFAULT));
815
816 myfacesConfig.setStrictJsf2CCELResolver(WebConfigParamUtils.getBooleanInitParameter(extCtx,
817 INIT_PARAM_STRICT_JSF_2_CC_EL_RESOLVER, INIT_PARAM_STRICT_JSF_2_CC_EL_RESOLVER_DEFAULT));
818
819 myfacesConfig.setDefaultResponseWriterContentTypeMode(WebConfigParamUtils.getStringInitParameter(
820 extCtx, INIT_PARAM_DEFAULT_RESPONSE_WRITER_CONTENT_TYPE_MODE,
821 INIT_PARAM_DEFAULT_RESPONSE_WRITER_CONTENT_TYPE_MODE_DEFAULT));
822
823 myfacesConfig.setViewUniqueIdsCacheEnabled(WebConfigParamUtils.getBooleanInitParameter(extCtx,
824 INIT_PARAM_VIEW_UNIQUE_IDS_CACHE_ENABLED, INIT_PARAM_VIEW_UNIQUE_IDS_CACHE_ENABLED_DEFAULT));
825 myfacesConfig.setComponentUniqueIdsCacheSize(
826 WebConfigParamUtils.getIntegerInitParameter(extCtx,
827 INIT_PARAM_COMPONENT_UNIQUE_IDS_CACHE_SIZE,
828 INIT_PARAM_COMPONENT_UNIQUE_IDS_CACHE_SIZE_DEFAULT));
829 myfacesConfig.setSupportJSPAndFacesEL(WebConfigParamUtils.getBooleanInitParameter(extCtx,
830 INIT_PARAM_SUPPORT_JSP_AND_FACES_EL, INIT_PARAM_SUPPORT_JSP_AND_FACES_EL_DEFAULT));
831
832 myfacesConfig.setGaeJsfJarFiles(WebConfigParamUtils.getStringInitParameter(extCtx,
833 INIT_PARAM_GAE_JSF_JAR_FILES, INIT_PARAM_GAE_JSF_JAR_FILES_DEFAULT));
834 myfacesConfig.setGaeJsfAnnotationsJarFiles(WebConfigParamUtils.getStringInitParameter(extCtx,
835 INIT_PARAM_GAE_JSF_ANNOTATIONS_JAR_FILES, INIT_PARAM_GAE_JSF_ANNOTATIONS_JAR_FILES_DEFAULT));
836
837 myfacesConfig.setStrictJsf2ViewNotFound(WebConfigParamUtils.getBooleanInitParameter(extCtx,
838 INIT_PARAM_STRICT_JSF_2_VIEW_NOT_FOUND, INIT_PARAM_STRICT_JSF_2_VIEW_NOT_FOUND_DEFAULT));
839
840 myfacesConfig.setEarlyFlushEnabled(WebConfigParamUtils.getBooleanInitParameter(extCtx,
841 INIT_PARAM_EARLY_FLUSH_ENABLED, INIT_PARAM_EARLY_FLUSH_ENABLED_DEFAULT));
842
843 myfacesConfig.setCdiManagedConvertersEnabled(WebConfigParamUtils.getBooleanInitParameter(extCtx,
844 INIT_PARAM_CDI_MANAGED_CONVERTERS_ENABLED, INIT_PARAM_CDI_MANAGED_CONVERTERS_DEFAULT));
845 myfacesConfig.setCdiManagedValidatorsEnabled(WebConfigParamUtils.getBooleanInitParameter(extCtx,
846 INIT_PARAM_CDI_MANAGED_VALIDATORS_ENABLED, INIT_PARAM_CDI_MANAGED_VALIDATORS_DEFAULT));
847
848 myfacesConfig.setStrictJsf2FaceletsCompatibility(WebConfigParamUtils.getBooleanInitParameter(extCtx,
849 INIT_PARAM_STRICT_JSF_2_FACELETS_COMPATIBILITY,
850 INIT_PARAM_STRICT_JSF_2_FACELETS_COMPATIBILITY_DEFAULT));
851
852 myfacesConfig.setRenderFormViewStateAtBegin(WebConfigParamUtils.getBooleanInitParameter(extCtx,
853 INIT_PARAM_RENDER_FORM_VIEW_STATE_AT_BEGIN,
854 INIT_PARAM_RENDER_FORM_VIEW_STATE_AT_BEGIN_DEFAULT));
855
856 myfacesConfig.setFlashScopeDisabled(WebConfigParamUtils.getBooleanInitParameter(extCtx,
857 INIT_PARAM_FLASH_SCOPE_DISABLED,
858 INIT_PARAM_FLASH_SCOPE_DISABLED_DEFAULT));
859
860 try
861 {
862 myfacesConfig.setNumberOfSequentialViewsInSession(WebConfigParamUtils.getIntegerInitParameter(
863 extCtx,
864 INIT_PARAM_NUMBER_OF_SEQUENTIAL_VIEWS_IN_SESSION,
865 INIT_PARAM_NUMBER_OF_SEQUENTIAL_VIEWS_IN_SESSION_DEFAULT));
866 Integer views = myfacesConfig.getNumberOfSequentialViewsInSession();
867 if (views == null || views < 0)
868 {
869 Logger.getLogger(MyfacesConfig.class.getName()).severe(
870 "Configured value for " + INIT_PARAM_NUMBER_OF_SEQUENTIAL_VIEWS_IN_SESSION
871 + " is not valid, must be an value >= 0, using default value ("
872 + INIT_PARAM_NUMBER_OF_SEQUENTIAL_VIEWS_IN_SESSION_DEFAULT);
873 views = INIT_PARAM_NUMBER_OF_SEQUENTIAL_VIEWS_IN_SESSION_DEFAULT;
874 }
875 }
876 catch (Throwable e)
877 {
878 Logger.getLogger(MyfacesConfig.class.getName()).log(Level.SEVERE, "Error determining the value for "
879 + INIT_PARAM_NUMBER_OF_SEQUENTIAL_VIEWS_IN_SESSION
880 + ", expected an integer value > 0, using default value ("
881 + INIT_PARAM_NUMBER_OF_SEQUENTIAL_VIEWS_IN_SESSION_DEFAULT + "): " + e.getMessage(), e);
882 }
883 try
884 {
885 myfacesConfig.setNumberOfViewsInSession(WebConfigParamUtils.getIntegerInitParameter(
886 extCtx,
887 INIT_PARAM_NUMBER_OF_VIEWS_IN_SESSION,
888 INIT_PARAM_NUMBER_OF_VIEWS_IN_SESSION_DEFAULT));
889 Integer views = myfacesConfig.getNumberOfViewsInSession();
890 if (views == null || views <= 0)
891 {
892 Logger.getLogger(MyfacesConfig.class.getName()).severe(
893 "Configured value for " + INIT_PARAM_NUMBER_OF_VIEWS_IN_SESSION
894 + " is not valid, must be an value > 0, using default value ("
895 + INIT_PARAM_NUMBER_OF_VIEWS_IN_SESSION_DEFAULT);
896 views = INIT_PARAM_NUMBER_OF_VIEWS_IN_SESSION_DEFAULT;
897 }
898 }
899 catch (Throwable e)
900 {
901 Logger.getLogger(MyfacesConfig.class.getName()).log(Level.SEVERE, "Error determining the value for "
902 + INIT_PARAM_NUMBER_OF_VIEWS_IN_SESSION
903 + ", expected an integer value > 0, using default value ("
904 + INIT_PARAM_NUMBER_OF_VIEWS_IN_SESSION_DEFAULT + "): " + e.getMessage(), e);
905 }
906
907 Integer numberOfFlashTokensInSessionDefault;
908 Integer i = myfacesConfig.getNumberOfSequentialViewsInSession();
909 int j = myfacesConfig.getNumberOfViewsInSession();
910 if (i != null && i.intValue() > 0)
911 {
912 numberOfFlashTokensInSessionDefault = (j / i.intValue()) + 1;
913 }
914 else
915 {
916 numberOfFlashTokensInSessionDefault = j + 1;
917 }
918 myfacesConfig.setNumberOfFlashTokensInSession(WebConfigParamUtils.getIntegerInitParameter(
919 extCtx,
920 INIT_PARAM_NUMBER_OF_FLASH_TOKENS_IN_SESSION, numberOfFlashTokensInSessionDefault));
921 myfacesConfig.setNumberOfFacesFlowClientWindowIdsInSession(WebConfigParamUtils.getIntegerInitParameter(
922 extCtx,
923 INIT_PARAM_NUMBER_OF_FACES_FLOW_CLIENT_WINDOW_IDS_IN_SESSION,
924 numberOfFlashTokensInSessionDefault));
925
926 myfacesConfig.setSupportEL3ImportHandler(WebConfigParamUtils.getBooleanInitParameter(extCtx,
927 SUPPORT_EL_3_IMPORT_HANDLER,
928 SUPPORT_EL_3_IMPORT_HANDLER_DEFAULT));
929
930 myfacesConfig.setStrictJsf2OriginHeaderAppPath(WebConfigParamUtils.getBooleanInitParameter(extCtx,
931 STRICT_JSF_2_ORIGIN_HEADER_APP_PATH,
932 STRICT_JSF_2_ORIGIN_HEADER_APP_PATH_DEFAULT));
933
934 myfacesConfig.setAlwaysForceSessionCreation(WebConfigParamUtils.getBooleanInitParameter(extCtx,
935 ALWAYS_FORCE_SESSION_CREATION,
936 ALWAYS_FORCE_SESSION_CREATION_DEFAULT));
937
938 if (TOMAHAWK_AVAILABLE)
939 {
940 myfacesConfig.setDetectJavascript(getBooleanInitParameter(extCtx, INIT_PARAM_DETECT_JAVASCRIPT,
941 INIT_PARAM_DETECT_JAVASCRIPT_DEFAULT));
942 myfacesConfig.setAutoScroll(getBooleanInitParameter(extCtx, INIT_PARAM_AUTO_SCROLL,
943 INIT_PARAM_AUTO_SCROLL_DEFAULT));
944
945 myfacesConfig.setAddResourceClass(getStringInitParameter(extCtx, INIT_PARAM_ADD_RESOURCE_CLASS,
946 INIT_PARAM_ADD_RESOURCE_CLASS_DEFAULT));
947 myfacesConfig.setResourceVirtualPath(getStringInitParameter(extCtx, INIT_PARAM_RESOURCE_VIRTUAL_PATH,
948 INIT_PARAM_RESOURCE_VIRTUAL_PATH_DEFAULT));
949
950 myfacesConfig.setCheckExtensionsFilter(getBooleanInitParameter(extCtx, INIT_CHECK_EXTENSIONS_FILTER,
951 INIT_CHECK_EXTENSIONS_FILTER_DEFAULT));
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968 }
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985 return myfacesConfig;
986 }
987
988 private static boolean getBooleanInitParameter(ExternalContext externalContext,
989 String paramName,
990 boolean defaultValue)
991 {
992 String strValue = externalContext.getInitParameter(paramName);
993 if (strValue == null)
994 {
995
996
997 return defaultValue;
998 }
999 else if (strValue.equalsIgnoreCase("true") || strValue.equalsIgnoreCase("on") ||
1000 strValue.equalsIgnoreCase("yes"))
1001 {
1002 return true;
1003 }
1004 else if (strValue.equalsIgnoreCase("false") || strValue.equalsIgnoreCase("off") ||
1005 strValue.equalsIgnoreCase("no"))
1006 {
1007 return false;
1008 }
1009 else
1010 {
1011
1012
1013 return defaultValue;
1014 }
1015 }
1016
1017 private static String getStringInitParameter(ExternalContext externalContext,
1018 String paramName,
1019 String defaultValue)
1020 {
1021 String strValue = externalContext.getInitParameter(paramName);
1022 if (strValue == null)
1023 {
1024
1025
1026
1027 return defaultValue;
1028 }
1029
1030 return strValue;
1031 }
1032
1033 private static long getLongInitParameter(ExternalContext externalContext,
1034 String paramName,
1035 long defaultValue)
1036 {
1037 String strValue = externalContext.getInitParameter(paramName);
1038 if (strValue == null)
1039 {
1040
1041
1042 return defaultValue;
1043 }
1044 else
1045 {
1046 try
1047 {
1048 return Long.parseLong(strValue);
1049 }
1050 catch (NumberFormatException e)
1051 {
1052
1053
1054 }
1055 return defaultValue;
1056 }
1057 }
1058
1059 private void setResourceVirtualPath( String resourceVirtualPath )
1060 {
1061 this._resourceVirtualPath = resourceVirtualPath;
1062 }
1063
1064 public String getResourceVirtualPath()
1065 {
1066 return this._resourceVirtualPath;
1067 }
1068
1069 public boolean isPrettyHtml()
1070 {
1071 return _prettyHtml;
1072 }
1073
1074 private void setPrettyHtml(boolean prettyHtml)
1075 {
1076 _prettyHtml = prettyHtml;
1077 }
1078
1079 public boolean isDetectJavascript()
1080 {
1081 return _detectJavascript;
1082 }
1083
1084 private void setDetectJavascript(boolean detectJavascript)
1085 {
1086 _detectJavascript = detectJavascript;
1087 }
1088
1089 private void setReadonlyAsDisabledForSelect(boolean readonlyAsDisabledForSelect)
1090 {
1091 _readonlyAsDisabledForSelect = readonlyAsDisabledForSelect;
1092 }
1093
1094 public boolean isReadonlyAsDisabledForSelect()
1095 {
1096 return _readonlyAsDisabledForSelect;
1097 }
1098
1099
1100 public long getConfigRefreshPeriod()
1101 {
1102 return _configRefreshPeriod;
1103 }
1104
1105 public void setConfigRefreshPeriod(long configRefreshPeriod)
1106 {
1107 _configRefreshPeriod = configRefreshPeriod;
1108 }
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123 public boolean isRenderViewStateId()
1124 {
1125 return _renderViewStateId;
1126 }
1127
1128 public void setRenderViewStateId(boolean renderViewStateId)
1129 {
1130 _renderViewStateId = renderViewStateId;
1131 }
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147 public boolean isStrictXhtmlLinks()
1148 {
1149 return _strictXhtmlLinks;
1150 }
1151
1152 public void setStrictXhtmlLinks(boolean strictXhtmlLinks)
1153 {
1154 _strictXhtmlLinks = strictXhtmlLinks;
1155 }
1156
1157 public boolean isTomahawkAvailable()
1158 {
1159 return TOMAHAWK_AVAILABLE;
1160 }
1161
1162 public boolean isMyfacesImplAvailable()
1163 {
1164 return MYFACES_IMPL_AVAILABLE;
1165 }
1166
1167 public boolean isRiImplAvailable()
1168 {
1169 return RI_IMPL_AVAILABLE;
1170 }
1171
1172
1173
1174
1175
1176
1177 public boolean isAllowJavascript()
1178 {
1179 return _allowJavascript;
1180 }
1181
1182 private void setAllowJavascript(boolean allowJavascript)
1183 {
1184 _allowJavascript = allowJavascript;
1185 }
1186
1187 public boolean isAutoScroll()
1188 {
1189 return _autoScroll;
1190 }
1191
1192 private void setAutoScroll(boolean autoScroll)
1193 {
1194 _autoScroll = autoScroll;
1195 }
1196
1197 private void setAddResourceClass(String addResourceClass)
1198 {
1199 _addResourceClass = addResourceClass;
1200 }
1201
1202 public String getAddResourceClass()
1203 {
1204 return _addResourceClass;
1205 }
1206
1207
1208
1209
1210
1211 public static String getAddResourceClassFromServletContext(ServletContext servletContext)
1212 {
1213 String addResourceClass = servletContext.getInitParameter(INIT_PARAM_ADD_RESOURCE_CLASS);
1214
1215 return addResourceClass == null ? INIT_PARAM_ADD_RESOURCE_CLASS_DEFAULT : addResourceClass;
1216 }
1217
1218
1219
1220
1221 public boolean isCheckExtensionsFilter()
1222 {
1223 return _checkExtensionsFilter;
1224 }
1225
1226 public void setCheckExtensionsFilter(boolean extensionsFilter)
1227 {
1228 _checkExtensionsFilter = extensionsFilter;
1229 }
1230
1231
1232
1233
1234 public boolean isViewStateJavascript()
1235 {
1236 return _viewStateJavascript;
1237 }
1238
1239 private void setViewStateJavascript(boolean viewStateJavascript)
1240 {
1241 _viewStateJavascript = viewStateJavascript;
1242 }
1243
1244 public void setRenderClearJavascriptOnButton(
1245 boolean renderClearJavascriptOnButton)
1246 {
1247 _renderClearJavascriptOnButton = renderClearJavascriptOnButton;
1248 }
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258 public boolean isRenderClearJavascriptOnButton()
1259 {
1260 return _renderClearJavascriptOnButton;
1261 }
1262
1263 public boolean isRenderHiddenFieldsForLinkParams()
1264 {
1265 return renderHiddenFieldsForLinkParams;
1266 }
1267
1268 public void setRenderHiddenFieldsForLinkParams(
1269 boolean renderHiddenFieldsForLinkParams)
1270 {
1271 this.renderHiddenFieldsForLinkParams = renderHiddenFieldsForLinkParams;
1272 }
1273
1274 public void setSaveFormSubmitLinkIE(boolean saveFormSubmitLinkIE)
1275 {
1276 _saveFormSubmitLinkIE = saveFormSubmitLinkIE;
1277 }
1278
1279
1280
1281
1282
1283
1284
1285 public boolean isSaveFormSubmitLinkIE()
1286 {
1287 return _saveFormSubmitLinkIE;
1288 }
1289
1290 public String getDelegateFacesServlet()
1291 {
1292 return _delegateFacesServlet;
1293 }
1294
1295 public void setDelegateFacesServlet(String delegateFacesServlet)
1296 {
1297 _delegateFacesServlet = delegateFacesServlet;
1298 }
1299
1300 public boolean isRefreshTransientBuildOnPSS()
1301 {
1302 return _refreshTransientBuildOnPSS;
1303 }
1304
1305 public void setRefreshTransientBuildOnPSS(boolean refreshTransientBuildOnPSS)
1306 {
1307 this._refreshTransientBuildOnPSS = refreshTransientBuildOnPSS;
1308 }
1309
1310 public boolean isRefreshTransientBuildOnPSSAuto()
1311 {
1312 return _refreshTransientBuildOnPSSAuto;
1313 }
1314
1315 public void setRefreshTransientBuildOnPSSAuto(
1316 boolean refreshTransientBuildOnPSSAuto)
1317 {
1318 this._refreshTransientBuildOnPSSAuto = refreshTransientBuildOnPSSAuto;
1319 }
1320
1321 public boolean isRefreshTransientBuildOnPSSPreserveState()
1322 {
1323 return refreshTransientBuildOnPSSPreserveState;
1324 }
1325
1326 public void setRefreshTransientBuildOnPSSPreserveState(
1327 boolean refreshTransientBuildOnPSSPreserveState)
1328 {
1329 this.refreshTransientBuildOnPSSPreserveState = refreshTransientBuildOnPSSPreserveState;
1330 }
1331
1332 public boolean isValidateXML()
1333 {
1334 return _validateXML;
1335 }
1336
1337 public void setValidateXML(boolean validateXML)
1338 {
1339 _validateXML = validateXML;
1340 }
1341
1342 public boolean isWrapScriptContentWithXmlCommentTag()
1343 {
1344 return _wrapScriptContentWithXmlCommentTag;
1345 }
1346
1347 public void setWrapScriptContentWithXmlCommentTag(
1348 boolean wrapScriptContentWithXmlCommentTag)
1349 {
1350 this._wrapScriptContentWithXmlCommentTag = wrapScriptContentWithXmlCommentTag;
1351 }
1352
1353 public boolean isRenderFormSubmitScriptInline()
1354 {
1355 return _renderFormSubmitScriptInline;
1356 }
1357
1358 public void setRenderFormSubmitScriptInline(
1359 boolean renderFormSubmitScriptInline)
1360 {
1361 _renderFormSubmitScriptInline = renderFormSubmitScriptInline;
1362 }
1363
1364 public boolean isDebugPhaseListenerEnabled()
1365 {
1366 return _debugPhaseListenerEnabled;
1367 }
1368
1369 public void setDebugPhaseListenerEnabled(boolean debugPhaseListener)
1370 {
1371 this._debugPhaseListenerEnabled = debugPhaseListener;
1372 }
1373
1374 public boolean isStrictJsf2RefreshTargetAjax()
1375 {
1376 return _strictJsf2RefreshTargetAjax;
1377 }
1378
1379 public void setStrictJsf2RefreshTargetAjax(boolean strictJsf2RefreshTargetAjax)
1380 {
1381 this._strictJsf2RefreshTargetAjax = strictJsf2RefreshTargetAjax;
1382 }
1383
1384 public boolean isStrictJsf2CCELResolver()
1385 {
1386 return _strictJsf2CCELResolver;
1387 }
1388
1389 public void setStrictJsf2CCELResolver(boolean strictJsf2CCELResolver)
1390 {
1391 this._strictJsf2CCELResolver = strictJsf2CCELResolver;
1392 }
1393
1394 public String getDefaultResponseWriterContentTypeMode()
1395 {
1396 return _defaultResponseWriterContentTypeMode;
1397 }
1398
1399 public void setDefaultResponseWriterContentTypeMode(
1400 String defaultResponseWriterContentTypeMode)
1401 {
1402 this._defaultResponseWriterContentTypeMode = defaultResponseWriterContentTypeMode;
1403 }
1404
1405 public boolean isViewUniqueIdsCacheEnabled()
1406 {
1407 return _viewUniqueIdsCacheEnabled;
1408 }
1409
1410 public void setViewUniqueIdsCacheEnabled(boolean viewUniqueIdsCacheEnabled)
1411 {
1412 _viewUniqueIdsCacheEnabled = viewUniqueIdsCacheEnabled;
1413 }
1414
1415 public boolean isSupportJSPAndFacesEL()
1416 {
1417 return _supportJSPAndFacesEL;
1418 }
1419
1420 public void setSupportJSPAndFacesEL(
1421 boolean supportJSPANDFacesEL)
1422 {
1423 _supportJSPAndFacesEL = supportJSPANDFacesEL;
1424 }
1425
1426 public int getComponentUniqueIdsCacheSize()
1427 {
1428 return _componentUniqueIdsCacheSize;
1429 }
1430
1431 public void setComponentUniqueIdsCacheSize(int componentUniqueIdsCacheSize)
1432 {
1433 this._componentUniqueIdsCacheSize = componentUniqueIdsCacheSize;
1434 }
1435
1436 public String getGaeJsfJarFiles()
1437 {
1438 return _gaeJsfJarFiles;
1439 }
1440
1441 public void setGaeJsfJarFiles(String gaeJsfJarFiles)
1442 {
1443 this._gaeJsfJarFiles = gaeJsfJarFiles;
1444 }
1445
1446 public String getGaeJsfAnnotationsJarFiles()
1447 {
1448 return _gaeJsfAnnotationsJarFiles;
1449 }
1450
1451 public void setGaeJsfAnnotationsJarFiles(String gaeJsfAnnotationsJarFiles)
1452 {
1453 this._gaeJsfAnnotationsJarFiles = gaeJsfAnnotationsJarFiles;
1454 }
1455
1456 public boolean isStrictJsf2ViewNotFound()
1457 {
1458 return _strictJsf2ViewNotFound;
1459 }
1460
1461 public void setStrictJsf2ViewNotFound(boolean strictJsf2ViewNotFound)
1462 {
1463 this._strictJsf2ViewNotFound = strictJsf2ViewNotFound;
1464 }
1465
1466 public boolean isEarlyFlushEnabled()
1467 {
1468 return _earlyFlushEnabled;
1469 }
1470
1471 public void setEarlyFlushEnabled(boolean earlyFlushEnabled)
1472 {
1473 this._earlyFlushEnabled = earlyFlushEnabled;
1474 }
1475
1476 public boolean isCdiManagedConvertersEnabled()
1477 {
1478 return _cdiManagedConvertersEnabled;
1479 }
1480
1481 public void setCdiManagedConvertersEnabled(boolean cdiManagedConvertersEnabled)
1482 {
1483 this._cdiManagedConvertersEnabled = cdiManagedConvertersEnabled;
1484 }
1485
1486 public boolean isCdiManagedValidatorsEnabled()
1487 {
1488 return _cdiManagedValidatorsEnabled;
1489 }
1490
1491 public void setCdiManagedValidatorsEnabled(boolean cdiManagedValidatorsEnabled)
1492 {
1493 this._cdiManagedValidatorsEnabled = cdiManagedValidatorsEnabled;
1494 }
1495
1496 public boolean isStrictJsf2FaceletsCompatibility()
1497 {
1498 return _strictJsf2FaceletsCompatibility;
1499 }
1500
1501 public void setStrictJsf2FaceletsCompatibility(boolean strictJsf2FaceletsCompatibility)
1502 {
1503 this._strictJsf2FaceletsCompatibility = strictJsf2FaceletsCompatibility;
1504 }
1505
1506 public boolean isRenderFormViewStateAtBegin()
1507 {
1508 return _renderFormViewStateAtBegin;
1509 }
1510
1511 public void setRenderFormViewStateAtBegin(boolean renderFormViewStateAtBegin)
1512 {
1513 this._renderFormViewStateAtBegin = renderFormViewStateAtBegin;
1514 }
1515
1516 public boolean isFlashScopeDisabled()
1517 {
1518 return _flashScopeDisabled;
1519 }
1520
1521 public void setFlashScopeDisabled(boolean flashScopeDisabled)
1522 {
1523 this._flashScopeDisabled = flashScopeDisabled;
1524 }
1525
1526
1527
1528
1529 public Integer getNumberOfViewsInSession()
1530 {
1531 return _numberOfViewsInSession;
1532 }
1533
1534
1535
1536
1537 public void setNumberOfViewsInSession(Integer numberOfViewsInSession)
1538 {
1539 this._numberOfViewsInSession = numberOfViewsInSession;
1540 }
1541
1542
1543
1544
1545 public Integer getNumberOfSequentialViewsInSession()
1546 {
1547 return _numberOfSequentialViewsInSession;
1548 }
1549
1550
1551
1552
1553 public void setNumberOfSequentialViewsInSession(Integer numberOfSequentialViewsInSession)
1554 {
1555 this._numberOfSequentialViewsInSession = numberOfSequentialViewsInSession;
1556 }
1557
1558
1559
1560
1561 public Integer getNumberOfFlashTokensInSession()
1562 {
1563 return _numberOfFlashTokensInSession;
1564 }
1565
1566
1567
1568
1569 public void setNumberOfFlashTokensInSession(Integer numberOfFlashTokensInSession)
1570 {
1571 this._numberOfFlashTokensInSession = numberOfFlashTokensInSession;
1572 }
1573
1574
1575
1576
1577 public Integer getNumberOfFacesFlowClientWindowIdsInSession()
1578 {
1579 return _numberOfFacesFlowClientWindowIdsInSession;
1580 }
1581
1582
1583
1584
1585 public void setNumberOfFacesFlowClientWindowIdsInSession(Integer numberOfFacesFlowClientWindowIdsInSession)
1586 {
1587 this._numberOfFacesFlowClientWindowIdsInSession = numberOfFacesFlowClientWindowIdsInSession;
1588 }
1589
1590
1591
1592
1593 public boolean isSupportEL3ImportHandler()
1594 {
1595 return _supportEL3ImportHandler;
1596 }
1597
1598
1599
1600
1601 public void setSupportEL3ImportHandler(boolean supportEL3ImportHandler)
1602 {
1603 this._supportEL3ImportHandler = supportEL3ImportHandler;
1604 }
1605
1606 public boolean isStrictJsf2OriginHeaderAppPath()
1607 {
1608 return _strictJsf2OriginHeaderAppPath;
1609 }
1610
1611 public void setStrictJsf2OriginHeaderAppPath(boolean strictJsf2OriginHeaderAppPath)
1612 {
1613 this._strictJsf2OriginHeaderAppPath = strictJsf2OriginHeaderAppPath;
1614 }
1615
1616 public boolean isAlwaysForceSessionCreation()
1617 {
1618 return _alwaysForceSessionCreation;
1619 }
1620
1621
1622
1623
1624 public void setAlwaysForceSessionCreation(boolean alwaysForceSessionCreation)
1625 {
1626 this._alwaysForceSessionCreation = alwaysForceSessionCreation;
1627 }
1628 }