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

Gavin King gavin.king at jboss.com
Sat Feb 10 03:36:35 EST 2007


  User: gavin   
  Date: 07/02/10 03:36:35

  Modified:    src/main/org/jboss/seam/web     
                        CharacterEncodingFilter.java ExceptionFilter.java
                        MultipartRequest.java RedirectFilter.java
                        SeamFilter.java
  Log:
  made some changes to filters stuff
  
  Revision  Changes    Path
  1.2       +5 -9      jboss-seam/src/main/org/jboss/seam/web/CharacterEncodingFilter.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: CharacterEncodingFilter.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/web/CharacterEncodingFilter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- CharacterEncodingFilter.java	10 Feb 2007 07:32:34 -0000	1.1
  +++ CharacterEncodingFilter.java	10 Feb 2007 08:36:35 -0000	1.2
  @@ -2,13 +2,14 @@
   import static org.jboss.seam.InterceptionType.NEVER;
   import static org.jboss.seam.ScopeType.APPLICATION;
   import static org.jboss.seam.annotations.Install.BUILT_IN;
  +
   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 org.jboss.seam.annotations.Install;
   import org.jboss.seam.annotations.Intercept;
   import org.jboss.seam.annotations.Name;
  @@ -27,16 +28,11 @@
   @Name("org.jboss.seam.servlet.characterEncodingFilter")
   @Install(precedence = BUILT_IN)
   @Intercept(NEVER)
  -public class CharacterEncodingFilter implements Filter
  +public class CharacterEncodingFilter extends BaseFilter
   {
      private String encoding;
      private boolean overrideClient;
  -   public void destroy() {}
  -   public void init(FilterConfig config) throws ServletException 
  -   {
  -      encoding = config.getInitParameter("encoding");
  -      overrideClient = "true".equals( config.getInitParameter("overrideClient") );
  -   }
  +   
      public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)
            throws ServletException, IOException
      {
  
  
  
  1.2       +9 -0      jboss-seam/src/main/org/jboss/seam/web/ExceptionFilter.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: ExceptionFilter.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/web/ExceptionFilter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- ExceptionFilter.java	10 Feb 2007 07:32:34 -0000	1.1
  +++ ExceptionFilter.java	10 Feb 2007 08:36:35 -0000	1.2
  @@ -5,16 +5,20 @@
    * See terms of license at gnu.org.
    */
   package org.jboss.seam.web;
  +
   import static org.jboss.seam.InterceptionType.NEVER;
   import static org.jboss.seam.ScopeType.APPLICATION;
   import static org.jboss.seam.annotations.Install.BUILT_IN;
  +
   import java.io.IOException;
  +
   import javax.servlet.FilterChain;
   import javax.servlet.ServletException;
   import javax.servlet.ServletRequest;
   import javax.servlet.ServletResponse;
   import javax.servlet.http.HttpServletRequest;
   import javax.servlet.http.HttpServletResponse;
  +
   import org.jboss.seam.annotations.Install;
   import org.jboss.seam.annotations.Intercept;
   import org.jboss.seam.annotations.Name;
  @@ -28,6 +32,7 @@
   import org.jboss.seam.mock.MockExternalContext;
   import org.jboss.seam.mock.MockFacesContext;
   import org.jboss.seam.util.Transactions;
  +
   /**
    * As a last line of defence, rollback uncommitted transactions 
    * at the very end of the request.
  @@ -43,6 +48,7 @@
   {
      
      private static final LogProvider log = Logging.getLogProvider(ExceptionFilter.class);
  +   
      public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 
            throws IOException, ServletException
      {
  @@ -71,6 +77,7 @@
            Lifecycle.setPhaseId(null);
         }
      }
  +   
      private void endWebRequestAfterException(HttpServletRequest request, HttpServletResponse response, Exception e) 
            throws ServletException, IOException
      {
  @@ -109,10 +116,12 @@
            }
         }
      }
  +   
      private MockFacesContext createFacesContext(HttpServletRequest request, HttpServletResponse response)
      {
         return new MockFacesContext( new MockExternalContext(getServletContext(), request, response), new MockApplication() );
      }
  +   
      private void rollbackTransactionIfNecessary()
      {
         try {
  
  
  
  1.3       +0 -3      jboss-seam/src/main/org/jboss/seam/web/MultipartRequest.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: MultipartRequest.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/web/MultipartRequest.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -b -r1.2 -r1.3
  --- MultipartRequest.java	10 Feb 2007 07:56:00 -0000	1.2
  +++ MultipartRequest.java	10 Feb 2007 08:36:35 -0000	1.3
  @@ -40,8 +40,6 @@
      
      private boolean createTempFiles;
      
  -   private int maxRequestSize;
  -   
      private String encoding = null;
      
      private Map<String,Param> parameters = null;
  @@ -245,7 +243,6 @@
         super(request);
         this.request = request;
         this.createTempFiles = createTempFiles;
  -      this.maxRequestSize = maxRequestSize;
         
         String contentLength = request.getHeader("Content-Length");
         if (contentLength != null && maxRequestSize > 0 && 
  
  
  
  1.2       +8 -0      jboss-seam/src/main/org/jboss/seam/web/RedirectFilter.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: RedirectFilter.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/web/RedirectFilter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- RedirectFilter.java	10 Feb 2007 07:32:34 -0000	1.1
  +++ RedirectFilter.java	10 Feb 2007 08:36:35 -0000	1.2
  @@ -1,8 +1,11 @@
   package org.jboss.seam.web;
  +
   import static org.jboss.seam.InterceptionType.NEVER;
   import static org.jboss.seam.ScopeType.APPLICATION;
   import static org.jboss.seam.annotations.Install.BUILT_IN;
  +
   import java.io.IOException;
  +
   import javax.faces.context.ExternalContext;
   import javax.faces.context.FacesContext;
   import javax.servlet.FilterChain;
  @@ -11,6 +14,7 @@
   import javax.servlet.ServletResponse;
   import javax.servlet.http.HttpServletResponse;
   import javax.servlet.http.HttpServletResponseWrapper;
  +
   import org.jboss.seam.annotations.Install;
   import org.jboss.seam.annotations.Intercept;
   import org.jboss.seam.annotations.Name;
  @@ -19,6 +23,7 @@
   import org.jboss.seam.contexts.Contexts;
   import org.jboss.seam.core.Manager;
   import org.jboss.seam.core.Pages;
  +
   /**
    * Propagates the conversation context across a browser redirect
    * 
  @@ -57,6 +62,7 @@
            }
         };
      }
  +   
      public static String getViewId(String url)
      {
         ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
  @@ -65,6 +71,7 @@
         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)
  @@ -91,6 +98,7 @@
            return null;
         }
      }
  +   
      private static int getParamLoc(String url)
      {
         int loc = url.indexOf('?');
  
  
  
  1.2       +19 -20    jboss-seam/src/main/org/jboss/seam/web/SeamFilter.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: SeamFilter.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/web/SeamFilter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- SeamFilter.java	10 Feb 2007 07:32:34 -0000	1.1
  +++ SeamFilter.java	10 Feb 2007 08:36:35 -0000	1.2
  @@ -2,7 +2,6 @@
   
   import java.io.IOException;
   import java.util.ArrayList;
  -import java.util.Iterator;
   import java.util.List;
   
   import javax.servlet.Filter;
  @@ -30,25 +29,25 @@
      private class FilterChainImpl implements FilterChain
      {  
         private FilterChain chain;      
  -      private Iterator<Filter> iter;
  +      private int index;
              
  -      public FilterChainImpl(FilterChain chain, Iterator<Filter> iter)
  +      public FilterChainImpl(FilterChain chain)
         {
            this.chain = chain;
  -         this.iter = iter;  
  +         index = -1;
         }
         
         public void doFilter(ServletRequest request, ServletResponse response)
             throws IOException, ServletException
         {         
  -         if (iter.hasNext())
  +         if ( ++index < filters.size() )
            {
  -            Filter filter = iter.next();
  +            Filter filter = filters.get(index);
               
               if (filter instanceof BaseFilter)
               {
                  BaseFilter bf = (BaseFilter) filter;
  -               if (bf.getUrlPattern() == null || bf.matchesRequestPath(request))
  +               if ( bf.getUrlPattern() == null || bf.matchesRequestPath(request) )
                  {
                     filter.doFilter(request, response, this);
                  }
  @@ -87,10 +86,15 @@
         Context ctx = new WebApplicationContext(servletContext); 
         
         Init init = (Init) ctx.get(Init.class);
  -      for (Class filterClass : init.getInstalledFilters())
  +      for ( Class filterClass : init.getInstalledFilters() )
         {
  -         log.info("Installed filter " + filterClass.getName());
  -         addFilter((Filter) ctx.get(filterClass), filterConfig);
  +         Filter filter = (Filter) ctx.get(filterClass);
  +         if ( !isDisabled(filter) ) 
  +         {
  +            log.info( "Installed filter " + filterClass.getName() );
  +            filter.init(filterConfig);
  +            filters.add(filter);
  +         }
         }
      }
      
  @@ -98,17 +102,12 @@
                           FilterChain chain)
          throws IOException, ServletException
      {
  -      new FilterChainImpl(chain, filters.iterator()).doFilter(request, response);
  +      new FilterChainImpl(chain).doFilter(request, response);
      }
      
  -   protected boolean addFilter(Filter filter, FilterConfig filterConfig)
  -      throws ServletException
  +   private boolean isDisabled(Filter filter)
      {
  -      if (filter instanceof BaseFilter && ((BaseFilter) filter).isDisabled())
  -         return false;
  -         
  -      filter.init(filterConfig);
  -      return filters.add(filter);
  +      return filter instanceof BaseFilter && ((BaseFilter) filter).isDisabled();
      }     
   
      public void destroy() {}
  
  
  



More information about the jboss-cvs-commits mailing list