package com.googlecode.mycontainer.gae.web; 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 com.google.apphosting.api.ApiProxy; import com.google.apphosting.api.ApiProxy.Environment; public class LocalEnvironmentFilter implements Filter { private Environment environment; public LocalEnvironmentFilter() { } public LocalEnvironmentFilter(Environment environment) { this.environment = environment; } public Environment getEnvironment() { return environment; } public void setEnvironment(Environment environment) { this.environment = environment; } public void init(FilterConfig config) throws ServletException { if (environment == null) { environment = ApiProxy.getCurrentEnvironment(); } config.getServletContext().setAttribute("com.google.appengine.devappserver.ApiProxyLocal", ApiProxy.getDelegate()); } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { ApiProxy.setEnvironmentForCurrentThread(getEnvironment()); chain.doFilter(request, response); } public void destroy() { } }