package org.jacorb.demo.tao_imr;
import java.io.*;
import org.omg.CORBA.*;
import org.omg.PortableServer.*;
import org.jacorb.util.*;
public class Server
extends SomeIfPOA
{
public Server()
{
}
public void op()
{
System.out.println("Server: Received call from client");
}
public static void main(String[] args)
{
String ior_file = "server.ior";
if( args.length > 0 )
{
ior_file = args[0];
}
System.setProperty( "jacorb.implname", "imr_demo" );
// System.setProperty( "jacorb.use_tao_imr", "on" );
try
{
//init ORB
ORB orb = ORB.init( args, null );
//get root POA
org.omg.PortableServer.POA root_poa =
org.omg.PortableServer.POAHelper.narrow(
orb.resolve_initial_references("RootPOA"));
//create necessary policies
org.omg.CORBA.Policy[] policies = new org.omg.CORBA.Policy[2];
policies[0] = root_poa.create_lifespan_policy(LifespanPolicyValue.PERSISTENT);
policies[1] = root_poa.create_id_assignment_policy(IdAssignmentPolicyValue.USER_ID);
//create user POA with these policies
POA demo_poa = root_poa.create_POA( "ImRDemoServerPOA",
root_poa.the_POAManager(),
policies );
//destroy policies
for (int i=0; i<policies.length; i++)
policies[i].destroy();
//instanciate implementation
Server s = new Server();
//create object id
byte[] id = "imr_demo".getBytes();
//activate object
demo_poa.activate_object_with_id( id, s );
//make POA accept requests
root_poa.the_POAManager().activate();
// create the object reference
org.omg.CORBA.Object obj =
demo_poa.servant_to_reference( s );
PrintWriter pw =
new PrintWriter( new FileWriter( ior_file ));
// print stringified object reference to file
pw.println( orb.object_to_string( obj ));
pw.flush();
pw.close();
// wait for requests
// Thread.sleep( timeout );
orb.run();
orb.shutdown( true );
}
catch( Exception e )
{
System.out.println( e );
}
}
}