package scm.hivemind.statefulservice;
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.HttpSession;
import org.apache.hivemind.Registry;
import org.apache.hivemind.servlet.HiveMindFilter;
/**
* A servlet filter for setting up the
* {@link scm.hivemind.statefulservice.ClientStateStorage}
* for services holding state across requests.
*
* @author Marcus Schulte
*/
public class StatefulHivemindFilter implements Filter {
/**
*
*/
public StatefulHivemindFilter() {
super();
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
Registry registry = HiveMindFilter.getRegistry( req );
ClientStateStorage stateStore = (ClientStateStorage)
registry.getService(ClientStateStorage.class);
stateStore.provideSession( req.getSession() );
chain.doFilter( request, response );
}
/* (non-Javadoc)
* @see javax.servlet.Filter#destroy()
*/
public void destroy() {
}
/* (non-Javadoc)
* @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
*/
public void init(FilterConfig filterConfig) throws ServletException {
}
}