提交 620536d0 编写于 作者: hpy253215039's avatar hpy253215039 提交者: wu-sheng

fixed #1573. I had test on my env. (#1629)

上级 1aa87fa2
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
package org.apache.skywalking.apm.plugin.motan.define; package org.apache.skywalking.apm.plugin.motan.define;
import com.weibo.api.motan.rpc.Request;
import net.bytebuddy.description.method.MethodDescription; import net.bytebuddy.description.method.MethodDescription;
import net.bytebuddy.matcher.ElementMatcher; import net.bytebuddy.matcher.ElementMatcher;
import org.apache.skywalking.apm.agent.core.plugin.interceptor.ConstructorInterceptPoint; import org.apache.skywalking.apm.agent.core.plugin.interceptor.ConstructorInterceptPoint;
...@@ -26,13 +27,23 @@ import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.ClassInst ...@@ -26,13 +27,23 @@ import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.ClassInst
import org.apache.skywalking.apm.agent.core.plugin.match.ClassMatch; import org.apache.skywalking.apm.agent.core.plugin.match.ClassMatch;
import org.apache.skywalking.apm.agent.core.plugin.match.NameMatch; import org.apache.skywalking.apm.agent.core.plugin.match.NameMatch;
import static net.bytebuddy.matcher.ElementMatchers.any;
import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.named;
public class MotanConsumerInstrumentation extends ClassInstanceMethodsEnhancePluginDefine { public class MotanConsumerInstrumentation extends ClassInstanceMethodsEnhancePluginDefine {
private static final String ENHANCE_CLASS = "com.weibo.api.motan.transport.ProviderMessageRouter"; /**
* Enhance class.
private static final String INVOKE_INTERCEPT_CLASS = "org.apache.skywalking.apm.plugin.motan.MotanProviderInterceptor"; */
private static final String ENHANCE_CLASS = "com.weibo.api.motan.rpc.AbstractReferer";
/**
* Class that intercept all constructor of ${@link com.weibo.api.motan.rpc.AbstractProvider}.
*/
private static final String CONSTRUCTOR_INTERCEPT_CLASS = "org.apache.skywalking.apm.plugin.motan.MotanConsumerInterceptor";
/**
* Class that intercept {@link com.weibo.api.motan.rpc.AbstractProvider#call(Request)}.
*/
private static final String PROVIDER_INVOKE_INTERCEPT_CLASS = "org.apache.skywalking.apm.plugin.motan.MotanConsumerInterceptor";
@Override @Override
protected ClassMatch enhanceClass() { protected ClassMatch enhanceClass() {
...@@ -41,7 +52,19 @@ public class MotanConsumerInstrumentation extends ClassInstanceMethodsEnhancePlu ...@@ -41,7 +52,19 @@ public class MotanConsumerInstrumentation extends ClassInstanceMethodsEnhancePlu
@Override @Override
protected ConstructorInterceptPoint[] getConstructorsInterceptPoints() { protected ConstructorInterceptPoint[] getConstructorsInterceptPoints() {
return new ConstructorInterceptPoint[0]; return new ConstructorInterceptPoint[] {
new ConstructorInterceptPoint() {
@Override
public ElementMatcher<MethodDescription> getConstructorMatcher() {
return any();
}
@Override
public String getConstructorInterceptor() {
return CONSTRUCTOR_INTERCEPT_CLASS;
}
}
};
} }
@Override @Override
...@@ -55,7 +78,7 @@ public class MotanConsumerInstrumentation extends ClassInstanceMethodsEnhancePlu ...@@ -55,7 +78,7 @@ public class MotanConsumerInstrumentation extends ClassInstanceMethodsEnhancePlu
@Override @Override
public String getMethodsInterceptor() { public String getMethodsInterceptor() {
return INVOKE_INTERCEPT_CLASS; return PROVIDER_INVOKE_INTERCEPT_CLASS;
} }
@Override public boolean isOverrideArgs() { @Override public boolean isOverrideArgs() {
......
...@@ -18,7 +18,6 @@ ...@@ -18,7 +18,6 @@
package org.apache.skywalking.apm.plugin.motan.define; package org.apache.skywalking.apm.plugin.motan.define;
import com.weibo.api.motan.rpc.Request;
import net.bytebuddy.description.method.MethodDescription; import net.bytebuddy.description.method.MethodDescription;
import net.bytebuddy.matcher.ElementMatcher; import net.bytebuddy.matcher.ElementMatcher;
import org.apache.skywalking.apm.agent.core.plugin.interceptor.ConstructorInterceptPoint; import org.apache.skywalking.apm.agent.core.plugin.interceptor.ConstructorInterceptPoint;
...@@ -27,23 +26,13 @@ import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.ClassInst ...@@ -27,23 +26,13 @@ import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.ClassInst
import org.apache.skywalking.apm.agent.core.plugin.match.ClassMatch; import org.apache.skywalking.apm.agent.core.plugin.match.ClassMatch;
import org.apache.skywalking.apm.agent.core.plugin.match.NameMatch; import org.apache.skywalking.apm.agent.core.plugin.match.NameMatch;
import static net.bytebuddy.matcher.ElementMatchers.any;
import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.named;
public class MotanProviderInstrumentation extends ClassInstanceMethodsEnhancePluginDefine { public class MotanProviderInstrumentation extends ClassInstanceMethodsEnhancePluginDefine {
/** private static final String ENHANCE_CLASS = "com.weibo.api.motan.transport.ProviderMessageRouter";
* Enhance class.
*/ private static final String INVOKE_INTERCEPT_CLASS = "org.apache.skywalking.apm.plugin.motan.MotanProviderInterceptor";
private static final String ENHANCE_CLASS = "com.weibo.api.motan.rpc.AbstractReferer";
/**
* Class that intercept all constructor of ${@link com.weibo.api.motan.rpc.AbstractProvider}.
*/
private static final String CONSTRUCTOR_INTERCEPT_CLASS = "org.apache.skywalking.apm.plugin.motan.MotanConsumerInterceptor";
/**
* Class that intercept {@link com.weibo.api.motan.rpc.AbstractProvider#call(Request)}.
*/
private static final String PROVIDER_INVOKE_INTERCEPT_CLASS = "org.apache.skywalking.apm.plugin.motan.MotanConsumerInterceptor";
@Override @Override
protected ClassMatch enhanceClass() { protected ClassMatch enhanceClass() {
...@@ -52,19 +41,7 @@ public class MotanProviderInstrumentation extends ClassInstanceMethodsEnhancePlu ...@@ -52,19 +41,7 @@ public class MotanProviderInstrumentation extends ClassInstanceMethodsEnhancePlu
@Override @Override
protected ConstructorInterceptPoint[] getConstructorsInterceptPoints() { protected ConstructorInterceptPoint[] getConstructorsInterceptPoints() {
return new ConstructorInterceptPoint[] { return new ConstructorInterceptPoint[0];
new ConstructorInterceptPoint() {
@Override
public ElementMatcher<MethodDescription> getConstructorMatcher() {
return any();
}
@Override
public String getConstructorInterceptor() {
return CONSTRUCTOR_INTERCEPT_CLASS;
}
}
};
} }
@Override @Override
...@@ -78,7 +55,7 @@ public class MotanProviderInstrumentation extends ClassInstanceMethodsEnhancePlu ...@@ -78,7 +55,7 @@ public class MotanProviderInstrumentation extends ClassInstanceMethodsEnhancePlu
@Override @Override
public String getMethodsInterceptor() { public String getMethodsInterceptor() {
return PROVIDER_INVOKE_INTERCEPT_CLASS; return INVOKE_INTERCEPT_CLASS;
} }
@Override public boolean isOverrideArgs() { @Override public boolean isOverrideArgs() {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册