From 9e7180cb7a2ef747bb72560097fedbdb8f5f08f1 Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Mon, 22 Apr 2019 00:33:12 +0200 Subject: Change interface from Mirror.Entry[] to List as you already have a list. Avoid having to do an array copy that is not necessary. --- .../com/yahoo/messagebus/network/local/LocalWire.java | 4 ++-- .../com/yahoo/messagebus/network/rpc/RPCService.java | 9 +++++---- .../yahoo/messagebus/network/rpc/test/TestServer.java | 5 +++-- .../messagebus/network/rpc/ServiceAddressTestCase.java | 5 +++-- .../yahoo/messagebus/network/rpc/SlobrokTestCase.java | 18 +++++++++--------- 5 files changed, 22 insertions(+), 19 deletions(-) (limited to 'messagebus/src') diff --git a/messagebus/src/main/java/com/yahoo/messagebus/network/local/LocalWire.java b/messagebus/src/main/java/com/yahoo/messagebus/network/local/LocalWire.java index 4f5fd6ab30a..9f6295b1ad2 100644 --- a/messagebus/src/main/java/com/yahoo/messagebus/network/local/LocalWire.java +++ b/messagebus/src/main/java/com/yahoo/messagebus/network/local/LocalWire.java @@ -41,7 +41,7 @@ public class LocalWire implements IMirror { } @Override - public Mirror.Entry[] lookup(String pattern) { + public List lookup(String pattern) { List out = new ArrayList<>(); Pattern regex = Pattern.compile(pattern.replace("*", "[a-zA-Z0-9_-]+")); for (String key : services.keySet()) { @@ -49,7 +49,7 @@ public class LocalWire implements IMirror { out.add(new Mirror.Entry(key, key)); } } - return out.toArray(new Mirror.Entry[out.size()]); + return out; } @Override diff --git a/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCService.java b/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCService.java index abe1b7b4db3..7c404207737 100644 --- a/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCService.java +++ b/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCService.java @@ -4,6 +4,7 @@ package com.yahoo.messagebus.network.rpc; import com.yahoo.jrt.slobrok.api.IMirror; import com.yahoo.jrt.slobrok.api.Mirror; +import java.util.List; import java.util.concurrent.ThreadLocalRandom; /** @@ -18,7 +19,7 @@ public class RPCService { private final String pattern; private int addressIdx = ThreadLocalRandom.current().nextInt(Integer.MAX_VALUE); private int addressGen = 0; - private Mirror.Entry[] addressList = null; + private List addressList = null; /** * Create a new RPCService backed by the given network and using the given service pattern. @@ -51,9 +52,9 @@ public class RPCService { addressGen = mirror.updates(); addressList = mirror.lookup(pattern); } - if (addressList != null && addressList.length > 0) { - addressIdx = ++addressIdx % addressList.length; - Mirror.Entry entry = addressList[addressIdx]; + if (addressList != null && !addressList.isEmpty()) { + addressIdx = ++addressIdx % addressList.size(); + Mirror.Entry entry = addressList.get(addressIdx); return new RPCServiceAddress(entry.getName(), entry.getSpec()); } } diff --git a/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/test/TestServer.java b/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/test/TestServer.java index d7ce31a5223..b17bb892f7d 100644 --- a/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/test/TestServer.java +++ b/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/test/TestServer.java @@ -17,6 +17,7 @@ import com.yahoo.messagebus.routing.RoutingSpec; import com.yahoo.messagebus.routing.RoutingTableSpec; import com.yahoo.messagebus.test.SimpleProtocol; +import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; import java.util.logging.Logger; @@ -121,8 +122,8 @@ public class TestServer { for (int i = 0; i < 6000 && !Thread.currentThread().isInterrupted(); ++i) { boolean done = true; for (String pattern : slobrokState.getPatterns()) { - Mirror.Entry[] res = net.getMirror().lookup(pattern); - if (res.length != slobrokState.getCount(pattern)) { + List res = net.getMirror().lookup(pattern); + if (res.size() != slobrokState.getCount(pattern)) { done = false; } } diff --git a/messagebus/src/test/java/com/yahoo/messagebus/network/rpc/ServiceAddressTestCase.java b/messagebus/src/test/java/com/yahoo/messagebus/network/rpc/ServiceAddressTestCase.java index 476d85f59e9..1dbb30de585 100755 --- a/messagebus/src/test/java/com/yahoo/messagebus/network/rpc/ServiceAddressTestCase.java +++ b/messagebus/src/test/java/com/yahoo/messagebus/network/rpc/ServiceAddressTestCase.java @@ -11,6 +11,7 @@ import org.junit.Before; import org.junit.Test; import java.net.UnknownHostException; +import java.util.List; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; @@ -67,8 +68,8 @@ public class ServiceAddressTestCase { private boolean waitSlobrok(String pattern, int num) { for (int i = 0; i < 1000 && !Thread.currentThread().isInterrupted(); ++i) { - Mirror.Entry[] res = network.getMirror().lookup(pattern); - if (res.length == num) { + List res = network.getMirror().lookup(pattern); + if (res.size() == num) { return true; } try { diff --git a/messagebus/src/test/java/com/yahoo/messagebus/network/rpc/SlobrokTestCase.java b/messagebus/src/test/java/com/yahoo/messagebus/network/rpc/SlobrokTestCase.java index c6737385f4c..dd779fd84c0 100644 --- a/messagebus/src/test/java/com/yahoo/messagebus/network/rpc/SlobrokTestCase.java +++ b/messagebus/src/test/java/com/yahoo/messagebus/network/rpc/SlobrokTestCase.java @@ -31,8 +31,8 @@ public class SlobrokTestCase { lst.add(new Mirror.Entry(fullName, spec)); return this; } - public Mirror.Entry[] toArray() { - return lst.toArray(new Mirror.Entry[lst.size()]); + public List toArray() { + return lst; } } @@ -44,18 +44,18 @@ public class SlobrokTestCase { int port2; int port3; - void check(RPCNetwork net, String pattern, Mirror.Entry[] expect) { + void check(RPCNetwork net, String pattern, List expect) { Comparator cmp = new Comparator() { public int compare(Mirror.Entry a, Mirror.Entry b) { return a.compareTo(b); } }; - Arrays.sort(expect, cmp); - Mirror.Entry[] actual = null; + expect.sort(cmp); + List actual = null; for (int i = 0; i < 1000; i++) { actual = net.getMirror().lookup(pattern); - Arrays.sort(actual, cmp); - if (Arrays.equals(actual, expect)) { + actual.sort(cmp); + if (actual.equals(expect)) { System.out.printf("lookup successful for pattern: %s\n", pattern); return; } @@ -65,7 +65,7 @@ public class SlobrokTestCase { } System.out.printf("lookup failed for pattern: %s\n", pattern); System.out.printf("actual values:\n"); - if (actual == null || actual.length == 0) { + if (actual == null || actual.isEmpty()) { System.out.printf(" { EMPTY }\n"); } else { for (Mirror.Entry entry : actual) { @@ -73,7 +73,7 @@ public class SlobrokTestCase { } } System.out.printf("expected values:\n"); - if (expect.length == 0) { + if (expect.isEmpty()) { System.out.printf(" { EMPTY }\n"); } else { for (Mirror.Entry entry : expect) { -- cgit v1.2.3