1 23 24 package com.rift.coad.lib.httpd; 26 27 import com.rift.coad.lib.interceptor.InterceptorFactory; 29 import com.rift.coad.lib.naming.NamingDirector; 30 import com.rift.coad.lib.security.ThreadPermissionSession; 31 import com.rift.coad.lib.security.UserSession; 32 import com.rift.coad.lib.transaction.TransactionDirector; 33 import java.io.BufferedReader ; 34 import java.io.InputStreamReader ; 35 import java.net.URL ; 36 import java.net.URLConnection ; 37 import java.net.InetAddress ; 38 import java.util.HashSet ; 39 import java.util.Set ; 40 import javax.xml.rpc.Service ; 41 import javax.xml.rpc.JAXRPCException ; 42 import javax.xml.namespace.QName ; 43 import javax.xml.rpc.ServiceFactory ; 44 import javax.xml.rpc.Stub ; 45 46 import junit.framework.*; 48 49 import org.apache.log4j.Logger; 51 52 import com.rift.coad.lib.thread.CoadunationThreadGroup; 54 import com.rift.coad.lib.security.ThreadsPermissionContainer; 55 import com.rift.coad.lib.configuration.Configuration; 56 import com.rift.coad.lib.configuration.ConfigurationFactory; 57 import com.rift.coad.lib.deployment.DeploymentLoader; 58 import com.rift.coad.lib.deployment.webservice.WebServiceManager; 59 import com.rift.coad.lib.deployment.webservice.WebServiceConnector; 60 import com.rift.coad.lib.thirdparty.axis.AxisManager; 61 import com.rift.coad.lib.security.RoleManager; 62 import com.rift.coad.lib.security.SessionManager; 63 import com.rift.coad.lib.security.ThreadsPermissionContainer; 64 import com.rift.coad.lib.security.ThreadsPermissionContainerAccessor; 65 import com.rift.coad.lib.security.user.UserStoreManager; 66 import com.rift.coad.lib.security.user.UserStoreManagerAccessor; 67 import com.rift.coad.lib.security.user.UserSessionManager; 68 import com.rift.coad.lib.security.user.UserSessionManagerAccessor; 69 import com.rift.coad.lib.security.login.LoginManager; 70 71 72 76 public class HttpDaemonTest extends TestCase { 77 78 79 82 public interface WebServiceSEI extends java.rmi.Remote { 83 84 90 public String helloWorld(String msg); 91 } 92 93 94 97 public class POJOWebServiceClient { 98 99 private final static String SERVICE_NAME = "urn:WebService/wsdl"; 101 102 private String url = null; 104 private WebServiceSEI proxy = null; 105 106 107 110 public POJOWebServiceClient(String url) { 111 this.url = url; 112 } 113 114 120 public WebServiceSEI connect() throws Exception { 121 if (proxy != null) { 123 return proxy; 124 } 125 126 try { 128 129 URL serviceUrl = new URL (url); 130 131 ServiceFactory serviceFactory = ServiceFactory.newInstance(); 132 133 Service testService = 134 serviceFactory.createService(serviceUrl, 135 new QName (SERVICE_NAME,"WebService")); 136 137 proxy = (WebServiceSEI)testService.getPort( 138 new QName (SERVICE_NAME,"WebServiceSEIPort"), 139 WebServiceSEI.class); 140 141 Stub stub = (Stub )proxy; 142 stub._setProperty(Stub.USERNAME_PROPERTY,"test"); 143 stub._setProperty(Stub.PASSWORD_PROPERTY,"112233"); 144 145 return proxy; 146 147 } catch (Exception ex) { 148 throw new Exception ( 149 "Failed to make a connection to the test service : " + 150 ex.getMessage(),ex); 151 } 152 } 153 154 } 155 156 public HttpDaemonTest(String testName) { 157 super(testName); 158 } 159 160 protected void setUp() throws Exception { 161 } 162 163 protected void tearDown() throws Exception { 164 } 165 166 public static Test suite() { 167 TestSuite suite = new TestSuite(HttpDaemonTest.class); 168 169 return suite; 170 } 171 172 175 public void testDaemon() throws Exception { 176 System.out.println("Daemon"); 177 178 ThreadsPermissionContainer permissionContainer = 180 new ThreadsPermissionContainer(); 181 ThreadsPermissionContainerAccessor.init(permissionContainer); 182 SessionManager.init(permissionContainer); 183 UserStoreManager userStoreManager = new UserStoreManager(); 184 UserStoreManagerAccessor.init(userStoreManager); 185 UserSessionManager sessionManager = new UserSessionManager( 186 permissionContainer,userStoreManager); 187 UserSessionManagerAccessor.init(sessionManager); 188 LoginManager.init(sessionManager,userStoreManager); 189 190 RoleManager.getInstance(); 192 193 CoadunationThreadGroup threadGroup = new CoadunationThreadGroup(sessionManager, 195 userStoreManager); 196 197 InterceptorFactory.init(permissionContainer,sessionManager,userStoreManager); 198 199 Set set = new HashSet (); 201 set.add("test"); 202 UserSession user = new UserSession("test1", set); 203 permissionContainer.putSession(new Long (Thread.currentThread().getId()), 204 new ThreadPermissionSession( 205 new Long (Thread.currentThread().getId()),user)); 206 207 NamingDirector.init(threadGroup); 209 210 TransactionDirector transactionDirector = TransactionDirector.init(); 212 213 DeploymentLoader deploymentLoader = new DeploymentLoader( 215 new java.io.File (System.getProperty("test.jar"))); 216 217 AxisManager.init(); 219 220 WebServiceManager webServiceManager = new WebServiceManager(); 222 WebServiceConnector.init(webServiceManager); 223 webServiceManager.load(deploymentLoader); 225 226 HttpDaemon httpDaemon = new HttpDaemon(threadGroup); 228 229 String fqdn = InetAddress.getLocalHost().getCanonicalHostName(); 231 232 httpConnection(fqdn); 233 wsdlConnection(fqdn); 234 POJOWebServiceClient pojoWebServiceClient = new POJOWebServiceClient( 235 "http://" + fqdn + ":8085/WebServiceTest?WSDL"); 236 rpcConnection(pojoWebServiceClient); 237 238 httpDaemon.shutdown(); 239 } 240 241 242 245 private void httpConnection(String fqdn) throws Exception { 246 try { 247 URL url = new URL ("http://" + fqdn + ":8085/"); 248 BufferedReader in = new BufferedReader ( 249 new InputStreamReader ( 250 url.openStream())); 251 String inputLine; 252 while ((inputLine = in.readLine()) != null) 253 System.out.println(inputLine); 254 in.close(); 255 fail("No out put should be retrieve here"); 256 } catch (java.io.FileNotFoundException ex) { 257 } 259 } 260 261 264 private void wsdlConnection(String fqdn) throws Exception { 265 URL url = new URL ("http://" + fqdn + ":8085/WebServiceTest?WSDL"); 266 BufferedReader in = new BufferedReader ( 267 new InputStreamReader ( 268 url.openStream())); 269 String inputLine; 270 while ((inputLine = in.readLine()) != null) 271 System.out.println(inputLine); 272 in.close(); 273 } 274 275 276 279 private void rpcConnection(POJOWebServiceClient pojoWebServiceClient) 280 throws Exception { 281 try { 282 WebServiceSEI webServiceSEI = pojoWebServiceClient.connect(); 283 webServiceSEI.helloWorld("This is a test call"); 284 } catch (Exception ex) { 285 ex.printStackTrace(System.out); 286 throw ex; 287 } 288 } 289 290 291 292 } 293 | Popular Tags |