package org.jacorb.test.bugs.bug927;
import org.omg.CORBA.ORB;
import org.omg.PortableServer.POA;
import org.omg.PortableServer.POAHelper;
import org.omg.PortableServer.POAManager;
public class Server
{
public static void main(String[] args) throws Exception
{
//init ORB
ORB orb = ORB.init( args, null );
org.omg.CORBA.Object obj = orb.resolve_initial_references( "PICurrent" );
org.omg.PortableInterceptor.Current piCurrent = org.omg.PortableInterceptor.CurrentHelper.narrow(obj);
//init POA
POA poa =
POAHelper.narrow( orb.resolve_initial_references( "RootPOA" ));
POAManager poa_manager = poa.the_POAManager();
// Create a PERSISTENT POA named 'simple_persistent', beneath the root
//
org.omg.CORBA.Policy[] policies=new org.omg.CORBA.Policy[4];
policies[0]=poa.create_lifespan_policy(org.omg.PortableServer.LifespanPolicyValue.PERSISTENT);
policies[1]=poa.create_id_assignment_policy(org.omg.PortableServer.IdAssignmentPolicyValue.USER_ID);
policies[2]=poa.create_servant_retention_policy(org.omg.PortableServer.ServantRetentionPolicyValue.NON_RETAIN);
policies[3]=poa.create_request_processing_policy(
org.omg.PortableServer.RequestProcessingPolicyValue.USE_SERVANT_MANAGER);
org.omg.PortableServer.POA persistent_poa=
poa.create_POA("simple_persistent",
poa_manager,
policies);
// ServantLocator
ServantLocatorImpl servantLocatorImpl = new ServantLocatorImpl(persistent_poa, piCurrent);
// Set servant manager
persistent_poa.set_servant_manager(servantLocatorImpl);
// create a TestObjectImpl
TestObjectImpl testObjectImpl = new TestObjectImpl(orb);
obj = servantLocatorImpl.registerObject(TestObjectHelper.id(), TestObjectHelper.id(), testObjectImpl);
poa_manager.activate();
System.out.println ("SERVER IOR: " + orb.object_to_string(obj));
System.out.flush();
// wait for requests
orb.run();
}
}