X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fshardmanager%2FShardPeerAddressResolver.java;h=a05548b1a4209f10bc3b4387009c24c52d34a4dc;hp=4a9f144ef11159410de192bbe218d276519d5901;hb=95c296a7c1e8e186a88a0a0dc82e080b2185db33;hpb=f86f7e8c204fb19615c45e669a764c623576e1a3 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardPeerAddressResolver.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardPeerAddressResolver.java index 4a9f144ef1..a05548b1a4 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardPeerAddressResolver.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardPeerAddressResolver.java @@ -8,11 +8,13 @@ package org.opendaylight.controller.cluster.datastore.shardmanager; import akka.actor.Address; +import com.google.common.base.Preconditions; import java.util.ArrayList; import java.util.Collection; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; +import org.opendaylight.controller.cluster.access.concepts.MemberName; import org.opendaylight.controller.cluster.datastore.identifiers.ShardIdentifier; import org.opendaylight.controller.cluster.datastore.identifiers.ShardManagerIdentifier; import org.opendaylight.controller.cluster.raft.PeerAddressResolver; @@ -26,33 +28,33 @@ import org.opendaylight.controller.cluster.raft.PeerAddressResolver; class ShardPeerAddressResolver implements PeerAddressResolver { // Stores a mapping between a member name and the address of the member. The map is concurrent as it // will be accessed by multiple threads via the public resolve method. - private final ConcurrentMap memberNameToAddress = new ConcurrentHashMap<>(); + private final ConcurrentMap memberNameToAddress = new ConcurrentHashMap<>(); private final String shardManagerIdentifier; private final String shardManagerType; - private final String localMemberName; + private final MemberName localMemberName; - public ShardPeerAddressResolver(String shardManagerType, String localMemberName) { + ShardPeerAddressResolver(String shardManagerType, MemberName localMemberName) { this.shardManagerIdentifier = ShardManagerIdentifier.builder().type(shardManagerType).build().toString(); this.shardManagerType = shardManagerType; - this.localMemberName = localMemberName; + this.localMemberName = Preconditions.checkNotNull(localMemberName); } - void addPeerAddress(String memberName, Address address) { + void addPeerAddress(MemberName memberName, Address address) { memberNameToAddress.put(memberName, address); } - void removePeerAddress(String memberName) { + void removePeerAddress(MemberName memberName) { memberNameToAddress.remove(memberName); } - Address getPeerAddress(String memberName) { + Address getPeerAddress(MemberName memberName) { return memberNameToAddress.get(memberName); } Collection getShardManagerPeerActorAddresses() { Collection peerAddresses = new ArrayList<>(); - for(Map.Entry entry: memberNameToAddress.entrySet()) { - if(!localMemberName.equals(entry.getKey())) { + for (Map.Entry entry: memberNameToAddress.entrySet()) { + if (!localMemberName.equals(entry.getKey())) { peerAddresses.add(getShardManagerActorPathBuilder(entry.getValue()).toString()); } } @@ -60,13 +62,13 @@ class ShardPeerAddressResolver implements PeerAddressResolver { return peerAddresses; } - ShardIdentifier getShardIdentifier(String memberName, String shardName){ - return ShardIdentifier.builder().memberName(memberName).shardName(shardName).type(shardManagerType).build(); + ShardIdentifier getShardIdentifier(MemberName memberName, String shardName) { + return ShardIdentifier.create(shardName, memberName, shardManagerType); } - String getShardActorAddress(String shardName, String memberName) { + String getShardActorAddress(String shardName, MemberName memberName) { Address memberAddress = memberNameToAddress.get(memberName); - if(memberAddress != null) { + if (memberAddress != null) { return getShardManagerActorPathBuilder(memberAddress).append("/").append( getShardIdentifier(memberName, shardName)).toString(); } @@ -80,11 +82,11 @@ class ShardPeerAddressResolver implements PeerAddressResolver { @Override public String resolve(String peerId) { - if(peerId == null) { + if (peerId == null) { return null; } - ShardIdentifier shardId = ShardIdentifier.builder().fromShardIdString(peerId).build(); + ShardIdentifier shardId = ShardIdentifier.fromShardIdString(peerId); return getShardActorAddress(shardId.getShardName(), shardId.getMemberName()); } }