21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package javax.annotation;
27
28 import java.lang.annotation.*;
29 import static java.lang.annotation.ElementType.*;
30 import static java.lang.annotation.RetentionPolicy.*;
31
32 /**
33 * The PreDestroy annotation is used on methods as a callback notification to
34 * signal that the instance is in the process of being removed by the
35 * container. The method annotated with PreDestroy is typically used to
36 * release resources that it has been holding. This annotation MUST be
37 * supported by all container managed objects that support PostConstruct
38 * except the application client container in Java EE 5. The method on which
39 * the PreDestroy annotation is applied MUST fulfill all of the following
40 * criteria:
41 * <p>
42 * <ul>
43 * <li>The method MUST NOT have any parameters except in the case of
44 * interceptors in which case it takes an InvocationContext object as
45 * defined by the Interceptors specification.</li>
46 * <li>The method defined on an interceptor class MUST HAVE one of the
47 * following signatures:
48 * <p>
49 * void <METHOD>(InvocationContext)
50 * <p>
51 * Object <METHOD>(InvocationContext) throws Exception
52 * <p>
53 * <i>Note: A PreDestroy interceptor method must not throw application
54 * exceptions, but it may be declared to throw checked exceptions including
55 * the java.lang.Exception if the same interceptor method interposes on
56 * business or timeout methods in addition to lifecycle events. If a
57 * PreDestroy interceptor method returns a value, it is ignored by
58 * the container.</i>
59 * </li>
60 * <li>The method defined on a non-interceptor class MUST HAVE the
61 * following signature:
|
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package javax.annotation;
27
28 import java.lang.annotation.*;
29 import static java.lang.annotation.ElementType.*;
30 import static java.lang.annotation.RetentionPolicy.*;
31
32 /**
33 * The PreDestroy annotation is used on methods as a callback notification to
34 * signal that the instance is in the process of being removed by the
35 * container. The method annotated with PreDestroy is typically used to
36 * release resources that it has been holding. This annotation MUST be
37 * supported by all container managed objects that support PostConstruct
38 * except the application client container in Java EE 5. The method on which
39 * the PreDestroy annotation is applied MUST fulfill all of the following
40 * criteria:
41 * <ul>
42 * <li>The method MUST NOT have any parameters except in the case of
43 * interceptors in which case it takes an InvocationContext object as
44 * defined by the Interceptors specification.</li>
45 * <li>The method defined on an interceptor class MUST HAVE one of the
46 * following signatures:
47 * <p>
48 * void <METHOD>(InvocationContext)
49 * <p>
50 * Object <METHOD>(InvocationContext) throws Exception
51 * <p>
52 * <i>Note: A PreDestroy interceptor method must not throw application
53 * exceptions, but it may be declared to throw checked exceptions including
54 * the java.lang.Exception if the same interceptor method interposes on
55 * business or timeout methods in addition to lifecycle events. If a
56 * PreDestroy interceptor method returns a value, it is ignored by
57 * the container.</i>
58 * </li>
59 * <li>The method defined on a non-interceptor class MUST HAVE the
60 * following signature:
|