package observer_subject; import org.omg.CORBA.ORB; import org.omg.CORBA.UserException; import org.omg.CosNaming.NameComponent; import org.omg.CosNaming.NamingContextExt; import org.omg.CosNaming.NamingContextExtHelper; import org.omg.PortableServer.POA; import org.omg.PortableServer.POAHelper; import org.omg.PortableServer.POAManager; public class Client { public static void main(String args[]){ String arg[] = {"-ORBInitialHost","localhost","-ORBInitialPort","1234"}; int status; // initialisation de l'orb ORB orb = ORB.init(arg, null); try { // Obtention d'une reference vers le POA manager de la racine POA rootPoa = POAHelper.narrow(orb.resolve_initial_references("RootPOA")); org.omg.CORBA.Object nc_obj = orb.resolve_initial_references("NameService"); POAManager manager = rootPoa.the_POAManager(); // Activation du POA Manager manager.activate(); // Récupération de la ref de l'objet depuis le NS Subject sub = (Subject)orb.string_to_object( "corbaname::" + arg[1] + ":" + arg[3] + "#Sujet" ); // //Récupération de la référence de l'objet à partir du fichier // String ior ; // String refFile = "ObserverSubject.IOR" ; // java.io.BufferedReader in = new java.io.BufferedReader(new java.io.FileReader(refFile)) ; // ior = in.readLine() ; // org.omg.CORBA.Object o = orb.string_to_object(ior) ; // Subject sub = SubjectHelper.narrow(o); System.out.println("\nCréation d'un observateur..."); TestObserver o1 = new TestObserver(); System.out.println("\nAttache au sujet..."); sub.attach(ObserverHelper.narrow(rootPoa.servant_to_reference(o1))); System.out.println("\n\nModification sur le sujet... (1 réaction attendue)"); sub.provoc_modif(); Thread.sleep(3000); System.out.println("\n\nAjout d'un second observateur..."); TestObserver o2 = new TestObserver(); sub.attach(ObserverHelper.narrow(rootPoa.servant_to_reference(o2))); System.out.println("\nModification sur le sujet... (2 réactions attendues)"); sub.provoc_modif(); Thread.sleep(3000); System.out.println("\n\nAjout de deux objets d'un coup"); TestObserver obs[] = new TestObserver[2]; obs[0] = new TestObserver(); obs[1] = new TestObserver(); /* conversion vers des objets CORBA */ Observer corba_obs[] = new Observer[2]; for(int i=0;i