package au.com.vaadinutils.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.apache.logging.log4j.LogManager;
import au.com.vaadinutils.dao.EntityManagerProvider;
import au.com.vaadinutils.dao.EntityWorker;
public class EntityManagerInjectorFilter implements Filter
{
// private static transient Logger logger =
org.apache.logging.log4j.Logger logger = LogManager.getLogger();
@Override
public void init(FilterConfig filterConfig) throws ServletException
{
}
@Override
public void doFilter(final ServletRequest servletRequest, final ServletResponse servletResponse,
final FilterChain filterChain) throws IOException, ServletException
{
try
{
EntityManagerProvider.setThreadLocalEntityManager(new EntityWorker<Void>()
{
@Override
public Void exec() throws Exception
{
filterChain.doFilter(servletRequest, servletResponse);
return null;
}
});
}
catch (Exception e1)
{
logger.error(e1, e1);
}
}
@Override
public void destroy()
{
// entityManagerFactory = null;
}
}