1 package demo.bank.transaction.implicit; 2 3 import java.io.*; 4 import org.omg.CosNaming.*; 5 import org.omg.CORBA.ORB ; 6 import org.omg.PortableServer.POA ; 7 8 public class Client 9 { 10 11 public static Account open(String name, 12 float initial_deposit, 13 POA poa, 14 ORB orb, boolean nasty) 15 { 16 try 17 { 18 AccountImpl acc = 19 new AccountImpl(orb, name, initial_deposit, nasty); 20 21 org.omg.CORBA.Object o = poa.servant_to_reference(acc); 22 return acc._this(orb); 23 } 24 catch( Exception e ) 25 { 26 e.printStackTrace(); 27 throw new org.omg.CORBA.UNKNOWN (); 28 } 29 } 30 31 public static void main( String [] args ) 32 { 33 try 34 { 35 TheBank bank; 36 AccountManager acc_mgr; 37 java.util.Properties props = 38 new java.util.Properties (); 39 props.put("org.omg.PortableInterceptor.ORBInitializerClass.TSServerInit", 40 "org.jacorb.transaction.TransactionInitializer"); 41 42 ORB orb = ORB.init(args,props); 43 44 NamingContextExt nc = NamingContextExtHelper.narrow 45 (orb.resolve_initial_references("NameService")); 46 NameComponent [] name = 47 new NameComponent[1]; 48 name[0] = 49 new NameComponent("DigiBank", "server"); 50 51 acc_mgr = AccountManagerHelper.narrow( nc.resolve(name)); 52 53 POA poa = (POA ) orb.resolve_initial_references("RootPOA"); 54 poa.the_POAManager().activate(); 55 56 System.out.println("> Opening Accounts Acc1 and Acc 2."); 57 58 Account a1 = open("Acc1", (float)199.99, poa, orb, true); 59 Account a2 = open("Acc2", (float)50.08, poa, orb, false); 60 61 System.out.println("\n--- Balances ---"); 62 System.out.println("Acc1 : " + a1.balance() ); 63 System.out.println("Acc2 : " + a2.balance() ); 64 65 bank = TheBankHelper.narrow(acc_mgr ); 66 67 boolean ok = false; 68 do{ 69 System.out.println("> Transfer 100,- from Acc 1 to Acc 2."); 70 try{ 71 bank.transfer(a1, a2, 100); 72 ok = true; 73 }catch (Throwable e){ 74 System.out.println("Got: " + e); 75 } 76 }while (! ok); 77 78 System.out.println("\n--- Balances ---"); 79 System.out.println("Acc1 : " + a1.balance() ); 80 System.out.println("Acc2 : " + a2.balance() ); 81 82 do 83 { 84 System.out.println("> Transfer 50,- from Acc 2 to Acc 1."); 85 try 86 { 87 bank.transfer(a2, a1, 50); 88 ok = true; 89 } 90 catch (Throwable e){ 91 System.out.println("Got: " + e); 92 } 93 } 94 while (! ok); 95 96 System.out.println("\n--- Balances ---"); 97 System.out.println("Acc1 : " + a1.balance() ); 98 System.out.println("Acc2 : " + a2.balance() ); 99 } 100 catch ( Exception e ) 101 { 102 e.printStackTrace(); 103 } 104 } 105 } 106 | Popular Tags |