KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > test > web > servlets > ENCServlet


1 /*
2   * JBoss, Home of Professional Open Source
3   * Copyright 2005, JBoss Inc., and individual contributors as indicated
4   * by the @authors tag. See the copyright.txt in the distribution for a
5   * full listing of individual contributors.
6   *
7   * This is free software; you can redistribute it and/or modify it
8   * under the terms of the GNU Lesser General Public License as
9   * published by the Free Software Foundation; either version 2.1 of
10   * the License, or (at your option) any later version.
11   *
12   * This software is distributed in the hope that it will be useful,
13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15   * Lesser General Public License for more details.
16   *
17   * You should have received a copy of the GNU Lesser General Public
18   * License along with this software; if not, write to the Free
19   * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20   * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21   */

22 package org.jboss.test.web.servlets;
23
24 import java.io.IOException JavaDoc;
25 import java.io.PrintWriter JavaDoc;
26 import java.net.URL JavaDoc;
27 import java.util.Hashtable JavaDoc;
28 import java.util.Iterator JavaDoc;
29
30 import javax.jms.JMSException JavaDoc;
31 import javax.jms.Queue JavaDoc;
32 import javax.jms.QueueConnectionFactory JavaDoc;
33 import javax.jms.Topic JavaDoc;
34 import javax.mail.Session JavaDoc;
35 import javax.naming.Context JavaDoc;
36 import javax.naming.InitialContext JavaDoc;
37 import javax.naming.NamingException JavaDoc;
38 import javax.servlet.ServletException JavaDoc;
39 import javax.servlet.http.HttpServlet JavaDoc;
40 import javax.servlet.http.HttpServletRequest JavaDoc;
41 import javax.servlet.http.HttpServletResponse JavaDoc;
42 import javax.sql.DataSource JavaDoc;
43
44 import org.jboss.test.cts.interfaces.CtsBmpHome;
45 import org.jboss.test.web.interfaces.StatelessSessionHome;
46 import org.jboss.test.web.interfaces.StatelessSessionLocalHome;
47
48 import org.jboss.test.web.util.Util;
49
50 /** Tests of the server ENC naming context
51  *
52  * @author Scott.Stark@jboss.org
53  * @version $Revision: 58115 $
54  */

55 public class ENCServlet extends HttpServlet JavaDoc
56 {
57    org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(getClass());
58
59    protected void processRequest(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
60          throws ServletException JavaDoc, IOException JavaDoc
61    {
62       testENC();
63       response.setContentType("text/html");
64       PrintWriter JavaDoc out = response.getWriter();
65       out.println("<html>");
66       out.println("<head><title>ENCServlet</title></head>");
67       out.println("<body>Tests passed<br>Time:" + Util.getTime() + "</body>");
68       out.println("</html>");
69       out.close();
70    }
71
72    protected void doGet(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
73          throws ServletException JavaDoc, IOException JavaDoc
74    {
75       processRequest(request, response);
76    }
77
78    protected void doPost(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
79          throws ServletException JavaDoc, IOException JavaDoc
80    {
81       processRequest(request, response);
82    }
83
84    private void testENC() throws ServletException JavaDoc
85    {
86       try
87       {
88          // Obtain the enterprise bean�s environment naming context.
89
Context JavaDoc initCtx = new InitialContext JavaDoc();
90          Hashtable JavaDoc env = initCtx.getEnvironment();
91          Iterator JavaDoc keys = env.keySet().iterator();
92          log.info("InitialContext.env:");
93          while( keys.hasNext() )
94          {
95             Object JavaDoc key = keys.next();
96             log.info("Key: "+key+", value: "+env.get(key));
97          }
98          Context JavaDoc myEnv = (Context JavaDoc) initCtx.lookup("java:comp/env");
99          testEjbRefs(initCtx, myEnv);
100          testJdbcDataSource(initCtx, myEnv);
101          testMail(initCtx, myEnv);
102          testJMS(initCtx, myEnv);
103          testURL(initCtx, myEnv);
104          testEnvEntries(initCtx, myEnv);
105          testMessageDestinationRefs(initCtx, myEnv);
106       }
107       catch (NamingException JavaDoc e)
108       {
109          log.debug("Lookup failed", e);
110          throw new ServletException JavaDoc("Lookup failed, ENC tests failed", e);
111       }
112       catch (JMSException JavaDoc e)
113       {
114          log.debug("JMS access failed", e);
115          throw new ServletException JavaDoc("JMS access failed, ENC tests failed", e);
116       }
117       catch (RuntimeException JavaDoc e)
118       {
119          log.debug("Runtime error", e);
120          throw new ServletException JavaDoc("Runtime error, ENC tests failed", e);
121       }
122    }
123
124    private void testEnvEntries(Context JavaDoc initCtx, Context JavaDoc myEnv) throws NamingException JavaDoc
125    {
126       // Basic env values
127
Integer JavaDoc i = (Integer JavaDoc) myEnv.lookup("Ints/i0");
128       log.debug("Ints/i0 = " + i);
129       i = (Integer JavaDoc) initCtx.lookup("java:comp/env/Ints/i1");
130       log.debug("Ints/i1 = " + i);
131       Float JavaDoc f = (Float JavaDoc) myEnv.lookup("Floats/f0");
132       log.debug("Floats/f0 = " + f);
133       f = (Float JavaDoc) initCtx.lookup("java:comp/env/Floats/f1");
134       log.debug("Floats/f1 = " + f);
135       String JavaDoc s = (String JavaDoc) myEnv.lookup("Strings/s0");
136       log.debug("Strings/s0 = " + s);
137       s = (String JavaDoc) initCtx.lookup("java:comp/env/Strings/s1");
138       log.debug("Strings/s1 = " + s);
139       s = (String JavaDoc) initCtx.lookup("java:comp/env/ejb/catalog/CatalogDAOClass");
140       log.debug("ejb/catalog/CatalogDAOClass = " + s);
141    }
142
143    private void testEjbRefs(Context JavaDoc initCtx, Context JavaDoc myEnv) throws NamingException JavaDoc
144    {
145       // EJB References
146
Object JavaDoc ejb = myEnv.lookup("ejb/bean0");
147       if ((ejb instanceof StatelessSessionHome) == false)
148          throw new NamingException JavaDoc("ejb/bean0 is not a StatelessSessionHome");
149       log.debug("ejb/bean0 = " + ejb);
150       ejb = initCtx.lookup("java:comp/env/ejb/bean1");
151       if ((ejb instanceof StatelessSessionHome) == false)
152          throw new NamingException JavaDoc("ejb/bean1 is not a StatelessSessionHome");
153       log.debug("ejb/bean1 = " + ejb);
154       ejb = initCtx.lookup("java:comp/env/ejb/bean2");
155       if ((ejb instanceof StatelessSessionHome) == false)
156          throw new NamingException JavaDoc("ejb/bean2 is not a StatelessSessionHome");
157       log.debug("ejb/bean2 = " + ejb);
158       //do lookup on bean specified without ejb-link
159
ejb = initCtx.lookup("java:comp/env/ejb/bean3");
160       if ((ejb instanceof StatelessSessionHome) == false)
161          throw new NamingException JavaDoc("ejb/bean3 is not a StatelessSessionHome");
162       log.debug("ejb/bean3 = " + ejb);
163
164
165       ejb = initCtx.lookup("java:comp/env/ejb/UnsecuredEJB");
166       if ((ejb instanceof StatelessSessionHome) == false)
167          throw new NamingException JavaDoc("ejb/UnsecuredEJB is not a StatelessSessionHome");
168       log.debug("ejb/UnsecuredEJB = " + ejb);
169       ejb = initCtx.lookup("java:comp/env/ejb/SecuredEJB");
170       if ((ejb instanceof StatelessSessionHome) == false)
171          throw new NamingException JavaDoc("ejb/SecuredEJB is not a StatelessSessionHome");
172       log.debug("ejb/SecuredEJB = " + ejb);
173       ejb = initCtx.lookup("java:comp/env/ejb/CtsBmp");
174       if ((ejb instanceof CtsBmpHome) == false)
175          throw new NamingException JavaDoc("ejb/CtsBmp is not a CtsBmpHome");
176       log.debug("ejb/CtsBmp = " + ejb);
177       ejb = initCtx.lookup("java:comp/env/ejb/RelativeBean");
178       if ((ejb instanceof StatelessSessionHome) == false )
179          throw new NamingException JavaDoc("ejb/RelativeBean is not a StatelessSessionHome");
180       log.debug("ejb/RelativeBean = " + ejb);
181
182       // EJB Local References
183
ejb = initCtx.lookup("java:comp/env/ejb/local/bean0");
184       if ((ejb instanceof StatelessSessionLocalHome) == false)
185          throw new NamingException JavaDoc("ejb/local/bean0 is not a StatelessSessionLocalHome");
186       log.debug("ejb/local/bean0 = " + ejb);
187       ejb = initCtx.lookup("java:comp/env/ejb/local/bean1");
188       if ((ejb instanceof StatelessSessionLocalHome) == false)
189          throw new NamingException JavaDoc("ejb/local/bean1 is not a StatelessSessionLocalHome");
190       log.debug("ejb/local/bean1 = " + ejb);
191
192       //lookup of local-ejb-ref bean specified without ejb-link
193
ejb = initCtx.lookup("java:comp/env/ejb/local/bean3");
194       if ((ejb instanceof StatelessSessionLocalHome) == false)
195          throw new NamingException JavaDoc("ejb/local/bean3 is not a StatelessSessionLocalHome");
196       log.debug("ejb/local/bean3 = " + ejb);
197
198       ejb = initCtx.lookup("java:comp/env/ejb/local/OptimizedEJB");
199       if ((ejb instanceof StatelessSessionLocalHome) == false)
200          throw new NamingException JavaDoc("ejb/local/OptimizedEJB is not a StatelessSessionLocalHome");
201       log.debug("ejb/local/OptimizedEJB = " + ejb);
202       ejb = initCtx.lookup("java:comp/env/ejb/local/RelativeBean");
203       if ((ejb instanceof StatelessSessionLocalHome) == false )
204          throw new NamingException JavaDoc("ejb/local/RelativeBean is not a StatelessSessionLocalHome");
205       log.debug("ejb/local/RelativeBean = " + ejb);
206    }
207
208    private void testJdbcDataSource(Context JavaDoc initCtx, Context JavaDoc myEnv) throws NamingException JavaDoc
209    {
210       // JDBC DataSource
211
DataSource JavaDoc ds = (DataSource JavaDoc) myEnv.lookup("jdbc/DefaultDS");
212       log.debug("jdbc/DefaultDS = " + ds);
213    }
214
215    private void testMail(Context JavaDoc initCtx, Context JavaDoc myEnv) throws NamingException JavaDoc
216    {
217       // JavaMail Session
218
Session JavaDoc session = (Session JavaDoc) myEnv.lookup("mail/DefaultMail");
219       log.debug("mail/DefaultMail = " + session);
220    }
221
222    private void testJMS(Context JavaDoc initCtx, Context JavaDoc myEnv) throws NamingException JavaDoc
223    {
224       // JavaMail Session
225
QueueConnectionFactory JavaDoc qf = (QueueConnectionFactory JavaDoc) myEnv.lookup("jms/QueFactory");
226       log.debug("jms/QueFactory = " + qf);
227    }
228
229    private void testURL(Context JavaDoc initCtx, Context JavaDoc myEnv) throws NamingException JavaDoc
230    {
231       // URLs
232
URL JavaDoc home1 = (URL JavaDoc) myEnv.lookup("url/JBossHome");
233       log.debug("url/JBossHome = " + home1);
234       URL JavaDoc home2 = (URL JavaDoc) initCtx.lookup("java:comp/env/url/JBossHome");
235       log.debug("url/JBossHome = " + home2);
236       if( home1.equals(home2) == false )
237          throw new NamingException JavaDoc("url/JBossHome != java:comp/env/url/JBossHome");
238    }
239
240    private void testMessageDestinationRefs(Context JavaDoc initCtx, Context JavaDoc myEnv) throws NamingException JavaDoc, JMSException JavaDoc
241    {
242       Object JavaDoc obj = myEnv.lookup("mdr/ConsumesLink");
243       log.debug("mdr/ConsumesLink = " + obj);
244       if ((obj instanceof Queue JavaDoc) == false)
245          throw new RuntimeException JavaDoc("mdr/ConsumesLink is not a javax.jms.Queue");
246       Queue JavaDoc queue = (Queue JavaDoc) obj;
247       if ("QUEUE.testQueue".equals(queue.getQueueName()))
248          throw new RuntimeException JavaDoc("Excepted QUEUE.testQueue, got " + queue);
249       
250       obj = myEnv.lookup("mdr/ProducesLink");
251       log.debug("mdr/ProducesLink = " + obj);
252       if ((obj instanceof Topic JavaDoc) == false)
253          throw new RuntimeException JavaDoc("mdr/ProducesLink is not a javax.jms.Topic");
254       Topic JavaDoc topic = (Topic JavaDoc) obj;
255       if ("TOPIC.testTopic".equals(topic.getTopicName()))
256          throw new RuntimeException JavaDoc("Excepted TOPIC.testTopic got " + topic);
257
258       obj = myEnv.lookup("mdr/ConsumesProducesJNDIName");
259       log.debug("mdr/ConsumesProducesJNDIName = " + obj);
260       if ((obj instanceof Queue JavaDoc) == false)
261          throw new RuntimeException JavaDoc("mdr/ConsumesProducesJNDIName is not a javax.jms.Queue");
262       queue = (Queue JavaDoc) obj;
263       if ("QUEUE.A".equals(queue.getQueueName()))
264          throw new RuntimeException JavaDoc("Excepted QUEUE.A, got " + queue);
265    }
266 }
267
Popular Tags