Repository: incubator-ratis
Updated Branches:
  refs/heads/master e22768799 -> c7c4d1140


RATIS-27. Use factory methods to create MiniRaftCluster.


Project: http://git-wip-us.apache.org/repos/asf/incubator-ratis/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ratis/commit/c7c4d114
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ratis/tree/c7c4d114
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ratis/diff/c7c4d114

Branch: refs/heads/master
Commit: c7c4d114007f755202c7d92629e42d870105ff69
Parents: e227687
Author: Tsz-Wo Nicholas Sze <[email protected]>
Authored: Wed Feb 22 18:21:53 2017 -0800
Committer: Tsz-Wo Nicholas Sze <[email protected]>
Committed: Wed Feb 22 18:21:53 2017 -0800

----------------------------------------------------------------------
 .../ratis/grpc/MiniRaftClusterWithGRpc.java     | 13 +++------
 .../grpc/TestNotLeaderExceptionWithGrpc.java    |  6 ++--
 .../grpc/TestRaftReconfigurationWithGRpc.java   |  2 +-
 .../ratis/grpc/TestRaftSnapshotWithGrpc.java    |  5 ++--
 .../org/apache/ratis/grpc/TestRaftStream.java   |  8 +++---
 .../org/apache/ratis/grpc/TestRaftWithGrpc.java |  3 +-
 .../hadooprpc/server/HadoopRpcService.java      | 11 +++++---
 .../hadooprpc/MiniRaftClusterWithHadoopRpc.java | 29 ++++++++++++--------
 .../TestNotLeaderExceptionWithHadoopRpc.java    |  5 ++--
 .../TestRaftReconfigurationWithHadoopRpc.java   |  4 +--
 .../TestRaftSnapshotWithHadoopRpc.java          |  5 ++--
 .../ratis/hadooprpc/TestRaftWithHadoopRpc.java  |  2 +-
 .../ratis/netty/MiniRaftClusterWithNetty.java   |  6 +---
 .../netty/TestNotLeaderExceptionWithNetty.java  |  6 ++--
 .../netty/TestRaftReconfigurationWithNetty.java |  2 +-
 .../ratis/netty/TestRaftSnapshotWithNetty.java  |  5 ++--
 .../apache/ratis/netty/TestRaftWithNetty.java   |  3 +-
 .../java/org/apache/ratis/MiniRaftCluster.java  |  9 ++----
 .../ratis/RaftNotLeaderExceptionBaseTest.java   |  5 ++--
 .../MiniRaftClusterWithSimulatedRpc.java        | 13 ++++-----
 .../TestNotLeaderExceptionWithSimulation.java   |  5 ++--
 ...TestRaftReconfigurationWithSimulatedRpc.java |  2 +-
 .../TestRaftSnapshotWithSimulatedRpc.java       |  5 ++--
 .../simulation/TestRaftWithSimulatedRpc.java    |  8 ++----
 .../statemachine/RaftSnapshotBaseTest.java      |  8 ++----
 .../ratis/statemachine/TestStateMachine.java    |  3 +-
 26 files changed, 78 insertions(+), 95 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/c7c4d114/ratis-grpc/src/test/java/org/apache/ratis/grpc/MiniRaftClusterWithGRpc.java
----------------------------------------------------------------------
diff --git 
a/ratis-grpc/src/test/java/org/apache/ratis/grpc/MiniRaftClusterWithGRpc.java 
b/ratis-grpc/src/test/java/org/apache/ratis/grpc/MiniRaftClusterWithGRpc.java
index 757c7ea..bab8ee8 100644
--- 
a/ratis-grpc/src/test/java/org/apache/ratis/grpc/MiniRaftClusterWithGRpc.java
+++ 
b/ratis-grpc/src/test/java/org/apache/ratis/grpc/MiniRaftClusterWithGRpc.java
@@ -41,7 +41,7 @@ public class MiniRaftClusterWithGRpc extends 
MiniRaftCluster.RpcBase {
       = new Factory<MiniRaftClusterWithGRpc>() {
     @Override
     public MiniRaftClusterWithGRpc newCluster(
-        String[] ids, RaftProperties prop, boolean formatted) throws 
IOException {
+        String[] ids, RaftProperties prop, boolean formatted) {
       return new MiniRaftClusterWithGRpc(ids, prop, formatted);
     }
   };
@@ -49,19 +49,14 @@ public class MiniRaftClusterWithGRpc extends 
MiniRaftCluster.RpcBase {
   public static final DelayLocalExecutionInjection sendServerRequestInjection =
       new 
DelayLocalExecutionInjection(RaftGRpcService.GRPC_SEND_SERVER_REQUEST);
 
-  public MiniRaftClusterWithGRpc(int numServers, RaftProperties properties)
-      throws IOException {
-    this(generateIds(numServers, 0), properties, true);
-  }
-
-  public MiniRaftClusterWithGRpc(String[] ids, RaftProperties properties,
-      boolean formatted) throws IOException {
+  private MiniRaftClusterWithGRpc(String[] ids, RaftProperties properties,
+      boolean formatted) {
     super(ids, new RaftProperties(properties), formatted);
     init(initRpcServices(getServers(), properties));
   }
 
   private static Map<RaftPeer, RaftGRpcService> initRpcServices(
-      Collection<RaftServerImpl> servers, RaftProperties prop) throws 
IOException {
+      Collection<RaftServerImpl> servers, RaftProperties prop) {
     final Map<RaftPeer, RaftGRpcService> peerRpcs = new HashMap<>();
 
     for (RaftServerImpl s : servers) {

http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/c7c4d114/ratis-grpc/src/test/java/org/apache/ratis/grpc/TestNotLeaderExceptionWithGrpc.java
----------------------------------------------------------------------
diff --git 
a/ratis-grpc/src/test/java/org/apache/ratis/grpc/TestNotLeaderExceptionWithGrpc.java
 
b/ratis-grpc/src/test/java/org/apache/ratis/grpc/TestNotLeaderExceptionWithGrpc.java
index 8b4c504..e9e20b0 100644
--- 
a/ratis-grpc/src/test/java/org/apache/ratis/grpc/TestNotLeaderExceptionWithGrpc.java
+++ 
b/ratis-grpc/src/test/java/org/apache/ratis/grpc/TestNotLeaderExceptionWithGrpc.java
@@ -25,9 +25,7 @@ import java.io.IOException;
 
 public class TestNotLeaderExceptionWithGrpc extends 
RaftNotLeaderExceptionBaseTest {
   @Override
-  public MiniRaftCluster initCluster() throws IOException {
-    String[] s = MiniRaftCluster.generateIds(NUM_PEERS, 0);
-    RaftProperties prop = new RaftProperties();
-    return new MiniRaftClusterWithGRpc(s, prop, true);
+  public MiniRaftCluster.Factory<?> getFactory() {
+    return MiniRaftClusterWithGRpc.FACTORY;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/c7c4d114/ratis-grpc/src/test/java/org/apache/ratis/grpc/TestRaftReconfigurationWithGRpc.java
----------------------------------------------------------------------
diff --git 
a/ratis-grpc/src/test/java/org/apache/ratis/grpc/TestRaftReconfigurationWithGRpc.java
 
b/ratis-grpc/src/test/java/org/apache/ratis/grpc/TestRaftReconfigurationWithGRpc.java
index ebc8a6d..4f54fa8 100644
--- 
a/ratis-grpc/src/test/java/org/apache/ratis/grpc/TestRaftReconfigurationWithGRpc.java
+++ 
b/ratis-grpc/src/test/java/org/apache/ratis/grpc/TestRaftReconfigurationWithGRpc.java
@@ -31,6 +31,6 @@ public class TestRaftReconfigurationWithGRpc extends 
RaftReconfigurationBaseTest
 
   @Override
   public MiniRaftClusterWithGRpc getCluster(int peerNum) throws IOException {
-    return new MiniRaftClusterWithGRpc(peerNum, prop);
+    return MiniRaftClusterWithGRpc.FACTORY.newCluster(peerNum, prop);
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/c7c4d114/ratis-grpc/src/test/java/org/apache/ratis/grpc/TestRaftSnapshotWithGrpc.java
----------------------------------------------------------------------
diff --git 
a/ratis-grpc/src/test/java/org/apache/ratis/grpc/TestRaftSnapshotWithGrpc.java 
b/ratis-grpc/src/test/java/org/apache/ratis/grpc/TestRaftSnapshotWithGrpc.java
index 8a26435..091277d 100644
--- 
a/ratis-grpc/src/test/java/org/apache/ratis/grpc/TestRaftSnapshotWithGrpc.java
+++ 
b/ratis-grpc/src/test/java/org/apache/ratis/grpc/TestRaftSnapshotWithGrpc.java
@@ -25,8 +25,7 @@ import java.io.IOException;
 
 public class TestRaftSnapshotWithGrpc extends RaftSnapshotBaseTest {
   @Override
-  public MiniRaftCluster initCluster(int numServer, RaftProperties prop)
-      throws IOException {
-    return MiniRaftClusterWithGRpc.FACTORY.newCluster(numServer, prop, true);
+  public MiniRaftCluster.Factory<?> getFactory() {
+    return MiniRaftClusterWithGRpc.FACTORY;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/c7c4d114/ratis-grpc/src/test/java/org/apache/ratis/grpc/TestRaftStream.java
----------------------------------------------------------------------
diff --git a/ratis-grpc/src/test/java/org/apache/ratis/grpc/TestRaftStream.java 
b/ratis-grpc/src/test/java/org/apache/ratis/grpc/TestRaftStream.java
index ed130dd..d7cb75a 100644
--- a/ratis-grpc/src/test/java/org/apache/ratis/grpc/TestRaftStream.java
+++ b/ratis-grpc/src/test/java/org/apache/ratis/grpc/TestRaftStream.java
@@ -82,7 +82,7 @@ public class TestRaftStream {
 
     // default 64K is too large for a test
     prop.setInt(RAFT_OUTPUTSTREAM_BUFFER_SIZE_KEY, 4);
-    cluster = new MiniRaftClusterWithGRpc(NUM_SERVERS, prop);
+    cluster = MiniRaftClusterWithGRpc.FACTORY.newCluster(NUM_SERVERS, prop);
 
     cluster.start();
     RaftServerImpl leader = waitForLeader(cluster);
@@ -123,7 +123,7 @@ public class TestRaftStream {
     LOG.info("Running testWriteAndFlush");
 
     prop.setInt(RAFT_OUTPUTSTREAM_BUFFER_SIZE_KEY, ByteValue.BUFFERSIZE);
-    cluster = new MiniRaftClusterWithGRpc(NUM_SERVERS, prop);
+    cluster = MiniRaftClusterWithGRpc.FACTORY.newCluster(NUM_SERVERS, prop);
     cluster.start();
 
     RaftServerImpl leader = waitForLeader(cluster);
@@ -202,7 +202,7 @@ public class TestRaftStream {
     LOG.info("Running testWriteWithOffset");
     prop.setInt(RAFT_OUTPUTSTREAM_BUFFER_SIZE_KEY, ByteValue.BUFFERSIZE);
 
-    cluster = new MiniRaftClusterWithGRpc(NUM_SERVERS, prop);
+    cluster = MiniRaftClusterWithGRpc.FACTORY.newCluster(NUM_SERVERS, prop);
     cluster.start();
     RaftServerImpl leader = waitForLeader(cluster);
 
@@ -260,7 +260,7 @@ public class TestRaftStream {
     LOG.info("Running testChangeLeader");
 
     prop.setInt(RAFT_OUTPUTSTREAM_BUFFER_SIZE_KEY, 4);
-    cluster = new MiniRaftClusterWithGRpc(NUM_SERVERS, prop);
+    cluster = MiniRaftClusterWithGRpc.FACTORY.newCluster(NUM_SERVERS, prop);
     cluster.start();
     final RaftServerImpl leader = waitForLeader(cluster);
 

http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/c7c4d114/ratis-grpc/src/test/java/org/apache/ratis/grpc/TestRaftWithGrpc.java
----------------------------------------------------------------------
diff --git 
a/ratis-grpc/src/test/java/org/apache/ratis/grpc/TestRaftWithGrpc.java 
b/ratis-grpc/src/test/java/org/apache/ratis/grpc/TestRaftWithGrpc.java
index 1ca602f..bfaf819 100644
--- a/ratis-grpc/src/test/java/org/apache/ratis/grpc/TestRaftWithGrpc.java
+++ b/ratis-grpc/src/test/java/org/apache/ratis/grpc/TestRaftWithGrpc.java
@@ -35,7 +35,8 @@ public class TestRaftWithGrpc extends RaftBasicTests {
   private final MiniRaftClusterWithGRpc cluster;
 
   public TestRaftWithGrpc() throws IOException {
-    cluster = new MiniRaftClusterWithGRpc(NUM_SERVERS, properties);
+    cluster = MiniRaftClusterWithGRpc.FACTORY.newCluster(
+        NUM_SERVERS, properties);
     Assert.assertNull(cluster.getLeader());
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/c7c4d114/ratis-hadoop/src/main/java/org/apache/ratis/hadooprpc/server/HadoopRpcService.java
----------------------------------------------------------------------
diff --git 
a/ratis-hadoop/src/main/java/org/apache/ratis/hadooprpc/server/HadoopRpcService.java
 
b/ratis-hadoop/src/main/java/org/apache/ratis/hadooprpc/server/HadoopRpcService.java
index 93f896c..e05e2a8 100644
--- 
a/ratis-hadoop/src/main/java/org/apache/ratis/hadooprpc/server/HadoopRpcService.java
+++ 
b/ratis-hadoop/src/main/java/org/apache/ratis/hadooprpc/server/HadoopRpcService.java
@@ -75,7 +75,7 @@ public class HadoopRpcService implements RaftServerRpc {
     }
 
     @Override
-    public HadoopRpcService build() throws IOException {
+    public HadoopRpcService build() {
       return new HadoopRpcService(getServer(), getConf());
     }
   }
@@ -90,12 +90,15 @@ public class HadoopRpcService implements RaftServerRpc {
 
   private final PeerProxyMap<Proxy<RaftServerProtocolPB>> proxies;
 
-  private HadoopRpcService(RaftServer server, final Configuration conf)
-      throws IOException {
+  private HadoopRpcService(RaftServer server, final Configuration conf) {
     this.proxies = new PeerProxyMap<>(
         p -> new Proxy(RaftServerProtocolPB.class, p.getAddress(), conf));
     this.id = server.getId();
-    this.ipcServer = newRpcServer(server, conf);
+    try {
+      this.ipcServer = newRpcServer(server, conf);
+    } catch (IOException e) {
+      throw new RuntimeException("Failed to create Hadoop rpc server.", e);
+    }
     this.ipcServerAddress = ipcServer.getListenerAddress();
 
     addRaftClientProtocol(server, conf);

http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/c7c4d114/ratis-hadoop/src/test/java/org/apache/ratis/hadooprpc/MiniRaftClusterWithHadoopRpc.java
----------------------------------------------------------------------
diff --git 
a/ratis-hadoop/src/test/java/org/apache/ratis/hadooprpc/MiniRaftClusterWithHadoopRpc.java
 
b/ratis-hadoop/src/test/java/org/apache/ratis/hadooprpc/MiniRaftClusterWithHadoopRpc.java
index f1247fd..f3ee3f6 100644
--- 
a/ratis-hadoop/src/test/java/org/apache/ratis/hadooprpc/MiniRaftClusterWithHadoopRpc.java
+++ 
b/ratis-hadoop/src/test/java/org/apache/ratis/hadooprpc/MiniRaftClusterWithHadoopRpc.java
@@ -40,29 +40,36 @@ import java.util.Map;
 public class MiniRaftClusterWithHadoopRpc extends MiniRaftCluster.RpcBase {
   static final Logger LOG = 
LoggerFactory.getLogger(MiniRaftClusterWithHadoopRpc.class);
 
-  public static final Factory<MiniRaftClusterWithHadoopRpc> FACTORY
-      = new Factory<MiniRaftClusterWithHadoopRpc>() {
+  public static class Factory extends 
MiniRaftCluster.Factory<MiniRaftClusterWithHadoopRpc> {
     @Override
     public MiniRaftClusterWithHadoopRpc newCluster(
-        String[] ids, RaftProperties prop, boolean formatted) throws 
IOException {
+        String[] ids, RaftProperties prop, boolean formatted) {
       final Configuration conf = new Configuration();
+      return newCluster(ids, prop, conf, formatted);
+    }
+
+    public MiniRaftClusterWithHadoopRpc newCluster(
+        int numServers, RaftProperties properties, Configuration conf) {
+      return newCluster(generateIds(numServers, 0), properties, conf, true);
+    }
+
+    public MiniRaftClusterWithHadoopRpc newCluster(
+        String[] ids, RaftProperties prop, Configuration conf, boolean 
formatted) {
       HadoopRpcServerConfigKeys.Ipc.setAddress(conf::set, "0.0.0.0:0");
       return new MiniRaftClusterWithHadoopRpc(ids, prop, conf, formatted);
     }
-  };
+  }
+
+  public static final Factory FACTORY = new Factory();
 
   public static final DelayLocalExecutionInjection sendServerRequest =
       new DelayLocalExecutionInjection(HadoopRpcService.SEND_SERVER_REQUEST);
 
   private final Configuration hadoopConf;
 
-  public MiniRaftClusterWithHadoopRpc(int numServers, RaftProperties 
properties,
-      Configuration conf) throws IOException {
-    this(generateIds(numServers, 0), properties, conf, true);
-  }
 
-  public MiniRaftClusterWithHadoopRpc(String[] ids, RaftProperties properties,
-      Configuration hadoopConf, boolean formatted) throws IOException {
+  private MiniRaftClusterWithHadoopRpc(String[] ids, RaftProperties properties,
+      Configuration hadoopConf, boolean formatted) {
     super(ids, properties, formatted);
     this.hadoopConf = hadoopConf;
 
@@ -70,7 +77,7 @@ public class MiniRaftClusterWithHadoopRpc extends 
MiniRaftCluster.RpcBase {
   }
 
   private static Map<RaftPeer, HadoopRpcService> initRpcServices(
-      Collection<RaftServerImpl> servers, Configuration hadoopConf) throws 
IOException {
+      Collection<RaftServerImpl> servers, Configuration hadoopConf) {
     final Map<RaftPeer, HadoopRpcService> peerRpcs = new HashMap<>();
 
     for(RaftServerImpl s : servers) {

http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/c7c4d114/ratis-hadoop/src/test/java/org/apache/ratis/hadooprpc/TestNotLeaderExceptionWithHadoopRpc.java
----------------------------------------------------------------------
diff --git 
a/ratis-hadoop/src/test/java/org/apache/ratis/hadooprpc/TestNotLeaderExceptionWithHadoopRpc.java
 
b/ratis-hadoop/src/test/java/org/apache/ratis/hadooprpc/TestNotLeaderExceptionWithHadoopRpc.java
index 315d194..103a0b3 100644
--- 
a/ratis-hadoop/src/test/java/org/apache/ratis/hadooprpc/TestNotLeaderExceptionWithHadoopRpc.java
+++ 
b/ratis-hadoop/src/test/java/org/apache/ratis/hadooprpc/TestNotLeaderExceptionWithHadoopRpc.java
@@ -25,8 +25,7 @@ import java.io.IOException;
 
 public class TestNotLeaderExceptionWithHadoopRpc extends 
RaftNotLeaderExceptionBaseTest {
   @Override
-  public MiniRaftCluster initCluster() throws IOException {
-    return MiniRaftClusterWithHadoopRpc.FACTORY.newCluster(
-        NUM_PEERS, new RaftProperties(), true);
+  public MiniRaftCluster.Factory<?> getFactory() {
+    return MiniRaftClusterWithHadoopRpc.FACTORY;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/c7c4d114/ratis-hadoop/src/test/java/org/apache/ratis/hadooprpc/TestRaftReconfigurationWithHadoopRpc.java
----------------------------------------------------------------------
diff --git 
a/ratis-hadoop/src/test/java/org/apache/ratis/hadooprpc/TestRaftReconfigurationWithHadoopRpc.java
 
b/ratis-hadoop/src/test/java/org/apache/ratis/hadooprpc/TestRaftReconfigurationWithHadoopRpc.java
index c6b5226..2d15cea 100644
--- 
a/ratis-hadoop/src/test/java/org/apache/ratis/hadooprpc/TestRaftReconfigurationWithHadoopRpc.java
+++ 
b/ratis-hadoop/src/test/java/org/apache/ratis/hadooprpc/TestRaftReconfigurationWithHadoopRpc.java
@@ -19,7 +19,6 @@ package org.apache.ratis.hadooprpc;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.ratis.MiniRaftCluster;
-import org.apache.ratis.hadooprpc.server.HadoopRpcServerConfigKeys;
 import org.apache.ratis.server.impl.RaftReconfigurationBaseTest;
 
 import java.io.IOException;
@@ -34,7 +33,6 @@ public class TestRaftReconfigurationWithHadoopRpc
     final Configuration hadoopConf = new Configuration();
     hadoopConf.setInt(IPC_CLIENT_CONNECT_TIMEOUT_KEY, 1000);
     hadoopConf.setInt(IPC_CLIENT_CONNECT_MAX_RETRIES_KEY, 0);
-    HadoopRpcServerConfigKeys.Ipc.setAddress(hadoopConf::set, "0.0.0.0:0");
-    return new MiniRaftClusterWithHadoopRpc(peerNum, prop, hadoopConf);
+    return MiniRaftClusterWithHadoopRpc.FACTORY.newCluster(peerNum, prop, 
hadoopConf);
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/c7c4d114/ratis-hadoop/src/test/java/org/apache/ratis/hadooprpc/TestRaftSnapshotWithHadoopRpc.java
----------------------------------------------------------------------
diff --git 
a/ratis-hadoop/src/test/java/org/apache/ratis/hadooprpc/TestRaftSnapshotWithHadoopRpc.java
 
b/ratis-hadoop/src/test/java/org/apache/ratis/hadooprpc/TestRaftSnapshotWithHadoopRpc.java
index 7bdafb0..db8eeaf 100644
--- 
a/ratis-hadoop/src/test/java/org/apache/ratis/hadooprpc/TestRaftSnapshotWithHadoopRpc.java
+++ 
b/ratis-hadoop/src/test/java/org/apache/ratis/hadooprpc/TestRaftSnapshotWithHadoopRpc.java
@@ -25,8 +25,7 @@ import java.io.IOException;
 
 public class TestRaftSnapshotWithHadoopRpc extends RaftSnapshotBaseTest {
   @Override
-  public MiniRaftCluster initCluster(int numServer, RaftProperties prop)
-      throws IOException {
-    return MiniRaftClusterWithHadoopRpc.FACTORY.newCluster(numServer, prop, 
true);
+  public MiniRaftCluster.Factory<?> getFactory() {
+    return MiniRaftClusterWithHadoopRpc.FACTORY;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/c7c4d114/ratis-hadoop/src/test/java/org/apache/ratis/hadooprpc/TestRaftWithHadoopRpc.java
----------------------------------------------------------------------
diff --git 
a/ratis-hadoop/src/test/java/org/apache/ratis/hadooprpc/TestRaftWithHadoopRpc.java
 
b/ratis-hadoop/src/test/java/org/apache/ratis/hadooprpc/TestRaftWithHadoopRpc.java
index 44cb672..5c03129 100644
--- 
a/ratis-hadoop/src/test/java/org/apache/ratis/hadooprpc/TestRaftWithHadoopRpc.java
+++ 
b/ratis-hadoop/src/test/java/org/apache/ratis/hadooprpc/TestRaftWithHadoopRpc.java
@@ -40,7 +40,7 @@ public class TestRaftWithHadoopRpc extends RaftBasicTests {
 
   public TestRaftWithHadoopRpc() throws IOException {
     cluster = MiniRaftClusterWithHadoopRpc.FACTORY.newCluster(
-        NUM_SERVERS, getProperties(), true);
+        NUM_SERVERS, getProperties());
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/c7c4d114/ratis-netty/src/test/java/org/apache/ratis/netty/MiniRaftClusterWithNetty.java
----------------------------------------------------------------------
diff --git 
a/ratis-netty/src/test/java/org/apache/ratis/netty/MiniRaftClusterWithNetty.java
 
b/ratis-netty/src/test/java/org/apache/ratis/netty/MiniRaftClusterWithNetty.java
index f642ee5..4ddab6e 100644
--- 
a/ratis-netty/src/test/java/org/apache/ratis/netty/MiniRaftClusterWithNetty.java
+++ 
b/ratis-netty/src/test/java/org/apache/ratis/netty/MiniRaftClusterWithNetty.java
@@ -48,11 +48,7 @@ public class MiniRaftClusterWithNetty extends 
MiniRaftCluster.RpcBase {
   public static final DelayLocalExecutionInjection sendServerRequest
       = new DelayLocalExecutionInjection(NettyRpcService.SEND_SERVER_REQUEST);
 
-  public MiniRaftClusterWithNetty(int numServers, RaftProperties properties) {
-    this(generateIds(numServers, 0), properties, true);
-  }
-
-  public MiniRaftClusterWithNetty(
+  private MiniRaftClusterWithNetty(
       String[] ids, RaftProperties properties, boolean formatted) {
     super(ids, properties, formatted);
     init(initRpcServices(getServers(), getConf()));

http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/c7c4d114/ratis-netty/src/test/java/org/apache/ratis/netty/TestNotLeaderExceptionWithNetty.java
----------------------------------------------------------------------
diff --git 
a/ratis-netty/src/test/java/org/apache/ratis/netty/TestNotLeaderExceptionWithNetty.java
 
b/ratis-netty/src/test/java/org/apache/ratis/netty/TestNotLeaderExceptionWithNetty.java
index 9c267e7..6e4ed12 100644
--- 
a/ratis-netty/src/test/java/org/apache/ratis/netty/TestNotLeaderExceptionWithNetty.java
+++ 
b/ratis-netty/src/test/java/org/apache/ratis/netty/TestNotLeaderExceptionWithNetty.java
@@ -25,9 +25,7 @@ import java.io.IOException;
 
 public class TestNotLeaderExceptionWithNetty extends 
RaftNotLeaderExceptionBaseTest {
   @Override
-  public MiniRaftCluster initCluster() throws IOException {
-    String[] s = MiniRaftCluster.generateIds(NUM_PEERS, 0);
-    RaftProperties prop = new RaftProperties();
-    return new MiniRaftClusterWithNetty(s, prop, true);
+  public MiniRaftCluster.Factory<?> getFactory() {
+    return MiniRaftClusterWithNetty.FACTORY;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/c7c4d114/ratis-netty/src/test/java/org/apache/ratis/netty/TestRaftReconfigurationWithNetty.java
----------------------------------------------------------------------
diff --git 
a/ratis-netty/src/test/java/org/apache/ratis/netty/TestRaftReconfigurationWithNetty.java
 
b/ratis-netty/src/test/java/org/apache/ratis/netty/TestRaftReconfigurationWithNetty.java
index cfa9729..15fa8e6 100644
--- 
a/ratis-netty/src/test/java/org/apache/ratis/netty/TestRaftReconfigurationWithNetty.java
+++ 
b/ratis-netty/src/test/java/org/apache/ratis/netty/TestRaftReconfigurationWithNetty.java
@@ -26,6 +26,6 @@ public class TestRaftReconfigurationWithNetty
     extends RaftReconfigurationBaseTest {
   @Override
   public MiniRaftCluster getCluster(int peerNum) throws IOException {
-    return MiniRaftClusterWithNetty.FACTORY.newCluster(peerNum, prop, true);
+    return MiniRaftClusterWithNetty.FACTORY.newCluster(peerNum, prop);
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/c7c4d114/ratis-netty/src/test/java/org/apache/ratis/netty/TestRaftSnapshotWithNetty.java
----------------------------------------------------------------------
diff --git 
a/ratis-netty/src/test/java/org/apache/ratis/netty/TestRaftSnapshotWithNetty.java
 
b/ratis-netty/src/test/java/org/apache/ratis/netty/TestRaftSnapshotWithNetty.java
index 18807c0..da861d5 100644
--- 
a/ratis-netty/src/test/java/org/apache/ratis/netty/TestRaftSnapshotWithNetty.java
+++ 
b/ratis-netty/src/test/java/org/apache/ratis/netty/TestRaftSnapshotWithNetty.java
@@ -25,8 +25,7 @@ import java.io.IOException;
 
 public class TestRaftSnapshotWithNetty extends RaftSnapshotBaseTest {
   @Override
-  public MiniRaftCluster initCluster(int numServer, RaftProperties prop)
-      throws IOException {
-    return MiniRaftClusterWithNetty.FACTORY.newCluster(numServer, prop, true);
+  public MiniRaftCluster.Factory<?> getFactory() {
+    return MiniRaftClusterWithNetty.FACTORY;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/c7c4d114/ratis-netty/src/test/java/org/apache/ratis/netty/TestRaftWithNetty.java
----------------------------------------------------------------------
diff --git 
a/ratis-netty/src/test/java/org/apache/ratis/netty/TestRaftWithNetty.java 
b/ratis-netty/src/test/java/org/apache/ratis/netty/TestRaftWithNetty.java
index 3954065..a48e608 100644
--- a/ratis-netty/src/test/java/org/apache/ratis/netty/TestRaftWithNetty.java
+++ b/ratis-netty/src/test/java/org/apache/ratis/netty/TestRaftWithNetty.java
@@ -36,7 +36,8 @@ public class TestRaftWithNetty extends RaftBasicTests {
   private final MiniRaftClusterWithNetty cluster;
 
   public TestRaftWithNetty() throws IOException {
-    cluster = new MiniRaftClusterWithNetty(NUM_SERVERS, getProperties());
+    cluster = MiniRaftClusterWithNetty.FACTORY.newCluster(
+        NUM_SERVERS, getProperties());
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/c7c4d114/ratis-server/src/test/java/org/apache/ratis/MiniRaftCluster.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/test/java/org/apache/ratis/MiniRaftCluster.java 
b/ratis-server/src/test/java/org/apache/ratis/MiniRaftCluster.java
index 682849f..ce3cafc 100644
--- a/ratis-server/src/test/java/org/apache/ratis/MiniRaftCluster.java
+++ b/ratis-server/src/test/java/org/apache/ratis/MiniRaftCluster.java
@@ -61,13 +61,10 @@ public abstract class MiniRaftCluster {
 
   public static abstract class Factory<CLUSTER extends MiniRaftCluster> {
     public abstract CLUSTER newCluster(
-        String[] ids, RaftProperties prop, boolean formatted)
-        throws IOException;
+        String[] ids, RaftProperties prop, boolean formatted);
 
-    public CLUSTER newCluster(
-        int numServer, RaftProperties prop, boolean formatted)
-        throws IOException {
-      return newCluster(generateIds(numServer, 0), prop, formatted);
+    public CLUSTER newCluster(int numServer, RaftProperties prop) {
+      return newCluster(generateIds(numServer, 0), prop, true);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/c7c4d114/ratis-server/src/test/java/org/apache/ratis/RaftNotLeaderExceptionBaseTest.java
----------------------------------------------------------------------
diff --git 
a/ratis-server/src/test/java/org/apache/ratis/RaftNotLeaderExceptionBaseTest.java
 
b/ratis-server/src/test/java/org/apache/ratis/RaftNotLeaderExceptionBaseTest.java
index dbc32f0..fcb0bc2 100644
--- 
a/ratis-server/src/test/java/org/apache/ratis/RaftNotLeaderExceptionBaseTest.java
+++ 
b/ratis-server/src/test/java/org/apache/ratis/RaftNotLeaderExceptionBaseTest.java
@@ -21,6 +21,7 @@ import org.apache.log4j.Level;
 import org.apache.ratis.RaftTestUtil.SimpleMessage;
 import org.apache.ratis.client.RaftClient;
 import org.apache.ratis.client.RaftClientRequestSender;
+import org.apache.ratis.conf.RaftProperties;
 import org.apache.ratis.protocol.ClientId;
 import org.apache.ratis.protocol.RaftClientReply;
 import org.apache.ratis.protocol.RaftClientRequest;
@@ -58,11 +59,11 @@ public abstract class RaftNotLeaderExceptionBaseTest {
 
   private MiniRaftCluster cluster;
 
-  public abstract MiniRaftCluster initCluster() throws IOException;
+  public abstract MiniRaftCluster.Factory<?> getFactory();
 
   @Before
   public void setup() throws IOException {
-    this.cluster = initCluster();
+    cluster = getFactory().newCluster(NUM_PEERS, new RaftProperties());
     cluster.start();
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/c7c4d114/ratis-server/src/test/java/org/apache/ratis/server/simulation/MiniRaftClusterWithSimulatedRpc.java
----------------------------------------------------------------------
diff --git 
a/ratis-server/src/test/java/org/apache/ratis/server/simulation/MiniRaftClusterWithSimulatedRpc.java
 
b/ratis-server/src/test/java/org/apache/ratis/server/simulation/MiniRaftClusterWithSimulatedRpc.java
index 6d26383..1745321 100644
--- 
a/ratis-server/src/test/java/org/apache/ratis/server/simulation/MiniRaftClusterWithSimulatedRpc.java
+++ 
b/ratis-server/src/test/java/org/apache/ratis/server/simulation/MiniRaftClusterWithSimulatedRpc.java
@@ -29,6 +29,7 @@ import org.slf4j.LoggerFactory;
 import java.io.IOException;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.concurrent.ThreadLocalRandom;
 
 public class MiniRaftClusterWithSimulatedRpc extends MiniRaftCluster {
   static final Logger LOG = 
LoggerFactory.getLogger(MiniRaftClusterWithSimulatedRpc.class);
@@ -38,7 +39,10 @@ public class MiniRaftClusterWithSimulatedRpc extends 
MiniRaftCluster {
     @Override
     public MiniRaftClusterWithSimulatedRpc newCluster(
         String[] ids, RaftProperties prop, boolean formatted) {
-      prop.setInt(SimulatedRequestReply.SIMULATE_LATENCY_KEY, 0);
+      if (ThreadLocalRandom.current().nextBoolean()) {
+        // turn off simulate latency half of the times.
+        prop.setInt(SimulatedRequestReply.SIMULATE_LATENCY_KEY, 0);
+      }
       return new MiniRaftClusterWithSimulatedRpc(ids, prop, formatted);
     }
   };
@@ -46,12 +50,7 @@ public class MiniRaftClusterWithSimulatedRpc extends 
MiniRaftCluster {
   private SimulatedRequestReply<RaftServerRequest, RaftServerReply> 
serverRequestReply;
   private SimulatedClientRequestReply client2serverRequestReply;
 
-  public MiniRaftClusterWithSimulatedRpc(int numServers,
-      RaftProperties properties) {
-    this(generateIds(numServers, 0), properties, true);
-  }
-
-  public MiniRaftClusterWithSimulatedRpc(String[] ids,
+  private MiniRaftClusterWithSimulatedRpc(String[] ids,
       RaftProperties properties, boolean formatted) {
     super(ids, properties, formatted);
     initRpc();

http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/c7c4d114/ratis-server/src/test/java/org/apache/ratis/server/simulation/TestNotLeaderExceptionWithSimulation.java
----------------------------------------------------------------------
diff --git 
a/ratis-server/src/test/java/org/apache/ratis/server/simulation/TestNotLeaderExceptionWithSimulation.java
 
b/ratis-server/src/test/java/org/apache/ratis/server/simulation/TestNotLeaderExceptionWithSimulation.java
index 412fb65..669d4df 100644
--- 
a/ratis-server/src/test/java/org/apache/ratis/server/simulation/TestNotLeaderExceptionWithSimulation.java
+++ 
b/ratis-server/src/test/java/org/apache/ratis/server/simulation/TestNotLeaderExceptionWithSimulation.java
@@ -25,8 +25,7 @@ import java.io.IOException;
 
 public class TestNotLeaderExceptionWithSimulation extends 
RaftNotLeaderExceptionBaseTest {
   @Override
-  public MiniRaftCluster initCluster() throws IOException {
-    String[] s = MiniRaftCluster.generateIds(NUM_PEERS, 0);
-    return new MiniRaftClusterWithSimulatedRpc(s, new RaftProperties(), true);
+  public MiniRaftCluster.Factory<?> getFactory() {
+    return MiniRaftClusterWithSimulatedRpc.FACTORY;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/c7c4d114/ratis-server/src/test/java/org/apache/ratis/server/simulation/TestRaftReconfigurationWithSimulatedRpc.java
----------------------------------------------------------------------
diff --git 
a/ratis-server/src/test/java/org/apache/ratis/server/simulation/TestRaftReconfigurationWithSimulatedRpc.java
 
b/ratis-server/src/test/java/org/apache/ratis/server/simulation/TestRaftReconfigurationWithSimulatedRpc.java
index b8bd679..b1bb26a 100644
--- 
a/ratis-server/src/test/java/org/apache/ratis/server/simulation/TestRaftReconfigurationWithSimulatedRpc.java
+++ 
b/ratis-server/src/test/java/org/apache/ratis/server/simulation/TestRaftReconfigurationWithSimulatedRpc.java
@@ -26,6 +26,6 @@ public class TestRaftReconfigurationWithSimulatedRpc
     extends RaftReconfigurationBaseTest {
   @Override
   public MiniRaftCluster getCluster(int peerNum) throws IOException {
-    return new MiniRaftClusterWithSimulatedRpc(peerNum, prop);
+    return MiniRaftClusterWithSimulatedRpc.FACTORY.newCluster(peerNum, prop);
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/c7c4d114/ratis-server/src/test/java/org/apache/ratis/server/simulation/TestRaftSnapshotWithSimulatedRpc.java
----------------------------------------------------------------------
diff --git 
a/ratis-server/src/test/java/org/apache/ratis/server/simulation/TestRaftSnapshotWithSimulatedRpc.java
 
b/ratis-server/src/test/java/org/apache/ratis/server/simulation/TestRaftSnapshotWithSimulatedRpc.java
index f2d5cfb..8345872 100644
--- 
a/ratis-server/src/test/java/org/apache/ratis/server/simulation/TestRaftSnapshotWithSimulatedRpc.java
+++ 
b/ratis-server/src/test/java/org/apache/ratis/server/simulation/TestRaftSnapshotWithSimulatedRpc.java
@@ -25,8 +25,7 @@ import java.io.IOException;
 
 public class TestRaftSnapshotWithSimulatedRpc extends RaftSnapshotBaseTest {
   @Override
-  public MiniRaftCluster initCluster(int numServer, RaftProperties prop)
-      throws IOException {
-    return MiniRaftClusterWithSimulatedRpc.FACTORY.newCluster(numServer, prop, 
true);
+  public MiniRaftCluster.Factory<?> getFactory() {
+    return MiniRaftClusterWithSimulatedRpc.FACTORY;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/c7c4d114/ratis-server/src/test/java/org/apache/ratis/server/simulation/TestRaftWithSimulatedRpc.java
----------------------------------------------------------------------
diff --git 
a/ratis-server/src/test/java/org/apache/ratis/server/simulation/TestRaftWithSimulatedRpc.java
 
b/ratis-server/src/test/java/org/apache/ratis/server/simulation/TestRaftWithSimulatedRpc.java
index 29ef6ed..5332064 100644
--- 
a/ratis-server/src/test/java/org/apache/ratis/server/simulation/TestRaftWithSimulatedRpc.java
+++ 
b/ratis-server/src/test/java/org/apache/ratis/server/simulation/TestRaftWithSimulatedRpc.java
@@ -36,12 +36,8 @@ public class TestRaftWithSimulatedRpc extends RaftBasicTests 
{
   private final MiniRaftClusterWithSimulatedRpc cluster;
 
   public TestRaftWithSimulatedRpc() throws IOException {
-    final RaftProperties properties = getProperties();
-    if (ThreadLocalRandom.current().nextBoolean()) {
-      // turn off simulate latency half of the times.
-      properties.setInt(SimulatedRequestReply.SIMULATE_LATENCY_KEY, 0);
-    }
-    cluster = new MiniRaftClusterWithSimulatedRpc(NUM_SERVERS, properties);
+    cluster = MiniRaftClusterWithSimulatedRpc.FACTORY.newCluster(
+        NUM_SERVERS, getProperties());
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/c7c4d114/ratis-server/src/test/java/org/apache/ratis/statemachine/RaftSnapshotBaseTest.java
----------------------------------------------------------------------
diff --git 
a/ratis-server/src/test/java/org/apache/ratis/statemachine/RaftSnapshotBaseTest.java
 
b/ratis-server/src/test/java/org/apache/ratis/statemachine/RaftSnapshotBaseTest.java
index 5dea3b7..cb4412a 100644
--- 
a/ratis-server/src/test/java/org/apache/ratis/statemachine/RaftSnapshotBaseTest.java
+++ 
b/ratis-server/src/test/java/org/apache/ratis/statemachine/RaftSnapshotBaseTest.java
@@ -22,7 +22,6 @@ import static 
org.apache.ratis.server.RaftServerConfigKeys.RAFT_SERVER_SNAPSHOT_
 import static org.apache.ratis.server.impl.RaftServerConstants.DEFAULT_SEQNUM;
 
 import java.io.File;
-import java.io.IOException;
 import java.util.List;
 
 import org.apache.log4j.Level;
@@ -86,18 +85,17 @@ public abstract class RaftSnapshotBaseTest {
 
   private MiniRaftCluster cluster;
 
-  public abstract MiniRaftCluster initCluster(int numServer, RaftProperties 
prop)
-      throws IOException;
+  public abstract MiniRaftCluster.Factory<?> getFactory();
 
   @Before
-  public void setup() throws IOException {
+  public void setup() {
     final RaftProperties prop = new RaftProperties();
     prop.setClass(MiniRaftCluster.STATEMACHINE_CLASS_KEY,
         SimpleStateMachine4Testing.class, StateMachine.class);
     prop.setLong(RAFT_SERVER_SNAPSHOT_TRIGGER_THRESHOLD_KEY,
         SNAPSHOT_TRIGGER_THRESHOLD);
     prop.setBoolean(RAFT_SERVER_AUTO_SNAPSHOT_ENABLED_KEY, true);
-    this.cluster = initCluster(1, prop);
+    this.cluster = getFactory().newCluster(1, prop);
     cluster.start();
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/c7c4d114/ratis-server/src/test/java/org/apache/ratis/statemachine/TestStateMachine.java
----------------------------------------------------------------------
diff --git 
a/ratis-server/src/test/java/org/apache/ratis/statemachine/TestStateMachine.java
 
b/ratis-server/src/test/java/org/apache/ratis/statemachine/TestStateMachine.java
index 4e3391e..be34cc5 100644
--- 
a/ratis-server/src/test/java/org/apache/ratis/statemachine/TestStateMachine.java
+++ 
b/ratis-server/src/test/java/org/apache/ratis/statemachine/TestStateMachine.java
@@ -78,7 +78,8 @@ public class TestStateMachine {
   }
 
   private void startCluster() {
-    cluster = new MiniRaftClusterWithSimulatedRpc(NUM_SERVERS, properties);
+    cluster = MiniRaftClusterWithSimulatedRpc.FACTORY.newCluster(
+        NUM_SERVERS, properties);
     Assert.assertNull(getCluster().getLeader());
     getCluster().start();
   }

Reply via email to