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 org.apache.myfaces.spi.FacesFlowProvider;
22 import org.apache.myfaces.spi.FacesFlowProviderFactory;
23 import javax.faces.context.ExternalContext;
24 import org.apache.myfaces.flow.impl.DefaultFacesFlowProvider;
25 import org.apache.myfaces.shared.util.ClassUtils;
26 import org.apache.myfaces.util.ExternalSpecifications;
27
28
29
30
31 public class DefaultFacesFlowProviderFactory extends FacesFlowProviderFactory
32 {
33
34 public static final String FACES_CONFIGURATION_MERGER = FacesFlowProvider.class.getName();
35 public static final String FACES_CONFIGURATION_MERGER_INSTANCE_KEY = FACES_CONFIGURATION_MERGER + ".INSTANCE";
36
37 @Override
38 public FacesFlowProvider getFacesFlowProvider(ExternalContext externalContext)
39 {
40
41 FacesFlowProvider returnValue = (FacesFlowProvider)
42 externalContext.getApplicationMap().get(FACES_CONFIGURATION_MERGER_INSTANCE_KEY);
43
44 if (returnValue == null)
45 {
46 if (ExternalSpecifications.isCDIAvailable(externalContext))
47 {
48 returnValue = (FacesFlowProvider) ClassUtils.newInstance(
49 "org.apache.myfaces.flow.cdi.DefaultCDIFacesFlowProvider");
50 }
51 else
52 {
53 returnValue = (FacesFlowProvider) new DefaultFacesFlowProvider();
54 }
55 }
56
57
58 return returnValue;
59 }
60
61 }