diff --git a/Jenkinsfile-Agent-Test b/Jenkinsfile-Agent-Test index bf898c2a2..87554e684 100755 --- a/Jenkinsfile-Agent-Test +++ b/Jenkinsfile-Agent-Test @@ -54,26 +54,38 @@ pipeline { sh './mvnw -f test/plugin/pom.xml clean package -DskipTests -Dbuild_id=${BUILD_ID} docker:build' } } - stage ('Run Agent Plugin Tests') { + stage('Run Agent Plugin Tests') { parallel { - stage ('Group1') { + stage('Group1') { stages { - stage('httpclient 4.3.x-4.5.x') { + stage('httpclient 4.3.x-4.5.x (14)') { steps { sh 'bash test/plugin/run.sh --build_id=${BUILD_ID} httpclient-4.3.x-scenario' } } - stage('ehcache 2.8.x-2.10.x') { + stage('ehcache 2.8.x-2.10.x (19)') { steps { sh 'bash test/plugin/run.sh --build_id=${BUILD_ID} ehcache-2.x-scenario' } } + + stage('dubbo 2.5.x-2.6.x (10)') { + steps { + sh 'bash test/plugin/run.sh --build_id=${BUILD_ID} dubbo-2.5.x-scenario' + } + } + + stage('dubbo 2.7.x (4)') { + steps { + sh 'bash test/plugin/run.sh --build_id=${BUILD_ID} dubbo-2.7.x-scenario' + } + } } } - stage ('Group2') { + stage('Group2') { stages { - stage('jetty 9.x') { + stage('jetty 9.x (63)') { steps { sh 'bash test/plugin/run.sh --build_id=${BUILD_ID} jetty-scenario' } diff --git a/test/plugin/scenarios/dubbo-2.5.x-scenario/bin/startup.sh b/test/plugin/scenarios/dubbo-2.5.x-scenario/bin/startup.sh new file mode 100644 index 000000000..3da844653 --- /dev/null +++ b/test/plugin/scenarios/dubbo-2.5.x-scenario/bin/startup.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +home="$(cd "$(dirname $0)"; pwd)" + +java -jar ${agent_opts} "-Dskywalking.agent.service_name=dubbo-2.5.x-scenario" ${home}/../libs/dubbo-2.5.x-scenario.jar & \ No newline at end of file diff --git a/test/plugin/scenarios/dubbo-2.5.x-scenario/config/expectedData.yaml b/test/plugin/scenarios/dubbo-2.5.x-scenario/config/expectedData.yaml new file mode 100644 index 000000000..1969a5831 --- /dev/null +++ b/test/plugin/scenarios/dubbo-2.5.x-scenario/config/expectedData.yaml @@ -0,0 +1,100 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +registryItems: + applications: + - {dubbo-2.5.x-scenario: 2} + instances: + - {dubbo-2.5.x-scenario: 1} + operationNames: + - dubbo-2.5.x-scenario: [/dubbo-2.5.x-scenario/case/healthCheck, /dubbo-2.5.x-scenario/case/dubbo, org.apache.skywalking.apm.testcase.dubbo.services.GreetService.doBusiness()] + heartbeat: [] +segmentItems: + - applicationCode: dubbo-2.5.x-scenario + segmentSize: 3 + segments: + - segmentId: not null + spans: + - operationName: /dubbo-2.5.x-scenario/case/healthCheck + operationId: 0 + parentSpanId: -1 + spanId: 0 + spanLayer: Http + startTime: nq 0 + endTime: nq 0 + componentId: 1 + componentName: '' + isError: false + spanType: Entry + peer: '' + peerId: 0 + tags: + - {key: url, value: 'http://localhost:8080/dubbo-2.5.x-scenario/case/healthCheck'} + - {key: http.method, value: HEAD} + - segmentId: not null + spans: + - operationName: org.apache.skywalking.apm.testcase.dubbo.services.GreetService.doBusiness() + operationId: 0 + parentSpanId: -1 + spanId: 0 + spanLayer: RPCFramework + startTime: nq 0 + endTime: nq 0 + componentId: 3 + componentName: '' + isError: false + spanType: Entry + peer: '' + peerId: 0 + tags: + - {key: url, value: not null} + refs: + - {parentEndpointId: 0, parentEndpoint: /dubbo-2.5.x-scenario/case/dubbo, networkAddressId: 0, + entryEndpointId: 0, refType: CrossProcess, parentSpanId: 1, parentTraceSegmentId: not null, + parentServiceInstanceId: 1, networkAddress: 'localhost:20080', entryEndpoint: /dubbo-2.5.x-scenario/case/dubbo, + entryServiceInstanceId: 1} + - segmentId: not null + spans: + - operationName: org.apache.skywalking.apm.testcase.dubbo.services.GreetService.doBusiness() + operationId: 0 + parentSpanId: 0 + spanId: 1 + spanLayer: RPCFramework + startTime: nq 0 + endTime: nq 0 + componentId: 3 + componentName: '' + isError: false + spanType: Exit + peer: localhost:20080 + peerId: 0 + tags: + - {key: url, value: 'dubbo://localhost:20080/org.apache.skywalking.apm.testcase.dubbo.services.GreetService.doBusiness()'} + - operationName: /dubbo-2.5.x-scenario/case/dubbo + operationId: 0 + parentSpanId: -1 + spanId: 0 + spanLayer: Http + startTime: nq 0 + endTime: nq 0 + componentId: 1 + componentName: '' + isError: false + spanType: Entry + peer: '' + peerId: 0 + tags: + - {key: url, value: 'http://localhost:8080/dubbo-2.5.x-scenario/case/dubbo'} + - {key: http.method, value: GET} diff --git a/test/plugin/scenarios/dubbo-2.5.x-scenario/configuration.yml b/test/plugin/scenarios/dubbo-2.5.x-scenario/configuration.yml new file mode 100644 index 000000000..17fda73ad --- /dev/null +++ b/test/plugin/scenarios/dubbo-2.5.x-scenario/configuration.yml @@ -0,0 +1,21 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +type: jvm +entryService: http://localhost:8080/dubbo-2.5.x-scenario/case/dubbo +healthCheck: http://localhost:8080/dubbo-2.5.x-scenario/case/healthCheck +startScript: ./bin/startup.sh +framework: dubbo diff --git a/test/plugin/scenarios/dubbo-2.5.x-scenario/pom.xml b/test/plugin/scenarios/dubbo-2.5.x-scenario/pom.xml new file mode 100644 index 000000000..0b27ed542 --- /dev/null +++ b/test/plugin/scenarios/dubbo-2.5.x-scenario/pom.xml @@ -0,0 +1,119 @@ + + + + 4.0.0 + + org.apache.skywalking + dubbo-2.5.x-scenario + 5.0.0 + + + UTF-8 + 1.8 + 2.1.6.RELEASE + + dubbo + 2.5.4 + + + skywalking-dubbo-2.5.x-scenario + + + + + org.springframework.boot + spring-boot-dependencies + ${spring.boot.version} + pom + import + + + + + + + org.springframework.boot + spring-boot-starter-web + + + + + com.alibaba + dubbo + ${test.framework.version} + + + + + dubbo-2.5.x-scenario + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + maven-compiler-plugin + + ${compiler.version} + ${compiler.version} + ${project.build.sourceEncoding} + + + + org.apache.maven.plugins + maven-assembly-plugin + + + assemble + package + + single + + + + src/main/assembly/assembly.xml + + ./target/ + + + + + + + + + + spring-snapshots + http://repo.spring.io/snapshot + + + spring-milestones + http://repo.spring.io/milestone + + + \ No newline at end of file diff --git a/test/plugin/scenarios/dubbo-2.5.x-scenario/src/main/assembly/assembly.xml b/test/plugin/scenarios/dubbo-2.5.x-scenario/src/main/assembly/assembly.xml new file mode 100644 index 000000000..5c4cfc8c6 --- /dev/null +++ b/test/plugin/scenarios/dubbo-2.5.x-scenario/src/main/assembly/assembly.xml @@ -0,0 +1,41 @@ + + + + + zip + + + + + ./bin + 0775 + + + + + + ./target/dubbo-2.5.x-scenario.jar + ./libs + 0775 + + + \ No newline at end of file diff --git a/test/plugin/scenarios/dubbo-2.5.x-scenario/src/main/java/org/apache/skywalking/apm/testcase/dubbo/Application.java b/test/plugin/scenarios/dubbo-2.5.x-scenario/src/main/java/org/apache/skywalking/apm/testcase/dubbo/Application.java new file mode 100644 index 000000000..e60ad7488 --- /dev/null +++ b/test/plugin/scenarios/dubbo-2.5.x-scenario/src/main/java/org/apache/skywalking/apm/testcase/dubbo/Application.java @@ -0,0 +1,75 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.skywalking.apm.testcase.dubbo; + +import com.alibaba.dubbo.config.ApplicationConfig; +import com.alibaba.dubbo.config.ProtocolConfig; +import com.alibaba.dubbo.config.ReferenceConfig; +import com.alibaba.dubbo.config.RegistryConfig; +import com.alibaba.dubbo.config.ServiceConfig; +import org.apache.skywalking.apm.testcase.dubbo.services.GreetService; +import org.apache.skywalking.apm.testcase.dubbo.services.impl.GreetServiceImpl; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @author zhangwei + */ +@SpringBootApplication public class Application { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } + + @Configuration + public static class DubboConfiguration { + + private ApplicationConfig applicationConfig = new ApplicationConfig(Application.class.getSimpleName()); + + private RegistryConfig registryConfig = new RegistryConfig("N/A"); + + private ProtocolConfig protocolConfig = new ProtocolConfig("dubbo", 20080); + + @Bean(destroyMethod = "unexport") + public ServiceConfig service() { + ServiceConfig serviceConfig = new ServiceConfig<>(); + serviceConfig.setApplication(applicationConfig); + serviceConfig.setRegistry(registryConfig); + serviceConfig.setProtocol(protocolConfig); + serviceConfig.setInterface(GreetService.class); + serviceConfig.setRef(new GreetServiceImpl()); + serviceConfig.setTimeout(5000); + serviceConfig.export(); + return serviceConfig; + } + + @Bean(destroyMethod = "destroy") + public ReferenceConfig reference() { + ReferenceConfig referenceConfig = new ReferenceConfig<>(); + referenceConfig.setApplication(applicationConfig); + + referenceConfig.setInterface(GreetService.class); + referenceConfig.setUrl("dubbo://localhost:20080"); + + return referenceConfig; + } + } +} diff --git a/test/plugin/scenarios/dubbo-2.5.x-scenario/src/main/java/org/apache/skywalking/apm/testcase/dubbo/controller/CaseController.java b/test/plugin/scenarios/dubbo-2.5.x-scenario/src/main/java/org/apache/skywalking/apm/testcase/dubbo/controller/CaseController.java new file mode 100644 index 000000000..b045bbd3f --- /dev/null +++ b/test/plugin/scenarios/dubbo-2.5.x-scenario/src/main/java/org/apache/skywalking/apm/testcase/dubbo/controller/CaseController.java @@ -0,0 +1,53 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.skywalking.apm.testcase.dubbo.controller; + +import com.alibaba.dubbo.config.ReferenceConfig; +import org.apache.skywalking.apm.testcase.dubbo.services.GreetService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author zhangwei + */ +@RestController +@RequestMapping("/case") +public class CaseController { + + private static final String SUCCESS = "Success"; + + @Autowired + private ReferenceConfig referenceConfig; + + @RequestMapping("/healthCheck") + @ResponseBody + public String healthCheck() { + return SUCCESS; + } + + @RequestMapping("/dubbo") + @ResponseBody + public String dubbo() { + GreetService greetService = referenceConfig.get(); + System.out.println(greetService.doBusiness()); + return SUCCESS; + } +} diff --git a/test/plugin/scenarios/dubbo-2.5.x-scenario/src/main/java/org/apache/skywalking/apm/testcase/dubbo/services/GreetService.java b/test/plugin/scenarios/dubbo-2.5.x-scenario/src/main/java/org/apache/skywalking/apm/testcase/dubbo/services/GreetService.java new file mode 100644 index 000000000..4b50c7187 --- /dev/null +++ b/test/plugin/scenarios/dubbo-2.5.x-scenario/src/main/java/org/apache/skywalking/apm/testcase/dubbo/services/GreetService.java @@ -0,0 +1,26 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.skywalking.apm.testcase.dubbo.services; + +/** + * @author ascrutae + */ +public interface GreetService { + String doBusiness(); +} diff --git a/test/plugin/scenarios/dubbo-2.5.x-scenario/src/main/java/org/apache/skywalking/apm/testcase/dubbo/services/impl/GreetServiceImpl.java b/test/plugin/scenarios/dubbo-2.5.x-scenario/src/main/java/org/apache/skywalking/apm/testcase/dubbo/services/impl/GreetServiceImpl.java new file mode 100644 index 000000000..eeeabe458 --- /dev/null +++ b/test/plugin/scenarios/dubbo-2.5.x-scenario/src/main/java/org/apache/skywalking/apm/testcase/dubbo/services/impl/GreetServiceImpl.java @@ -0,0 +1,31 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.skywalking.apm.testcase.dubbo.services.impl; + +import org.apache.skywalking.apm.testcase.dubbo.services.GreetService; + +/** + * @author ascrutae + */ +public class GreetServiceImpl implements GreetService { + + @Override public String doBusiness() { + return "{name:'helloWorld'}"; + } +} diff --git a/test/plugin/scenarios/dubbo-2.5.x-scenario/src/main/resources/application.yaml b/test/plugin/scenarios/dubbo-2.5.x-scenario/src/main/resources/application.yaml new file mode 100644 index 000000000..5abf3df5b --- /dev/null +++ b/test/plugin/scenarios/dubbo-2.5.x-scenario/src/main/resources/application.yaml @@ -0,0 +1,21 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +server: + port: 8080 + servlet: + context-path: /dubbo-2.5.x-scenario + diff --git a/test/plugin/scenarios/dubbo-2.5.x-scenario/support-version.list b/test/plugin/scenarios/dubbo-2.5.x-scenario/support-version.list new file mode 100644 index 000000000..f0883c49e --- /dev/null +++ b/test/plugin/scenarios/dubbo-2.5.x-scenario/support-version.list @@ -0,0 +1,26 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +2.5.4 +2.5.5 +2.5.6 +2.5.7 +2.5.8 +2.6.0 +2.6.2 +2.6.3 +2.6.4 +2.6.5 \ No newline at end of file diff --git a/test/plugin/scenarios/dubbo-2.7.x-scenario/bin/startup.sh b/test/plugin/scenarios/dubbo-2.7.x-scenario/bin/startup.sh new file mode 100644 index 000000000..f3940038e --- /dev/null +++ b/test/plugin/scenarios/dubbo-2.7.x-scenario/bin/startup.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +home="$(cd "$(dirname $0)"; pwd)" + +java -jar ${agent_opts} "-Dskywalking.agent.service_name=dubbo-2.7.x-scenario" ${home}/../libs/dubbo-2.7.x-scenario.jar & \ No newline at end of file diff --git a/test/plugin/scenarios/dubbo-2.7.x-scenario/config/expectedData.yaml b/test/plugin/scenarios/dubbo-2.7.x-scenario/config/expectedData.yaml new file mode 100644 index 000000000..747f02723 --- /dev/null +++ b/test/plugin/scenarios/dubbo-2.7.x-scenario/config/expectedData.yaml @@ -0,0 +1,102 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +registryItems: + applications: + - {dubbo-2.7.x-scenario: 2} + instances: + - {dubbo-2.7.x-scenario: 1} + operationNames: + - dubbo-2.7.x-scenario: [/dubbo-2.7.x-scenario/case/healthCheck, + /dubbo-2.7.x-scenario/case/dubbo, + org.apache.skywalking.apm.testcase.dubbo.services.GreetService.doBusiness()] + heartbeat: [] +segmentItems: + - applicationCode: dubbo-2.7.x-scenario + segmentSize: 3 + segments: + - segmentId: not null + spans: + - operationName: /dubbo-2.7.x-scenario/case/healthCheck + operationId: 0 + parentSpanId: -1 + spanId: 0 + spanLayer: Http + startTime: nq 0 + endTime: nq 0 + componentId: 1 + componentName: '' + isError: false + spanType: Entry + peer: '' + peerId: 0 + tags: + - {key: url, value: 'http://localhost:8080/dubbo-2.7.x-scenario/case/healthCheck'} + - {key: http.method, value: HEAD} + - segmentId: not null + spans: + - operationName: org.apache.skywalking.apm.testcase.dubbo.services.GreetService.doBusiness() + operationId: 0 + parentSpanId: -1 + spanId: 0 + spanLayer: RPCFramework + startTime: nq 0 + endTime: nq 0 + componentId: 3 + componentName: '' + isError: false + spanType: Entry + peer: '' + peerId: 0 + tags: + - {key: url, value: not null} + refs: + - {parentEndpointId: 0, parentEndpoint: /dubbo-2.7.x-scenario/case/dubbo, networkAddressId: 0, + entryEndpointId: 0, refType: CrossProcess, parentSpanId: 1, parentTraceSegmentId: not null, + parentServiceInstanceId: 1, networkAddress: 'localhost:20080', entryEndpoint: /dubbo-2.7.x-scenario/case/dubbo, + entryServiceInstanceId: 1} + - segmentId: not null + spans: + - operationName: org.apache.skywalking.apm.testcase.dubbo.services.GreetService.doBusiness() + operationId: 0 + parentSpanId: 0 + spanId: 1 + spanLayer: RPCFramework + startTime: nq 0 + endTime: nq 0 + componentId: 3 + componentName: '' + isError: false + spanType: Exit + peer: localhost:20080 + peerId: 0 + tags: + - {key: url, value: 'dubbo://localhost:20080/org.apache.skywalking.apm.testcase.dubbo.services.GreetService.doBusiness()'} + - operationName: /dubbo-2.7.x-scenario/case/dubbo + operationId: 0 + parentSpanId: -1 + spanId: 0 + spanLayer: Http + startTime: nq 0 + endTime: nq 0 + componentId: 1 + componentName: '' + isError: false + spanType: Entry + peer: '' + peerId: 0 + tags: + - {key: url, value: 'http://localhost:8080/dubbo-2.7.x-scenario/case/dubbo'} + - {key: http.method, value: GET} diff --git a/test/plugin/scenarios/dubbo-2.7.x-scenario/configuration.yml b/test/plugin/scenarios/dubbo-2.7.x-scenario/configuration.yml new file mode 100644 index 000000000..ccad78d48 --- /dev/null +++ b/test/plugin/scenarios/dubbo-2.7.x-scenario/configuration.yml @@ -0,0 +1,21 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +type: jvm +entryService: http://localhost:8080/dubbo-2.7.x-scenario/case/dubbo +healthCheck: http://localhost:8080/dubbo-2.7.x-scenario/case/healthCheck +startScript: ./bin/startup.sh +framework: dubbo diff --git a/test/plugin/scenarios/dubbo-2.7.x-scenario/pom.xml b/test/plugin/scenarios/dubbo-2.7.x-scenario/pom.xml new file mode 100644 index 000000000..4bd7eefa7 --- /dev/null +++ b/test/plugin/scenarios/dubbo-2.7.x-scenario/pom.xml @@ -0,0 +1,119 @@ + + + + 4.0.0 + + org.apache.skywalking + dubbo-2.7.x-scenario + 5.0.0 + + + UTF-8 + 1.8 + 2.1.6.RELEASE + + dubbo + 2.7.0 + + + skywalking-dubbo-2.7.x-scenario + + + + + org.springframework.boot + spring-boot-dependencies + ${spring.boot.version} + pom + import + + + + + + + org.springframework.boot + spring-boot-starter-web + + + + + org.apache.dubbo + dubbo + ${test.framework.version} + + + + + dubbo-2.7.x-scenario + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + maven-compiler-plugin + + ${compiler.version} + ${compiler.version} + ${project.build.sourceEncoding} + + + + org.apache.maven.plugins + maven-assembly-plugin + + + assemble + package + + single + + + + src/main/assembly/assembly.xml + + ./target/ + + + + + + + + + + spring-snapshots + http://repo.spring.io/snapshot + + + spring-milestones + http://repo.spring.io/milestone + + + \ No newline at end of file diff --git a/test/plugin/scenarios/dubbo-2.7.x-scenario/src/main/assembly/assembly.xml b/test/plugin/scenarios/dubbo-2.7.x-scenario/src/main/assembly/assembly.xml new file mode 100644 index 000000000..c8cf4a59c --- /dev/null +++ b/test/plugin/scenarios/dubbo-2.7.x-scenario/src/main/assembly/assembly.xml @@ -0,0 +1,41 @@ + + + + + zip + + + + + ./bin + 0775 + + + + + + ./target/dubbo-2.7.x-scenario.jar + ./libs + 0775 + + + \ No newline at end of file diff --git a/test/plugin/scenarios/dubbo-2.7.x-scenario/src/main/java/org/apache/skywalking/apm/testcase/dubbo/Application.java b/test/plugin/scenarios/dubbo-2.7.x-scenario/src/main/java/org/apache/skywalking/apm/testcase/dubbo/Application.java new file mode 100644 index 000000000..0b8c60eeb --- /dev/null +++ b/test/plugin/scenarios/dubbo-2.7.x-scenario/src/main/java/org/apache/skywalking/apm/testcase/dubbo/Application.java @@ -0,0 +1,75 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.skywalking.apm.testcase.dubbo; + +import org.apache.dubbo.config.ApplicationConfig; +import org.apache.dubbo.config.ProtocolConfig; +import org.apache.dubbo.config.ReferenceConfig; +import org.apache.dubbo.config.RegistryConfig; +import org.apache.dubbo.config.ServiceConfig; +import org.apache.skywalking.apm.testcase.dubbo.services.GreetService; +import org.apache.skywalking.apm.testcase.dubbo.services.impl.GreetServiceImpl; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @author zhangwei + */ +@SpringBootApplication public class Application { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } + + @Configuration + public static class DubboConfiguration { + + private ApplicationConfig applicationConfig = new ApplicationConfig(Application.class.getSimpleName()); + + private RegistryConfig registryConfig = new RegistryConfig("N/A"); + + private ProtocolConfig protocolConfig = new ProtocolConfig("dubbo", 20080); + + @Bean(destroyMethod = "unexport") + public ServiceConfig service() { + ServiceConfig serviceConfig = new ServiceConfig<>(); + serviceConfig.setApplication(applicationConfig); + serviceConfig.setRegistry(registryConfig); + serviceConfig.setProtocol(protocolConfig); + serviceConfig.setInterface(GreetService.class); + serviceConfig.setRef(new GreetServiceImpl()); + serviceConfig.setTimeout(5000); + serviceConfig.export(); + return serviceConfig; + } + + @Bean(destroyMethod = "destroy") + public ReferenceConfig reference() { + ReferenceConfig referenceConfig = new ReferenceConfig<>(); + referenceConfig.setApplication(applicationConfig); + + referenceConfig.setInterface(GreetService.class); + referenceConfig.setUrl("dubbo://localhost:20080"); + + return referenceConfig; + } + } +} diff --git a/test/plugin/scenarios/dubbo-2.7.x-scenario/src/main/java/org/apache/skywalking/apm/testcase/dubbo/controller/CaseController.java b/test/plugin/scenarios/dubbo-2.7.x-scenario/src/main/java/org/apache/skywalking/apm/testcase/dubbo/controller/CaseController.java new file mode 100644 index 000000000..0186f36f5 --- /dev/null +++ b/test/plugin/scenarios/dubbo-2.7.x-scenario/src/main/java/org/apache/skywalking/apm/testcase/dubbo/controller/CaseController.java @@ -0,0 +1,53 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.skywalking.apm.testcase.dubbo.controller; + +import org.apache.dubbo.config.ReferenceConfig; +import org.apache.skywalking.apm.testcase.dubbo.services.GreetService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author zhangwei + */ +@RestController +@RequestMapping("/case") +public class CaseController { + + private static final String SUCCESS = "Success"; + + @Autowired + private ReferenceConfig referenceConfig; + + @RequestMapping("/healthCheck") + @ResponseBody + public String healthCheck() { + return SUCCESS; + } + + @RequestMapping("/dubbo") + @ResponseBody + public String dubbo() { + GreetService greetService = referenceConfig.get(); + System.out.println(greetService.doBusiness()); + return SUCCESS; + } +} diff --git a/test/plugin/scenarios/dubbo-2.7.x-scenario/src/main/java/org/apache/skywalking/apm/testcase/dubbo/services/GreetService.java b/test/plugin/scenarios/dubbo-2.7.x-scenario/src/main/java/org/apache/skywalking/apm/testcase/dubbo/services/GreetService.java new file mode 100644 index 000000000..4b50c7187 --- /dev/null +++ b/test/plugin/scenarios/dubbo-2.7.x-scenario/src/main/java/org/apache/skywalking/apm/testcase/dubbo/services/GreetService.java @@ -0,0 +1,26 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.skywalking.apm.testcase.dubbo.services; + +/** + * @author ascrutae + */ +public interface GreetService { + String doBusiness(); +} diff --git a/test/plugin/scenarios/dubbo-2.7.x-scenario/src/main/java/org/apache/skywalking/apm/testcase/dubbo/services/impl/GreetServiceImpl.java b/test/plugin/scenarios/dubbo-2.7.x-scenario/src/main/java/org/apache/skywalking/apm/testcase/dubbo/services/impl/GreetServiceImpl.java new file mode 100644 index 000000000..eeeabe458 --- /dev/null +++ b/test/plugin/scenarios/dubbo-2.7.x-scenario/src/main/java/org/apache/skywalking/apm/testcase/dubbo/services/impl/GreetServiceImpl.java @@ -0,0 +1,31 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.skywalking.apm.testcase.dubbo.services.impl; + +import org.apache.skywalking.apm.testcase.dubbo.services.GreetService; + +/** + * @author ascrutae + */ +public class GreetServiceImpl implements GreetService { + + @Override public String doBusiness() { + return "{name:'helloWorld'}"; + } +} diff --git a/test/plugin/scenarios/dubbo-2.7.x-scenario/src/main/resources/application.yaml b/test/plugin/scenarios/dubbo-2.7.x-scenario/src/main/resources/application.yaml new file mode 100644 index 000000000..3e3b2995a --- /dev/null +++ b/test/plugin/scenarios/dubbo-2.7.x-scenario/src/main/resources/application.yaml @@ -0,0 +1,21 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +server: + port: 8080 + servlet: + context-path: /dubbo-2.7.x-scenario + diff --git a/test/plugin/scenarios/dubbo-2.7.x-scenario/support-version.list b/test/plugin/scenarios/dubbo-2.7.x-scenario/support-version.list new file mode 100644 index 000000000..d7f37d329 --- /dev/null +++ b/test/plugin/scenarios/dubbo-2.7.x-scenario/support-version.list @@ -0,0 +1,20 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +2.7.0 +2.7.1 +2.7.2 +2.7.3 \ No newline at end of file