1 /** 2 * 3 * Copyright 2003-2004 The Apache Software Foundation 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 package org.apache.geronimo.jetty.interceptor; 18 19 import javax.naming.Context; 20 21 import org.apache.geronimo.naming.java.RootContext; 22 import org.mortbay.http.HttpRequest; 23 import org.mortbay.http.HttpResponse; 24 25 /** 26 * @version $Rev: 355877 $ $Date: 2005-12-10 18:48:27 -0800 (Sat, 10 Dec 2005) $ 27 */ 28 public class ComponentContextBeforeAfter implements BeforeAfter { 29 30 private final BeforeAfter next; 31 private final int index; 32 private final Context componentContext; 33 34 public ComponentContextBeforeAfter(BeforeAfter next, int index, Context componentContext) { 35 this.next = next; 36 this.index = index; 37 this.componentContext = componentContext; 38 } 39 40 public void before(Object[] context, HttpRequest httpRequest, HttpResponse httpResponse) { 41 context[index] = RootContext.getComponentContext(); 42 RootContext.setComponentContext(componentContext); 43 if (next != null) { 44 next.before(context, httpRequest, httpResponse); 45 } 46 } 47 48 public void after(Object[] context, HttpRequest httpRequest, HttpResponse httpResponse) { 49 if (next != null) { 50 next.after(context, httpRequest, httpResponse); 51 } 52 RootContext.setComponentContext((Context) context[index]); 53 } 54 55 }