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 }