01: package demo.bank.concurrency;
02:
03: import java.io.*;
04:
05: import org.omg.CosNaming.*;
06:
07: import org.omg.CosTransactions.*;
08:
09: public class Client
10:
11: {
12:
13: public static void main(String[] args)
14:
15: {
16:
17: try
18:
19: {
20:
21: TheBank bank;
22:
23: AccountManager acc_mgr;
24:
25: TransactionFactory transactionFactory;
26:
27: org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args, null);
28:
29: NamingContextExt nc = NamingContextExtHelper.narrow(orb
30: .resolve_initial_references("NameService"));
31:
32: NameComponent[] name = new NameComponent[1];
33:
34: name[0] = new NameComponent("DigiBank", "server");
35:
36: acc_mgr = AccountManagerHelper.narrow(nc.resolve(name));
37:
38: name[0] = new NameComponent("TransactionService", "service");
39:
40: transactionFactory = TransactionFactoryHelper.narrow(nc
41: .resolve(name));
42:
43: System.out.println("> Opening Accounts Acc1 and Acc 2.");
44:
45: Account a1 = acc_mgr.open("Acc1", (float) 199.99);
46:
47: Account a2 = acc_mgr.open("Acc2", (float) 50.08);
48:
49: // Create transaction without timeout;
50:
51: Control control = transactionFactory.create(0);
52:
53: System.out.println("\n--- Balances ---");
54:
55: System.out.println("Acc1 : " + a1.get_balance(control));
56:
57: System.out.println("Acc2 : " + a2.get_balance(control));
58:
59: if (((org.omg.CORBA.Object) acc_mgr)
60: ._is_a("IDL:demo/transaction/TheBank:1.0"))
61:
62: {
63:
64: bank = TheBankHelper.narrow(acc_mgr);
65:
66: System.out
67: .println("> Transfer 100,- from Acc 1 to Acc 2.");
68:
69: bank.transfer(a1, a2, 100);
70:
71: System.out.println("\n--- Balances ---");
72:
73: System.out.println("Acc1 : " + a1.get_balance(control));
74:
75: System.out.println("Acc2 : " + a2.get_balance(control));
76:
77: }
78:
79: }
80:
81: catch (Exception e)
82:
83: {
84:
85: e.printStackTrace();
86:
87: }
88:
89: }
90:
91: }
|