package test.delegateSync;
import java.io.*;
import org.omg.CORBA.*;
import java.util.Properties;
public class Test
{
public boolean keep_going = true;
public class Checker implements Runnable
{
private org.omg.CORBA.Object obj1;
private org.omg.CORBA.Object obj2;
public Checker (org.omg.CORBA.Object o1, org.omg.CORBA.Object o2)
{
obj1 = o1;
obj2 = o2;
}
public void run ()
{
for (int count = 0; keep_going && count < 5; count++) {
System.out.print (".");
boolean whatever = obj1._is_equivalent(obj2);
// if (whatever)
// System.out.println ("objects are equivalent");
try {
Thread.sleep (1000);
} catch (InterruptedException ex) {
}
}
if (keep_going)
{
System.out.println ("\nSuccess, the test didn't block");
System.exit (0);
}
}
}
public void do_work (ORB orb, String ior)
{
org.omg.CORBA.Object obj1 = orb.string_to_object(ior);
org.omg.CORBA.Object obj2 = orb.string_to_object(ior);
Checker c = new Checker (obj1, obj2);
Thread t = new Thread (c);
t.start();
System.out.println ("starting invocation");
// just do anything to force an invocation;
if (obj1._is_a ("IDL:DoesNotMatter:1.0"))
System.out.println ("Wierd, but _is_a returned true!");
System.out.println ("invocation complete");
}
public static void main( String args[] )
{
if( args.length != 1 )
{
System.out.println( "Usage: jaco test.delegateSync.Test <ior|fake_host>" );
System.exit( 1 );
}
Test c = new Test();
try
{
Properties p = new Properties();
// p.setProperty("jacorb.log.default.verbosity","4");
p.setProperty("jacorb.connection.client.connect_timeout","8000");
// initialize the ORB.
ORB orb = ORB.init( args,p );
if (args[0].startsWith ("file") ||
args[0].startsWith ("corbaloc"))
c.do_work (orb, args[0]);
else
{
String ior = "corbaloc::" + args[0] + ":36660/bogus";
c.do_work (orb, ior);
}
}
catch( Exception ex )
{
ex.printStackTrace();
}
c.keep_going = false;
System.out.println ("Failed, the equivalency test was blocked or a bad ior/test host specified");
}
}