X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-remoterpc-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fremote%2Frpc%2Fregistry%2Fgossip%2FMessages.java;h=6f81fe8b32e3c30ddfa3325a0c9b81b2a3d6ca93;hb=e9fce74e37472296faa2faf1acbd110b74196032;hp=00437e7e5639fc382e8b1434d4b02495ef1ac56e;hpb=20156b149d56b1b14a06d344366b8e1af1c22fe8;p=controller.git
diff --git a/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/gossip/Messages.java b/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/gossip/Messages.java
index 00437e7e56..6f81fe8b32 100644
--- a/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/gossip/Messages.java
+++ b/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/gossip/Messages.java
@@ -9,117 +9,125 @@ package org.opendaylight.controller.remote.rpc.registry.gossip;
import akka.actor.Address;
import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSet;
import java.io.Serializable;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import org.opendaylight.controller.remote.rpc.registry.gossip.Messages.BucketStoreMessages.ContainsBucketVersions;
import org.opendaylight.controller.remote.rpc.registry.gossip.Messages.BucketStoreMessages.ContainsBuckets;
-
/**
* These messages are used by {@link org.opendaylight.controller.remote.rpc.registry.gossip.BucketStore} and
* {@link org.opendaylight.controller.remote.rpc.registry.gossip.Gossiper} actors.
*/
public class Messages {
- public static class BucketStoreMessages{
+ public static class BucketStoreMessages {
- public static class GetAllBuckets implements Serializable {
+ public static final class GetAllBuckets implements Serializable {
private static final long serialVersionUID = 1L;
}
- public static class GetBucketsByMembers implements Serializable{
+ public static final class GetBucketsByMembers implements Serializable {
private static final long serialVersionUID = 1L;
private final Set
members;
- public GetBucketsByMembers(Set members){
+ public GetBucketsByMembers(final Set members) {
Preconditions.checkArgument(members != null, "members can not be null");
- this.members = members;
+ this.members = ImmutableSet.copyOf(members);
}
public Set getMembers() {
- return new HashSet<>(members);
+ return members;
}
}
- public static class ContainsBuckets implements Serializable{
+ public static class ContainsBuckets> implements Serializable {
private static final long serialVersionUID = -4940160367495308286L;
- private final Map buckets;
+ private final Map> buckets;
- public ContainsBuckets(Map buckets){
+ protected ContainsBuckets(final Map> buckets) {
Preconditions.checkArgument(buckets != null, "buckets can not be null");
- this.buckets = buckets;
+ this.buckets = ImmutableMap.copyOf(buckets);
}
- public Map getBuckets() {
- Map copy = new HashMap<>(buckets.size());
-
- for (Map.Entry entry : buckets.entrySet()){
- //ignore null entries
- if ( (entry.getKey() == null) || (entry.getValue() == null) ) {
- continue;
- }
- copy.put(entry.getKey(), entry.getValue());
- }
- return copy;
+ public final Map> getBuckets() {
+ return buckets;
}
}
- public static class GetAllBucketsReply extends ContainsBuckets implements Serializable{
+ public static final class GetAllBucketsReply> extends ContainsBuckets {
private static final long serialVersionUID = 1L;
- public GetAllBucketsReply(Map buckets) {
+
+ public GetAllBucketsReply(final Map> buckets) {
super(buckets);
}
}
- public static class GetBucketsByMembersReply extends ContainsBuckets implements Serializable{
+ public static final class GetBucketsByMembersReply> extends ContainsBuckets {
private static final long serialVersionUID = 1L;
- public GetBucketsByMembersReply(Map buckets) {
+
+ public GetBucketsByMembersReply(final Map> buckets) {
super(buckets);
}
}
- public static class GetBucketVersions implements Serializable {
+ public static final class GetBucketVersions implements Serializable {
private static final long serialVersionUID = 1L;
}
- public static class ContainsBucketVersions implements Serializable{
+ public static class ContainsBucketVersions implements Serializable {
private static final long serialVersionUID = -8172148925383801613L;
Map versions;
- public ContainsBucketVersions(Map versions) {
+ public ContainsBucketVersions(final Map versions) {
Preconditions.checkArgument(versions != null, "versions can not be null or empty");
- this.versions = versions;
+ this.versions = ImmutableMap.copyOf(versions);
}
public Map getVersions() {
- return Collections.unmodifiableMap(versions);
+ return versions;
}
-
}
- public static class GetBucketVersionsReply extends ContainsBucketVersions implements Serializable{
+ public static final class GetBucketVersionsReply extends ContainsBucketVersions {
private static final long serialVersionUID = 1L;
- public GetBucketVersionsReply(Map versions) {
+
+ public GetBucketVersionsReply(final Map versions) {
super(versions);
}
}
- public static class UpdateRemoteBuckets extends ContainsBuckets implements Serializable{
+ public static final class UpdateRemoteBuckets> extends ContainsBuckets {
private static final long serialVersionUID = 1L;
- public UpdateRemoteBuckets(Map buckets) {
+
+ public UpdateRemoteBuckets(final Map> buckets) {
super(buckets);
}
}
+
+ /**
+ * Message sent from the gossiper to its parent, therefore not Serializable, requesting removal
+ * of a bucket corresponding to an address.
+ */
+ public static final class RemoveRemoteBucket {
+ private final Address address;
+
+ public RemoveRemoteBucket(final Address address) {
+ this.address = Preconditions.checkNotNull(address);
+ }
+
+ public Address getAddress() {
+ return address;
+ }
+ }
}
- public static class GossiperMessages{
+ public static class GossiperMessages {
public static class Tick implements Serializable {
private static final long serialVersionUID = -4770935099506366773L;
}
@@ -128,12 +136,12 @@ public class Messages {
private static final long serialVersionUID = 5803354404380026143L;
}
- public static final class GossipStatus extends ContainsBucketVersions implements Serializable{
+ public static final class GossipStatus extends ContainsBucketVersions {
private static final long serialVersionUID = -593037395143883265L;
private final Address from;
- public GossipStatus(Address from, Map versions) {
+ public GossipStatus(final Address from, final Map versions) {
super(versions);
this.from = from;
}
@@ -143,13 +151,13 @@ public class Messages {
}
}
- public static final class GossipEnvelope extends ContainsBuckets implements Serializable {
+ public static final class GossipEnvelope> extends ContainsBuckets {
private static final long serialVersionUID = 8346634072582438818L;
private final Address from;
private final Address to;
- public GossipEnvelope(Address from, Address to, Map buckets) {
+ public GossipEnvelope(final Address from, final Address to, final Map> buckets) {
super(buckets);
Preconditions.checkArgument(to != null, "Recipient of message must not be null");
this.to = to;