package br.com.caelum.guj.vraptor.filter; import java.io.IOException; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import net.jforum.JForumExecutionContext; import freemarker.template.SimpleHash; import br.com.caelum.guj.uri.DefaultBookmarkableURIBuilder; import br.com.caelum.guj.uri.DefaultCompatibleURIBuilder; import br.com.caelum.guj.view.Slugger; import br.com.caelum.vraptor.VRaptor; /** * Para ignorar as URIs do JForum * * @author Lucas Cavalcanti * */ public class VRaptorFilter extends VRaptor { @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { this.registerSlugger(); HttpServletRequest request = (HttpServletRequest) req; String uri = request.getRequestURI(); if (uri.endsWith(".java") || uri.endsWith(".guj")) { chain.doFilter(req, res); } else { super.doFilter(req, res, chain); } } private void registerSlugger() { if (!JForumExecutionContext.exists()) { JForumExecutionContext ctx = JForumExecutionContext.get(); JForumExecutionContext.set(ctx); } SimpleHash context = JForumExecutionContext.getTemplateContext(); context.put("compatibleUriBuilder", new DefaultCompatibleURIBuilder()); context.put("bookmarkableUriBuilder", new DefaultBookmarkableURIBuilder(new Slugger())); } }