From 01b4ae5ca5a23ccc34284cbfb1037e6361e659d2 Mon Sep 17 00:00:00 2001 From: zhangxin10 Date: Thu, 19 Nov 2015 17:16:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=AF=B9Dubbox=E7=9A=84?= =?UTF-8?q?=E5=9F=8B=E7=82=B9=E7=9A=84=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- skywalking-sdk-plugin/dubbo-plugin/pom.xml | 237 +++++++++--------- .../plugin/dubbo/SWDubboEnhanceFilter.java | 48 +++- .../dubbox/bugfix/below283/BugFixAcitve.java | 9 + .../dubbox/bugfix/below283/SWBaseBean.java | 15 ++ .../rest/consumer/DubboxRestConsumer.java | 60 ----- .../rest/impl/DubboxRestInterAImpl.java | 12 - .../consumer/DubboxRestConsumer.java | 24 ++ .../consumer}/DubboxRestStart.java | 6 +- .../dubbox283/impl/DubboxRestInterAImpl.java | 13 + .../interfaces/IDubboxRestInterA.java | 20 ++ .../param/DubboxRestInterAParameter.java | 34 +++ .../consumer/DubboxRestConsumer.java | 22 ++ .../dubbox284/consumer/DubboxRestStart.java | 19 ++ .../dubbox284/impl/DubboxRestInterAImpl.java | 13 + .../interfaces/IDubboxRestInterA.java | 6 +- .../param/DubboxRestInterAParameter.java | 32 +++ .../resources/consumer/dubbo-consumer.xml | 3 +- .../resources/consumer/dubbox283-consumer.xml | 14 ++ .../resources/consumer/dubbox284-consumer.xml | 15 ++ ...ox-provider.xml => dubbox283-provider.xml} | 7 +- .../resources/provider/dubbox284-provider.xml | 16 ++ 21 files changed, 424 insertions(+), 201 deletions(-) create mode 100644 skywalking-sdk-plugin/dubbo-plugin/src/main/java/com/ai/cloud/skywalking/plugin/dubbox/bugfix/below283/BugFixAcitve.java create mode 100644 skywalking-sdk-plugin/dubbo-plugin/src/main/java/com/ai/cloud/skywalking/plugin/dubbox/bugfix/below283/SWBaseBean.java delete mode 100644 skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox/rest/consumer/DubboxRestConsumer.java delete mode 100644 skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox/rest/impl/DubboxRestInterAImpl.java create mode 100644 skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox283/consumer/DubboxRestConsumer.java rename skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/{dubbox/rest/impl => dubbox283/consumer}/DubboxRestStart.java (69%) create mode 100644 skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox283/impl/DubboxRestInterAImpl.java create mode 100644 skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox283/interfaces/IDubboxRestInterA.java create mode 100644 skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox283/interfaces/param/DubboxRestInterAParameter.java create mode 100644 skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox284/consumer/DubboxRestConsumer.java create mode 100644 skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox284/consumer/DubboxRestStart.java create mode 100644 skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox284/impl/DubboxRestInterAImpl.java rename skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/{dubbox/rest => dubbox284}/interfaces/IDubboxRestInterA.java (60%) create mode 100644 skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox284/interfaces/param/DubboxRestInterAParameter.java create mode 100644 skywalking-sdk-plugin/dubbo-plugin/src/test/resources/consumer/dubbox283-consumer.xml create mode 100644 skywalking-sdk-plugin/dubbo-plugin/src/test/resources/consumer/dubbox284-consumer.xml rename skywalking-sdk-plugin/dubbo-plugin/src/test/resources/provider/{dubbox-provider.xml => dubbox283-provider.xml} (77%) create mode 100644 skywalking-sdk-plugin/dubbo-plugin/src/test/resources/provider/dubbox284-provider.xml diff --git a/skywalking-sdk-plugin/dubbo-plugin/pom.xml b/skywalking-sdk-plugin/dubbo-plugin/pom.xml index 06c4403a3..6ed444ad7 100644 --- a/skywalking-sdk-plugin/dubbo-plugin/pom.xml +++ b/skywalking-sdk-plugin/dubbo-plugin/pom.xml @@ -1,121 +1,128 @@ - - skywalking-sdk-plugin - com.ai.cloud - 1.0-SNAPSHOT - - 4.0.0 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + + skywalking-sdk-plugin + com.ai.cloud + 1.0-SNAPSHOT + + 4.0.0 - dubbo-plugin - jar + dubbo-plugin + jar - spring-plugin - http://maven.apache.org + spring-plugin + http://maven.apache.org - - UTF-8 - - - - Company nexus - http://223.202.119.155:18081/nexus/content/groups/public/ - - + + UTF-8 + + + + Company nexus + http://10.1.228.199:18081/nexus/content/groups/public/ + + - - - com.ai.cloud - skywalking-api - ${project.version} - - - com.ai.cloud - skywalking-auth - ${project.version} - test - - - com.ai.cloud - skywalking-api - ${project.version} - - - org.springframework - spring-context - 3.0.0.RELEASE - test - - - org.jboss.resteasy - resteasy-jaxrs - 3.0.7.Final - test - - - org.jboss.resteasy - resteasy-client - 3.0.7.Final - test - - - javax.validation - validation-api - 1.0.0.GA - test - - - org.jboss.resteasy - resteasy-jackson-provider - 3.0.7.Final - test - - - org.apache.tomcat.embed - tomcat-embed-core - 8.0.11 - test - - - org.apache.tomcat.embed - tomcat-embed-logging-juli - 8.0.11 - test - - - javax.ws.rs - javax.ws.rs-api - 2.0 - test - - - log4j - log4j - 1.2.17 - test - - - com.101tec - zkclient - 0.7 - test - - - com.alibaba - dubbox - 2.8.3 - - - org.apache.httpcomponents - httpclient - 4.5.1 - test - - - com.alibaba - dubbo - 2.5.3 - compile - - + + + com.ai.cloud + skywalking-api + ${project.version} + + + com.ai.cloud + skywalking-auth + ${project.version} + test + + + com.ai.cloud + skywalking-api + ${project.version} + + + org.springframework + spring-context + 3.0.0.RELEASE + test + + + org.jboss.resteasy + resteasy-jaxrs + 3.0.7.Final + test + + + org.jboss.resteasy + resteasy-client + 3.0.7.Final + test + + + javax.validation + validation-api + 1.0.0.GA + test + + + org.jboss.resteasy + resteasy-jackson-provider + 3.0.7.Final + test + + + org.apache.tomcat.embed + tomcat-embed-core + 8.0.11 + test + + + org.apache.tomcat.embed + tomcat-embed-logging-juli + 8.0.11 + test + + + javax.ws.rs + javax.ws.rs-api + 2.0 + test + + + log4j + log4j + 1.2.17 + test + + + com.101tec + zkclient + 0.7 + test + + + com.alibaba + dubbox + 2.8.3 + compile + + + + + + + + + org.apache.httpcomponents + httpclient + 4.2.1 + test + + + org.javassist + javassist + 3.20.0-GA + test + + diff --git a/skywalking-sdk-plugin/dubbo-plugin/src/main/java/com/ai/cloud/skywalking/plugin/dubbo/SWDubboEnhanceFilter.java b/skywalking-sdk-plugin/dubbo-plugin/src/main/java/com/ai/cloud/skywalking/plugin/dubbo/SWDubboEnhanceFilter.java index ed805da36..63582dc8d 100644 --- a/skywalking-sdk-plugin/dubbo-plugin/src/main/java/com/ai/cloud/skywalking/plugin/dubbo/SWDubboEnhanceFilter.java +++ b/skywalking-sdk-plugin/dubbo-plugin/src/main/java/com/ai/cloud/skywalking/plugin/dubbo/SWDubboEnhanceFilter.java @@ -4,6 +4,8 @@ import com.ai.cloud.skywalking.buriedpoint.RPCBuriedPointReceiver; import com.ai.cloud.skywalking.buriedpoint.RPCBuriedPointSender; import com.ai.cloud.skywalking.model.ContextData; import com.ai.cloud.skywalking.model.Identification; +import com.ai.cloud.skywalking.plugin.dubbox.bugfix.below283.BugFixAcitve; +import com.ai.cloud.skywalking.plugin.dubbox.bugfix.below283.SWBaseBean; import com.alibaba.dubbo.common.extension.Activate; import com.alibaba.dubbo.rpc.*; @@ -16,10 +18,17 @@ public class SWDubboEnhanceFilter implements Filter { Result result = null; if (isConsumer) { RPCBuriedPointSender sender = new RPCBuriedPointSender(); + ContextData contextData = sender.beforeSend(createIdentification(invoker, invocation)); - // 追加参数 - RpcInvocation rpcInvocation = (RpcInvocation) invocation; - rpcInvocation.setAttachment("contextData", contextData.toString()); + String contextDataStr = contextData.toString(); + + //追加参数 + if (!BugFixAcitve.isActive) { + context.setAttachment("contextData", contextDataStr); + } else { + fix283SendNoAttachmentIssue(invocation, contextDataStr); + } + try { //执行结果 result = invoker.invoke(invocation); @@ -37,8 +46,14 @@ public class SWDubboEnhanceFilter implements Filter { } else { // 读取参数 RPCBuriedPointReceiver rpcBuriedPointReceiver = new RPCBuriedPointReceiver(); - RpcInvocation rpcInvocation = (RpcInvocation) invocation; - String contextDataStr = rpcInvocation.getAttachment("contextData"); + String contextDataStr; + + if (!BugFixAcitve.isActive) { + contextDataStr = context.getAttachment("contextData"); + } else { + contextDataStr = fix283RecvNoAttachmentIssue(invocation); + } + ContextData contextData = null; if (contextDataStr != null && contextDataStr.length() > 0) { contextData = new ContextData(contextDataStr); @@ -83,4 +98,25 @@ public class SWDubboEnhanceFilter implements Filter { viewPoint.append(")"); return Identification.newBuilder().viewPoint(viewPoint.toString()).spanType('D').build(); } -} + + + private static void fix283SendNoAttachmentIssue(Invocation invocation, String contextDataStr) { + + for (Object parameter : invocation.getArguments()) { + if (parameter instanceof SWBaseBean) { + ((SWBaseBean) parameter).setContextData(contextDataStr); + return; + } + } + } + + private static String fix283RecvNoAttachmentIssue(Invocation invocation) { + for (Object parameter : invocation.getArguments()) { + if (parameter instanceof SWBaseBean) { + return ((SWBaseBean) parameter).getContextData(); + } + } + + return null; + } +} \ No newline at end of file diff --git a/skywalking-sdk-plugin/dubbo-plugin/src/main/java/com/ai/cloud/skywalking/plugin/dubbox/bugfix/below283/BugFixAcitve.java b/skywalking-sdk-plugin/dubbo-plugin/src/main/java/com/ai/cloud/skywalking/plugin/dubbox/bugfix/below283/BugFixAcitve.java new file mode 100644 index 000000000..3477e8e9e --- /dev/null +++ b/skywalking-sdk-plugin/dubbo-plugin/src/main/java/com/ai/cloud/skywalking/plugin/dubbox/bugfix/below283/BugFixAcitve.java @@ -0,0 +1,9 @@ +package com.ai.cloud.skywalking.plugin.dubbox.bugfix.below283; + +public final class BugFixAcitve { + public static boolean isActive = false; + + public BugFixAcitve(){ + isActive = true; + } +} diff --git a/skywalking-sdk-plugin/dubbo-plugin/src/main/java/com/ai/cloud/skywalking/plugin/dubbox/bugfix/below283/SWBaseBean.java b/skywalking-sdk-plugin/dubbo-plugin/src/main/java/com/ai/cloud/skywalking/plugin/dubbox/bugfix/below283/SWBaseBean.java new file mode 100644 index 000000000..df571d378 --- /dev/null +++ b/skywalking-sdk-plugin/dubbo-plugin/src/main/java/com/ai/cloud/skywalking/plugin/dubbox/bugfix/below283/SWBaseBean.java @@ -0,0 +1,15 @@ +package com.ai.cloud.skywalking.plugin.dubbox.bugfix.below283; + +import java.io.Serializable; + +public class SWBaseBean implements Serializable { + private String contextData; + + public String getContextData() { + return contextData; + } + + public void setContextData(String contextData) { + this.contextData = contextData; + } +} diff --git a/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox/rest/consumer/DubboxRestConsumer.java b/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox/rest/consumer/DubboxRestConsumer.java deleted file mode 100644 index 73f8bd219..000000000 --- a/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox/rest/consumer/DubboxRestConsumer.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.ai.cloud.skywalking.plugin.test.dubbox.rest.consumer; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.http.HttpEntity; -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.HttpClients; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.URISyntaxException; -import java.net.URL; -import java.util.HashMap; -import java.util.Map; - -public class DubboxRestConsumer { - private static final Log logger = LogFactory.getLog(DubboxRestConsumer.class); - - public static String sendPostRequest(String url, String data, Map header) throws IOException, - URISyntaxException { - CloseableHttpClient httpclient = HttpClients.createDefault(); - HttpPost httpPost = new HttpPost(new URL(url).toURI()); - for (Map.Entry entry : header.entrySet()) { - httpPost.setHeader(entry.getKey(), entry.getValue()); - } - StringEntity dataEntity = new StringEntity(data, ContentType.APPLICATION_JSON); - httpPost.setEntity(dataEntity); - CloseableHttpResponse response = httpclient.execute(httpPost); - try { - if (response.getStatusLine().getStatusCode() == 200) { - HttpEntity entity = response.getEntity(); - BufferedReader reader = new BufferedReader(new InputStreamReader( - entity.getContent())); - StringBuffer buffer = new StringBuffer(); - String tempStr; - while ((tempStr = reader.readLine()) != null) - buffer.append(tempStr); - return buffer.toString(); - } else { - throw new RuntimeException("error code " + response.getStatusLine().getStatusCode() - + ":" + response.getStatusLine().getReasonPhrase()); - } - } finally { - response.close(); - httpclient.close(); - } - } - - public static void main(String[] args) throws IOException, URISyntaxException { - String url = "http://192.168.1.102:20880/skywalking/rest-a/doBusiness"; - - String data = "{\"paramA\":\"BBBB\"}"; - sendPostRequest(url, data, new HashMap()); - } -} diff --git a/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox/rest/impl/DubboxRestInterAImpl.java b/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox/rest/impl/DubboxRestInterAImpl.java deleted file mode 100644 index b5b92ad0a..000000000 --- a/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox/rest/impl/DubboxRestInterAImpl.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.ai.cloud.skywalking.plugin.test.dubbox.rest.impl; - -import com.ai.cloud.skywalking.plugin.test.dubbox.rest.interfaces.IDubboxRestInterA; -import com.alibaba.dubbo.config.annotation.Service; - -@Service -public class DubboxRestInterAImpl implements IDubboxRestInterA { - public String doBusiness(String paramA) { - System.out.println("param : " + paramA); - return "{\"content\":\"" + paramA + "\"}"; - } -} diff --git a/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox283/consumer/DubboxRestConsumer.java b/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox283/consumer/DubboxRestConsumer.java new file mode 100644 index 000000000..5b09502f2 --- /dev/null +++ b/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox283/consumer/DubboxRestConsumer.java @@ -0,0 +1,24 @@ +package com.ai.cloud.skywalking.plugin.test.dubbox283.consumer; + +import com.ai.cloud.skywalking.plugin.dubbox.bugfix.below283.BugFixAcitve; +import com.ai.cloud.skywalking.plugin.test.dubbox283.interfaces.IDubboxRestInterA; +import com.ai.cloud.skywalking.plugin.test.dubbox283.interfaces.param.DubboxRestInterAParameter; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.context.ApplicationContext; +import org.springframework.context.support.ClassPathXmlApplicationContext; + +import java.io.IOException; +import java.net.URISyntaxException; + +public class DubboxRestConsumer { + private static final Log logger = LogFactory.getLog(DubboxRestConsumer.class); + + public static void main(String[] args) throws IOException, URISyntaxException, InterruptedException { + new BugFixAcitve(); + ApplicationContext context = new ClassPathXmlApplicationContext("classpath*:consumer/dubbox283-consumer.xml"); + IDubboxRestInterA dubboxRestInterA = context.getBean(IDubboxRestInterA.class); + dubboxRestInterA.doBusiness(new DubboxRestInterAParameter("AAAAA")); + Thread.sleep(10000000L); + } +} diff --git a/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox/rest/impl/DubboxRestStart.java b/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox283/consumer/DubboxRestStart.java similarity index 69% rename from skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox/rest/impl/DubboxRestStart.java rename to skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox283/consumer/DubboxRestStart.java index ebe03e616..867310d52 100644 --- a/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox/rest/impl/DubboxRestStart.java +++ b/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox283/consumer/DubboxRestStart.java @@ -1,12 +1,14 @@ -package com.ai.cloud.skywalking.plugin.test.dubbox.rest.impl; +package com.ai.cloud.skywalking.plugin.test.dubbox283.consumer; +import com.ai.cloud.skywalking.plugin.dubbox.bugfix.below283.BugFixAcitve; import org.springframework.context.support.ClassPathXmlApplicationContext; public class DubboxRestStart { public static void main(String[] args) throws InterruptedException { + new BugFixAcitve(); ClassPathXmlApplicationContext classPathXmlApplicationContext = new - ClassPathXmlApplicationContext("classpath*:provider/dubbox-provider.xml"); + ClassPathXmlApplicationContext("classpath*:provider/dubbox283-provider.xml"); classPathXmlApplicationContext.start(); diff --git a/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox283/impl/DubboxRestInterAImpl.java b/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox283/impl/DubboxRestInterAImpl.java new file mode 100644 index 000000000..7b955f9c3 --- /dev/null +++ b/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox283/impl/DubboxRestInterAImpl.java @@ -0,0 +1,13 @@ +package com.ai.cloud.skywalking.plugin.test.dubbox283.impl; + +import com.ai.cloud.skywalking.plugin.test.dubbox283.interfaces.IDubboxRestInterA; +import com.ai.cloud.skywalking.plugin.test.dubbox283.interfaces.param.DubboxRestInterAParameter; +import com.alibaba.dubbo.config.annotation.Service; + +@Service +public class DubboxRestInterAImpl implements IDubboxRestInterA { + public String doBusiness(DubboxRestInterAParameter paramA) { + System.out.println("param : " + paramA.getParameterA()); + return "{\"content\":\"" + paramA.getParameterA() + "\"}"; + } +} diff --git a/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox283/interfaces/IDubboxRestInterA.java b/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox283/interfaces/IDubboxRestInterA.java new file mode 100644 index 000000000..34752c1b6 --- /dev/null +++ b/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox283/interfaces/IDubboxRestInterA.java @@ -0,0 +1,20 @@ +package com.ai.cloud.skywalking.plugin.test.dubbox283.interfaces; + +import com.ai.cloud.skywalking.plugin.test.dubbox283.impl.DubboxRestInterAImpl; +import com.ai.cloud.skywalking.plugin.test.dubbox283.interfaces.param.DubboxRestInterAParameter; + +import javax.ws.rs.Consumes; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; + +@Path("/rest-a") +@Consumes({MediaType.APPLICATION_JSON}) +@Produces({MediaType.APPLICATION_JSON, MediaType.TEXT_XML}) +public interface IDubboxRestInterA { + + @Path("/doBusiness") + @POST + String doBusiness(DubboxRestInterAParameter paramA); +} diff --git a/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox283/interfaces/param/DubboxRestInterAParameter.java b/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox283/interfaces/param/DubboxRestInterAParameter.java new file mode 100644 index 000000000..98a1b86f0 --- /dev/null +++ b/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox283/interfaces/param/DubboxRestInterAParameter.java @@ -0,0 +1,34 @@ +package com.ai.cloud.skywalking.plugin.test.dubbox283.interfaces.param; + +import com.ai.cloud.skywalking.plugin.dubbox.bugfix.below283.SWBaseBean; +import org.codehaus.jackson.annotate.JsonIgnoreProperties; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement +@XmlAccessorType(XmlAccessType.FIELD) +@JsonIgnoreProperties(ignoreUnknown = true) +public class DubboxRestInterAParameter extends SWBaseBean { + + + public DubboxRestInterAParameter() { + } + + @XmlElement(name = "parameterA") + private String parameterA; + + public DubboxRestInterAParameter(String parameterA) { + this.parameterA = parameterA; + } + + public String getParameterA() { + return parameterA; + } + + public void setParameterA(String parameterA) { + this.parameterA = parameterA; + } +} diff --git a/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox284/consumer/DubboxRestConsumer.java b/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox284/consumer/DubboxRestConsumer.java new file mode 100644 index 000000000..69a6df1ae --- /dev/null +++ b/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox284/consumer/DubboxRestConsumer.java @@ -0,0 +1,22 @@ +package com.ai.cloud.skywalking.plugin.test.dubbox284.consumer; + +import com.ai.cloud.skywalking.plugin.test.dubbox283.interfaces.param.DubboxRestInterAParameter; +import com.ai.cloud.skywalking.plugin.test.dubbox284.interfaces.IDubboxRestInterA; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.context.ApplicationContext; +import org.springframework.context.support.ClassPathXmlApplicationContext; + +import java.io.IOException; +import java.net.URISyntaxException; + +public class DubboxRestConsumer { + private static final Log logger = LogFactory.getLog(DubboxRestConsumer.class); + + public static void main(String[] args) throws IOException, URISyntaxException, InterruptedException { + ApplicationContext context = new ClassPathXmlApplicationContext("classpath*:consumer/dubbox284-consumer.xml"); + IDubboxRestInterA dubboxRestInterA = context.getBean(IDubboxRestInterA.class); + dubboxRestInterA.doBusiness(new DubboxRestInterAParameter("AAAAA")); + Thread.sleep(10000000L); + } +} diff --git a/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox284/consumer/DubboxRestStart.java b/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox284/consumer/DubboxRestStart.java new file mode 100644 index 000000000..67af9c4e4 --- /dev/null +++ b/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox284/consumer/DubboxRestStart.java @@ -0,0 +1,19 @@ +package com.ai.cloud.skywalking.plugin.test.dubbox284.consumer; + +import com.ai.cloud.skywalking.plugin.dubbox.bugfix.below283.BugFixAcitve; +import org.springframework.context.support.ClassPathXmlApplicationContext; + +public class DubboxRestStart { + + public static void main(String[] args) throws InterruptedException { + new BugFixAcitve(); + ClassPathXmlApplicationContext classPathXmlApplicationContext = new + ClassPathXmlApplicationContext("classpath*:provider/dubbox284-provider.xml"); + + classPathXmlApplicationContext.start(); + + while (true) { + Thread.sleep(100000L); + } + } +} diff --git a/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox284/impl/DubboxRestInterAImpl.java b/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox284/impl/DubboxRestInterAImpl.java new file mode 100644 index 000000000..470791939 --- /dev/null +++ b/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox284/impl/DubboxRestInterAImpl.java @@ -0,0 +1,13 @@ +package com.ai.cloud.skywalking.plugin.test.dubbox284.impl; + +import com.ai.cloud.skywalking.plugin.test.dubbox283.interfaces.param.DubboxRestInterAParameter; +import com.ai.cloud.skywalking.plugin.test.dubbox284.interfaces.IDubboxRestInterA; +import com.alibaba.dubbo.config.annotation.Service; + +@Service +public class DubboxRestInterAImpl implements IDubboxRestInterA { + public String doBusiness(DubboxRestInterAParameter paramA) { + System.out.println("param : " + paramA.getParameterA()); + return "{\"content\":\"" + paramA.getParameterA() + "\"}"; + } +} diff --git a/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox/rest/interfaces/IDubboxRestInterA.java b/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox284/interfaces/IDubboxRestInterA.java similarity index 60% rename from skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox/rest/interfaces/IDubboxRestInterA.java rename to skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox284/interfaces/IDubboxRestInterA.java index 8e63920e8..5523240b9 100644 --- a/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox/rest/interfaces/IDubboxRestInterA.java +++ b/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox284/interfaces/IDubboxRestInterA.java @@ -1,4 +1,6 @@ -package com.ai.cloud.skywalking.plugin.test.dubbox.rest.interfaces; +package com.ai.cloud.skywalking.plugin.test.dubbox284.interfaces; + +import com.ai.cloud.skywalking.plugin.test.dubbox283.interfaces.param.DubboxRestInterAParameter; import javax.ws.rs.Consumes; import javax.ws.rs.POST; @@ -13,5 +15,5 @@ public interface IDubboxRestInterA { @Path("/doBusiness") @POST - String doBusiness(String paramA); + String doBusiness(DubboxRestInterAParameter paramA); } diff --git a/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox284/interfaces/param/DubboxRestInterAParameter.java b/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox284/interfaces/param/DubboxRestInterAParameter.java new file mode 100644 index 000000000..206c64440 --- /dev/null +++ b/skywalking-sdk-plugin/dubbo-plugin/src/test/java/com/ai/cloud/skywalking/plugin/test/dubbox284/interfaces/param/DubboxRestInterAParameter.java @@ -0,0 +1,32 @@ +package com.ai.cloud.skywalking.plugin.test.dubbox284.interfaces.param; + +import org.codehaus.jackson.annotate.JsonIgnoreProperties; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement +@XmlAccessorType(XmlAccessType.FIELD) +@JsonIgnoreProperties(ignoreUnknown = true) +public class DubboxRestInterAParameter { + + public DubboxRestInterAParameter() { + } + + @XmlElement(name = "parameterA") + private String parameterA; + + public DubboxRestInterAParameter(String parameterA) { + this.parameterA = parameterA; + } + + public String getParameterA() { + return parameterA; + } + + public void setParameterA(String parameterA) { + this.parameterA = parameterA; + } +} diff --git a/skywalking-sdk-plugin/dubbo-plugin/src/test/resources/consumer/dubbo-consumer.xml b/skywalking-sdk-plugin/dubbo-plugin/src/test/resources/consumer/dubbo-consumer.xml index 60dffa7ad..61f1dfd32 100644 --- a/skywalking-sdk-plugin/dubbo-plugin/src/test/resources/consumer/dubbo-consumer.xml +++ b/skywalking-sdk-plugin/dubbo-plugin/src/test/resources/consumer/dubbo-consumer.xml @@ -8,6 +8,7 @@ - + \ No newline at end of file diff --git a/skywalking-sdk-plugin/dubbo-plugin/src/test/resources/consumer/dubbox283-consumer.xml b/skywalking-sdk-plugin/dubbo-plugin/src/test/resources/consumer/dubbox283-consumer.xml new file mode 100644 index 000000000..1f250e20a --- /dev/null +++ b/skywalking-sdk-plugin/dubbo-plugin/src/test/resources/consumer/dubbox283-consumer.xml @@ -0,0 +1,14 @@ + + + + + + + + + \ No newline at end of file diff --git a/skywalking-sdk-plugin/dubbo-plugin/src/test/resources/consumer/dubbox284-consumer.xml b/skywalking-sdk-plugin/dubbo-plugin/src/test/resources/consumer/dubbox284-consumer.xml new file mode 100644 index 000000000..3ff101b44 --- /dev/null +++ b/skywalking-sdk-plugin/dubbo-plugin/src/test/resources/consumer/dubbox284-consumer.xml @@ -0,0 +1,15 @@ + + + + + + + + + \ No newline at end of file diff --git a/skywalking-sdk-plugin/dubbo-plugin/src/test/resources/provider/dubbox-provider.xml b/skywalking-sdk-plugin/dubbo-plugin/src/test/resources/provider/dubbox283-provider.xml similarity index 77% rename from skywalking-sdk-plugin/dubbo-plugin/src/test/resources/provider/dubbox-provider.xml rename to skywalking-sdk-plugin/dubbo-plugin/src/test/resources/provider/dubbox283-provider.xml index 570b4671c..5beb68624 100644 --- a/skywalking-sdk-plugin/dubbo-plugin/src/test/resources/provider/dubbox-provider.xml +++ b/skywalking-sdk-plugin/dubbo-plugin/src/test/resources/provider/dubbox283-provider.xml @@ -7,9 +7,10 @@ - + - - + + \ No newline at end of file diff --git a/skywalking-sdk-plugin/dubbo-plugin/src/test/resources/provider/dubbox284-provider.xml b/skywalking-sdk-plugin/dubbo-plugin/src/test/resources/provider/dubbox284-provider.xml new file mode 100644 index 000000000..43f413314 --- /dev/null +++ b/skywalking-sdk-plugin/dubbo-plugin/src/test/resources/provider/dubbox284-provider.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + \ No newline at end of file