package com.wiley.compbooks.brose.chapter9.any;

import org.omg.CORBA.*;
import org.omg.PortableServer.*;
import org.omg.CosNaming.*;

public class Server 
{

    public static void main(String[] args) 
    {
        try 
        {
            if( args.length != 1 )
            {
                System.err.println("Usage: java com....chapter9.any.Server <location>");
                System.exit(1);
            }

            //init orb
            ORB orb = ORB.init( args, null );

            //init  object adapter
            POA poa = POAHelper.narrow( orb.resolve_initial_references("RootPOA"));
    
            // create a GoodDay object
            GoodDayImpl goodDayImpl = new GoodDayImpl( args[0] );
    
            // export the object reference
            org.omg.CORBA.Object o = poa.servant_to_reference(goodDayImpl);

            // print stringiefied object reference
            System.out.println( orb.object_to_string(o) );

            NamingContextExt nc =
                NamingContextExtHelper.narrow( orb.resolve_initial_references("NameService"));

            nc.bind( nc.to_name("any.example"), o);
    
            // wait for requests
            poa.the_POAManager().activate();
            orb.run();
        }
        catch(SystemException e) 
        {
            e.printStackTrace();
            System.err.println(e);
        }
        catch(UserException u) 
        {
            u.printStackTrace();
            System.err.println(u);
        }
    }
}
