1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.spi.impl;
20
21 import javax.faces.context.ExternalContext;
22 import org.apache.myfaces.shared.util.ClassUtils;
23 import org.apache.myfaces.spi.ViewScopeProvider;
24 import org.apache.myfaces.spi.ViewScopeProviderFactory;
25 import org.apache.myfaces.util.ExternalSpecifications;
26 import org.apache.myfaces.view.impl.DefaultViewScopeHandler;
27
28
29
30
31
32 public class DefaultViewScopeProviderFactory extends ViewScopeProviderFactory
33 {
34
35 public static final String VIEW_SCOPE_HANDLER = ViewScopeProvider.class.getName();
36 public static final String VIEW_SCOPE_HANDLER_INSTANCE_KEY = VIEW_SCOPE_HANDLER + ".INSTANCE";
37
38 @Override
39 public ViewScopeProvider getViewScopeHandler(ExternalContext externalContext)
40 {
41
42 ViewScopeProvider returnValue = (ViewScopeProvider)
43 externalContext.getApplicationMap().get(VIEW_SCOPE_HANDLER_INSTANCE_KEY);
44
45 if (returnValue == null)
46 {
47 if (ExternalSpecifications.isCDIAvailable(externalContext))
48 {
49 returnValue = (ViewScopeProvider) ClassUtils.newInstance(
50 "org.apache.myfaces.cdi.impl.CDIManagedBeanHandlerImpl");
51
52 }
53 else
54 {
55 returnValue = new DefaultViewScopeHandler();
56 }
57
58 externalContext.getApplicationMap().put(VIEW_SCOPE_HANDLER_INSTANCE_KEY, returnValue);
59 }
60
61 return returnValue;
62 }
63
64 @Override
65 public void setViewScopeHandler(ExternalContext externalContext, ViewScopeProvider viewScopeHandler)
66 {
67 externalContext.getApplicationMap().put(VIEW_SCOPE_HANDLER_INSTANCE_KEY, viewScopeHandler);
68 }
69 }