[jboss-cvs] jboss-seam/src/main/org/jboss/seam/servlet ...

Gavin King gavin.king at jboss.com
Fri Jun 22 12:01:05 EDT 2007


  User: gavin   
  Date: 07/06/22 12:01:05

  Added:       src/main/org/jboss/seam/servlet 
                        ContextualHttpServletRequest.java
  Log:
  move package
  
  Revision  Changes    Path
  1.1      date: 2007/06/22 16:01:05;  author: gavin;  state: Exp;jboss-seam/src/main/org/jboss/seam/servlet/ContextualHttpServletRequest.java
  
  Index: ContextualHttpServletRequest.java
  ===================================================================
  package org.jboss.seam.servlet;
  
  import java.io.IOException;
  
  import javax.servlet.ServletException;
  import javax.servlet.http.HttpServletRequest;
  
  import org.jboss.seam.contexts.Lifecycle;
  import org.jboss.seam.contexts.ServletLifecycle;
  import org.jboss.seam.core.ConversationPropagation;
  import org.jboss.seam.core.Manager;
  import org.jboss.seam.log.LogProvider;
  import org.jboss.seam.log.Logging;
  import org.jboss.seam.web.ServletContexts;
  
  /**
   * Perform work in a full set of Seam contexts
   * 
   * @author Gavin King
   *
   */
  public abstract class ContextualHttpServletRequest
  {
     private static final LogProvider log = Logging.getLogProvider(ContextualHttpServletRequest.class);
  
     private final HttpServletRequest request;
     
     public ContextualHttpServletRequest(HttpServletRequest request)
     {
        this.request = request;
     }
     
     public abstract void process() throws Exception;
     
     public void run() throws ServletException, IOException
     {
        log.debug("beginning request");
        ServletLifecycle.beginRequest(request);
        ServletContexts.instance().setRequest(request);
        restoreConversationId();
        Manager.instance().restoreConversation();
        ServletLifecycle.resumeConversation(request);
        handleConversationPropagation();
        try
        {
           process();
           //TODO: conversation timeout
           Manager.instance().endRequest( new ServletRequestSessionMap(request)  );
           ServletLifecycle.endRequest(request);
        }
        catch (IOException ioe)
        {
           Lifecycle.endRequest();
           log.error("ended request due to exception", ioe);
           throw ioe;
        }
        catch (ServletException se)
        {
           Lifecycle.endRequest();
           log.error("ended request due to exception", se);
           throw se;
        }
        catch (Exception e)
        {
           Lifecycle.endRequest();
           log.error("ended request due to exception", e);
           throw new ServletException(e);
        }
        finally
        {
           log.debug("ended request");
        }
     }
  
     protected void handleConversationPropagation()
     {
        Manager.instance().handleConversationPropagation( request.getParameterMap() );
     }
  
     protected void restoreConversationId()
     {
        ConversationPropagation.instance().restoreConversationId( request.getParameterMap() );
     }
     
  }
  
  
  



More information about the jboss-cvs-commits mailing list