diff --git a/pom.xml b/pom.xml
index 8516ccad96ee65441691cbad8777859b822ff532..fe0920bfde44e9915b141c080a01615cfdc89ce5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -81,17 +81,10 @@
2.23.4
- com.jd.blockchain
+ com.jd.utils
utils-common
- 1.4.0.RELEASE
- compile
+ 2.0.0.RELEASE
-
- com.jd.blockchain
- utils-common
- 1.4.0.RELEASE
- compile
-
diff --git a/src/main/java/bftsmart/communication/ServerCommunicationSystem.java b/src/main/java/bftsmart/communication/ServerCommunicationSystem.java
index e2cd74b1e3e2dfb14e97544374a7d741ac32e543..f7d456032043a4437d6dce6acb5f036adba96929 100644
--- a/src/main/java/bftsmart/communication/ServerCommunicationSystem.java
+++ b/src/main/java/bftsmart/communication/ServerCommunicationSystem.java
@@ -15,13 +15,12 @@ limitations under the License.
*/
package bftsmart.communication;
-import com.jd.blockchain.utils.concurrent.AsyncFuture;
-
import bftsmart.communication.client.CommunicationSystemServerSide;
import bftsmart.communication.client.RequestReceiver;
import bftsmart.communication.server.ServersCommunicationLayer;
import bftsmart.consensus.roles.Acceptor;
import bftsmart.tom.core.TOMLayer;
+import utils.concurrent.AsyncFuture;
/**
*
diff --git a/src/main/java/bftsmart/communication/ServerCommunicationSystemImpl.java b/src/main/java/bftsmart/communication/ServerCommunicationSystemImpl.java
index 2309594e08b4daf397b7c1385a3066dd617d3d1e..5c9d0a6668816b934dc43a8f1cfacbab32ce8673 100644
--- a/src/main/java/bftsmart/communication/ServerCommunicationSystemImpl.java
+++ b/src/main/java/bftsmart/communication/ServerCommunicationSystemImpl.java
@@ -22,15 +22,11 @@ import java.util.concurrent.TimeUnit;
import org.slf4j.LoggerFactory;
-import com.jd.blockchain.utils.concurrent.AsyncFuture;
-import com.jd.blockchain.utils.concurrent.CompletableAsyncFuture;
-
import bftsmart.communication.client.CommunicationSystemServerSide;
import bftsmart.communication.client.CommunicationSystemServerSideFactory;
import bftsmart.communication.client.RequestReceiver;
import bftsmart.communication.queue.MessageQueue;
import bftsmart.communication.queue.MessageQueueFactory;
-import bftsmart.communication.queue.MessageQueue.MSG_TYPE;
import bftsmart.communication.server.ServersCommunicationLayer;
import bftsmart.communication.server.ServersCommunicationLayerImpl;
import bftsmart.consensus.roles.Acceptor;
@@ -44,6 +40,8 @@ import bftsmart.tom.leaderchange.LCMessage;
import bftsmart.tom.leaderchange.LeaderRequestMessage;
import bftsmart.tom.leaderchange.LeaderResponseMessage;
import bftsmart.tom.leaderchange.LeaderStatusRequestMessage;
+import utils.concurrent.AsyncFuture;
+import utils.concurrent.CompletableAsyncFuture;
/**
*
diff --git a/src/main/java/bftsmart/communication/server/ServersCommunicationLayerImpl.java b/src/main/java/bftsmart/communication/server/ServersCommunicationLayerImpl.java
index f74b464a67dc221e8b3a345069753bd558736225..e557f49b4a475a41d4d4554d6745d019c434f0df 100644
--- a/src/main/java/bftsmart/communication/server/ServersCommunicationLayerImpl.java
+++ b/src/main/java/bftsmart/communication/server/ServersCommunicationLayerImpl.java
@@ -39,13 +39,12 @@ import javax.crypto.spec.PBEKeySpec;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.jd.blockchain.utils.io.RuntimeIOException;
-
import bftsmart.communication.SystemMessage;
import bftsmart.communication.queue.MessageQueue;
import bftsmart.communication.queue.MessageQueueFactory;
import bftsmart.reconfiguration.ServerViewController;
import bftsmart.tom.ServiceReplica;
+import utils.io.RuntimeIOException;
/**
*
diff --git a/src/main/java/bftsmart/tom/ServiceProxy.java b/src/main/java/bftsmart/tom/ServiceProxy.java
index b40442bb748c9a990ce983ce52233cbc8533727c..6b794dcf37ec219921207462ca61d07ddd85d11c 100644
--- a/src/main/java/bftsmart/tom/ServiceProxy.java
+++ b/src/main/java/bftsmart/tom/ServiceProxy.java
@@ -15,6 +15,16 @@ limitations under the License.
*/
package bftsmart.tom;
+import java.security.NoSuchAlgorithmException;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.Random;
+import java.util.concurrent.Semaphore;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.locks.ReentrantLock;
+
+import org.slf4j.LoggerFactory;
+
import bftsmart.reconfiguration.ReconfigureReply;
import bftsmart.reconfiguration.util.TOMConfiguration;
import bftsmart.reconfiguration.views.View;
@@ -23,16 +33,7 @@ import bftsmart.tom.core.messages.TOMMessage;
import bftsmart.tom.core.messages.TOMMessageType;
import bftsmart.tom.util.Extractor;
import bftsmart.tom.util.TOMUtil;
-import com.jd.blockchain.utils.exception.ViewObsoleteException;
-import org.slf4j.LoggerFactory;
-
-import java.security.NoSuchAlgorithmException;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.Random;
-import java.util.concurrent.Semaphore;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.locks.ReentrantLock;
+import utils.exception.ViewObsoleteException;
/**
* This class implements a TOMSender and represents a proxy to be used on the
diff --git a/src/main/java/bftsmart/tom/leaderchange/LCManager.java b/src/main/java/bftsmart/tom/leaderchange/LCManager.java
index 720514af348b357b32e74c603a2feb2a4548d4cd..9987fed13d25d04619281ee3b21f72a970a6ea94 100644
--- a/src/main/java/bftsmart/tom/leaderchange/LCManager.java
+++ b/src/main/java/bftsmart/tom/leaderchange/LCManager.java
@@ -37,8 +37,6 @@ import javax.crypto.SecretKey;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.jd.blockchain.utils.ArrayUtils;
-
import bftsmart.communication.server.ServerConnection;
import bftsmart.consensus.TimestampValuePair;
import bftsmart.consensus.app.SHA256Utils;
@@ -47,6 +45,7 @@ import bftsmart.reconfiguration.ServerViewController;
import bftsmart.tom.core.TOMLayer;
import bftsmart.tom.core.messages.TOMMessage;
import bftsmart.tom.util.TOMUtil;
+import utils.ArrayUtils;
/**
*