package demo.poa_monitor.root_poa;

import demo.poa_monitor.foox.*;
import org.omg.CORBA.ORB;
import org.omg.PortableServer.*;
import org.omg.CosNaming.*;
import java.io.*;

public class Server {
	public static String description = "Root-POA only";
	public static void main(String[] args) {
		try {
			
			ORB        orb     = org.omg.CORBA.ORB.init(args, null);
			POA        rootPOA = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
			POAManager poaMgr  = rootPOA.the_POAManager();

			FooFactoryImpl servant   = new FooFactoryImpl();
			FooFactory     reference = servant._this(orb);

			PrintWriter pw = new PrintWriter(new FileWriter("../fooFactory.ior"));
			pw.println(orb.object_to_string(reference));
		    	pw.close(); 
/*			
			// CORBA compliant:			
			NamingContextExt nc = NamingContextExtHelper.narrow(orb.resolve_initial_references("NameService"));
			NameComponent [] name = new NameComponent[1];
			name[0] = new NameComponent("FooFactory", "service");
			nc.bind(name, reference);
*/			
			poaMgr.activate();
			System.out.println("[ Server ready ]");
			orb.run();
									
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}


