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

Shane Bryzak Shane_Bryzak at symantec.com
Sat Feb 10 02:32:33 EST 2007


  User: sbryzak2
  Date: 07/02/10 02:32:33

  Modified:    src/main/org/jboss/seam/servlet         
                        SeamCharacterEncodingFilter.java
                        SeamExceptionFilter.java SeamRedirectFilter.java
                        SeamServletFilter.java
  Removed:     src/main/org/jboss/seam/servlet          BaseFilter.java
                        MultipartFilter.java MultipartRequest.java
                        SeamFilter.java package-info.java
  Log:
  JBSEAM-790
  
  Revision  Changes    Path
  1.2       +14 -43    jboss-seam/src/main/org/jboss/seam/servlet/SeamCharacterEncodingFilter.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: SeamCharacterEncodingFilter.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/servlet/SeamCharacterEncodingFilter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- SeamCharacterEncodingFilter.java	23 Jun 2006 05:20:11 -0000	1.1
  +++ SeamCharacterEncodingFilter.java	10 Feb 2007 07:32:33 -0000	1.2
  @@ -1,14 +1,5 @@
   package org.jboss.seam.servlet;
  -
  -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.web.CharacterEncodingFilter;
   /**
    * A servlet filter that lets you set the character encoding of 
    * submitted data. There are two init parameters: "encoding" and
  @@ -17,28 +8,8 @@
    * @author Gavin King
    * 
    */
  -public class SeamCharacterEncodingFilter implements Filter
  + at Deprecated
  +public class SeamCharacterEncodingFilter extends CharacterEncodingFilter
   {
   
  -   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
  -   {
  -      if ( overrideClient || request.getCharacterEncoding() == null )
  -      {
  -         request.setCharacterEncoding(encoding);
  -      }
  -      filterChain.doFilter(request, response);
  -   }
  -
   }
  \ No newline at end of file
  
  
  
  1.28      +5 -115    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.27
  retrieving revision 1.28
  diff -u -b -r1.27 -r1.28
  --- SeamExceptionFilter.java	9 Feb 2007 04:13:07 -0000	1.27
  +++ SeamExceptionFilter.java	10 Feb 2007 07:32:33 -0000	1.28
  @@ -5,126 +5,16 @@
    * See terms of license at gnu.org.
    */
   package org.jboss.seam.servlet;
  -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;
  -import org.jboss.seam.annotations.Scope;
  -import org.jboss.seam.annotations.Startup;
  -import org.jboss.seam.contexts.Lifecycle;
  -import org.jboss.seam.core.Exceptions;
  -import org.jboss.seam.log.LogProvider;
  -import org.jboss.seam.log.Logging;
  -import org.jboss.seam.mock.MockApplication;
  -import org.jboss.seam.mock.MockExternalContext;
  -import org.jboss.seam.mock.MockFacesContext;
  -import org.jboss.seam.util.Transactions;
  +
  +import org.jboss.seam.web.ExceptionFilter;
  +
   /**
    * As a last line of defence, rollback uncommitted transactions 
    * at the very end of the request.
    * 
    * @author Gavin King
    */
  - at Startup
  - at Scope(APPLICATION)
  - at Name("org.jboss.seam.servlet.exceptionFilter")
  - at Install(precedence = BUILT_IN)
  - at Intercept(NEVER)
  -public class SeamExceptionFilter extends BaseFilter
  + at Deprecated
  +public class SeamExceptionFilter extends ExceptionFilter
   {
  -   
  -   private static final LogProvider log = Logging.getLogProvider(SeamExceptionFilter.class);
  -   public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 
  -         throws IOException, ServletException
  -   {
  -      try
  -      {
  -         chain.doFilter(request, response);
  -         
  -         //There is a bug in JBoss AS where JBoss does not clean up
  -         //any orphaned tx at the end of the request. It is possible
  -         //that a Seam-managed tx could be left orphaned if, eg.
  -         //facelets handles an exceptions and displays the debug page.
  -         rollbackTransactionIfNecessary(); 
  -      }
  -      catch (Exception e)
  -      {
  -         log.error("uncaught exception", e);
  -         if (e instanceof ServletException)
  -         {
  -            log.error("exception root cause", ( (ServletException) e ).getRootCause() );
  -         }
  -         rollbackTransactionIfNecessary();
  -         endWebRequestAfterException( (HttpServletRequest) request, (HttpServletResponse) response, e);
  -      }
  -      finally
  -      {
  -         Lifecycle.setPhaseId(null);
  -      }
  -   }
  -   private void endWebRequestAfterException(HttpServletRequest request, HttpServletResponse response, Exception e) 
  -         throws ServletException, IOException
  -   {
  -      log.debug("ending request");
  -      //the FacesContext is gone - create a fake one for Redirect and HttpError to call
  -      MockFacesContext facesContext = createFacesContext(request, response);
  -      facesContext.setCurrent();
  -      Lifecycle.beginExceptionRecovery( facesContext.getExternalContext() );
  -      try
  -      {
  -         Exceptions.instance().handle(e);
  -      }
  -      catch (ServletException se)
  -      {
  -         throw se;
  -      }
  -      catch (IOException ioe)
  -      {
  -         throw ioe;
  -      }
  -      catch (Exception ehe)
  -      {
  -         throw new ServletException(ehe);
  -      }
  -      finally
  -      {
  -         try 
  -         {
  -            Lifecycle.endRequest( facesContext.getExternalContext() );
  -            facesContext.release();
  -            log.debug("ended request");
  -         }
  -         catch (Exception ere)
  -         {
  -            log.error("could not destroy contexts", e);
  -         }
  -      }
  -   }
  -   private MockFacesContext createFacesContext(HttpServletRequest request, HttpServletResponse response)
  -   {
  -      return new MockFacesContext( new MockExternalContext(getServletContext(), request, response), new MockApplication() );
  -   }
  -   private void rollbackTransactionIfNecessary()
  -   {
  -      try {
  -         if ( Transactions.isTransactionActiveOrMarkedRollback() )
  -         {
  -            log.debug("killing transaction");
  -            Transactions.getUserTransaction().rollback();
  -         }
  -      }
  -      catch (Exception te)
  -      {
  -         log.error("could not roll back transaction", te);
  -      }
  -   }
   }
  
  
  
  1.18      +5 -91     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.17
  retrieving revision 1.18
  diff -u -b -r1.17 -r1.18
  --- SeamRedirectFilter.java	9 Feb 2007 04:13:07 -0000	1.17
  +++ SeamRedirectFilter.java	10 Feb 2007 07:32:33 -0000	1.18
  @@ -1,100 +1,14 @@
   package org.jboss.seam.servlet;
  -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;
  -import javax.servlet.ServletException;
  -import javax.servlet.ServletRequest;
  -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;
  -import org.jboss.seam.annotations.Scope;
  -import org.jboss.seam.annotations.Startup;
  -import org.jboss.seam.contexts.Contexts;
  -import org.jboss.seam.core.Manager;
  -import org.jboss.seam.core.Pages;
  +
  +import org.jboss.seam.web.RedirectFilter;
  +
   /**
    * Propagates the conversation context across a browser redirect
    * 
    * @author Gavin King
    */
  - at Startup
  - at Scope(APPLICATION)
  - at Name("org.jboss.seam.servlet.redirectFilter")
  - at Install(precedence = BUILT_IN)
  - at Intercept(NEVER)
  -public class SeamRedirectFilter extends BaseFilter 
  + at Deprecated
  +public class SeamRedirectFilter extends RedirectFilter 
   {
  -   public void doFilter(ServletRequest request, ServletResponse response,
  -         FilterChain chain) throws IOException, ServletException 
  -   {
  -      chain.doFilter( request, wrapResponse( (HttpServletResponse) response ) );
  -   }
      
  -   private static ServletResponse wrapResponse(HttpServletResponse response) 
  -   {
  -      return new HttpServletResponseWrapper(response)
  -      {
  -         @Override
  -         public void sendRedirect(String url) throws IOException
  -         {
  -            if ( Contexts.isEventContextActive() )
  -            {
  -               String viewId = getViewId(url);
  -               if (viewId!=null)
  -               {
  -                  url = Pages.instance().encodePageParameters( FacesContext.getCurrentInstance(), url, viewId );
  -               }
  -               url = Manager.instance().appendConversationIdFromRedirectFilter(url);
  -            }
  -            super.sendRedirect(url);
  -         }
  -      };
  -   }
  -   public static String getViewId(String url)
  -   {
  -      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) );
  -      }
  -      else if ( url.startsWith(contextPath) )
  -      {
  -         //for *.seam style servlet mappings
  -         String extension = servletPath.substring( servletPath.lastIndexOf('.') );
  -         if ( url.endsWith(extension) || url.contains(extension + '?') )
  -         {
  -            String suffix = Pages.getSuffix();
  -            return url.substring( contextPath.length(), getParamLoc(url) - extension.length() ) + suffix;
  -         }
  -         else
  -         {
  -            return null;
  -         }
  -      }
  -      else
  -      {
  -         return null;
  -      }
  -   }
  -   private static int getParamLoc(String url)
  -   {
  -      int loc = url.indexOf('?');
  -      if (loc<0) loc = url.length();
  -      return loc;
  -   }
   }
  
  
  
  1.15      +5 -83     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.14
  retrieving revision 1.15
  diff -u -b -r1.14 -r1.15
  --- SeamServletFilter.java	9 Feb 2007 04:13:07 -0000	1.14
  +++ SeamServletFilter.java	10 Feb 2007 07:32:33 -0000	1.15
  @@ -1,92 +1,14 @@
   package org.jboss.seam.servlet;
  -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.event.PhaseId;
  -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.HttpSession;
  -import org.jboss.seam.annotations.Install;
  -import org.jboss.seam.annotations.Intercept;
  -import org.jboss.seam.annotations.Name;
  -import org.jboss.seam.annotations.Scope;
  -import org.jboss.seam.annotations.Startup;
  -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;
  +
  +import org.jboss.seam.web.ServletFilter;
  +
   /**
    * Manages the Seam contexts associated with a request to any servlet.
    * 
    * @author Gavin King
    */
  - at Startup
  - at Scope(APPLICATION)
  - at Name("org.jboss.seam.servlet.servletFilter")
  - at Install(precedence = BUILT_IN)
  - at Intercept(NEVER)
  -public class SeamServletFilter extends BaseFilter 
  + at Deprecated
  +public class SeamServletFilter extends ServletFilter 
   {
  -   private static final LogProvider log = Logging.getLogProvider(SeamServletFilter.class);
  -   private boolean explicitDisabled = false;
  -   
  -   /**
  -    * This filter is disabled by default, unless a urlPattern is set    
  -    */
  -   public SeamServletFilter()
  -   {
  -      super.setDisabled(true);
  -   }
  -   
  -   @Override
  -   public void setUrlPattern(String urlPattern)
  -   {
  -      super.setUrlPattern(urlPattern);
  -      if (!explicitDisabled) setDisabled(false);
  -   }
  -   
  -   @Override
  -   public void setDisabled(boolean disabled)
  -   {
  -      super.setDisabled(disabled);
  -      if (disabled) explicitDisabled = true;
  -   }
  - 
  -   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(getServletContext(), session, request);
  -      Manager.instance().restoreConversation( request.getParameterMap() );
  -      Lifecycle.resumeConversation(session);
  -      Manager.instance().handleConversationPropagation( request.getParameterMap() );
  -      try
  -      {
  -         chain.doFilter(request, response);
  -         //TODO: conversation timeout
  -         Manager.instance().endRequest( ContextAdaptor.getSession(session)  );
  -         Lifecycle.endRequest(session);
  -      }
  -      catch (Exception e)
  -      {
  -         Lifecycle.endRequest();
  -         log.error("ended request due to exception", e);
  -         throw new ServletException(e);
  -      }
  -      finally
  -      {
  -         Lifecycle.setServletRequest(null);
  -         Lifecycle.setPhaseId(null);
  -         log.debug("ended request");
  -      }
  -   }
   }
  
  
  



More information about the jboss-cvs-commits mailing list