1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.orchestra.lib.jsf;
20
21 import javax.faces.FacesException;
22 import javax.faces.context.ExternalContext;
23 import javax.faces.context.FacesContext;
24
25 import org.apache.commons.logging.Log;
26 import org.apache.commons.logging.LogFactory;
27 import org.apache.myfaces.orchestra.CoreConfig;
28 import org.apache.myfaces.orchestra.frameworkAdapter.FrameworkAdapter;
29 import org.apache.myfaces.orchestra.frameworkAdapter.jsf.JsfFrameworkAdapter;
30
31
32
33
34
35
36 class FrameworkAdapterRequestHandler implements RequestHandler
37 {
38 private final static String CONVERSATION_MESSAGER_CLASS =
39 "org.apache.myfaces.orchestra.CONVERSATION_MESSAGER";
40
41 private final Log log = LogFactory.getLog(FrameworkAdapterRequestHandler.class);
42
43 private JsfFrameworkAdapter adapter;
44
45 public void init(FacesContext facesContext) throws FacesException
46 {
47 if (log.isDebugEnabled())
48 {
49 log.debug("init");
50 }
51
52 if (FrameworkAdapter.getCurrentInstance() == null)
53 {
54 if (log.isDebugEnabled())
55 {
56 log.debug("creating jsfFrameworkAdapter");
57 }
58
59 String conversationMessagerClass = getConversationMessagerClass(facesContext);
60 adapter = new JsfFrameworkAdapter(conversationMessagerClass);
61 adapter.beginRequest();
62 }
63 }
64
65 public void deinit() throws FacesException
66 {
67 if (adapter != null)
68 {
69 adapter.endRequest();
70 }
71 }
72
73 private static String getConversationMessagerClass(FacesContext facesContext)
74 {
75 ExternalContext ec = facesContext.getExternalContext();
76
77 String cn = ec.getInitParameter(CONVERSATION_MESSAGER_CLASS);
78 if (cn != null)
79 {
80 return cn;
81 }
82
83 cn = ec.getInitParameter(CoreConfig.CONVERSATION_MESSAGER);
84 return cn;
85 }
86 }