--- /dev/null
+package org.apache.catalina.tribes.test.membership;\r
+\r
+import org.apache.catalina.tribes.group.GroupChannel;\r
+import org.apache.catalina.tribes.membership.MemberImpl;\r
+import org.apache.catalina.tribes.MembershipListener;\r
+import org.apache.catalina.tribes.Member;\r
+import org.apache.catalina.tribes.Channel;\r
+\r
+public class NamedNodes implements MembershipListener{\r
+ \r
+ public void namedNodes() throws Exception {\r
+ GroupChannel[] channels = new GroupChannel[3];\r
+ for (int i=0; i<channels.length; i++) {\r
+ channels[i] = new GroupChannel();\r
+ //start the receiver, so that we can identify the local member\r
+ channels[i].start(Channel.SND_RX_SEQ);\r
+ MemberImpl member = (MemberImpl)channels[i].getLocalMember(false);\r
+ String name = "Member Nr-"+(i+1);\r
+ member.setPayload(name.getBytes("ASCII"));\r
+ channels[i].addMembershipListener(this);\r
+ channels[i].start(Channel.SND_TX_SEQ|Channel.MBR_RX_SEQ|Channel.MBR_TX_SEQ);\r
+ }\r
+ Thread.sleep(5000);\r
+ for (int i=0; i<channels.length; i++) {\r
+ channels[i].stop(Channel.DEFAULT);\r
+ Thread.sleep(1000);\r
+ }\r
+ }\r
+ \r
+ public static void main(String[] args) throws Exception {\r
+ NamedNodes nm = new NamedNodes();\r
+ nm.namedNodes();\r
+ }\r
+ \r
+ public void memberAdded(Member member) {\r
+ try {\r
+ String name = new String(member.getPayload(), "ASCII");\r
+ System.out.println("Node with name:"+name+" just joined");\r
+ }catch ( Exception x ) {\r
+ x.printStackTrace();\r
+ }\r
+ }\r
+\r
+ public void memberDisappeared(Member member) {\r
+ try {\r
+ String name = new String(member.getPayload(), "ASCII");\r
+ System.out.println("Node with name:"+name+" just left");\r
+ }catch ( Exception x ) {\r
+ x.printStackTrace();\r
+ }\r
+ \r
+ }\r
+\r
+}
\ No newline at end of file