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    }