[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