public static void main(String[] args) { String groupName = "TestGroup"; MulticastStrategy tree = new TreeBaseMulticast(); Orderer causal = new CausalOrderer(); try { ComMember mbr1 = new ComMember(tree, "mbr1"); ComObserver m = new MemberImpl(causal, mbr1); mbr1.addObserver(m); mbr1.addObserver(new groupRegisteringTest()); Registry dictionary = LocateRegistry.getRegistry(NamingService.SERVER_PORT); NamingServiceRemote server = (NamingServiceRemote) dictionary.lookup(NamingService.SERVICE_NAME); LinkedList<String> groups = server.getGroups(); if (!(groups.isEmpty())) { System.out.println("Available groups : "); for (String grp : groups) System.out.println("\t- " + grp); } RemoteMember leader = server.joinGroup("TestGroup", mbr1); System.out.println(leader.toString()); leader.deliver(new ComMessage<String>(new String("Hej Hej!"))); // mbr.post( new CommMessage<String>( new String("Hej Hej!") ), server.getSharedObjects() ) ; } catch (RemoteException e) { e.printStackTrace(); } catch (NotBoundException e) { e.printStackTrace(); } }
/** * Notify observer when new member want to join a group * * @param member New member joining to the group * @param groupID Group name to join */ @Override public void notifyNewMember(RemoteMember member, String groupID) { System.out.println(member.toString() + " asked to join group " + groupID); }