1 22 package org.jboss.test.web.servlets; 23 24 import java.net.URL ; 25 import java.util.Hashtable ; 26 import java.util.Iterator ; 27 28 import javax.jms.JMSException ; 29 import javax.jms.Queue ; 30 import javax.jms.QueueConnectionFactory ; 31 import javax.jms.Topic ; 32 import javax.mail.Session ; 33 import javax.naming.Context ; 34 import javax.naming.InitialContext ; 35 import javax.naming.NamingException ; 36 import javax.servlet.ServletException ; 37 import javax.sql.DataSource ; 38 39 import org.jboss.logging.Logger; 40 import org.jboss.test.web.mock.EntityHome; 41 import org.jboss.test.web.mock.StatelessSessionHome; 42 import org.jboss.test.web.mock.StatelessSessionLocalHome; 43 44 50 public class ENCTester 51 { 52 private Logger log; 53 ENCTester(Logger log) 54 { 55 this.log = log; 56 } 57 58 void testENC() throws ServletException 59 { 60 try 61 { 62 Context initCtx = new InitialContext (); 64 Hashtable env = initCtx.getEnvironment(); 65 Iterator keys = env.keySet().iterator(); 66 log.info("InitialContext.env:"); 67 while( keys.hasNext() ) 68 { 69 Object key = keys.next(); 70 log.info("Key: "+key+", value: "+env.get(key)); 71 } 72 Context myEnv = (Context ) initCtx.lookup("java:comp/env"); 73 testEjbRefs(initCtx, myEnv); 74 testJdbcDataSource(initCtx, myEnv); 75 testMail(initCtx, myEnv); 76 testJMS(initCtx, myEnv); 77 testURL(initCtx, myEnv); 78 testEnvEntries(initCtx, myEnv); 79 testMessageDestinationRefs(initCtx, myEnv); 80 } 81 catch (NamingException e) 82 { 83 log.debug("Lookup failed", e); 84 throw new ServletException ("Lookup failed, ENC tests failed", e); 85 } 86 catch (JMSException e) 87 { 88 log.debug("JMS access failed", e); 89 throw new ServletException ("JMS access failed, ENC tests failed", e); 90 } 91 catch (RuntimeException e) 92 { 93 log.debug("Runtime error", e); 94 throw new ServletException ("Runtime error, ENC tests failed", e); 95 } 96 } 97 98 private void testEnvEntries(Context initCtx, Context myEnv) throws NamingException 99 { 100 Integer i = (Integer ) myEnv.lookup("Ints/i0"); 102 log.debug("Ints/i0 = " + i); 103 i = (Integer ) initCtx.lookup("java:comp/env/Ints/i1"); 104 log.debug("Ints/i1 = " + i); 105 Float f = (Float ) myEnv.lookup("Floats/f0"); 106 log.debug("Floats/f0 = " + f); 107 f = (Float ) initCtx.lookup("java:comp/env/Floats/f1"); 108 log.debug("Floats/f1 = " + f); 109 String s = (String ) myEnv.lookup("Strings/s0"); 110 log.debug("Strings/s0 = " + s); 111 s = (String ) initCtx.lookup("java:comp/env/Strings/s1"); 112 log.debug("Strings/s1 = " + s); 113 s = (String ) initCtx.lookup("java:comp/env/ejb/catalog/CatalogDAOClass"); 114 log.debug("ejb/catalog/CatalogDAOClass = " + s); 115 } 116 117 private void testEjbRefs(Context initCtx, Context myEnv) throws NamingException 118 { 119 Object ejb = initCtx.lookup("java:comp/env/ejb/bean3"); 121 if ((ejb instanceof StatelessSessionHome) == false) 122 throw new NamingException ("ejb/bean3 is not a StatelessSessionHome"); 123 log.debug("ejb/bean3 = " + ejb); 124 125 126 ejb = initCtx.lookup("java:comp/env/ejb/CtsBmp"); 127 if ((ejb instanceof EntityHome) == false) 128 throw new NamingException ("ejb/CtsBmp is not a EntityHome"); 129 130 ejb = initCtx.lookup("java:comp/env/ejb/local/bean3"); 132 if ((ejb instanceof StatelessSessionLocalHome) == false) 133 throw new NamingException ("ejb/local/bean3 is not a StatelessSessionLocalHome"); 134 log.debug("ejb/local/bean3 = " + ejb); 135 } 136 137 private void testJdbcDataSource(Context initCtx, Context myEnv) throws NamingException 138 { 139 DataSource ds = (DataSource ) myEnv.lookup("jdbc/DefaultDS"); 141 log.debug("jdbc/DefaultDS = " + ds); 142 } 143 144 private void testMail(Context initCtx, Context myEnv) throws NamingException 145 { 146 Session session = (Session ) myEnv.lookup("mail/DefaultMail"); 148 log.debug("mail/DefaultMail = " + session); 149 } 150 151 private void testJMS(Context initCtx, Context myEnv) throws NamingException 152 { 153 QueueConnectionFactory qf = (QueueConnectionFactory ) myEnv.lookup("jms/QueFactory"); 155 log.debug("jms/QueFactory = " + qf); 156 } 157 158 private void testURL(Context initCtx, Context myEnv) throws NamingException 159 { 160 URL home1 = (URL ) myEnv.lookup("url/JBossHome"); 162 log.debug("url/JBossHome = " + home1); 163 URL home2 = (URL ) initCtx.lookup("java:comp/env/url/JBossHome"); 164 log.debug("url/JBossHome = " + home2); 165 if( home1.equals(home2) == false ) 166 throw new NamingException ("url/JBossHome != java:comp/env/url/JBossHome"); 167 } 168 169 private void testMessageDestinationRefs(Context initCtx, Context myEnv) throws NamingException , JMSException 170 { 171 Object obj = myEnv.lookup("mdr/ConsumesLink"); 172 log.debug("mdr/ConsumesLink = " + obj); 173 if ((obj instanceof Queue ) == false) 174 throw new RuntimeException ("mdr/ConsumesLink is not a javax.jms.Queue"); 175 Queue queue = (Queue ) obj; 176 if ("QUEUE.testQueue".equals(queue.getQueueName())) 177 throw new RuntimeException ("Excepted QUEUE.testQueue, got " + queue); 178 179 obj = myEnv.lookup("mdr/ProducesLink"); 180 log.debug("mdr/ProducesLink = " + obj); 181 if ((obj instanceof Topic ) == false) 182 throw new RuntimeException ("mdr/ProducesLink is not a javax.jms.Topic"); 183 Topic topic = (Topic ) obj; 184 if ("TOPIC.testTopic".equals(topic.getTopicName())) 185 throw new RuntimeException ("Excepted TOPIC.testTopic got " + topic); 186 187 obj = myEnv.lookup("mdr/ConsumesProducesJNDIName"); 188 log.debug("mdr/ConsumesProducesJNDIName = " + obj); 189 if ((obj instanceof Queue ) == false) 190 throw new RuntimeException ("mdr/ConsumesProducesJNDIName is not a javax.jms.Queue"); 191 queue = (Queue ) obj; 192 if ("QUEUE.A".equals(queue.getQueueName())) 193 throw new RuntimeException ("Excepted QUEUE.A, got " + queue); 194 } 195 196 } 197 | Popular Tags |