提交 f81a66bf 编写于 作者: A ascrutae

fix issue that project cycle dependency

上级 408d5709
...@@ -77,12 +77,6 @@ ...@@ -77,12 +77,6 @@
<version>${jetty.version}</version> <version>${jetty.version}</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>org.skywalking</groupId>
<artifactId>apm-test-tools</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>
<extensions> <extensions>
......
...@@ -69,7 +69,7 @@ public class TraceSegmentRef { ...@@ -69,7 +69,7 @@ public class TraceSegmentRef {
public TraceSegmentReference transform() { public TraceSegmentReference transform() {
TraceSegmentReference.Builder refBuilder = TraceSegmentReference.newBuilder(); TraceSegmentReference.Builder refBuilder = TraceSegmentReference.newBuilder();
if(SegmentRefType.CROSS_PROCESS.equals(type)) { if (SegmentRefType.CROSS_PROCESS.equals(type)) {
refBuilder.setRefType(RefType.CrossProcess); refBuilder.setRefType(RefType.CrossProcess);
refBuilder.setParentApplicationInstanceId(applicationInstanceId); refBuilder.setParentApplicationInstanceId(applicationInstanceId);
if (peerId == DictionaryUtil.nullValue()) { if (peerId == DictionaryUtil.nullValue()) {
...@@ -82,7 +82,7 @@ public class TraceSegmentRef { ...@@ -82,7 +82,7 @@ public class TraceSegmentRef {
} else { } else {
refBuilder.setEntryServiceId(operationId); refBuilder.setEntryServiceId(operationId);
} }
}else{ } else {
refBuilder.setRefType(RefType.CrossThread); refBuilder.setRefType(RefType.CrossThread);
} }
refBuilder.setParentTraceSegmentId(traceSegmentId); refBuilder.setParentTraceSegmentId(traceSegmentId);
......
package org.skywalking.apm.agent.core.context; package org.skywalking.apm.agent.core.context;
import java.lang.reflect.Field;
import java.util.List; import java.util.List;
import java.util.Map;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.BeforeClass; import org.junit.BeforeClass;
...@@ -17,14 +15,13 @@ import org.skywalking.apm.agent.core.context.trace.LogDataEntity; ...@@ -17,14 +15,13 @@ 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.SpanLayer;
import org.skywalking.apm.agent.core.context.trace.TraceSegment; import org.skywalking.apm.agent.core.context.trace.TraceSegment;
import org.skywalking.apm.agent.core.context.trace.TraceSegmentRef; import org.skywalking.apm.agent.core.context.trace.TraceSegmentRef;
import org.skywalking.apm.agent.core.context.util.AbstractTracingSpanHelper;
import org.skywalking.apm.agent.core.context.util.SegmentHelper;
import org.skywalking.apm.agent.core.context.util.SegmentStorage;
import org.skywalking.apm.agent.core.context.util.SegmentStoragePoint;
import org.skywalking.apm.agent.core.context.util.TraceSegmentRefHelper;
import org.skywalking.apm.agent.core.context.util.TracingSegmentRunner;
import org.skywalking.apm.agent.core.dictionary.DictionaryUtil; 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 org.skywalking.apm.network.trace.component.ComponentsDefine;
import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.is;
...@@ -128,7 +125,6 @@ public class ContextManagerTest { ...@@ -128,7 +125,6 @@ public class ContextManagerTest {
assertThat(injectContextCarrier.getSpanId(), is(1)); assertThat(injectContextCarrier.getSpanId(), is(1));
assertThat(injectContextCarrier.getEntryOperationName(), is("#/portal/")); assertThat(injectContextCarrier.getEntryOperationName(), is("#/portal/"));
assertThat(injectContextCarrier.getApplicationId(), is(1));
assertThat(injectContextCarrier.getPeerHost(), is("#127.0.0.1:12800")); assertThat(injectContextCarrier.getPeerHost(), is("#127.0.0.1:12800"));
} }
...@@ -175,12 +171,10 @@ public class ContextManagerTest { ...@@ -175,12 +171,10 @@ public class ContextManagerTest {
assertThat(AbstractTracingSpanHelper.getParentSpanId(actualEntrySpan), is(-1)); assertThat(AbstractTracingSpanHelper.getParentSpanId(actualEntrySpan), is(-1));
assertThat(firstExitSpanContextCarrier.getPeerHost(), is("#127.0.0.1:8080")); assertThat(firstExitSpanContextCarrier.getPeerHost(), is("#127.0.0.1:8080"));
assertThat(firstExitSpanContextCarrier.getApplicationId(), is(1));
assertThat(firstExitSpanContextCarrier.getSpanId(), is(1)); assertThat(firstExitSpanContextCarrier.getSpanId(), is(1));
assertThat(firstExitSpanContextCarrier.getEntryOperationName(), is("#/testEntrySpan")); assertThat(firstExitSpanContextCarrier.getEntryOperationName(), is("#/testEntrySpan"));
assertThat(secondExitSpanContextCarrier.getPeerHost(), is("#127.0.0.1:8080")); assertThat(secondExitSpanContextCarrier.getPeerHost(), is("#127.0.0.1:8080"));
assertThat(secondExitSpanContextCarrier.getApplicationId(), is(1));
assertThat(secondExitSpanContextCarrier.getSpanId(), is(1)); assertThat(secondExitSpanContextCarrier.getSpanId(), is(1));
assertThat(secondExitSpanContextCarrier.getEntryOperationName(), is("#/testEntrySpan")); assertThat(secondExitSpanContextCarrier.getEntryOperationName(), is("#/testEntrySpan"));
......
...@@ -10,9 +10,9 @@ import org.skywalking.apm.agent.core.conf.Config; ...@@ -10,9 +10,9 @@ import org.skywalking.apm.agent.core.conf.Config;
import org.skywalking.apm.agent.core.conf.RemoteDownstreamConfig; 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.AbstractSpan;
import org.skywalking.apm.agent.core.context.trace.NoopSpan; import org.skywalking.apm.agent.core.context.trace.NoopSpan;
import org.skywalking.apm.agent.test.tools.SegmentStorage; import org.skywalking.apm.agent.core.context.util.SegmentStorage;
import org.skywalking.apm.agent.test.tools.SegmentStoragePoint; import org.skywalking.apm.agent.core.context.util.SegmentStoragePoint;
import org.skywalking.apm.agent.test.tools.TracingSegmentRunner; import org.skywalking.apm.agent.core.context.util.TracingSegmentRunner;
import static junit.framework.TestCase.assertNull; import static junit.framework.TestCase.assertNull;
import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.is;
......
package org.skywalking.apm.agent.core.context.util;
import java.util.Collections;
import java.util.List;
import org.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
import org.skywalking.apm.agent.core.context.trace.LogDataEntity;
public class AbstractTracingSpanHelper {
public static int getParentSpanId(AbstractTracingSpan tracingSpan) {
try {
return FieldGetter.getParentFieldValue(tracingSpan, "parentSpanId");
} catch (Exception e) {
}
return -9999;
}
public static List<LogDataEntity> getLogs(AbstractTracingSpan tracingSpan) {
try {
return FieldGetter.getParentFieldValue(tracingSpan, "logs");
} catch (Exception e) {
}
return Collections.emptyList();
}
}
package org.skywalking.apm.agent.core.context.util;
import java.lang.reflect.Field;
public class FieldGetter {
public static <T> T getValue(Object instance,
String fieldName) throws IllegalAccessException, NoSuchFieldException {
Field field = instance.getClass().getDeclaredField(fieldName);
field.setAccessible(true);
return (T)field.get(instance);
}
public static <T> T getParentFieldValue(Object instance,
String fieldName) throws IllegalAccessException, NoSuchFieldException {
Field field = instance.getClass().getSuperclass().getDeclaredField(fieldName);
field.setAccessible(true);
return (T)field.get(instance);
}
}
package org.skywalking.apm.agent.core.context.util;
import java.util.List;
import org.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
import org.skywalking.apm.agent.core.context.trace.TraceSegment;
public class SegmentHelper {
public static List<AbstractTracingSpan> getSpan(TraceSegment traceSegment) {
try {
return FieldGetter.getValue(traceSegment, "spans");
} catch (Exception e) {
}
return null;
}
}
package org.skywalking.apm.agent.core.context.util;
import java.util.LinkedList;
import java.util.List;
import org.skywalking.apm.agent.core.context.IgnoredTracerContext;
import org.skywalking.apm.agent.core.context.trace.TraceSegment;
public class SegmentStorage {
private LinkedList<TraceSegment> traceSegments;
private LinkedList<IgnoredTracerContext> ignoredTracerContexts;
SegmentStorage() {
traceSegments = new LinkedList<TraceSegment>();
ignoredTracerContexts = new LinkedList<IgnoredTracerContext>();
}
void addTraceSegment(TraceSegment segment) {
traceSegments.add(segment);
}
public List<TraceSegment> getTraceSegments() {
return traceSegments;
}
void addIgnoreTraceContext(IgnoredTracerContext context) {
this.ignoredTracerContexts.add(context);
}
public LinkedList<IgnoredTracerContext> getIgnoredTracerContexts() {
return ignoredTracerContexts;
}
}
package org.skywalking.apm.agent.core.context.util;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface SegmentStoragePoint {
}
package org.skywalking.apm.agent.core.context.util;
import org.skywalking.apm.agent.core.context.trace.TraceSegmentRef;
public class TraceSegmentRefHelper {
public static String getPeerHost(TraceSegmentRef ref) {
try {
return FieldGetter.getValue(ref, "peerHost");
} catch (Exception e) {
}
return null;
}
}
package org.skywalking.apm.agent.core.context.util;
import java.lang.reflect.Field;
import org.junit.runner.Description;
import org.junit.runner.notification.Failure;
import org.junit.runner.notification.RunNotifier;
import org.junit.runners.BlockJUnit4ClassRunner;
import org.junit.runners.model.InitializationError;
import org.skywalking.apm.agent.core.context.IgnoreTracerContextListener;
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.context.trace.TraceSegment;
public class TracingSegmentRunner extends BlockJUnit4ClassRunner {
private TracingContextListener tracingContextListener;
private IgnoreTracerContextListener ignoreTracerContextListener;
private Field field;
private Object targetObject;
private SegmentStorage tracingData;
public TracingSegmentRunner(Class<?> klass) throws InitializationError {
super(klass);
for (Field field : klass.getDeclaredFields()) {
if (field.isAnnotationPresent(SegmentStoragePoint.class) && field.getType().equals(SegmentStorage.class)) {
this.field = field;
this.field.setAccessible(true);
break;
}
}
}
@Override
protected Object createTest() throws Exception {
targetObject = super.createTest();
return targetObject;
}
@Override
public void run(RunNotifier notifier) {
notifier.addListener(new RunListener());
super.run(notifier);
}
class RunListener extends org.junit.runner.notification.RunListener {
@Override
public void testStarted(Description description) throws Exception {
if (field != null) {
try {
tracingData = new SegmentStorage();
field.set(targetObject, tracingData);
} catch (IllegalAccessException e) {
}
}
tracingContextListener = new TracingContextListener() {
@Override
public void afterFinished(TraceSegment traceSegment) {
tracingData.addTraceSegment(traceSegment);
}
};
ignoreTracerContextListener = new IgnoreTracerContextListener() {
@Override
public void afterFinished(IgnoredTracerContext tracerContext) {
tracingData.addIgnoreTraceContext(tracerContext);
}
};
TracingContext.ListenerManager.add(tracingContextListener);
IgnoredTracerContext.ListenerManager.add(ignoreTracerContextListener);
super.testStarted(description);
}
@Override
public void testFinished(Description description) throws Exception {
super.testFinished(description);
TracingContext.ListenerManager.remove(tracingContextListener);
IgnoredTracerContext.ListenerManager.remove(ignoreTracerContextListener);
}
@Override
public void testFailure(Failure failure) throws Exception {
super.testFailure(failure);
TracingContext.ListenerManager.remove(tracingContextListener);
}
}
}
...@@ -4,7 +4,6 @@ import java.util.Collections; ...@@ -4,7 +4,6 @@ import java.util.Collections;
import java.util.List; import java.util.List;
import org.skywalking.apm.agent.core.context.trace.AbstractTracingSpan; 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.LogDataEntity;
import org.skywalking.apm.agent.core.context.util.KeyValuePair;
public class AbstractTracingSpanHelper { public class AbstractTracingSpanHelper {
public static int getParentSpanId(AbstractTracingSpan tracingSpan) { public static int getParentSpanId(AbstractTracingSpan tracingSpan) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册