+
+ @Override
+ public Address getSelfAddress() {
+ return selfAddress;
+ }
+
+ public void setSelfAddress(Address selfAddress) {
+ this.selfAddress = selfAddress;
+ }
+
+ public static void sendMemberUp(ActorRef to, String memberName, String address){
+ to.tell(createMemberUp(memberName, address), null);
+ }
+
+ public static void sendMemberRemoved(ActorRef to, String memberName, String address){
+ to.tell(createMemberRemoved(memberName, address), null);
+ }
+
+ private static ClusterEvent.MemberRemoved createMemberRemoved(String memberName, String address) {
+ akka.cluster.UniqueAddress uniqueAddress = new UniqueAddress(
+ AddressFromURIString.parse(address), 55);
+
+ Set<String> roles = new HashSet<>();
+
+ roles.add(memberName);
+
+ akka.cluster.Member member = new akka.cluster.Member(uniqueAddress, 1, MemberStatus
+ .removed(),
+ JavaConversions.asScalaSet(roles).<String>toSet());
+
+ return new ClusterEvent.MemberRemoved(member, MemberStatus.up());
+
+ }
+
+
+ private static ClusterEvent.MemberUp createMemberUp(String memberName, String address) {
+ akka.cluster.UniqueAddress uniqueAddress = new UniqueAddress(
+ AddressFromURIString.parse(address), 55);
+
+ Set<String> roles = new HashSet<>();
+
+ roles.add(memberName);
+
+ akka.cluster.Member member = new akka.cluster.Member(uniqueAddress, 1, MemberStatus.up(),
+ JavaConversions.asScalaSet(roles).<String>toSet());
+
+ return new ClusterEvent.MemberUp(member);
+ }