Code for Corba program of date operations in Java
// IDL
module GetDateModule
{
interface GetDate
{
string get_date();
longlong get_time();
};
};
// GetDateImpl// Contains the implementation of the methods defined in the IDL file.
import GetDateModule.GetDatePOA;
import java.lang.String;
import java.util.Date;
class GetDateImpl extends GetDatePOA
{
Date dt=new Date();
GetDateImpl()
{
super();
System.out.println("Encriptor Object Created");
}
public String get_date()
{
String time=dt.toString();
return (time);
}
publiclong get_time()
{
return(dt.getTime());
}
}
// Server
import GetDateModule.GetDate;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
import org.omg.PortableServer.*;
class GetDateServer
{
publicstaticvoid main(String[] args)
{
try
{
// initialize the ORB
org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args,null);
// initialize the BOA/POA
POA rootPOA = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
rootPOA.the_POAManager().activate();
// creating the GetDate object
GetDateImpl GetDate = new GetDateImpl();
// get the object reference from the servant class
org.omg.CORBA.Object ref = rootPOA.servant_to_reference(GetDate);
System.out.println("Step1");
GetDate h_ref = GetDateModule.GetDateHelper.narrow(ref);
System.out.println("Step2");
org.omg.CORBA.Object objRef =orb.resolve_initial_references("NameService");
System.out.println("Step3");
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
System.out.println("Step4");
String name = "GetDate";
NameComponent path[] = ncRef.to_name(name);
ncRef.rebind(path,h_ref);
System.out.println("GetDate Server reading and waiting....");
orb.run();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
// Client
import GetDateModule.*;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
import java.io.*;
import java.lang.String;
import java.util.Date;
class GetDateClient
{
publicstaticvoid main(String args[])
{
GetDate GetDateImpl=null;
int i;
try
{
// initialize the ORB
org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args,null);
org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
String name = "GetDate";
GetDateImpl = GetDateHelper.narrow(ncRef.resolve_str(name));
Date dt=new Date();
long clientTime=dt.getTime();
System.out.println("Client Date and Time="+dt);
String serverDate=(String) GetDateImpl.get_date();
long serverTime=(long) GetDateImpl.get_time();
System.out.println("Server Date and Time="+serverDate);
System.out.println("Time Difference in Server and Client(in millisecond)="+(clientTime-serverTime));
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
// OUTPUT
Z:\mca317\corba\four>java -classpath .\ GetDateClient -ORBInitialPort 1050 -ORBI
nitialHost mca395
Client Date and Time=Thu Dec 01 16:20:22 IST 2005
Server Date and Time=Thu Dec 01 16:20:16 IST 2005
Time Difference in Server and Client(in millisecond)=5248