package org.jacorb.demo.bank.concurrency; import org.omg.CORBA.*; import org.omg.CORBA.ORBPackage.*; import org.omg.CosTransactions.*; import org.omg.CosNaming.*; import java.io.*; import org.jacorb.concurrency.*; import org.jacorb.transaction.*; public class Server { public static void main( String[] args ) throws Exception { org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args, null); org.omg.PortableServer.POA poa = org.omg.PortableServer.POAHelper.narrow(orb.resolve_initial_references("RootPOA")); poa.the_POAManager().activate(); NamingContextExt nc = NamingContextExtHelper.narrow(orb.resolve_initial_references("NameService")); NameComponent [] name = new NameComponent[1]; TransactionService.start( poa, 100 ); name[0] = new NameComponent( "TransactionService", "service"); nc.bind(name, TransactionService.get_reference()); LockSetFactoryImpl lsf = new LockSetFactoryImpl( poa ); name[0] = new NameComponent( "ConcurrencyControlService", "service"); nc.bind(name, poa.servant_to_reference( lsf )); org.omg.CORBA.Object o = poa.servant_to_reference( new BankImpl(orb,poa)); name[0] = new NameComponent( "DigiBank", "server"); nc.bind(name, o); if (args.length == 2) { File killFile = new File(args[1]); while(!killFile.exists()) { Thread.sleep(1000); } orb.shutdown(true); } else { orb.run(); } } }