2 using System.Collections.Generic;
\r
5 using javax.faces.component;
\r
7 using javax.faces.context;
\r
8 using javax.faces.lifecycle;
\r
10 using javax.servlet;
\r
11 using javax.faces.webapp;
\r
12 using javax.servlet.http;
\r
14 namespace Mainsoft.Web.Hosting
\r
16 class ServletFacesPageHandler : IHttpHandler
\r
18 readonly FacesContextFactory _facesContextFactory;
\r
19 readonly Lifecycle _lifecycle;
\r
20 readonly string _executionFilePath;
\r
22 public bool IsReusable {
\r
23 get { return false; }
\r
26 public ServletFacesPageHandler (string executionFilePath, FacesContextFactory facesContextFactory, Lifecycle lifecycle) {
\r
27 _facesContextFactory = facesContextFactory;
\r
28 _lifecycle = lifecycle;
\r
29 _executionFilePath = executionFilePath;
\r
32 public void ProcessRequest (HttpContext context) {
\r
33 ServletWorkerRequest wr = (ServletWorkerRequest) ((IServiceProvider) context).GetService (typeof (HttpWorkerRequest));
\r
34 ServletContext servletContext = wr.GetContext ();
\r
35 HttpServletRequest request = wr.ServletRequest;
\r
36 HttpServletResponse response = wr.ServletResponse;
\r
38 FacesContext facesContext = ServletFacesContext.GetFacesContext (_facesContextFactory, servletContext, request, response, _lifecycle, context, _executionFilePath);
\r
41 _lifecycle.execute (facesContext);
\r
43 Console.WriteLine ("FacesPageHandler: before render");
\r
45 _lifecycle.render (facesContext);
\r
47 Console.WriteLine ("FacesPageHandler: after render");
\r
50 catch (FacesException fex) {
\r
51 Exception inner = fex.InnerException;
\r
58 facesContext.release ();
\r