diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/TracingContextListener.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/TracingContextListener.java
index d36f0b80a9b64db3b71a3031ed7308526b28c57a..42ed16baf0768dd7afff29301a71399c6e7e3fcc 100644
--- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/TracingContextListener.java
+++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/TracingContextListener.java
@@ -2,19 +2,6 @@ package org.skywalking.apm.agent.core.context;
import org.skywalking.apm.agent.core.context.trace.TraceSegment;
-/**
- * {@link TracingContextListener} is a status change listener of {@link TracerContext}.
- * Add a {@link TracingContextListener} implementation through {@link TracerContext}
- *
- * All this class's methods will be called concurrently. Make sure all implementations are thread-safe.
- *
- * Created by wusheng on 2017/2/17.
- */
public interface TracingContextListener {
- /**
- * This method will be called, after the {@link TracerContext#finish()}
- *
- * @param traceSegment finished {@link TraceSegment}
- */
void afterFinished(TraceSegment traceSegment);
}
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/boot/ServiceManagerTest.java b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/boot/ServiceManagerTest.java
index 5c8a66cdd7f9ddbcb8812e0d394dbf5860969b4e..1fe758562ace82e1fc2ff9590c47888bbcb8cde9 100644
--- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/boot/ServiceManagerTest.java
+++ b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/boot/ServiceManagerTest.java
@@ -1,17 +1,98 @@
package org.skywalking.apm.agent.core.boot;
-import org.junit.Assert;
+import java.lang.reflect.Field;
+import java.util.HashMap;
+import java.util.List;
import org.junit.Test;
import org.skywalking.apm.agent.core.context.ContextManager;
+import org.skywalking.apm.agent.core.context.IgnoredTracerContext;
+import org.skywalking.apm.agent.core.context.TracingContext;
+import org.skywalking.apm.agent.core.context.TracingContextListener;
+import org.skywalking.apm.agent.core.jvm.JVMService;
+import org.skywalking.apm.agent.core.remote.CollectorDiscoveryService;
+import org.skywalking.apm.agent.core.remote.GRPCChannelListener;
+import org.skywalking.apm.agent.core.remote.GRPCChannelManager;
+import org.skywalking.apm.agent.core.remote.TraceSegmentServiceClient;
+import org.skywalking.apm.agent.core.sampling.SamplingService;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
-/**
- * @author wusheng
- */
public class ServiceManagerTest {
@Test
- public void testBoot() {
+ public void testServiceDependencies() throws Exception {
ServiceManager.INSTANCE.boot();
- ContextManager manager = ServiceManager.INSTANCE.findService(ContextManager.class);
- Assert.assertNotNull(manager);
+ HashMap registryService = getFieldValue(ServiceManager.INSTANCE, "bootedServices");
+
+ assertThat(registryService.size(), is(6));
+
+ assertTraceSegmentServiceClient(ServiceManager.INSTANCE.findService(TraceSegmentServiceClient.class));
+ assertContextManager(ServiceManager.INSTANCE.findService(ContextManager.class));
+ assertCollectorDiscoveryService(ServiceManager.INSTANCE.findService(CollectorDiscoveryService.class));
+ assertGRPCChannelManager(ServiceManager.INSTANCE.findService(GRPCChannelManager.class));
+ assertSamplingService(ServiceManager.INSTANCE.findService(SamplingService.class));
+ assertJVMService(ServiceManager.INSTANCE.findService(JVMService.class));
+
+ assertTracingContextListener();
+ assertIgnoreTracingContextListener();
+ }
+
+ private void assertIgnoreTracingContextListener() throws Exception {
+ List LISTENERS = getFieldValue(IgnoredTracerContext.ListenerManager.class, "LISTENERS");
+ assertThat(LISTENERS.size(), is(1));
+
+ assertThat(LISTENERS.contains(ServiceManager.INSTANCE.findService(ContextManager.class)), is(true));
+ }
+
+ private void assertTracingContextListener() throws Exception {
+ List LISTENERS = getFieldValue(TracingContext.ListenerManager.class, "LISTENERS");
+ assertThat(LISTENERS.size(), is(2));
+
+ assertThat(LISTENERS.contains(ServiceManager.INSTANCE.findService(ContextManager.class)), is(true));
+ assertThat(LISTENERS.contains(ServiceManager.INSTANCE.findService(TraceSegmentServiceClient.class)), is(true));
+ }
+
+ private void assertJVMService(JVMService service) {
+ assertNotNull(service);
+ }
+
+ private void assertGRPCChannelManager(GRPCChannelManager service) throws Exception {
+ assertNotNull(service);
+
+ List listeners = getFieldValue(service, "listeners");
+ assertEquals(listeners.size(), 1);
+ assertThat(listeners.get(0), is((GRPCChannelListener)ServiceManager.INSTANCE.
+ findService(TraceSegmentServiceClient.class)));
+ }
+
+ private void assertSamplingService(SamplingService service) {
+ assertNotNull(service);
+ }
+
+ private void assertCollectorDiscoveryService(CollectorDiscoveryService service) {
+ assertNotNull(service);
+ }
+
+ private void assertContextManager(ContextManager service) {
+ assertNotNull(service);
}
+
+ private void assertTraceSegmentServiceClient(TraceSegmentServiceClient service) {
+ assertNotNull(service);
+ }
+
+ private T getFieldValue(Object instance, String fieldName) throws Exception {
+ Field field = instance.getClass().getDeclaredField(fieldName);
+ field.setAccessible(true);
+ return (T)field.get(instance);
+ }
+
+ private T getFieldValue(Class clazz, String fieldName) throws Exception {
+ Field field = clazz.getDeclaredField(fieldName);
+ field.setAccessible(true);
+ return (T)field.get(clazz);
+ }
+
}
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/conf/SnifferConfigInitializerTest.java b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/conf/SnifferConfigInitializerTest.java
index 89fb6ceabdb766c61b50baa0111bdf3752e0c200..a289bbd72f4cc7490bfb04d9588604bcd596741d 100644
--- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/conf/SnifferConfigInitializerTest.java
+++ b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/conf/SnifferConfigInitializerTest.java
@@ -1,27 +1,22 @@
package org.skywalking.apm.agent.core.conf;
import org.junit.AfterClass;
-import org.junit.Assert;
import org.junit.Test;
import org.skywalking.apm.agent.core.logging.LogLevel;
-/**
- * @author wusheng
- */
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+
public class SnifferConfigInitializerTest {
@Test
- public void testInitialize() {
+ public void testLoadConfigFromJavaAgentDir() {
+ System.setProperty("applicationCode", "testApp");
+ System.setProperty("servers", "127.0.0.1:8090");
SnifferConfigInitializer.initialize();
-
- Assert.assertEquals("crmApp", Config.Agent.APPLICATION_CODE);
- Assert.assertEquals("127.0.0.1:8080", Config.Collector.SERVERS);
-
- Assert.assertNotNull(Config.Logging.DIR);
- Assert.assertNotNull(Config.Logging.FILE_NAME);
- Assert.assertNotNull(Config.Logging.MAX_FILE_SIZE);
- Assert.assertNotNull(Config.Logging.FILE_NAME);
- Assert.assertEquals(LogLevel.INFO, Config.Logging.LEVEL);
+ assertThat(Config.Agent.APPLICATION_CODE, is("testApp"));
+ assertThat(Config.Collector.SERVERS, is("127.0.0.1:8090"));
+ assertThat(Config.Logging.LEVEL, is(LogLevel.INFO));
}
@AfterClass
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/ContextManagerTest.java b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/ContextManagerTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..cc1b8bf0a9d84eeaeed1a878bd736263bc561bef
--- /dev/null
+++ b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/ContextManagerTest.java
@@ -0,0 +1,195 @@
+package org.skywalking.apm.agent.core.context;
+
+import java.lang.reflect.Field;
+import java.util.List;
+import java.util.Map;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.skywalking.apm.agent.core.boot.ServiceManager;
+import org.skywalking.apm.agent.core.conf.RemoteDownstreamConfig;
+import org.skywalking.apm.agent.core.context.tag.Tags;
+import org.skywalking.apm.agent.core.context.trace.AbstractSpan;
+import org.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
+import org.skywalking.apm.agent.core.context.trace.LogDataEntity;
+import org.skywalking.apm.agent.core.context.trace.SpanLayer;
+import org.skywalking.apm.agent.core.context.trace.TraceSegment;
+import org.skywalking.apm.agent.core.context.trace.TraceSegmentRef;
+import org.skywalking.apm.agent.core.dictionary.DictionaryUtil;
+import org.skywalking.apm.agent.core.dictionary.OperationNameDictionary;
+import org.skywalking.apm.agent.test.helper.AbstractTracingSpanHelper;
+import org.skywalking.apm.agent.test.helper.SegmentHelper;
+import org.skywalking.apm.agent.test.helper.TraceSegmentRefHelper;
+import org.skywalking.apm.agent.test.tools.SegmentStorage;
+import org.skywalking.apm.agent.test.tools.SegmentStoragePoint;
+import org.skywalking.apm.agent.test.tools.TracingSegmentRunner;
+import org.skywalking.apm.network.trace.component.ComponentsDefine;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+@RunWith(TracingSegmentRunner.class)
+public class ContextManagerTest {
+
+ @SegmentStoragePoint
+ private SegmentStorage tracingData;
+
+ @BeforeClass
+ public static void setUpBeforeClass() {
+ ServiceManager.INSTANCE.boot();
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ RemoteDownstreamConfig.Agent.APPLICATION_ID = 1;
+ RemoteDownstreamConfig.Agent.APPLICATION_INSTANCE_ID = 1;
+ }
+
+ @Test
+ public void createSpanWithInvalidateContextCarrier() {
+ ContextCarrier contextCarrier = new ContextCarrier().deserialize("S.1499176688384.581928182.80935.69.1|3|1|#192.168.1.8 :18002|#/portal/");
+
+ AbstractSpan firstEntrySpan = ContextManager.createEntrySpan("/testEntrySpan", contextCarrier);
+ firstEntrySpan.setComponent(ComponentsDefine.TOMCAT);
+ Tags.HTTP.METHOD.set(firstEntrySpan, "GET");
+ Tags.URL.set(firstEntrySpan, "127.0.0.1:8080");
+ SpanLayer.asHttp(firstEntrySpan);
+
+ ContextManager.stopSpan();
+
+ TraceSegment actualSegment = tracingData.getTraceSegments().get(0);
+ assertNull(actualSegment.getRefs());
+
+ List spanList = SegmentHelper.getSpan(actualSegment);
+ assertThat(spanList.size(), is(1));
+
+ AbstractTracingSpan actualEntrySpan = spanList.get(0);
+ assertThat(actualEntrySpan.getOperationName(), is("/testEntrySpan"));
+ assertThat(actualEntrySpan.getSpanId(), is(0));
+ assertThat(AbstractTracingSpanHelper.getParentSpanId(actualEntrySpan), is(-1));
+ }
+
+ @Test
+ public void createMultipleEntrySpan() {
+ ContextCarrier contextCarrier = new ContextCarrier().deserialize("S.1499176688384.581928182.80935.69.1|3|1|#192.168.1.8 :18002|#/portal/|T.1499176688386.581928182.80935.69.2");
+ assertTrue(contextCarrier.isValid());
+
+ AbstractSpan firstEntrySpan = ContextManager.createEntrySpan("/testFirstEntry", contextCarrier);
+ firstEntrySpan.setComponent(ComponentsDefine.TOMCAT);
+ Tags.HTTP.METHOD.set(firstEntrySpan, "GET");
+ Tags.URL.set(firstEntrySpan, "127.0.0.1:8080");
+ SpanLayer.asHttp(firstEntrySpan);
+
+ AbstractSpan secondEntrySpan = ContextManager.createEntrySpan("/testSecondEntry", contextCarrier);
+ secondEntrySpan.setComponent(ComponentsDefine.DUBBO);
+ Tags.URL.set(firstEntrySpan, "dubbo://127.0.0.1:8080");
+ SpanLayer.asRPCFramework(secondEntrySpan);
+
+ ContextCarrier injectContextCarrier = new ContextCarrier();
+ AbstractSpan exitSpan = ContextManager.createExitSpan("/textExitSpan", injectContextCarrier, "127.0.0.1:12800");
+ exitSpan.errorOccurred();
+ exitSpan.log(new RuntimeException("exception"));
+ exitSpan.setComponent(ComponentsDefine.HTTPCLIENT);
+
+ ContextManager.stopSpan();
+ ContextManager.stopSpan();
+ ContextManager.stopSpan();
+
+ assertThat(tracingData.getTraceSegments().size(), is(1));
+
+ TraceSegment actualSegment = tracingData.getTraceSegments().get(0);
+ assertThat(actualSegment.getRefs().size(), is(1));
+
+ TraceSegmentRef ref = actualSegment.getRefs().get(0);
+ assertThat(TraceSegmentRefHelper.getPeerHost(ref), is("192.168.1.8 :18002"));
+ assertThat(ref.getOperationName(), is("/portal/"));
+ assertThat(ref.getOperationId(), is(0));
+
+ List spanList = SegmentHelper.getSpan(actualSegment);
+ assertThat(spanList.size(), is(2));
+
+ AbstractTracingSpan actualEntrySpan = spanList.get(1);
+ assertThat(actualEntrySpan.getOperationName(), is("/testSecondEntry"));
+ assertThat(actualEntrySpan.getSpanId(), is(0));
+ assertThat(AbstractTracingSpanHelper.getParentSpanId(actualEntrySpan), is(-1));
+
+ AbstractTracingSpan actualExitSpan = spanList.get(0);
+ assertThat(actualExitSpan.getOperationName(), is("/textExitSpan"));
+ assertThat(actualExitSpan.getSpanId(), is(1));
+ assertThat(AbstractTracingSpanHelper.getParentSpanId(actualExitSpan), is(0));
+
+ List logs = AbstractTracingSpanHelper.getLogs(actualExitSpan);
+ assertThat(logs.size(), is(1));
+ assertThat(logs.get(0).getLogs().size(), is(4));
+
+ assertThat(injectContextCarrier.getSpanId(), is(1));
+ assertThat(injectContextCarrier.getEntryOperationName(), is("#/portal/"));
+ assertThat(injectContextCarrier.getApplicationId(), is(1));
+ assertThat(injectContextCarrier.getPeerHost(), is("#127.0.0.1:12800"));
+ }
+
+ @Test
+ public void createMultipleExitSpan() {
+ AbstractSpan entrySpan = ContextManager.createEntrySpan("/testEntrySpan", null);
+ entrySpan.setComponent(ComponentsDefine.TOMCAT);
+ Tags.HTTP.METHOD.set(entrySpan, "GET");
+ Tags.URL.set(entrySpan, "127.0.0.1:8080");
+ SpanLayer.asHttp(entrySpan);
+
+ ContextCarrier firstExitSpanContextCarrier = new ContextCarrier();
+ AbstractSpan firstExitSpan = ContextManager.createExitSpan("/testFirstExit", firstExitSpanContextCarrier, "127.0.0.1:8080");
+ firstExitSpan.setComponent(ComponentsDefine.DUBBO);
+ Tags.URL.set(firstExitSpan, "dubbo://127.0.0.1:8080");
+ SpanLayer.asRPCFramework(firstExitSpan);
+
+ ContextCarrier secondExitSpanContextCarrier = new ContextCarrier();
+ AbstractSpan secondExitSpan = ContextManager.createExitSpan("/testSecondExit", secondExitSpanContextCarrier, "127.0.0.1:9080");
+ secondExitSpan.setComponent(ComponentsDefine.TOMCAT);
+ Tags.HTTP.METHOD.set(secondExitSpan, "GET");
+ Tags.URL.set(secondExitSpan, "127.0.0.1:8080");
+ SpanLayer.asHttp(secondExitSpan);
+
+ ContextManager.stopSpan();
+ ContextManager.stopSpan();
+ ContextManager.stopSpan();
+
+ assertThat(tracingData.getTraceSegments().size(), is(1));
+ TraceSegment actualSegment = tracingData.getTraceSegments().get(0);
+ assertNull(actualSegment.getRefs());
+
+ List spanList = SegmentHelper.getSpan(actualSegment);
+ assertThat(spanList.size(), is(2));
+
+ AbstractTracingSpan actualFirstExitSpan = spanList.get(0);
+ assertThat(actualFirstExitSpan.getOperationName(), is("/testFirstExit"));
+ assertThat(actualFirstExitSpan.getSpanId(), is(1));
+ assertThat(AbstractTracingSpanHelper.getParentSpanId(actualFirstExitSpan), is(0));
+
+ AbstractTracingSpan actualEntrySpan = spanList.get(1);
+ assertThat(actualEntrySpan.getOperationName(), is("/testEntrySpan"));
+ assertThat(actualEntrySpan.getSpanId(), is(0));
+ assertThat(AbstractTracingSpanHelper.getParentSpanId(actualEntrySpan), is(-1));
+
+ assertThat(firstExitSpanContextCarrier.getPeerHost(), is("#127.0.0.1:8080"));
+ assertThat(firstExitSpanContextCarrier.getApplicationId(), is(1));
+ assertThat(firstExitSpanContextCarrier.getSpanId(), is(1));
+ assertThat(firstExitSpanContextCarrier.getEntryOperationName(), is("#/testEntrySpan"));
+
+ assertThat(secondExitSpanContextCarrier.getPeerHost(), is("#127.0.0.1:8080"));
+ assertThat(secondExitSpanContextCarrier.getApplicationId(), is(1));
+ assertThat(secondExitSpanContextCarrier.getSpanId(), is(1));
+ assertThat(secondExitSpanContextCarrier.getEntryOperationName(), is("#/testEntrySpan"));
+
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ RemoteDownstreamConfig.Agent.APPLICATION_ID = DictionaryUtil.nullValue();
+ RemoteDownstreamConfig.Agent.APPLICATION_INSTANCE_ID = DictionaryUtil.nullValue();
+ }
+
+}
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/ContextManagerTestCase.java b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/ContextManagerTestCase.java
deleted file mode 100644
index dba87ad5af5cd9a6419d9b07b4735b440a5ceba9..0000000000000000000000000000000000000000
--- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/ContextManagerTestCase.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package org.skywalking.apm.agent.core.context;
-
-import java.lang.reflect.Field;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.skywalking.apm.agent.core.boot.ServiceManager;
-import org.skywalking.apm.agent.core.context.trace.AbstractSpan;
-import org.skywalking.apm.agent.core.context.trace.NoopSpan;
-import org.skywalking.apm.agent.core.context.trace.TraceSegment;
-import org.skywalking.apm.agent.core.context.util.TraceSegmentHelper;
-
-/**
- * Created by wusheng on 2017/2/19.
- */
-public class ContextManagerTestCase {
- @BeforeClass
- public static void setup() {
- ServiceManager.INSTANCE.boot();
- }
-
- @Test
- public void testDelegateToTracerContext() {
- AbstractSpan span = ContextManager.createLocalSpan("serviceA");
- span.setComponent("test");
-
- Assert.assertEquals(span, ContextManager.activeSpan());
-
- TracingContext.ListenerManager.add(TestTracingContextListener.INSTANCE);
- ContextManager.stopSpan();
-
- TraceSegment segment = TestTracingContextListener.INSTANCE.finishedSegmentCarrier[0];
-
- Assert.assertEquals(span, TraceSegmentHelper.getSpans(segment).get(0));
- }
-
- @Test
- public void testSwitchToIgnoredTracerContext() throws NoSuchFieldException, IllegalAccessException {
- AbstractSpan span = ContextManager.createLocalSpan("/webresource/jquery.js");
- span.setComponent("test");
-
- Assert.assertTrue(span instanceof NoopSpan);
- Assert.assertTrue(ContextManager.activeSpan() instanceof NoopSpan);
-
- Field context = ContextManager.class.getDeclaredField("CONTEXT");
- context.setAccessible(true);
- AbstractTracerContext tracerContext = ((ThreadLocal)context.get(null)).get();
-
- Assert.assertTrue(tracerContext instanceof IgnoredTracerContext);
-
- ContextManager.stopSpan();
- tracerContext = ((ThreadLocal)context.get(null)).get();
- Assert.assertNull(tracerContext);
-
- // check normal trace again
- span = ContextManager.createLocalSpan("serviceA");
- span.setComponent("test");
-
- tracerContext = ((ThreadLocal)context.get(null)).get();
- Assert.assertTrue(tracerContext instanceof TracingContext);
- ContextManager.stopSpan();
- tracerContext = ((ThreadLocal)context.get(null)).get();
- Assert.assertNull(tracerContext);
- }
-
- @After
- public void reset() {
- TracingContext.ListenerManager.remove(TestTracingContextListener.INSTANCE);
- }
-}
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/IgnoredTracerContextTest.java b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/IgnoredTracerContextTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..faffcbf3c31089d22fe62823a2f206296ef84e12
--- /dev/null
+++ b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/IgnoredTracerContextTest.java
@@ -0,0 +1,85 @@
+package org.skywalking.apm.agent.core.context;
+
+import java.util.LinkedList;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.skywalking.apm.agent.core.boot.ServiceManager;
+import org.skywalking.apm.agent.core.conf.Config;
+import org.skywalking.apm.agent.core.conf.RemoteDownstreamConfig;
+import org.skywalking.apm.agent.core.context.trace.AbstractSpan;
+import org.skywalking.apm.agent.core.context.trace.NoopSpan;
+import org.skywalking.apm.agent.test.tools.SegmentStorage;
+import org.skywalking.apm.agent.test.tools.SegmentStoragePoint;
+import org.skywalking.apm.agent.test.tools.TracingSegmentRunner;
+
+import static junit.framework.TestCase.assertNull;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+@RunWith(TracingSegmentRunner.class)
+public class IgnoredTracerContextTest {
+
+ @SegmentStoragePoint
+ private SegmentStorage storage;
+
+ @Before
+ public void setUp() throws Exception {
+ RemoteDownstreamConfig.Agent.APPLICATION_ID = 1;
+ RemoteDownstreamConfig.Agent.APPLICATION_INSTANCE_ID = 1;
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ }
+
+ @Test
+ public void ignoredTraceContextWithSampling() {
+ Config.Agent.SAMPLE_N_PER_3_SECS = 1;
+ ServiceManager.INSTANCE.boot();
+ ContextManager.createLocalSpan("/test1");
+ ContextManager.stopSpan();
+
+ ContextManager.createLocalSpan("/test2");
+ ContextManager.stopSpan();
+
+ ContextManager.createLocalSpan("/test3");
+ ContextManager.stopSpan();
+
+ ContextManager.createLocalSpan("/test4");
+ ContextManager.stopSpan();
+
+ assertThat(storage.getIgnoredTracerContexts().size(), is(3));
+ assertThat(storage.getTraceSegments().size(), is(1));
+
+ }
+
+ @Test
+ public void ignoredTraceContextWithExcludeOperationName() {
+ ServiceManager.INSTANCE.boot();
+ AbstractSpan abstractSpan = ContextManager.createEntrySpan("test.js", null);
+ ContextManager.stopSpan();
+
+ assertThat(abstractSpan.getClass().getName(), is(NoopSpan.class.getName()));
+ LinkedList ignoredTracerContexts = storage.getIgnoredTracerContexts();
+ assertThat(ignoredTracerContexts.size(), is(1));
+ }
+
+ @Test
+ public void ignoredTraceContextWithEmptyOperationName() {
+ ServiceManager.INSTANCE.boot();
+ ContextCarrier contextCarrier = new ContextCarrier();
+ AbstractSpan abstractSpan = ContextManager.createExitSpan("", contextCarrier, "127.0.0.1:2181");
+ ContextManager.stopSpan();
+
+ assertThat(abstractSpan.getClass().getName(), is(NoopSpan.class.getName()));
+ assertNull(contextCarrier.getEntryOperationName());
+ assertThat(contextCarrier.getSpanId(), is(-1));
+ assertNull(contextCarrier.getPeerHost());
+
+ LinkedList ignoredTracerContexts = storage.getIgnoredTracerContexts();
+ assertThat(ignoredTracerContexts.size(), is(1));
+ }
+
+}
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/TestTracingContextListener.java b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/TestTracingContextListener.java
deleted file mode 100644
index 4180326140e5d9c85f3e5e08dd66cdd83030d136..0000000000000000000000000000000000000000
--- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/TestTracingContextListener.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.skywalking.apm.agent.core.context;
-
-import org.skywalking.apm.agent.core.context.trace.TraceSegment;
-
-/**
- * Created by wusheng on 2017/2/19.
- */
-public enum TestTracingContextListener implements TracingContextListener {
- INSTANCE;
- final TraceSegment[] finishedSegmentCarrier = {null};
-
- @Override
- public void afterFinished(TraceSegment traceSegment) {
- finishedSegmentCarrier[0] = traceSegment;
- }
-}
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/TracerContextTestCase.java b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/TracerContextTestCase.java
deleted file mode 100644
index 736e96bbac5fe724d5c70e5ff3ef2d64063d31b8..0000000000000000000000000000000000000000
--- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/TracerContextTestCase.java
+++ /dev/null
@@ -1,105 +0,0 @@
-package org.skywalking.apm.agent.core.context;
-
-import java.util.LinkedList;
-import java.util.List;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Test;
-import org.skywalking.apm.agent.core.context.ids.DistributedTraceId;
-import org.skywalking.apm.agent.core.context.ids.PropagatedTraceId;
-import org.skywalking.apm.agent.core.context.trace.AbstractSpan;
-import org.skywalking.apm.agent.core.context.trace.TraceSegment;
-import org.skywalking.apm.agent.core.context.util.TraceSegmentHelper;
-import org.skywalking.apm.agent.core.context.util.TraceSegmentRefHelper;
-
-/**
- * Created by wusheng on 2017/2/19.
- */
-public class TracerContextTestCase {
- @Test
- public void testSpanLifeCycle() {
- TracingContext context = new TracingContext();
- AbstractSpan span = context.createLocalSpan("/serviceA");
-
- Assert.assertEquals(span, context.activeSpan());
-
- TracingContext.ListenerManager.add(TestTracingContextListener.INSTANCE);
- final TraceSegment[] finishedSegmentCarrier = TestTracingContextListener.INSTANCE.finishedSegmentCarrier;
- context.stopSpan(span);
-
- TraceSegment traceSegment = finishedSegmentCarrier[0];
- Assert.assertNotNull(traceSegment);
- Assert.assertEquals(1, TraceSegmentHelper.getSpans(traceSegment).size());
- Assert.assertEquals(span, TraceSegmentHelper.getSpans(traceSegment).get(0));
- }
-
- @Test
- public void testChildOfSpan() {
- TracingContext context = new TracingContext();
- AbstractSpan serviceSpan = context.createLocalSpan("/serviceA");
- AbstractSpan dbSpan = context.createExitSpan("db/preparedStatement/execute", "127.0.0.1:3306");
-
- Assert.assertEquals(dbSpan, context.activeSpan());
-
- TracingContext.ListenerManager.add(TestTracingContextListener.INSTANCE);
- final TraceSegment[] finishedSegmentCarrier = TestTracingContextListener.INSTANCE.finishedSegmentCarrier;
-
- try {
- context.stopSpan(serviceSpan);
- } catch (Throwable t) {
- Assert.assertTrue(t instanceof IllegalStateException);
- }
-
- context.stopSpan(dbSpan);
- context.stopSpan(serviceSpan);
-
- TraceSegment traceSegment = finishedSegmentCarrier[0];
- Assert.assertNotNull(traceSegment);
- Assert.assertEquals(2, TraceSegmentHelper.getSpans(traceSegment).size());
- Assert.assertEquals(dbSpan, TraceSegmentHelper.getSpans(traceSegment).get(0));
- }
-
- @Test
- public void testInject() {
- TracingContext context = new TracingContext();
- AbstractSpan serviceSpan = context.createLocalSpan("/serviceA");
- AbstractSpan dbSpan = context.createExitSpan("db/preparedStatement/execute", "127.0.0.1:3306");
-
- ContextCarrier carrier = new ContextCarrier();
- context.inject(carrier);
-
- Assert.assertEquals("127.0.0.1:3306", carrier.getPeerHost());
- Assert.assertEquals(1, carrier.getSpanId());
- }
-
- @Test
- public void testExtract() {
- ContextCarrier carrier = new ContextCarrier();
- carrier.setTraceSegmentId("trace_id_1");
- carrier.setSpanId(5);
- carrier.setPeerHost("10.2.3.16:8080");
- List ids = new LinkedList();
- ids.add(new PropagatedTraceId("Trace.global.id.123"));
- carrier.setDistributedTraceIds(ids);
-
- Assert.assertTrue(carrier.isValid());
-
- TracingContext context = new TracingContext();
- context.extract(carrier);
- AbstractSpan span = context.createLocalSpan("/serviceC");
-
- TracingContext.ListenerManager.add(TestTracingContextListener.INSTANCE);
- final TraceSegment[] finishedSegmentCarrier = TestTracingContextListener.INSTANCE.finishedSegmentCarrier;
-
- context.stopSpan(span);
-
- TraceSegment segment = finishedSegmentCarrier[0];
- Assert.assertEquals("trace_id_1", TraceSegmentRefHelper.getTraceSegmentId(segment.getRefs().get(0)));
- Assert.assertEquals(5, TraceSegmentRefHelper.getSpanId(segment.getRefs().get(0)));
- }
-
- @After
- public void reset() {
- TracingContext.ListenerManager.remove(TestTracingContextListener.INSTANCE);
- }
-}
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/trace/SpanTestCase.java b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/trace/SpanTestCase.java
deleted file mode 100644
index a84a79ec45f6c8bed5ade8421e4745f6d3a25944..0000000000000000000000000000000000000000
--- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/trace/SpanTestCase.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package org.skywalking.apm.agent.core.context.trace;
-
-import java.util.List;
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-import org.skywalking.apm.agent.core.context.tag.Tags;
-import org.skywalking.apm.agent.core.context.util.KeyValuePair;
-import org.skywalking.apm.agent.core.context.util.KeyValuePairReader;
-import org.skywalking.apm.agent.core.context.util.TraceSegmentHelper;
-import org.skywalking.apm.agent.core.dictionary.ApplicationDictionary;
-
-@RunWith(PowerMockRunner.class)
-@PrepareForTest(ApplicationDictionary.class)
-public class SpanTestCase {
-
- @Test
- public void testConstructors() {
- AbstractTracingSpan span1 = new LocalSpan(0, -1, "serviceA");
- AbstractTracingSpan span2 = new LocalSpan(1, 0, "serviceA");
- span2.setOperationName("serviceA-2");
- span1.start();
- span2.start();
- Assert.assertEquals("serviceA-2", span2.getOperationName());
-
- Assert.assertEquals(-1, span1.parentSpanId);
- Assert.assertEquals(0, span2.parentSpanId);
- Assert.assertTrue(span1.startTime > 0);
- Assert.assertTrue(span2.startTime > 0);
- }
-
- @Test
- public void testFinish() {
- TraceSegment owner = new TraceSegment();
-
- AbstractTracingSpan span1 = new LocalSpan(0, -1, "serviceA");
-
- Assert.assertTrue(span1.endTime == 0);
-
- span1.finish(owner);
- Assert.assertEquals(span1, TraceSegmentHelper.getSpans(owner).get(0));
- Assert.assertTrue(span1.endTime > 0);
- }
-
- @Test
- public void testSetTag() {
- AbstractTracingSpan span1 = new LocalSpan(0, -1, "serviceA");
- SpanLayer.asHttp(span1);
- span1.setComponent("Spring");
- span1.errorOccurred();
- Tags.STATUS_CODE.set(span1, "505");
- Tags.URL.set(span1, "http://127.0.0.1/serviceA");
- Tags.DB_STATEMENT.set(span1, "select * from users");
-
- Assert.assertEquals(SpanLayer.HTTP, span1.layer);
- Assert.assertTrue(span1.errorOccurred);
- }
-
- @Test
- public void testLogException() throws NoSuchFieldException, IllegalAccessException {
- AbstractTracingSpan span1 = new LocalSpan(0, -1, "serviceA");
- Exception exp = new Exception("exception msg");
- span1.log(exp);
-
- LogDataEntity logs = span1.logs.get(0);
- List keyValuePairs = logs.getLogs();
-
- Assert.assertEquals("java.lang.Exception", KeyValuePairReader.get(keyValuePairs, "error.kind"));
- Assert.assertEquals("exception msg", KeyValuePairReader.get(keyValuePairs, "message"));
- Assert.assertNotNull(KeyValuePairReader.get(keyValuePairs, "stack"));
- }
-}
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/trace/TraceSegmentTestCase.java b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/trace/TraceSegmentTestCase.java
deleted file mode 100644
index f9b7787f33ec50026276b30e10826d86a4626af9..0000000000000000000000000000000000000000
--- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/trace/TraceSegmentTestCase.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package org.skywalking.apm.agent.core.context.trace;
-
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.skywalking.apm.agent.core.context.util.TraceSegmentHelper;
-
-public class TraceSegmentTestCase {
-
- @Before
- public void setUp() {
-
- }
-
- @Test
- public void testRef() {
-
- }
-
- @Test
- public void testArchiveSpan() {
- TraceSegment segment = new TraceSegment();
- AbstractTracingSpan span1 = new LocalSpan(1, 0, "/serviceA");
- segment.archive(span1);
-
- AbstractTracingSpan span2 = new LocalSpan(2, 1, "/db/sql");
- segment.archive(span2);
-
- Assert.assertEquals(span1, TraceSegmentHelper.getSpans(segment).get(0));
- Assert.assertEquals(span2, TraceSegmentHelper.getSpans(segment).get(1));
- }
-}
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/util/KeyValuePairReader.java b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/util/KeyValuePairReader.java
deleted file mode 100644
index a343f928ff2938ff7255dfd1fb5074ee76ebd1ae..0000000000000000000000000000000000000000
--- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/util/KeyValuePairReader.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package org.skywalking.apm.agent.core.context.util;
-
-import java.util.List;
-
-public class KeyValuePairReader {
- public static String get(List pairs, String key) {
- for (KeyValuePair pair : pairs) {
- if (pair.getKey().equals(key)) {
- return pair.getValue();
- }
- }
-
- return null;
- }
-}
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/util/TraceSegmentHelper.java b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/util/TraceSegmentHelper.java
deleted file mode 100644
index 50a3e8dd1c7dab3002a7d9cb1fe1d3503f1c1320..0000000000000000000000000000000000000000
--- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/util/TraceSegmentHelper.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.skywalking.apm.agent.core.context.util;
-
-import java.lang.reflect.Field;
-import java.util.List;
-import org.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
-import org.skywalking.apm.agent.core.context.trace.TraceSegment;
-
-public class TraceSegmentHelper {
-
- public static List getSpans(TraceSegment traceSegment) {
- try {
- Field field = AbstractTracingSpan.class.getDeclaredField("spans");
- return (List)field.get(traceSegment);
- } catch (Exception e) {
- throw new RuntimeException("Failed to get spans", e);
- }
- }
-
-
-}
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/util/TraceSegmentRefHelper.java b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/util/TraceSegmentRefHelper.java
deleted file mode 100644
index d641229f0a83bf36ed00dd230e37ee3fb6a17ac0..0000000000000000000000000000000000000000
--- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/util/TraceSegmentRefHelper.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.skywalking.apm.agent.core.context.util;
-
-import java.lang.reflect.Field;
-import org.skywalking.apm.agent.core.context.trace.TraceSegmentRef;
-
-public class TraceSegmentRefHelper {
-
- public static int getSpanId(TraceSegmentRef ref) {
- try {
- Field field = TraceSegmentRef.class.getDeclaredField("spanId");
- return Integer.valueOf(field.get(ref).toString());
- } catch (Exception e) {
- throw new RuntimeException("Failed to get span id", e);
- }
- }
-
- public static String getTraceSegmentId(TraceSegmentRef ref) {
- try {
- Field field = TraceSegmentRef.class.getDeclaredField("traceSegmentId");
- return field.get(ref).toString();
- } catch (Exception e) {
- throw new RuntimeException("Failed to get span id", e);
- }
- }
-}
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/performance/comparetest/VsABQ.java b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/performance/comparetest/VsABQ.java
deleted file mode 100644
index bb867a1faeb1c4d19bb1b7ca3b135d52d510b67d..0000000000000000000000000000000000000000
--- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/performance/comparetest/VsABQ.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package org.skywalking.apm.agent.core.datacarrier.performance.comparetest;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ArrayBlockingQueue;
-import org.junit.Test;
-import org.skywalking.apm.agent.core.datacarrier.DataCarrier;
-import org.skywalking.apm.agent.core.datacarrier.consumer.IConsumer;
-
-/**
- * Created by wusheng on 2016/11/24.
- */
-public class VsABQ {
- private static int totalSize = 100000000;
-
- /**
- * 39469
- *
- * @throws InterruptedException
- */
- @Test
- public void testABQ() throws InterruptedException {
- final ArrayBlockingQueue queue = new ArrayBlockingQueue(5000);
-
- Thread consumer = new Thread(new Runnable() {
- @Override
- public void run() {
- long startTime = -1;
- int dataCounter = 0;
-
- while (true) {
- ArrayList data = new ArrayList();
- queue.drainTo(data);
- if (startTime == -1 && data.size() > 0) {
- startTime = System.currentTimeMillis();
- }
-
- dataCounter += data.size();
- if (dataCounter == totalSize) {
- break;
- }
- }
-
- System.out.println("time cost:" + (System.currentTimeMillis() - startTime));
- }
- });
- consumer.start();
-
- for (int i = 0; i < totalSize; i++) {
- boolean status = false;
- while (!status) {
- try {
- queue.add(i);
- status = true;
- } catch (Exception e) {
- }
- }
- }
-
- consumer.join();
- }
-
- public static void main(String[] args) throws InterruptedException {
- final DataCarrier dataCarrier = new DataCarrier(5, 1000);
-
- dataCarrier.consume(new IConsumer() {
- long startTime = -1;
- int dataCounter = 0;
-
- @Override
- public void init() {
-
- }
-
- @Override
- public void consume(List data) {
- if (startTime == -1 && data.size() > 0) {
- startTime = System.currentTimeMillis();
- }
- dataCounter += data.size();
-
- if (dataCounter == totalSize) {
- System.out.println("cost:" + (System.currentTimeMillis() - startTime));
- }
- }
-
- @Override
- public void onError(List data, Throwable t) {
-
- }
-
- @Override
- public void onExit() {
-
- }
- }, 1);
-
- for (int i = 0; i < totalSize; i++) {
- dataCarrier.produce(i);
- }
-
- Thread.sleep(10 * 1000L);
- }
-}
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/performance/comparetest/disruptor/Data.java b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/performance/comparetest/disruptor/Data.java
deleted file mode 100644
index 771cc1d22843a49d465ad68f91281300de51bc7a..0000000000000000000000000000000000000000
--- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/performance/comparetest/disruptor/Data.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.skywalking.apm.agent.core.datacarrier.performance.comparetest.disruptor;
-
-/**
- * Created by wusheng on 2016/11/24.
- */
-public class Data {
- private long value1;
-
- public long getValue1() {
- return value1;
- }
-
- public void setValue1(long value1) {
- this.value1 = value1;
- }
-}
-
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/performance/comparetest/disruptor/DataEventFactory.java b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/performance/comparetest/disruptor/DataEventFactory.java
deleted file mode 100644
index 25e5740cb1e1a06c2343d6468940662b95235ef4..0000000000000000000000000000000000000000
--- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/performance/comparetest/disruptor/DataEventFactory.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package org.skywalking.apm.agent.core.datacarrier.performance.comparetest.disruptor;
-
-import com.lmax.disruptor.EventFactory;
-
-/**
- * Created by wusheng on 2016/11/24.
- */
-public class DataEventFactory implements EventFactory {
-
- @Override
- public Data newInstance() {
- return new Data();
- }
-}
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/performance/comparetest/disruptor/DataEventHandler.java b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/performance/comparetest/disruptor/DataEventHandler.java
deleted file mode 100644
index 01b14308a743d0dcba4c5a17d20ac9409573b5ae..0000000000000000000000000000000000000000
--- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/performance/comparetest/disruptor/DataEventHandler.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.skywalking.apm.agent.core.datacarrier.performance.comparetest.disruptor;
-
-import com.lmax.disruptor.EventHandler;
-
-/**
- * Created by wusheng on 2016/11/24.
- */
-public class DataEventHandler implements EventHandler {
- public long counter = 0;
-
- @Override
- public void onEvent(Data data, long sequence, boolean endOfBatch) throws Exception {
- counter++;
- System.out.println("handler:" + data.getValue1());
-
- if (counter == TestDisruptor.totalSize) {
- System.out.println("time cost:" + (System.currentTimeMillis() - TestDisruptor.startTime));
- TestDisruptor.isEnd = true;
- }
- }
-}
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/performance/comparetest/disruptor/DataProducer.java b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/performance/comparetest/disruptor/DataProducer.java
deleted file mode 100644
index 464cb7de1af5a10bf6283665c269f7353c6d66ec..0000000000000000000000000000000000000000
--- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/performance/comparetest/disruptor/DataProducer.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.skywalking.apm.agent.core.datacarrier.performance.comparetest.disruptor;
-
-import com.lmax.disruptor.RingBuffer;
-
-/**
- * Created by wusheng on 2016/11/24.
- */
-public class DataProducer {
- private final RingBuffer ringBuffer;
-
- public DataProducer(RingBuffer ringBuffer) {
- this.ringBuffer = ringBuffer;
- }
-
- public void onData(Data bb) {
- long sequence = ringBuffer.next(); // Grab the next sequence
- try {
- Data event = ringBuffer.get(sequence); // Get the entry in the Disruptor
- // for the sequence
- event.setValue1(bb.getValue1());// Fill with data
- } finally {
- ringBuffer.publish(sequence);
- }
- }
-}
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/performance/comparetest/disruptor/TestDisruptor.java b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/performance/comparetest/disruptor/TestDisruptor.java
deleted file mode 100644
index 7ee4a0c8d223c48c03c04e00af8e6e85518f95b8..0000000000000000000000000000000000000000
--- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/datacarrier/performance/comparetest/disruptor/TestDisruptor.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package org.skywalking.apm.agent.core.datacarrier.performance.comparetest.disruptor;
-
-import com.lmax.disruptor.RingBuffer;
-import com.lmax.disruptor.WorkHandler;
-import com.lmax.disruptor.dsl.Disruptor;
-import com.lmax.disruptor.util.DaemonThreadFactory;
-
-/**
- * Created by wusheng on 2016/11/24.
- */
-public class TestDisruptor {
- public static int totalSize = 100000000;
- public static long startTime;
- public static volatile boolean isEnd = false;
-
- public static void main(String[] args) throws InterruptedException {
- // The factory for the event
- DataEventFactory factory = new DataEventFactory();
-
- // Specify the size of the ring buffer, must be power of 2.
- int bufferSize = 1024;
-
- // Construct the Disruptor
- Disruptor disruptor = new Disruptor(factory, bufferSize, DaemonThreadFactory.INSTANCE);
-
- disruptor.handleEventsWithWorkerPool(new WorkHandler(){
- @Override
- public void onEvent(Data event) throws Exception {
- System.out.println("work1:" + event.getValue1());
- }
- }, new WorkHandler(){
-
- @Override
- public void onEvent(Data event) throws Exception {
- System.out.println("work2:" + event.getValue1());
- }
- });
- // Connect the handler
- disruptor.handleEventsWith(new DataEventHandler());
-
- // Start the Disruptor, starts all threads running
- disruptor.start();
-
- RingBuffer ringBuffer = disruptor.getRingBuffer();
- DataProducer producer = new DataProducer(ringBuffer);
-
- startTime = System.currentTimeMillis();
- for (int i = 0; i < totalSize; i++) {
- Data data = new Data();
- data.setValue1(i);
- producer.onData(data);
-
- Thread.sleep(1000L);
- }
-
- disruptor.shutdown();
-
- while(!TestDisruptor.isEnd){
- Thread.sleep(100L);
- }
- }
-}
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/discovery/HTTPRestServiceTestApp.java b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/discovery/HTTPRestServiceTestApp.java
deleted file mode 100644
index d33115fb02c09b736feb067d132be048a76757e4..0000000000000000000000000000000000000000
--- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/discovery/HTTPRestServiceTestApp.java
+++ /dev/null
@@ -1,81 +0,0 @@
-package org.skywalking.apm.agent.core.discovery;
-
-import org.apache.http.client.methods.CloseableHttpResponse;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.entity.ContentType;
-import org.apache.http.entity.StringEntity;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.DefaultConnectionKeepAliveStrategy;
-import org.apache.http.impl.client.HttpClients;
-import org.eclipse.jetty.server.Request;
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.handler.AbstractHandler;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.BufferedReader;
-import java.io.IOException;
-
-/**
- * This is a small application, test for http restful service.
- * Use APACHE HttpClient as discovery, nanohttpd as server.
- *
- * @author wusheng
- */
-public class HTTPRestServiceTestApp {
- public static void main(String[] args) throws Exception {
- CloseableHttpClient client = null;
- Server server = null;
- try {
- HTTPRestServiceTestApp test = new HTTPRestServiceTestApp();
- server = test.startServer();
- client = test.send();
- } finally {
- if (client != null) {
- client.close();
- }
- if (server != null) {
- server.stop();
- }
- }
-
- }
-
- private CloseableHttpClient send() {
- CloseableHttpClient httpclient = HttpClients.custom()
- .setKeepAliveStrategy(new DefaultConnectionKeepAliveStrategy())
- .build();
- HttpPost post = new HttpPost("http://localhost:7000/segments");
- StringEntity entity = new StringEntity("[{'abc'}]", ContentType.APPLICATION_JSON);
- post.setEntity(entity);
- try {
- CloseableHttpResponse httpResponse = httpclient.execute(post);
- } catch (IOException e) {
- e.printStackTrace();
- }
- return httpclient;
- }
-
- private Server startServer() throws Exception {
- Server server = new Server(7000);
-
- server.setHandler(new AbstractHandler() {
- @Override
- public void handle(String target, Request baseRequest, HttpServletRequest request,
- HttpServletResponse response) throws IOException, ServletException {
- BufferedReader br = request.getReader();
- String str, wholeStr = "";
- while ((str = br.readLine()) != null) {
- wholeStr += str;
- }
- response.setContentType("text/html; charset=utf-8");
- response.setStatus(HttpServletResponse.SC_OK);
- baseRequest.setHandled(true);
- }
- });
- server.start();
- return server;
- }
-
-}
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/plugin/AbstractClassEnhancePluginDefineTest.java b/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/plugin/AbstractClassEnhancePluginDefineTest.java
deleted file mode 100644
index c856b27988f05b6c66b2afda9588278206c18980..0000000000000000000000000000000000000000
--- a/apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/plugin/AbstractClassEnhancePluginDefineTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-package org.skywalking.apm.agent.core.plugin;
-
-import java.lang.instrument.ClassFileTransformer;
-import java.lang.instrument.Instrumentation;
-import net.bytebuddy.agent.ByteBuddyAgent;
-import net.bytebuddy.agent.builder.AgentBuilder;
-import net.bytebuddy.description.type.TypeDescription;
-import net.bytebuddy.dynamic.DynamicType;
-import net.bytebuddy.dynamic.loading.ByteArrayClassLoader;
-import net.bytebuddy.dynamic.loading.PackageDefinitionStrategy;
-import net.bytebuddy.matcher.ElementMatchers;
-import net.bytebuddy.utility.JavaModule;
-import org.hamcrest.CoreMatchers;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.powermock.modules.junit4.PowerMockRunner;
-import org.skywalking.apm.agent.core.plugin.utility.ClassFileExtraction;
-
-import static net.bytebuddy.matcher.ElementMatchers.none;
-import static org.hamcrest.CoreMatchers.instanceOf;
-import static org.hamcrest.MatcherAssert.assertThat;
-
-@RunWith(PowerMockRunner.class)
-public class AbstractClassEnhancePluginDefineTest {
- static final String WEAVE_CLASS = "org.skywalking.apm.agent.core.plugin.pluginTargetObject";
- static final String INTERCEPTOR_CLASS = "org.skywalking.apm.agent.core.plugin.MockPluginInterceptor";
- static final String WEAVE_INSTANCE_METHOD_NAME = "instanceMethod";
- static final String WEAVE_INSTANCE_WITH_EXCEPTION_METHOD_NAME = "instanceMethodWithException";
- static final String WEAVE_STATIC_METHOD_NAME = "staticMethod";
- private ClassLoader classLoader;
-
- @Before
- public void setUp() throws Exception {
- classLoader = new ByteArrayClassLoader.ChildFirst(getClass().getClassLoader(),
- ClassFileExtraction.of(TargetObject.class),
- ByteArrayClassLoader.PersistenceHandler.MANIFEST);
- }
-
- @Test
- public void weaveInstanceMethod() throws Exception {
- ByteBuddyAgent.install();
- ClassFileTransformer classFileTransformer = new AgentBuilder.Default()
- .with(AgentBuilder.PoolStrategy.Default.FAST)
- .ignore(none())
- .type(ElementMatchers.is(TargetObject.class), ElementMatchers.is(classLoader)).transform(new MockTargetObjectTransformer())
- .installOnByteBuddyAgent();
-
- try {
- Class> type = classLoader.loadClass(TargetObject.class.getName());
- assertThat(type.getDeclaredMethod(WEAVE_INSTANCE_METHOD_NAME).invoke(type.getDeclaredConstructor(String.class).newInstance("a"))
- , CoreMatchers.