package com.bandstand.web; import com.bandstand.domain.SessionManager; import io.milton.http.Filter; import io.milton.http.FilterChain; import io.milton.http.Request; import io.milton.http.Response; import org.hibernate.Session; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * * @author brad */ public class MiltonOpenSessionInViewFilter implements Filter { private static final Logger log = LoggerFactory.getLogger(MiltonOpenSessionInViewFilter.class); private final SessionManager sessionManager; public MiltonOpenSessionInViewFilter(SessionManager sessionManager) { this.sessionManager = sessionManager; } @Override public void process(final FilterChain chain, final Request request, final Response response) { long tm = System.currentTimeMillis(); try { Session s = sessionManager.open(); chain.process(request, response); } finally { sessionManager.close(); } tm = System.currentTimeMillis() - tm; log.info("Finished request: " + tm + "ms for " + request.getAbsolutePath() + " method=" + request.getMethod()); } }