[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