diff --git a/apm-commons/apm-datacarrier/pom.xml b/apm-commons/apm-datacarrier/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..098bf428e414a6209de735366e6af2d8e99acce1
--- /dev/null
+++ b/apm-commons/apm-datacarrier/pom.xml
@@ -0,0 +1,14 @@
+
+
+
+ apm-commons
+ org.skywalking
+ 3.2-2017
+
+ 4.0.0
+
+ apm-datacarrier
+
+
diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/DataCarrier.java b/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/DataCarrier.java
similarity index 86%
rename from apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/DataCarrier.java
rename to apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/DataCarrier.java
index 92c60cf88c13b2c2734db474404e4d8a568af2b6..e0d6f92360090775549cd915581149314b54e8d7 100644
--- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/DataCarrier.java
+++ b/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/DataCarrier.java
@@ -1,11 +1,11 @@
-package org.skywalking.apm.agent.core.datacarrier;
+package org.skywalking.apm.commons.datacarrier;
-import org.skywalking.apm.agent.core.datacarrier.buffer.BufferStrategy;
-import org.skywalking.apm.agent.core.datacarrier.buffer.Channels;
-import org.skywalking.apm.agent.core.datacarrier.consumer.ConsumerPool;
-import org.skywalking.apm.agent.core.datacarrier.consumer.IConsumer;
-import org.skywalking.apm.agent.core.datacarrier.partition.IDataPartitioner;
-import org.skywalking.apm.agent.core.datacarrier.partition.SimpleRollingPartitioner;
+import org.skywalking.apm.commons.datacarrier.buffer.BufferStrategy;
+import org.skywalking.apm.commons.datacarrier.buffer.Channels;
+import org.skywalking.apm.commons.datacarrier.consumer.ConsumerPool;
+import org.skywalking.apm.commons.datacarrier.consumer.IConsumer;
+import org.skywalking.apm.commons.datacarrier.partition.IDataPartitioner;
+import org.skywalking.apm.commons.datacarrier.partition.SimpleRollingPartitioner;
/**
* DataCarrier main class.
diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/buffer/Buffer.java b/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/buffer/Buffer.java
similarity index 91%
rename from apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/buffer/Buffer.java
rename to apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/buffer/Buffer.java
index cdf3a9025c48277693acceef4a51046b681ed943..7c798de7f88848e13af963b9302755ef71e22945 100644
--- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/buffer/Buffer.java
+++ b/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/buffer/Buffer.java
@@ -1,7 +1,7 @@
-package org.skywalking.apm.agent.core.datacarrier.buffer;
+package org.skywalking.apm.commons.datacarrier.buffer;
import java.util.LinkedList;
-import org.skywalking.apm.agent.core.datacarrier.common.AtomicRangeInteger;
+import org.skywalking.apm.commons.datacarrier.common.AtomicRangeInteger;
/**
* Created by wusheng on 2016/10/25.
diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/buffer/BufferStrategy.java b/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/buffer/BufferStrategy.java
similarity index 67%
rename from apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/buffer/BufferStrategy.java
rename to apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/buffer/BufferStrategy.java
index 527756ee1db4c5ec4d8fa97d318e6eca809ddc3b..02ea1cc11de1435ac9d1be75ff154c585ad6c036 100644
--- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/buffer/BufferStrategy.java
+++ b/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/buffer/BufferStrategy.java
@@ -1,4 +1,4 @@
-package org.skywalking.apm.agent.core.datacarrier.buffer;
+package org.skywalking.apm.commons.datacarrier.buffer;
/**
* Created by wusheng on 2016/10/25.
diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/buffer/Channels.java b/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/buffer/Channels.java
similarity index 92%
rename from apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/buffer/Channels.java
rename to apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/buffer/Channels.java
index 7dd6d8a4ad6f748586f569060bafa7f65cd7400e..e4b2e6182995c959de6c69a16d48b942b66b72fa 100644
--- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/buffer/Channels.java
+++ b/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/buffer/Channels.java
@@ -1,6 +1,6 @@
-package org.skywalking.apm.agent.core.datacarrier.buffer;
+package org.skywalking.apm.commons.datacarrier.buffer;
-import org.skywalking.apm.agent.core.datacarrier.partition.IDataPartitioner;
+import org.skywalking.apm.commons.datacarrier.partition.IDataPartitioner;
/**
* Channels of Buffer
diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/common/AtomicRangeInteger.java b/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/common/AtomicRangeInteger.java
similarity index 95%
rename from apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/common/AtomicRangeInteger.java
rename to apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/common/AtomicRangeInteger.java
index 9e1407cc8144f99b94949c0207754c45064325dc..9b3ed36a754a5a3d7cac358141736e4a4e3e5636 100644
--- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/common/AtomicRangeInteger.java
+++ b/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/common/AtomicRangeInteger.java
@@ -1,4 +1,4 @@
-package org.skywalking.apm.agent.core.datacarrier.common;
+package org.skywalking.apm.commons.datacarrier.common;
import java.io.Serializable;
import java.util.concurrent.atomic.AtomicInteger;
diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/consumer/ConsumerCannotBeCreatedException.java b/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/consumer/ConsumerCannotBeCreatedException.java
similarity index 76%
rename from apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/consumer/ConsumerCannotBeCreatedException.java
rename to apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/consumer/ConsumerCannotBeCreatedException.java
index a7683691dafb5d7ef4fae98c0e0a041608845aca..6cadcf6a2cb3e13491e70cae3c1ada568f1c368d 100644
--- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/consumer/ConsumerCannotBeCreatedException.java
+++ b/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/consumer/ConsumerCannotBeCreatedException.java
@@ -1,4 +1,4 @@
-package org.skywalking.apm.agent.core.datacarrier.consumer;
+package org.skywalking.apm.commons.datacarrier.consumer;
/**
* Created by wusheng on 2016/11/15.
diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/consumer/ConsumerPool.java b/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/consumer/ConsumerPool.java
similarity index 95%
rename from apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/consumer/ConsumerPool.java
rename to apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/consumer/ConsumerPool.java
index 6713ad4654bd5b45191360aadfc1c05966b87b28..75a2ad65159f426a8d30840ebd823ddd71388690 100644
--- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/consumer/ConsumerPool.java
+++ b/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/consumer/ConsumerPool.java
@@ -1,9 +1,9 @@
-package org.skywalking.apm.agent.core.datacarrier.consumer;
+package org.skywalking.apm.commons.datacarrier.consumer;
import java.util.ArrayList;
import java.util.concurrent.locks.ReentrantLock;
-import org.skywalking.apm.agent.core.datacarrier.buffer.Buffer;
-import org.skywalking.apm.agent.core.datacarrier.buffer.Channels;
+import org.skywalking.apm.commons.datacarrier.buffer.Buffer;
+import org.skywalking.apm.commons.datacarrier.buffer.Channels;
/**
* Pool of consumers
diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/consumer/ConsumerThread.java b/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/consumer/ConsumerThread.java
similarity index 95%
rename from apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/consumer/ConsumerThread.java
rename to apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/consumer/ConsumerThread.java
index 811179562f9094bc2bc0254e26945c6b352c4d83..71b34d00f27fea7c0c4f677dc0f40ea83f63311f 100644
--- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/consumer/ConsumerThread.java
+++ b/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/consumer/ConsumerThread.java
@@ -1,8 +1,8 @@
-package org.skywalking.apm.agent.core.datacarrier.consumer;
+package org.skywalking.apm.commons.datacarrier.consumer;
import java.util.LinkedList;
import java.util.List;
-import org.skywalking.apm.agent.core.datacarrier.buffer.Buffer;
+import org.skywalking.apm.commons.datacarrier.buffer.Buffer;
/**
* Created by wusheng on 2016/10/25.
diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/consumer/IConsumer.java b/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/consumer/IConsumer.java
similarity index 78%
rename from apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/consumer/IConsumer.java
rename to apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/consumer/IConsumer.java
index 70ee5b60fe506463a192eaa30ccafccd21634e32..4e42f4739041b668b8d9ec38461d33ecb5d8a031 100644
--- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/consumer/IConsumer.java
+++ b/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/consumer/IConsumer.java
@@ -1,4 +1,4 @@
-package org.skywalking.apm.agent.core.datacarrier.consumer;
+package org.skywalking.apm.commons.datacarrier.consumer;
import java.util.List;
diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/partition/IDataPartitioner.java b/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/partition/IDataPartitioner.java
similarity index 67%
rename from apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/partition/IDataPartitioner.java
rename to apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/partition/IDataPartitioner.java
index 140b82236e466b6686d6b87a644f2c5dcf1d00c7..105bcbc4eb369b3721e18377cf74e2064c882aa5 100644
--- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/partition/IDataPartitioner.java
+++ b/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/partition/IDataPartitioner.java
@@ -1,4 +1,4 @@
-package org.skywalking.apm.agent.core.datacarrier.partition;
+package org.skywalking.apm.commons.datacarrier.partition;
/**
* Created by wusheng on 2016/10/25.
diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/partition/ProducerThreadPartitioner.java b/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/partition/ProducerThreadPartitioner.java
similarity index 82%
rename from apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/partition/ProducerThreadPartitioner.java
rename to apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/partition/ProducerThreadPartitioner.java
index 118fd6327835a4b21baa6a1d97a18048594fc78b..3ebbee5924abefe9e0ca0c579e46d0a360a57c21 100644
--- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/partition/ProducerThreadPartitioner.java
+++ b/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/partition/ProducerThreadPartitioner.java
@@ -1,4 +1,4 @@
-package org.skywalking.apm.agent.core.datacarrier.partition;
+package org.skywalking.apm.commons.datacarrier.partition;
/**
* use threadid % total to partition
diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/partition/SimpleRollingPartitioner.java b/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/partition/SimpleRollingPartitioner.java
similarity index 88%
rename from apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/partition/SimpleRollingPartitioner.java
rename to apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/partition/SimpleRollingPartitioner.java
index c1d92d4713ee5c34fa59f0957315530e70fe5dbe..e44c899634aeaecdc062f550547991079400f8d2 100644
--- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/datacarrier/partition/SimpleRollingPartitioner.java
+++ b/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/partition/SimpleRollingPartitioner.java
@@ -1,4 +1,4 @@
-package org.skywalking.apm.agent.core.datacarrier.partition;
+package org.skywalking.apm.commons.datacarrier.partition;
/**
* use normal int to rolling.
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/DataCarrierTest.java b/apm-commons/apm-datacarrier/src/test/java/org/skywalking/apm/commons/datacarrier/DataCarrierTest.java
similarity index 92%
rename from apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/DataCarrierTest.java
rename to apm-commons/apm-datacarrier/src/test/java/org/skywalking/apm/commons/datacarrier/DataCarrierTest.java
index d324369ac5a9f699fa63ef76dc943efa9b7bcb0e..728ac36cd74e92dabadd94ea7dd66445118ff379 100644
--- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/DataCarrierTest.java
+++ b/apm-commons/apm-datacarrier/src/test/java/org/skywalking/apm/commons/datacarrier/DataCarrierTest.java
@@ -1,16 +1,15 @@
-package org.skywalking.apm.agent.core.datacarrier;
-
-import org.skywalking.apm.agent.core.datacarrier.buffer.Buffer;
-import org.skywalking.apm.agent.core.datacarrier.buffer.BufferStrategy;
-import org.skywalking.apm.agent.core.datacarrier.buffer.Channels;
-import org.skywalking.apm.agent.core.datacarrier.consumer.IConsumer;
-import org.skywalking.apm.agent.core.datacarrier.partition.ProducerThreadPartitioner;
-import org.skywalking.apm.agent.core.datacarrier.partition.SimpleRollingPartitioner;
+package org.skywalking.apm.commons.datacarrier;
+
+import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import org.powermock.api.support.membermodification.MemberModifier;
-
-import java.util.List;
+import org.skywalking.apm.commons.datacarrier.buffer.Buffer;
+import org.skywalking.apm.commons.datacarrier.buffer.BufferStrategy;
+import org.skywalking.apm.commons.datacarrier.buffer.Channels;
+import org.skywalking.apm.commons.datacarrier.consumer.IConsumer;
+import org.skywalking.apm.commons.datacarrier.partition.ProducerThreadPartitioner;
+import org.skywalking.apm.commons.datacarrier.partition.SimpleRollingPartitioner;
/**
* Created by wusheng on 2016/10/25.
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/SampleData.java b/apm-commons/apm-datacarrier/src/test/java/org/skywalking/apm/commons/datacarrier/SampleData.java
similarity index 89%
rename from apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/SampleData.java
rename to apm-commons/apm-datacarrier/src/test/java/org/skywalking/apm/commons/datacarrier/SampleData.java
index 347a65c5602c71706971bae8b690371ec77364cf..65db2db347eb3c5b0f5061af0ebf1d6d60b9980b 100644
--- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/SampleData.java
+++ b/apm-commons/apm-datacarrier/src/test/java/org/skywalking/apm/commons/datacarrier/SampleData.java
@@ -1,4 +1,4 @@
-package org.skywalking.apm.agent.core.datacarrier;
+package org.skywalking.apm.commons.datacarrier;
/**
* Created by wusheng on 2016/10/25.
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/common/AtomicRangeIntegerTest.java b/apm-commons/apm-datacarrier/src/test/java/org/skywalking/apm/commons/datacarrier/common/AtomicRangeIntegerTest.java
similarity index 84%
rename from apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/common/AtomicRangeIntegerTest.java
rename to apm-commons/apm-datacarrier/src/test/java/org/skywalking/apm/commons/datacarrier/common/AtomicRangeIntegerTest.java
index 72003bbd0ac8cbf4361def5e7d6e6c9278c3affe..aa417d59c87c548d9e80928897dc20ecb422c9ee 100644
--- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/common/AtomicRangeIntegerTest.java
+++ b/apm-commons/apm-datacarrier/src/test/java/org/skywalking/apm/commons/datacarrier/common/AtomicRangeIntegerTest.java
@@ -1,10 +1,12 @@
-package org.skywalking.apm.agent.core.datacarrier.common;
+package org.skywalking.apm.commons.datacarrier.common;
import org.junit.Assert;
import org.junit.Test;
+import static org.junit.Assert.*;
+
/**
- * Created by wusheng on 2016/10/25.
+ * Created by xin on 2017/7/14.
*/
public class AtomicRangeIntegerTest {
@Test
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/consumer/ConsumerPoolTest.java b/apm-commons/apm-datacarrier/src/test/java/org/skywalking/apm/commons/datacarrier/consumer/ConsumerPoolTest.java
similarity index 82%
rename from apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/consumer/ConsumerPoolTest.java
rename to apm-commons/apm-datacarrier/src/test/java/org/skywalking/apm/commons/datacarrier/consumer/ConsumerPoolTest.java
index 04cf883700568f90f18d4391fd3a3d861f30663c..3158cd51b3389cc802c4b8ad4eac85f331884577 100644
--- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/consumer/ConsumerPoolTest.java
+++ b/apm-commons/apm-datacarrier/src/test/java/org/skywalking/apm/commons/datacarrier/consumer/ConsumerPoolTest.java
@@ -1,12 +1,12 @@
-package org.skywalking.apm.agent.core.datacarrier.consumer;
+package org.skywalking.apm.commons.datacarrier.consumer;
import org.junit.Assert;
import org.junit.Test;
import org.powermock.api.support.membermodification.MemberModifier;
-import org.skywalking.apm.agent.core.datacarrier.SampleData;
-import org.skywalking.apm.agent.core.datacarrier.buffer.BufferStrategy;
-import org.skywalking.apm.agent.core.datacarrier.buffer.Channels;
-import org.skywalking.apm.agent.core.datacarrier.partition.SimpleRollingPartitioner;
+import org.skywalking.apm.commons.datacarrier.SampleData;
+import org.skywalking.apm.commons.datacarrier.buffer.BufferStrategy;
+import org.skywalking.apm.commons.datacarrier.buffer.Channels;
+import org.skywalking.apm.commons.datacarrier.partition.SimpleRollingPartitioner;
/**
* Created by wusheng on 2016/10/26.
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/consumer/ConsumerTest.java b/apm-commons/apm-datacarrier/src/test/java/org/skywalking/apm/commons/datacarrier/consumer/ConsumerTest.java
similarity index 95%
rename from apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/consumer/ConsumerTest.java
rename to apm-commons/apm-datacarrier/src/test/java/org/skywalking/apm/commons/datacarrier/consumer/ConsumerTest.java
index a2429415f7bba8a382540ecc66c814311c7cefae..bbe816b1948baf0cfdcc5f6b9d7fd918784315e9 100644
--- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/consumer/ConsumerTest.java
+++ b/apm-commons/apm-datacarrier/src/test/java/org/skywalking/apm/commons/datacarrier/consumer/ConsumerTest.java
@@ -1,4 +1,4 @@
-package org.skywalking.apm.agent.core.datacarrier.consumer;
+package org.skywalking.apm.commons.datacarrier.consumer;
import java.util.ArrayList;
import java.util.HashSet;
@@ -7,8 +7,8 @@ import java.util.concurrent.LinkedBlockingQueue;
import org.junit.Assert;
import org.junit.Test;
import org.powermock.api.support.membermodification.MemberModifier;
-import org.skywalking.apm.agent.core.datacarrier.DataCarrier;
-import org.skywalking.apm.agent.core.datacarrier.SampleData;
+import org.skywalking.apm.commons.datacarrier.DataCarrier;
+import org.skywalking.apm.commons.datacarrier.SampleData;
/**
* Created by wusheng on 2016/10/26.
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/consumer/SampleConsumer.java b/apm-commons/apm-datacarrier/src/test/java/org/skywalking/apm/commons/datacarrier/consumer/SampleConsumer.java
similarity index 81%
rename from apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/consumer/SampleConsumer.java
rename to apm-commons/apm-datacarrier/src/test/java/org/skywalking/apm/commons/datacarrier/consumer/SampleConsumer.java
index 2b210cd80b380ec19b68a4e5c3220910eded925e..aa18190815aaa87cff16bd6e7b20caecb92de35d 100644
--- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/consumer/SampleConsumer.java
+++ b/apm-commons/apm-datacarrier/src/test/java/org/skywalking/apm/commons/datacarrier/consumer/SampleConsumer.java
@@ -1,8 +1,7 @@
-package org.skywalking.apm.agent.core.datacarrier.consumer;
-
+package org.skywalking.apm.commons.datacarrier.consumer;
import java.util.List;
-import org.skywalking.apm.agent.core.datacarrier.SampleData;
+import org.skywalking.apm.commons.datacarrier.SampleData;
/**
* Created by wusheng on 2016/10/26.
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/partition/ProducerThreadPartitionerTest.java b/apm-commons/apm-datacarrier/src/test/java/org/skywalking/apm/commons/datacarrier/partition/ProducerThreadPartitionerTest.java
similarity index 79%
rename from apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/partition/ProducerThreadPartitionerTest.java
rename to apm-commons/apm-datacarrier/src/test/java/org/skywalking/apm/commons/datacarrier/partition/ProducerThreadPartitionerTest.java
index a0a7fed428898517c0383b3a8544eb9da568cfa7..0072471d5c09851ce716573b68af885269310ce4 100644
--- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/partition/ProducerThreadPartitionerTest.java
+++ b/apm-commons/apm-datacarrier/src/test/java/org/skywalking/apm/commons/datacarrier/partition/ProducerThreadPartitionerTest.java
@@ -1,15 +1,15 @@
-package org.skywalking.apm.agent.core.datacarrier.partition;
+package org.skywalking.apm.commons.datacarrier.partition;
import org.junit.Assert;
import org.junit.Test;
-import org.skywalking.apm.agent.core.datacarrier.SampleData;
+import org.skywalking.apm.commons.datacarrier.SampleData;
/**
* Created by wusheng on 2016/10/25.
*/
public class ProducerThreadPartitionerTest {
@Test
- public void testPartition(){
+ public void testPartition() {
int partitionNum = (int)Thread.currentThread().getId() % 10;
ProducerThreadPartitioner partitioner = new ProducerThreadPartitioner();
Assert.assertEquals(partitioner.partition(10, new SampleData()), partitionNum);
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/partition/SimpleRollingPartitionerTest.java b/apm-commons/apm-datacarrier/src/test/java/org/skywalking/apm/commons/datacarrier/partition/SimpleRollingPartitionerTest.java
similarity index 81%
rename from apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/partition/SimpleRollingPartitionerTest.java
rename to apm-commons/apm-datacarrier/src/test/java/org/skywalking/apm/commons/datacarrier/partition/SimpleRollingPartitionerTest.java
index 6935f190015201c5c7dfed805dd78c4f093772f3..07ca8562b51915ce8ad40e8a634168b311d0706e 100644
--- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/partition/SimpleRollingPartitionerTest.java
+++ b/apm-commons/apm-datacarrier/src/test/java/org/skywalking/apm/commons/datacarrier/partition/SimpleRollingPartitionerTest.java
@@ -1,8 +1,8 @@
-package org.skywalking.apm.agent.core.datacarrier.partition;
+package org.skywalking.apm.commons.datacarrier.partition;
import org.junit.Assert;
import org.junit.Test;
-import org.skywalking.apm.agent.core.datacarrier.SampleData;
+import org.skywalking.apm.commons.datacarrier.SampleData;
/**
* Created by wusheng on 2016/10/25.
diff --git a/apm-commons/apm-logging-log4j2/pom.xml b/apm-commons/apm-logging-log4j2/pom.xml
deleted file mode 100644
index ac89396f301fb3ba9c36f4e048421da105b2fd7e..0000000000000000000000000000000000000000
--- a/apm-commons/apm-logging-log4j2/pom.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
- apm-commons
- org.skywalking
- 3.2-2017
-
- 4.0.0
-
- apm-logging-log4j2
-
-
-
- org.skywalking
- apm-logging-api
- ${project.version}
-
-
- org.apache.logging.log4j
- log4j-core
- 2.8
-
-
- org.apache.logging.log4j
- log4j-api
- 2.8
-
-
-
diff --git a/apm-commons/apm-logging-log4j2/src/main/java/org/skywalking/apm/logging/log4j2/Log4j2Logger.java b/apm-commons/apm-logging-log4j2/src/main/java/org/skywalking/apm/logging/log4j2/Log4j2Logger.java
deleted file mode 100644
index 363d31db0412262eed5fb476eef661f5292afbfc..0000000000000000000000000000000000000000
--- a/apm-commons/apm-logging-log4j2/src/main/java/org/skywalking/apm/logging/log4j2/Log4j2Logger.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package org.skywalking.apm.logging.log4j2;
-
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.skywalking.apm.logging.ILog;
-
-/**
- * @author wusheng
- */
-public class Log4j2Logger implements ILog {
- private Logger delegateLogger;
-
- Log4j2Logger(Class> targetClass) {
- delegateLogger = LogManager.getFormatterLogger(targetClass);
- }
-
- @Override
- public void info(String format) {
- delegateLogger.info(format);
- }
-
- @Override
- public void info(String format, Object... arguments) {
- delegateLogger.info(format, arguments);
- }
-
- @Override
- public void warn(String format, Object... arguments) {
- delegateLogger.warn(format, arguments);
- }
-
- @Override
- public void error(String format, Throwable e) {
- delegateLogger.error(format, e);
- }
-
- @Override
- public void error(Throwable e, String format, Object... arguments) {
- delegateLogger.error(format, e, arguments);
- }
-
- @Override
- public boolean isDebugEnable() {
- return delegateLogger.isDebugEnabled();
- }
-
- @Override
- public boolean isInfoEnable() {
- return delegateLogger.isInfoEnabled();
- }
-
- @Override
- public boolean isWarnEnable() {
- return delegateLogger.isWarnEnabled();
- }
-
- @Override
- public boolean isErrorEnable() {
- return delegateLogger.isErrorEnabled();
- }
-
- @Override
- public void debug(String format) {
- delegateLogger.debug(format);
- }
-
- @Override
- public void debug(String format, Object... arguments) {
- delegateLogger.debug(format, arguments);
- }
-
- @Override
- public void error(String format) {
- delegateLogger.error(format);
- }
-}
diff --git a/apm-commons/apm-logging-log4j2/src/main/java/org/skywalking/apm/logging/log4j2/Log4j2Resolver.java b/apm-commons/apm-logging-log4j2/src/main/java/org/skywalking/apm/logging/log4j2/Log4j2Resolver.java
deleted file mode 100644
index 97da742c39c1cf40fe4151750b0473bb0a2a7777..0000000000000000000000000000000000000000
--- a/apm-commons/apm-logging-log4j2/src/main/java/org/skywalking/apm/logging/log4j2/Log4j2Resolver.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.skywalking.apm.logging.log4j2;
-
-import org.skywalking.apm.logging.ILog;
-import org.skywalking.apm.logging.LogResolver;
-
-/**
- * The LogResolver
is an implementation of {@link LogResolver},
- *
- * @author wusheng
- */
-public class Log4j2Resolver implements LogResolver {
- @Override
- public ILog getLogger(Class> clazz) {
- return new Log4j2Logger(clazz);
- }
-}
diff --git a/apm-commons/pom.xml b/apm-commons/pom.xml
index c28ff70e18333683bddfc72fdc2f938ed39285ac..aaaffca5757802f86042aaa86dab2888b9a8d29d 100644
--- a/apm-commons/pom.xml
+++ b/apm-commons/pom.xml
@@ -13,7 +13,7 @@
apm-util
apm-logging-api
- apm-logging-log4j2
+ apm-datacarrier
apm-commons
diff --git a/apm-sniffer/apm-agent-core/pom.xml b/apm-sniffer/apm-agent-core/pom.xml
index b0316d1272f3a8f55c84593d54c400f121bde89c..6749551f6b689dd4143bf3e73e2be423bc2a8935 100644
--- a/apm-sniffer/apm-agent-core/pom.xml
+++ b/apm-sniffer/apm-agent-core/pom.xml
@@ -95,6 +95,11 @@
test
+
+ org.skywalking
+ apm-datacarrier
+ ${project.version}
+
diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/remote/TraceSegmentServiceClient.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/remote/TraceSegmentServiceClient.java
index e6637b7fcc9ea4c05f1483bfa1209afa344a25fa..d04a625f1553c495943d24fc7e974ab5fa0e786f 100644
--- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/remote/TraceSegmentServiceClient.java
+++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/remote/TraceSegmentServiceClient.java
@@ -8,9 +8,9 @@ import org.skywalking.apm.agent.core.boot.ServiceManager;
import org.skywalking.apm.agent.core.context.TracingContext;
import org.skywalking.apm.agent.core.context.TracingContextListener;
import org.skywalking.apm.agent.core.context.trace.TraceSegment;
-import org.skywalking.apm.agent.core.datacarrier.DataCarrier;
-import org.skywalking.apm.agent.core.datacarrier.buffer.BufferStrategy;
-import org.skywalking.apm.agent.core.datacarrier.consumer.IConsumer;
+import org.skywalking.apm.commons.datacarrier.DataCarrier;
+import org.skywalking.apm.commons.datacarrier.buffer.BufferStrategy;
+import org.skywalking.apm.commons.datacarrier.consumer.IConsumer;
import org.skywalking.apm.logging.ILog;
import org.skywalking.apm.logging.LogManager;
import org.skywalking.apm.network.proto.Downstream;