001 package javax.portlet.faces.annotation;
002
003 import java.lang.annotation.Documented;
004 import java.lang.annotation.ElementType;
005 import java.lang.annotation.Retention;
006 import java.lang.annotation.RetentionPolicy;
007 import java.lang.annotation.Target;
008
009 /** The PreDestroy annotation is used on methods as a callback notification to signal
010 * that the instance is in the process of being removed by the bridge from
011 * the bridge request scope. This method complements one using
012 * <code>javax.annotation.PreDestroy</code> to allow the object to release resources
013 * that it has been holding. It exists because the existing
014 * <code>javax.annotation.PreDestroy</code> method must be ignored as it is called
015 * by the container even though the bridge continues to manage the object in its
016 * request scope. The method on which the PreDestroy annotation is applied MUST
017 * fulfill all of the following criteria - The method MUST NOT have any parameters -
018 * The return type of the method MUST be void. - The method MUST NOT throw a checked
019 * exception. - The method on which PreDestroy is applied MUST be public. - The
020 * method MUST NOT be static. - The method MAY be final. - If the method throws an
021 * unchecked exception it is ignored.
022 */
023
024 @Documented
025 @Retention(RetentionPolicy.RUNTIME)
026 @Target({ElementType.METHOD})
027 public @interface BridgePreDestroy {
028 }