1 /***
2 *
3 * Copyright 2004 Hiram Chirino
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 **/
18 package org.activeio.oneport;
19
20 import java.rmi.RemoteException;
21 import java.util.Properties;
22
23 import javax.naming.NamingException;
24
25 import org.omg.CORBA.ORB;
26 import org.omg.CORBA.Object;
27 import org.omg.PortableServer.POA;
28 import org.omg.PortableServer.POAHelper;
29
30 import EDU.oswego.cs.dl.util.concurrent.Slot;
31
32 /***
33 *
34 */
35 public class OpenORBOnePortSocketFactoryTest extends OnePortAsyncChannelServerTest {
36
37 static public Slot staticResultSlot;
38 private ORB orb;
39 private String serverRef;
40 private TestIIOPServerImpl testIIOPServer;
41 private POA rootPOA;
42
43 protected void startIIOPServer() throws Exception {
44 staticResultSlot = resultSlot;
45
46 Properties props = new Properties();
47 props.setProperty("org.omg.PortableInterceptor.ORBInitializerClass.org.activeio.oneport.OpenORBOpenPortFeatureInitializer", "");
48 props.setProperty("org.omg.CORBA.ORBClass", "org.openorb.orb.core.ORB");
49 props.setProperty("org.omg.CORBA.ORBSingletonClass", "org.openorb.orb.core.ORBSingleton");
50
51 OpenORBOpenPortFeatureInitializer.setContextSocketFactory(new OpenORBOpenPortSocketFactory(server));
52 orb = ORB.init( new String[]{}, props );
53 OpenORBOpenPortFeatureInitializer.setContextSocketFactory(null);
54
55 rootPOA = POAHelper.narrow( orb.resolve_initial_references( "RootPOA" ) );
56
57 TestIIOPServerImpl srv = new TestIIOPServerImpl();
58 serverRef = orb.object_to_string( srv._this( orb ) );
59 rootPOA.the_POAManager().activate();
60 new Thread(){
61 public void run() {
62 orb.run();
63 }
64 }.start();
65 }
66
67 protected void stopIIOPServer() throws Exception {
68 orb.shutdown(true);
69 }
70
71 protected void hitIIOPServer( ) throws NamingException, RemoteException
72 {
73
74 Properties props = new Properties();
75 props.setProperty("org.omg.CORBA.ORBClass", "org.openorb.orb.core.ORB");
76 props.setProperty("org.omg.CORBA.ORBSingletonClass", "org.openorb.orb.core.ORBSingleton");
77 ORB orb = ORB.init( new String[]{}, props );
78
79 Object obj = orb.string_to_object( serverRef );
80 TestIIOPServer srv = TestIIOPServerHelper.narrow( obj );
81 try {
82 srv.test();
83 } catch (Throwable e) {
84 e.printStackTrace();
85 } finally {
86 orb.shutdown(true);
87 }
88 }
89
90 }