KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > demo > bank > transaction > implicit > Client


1 package demo.bank.transaction.implicit;
2
3 import java.io.*;
4 import org.omg.CosNaming.*;
5 import org.omg.CORBA.ORB JavaDoc;
6 import org.omg.PortableServer.POA JavaDoc;
7
8 public class Client
9 {
10
11     public static Account open(String JavaDoc name,
12                                float initial_deposit,
13                                POA JavaDoc poa,
14                                ORB JavaDoc orb, boolean nasty)
15     {
16         try
17         {
18             AccountImpl acc =
19                 new AccountImpl(orb, name, initial_deposit, nasty);
20
21             org.omg.CORBA.Object JavaDoc o = poa.servant_to_reference(acc);
22             return acc._this(orb);
23         }
24         catch( Exception JavaDoc e )
25         {
26             e.printStackTrace();
27             throw new org.omg.CORBA.UNKNOWN JavaDoc();
28         }
29     }
30
31     public static void main( String JavaDoc[] args )
32     {
33         try
34         {
35             TheBank bank;
36             AccountManager acc_mgr;
37             java.util.Properties JavaDoc props =
38                 new java.util.Properties JavaDoc();
39             props.put("org.omg.PortableInterceptor.ORBInitializerClass.TSServerInit",
40                                "org.jacorb.transaction.TransactionInitializer");
41
42             ORB JavaDoc 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 JavaDoc poa = (POA JavaDoc) 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 JavaDoc 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 JavaDoc 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 JavaDoc e )
101         {
102             e.printStackTrace();
103         }
104     }
105 }
106
Popular Tags