001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
003 * agreements. See the NOTICE file distributed with this work for additional information regarding
004 * copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the
005 * "License"); you may not use this file except in compliance with the License. You may obtain a
006 * copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable
007 * law or agreed to in writing, software distributed under the License is distributed on an "AS IS"
008 * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License
009 * for the specific language governing permissions and limitations under the License.
010 */
011
012 package javax.portlet.faces.annotation;
013
014 import java.lang.annotation.Documented;
015 import java.lang.annotation.ElementType;
016 import java.lang.annotation.Retention;
017 import java.lang.annotation.RetentionPolicy;
018 import java.lang.annotation.Target;
019
020 /** The PreDestroy annotation is used on methods as a callback notification to signal
021 * that the instance is in the process of being removed by the bridge from
022 * the bridge request scope. This method complements one using
023 * <code>javax.annotation.PreDestroy</code> to allow the object to release resources
024 * that it has been holding. It exists because the existing
025 * <code>javax.annotation.PreDestroy</code> method must be ignored as it is called
026 * by the container even though the bridge continues to manage the object in its
027 * request scope. The method on which the PreDestroy annotation is applied MUST
028 * fulfill all of the following criteria - The method MUST NOT have any parameters -
029 * The return type of the method MUST be void. - The method MUST NOT throw a checked
030 * exception. - The method on which PreDestroy is applied MUST be public. - The
031 * method MUST NOT be static. - The method MAY be final. - If the method throws an
032 * unchecked exception it is ignored.
033 */
034
035 @Documented
036 @Retention(RetentionPolicy.RUNTIME)
037 @Target({ElementType.METHOD})
038 public @interface BridgePreDestroy {
039 }