[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