Fix the platform to linux when import epoll and enable tcp reuse addr for unit tests
diff --git a/pom.xml b/pom.xml
index 110a960..6682c35 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,6 +29,7 @@
         <!-- Compiler settings properties -->
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
+        <netty.version>4.1.26.Final</netty.version>
     </properties>
 
     <modules>
@@ -79,7 +80,7 @@
             <dependency>
                 <groupId>io.netty</groupId>
                 <artifactId>netty-all</artifactId>
-                <version>4.1.26.Final</version>
+                <version>${netty.version}</version>
             </dependency>
             <dependency>
                 <groupId>com.alibaba</groupId>
diff --git a/remoting-core/remoting-impl/pom.xml b/remoting-core/remoting-impl/pom.xml
index 4805004..23791d1 100644
--- a/remoting-core/remoting-impl/pom.xml
+++ b/remoting-core/remoting-impl/pom.xml
@@ -10,6 +10,7 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
+
     <artifactId>remoting-impl</artifactId>
 
     <properties>
@@ -29,9 +30,8 @@
         <dependency>
             <groupId>io.netty</groupId>
             <artifactId>netty-transport-native-epoll</artifactId>
-            <version>4.1.26.Final</version>
-            <classifier>${os.detected.name}-${os.detected.arch}</classifier>
-            <scope>provided</scope>
+            <version>${netty.version}</version>
+            <classifier>linux-${os.detected.arch}</classifier>
         </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>
diff --git a/remoting-core/remoting-impl/src/main/java/org/apache/rocketmq/remoting/impl/command/RemotingCommandImpl.java b/remoting-core/remoting-impl/src/main/java/org/apache/rocketmq/remoting/impl/command/RemotingCommandImpl.java
index 8454616..e59f3fa 100644
--- a/remoting-core/remoting-impl/src/main/java/org/apache/rocketmq/remoting/impl/command/RemotingCommandImpl.java
+++ b/remoting-core/remoting-impl/src/main/java/org/apache/rocketmq/remoting/impl/command/RemotingCommandImpl.java
@@ -21,6 +21,7 @@
 import java.util.HashMap;
 import java.util.Map;
 import org.apache.commons.lang3.builder.EqualsBuilder;
+import org.apache.commons.lang3.builder.EqualsExclude;
 import org.apache.commons.lang3.builder.HashCodeBuilder;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringExclude;
@@ -29,6 +30,7 @@
 import org.apache.rocketmq.remoting.api.command.TrafficType;
 
 public class RemotingCommandImpl implements RemotingCommand {
+    @EqualsExclude
     public final static RequestIdGenerator REQUEST_ID_GENERATOR = RequestIdGenerator.inst;
 
     private short cmdCode;
diff --git a/remoting-core/remoting-impl/src/test/java/org/apache/rocketmq/remoting/BaseTest.java b/remoting-core/remoting-impl/src/test/java/org/apache/rocketmq/remoting/BaseTest.java
index 14e8c21..b9d3ced 100644
--- a/remoting-core/remoting-impl/src/test/java/org/apache/rocketmq/remoting/BaseTest.java
+++ b/remoting-core/remoting-impl/src/test/java/org/apache/rocketmq/remoting/BaseTest.java
@@ -139,17 +139,18 @@
         return objectFuture;
     }
 
-    protected RemotingClientConfig clientConfig() {
+    protected static RemotingClientConfig clientConfig() {
         RemotingClientConfig clientConfig = new RemotingClientConfig();
         clientConfig.setRemotingShutdownQuietPeriodMillis(0);
         clientConfig.setRemotingShutdownTimeoutMillis(10);
         return clientConfig;
     }
 
-    protected RemotingServerConfig serverConfig() {
+    protected static RemotingServerConfig serverConfig() {
         RemotingServerConfig serverConfig = new RemotingServerConfig();
         serverConfig.setRemotingShutdownQuietPeriodMillis(0);
         serverConfig.setRemotingShutdownTimeoutMillis(10);
+        serverConfig.setTcpSoReuseAddress(true);
         return serverConfig;
     }
 
diff --git a/remoting-core/remoting-impl/src/test/java/org/apache/rocketmq/remoting/impl/netty/EpollRemotingConnectionTest.java b/remoting-core/remoting-impl/src/test/java/org/apache/rocketmq/remoting/impl/netty/EpollRemotingConnectionTest.java
index 428ed18..df10264 100644
--- a/remoting-core/remoting-impl/src/test/java/org/apache/rocketmq/remoting/impl/netty/EpollRemotingConnectionTest.java
+++ b/remoting-core/remoting-impl/src/test/java/org/apache/rocketmq/remoting/impl/netty/EpollRemotingConnectionTest.java
@@ -59,24 +59,14 @@
 
     @BeforeClass
     public static void setUp() throws Exception {
-        RemotingClientConfig clientConfig = new RemotingClientConfig();
-        clientConfig.setRemotingShutdownQuietPeriodMillis(0);
-        clientConfig.setRemotingShutdownTimeoutMillis(10);
+        RemotingClientConfig clientConfig = clientConfig();
+        RemotingServerConfig serverConfig = serverConfig();
 
-        RemotingServerConfig serverConfig = new RemotingServerConfig();
-        serverConfig.setRemotingShutdownQuietPeriodMillis(0);
-        serverConfig.setRemotingShutdownTimeoutMillis(10);
+        RemotingClientConfig epollClientConfig = clientConfig();
 
-        RemotingClientConfig epollClientConfig = new RemotingClientConfig();
-        epollClientConfig.setClientNativeEpollEnable(true);
-        epollClientConfig.setRemotingShutdownQuietPeriodMillis(0);
-        epollClientConfig.setRemotingShutdownTimeoutMillis(10);
-
-        RemotingServerConfig epollServerConfig = new RemotingServerConfig();
+        RemotingServerConfig epollServerConfig = serverConfig();
         epollServerConfig.setServerNativeEpollEnable(true);
         epollServerConfig.setServerListenPort(9999);
-        epollServerConfig.setRemotingShutdownQuietPeriodMillis(0);
-        epollServerConfig.setRemotingShutdownTimeoutMillis(10);
 
         remotingClient = new NettyRemotingClient(clientConfig);
         remotingServer = new NettyRemotingServer(serverConfig);
diff --git a/remoting-core/remoting-impl/src/test/java/org/apache/rocketmq/remoting/impl/netty/NettyRemotingConnectionTest.java b/remoting-core/remoting-impl/src/test/java/org/apache/rocketmq/remoting/impl/netty/NettyRemotingConnectionTest.java
index 2ba88d8..d63ad6f 100644
--- a/remoting-core/remoting-impl/src/test/java/org/apache/rocketmq/remoting/impl/netty/NettyRemotingConnectionTest.java
+++ b/remoting-core/remoting-impl/src/test/java/org/apache/rocketmq/remoting/impl/netty/NettyRemotingConnectionTest.java
@@ -49,13 +49,9 @@
 
     @BeforeClass
     public static void setUp() throws Exception {
-        RemotingClientConfig clientConfig = new RemotingClientConfig();
-        clientConfig.setRemotingShutdownQuietPeriodMillis(0);
-        clientConfig.setRemotingShutdownTimeoutMillis(10);
+        RemotingClientConfig clientConfig = clientConfig();
 
-        RemotingServerConfig serverConfig = new RemotingServerConfig();
-        serverConfig.setRemotingShutdownQuietPeriodMillis(0);
-        serverConfig.setRemotingShutdownTimeoutMillis(10);
+        RemotingServerConfig serverConfig = serverConfig();
 
         remotingClient = new NettyRemotingClient(clientConfig);
         remotingServer = new NettyRemotingServer(serverConfig);