1 /* 2 * Copyright 2002-2004 The Apache Software Foundation 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 12 * implied. 13 * 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 package org.apache.avalon.excalibur.component.servlet; 18 19 /** 20 * Servlet containers do not have a guaranteed order in which servlets will 21 * be destroyed like there is with initialization. This means that the 22 * servlet which created and controls an object may be destroyed while other 23 * servlets are still using it. This presents a problem in environments where 24 * common objects are placed into the ServletContext and used by more than 25 * one servlet. 26 * 27 * To solve this problem an object is placed into the ServletContext wrapped 28 * in a ReferenceProxy. Whe nthe servlet is ready to be shutdown. A proxy 29 * latch will monitor these proxies waiting for them to be gced. When all 30 * proxies have been disposed, it can be known that there are no external 31 * references to the contained components remaining. 32 * 33 * @deprecated ECM is no longer supported 34 * 35 * @author <a HREF="mailto:dev@avalon.apache.org">Avalon Development Team</a> 36 * @version CVS $Revision: 1.4 $ $Date: 2004/02/28 11:47:16 $ 37 * @since 4.2 38 */ 39 interface ReferenceProxy 40 { 41 } 42