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

Gavin King gavin.king at jboss.com
Sat Feb 3 21:30:49 EST 2007


  User: gavin   
  Date: 07/02/03 21:30:49

  Modified:    src/main/org/jboss/seam/servlet     
                        SeamExceptionFilter.java SeamMultipartFilter.java
                        SeamRedirectFilter.java SeamServletFilter.java
  Added:       src/main/org/jboss/seam/servlet      SeamFilter.java
  Log:
  make redirect exception handling accept view ids
  
  Revision  Changes    Path
  1.23      +3 -14     jboss-seam/src/main/org/jboss/seam/servlet/SeamExceptionFilter.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: SeamExceptionFilter.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/servlet/SeamExceptionFilter.java,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -b -r1.22 -r1.23
  --- SeamExceptionFilter.java	4 Feb 2007 01:13:20 -0000	1.22
  +++ SeamExceptionFilter.java	4 Feb 2007 02:30:49 -0000	1.23
  @@ -8,10 +8,7 @@
   
   import java.io.IOException;
   
  -import javax.servlet.Filter;
   import javax.servlet.FilterChain;
  -import javax.servlet.FilterConfig;
  -import javax.servlet.ServletContext;
   import javax.servlet.ServletException;
   import javax.servlet.ServletRequest;
   import javax.servlet.ServletResponse;
  @@ -33,16 +30,10 @@
    * 
    * @author Gavin King
    */
  -public class SeamExceptionFilter implements Filter
  +public class SeamExceptionFilter extends SeamFilter
   {
      
      private static final LogProvider log = Logging.getLogProvider(SeamExceptionFilter.class);
  -   private ServletContext context;
  -
  -   public void init(FilterConfig cfg) throws ServletException 
  -   {
  -      context = cfg.getServletContext();
  -   }
   
      public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 
            throws IOException, ServletException
  @@ -80,7 +71,7 @@
         //the FacesContext is gone - create a fake one for Redirect and HttpError to call
         MockFacesContext facesContext = createFacesContext(request, response);
         facesContext.setCurrent();
  -      Lifecycle.beginExceptionRecovery(context, request); //the faces ExternalContext is useless to us at this point
  +      Lifecycle.beginExceptionRecovery( getServletContext(), request ); //the faces ExternalContext is useless to us at this point
         try
         {
            Exceptions.instance().handle(e);
  @@ -114,7 +105,7 @@
   
      private MockFacesContext createFacesContext(HttpServletRequest request, HttpServletResponse response)
      {
  -      return new MockFacesContext( new MockExternalContext(context, request, response), new MockApplication() );
  +      return new MockFacesContext( new MockExternalContext(getServletContext(), request, response), new MockApplication() );
      }
   
      private void rollbackTransactionIfNecessary()
  @@ -132,6 +123,4 @@
         }
      }
   
  -   public void destroy() {}
  -
   }
  
  
  
  1.2       +1 -5      jboss-seam/src/main/org/jboss/seam/servlet/SeamMultipartFilter.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: SeamMultipartFilter.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/servlet/SeamMultipartFilter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- SeamMultipartFilter.java	22 Jan 2007 16:19:28 -0000	1.1
  +++ SeamMultipartFilter.java	4 Feb 2007 02:30:49 -0000	1.2
  @@ -2,16 +2,14 @@
   
   import java.io.IOException;
   
  -import javax.servlet.Filter;
   import javax.servlet.FilterChain;
  -import javax.servlet.FilterConfig;
   import javax.servlet.ServletException;
   import javax.servlet.ServletRequest;
   import javax.servlet.ServletResponse;
   import javax.servlet.http.HttpServletRequest;
   import javax.servlet.http.HttpServletResponse;
   
  -public class SeamMultipartFilter implements Filter
  +public class SeamMultipartFilter extends SeamFilter
   {
      public static final String MULTIPART = "multipart/";   
      
  @@ -57,6 +55,4 @@
         return false;     
      }
   
  -   public void init(FilterConfig filterConfig) { }
  -   public void destroy() { }
   }
  
  
  
  1.14      +15 -14    jboss-seam/src/main/org/jboss/seam/servlet/SeamRedirectFilter.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: SeamRedirectFilter.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/servlet/SeamRedirectFilter.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -b -r1.13 -r1.14
  --- SeamRedirectFilter.java	27 Nov 2006 03:00:15 -0000	1.13
  +++ SeamRedirectFilter.java	4 Feb 2007 02:30:49 -0000	1.14
  @@ -2,10 +2,9 @@
   
   import java.io.IOException;
   
  +import javax.faces.context.ExternalContext;
   import javax.faces.context.FacesContext;
  -import javax.servlet.Filter;
   import javax.servlet.FilterChain;
  -import javax.servlet.FilterConfig;
   import javax.servlet.ServletException;
   import javax.servlet.ServletRequest;
   import javax.servlet.ServletResponse;
  @@ -21,11 +20,9 @@
    * 
    * @author Gavin King
    */
  -public class SeamRedirectFilter implements Filter 
  +public class SeamRedirectFilter extends SeamFilter 
   {
   
  -   public void init(FilterConfig config) throws ServletException {}
  -
      public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException 
      {
  @@ -54,22 +51,25 @@
         };
      }
   
  -   public void destroy() {}  
  -
      public static String getViewId(String url)
      {
  -      //for /seam/* style servlet mappings
  -      String pathInfo = FacesContext.getCurrentInstance().getExternalContext().getRequestPathInfo();
  -      String servletPath = FacesContext.getCurrentInstance().getExternalContext().getRequestServletPath();
  -      String contextPath = FacesContext.getCurrentInstance().getExternalContext().getRequestContextPath();
  +      ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
  +      String pathInfo = externalContext.getRequestPathInfo();
  +      String servletPath = externalContext.getRequestServletPath();
  +      String contextPath = externalContext.getRequestContextPath();
  +      return getViewId(url, pathInfo, servletPath, contextPath);
  +   }
  +
  +   protected static String getViewId(String url, String pathInfo, String servletPath, String contextPath)
  +   {
         if (pathInfo!=null)
         {
  +         //for /seam/* style servlet mappings
            return url.substring( contextPath.length() + servletPath.length(), getParamLoc(url) );
         }
  -      
  -      //for *.seam style servlet mappings
  -      if ( url.startsWith(contextPath) )
  +      else if ( url.startsWith(contextPath) )
         {
  +         //for *.seam style servlet mappings
            String extension = servletPath.substring( servletPath.lastIndexOf('.') );
            if ( url.endsWith(extension) || url.contains(extension + '?') )
            {
  @@ -93,4 +93,5 @@
         if (loc<0) loc = url.length();
         return loc;
      }
  +
   }
  
  
  
  1.12      +6 -16     jboss-seam/src/main/org/jboss/seam/servlet/SeamServletFilter.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: SeamServletFilter.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/servlet/SeamServletFilter.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -b -r1.11 -r1.12
  --- SeamServletFilter.java	16 Dec 2006 02:58:12 -0000	1.11
  +++ SeamServletFilter.java	4 Feb 2007 02:30:49 -0000	1.12
  @@ -3,21 +3,18 @@
   import java.io.IOException;
   
   import javax.faces.event.PhaseId;
  -import javax.servlet.Filter;
   import javax.servlet.FilterChain;
  -import javax.servlet.FilterConfig;
  -import javax.servlet.ServletContext;
   import javax.servlet.ServletException;
   import javax.servlet.ServletRequest;
   import javax.servlet.ServletResponse;
   import javax.servlet.http.HttpServletRequest;
   import javax.servlet.http.HttpSession;
   
  -import org.jboss.seam.log.LogProvider;
  -import org.jboss.seam.log.Logging;
  -import org.jboss.seam.contexts.Lifecycle;
   import org.jboss.seam.contexts.ContextAdaptor;
  +import org.jboss.seam.contexts.Lifecycle;
   import org.jboss.seam.core.Manager;
  +import org.jboss.seam.log.LogProvider;
  +import org.jboss.seam.log.Logging;
   
   /**
    * Manages the Seam contexts associated with a request
  @@ -25,21 +22,18 @@
    * 
    * @author Gavin King
    */
  -public class SeamServletFilter implements Filter {
  +public class SeamServletFilter extends SeamFilter 
  +{
      
      private static final LogProvider log = Logging.getLogProvider(SeamServletFilter.class);
      
  -   private ServletContext servletContext;
  -
  -   public void destroy() {}
  -
      public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
         log.debug("beginning request");
         
         HttpSession session = ( (HttpServletRequest) request ).getSession(true);
         Lifecycle.setPhaseId(PhaseId.INVOKE_APPLICATION);
         Lifecycle.setServletRequest(request);
  -      Lifecycle.beginRequest(servletContext, session, request);
  +      Lifecycle.beginRequest(getServletContext(), session, request);
         Manager.instance().restoreConversation( request.getParameterMap() );
         Lifecycle.resumeConversation(session);
         Manager.instance().handleConversationPropagation( request.getParameterMap() );
  @@ -64,8 +58,4 @@
         }
      }
   
  -   public void init(FilterConfig config) throws ServletException {
  -      servletContext = config.getServletContext();
  -   }
  -
   }
  
  
  
  1.1      date: 2007/02/04 02:30:49;  author: gavin;  state: Exp;jboss-seam/src/main/org/jboss/seam/servlet/SeamFilter.java
  
  Index: SeamFilter.java
  ===================================================================
  package org.jboss.seam.servlet;
  
  import javax.servlet.Filter;
  import javax.servlet.FilterConfig;
  import javax.servlet.ServletContext;
  import javax.servlet.ServletException;
  
  public abstract class SeamFilter implements Filter
  {
  
     private ServletContext servletContext;
  
     public void init(FilterConfig filterConfig) throws ServletException 
     {
        servletContext = filterConfig.getServletContext();
     }
  
     public void destroy() {}
  
     protected ServletContext getServletContext()
     {
        return servletContext;
     }
  
  }
  
  
  



More information about the jboss-cvs-commits mailing list