001package org.nuxeo.ecm.platform.web.common.requestcontroller.filter;
002
003import java.io.IOException;
004
005import javax.servlet.FilterChain;
006import javax.servlet.FilterConfig;
007import javax.servlet.ServletException;
008import javax.servlet.ServletRequest;
009import javax.servlet.ServletResponse;
010
011import org.nuxeo.runtime.trackers.concurrent.ThreadEvent;
012
013public class NuxeoThreadTrackerFilter implements javax.servlet.Filter {
014
015    @Override
016    public void init(FilterConfig filterConfig) throws ServletException {
017    }
018
019    @Override
020    public void destroy() {
021    }
022
023    @Override
024    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
025            ServletException {
026        ThreadEvent.onEnter(this, false).send();
027        try {
028            chain.doFilter(request, response);
029        } finally {
030            ThreadEvent.onLeave(this).send();
031        }
032    }
033
034}