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 }