01: /**
02: * EasyBeans
03: * Copyright (C) 2006 Bull S.A.S.
04: * Contact: easybeans@objectweb.org
05: *
06: * This library is free software; you can redistribute it and/or
07: * modify it under the terms of the GNU Lesser General Public
08: * License as published by the Free Software Foundation; either
09: * version 2.1 of the License, or any later version.
10: *
11: * This library is distributed in the hope that it will be useful,
12: * but WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14: * Lesser General Public License for more details.
15: *
16: * You should have received a copy of the GNU Lesser General Public
17: * License along with this library; if not, write to the Free Software
18: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
19: * USA
20: *
21: * --------------------------------------------------------------------------
22: * $Id: Resource.java 1100 2006-08-16 13:05:31Z benoitf $
23: * --------------------------------------------------------------------------
24: */package javax.annotation;
25:
26: import static java.lang.annotation.ElementType.FIELD;
27: import static java.lang.annotation.ElementType.METHOD;
28: import static java.lang.annotation.ElementType.TYPE;
29: import static java.lang.annotation.RetentionPolicy.RUNTIME;
30:
31: import java.lang.annotation.Retention;
32: import java.lang.annotation.Target;
33:
34: /**
35: * Used to declare a link to a resource (like a Bean's context, a DataSource, etc).
36: * @see <a href="http://www.jcp.org/en/jsr/detail?id=220">EJB 3.0 specification</a>
37: * @author Florent Benoit
38: * @since EJB 3.0 version.
39: */
40: // seems strange, documented annotation is not used here ?
41: @Target({TYPE,METHOD,FIELD})
42: @Retention(RUNTIME)
43: public @interface Resource {
44: /**
45: * Type of the authentication.
46: */
47: public enum AuthenticationType {
48: /**
49: * Container.
50: */
51: CONTAINER,
52:
53: /**
54: * Application.
55: */
56: APPLICATION
57: }
58:
59: /**
60: * Name of the resource. (in java:comp ENC environment)
61: */
62: String name() default "";
63:
64: /**
65: * Type of the resource.
66: */
67: Class type() default Object.class;
68:
69: /**
70: * The authentication type, with container as default.
71: */
72: AuthenticationType authenticationType() default AuthenticationType.CONTAINER;
73:
74: /**
75: * Share this resource between components ?
76: */
77: boolean shareable() default true;
78:
79: /**
80: * JNDI name to use for the resource. (name found in the RMI registry)
81: */
82: String mappedName() default "";
83:
84: /**
85: * A description for this resource.
86: */
87: String description() default "";
88: }
|