[jboss-cvs] jboss-seam/src/main/org/jboss/seam/web ...
Gavin King
gavin.king at jboss.com
Sat Feb 10 03:47:46 EST 2007
User: gavin
Date: 07/02/10 03:47:46
Added: src/main/org/jboss/seam/web ContextFilter.java
Removed: src/main/org/jboss/seam/web ServletFilter.java
Log:
rename
Revision Changes Path
1.1 date: 2007/02/10 08:47:46; author: gavin; state: Exp;jboss-seam/src/main/org/jboss/seam/web/ContextFilter.java
Index: ContextFilter.java
===================================================================
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.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;
/**
* Manages the Seam contexts associated with a request to any servlet.
*
* @author Gavin King
*/
@Startup
@Scope(APPLICATION)
@Name("org.jboss.seam.servlet.servletFilter")
@Install(precedence = BUILT_IN)
@Intercept(NEVER)
public class ContextFilter extends BaseFilter
{
private static final LogProvider log = Logging.getLogProvider(ContextFilter.class);
private boolean explicitDisabled = false;
/**
* This filter is disabled by default, unless a urlPattern is set
*/
public ContextFilter()
{
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