Cache MapJoiner 92/52892/6
authorRobert Varga <rovarga@cisco.com>
Mon, 6 Mar 2017 15:05:09 +0000 (16:05 +0100)
committerTom Pantelis <tpanteli@brocade.com>
Thu, 9 Mar 2017 14:32:13 +0000 (14:32 +0000)
There is no need to instantiate the Joiner everytime we format
a map, as the instance is immmutable and thread-safe. Cache
a single object, allowing for slightly faster access.

Change-Id: Idff936f6525059d0e9abd6eae1370fd3066996a4
Signed-off-by: Robert Varga <rovarga@cisco.com>
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/shard/ShardStats.java

index e5af6ddc53f7cebfa9ad8c84e14261ce2814e5a1..765fe211d2ef59f6cdb02d64ad4a7a1af17b2a3d 100644 (file)
@@ -12,13 +12,13 @@ import akka.actor.ActorRef;
 import akka.pattern.Patterns;
 import akka.util.Timeout;
 import com.google.common.base.Joiner;
+import com.google.common.base.Joiner.MapJoiner;
 import com.google.common.base.Stopwatch;
 import com.google.common.cache.Cache;
 import com.google.common.cache.CacheBuilder;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
-import java.util.Map;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicLong;
 import javax.annotation.Nullable;
@@ -43,6 +43,8 @@ public class ShardStats extends AbstractMXBean implements ShardStatsMXBean {
     private static final Cache<String, OnDemandRaftState> ONDEMAND_RAFT_STATE_CACHE =
             CacheBuilder.newBuilder().expireAfterWrite(2, TimeUnit.SECONDS).build();
 
+    private static final MapJoiner MAP_JOINER = Joiner.on(", ").withKeyValueSeparator(": ");
+
     private long committedTransactionsCount;
 
     private long readOnlyTransactionCount;
@@ -202,7 +204,7 @@ public class ShardStats extends AbstractMXBean implements ShardStatsMXBean {
 
     @Override
     public String getPeerVotingStates() {
-        return toStringMap(getOnDemandRaftState().getPeerVotingStates());
+        return MAP_JOINER.join(getOnDemandRaftState().getPeerVotingStates());
     }
 
     @Override
@@ -313,11 +315,7 @@ public class ShardStats extends AbstractMXBean implements ShardStatsMXBean {
 
     @Override
     public String getPeerAddresses() {
-        return toStringMap(getOnDemandRaftState().getPeerAddresses());
-    }
-
-    private static String toStringMap(Map<?, ?> map) {
-        return Joiner.on(", ").withKeyValueSeparator(": ").join(map);
+        return MAP_JOINER.join(getOnDemandRaftState().getPeerAddresses());
     }
 
     @Override