Package nsf.playground.playground

Source Code of nsf.playground.playground.PreviewServlet

package nsf.playground.playground;

import java.io.IOException;
import java.io.PrintWriter;

import javax.faces.FactoryFinder;
import javax.faces.application.ApplicationFactory;
import javax.faces.context.FacesContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.ibm.commons.util.StringUtil;
import com.ibm.domino.xsp.module.nsf.NotesContext;
import com.ibm.xsp.application.ApplicationEx;
import com.ibm.xsp.application.ApplicationFactoryEx;
import com.ibm.xsp.context.FacesContextEx;
import com.ibm.xsp.extlib.servlet.FacesContextServlet;


public class PreviewServlet extends FacesContextServlet {

  private static final long serialVersionUID = 1L;

  private PreviewJavaScriptHandler javaScriptHandler;
  private PreviewJavaHandler javaHandler;
  private PreviewXPagesHandler xpagesHandler;
  private PreviewGadgetHandler gadgetHandler;
  private PreviewExportHandler exportHandler;
  private PreviewImportHandler importHandler;
 
  public PreviewServlet() {
  }

  public PreviewHandler getJavaScriptSnippetHandler() {
    if(javaScriptHandler==null) {
      javaScriptHandler = new PreviewJavaScriptHandler();
    }
    return javaScriptHandler;
  }

  public PreviewHandler getJavaSnippetHandler() {
    if(javaHandler==null) {
      javaHandler = new PreviewJavaHandler();
    }
    return javaHandler;
  }

  public PreviewHandler getXPagesSnippetHandler() {
    if(xpagesHandler==null) {
      xpagesHandler = new PreviewXPagesHandler();
    }
    return xpagesHandler;
  }

  public PreviewHandler getGadgetSnippetHandler() {
    if(gadgetHandler==null) {
      gadgetHandler = new PreviewGadgetHandler();
    }
    return gadgetHandler;
  }

  public PreviewHandler getExportHandler() {
    if(exportHandler==null) {
      exportHandler = new PreviewExportHandler();
    }
    return exportHandler;
  }

  public PreviewHandler getImportHandler() {
    if(importHandler==null) {
      importHandler = new PreviewImportHandler();
    }
    return importHandler;
  }

  public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
    // Maybe this is an Ajax request and the application is not *yet* initialized
    // In this case, it is not a ApplicationEx
    ApplicationFactory f = (ApplicationFactoryEx )FactoryFinder.getFactory(FactoryFinder.APPLICATION_FACTORY);
    if(!(f.getApplication() instanceof ApplicationEx)) {
      emitError(servletResponse);
      return;
    }
   
    // Make sure that the JSF servlet is created and initialized
    NotesContext.getCurrent().getModule().getXspEngineServlet();
   
    // Create a temporary FacesContext and make it available
        FacesContext context = initContext(servletRequest, servletResponse);
        try {
        // Make sure that the app hasn't been discarded
        // If so, then we return a SERVICE_UNAVAILABLE error
          // Just for security
        ApplicationEx app = ((FacesContextEx)context).getApplicationEx();
        if(app.getController()==null) {
          emitError(servletResponse);
          return;
        }

        // Do whatever you need
            super.service(servletRequest, servletResponse);
        } finally {
            releaseContext(context);
        }
    }
  private void emitError(ServletResponse servletResponse) throws IOException {
    HttpServletResponse resp = (HttpServletResponse)servletResponse;
    resp.setStatus(HttpServletResponse.SC_SERVICE_UNAVAILABLE);
    resp.setContentType("text/html");
    PrintWriter w = resp.getWriter();
    w.println("The server session has expired. Please reload the main page to start a new session");
    w.flush();
  }

  @Override
  protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    // Dispatch to the right handler
    String pathInfo = req.getPathInfo();
    if(StringUtil.startsWithIgnoreCase(pathInfo, "/javascriptsnippet")) {
      getJavaScriptSnippetHandler().doService(req, resp);
    } else if(StringUtil.startsWithIgnoreCase(pathInfo, "/javasnippet")) {
      getJavaSnippetHandler().doService(req, resp);
    } else if(StringUtil.startsWithIgnoreCase(pathInfo, "/jsppage")) {
      getJavaSnippetHandler().doService(req, resp);
    } else if(StringUtil.startsWithIgnoreCase(pathInfo, "/xpagessnippet")) {
      getXPagesSnippetHandler().doService(req, resp);
    } else if(StringUtil.startsWithIgnoreCase(pathInfo, "/gadgetsnippet")) {
      getGadgetSnippetHandler().doService(req, resp);
    } else if(StringUtil.startsWithIgnoreCase(pathInfo, "/export")) {
      getExportHandler().doService(req, resp);
    } else if(StringUtil.startsWithIgnoreCase(pathInfo, "/import")) {
      getImportHandler().doService(req, resp);
    }
  }
}
TOP

Related Classes of nsf.playground.playground.PreviewServlet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.