001: /**
002: * EasyBeans
003: * Copyright (C) 2006 Bull S.A.S.
004: * Contact: easybeans@ow2.org
005: *
006: * This library is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU Lesser General Public
008: * License as published by the Free Software Foundation; either
009: * version 2.1 of the License, or any later version.
010: *
011: * This library is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * Lesser General Public License for more details.
015: *
016: * You should have received a copy of the GNU Lesser General Public
017: * License along with this library; if not, write to the Free Software
018: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
019: * USA
020: *
021: * --------------------------------------------------------------------------
022: * $Id: SLSBResourceRefFieldInjection00.java 1970 2007-10-16 11:49:25Z benoitf $
023: * --------------------------------------------------------------------------
024: */package org.ow2.easybeans.tests.common.ejbs.stateless.containermanaged.resourceref;
025:
026: import static org.ow2.easybeans.tests.common.helper.ContextHelper.checkResource;
027:
028: import java.net.URL;
029:
030: import javax.annotation.Resource;
031: import javax.annotation.Resource.AuthenticationType;
032: import javax.ejb.EJBContext;
033: import javax.ejb.Remote;
034: import javax.ejb.SessionContext;
035: import javax.ejb.Stateless;
036: import javax.jms.ConnectionFactory;
037: import javax.jms.Queue;
038: import javax.jms.QueueConnectionFactory;
039: import javax.jms.Topic;
040: import javax.jms.TopicConnectionFactory;
041: import javax.mail.Session;
042: import javax.sql.DataSource;
043:
044: import org.ow2.easybeans.tests.common.db.TableManager;
045: import org.ow2.easybeans.tests.common.ejbs.base.ItfResourceEnvRef00;
046:
047: /**
048: * This bean is used to test injection of resource references in fields.
049: * @author Eduardo Studzinski Estima de Castro
050: * @author Gisele Pinheiro Souza
051: */
052: @Stateless(name="SLSBResourceRefFieldInjection00")
053: @Remote(ItfResourceEnvRef00.class)
054: public class SLSBResourceRefFieldInjection00 implements
055: ItfResourceEnvRef00 {
056:
057: /**
058: * SessionContext.
059: */
060: @Resource
061: private SessionContext sessionContext;
062:
063: /**
064: * The reference must be injected by the container.
065: */
066: @Resource(name="jdbc/ds00")
067: private DataSource dsInjection00;
068:
069: /**
070: * The reference must be injected by the container.
071: */
072: @Resource(name="jdbc/ds01",mappedName="jdbc_1")
073: private DataSource dsInjection01;
074:
075: /**
076: * The reference must be injected by the container.
077: */
078: @Resource(name="jdbc/ds02",shareable=true,description="Another jdbc.",authenticationType=AuthenticationType.CONTAINER)
079: private DataSource dsInjection02;
080:
081: /**
082: * The reference must be injected by the container.
083: */
084: @Resource
085: private DataSource ds03;
086:
087: /**
088: * The reference must be injected by the container using
089: * injection-target(XML).
090: */
091: private DataSource ds04;
092:
093: /**
094: * The reference must be injected by the container using the xml descriptor,
095: * so the jdbc_2 must be injected.
096: */
097: @Resource(name="jdbc/ds05",mappedName="jdbc_1")
098: private DataSource ds05;
099:
100: /**
101: * The reference must be injected by the container.
102: */
103: @Resource(name="jms/cf00")
104: private ConnectionFactory cfInjection00;
105:
106: /**
107: * The reference must be injected by the container.
108: */
109: @Resource
110: private ConnectionFactory conFactory01;
111:
112: /**
113: * The reference must be injected by the container using
114: * injection-target(XML).
115: */
116: private ConnectionFactory conFactory02;
117:
118: /**
119: * The reference must be injected by the container.
120: */
121: @Resource(name="jms/qcf00")
122: private QueueConnectionFactory queueConFactory00;
123:
124: /**
125: * The reference must be injected by the container.
126: */
127: @Resource(name="jms/tcf00")
128: private TopicConnectionFactory topicConFactory00;
129:
130: /**
131: * The reference must be injected by the container.
132: */
133: @Resource(name="jms/queue00")
134: private Queue queue00;
135:
136: /**
137: * The reference must be injected by the container.
138: */
139: @Resource(name="jms/topic00")
140: private Topic topic00;
141:
142: /**
143: * The reference must be injected by the container.
144: */
145: @Resource(name="mail/mail00")
146: private Session mail00;
147:
148: /**
149: * The reference must be injected by the container.
150: */
151: @Resource(name="url/url00")
152: private URL url00;
153:
154: /**
155: * The reference must be injected by the container.
156: */
157: @Resource(name="ejbctx/ctx00")
158: private EJBContext ctx00;
159:
160: /**
161: * Checks if the annotation @Resource on a field is working properly to
162: * url resource.
163: */
164: public void checkJDBC() {
165: checkResource(sessionContext, dsInjection00, "jdbc/ds00");
166: checkResource(sessionContext, dsInjection01, "jdbc/ds01");
167: checkResource(sessionContext, dsInjection02, "jdbc/ds02");
168: checkResource(
169: sessionContext,
170: ds03,
171: "org.ow2.easybeans.tests.common.ejbs."
172: + "stateless.containermanaged.resourceref.SLSBResourceRefFieldInjection00/ds03");
173:
174: // The reference must be injected by the container using the xml
175: // descriptor, so the jdbc_2 must be injected.
176: checkResource(sessionContext, ds04, "jdbc/ds04");
177:
178: TableManager cTest00 = new TableManager(dsInjection02);
179: TableManager cTest01 = new TableManager(ds05);
180: try {
181: // It must create twice the table, because each is in a different
182: // database.
183: cTest00.insertTable("ds04");
184: cTest01.insertTable("ds04");
185:
186: cTest00.deleteTable("ds04");
187: cTest01.deleteTable("ds04");
188: } catch (Exception e) {
189: throw new IllegalStateException("Exception: "
190: + e.getMessage());
191: }
192: }
193:
194: /**
195: * Checks if the annotation @Resource on a field is working properly to
196: * url resource.
197: */
198: public void checkJMSConFactory() {
199: checkResource(sessionContext, cfInjection00, "jms/cf00");
200: checkResource(
201: sessionContext,
202: conFactory01,
203: "org.ow2.easybeans."
204: + "tests.common.ejbs.stateless.containermanaged.resourceref.SLSBResourceRefFieldInjection00/conFactory01");
205: checkResource(sessionContext, conFactory02, "jms/cf02");
206: }
207:
208: /**
209: * Checks if the annotation @Resource on a field is working properly to
210: * url resource.
211: */
212: public void checkJMSQueueConFactory() {
213: checkResource(sessionContext, queueConFactory00, "jms/qcf00");
214: }
215:
216: /**
217: * Checks if the annotation @Resource on a field is working properly to
218: * url resource.
219: */
220: public void checkJMSTopicConFactory() {
221: checkResource(sessionContext, topicConFactory00, "jms/tcf00");
222: }
223:
224: /**
225: * Checks if the annotation @Resource on a field is working properly to
226: * mail session resource.
227: */
228: public void checkMailSession() {
229: checkResource(sessionContext, mail00, "mail/mail00");
230: }
231:
232: /**
233: * Checks if the annotation @Resource on a field is working properly to
234: * url resource.
235: */
236: public void checkUrl() {
237: checkResource(sessionContext, url00, "url/url00");
238: }
239:
240: /**
241: * Checks if the annotation @Resource on a field is working properly to
242: * ejb context resource.
243: */
244: public void checkEJBContext() {
245: checkResource(sessionContext, ctx00, "ejbctx/ctx00");
246: }
247:
248: /**
249: * Checks if the annotation @Resource on a field is working properly to
250: * url resource.
251: */
252: public void checkJMSQueue() {
253: checkResource(sessionContext, queue00, "jms/queue00");
254: }
255:
256: /**
257: * Checks if the annotation @Resource on a field is working properly to
258: * url resource.
259: */
260: public void checkJMSTopic() {
261: checkResource(sessionContext, topic00, "jms/topic00");
262: }
263: }
|