You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2019/11/07 07:30:03 UTC
[skywalking] branch master updated: [test/plugin] merge undertow
scenario (#3797)
This is an automated email from the ASF dual-hosted git repository.
wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git
The following commit(s) were added to refs/heads/master by this push:
new 6206074 [test/plugin] merge undertow scenario (#3797)
6206074 is described below
commit 62060749f7bea3cd97716a5ba0cec6103f46d02c
Author: zhang-wei <pk...@outlook.com>
AuthorDate: Thu Nov 7 15:29:52 2019 +0800
[test/plugin] merge undertow scenario (#3797)
* merge undertow scenario
* update elapsed time
---
Jenkinsfile-Agent-Test-3 | 8 +-
Jenkinsfile-Agent-Test-4 | 6 +-
docs/en/guides/Plugin-test.md | 12 +--
test/plugin/run.sh | 4 +-
.../undertow-routing-scenario/bin/startup.sh | 21 ----
.../config/expectedData.yaml | 106 -------------------
.../undertow-routing-scenario/configuration.yml | 21 ----
.../scenarios/undertow-routing-scenario/pom.xml | 114 ---------------------
.../src/main/assembly/assembly.xml | 41 --------
.../amp/testcase/undertow/Application.java | 72 -------------
.../undertow-routing-scenario/support-version.list | 44 --------
.../undertow-scenario/config/expectedData.yaml | 72 +++++++++++--
.../amp/testcase/undertow/Application.java | 38 ++++++-
13 files changed, 111 insertions(+), 448 deletions(-)
diff --git a/Jenkinsfile-Agent-Test-3 b/Jenkinsfile-Agent-Test-3
index a46dfd1..1edfb26 100755
--- a/Jenkinsfile-Agent-Test-3
+++ b/Jenkinsfile-Agent-Test-3
@@ -67,7 +67,7 @@ pipeline {
sh './mvnw -f test/plugin/pom.xml clean package -DskipTests docker:build'
}
}
- stage('Test Cases Report (135)') {
+ stage('Test Cases Report (119)') {
steps {
echo "Test Cases Report"
}
@@ -110,12 +110,6 @@ pipeline {
}
}
- stage('kafka 0.11.0.0-2.3.0 (16)') {
- steps {
- sh 'bash test/plugin/run.sh kafka-scenario'
- }
- }
-
stage('mongodb 3.4.0-3.11.1 (17)') {
steps {
sh 'bash test/plugin/run.sh mongodb-3.x-scenario'
diff --git a/Jenkinsfile-Agent-Test-4 b/Jenkinsfile-Agent-Test-4
index 5ce04d8..8b994e5 100755
--- a/Jenkinsfile-Agent-Test-4
+++ b/Jenkinsfile-Agent-Test-4
@@ -68,7 +68,7 @@ pipeline {
}
}
- stage('Test Cases Report (142)') {
+ stage('Test Cases Report (135)') {
steps {
echo "Test Cases Report"
}
@@ -84,9 +84,9 @@ pipeline {
parallel {
stage('Group1') {
stages {
- stage('undertow-routing 1.3.0-2.0.27 (23)') {
+ stage('kafka 0.11.0.0-2.3.0 (16)') {
steps {
- sh 'bash test/plugin/run.sh undertow-routing-scenario'
+ sh 'bash test/plugin/run.sh kafka-scenario'
}
}
diff --git a/docs/en/guides/Plugin-test.md b/docs/en/guides/Plugin-test.md
index 5cbd881..75a7b81 100644
--- a/docs/en/guides/Plugin-test.md
+++ b/docs/en/guides/Plugin-test.md
@@ -642,21 +642,19 @@ postgresql 9.2.x-9.4.x | 36 | 1243.03
sofarpc 5.4.0-5.6.2 | 23 | 817.77
spring 3.0.x | 8 | 231.11
-#### Group 2 (3138.093s)
+#### Group 2 (2433.33s)
scenario name | versions | elapsed time (sec)
---|---|---
spring async 4.3.x-5.1.x | 35 | 967.70
-kafka 0.11.0.0-2.3.0 | 16 | 704.75
mongodb 3.4.0-3.11.1 | 17 | 1465.63
-
### Workload 4
-#### Group 1 (1688.243s)
+#### Group 1 (1778.45s)
scenario name | versions | elapsed time (sec)
---|---|---
-undertow-routing 1.3.0-2.0.27 | 23 | 643.31
+kafka 0.11.0.0-2.3.0 | 16 | 704.75
ehcache 2.8.x-2.10.x | 19 | 440.71
-undertow 1.3.0-2.0.27 | 23 | 604.20
+undertow 1.3.0-2.0.27 | 23 | 633.00
#### Group 2 (2148.155s)
scenario name | versions | elapsed time (sec)
@@ -665,4 +663,4 @@ spring-webflux 2.x | 18 | 705.60
spring 4.1.x-4.2.x | 20 | 574.75
solrj 7.x | 12 | 367.05
httpclient 4.3.x-4.5.x | 14 | 300.61
-httpasyncclient 4.0-4.1.3 | 7 | 200.11
\ No newline at end of file
+httpasyncclient 4.0-4.1.3 | 7 | 200.11
diff --git a/test/plugin/run.sh b/test/plugin/run.sh
index b4c0243..38e4a53 100644
--- a/test/plugin/run.sh
+++ b/test/plugin/run.sh
@@ -143,9 +143,9 @@ test -z "$scenario_name" && exitWithMessage "Missing value for the scenario argu
if [[ ! -d ${agent_home} ]]; then
echo "[WARN] SkyWalking Agent not exists"
- ${mvnw} -f ${home}/../../pom.xml -Pagent -DskipTests -DBUILD_NO=${BUILD_NO:=local} clean package
+ ${mvnw} -f ${home}/../../pom.xml -Pagent -DskipTests clean package
fi
-[[ "$force_build" == "on" ]] && ${mvnw} -f ${home}/pom.xml clean package -DskipTests docker:build
+[[ "$force_build" == "on" ]] && ${mvnw} -f ${home}/pom.xml clean package -DskipTests -DBUILD_NO=${BUILD_NO:=local} docker:build
workspace="${home}/workspace/${scenario_name}"
task_state_house="${workspace}/.states"
diff --git a/test/plugin/scenarios/undertow-routing-scenario/bin/startup.sh b/test/plugin/scenarios/undertow-routing-scenario/bin/startup.sh
deleted file mode 100644
index 52f5a54..0000000
--- a/test/plugin/scenarios/undertow-routing-scenario/bin/startup.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/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} ${home}/../libs/undertow-routing-scenario.jar &
\ No newline at end of file
diff --git a/test/plugin/scenarios/undertow-routing-scenario/config/expectedData.yaml b/test/plugin/scenarios/undertow-routing-scenario/config/expectedData.yaml
deleted file mode 100644
index b8439fe..0000000
--- a/test/plugin/scenarios/undertow-routing-scenario/config/expectedData.yaml
+++ /dev/null
@@ -1,106 +0,0 @@
-# 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:
- - {undertow-routing-scenario: 2}
- instances:
- - {undertow-routing-scenario: 1}
- operationNames:
- - undertow-routing-scenario: [/undertow-routing-scenario/case/undertow1, '/undertow-routing-scenario/case/{context}']
- heartbeat: []
-segmentItems:
- - applicationCode: undertow-routing-scenario
- segmentSize: gt 3
- segments:
- - segmentId: not null
- spans:
- - operationName: /undertow-routing-scenario/case/{context}
- operationId: 0
- parentSpanId: -1
- spanId: 0
- spanLayer: Http
- startTime: nq 0
- endTime: nq 0
- componentId: 49
- componentName: ''
- isError: false
- spanType: Entry
- peer: ''
- peerId: 0
- tags:
- - {key: url, value: 'http://localhost:8080/undertow-routing-scenario/case/undertow'}
- - {key: http.method, value: GET}
- - segmentId: not null
- spans:
- - operationName: /undertow-routing-scenario/case/{context}
- operationId: 0
- parentSpanId: -1
- spanId: 0
- spanLayer: Http
- startTime: nq 0
- endTime: nq 0
- componentId: 49
- componentName: ''
- isError: false
- spanType: Entry
- peer: ''
- peerId: 0
- tags:
- - {key: url, value: 'http://localhost:8080/undertow-routing-scenario/case/undertow1'}
- - {key: http.method, value: GET}
- refs:
- - {parentEndpointId: 0, parentEndpoint: UndertowDispatch, networkAddressId: 0,
- entryEndpointId: 0, refType: CrossProcess, parentSpanId: 1, parentTraceSegmentId: not null,
- parentServiceInstanceId: 1, networkAddress: 'localhost:8080', entryEndpoint: '/undertow-routing-scenario/case/{context}',
- entryServiceInstanceId: 1}
- - segmentId: not null
- spans:
- - operationName: /undertow-routing-scenario/case/undertow1
- operationId: 0
- parentSpanId: 0
- spanId: 1
- spanLayer: Http
- startTime: nq 0
- endTime: nq 0
- componentId: 2
- componentName: ''
- isError: false
- spanType: Exit
- peer: localhost:8080
- peerId: 0
- tags:
- - {key: url, value: 'http://localhost:8080/undertow-routing-scenario/case/undertow1?send=httpHandler'}
- - {key: http.method, value: GET}
- - operationName: UndertowDispatch
- operationId: 0
- parentSpanId: -1
- spanId: 0
- spanLayer: Unknown
- startTime: nq 0
- endTime: nq 0
- componentId: 49
- componentName: ''
- isError: false
- spanType: Local
- peer: ''
- peerId: 0
- refs:
- - {parentEndpointId: 0, parentEndpoint: '/undertow-routing-scenario/case/{context}',
- networkAddressId: 0, entryEndpointId: 0, refType: CrossThread, parentSpanId: 0,
- parentTraceSegmentId: not null, parentServiceInstanceId: 1,
- networkAddress: '', entryEndpoint: '/undertow-routing-scenario/case/{context}',
- entryServiceInstanceId: 1}
\ No newline at end of file
diff --git a/test/plugin/scenarios/undertow-routing-scenario/configuration.yml b/test/plugin/scenarios/undertow-routing-scenario/configuration.yml
deleted file mode 100644
index c32ce96..0000000
--- a/test/plugin/scenarios/undertow-routing-scenario/configuration.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-# 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/undertow-routing-scenario/case/undertow
-healthCheck: http://localhost:8080/undertow-routing-scenario/case/healthCheck
-startScript: ./bin/startup.sh
-framework: undertow
\ No newline at end of file
diff --git a/test/plugin/scenarios/undertow-routing-scenario/pom.xml b/test/plugin/scenarios/undertow-routing-scenario/pom.xml
deleted file mode 100644
index 7ab0a46..0000000
--- a/test/plugin/scenarios/undertow-routing-scenario/pom.xml
+++ /dev/null
@@ -1,114 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ~ 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.
- ~
- -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <groupId>org.apache.skywalking</groupId>
- <artifactId>undertow-routing-scenario</artifactId>
- <packaging>jar</packaging>
- <version>5.0.0</version>
-
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <compiler.version>1.8</compiler.version>
- <start-class>org.apache.skywalking.amp.testcase.undertow.Application</start-class>
-
- <test.framework>undertow</test.framework>
- <test.framework.version>1.3.0.Final</test.framework.version>
- </properties>
-
- <name>skywalking-undertow-routing-scenario</name>
-
- <dependencies>
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>javax.servlet-api</artifactId>
- <version>3.1.0</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>io.undertow</groupId>
- <artifactId>undertow-core</artifactId>
- <version>${test.framework.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>httpclient</artifactId>
- <version>4.3</version>
- </dependency>
- </dependencies>
-
- <build>
- <finalName>undertow-routing-scenario</finalName>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>repackage</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>${compiler.version}</source>
- <target>${compiler.version}</target>
- <encoding>${project.build.sourceEncoding}</encoding>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-assembly-plugin</artifactId>
- <executions>
- <execution>
- <id>assemble</id>
- <phase>package</phase>
- <goals>
- <goal>single</goal>
- </goals>
- <configuration>
- <descriptors>
- <descriptor>src/main/assembly/assembly.xml</descriptor>
- </descriptors>
- <outputDirectory>./target/</outputDirectory>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-
- <pluginRepositories>
- <pluginRepository>
- <id>spring-snapshots</id>
- <url>http://repo.spring.io/snapshot</url>
- </pluginRepository>
- <pluginRepository>
- <id>spring-milestones</id>
- <url>http://repo.spring.io/milestone</url>
- </pluginRepository>
- </pluginRepositories>
-</project>
\ No newline at end of file
diff --git a/test/plugin/scenarios/undertow-routing-scenario/src/main/assembly/assembly.xml b/test/plugin/scenarios/undertow-routing-scenario/src/main/assembly/assembly.xml
deleted file mode 100644
index 9d3588c..0000000
--- a/test/plugin/scenarios/undertow-routing-scenario/src/main/assembly/assembly.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ~ 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.
- ~
- -->
-<assembly
- xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
- <formats>
- <format>zip</format>
- </formats>
-
- <fileSets>
- <fileSet>
- <directory>./bin</directory>
- <fileMode>0775</fileMode>
- </fileSet>
- </fileSets>
-
- <files>
- <file>
- <source>${project.build.directory}/undertow-routing-scenario.jar</source>
- <outputDirectory>./libs</outputDirectory>
- <fileMode>0775</fileMode>
- </file>
- </files>
-</assembly>
diff --git a/test/plugin/scenarios/undertow-routing-scenario/src/main/java/org/apache/skywalking/amp/testcase/undertow/Application.java b/test/plugin/scenarios/undertow-routing-scenario/src/main/java/org/apache/skywalking/amp/testcase/undertow/Application.java
deleted file mode 100644
index 4a33673..0000000
--- a/test/plugin/scenarios/undertow-routing-scenario/src/main/java/org/apache/skywalking/amp/testcase/undertow/Application.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * 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.amp.testcase.undertow;
-
-import io.undertow.Undertow;
-import io.undertow.server.HttpHandler;
-import io.undertow.server.RoutingHandler;
-import io.undertow.util.Headers;
-import io.undertow.util.Methods;
-import org.apache.http.HttpEntity;
-import org.apache.http.client.ResponseHandler;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.HttpClients;
-import org.apache.http.util.EntityUtils;
-
-import java.io.IOException;
-
-public class Application {
-
- private static final String TEMPLATE = "/undertow-routing-scenario/case/{context}";
-
- private static final String CASE_URL = "/undertow-routing-scenario/case/undertow";
-
- public static void main(String[] args) {
- HttpHandler httpHandler = exchange -> {
- if (CASE_URL.equals(exchange.getRequestPath())) {
- exchange.dispatch(httpServerExchange -> visit("http://localhost:8080/undertow-routing-scenario/case/undertow1?send=httpHandler"));
- }
- exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "text/plain");
- exchange.getResponseSender().send("Success");
- };
- RoutingHandler handler = new RoutingHandler();
- handler.add(Methods.GET, TEMPLATE, httpHandler);
- handler.add(Methods.HEAD, TEMPLATE, httpHandler);
- Undertow server = Undertow.builder()
- .addHttpListener(8080, "0.0.0.0")
- .setHandler(handler).build();
- Runtime.getRuntime().addShutdownHook(new Thread(server::stop));
- server.start();
- }
-
- private static void visit(String url) throws IOException {
- CloseableHttpClient httpclient = HttpClients.createDefault();
- try {
- HttpGet httpget = new HttpGet(url);
- ResponseHandler<String> responseHandler = response -> {
- HttpEntity entity = response.getEntity();
- return entity != null ? EntityUtils.toString(entity) : null;
- };
- httpclient.execute(httpget, responseHandler);
- } finally {
- httpclient.close();
- }
- }
-}
diff --git a/test/plugin/scenarios/undertow-routing-scenario/support-version.list b/test/plugin/scenarios/undertow-routing-scenario/support-version.list
deleted file mode 100644
index 3a6f7d0..0000000
--- a/test/plugin/scenarios/undertow-routing-scenario/support-version.list
+++ /dev/null
@@ -1,44 +0,0 @@
-# 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
-# "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.
-
-# undertow has a total of 90 versions from 1.3.0 to 2.0.27, in order to reduce the workload of agent-plugin-test,
-# so, some test cases are excluded according to the following rules.
-# 1.3.x 1.4.x: select the first, middle, and last version
-# 2.0.x: when there are many releases in the same month, choose the last one
-
-1.3.0.Final
-1.3.17.Final
-1.3.33.Final
-1.4.0.Final
-1.4.12.Final
-1.4.27.Final
-2.0.0.Final
-2.0.3.Final
-2.0.4.Final
-2.0.8.Final
-2.0.9.Final
-2.0.11.Final
-2.0.13.Final
-2.0.15.Final
-2.0.16.Final
-2.0.17.Final
-2.0.19.Final
-2.0.20.Final
-2.0.21.Final
-2.0.22.Final
-2.0.23.Final
-2.0.26.Final
-2.0.27.Final
\ No newline at end of file
diff --git a/test/plugin/scenarios/undertow-scenario/config/expectedData.yaml b/test/plugin/scenarios/undertow-scenario/config/expectedData.yaml
index bbfbafb..c4fb328 100644
--- a/test/plugin/scenarios/undertow-scenario/config/expectedData.yaml
+++ b/test/plugin/scenarios/undertow-scenario/config/expectedData.yaml
@@ -20,11 +20,12 @@ registryItems:
instances:
- {undertow-scenario: 1}
operationNames:
- - undertow-scenario: [/undertow-scenario/case/undertow1, /undertow-scenario/case/undertow]
+ - undertow-scenario: [/undertow-scenario/case/undertow1, /undertow-scenario/case/undertow, /undertow-routing-scenario/case/undertow,
+ '/undertow-routing-scenario/case/{context}']
heartbeat: []
segmentItems:
- applicationCode: undertow-scenario
- segmentSize: gt 3
+ segmentSize: gt 5
segments:
- segmentId: not null
spans:
@@ -46,6 +47,29 @@ segmentItems:
- {key: http.method, value: GET}
- segmentId: not null
spans:
+ - operationName: /undertow-routing-scenario/case/{context}
+ operationId: 0
+ parentSpanId: -1
+ spanId: 0
+ spanLayer: Http
+ startTime: nq 0
+ endTime: nq 0
+ componentId: 49
+ componentName: ''
+ isError: false
+ spanType: Entry
+ peer: ''
+ peerId: 0
+ tags:
+ - {key: url, value: 'http://localhost:8081/undertow-routing-scenario/case/undertow'}
+ - {key: http.method, value: GET}
+ refs:
+ - {parentEndpointId: 0, parentEndpoint: UndertowDispatch, networkAddressId: 0,
+ entryEndpointId: 0, refType: CrossProcess, parentSpanId: 1, parentTraceSegmentId: not null,
+ parentServiceInstanceId: 1, networkAddress: 'localhost:8081', entryEndpoint: /undertow-scenario/case/undertow,
+ entryServiceInstanceId: 1}
+ - segmentId: not null
+ spans:
- operationName: /undertow-scenario/case/undertow1
operationId: 0
parentSpanId: -1
@@ -69,7 +93,7 @@ segmentItems:
entryServiceInstanceId: 1}
- segmentId: not null
spans:
- - operationName: /undertow-scenario/case/undertow1
+ - operationName: /undertow-routing-scenario/case/undertow
operationId: 0
parentSpanId: 0
spanId: 1
@@ -80,10 +104,10 @@ segmentItems:
componentName: ''
isError: false
spanType: Exit
- peer: localhost:8080
+ peer: localhost:8081
peerId: 0
tags:
- - {key: url, value: 'http://localhost:8080/undertow-scenario/case/undertow1?send=runnable'}
+ - {key: url, value: 'http://localhost:8081/undertow-routing-scenario/case/undertow?send=httpHandler'}
- {key: http.method, value: GET}
- operationName: UndertowDispatch
operationId: 0
@@ -102,4 +126,40 @@ segmentItems:
- {parentEndpointId: 0, parentEndpoint: /undertow-scenario/case/undertow, networkAddressId: 0,
entryEndpointId: 0, refType: CrossThread, parentSpanId: 0, parentTraceSegmentId: not null,
parentServiceInstanceId: 1, networkAddress: '', entryEndpoint: /undertow-scenario/case/undertow,
- entryServiceInstanceId: 1}
\ No newline at end of file
+ entryServiceInstanceId: 1}
+ - segmentId: not null
+ spans:
+ - operationName: /undertow-scenario/case/undertow1
+ operationId: 0
+ parentSpanId: 0
+ spanId: 1
+ spanLayer: Http
+ startTime: nq 0
+ endTime: nq 0
+ componentId: 2
+ componentName: ''
+ isError: false
+ spanType: Exit
+ peer: localhost:8080
+ peerId: 0
+ tags:
+ - {key: url, value: 'http://localhost:8080/undertow-scenario/case/undertow1?send=runnable'}
+ - {key: http.method, value: GET}
+ - operationName: UndertowDispatch
+ operationId: 0
+ parentSpanId: -1
+ spanId: 0
+ spanLayer: Unknown
+ startTime: nq 0
+ endTime: nq 0
+ componentId: 49
+ componentName: ''
+ isError: false
+ spanType: Local
+ peer: ''
+ peerId: 0
+ refs:
+ - {parentEndpointId: 0, parentEndpoint: '/undertow-routing-scenario/case/{context}',
+ networkAddressId: 0, entryEndpointId: 0, refType: CrossThread, parentSpanId: 0,
+ parentTraceSegmentId: not null, parentServiceInstanceId: 1,
+ networkAddress: '', entryEndpoint: /undertow-scenario/case/undertow, entryServiceInstanceId: 1}
diff --git a/test/plugin/scenarios/undertow-scenario/src/main/java/org/apache/skywalking/amp/testcase/undertow/Application.java b/test/plugin/scenarios/undertow-scenario/src/main/java/org/apache/skywalking/amp/testcase/undertow/Application.java
index f1fa0bd..3617bcf 100644
--- a/test/plugin/scenarios/undertow-scenario/src/main/java/org/apache/skywalking/amp/testcase/undertow/Application.java
+++ b/test/plugin/scenarios/undertow-scenario/src/main/java/org/apache/skywalking/amp/testcase/undertow/Application.java
@@ -19,7 +19,10 @@
package org.apache.skywalking.amp.testcase.undertow;
import io.undertow.Undertow;
+import io.undertow.server.HttpHandler;
+import io.undertow.server.RoutingHandler;
import io.undertow.util.Headers;
+import io.undertow.util.Methods;
import org.apache.http.HttpEntity;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
@@ -33,14 +36,23 @@ public class Application {
private static final String CASE_URL = "/undertow-scenario/case/undertow";
+ private static final String TEMPLATE = "/undertow-routing-scenario/case/{context}";
+
+ private static final String ROUTING_CASE_URL = "/undertow-routing-scenario/case/undertow";
+
public static void main(String[] args) throws InterruptedException {
+ new Thread(Application::undertowRouting).start();
+ undertow();
+ }
+
+ private static void undertow() {
Undertow server = Undertow.builder()
.addHttpListener(8080, "0.0.0.0")
.setHandler(exchange -> {
if (CASE_URL.equals(exchange.getRequestPath())) {
exchange.dispatch(() -> {
try {
- visit("http://localhost:8080/undertow-scenario/case/undertow1?send=runnable");
+ visit("http://localhost:8081/undertow-routing-scenario/case/undertow?send=httpHandler");
} catch (IOException e) {
e.printStackTrace();
}
@@ -53,17 +65,35 @@ public class Application {
server.start();
}
+ private static void undertowRouting() {
+ HttpHandler httpHandler = exchange -> {
+ if (ROUTING_CASE_URL.equals(exchange.getRequestPath())) {
+ exchange.dispatch(httpServerExchange -> visit("http://localhost:8080/undertow-scenario/case/undertow1?send=runnable"));
+ }
+ exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "text/plain");
+ exchange.getResponseSender().send("Success");
+ };
+ RoutingHandler handler = new RoutingHandler();
+ handler.add(Methods.GET, TEMPLATE, httpHandler);
+ handler.add(Methods.HEAD, TEMPLATE, httpHandler);
+ Undertow server = Undertow.builder()
+ .addHttpListener(8081, "0.0.0.0")
+ .setHandler(handler).build();
+ Runtime.getRuntime().addShutdownHook(new Thread(server::stop));
+ server.start();
+ }
+
private static void visit(String url) throws IOException {
- CloseableHttpClient httpclient = HttpClients.createDefault();
+ CloseableHttpClient httpClient = HttpClients.createDefault();
try {
HttpGet httpget = new HttpGet(url);
ResponseHandler<String> responseHandler = response -> {
HttpEntity entity = response.getEntity();
return entity != null ? EntityUtils.toString(entity) : null;
};
- httpclient.execute(httpget, responseHandler);
+ httpClient.execute(httpget, responseHandler);
} finally {
- httpclient.close();
+ httpClient.close();
}
}
}