001 package org.apache.geronimo.tomcat.valve; 002 003 import java.io.IOException; 004 005 import javax.servlet.ServletException; 006 007 import org.apache.catalina.Valve; 008 import org.apache.catalina.connector.Request; 009 import org.apache.catalina.connector.Response; 010 import org.apache.catalina.valves.ValveBase; 011 import org.apache.geronimo.tomcat.interceptor.BeforeAfter; 012 013 public class GeronimoBeforeAfterValve extends ValveBase{ 014 015 private final BeforeAfter beforeAfter; 016 private final int contextIndexCount; 017 018 public GeronimoBeforeAfterValve(BeforeAfter beforeAfter, int contextIndexCount) { 019 this.beforeAfter = beforeAfter; 020 this.contextIndexCount = contextIndexCount; 021 } 022 023 public void invoke(Request request, Response response) throws IOException, ServletException { 024 Object context[] = new Object[contextIndexCount]; 025 026 if (beforeAfter != null){ 027 beforeAfter.before(context, request, response); 028 } 029 030 // Pass this request on to the next valve in our pipeline 031 getNext().invoke(request, response); 032 033 if (beforeAfter != null){ 034 beforeAfter.after(context, request, response); 035 } 036 037 } 038 039 }