diff --git a/apm-commons/apm-datacarrier/pom.xml b/apm-commons/apm-datacarrier/pom.xml
new file mode 100644
index 000000000..098bf428e
--- /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 92c60cf88..e0d6f9236 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 cdf3a9025..7c798de7f 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 527756ee1..02ea1cc11 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 7dd6d8a4a..e4b2e6182 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 9e1407cc8..9b3ed36a7 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 a7683691d..6cadcf6a2 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 6713ad465..75a2ad651 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 811179562..71b34d00f 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 70ee5b60f..4e42f4739 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 140b82236..105bcbc4e 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 118fd6327..3ebbee592 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 c1d92d471..e44c89963 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 d324369ac..728ac36cd 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;
+package org.skywalking.apm.commons.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;
+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 347a65c56..65db2db34 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 72003bbd0..aa417d59c 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 04cf88370..3158cd51b 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 a2429415f..bbe816b19 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 2b210cd80..aa1819081 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 a0a7fed42..0072471d5 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 6935f1900..07ca8562b 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 ac89396f3..000000000
--- 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 363d31db0..000000000
--- 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 97da742c3..000000000
--- 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 c28ff70e1..aaaffca57 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 b0316d127..6749551f6 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 e6637b7fc..d04a625f1 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;