import java.awt.*;
import net.jini.discovery.*;
import net.jini.core.lookup.*;
import java.rmi.RemoteException;
import java.rmi.RMISecurityManager;

public class TestGetPut3 implements DiscoveryListener {
    protected ServiceTemplate template;
    protected LookupDiscovery disco;
	
    
    public static void main(String[] argv) {
	   new TestGetPut3();     
           try {
             while(true) {Thread.currentThread().sleep(100000L);}
           }
           catch(java.lang.InterruptedException e) {}      
       }
	    
    public TestGetPut3() {
	    System.setSecurityManager(new RMISecurityManager());
     	    LookupDiscovery discover = null;
	    try {
		  
                  // debug
                  System.out.println("Constructor ");
                  //end debug

               discover = new LookupDiscovery(
		            LookupDiscovery.ALL_GROUPS);
	    }
	    catch(Exception e) 
	        { System.err.println(""+e);
		  System.exit(1);
		}
	
            discover.addDiscoveryListener(this);
     }
		 
     public void discovered(DiscoveryEvent ev) {
         ServiceRegistrar[] newregs = ev.getRegistrars();
         // debug
          System.out.println("entered discovered ");
         // end debug
         Class [] classes = new Class[]{GetPut.class};
		 GetPut o = null;
		 ServiceTemplate template = 
		    new ServiceTemplate(null, classes, null);
		 for (int i=0 ; i<newregs.length ; i++) {
		    ServiceRegistrar r = newregs[i];
		    try {
			  o = (GetPut) r.lookup(template);
		    }
	  	    catch(java.rmi.RemoteException e) {
			   e.printStackTrace();
			   System.exit(2);
		    }
		    if(o == null) {
                       //debug
                       System.out.println("Continuing search ");
                       continue;
                       }
			//create a GUI to deal with the getput 	   
			Frame f = new ClientGui(o);	
			Dimension d = new Dimension(300,200);
            f.setSize(d);
	        f.show();
		  }
        }
        public void discarded(DiscoveryEvent ev) {}
    }
    
    

