package org.jacorb.demo.bank.concurrency; import java.io.*; import org.omg.CosNaming.*; import org.omg.CosTransactions.*; public class Client { public static void main( String[] args ) throws Exception { TheBank bank; AccountManager acc_mgr; TransactionFactory transactionFactory; org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args,null); 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)); name[0] = new NameComponent( "TransactionService", "service"); transactionFactory = TransactionFactoryHelper.narrow( nc.resolve(name)); System.out.println("> Opening Accounts Acc1 and Acc 2."); Account a1 = acc_mgr.open("Acc1", (float)199.99); Account a2 = acc_mgr.open("Acc2", (float)50.08); // Create transaction without timeout; Control control = transactionFactory.create(0); System.out.println("\n--- Balances ---"); System.out.println("Acc1 : " + a1.get_balance(control) ); System.out.println("Acc2 : " + a2.get_balance(control) ); if( ((org.omg.CORBA.Object)acc_mgr)._is_a("IDL:org/jacorb/demo/transaction/TheBank:1.0")) { bank = TheBankHelper.narrow(acc_mgr ); System.out.println("> Transfer 100,- from Acc 1 to Acc 2."); bank.transfer(a1, a2, 100); System.out.println("\n--- Balances ---"); System.out.println("Acc1 : " + a1.get_balance(control) ); System.out.println("Acc2 : " + a2.get_balance(control) ); } } }