package org.jacorb.demo.bank.transaction.implicit; import java.io.*; import org.omg.CosNaming.*; import org.omg.CORBA.ORB; import org.omg.PortableServer.POA; public class Client { public static Account open(String name, float initial_deposit, POA poa, ORB orb, boolean nasty) { try { AccountImpl acc = new AccountImpl(orb, name, initial_deposit, nasty); org.omg.CORBA.Object o = poa.servant_to_reference(acc); return acc._this(orb); } catch( Exception e ) { e.printStackTrace(); throw new org.omg.CORBA.UNKNOWN(); } } public static void main( String[] args ) { try { TheBank bank; AccountManager acc_mgr; java.util.Properties props = new java.util.Properties(); props.put("org.omg.PortableInterceptor.ORBInitializerClass.TSServerInit", "org.jacorb.transaction.TransactionInitializer"); ORB orb = ORB.init(args,props); NamingContextExt nc = NamingContextExtHelper.narrow (orb.resolve_initial_references("NameService")); NameComponent [] name = new NameComponent[1]; name[0] = new NameComponent("DigiBank", "server"); acc_mgr = AccountManagerHelper.narrow( nc.resolve(name)); POA poa = (POA) orb.resolve_initial_references("RootPOA"); poa.the_POAManager().activate(); System.out.println("> Opening Accounts Acc1 and Acc 2."); Account a1 = open("Acc1", (float)199.99, poa, orb, true); Account a2 = open("Acc2", (float)50.08, poa, orb, false); System.out.println("\n--- Balances ---"); System.out.println("Acc1 : " + a1.balance() ); System.out.println("Acc2 : " + a2.balance() ); bank = TheBankHelper.narrow(acc_mgr ); boolean ok = false; do{ System.out.println("> Transfer 100,- from Acc 1 to Acc 2."); try{ bank.transfer(a1, a2, 100); ok = true; }catch (Throwable e){ System.out.println("Got: " + e); } }while (! ok); System.out.println("\n--- Balances ---"); System.out.println("Acc1 : " + a1.balance() ); System.out.println("Acc2 : " + a2.balance() ); do { System.out.println("> Transfer 50,- from Acc 2 to Acc 1."); try { bank.transfer(a2, a1, 50); ok = true; } catch (Throwable e){ System.out.println("Got: " + e); } } while (! ok); System.out.println("\n--- Balances ---"); System.out.println("Acc1 : " + a1.balance() ); System.out.println("Acc2 : " + a2.balance() ); } catch ( Exception e ) { e.printStackTrace(); } } }