Merge pull request #96 from ascrutae/feature/3.0

fix context data cannot transport to provider side issue
This commit is contained in:
吴晟 Wu Sheng 2017-03-02 15:26:36 +08:00 committed by GitHub
commit f0a91d4546
9 changed files with 19 additions and 21 deletions

View File

@ -15,7 +15,7 @@ import java.nio.ByteBuffer;
* Created by wusheng on 2016/12/20.
*/
public class SkyWalkingTracer implements Tracer {
private static String TRACE_HEAD_NAME = "SkyWalking-TRACING-NAME";
private static String TRACE_HEAD_NAME = "SW-TRACING-NAME";
public static Tracer INSTANCE = new SkyWalkingTracer();

View File

@ -17,13 +17,20 @@ public final class StringUtil {
}
int length = strings.length - 1;
for (final String s : strings) {
if (s == null) {
continue;
}
length += s.length();
}
final StringBuilder sb = new StringBuilder(length);
sb.append(strings[0]);
if (strings[0] != null) {
sb.append(strings[0]);
}
for (int i = 1; i < strings.length; ++i) {
if (!isEmpty(strings[i])) {
sb.append(delimiter).append(strings[i]);
} else {
sb.append(delimiter);
}
}
return sb.toString();

View File

@ -89,7 +89,7 @@ public class DubboInterceptorTest {
public void call(TraceSegment traceSegment) {
assertThat(traceSegment.getSpans().size(), is(1));
assertConsumerSpan(traceSegment.getSpans().get(0));
testParam.assertSelf("0", "127.0.0.1");
testParam.assertSelf("127.0.0.1");
}
});
}

View File

@ -14,11 +14,9 @@ public class RequestParamForTestBelow283 extends SWBaseBean {
/**
* This method assert that {@link SWBaseBean#getTraceContext()} if it's not null and context data
* will end with the expect span id.
*
* @param expectSpanId expect span id
*/
public void assertSelf(String expectSpanId, String expectHost) {
public void assertSelf(String expectHost) {
assertNotNull(getTraceContext());
assertThat(getTraceContext(), endsWith(expectSpanId + "|" + expectHost));
assertThat(getTraceContext(), endsWith(expectHost));
}
}

View File

@ -29,7 +29,7 @@ public class MotanConsumerInvokeInterceptor implements InstanceMethodsAroundInte
/**
* Attachment key of the serialized context data.
*/
private static final String ATTACHMENT_KEY_OF_CONTEXT_DATA = "contextData";
private static final String ATTACHMENT_KEY_OF_CONTEXT_DATA = "SWTraceContext";
/**
* Motan component

View File

@ -26,9 +26,7 @@ public class PrintTraceIdInterceptor implements InstanceMethodsAroundInterceptor
*/
@Override
public Object afterMethod(EnhancedClassInstanceContext context, InstanceMethodInvokeContext interceptorContext, Object ret) {
ContextCarrier carrier = new ContextCarrier();
ContextManager.INSTANCE.inject(carrier);
return "TID:" + carrier.getTraceSegmentId();
return "TID:" + ContextManager.INSTANCE.getTraceSegmentId();
}
@Override

View File

@ -19,9 +19,7 @@ public class PrintTraceIdInterceptor implements StaticMethodsAroundInterceptor {
*/
@Override
public void beforeMethod(StaticMethodInvokeContext interceptorContext, MethodInterceptResult result) {
ContextCarrier carrier = new ContextCarrier();
ContextManager.INSTANCE.inject(carrier);
((StringBuilder) interceptorContext.allArguments()[0]).append("TID:" + carrier.getTraceSegmentId());
((StringBuilder) interceptorContext.allArguments()[0]).append("TID:" + ContextManager.INSTANCE.getTraceSegmentId());
//make sure origin method do not invoke.
result.defineReturnValue(null);

View File

@ -1,6 +1,5 @@
package com.a.eye.skywalking.toolkit.activation.log.logback.v1.x;
import com.a.eye.skywalking.api.context.ContextCarrier;
import com.a.eye.skywalking.api.context.ContextManager;
import com.a.eye.skywalking.api.plugin.interceptor.EnhancedClassInstanceContext;
import com.a.eye.skywalking.api.plugin.interceptor.enhance.InstanceMethodInvokeContext;
@ -19,16 +18,14 @@ public class PrintTraceIdInterceptor implements InstanceMethodsAroundInterceptor
/**
* Override com.a.eye.skywalking.toolkit.log.logback.v1.x.LogbackPatternConverter.convert(),
*
* @param context instance context, a class instance only has one {@link EnhancedClassInstanceContext} instance.
* @param context instance context, a class instance only has one {@link EnhancedClassInstanceContext} instance.
* @param interceptorContext method context, includes class name, method name, etc.
* @param ret the method's original return value.
* @param ret the method's original return value.
* @return the traceId
*/
@Override
public Object afterMethod(EnhancedClassInstanceContext context, InstanceMethodInvokeContext interceptorContext, Object ret) {
ContextCarrier carrier = new ContextCarrier();
ContextManager.INSTANCE.inject(carrier);
return "TID:" + carrier.getTraceSegmentId();
return "TID:" + ContextManager.INSTANCE.getTraceSegmentId();
}
@Override

View File

@ -16,7 +16,7 @@ import java.util.Map;
*/
public class TracerExtractCrossProcessTextMapContextInterceptor implements InstanceMethodsAroundInterceptor {
public static final String SKY_WALKING_TRACING_NAME = "SkyWalking-TRACING-NAME";
public static final String SKY_WALKING_TRACING_NAME = "SW-TRACING-NAME";
@Override
public void beforeMethod(EnhancedClassInstanceContext context, InstanceMethodInvokeContext interceptorContext,