This is an automated email from the ASF dual-hosted git repository.
hefengen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shenyu.git
The following commit(s) were added to refs/heads/master by this push:
new feb1e0499b [type:refactor] refactor e2e storage (#5284)
feb1e0499b is described below
commit feb1e0499bcc808f69451cbcfb55104f8076fe72
Author: moremind <[email protected]>
AuthorDate: Wed Nov 8 14:26:40 2023 +0800
[type:refactor] refactor e2e storage (#5284)
* [type:refactor] refactor storage
* [type:refactor] refactor storage
* [type:refactor] refactor module
* [type:refactor] refactor module
* [type:refactor] refactor module
* [type:refactor] refactor module
* [type:refactor] refactor module
* [type:refactor] refactor module
---
.github/workflows/e2e-k8s.yml | 14 +-
shenyu-e2e/shenyu-e2e-case/pom.xml | 1 +
.../src/test/resources/admin-application.yml | 123 --------
.../src/test/resources/bootstrap-application.yml | 335 ---------------------
.../src/test/resources/docker-compose.mysql.yml | 144 ---------
.../k8s/script/e2e-http-sync.sh} | 20 +-
.../k8s/shenyu-examples-http.yml | 70 +++++
.../shenyu-e2e-case/shenyu-e2e-case-http/pom.xml | 10 +-
.../shenyu/e2e/testcase/http/DataSynTest.java | 59 ++++
.../e2e/testcase/http/DividePluginCases.java | 49 +++
.../{divide => http}/DividePluginTest.java | 58 +---
.../src/test/resources/docker-compose.h2.yml | 36 ---
.../src/test/resources/docker-compose.mysql.yml | 60 ----
.../src/test/resources/docker-compose.postgres.yml | 62 ----
.../src/test/resources/docker-compose.test.yml | 64 ----
.../k8s/script/e2e-springcloud-sync.sh | 8 +-
.../k8s/script/healthcheck.sh | 39 ---
.../src/test/resources/admin-application.yml | 123 --------
.../src/test/resources/bootstrap-application.yml | 203 -------------
.../src/test/resources/docker-compose.mysql.yml | 154 ----------
.../src/test/resources/log4j2.xml | 30 --
.../k8s/script/e2e-h2.sh} | 2 +-
.../k8s/script/e2e-mysql.sh} | 2 +-
.../k8s/script/e2e-postgres.sh} | 2 +-
.../k8s/script/healthcheck.sh | 0
.../k8s/script/services-h2.list | 0
.../k8s/script/services-mysql.list | 0
.../k8s/script/services-postgres.list | 0
.../k8s/shenyu-app-service-h2.yml | 0
.../k8s/shenyu-app-service-mysql.yml | 0
.../k8s/shenyu-app-service-postgres.yml | 0
.../k8s/shenyu-deployment-h2.yml | 0
.../k8s/shenyu-deployment-mysql.yml | 0
.../k8s/shenyu-deployment-postgres.yml | 0
.../log4j2.xml => shenyu-e2e-case-storage/pom.xml} | 24 +-
.../e2e/testcase/divide/DividePluginCases.java | 0
.../e2e/testcase/divide/DividePluginTest.java | 0
.../k8s/script/e2e-websocket-sync.sh | 6 +-
.../k8s/script/healthcheck.sh | 39 ---
39 files changed, 232 insertions(+), 1505 deletions(-)
diff --git a/.github/workflows/e2e-k8s.yml b/.github/workflows/e2e-k8s.yml
index f0fa44b761..7a2e595034 100644
--- a/.github/workflows/e2e-k8s.yml
+++ b/.github/workflows/e2e-k8s.yml
@@ -113,12 +113,12 @@ jobs:
strategy:
matrix:
include:
- - case: shenyu-e2e-case-http
- script: e2e-http-h2
- - case: shenyu-e2e-case-http
- script: e2e-http-mysql
- - case: shenyu-e2e-case-http
- script: e2e-http-postgres
+ - case: shenyu-e2e-case-storage
+ script: e2e-h2
+ - case: shenyu-e2e-case-storage
+ script: e2e-mysql
+ - case: shenyu-e2e-case-storage
+ script: e2e-postgres
steps:
- uses: actions/checkout@v2
with:
@@ -201,6 +201,8 @@ jobs:
strategy:
matrix:
include:
+ - case: shenyu-e2e-case-http
+ script: e2e-http-sync
- case: shenyu-e2e-case-spring-cloud
script: e2e-springcloud-sync
- case: shenyu-e2e-case-apache-dubbo
diff --git a/shenyu-e2e/shenyu-e2e-case/pom.xml
b/shenyu-e2e/shenyu-e2e-case/pom.xml
index e72a646df7..56b9963010 100644
--- a/shenyu-e2e/shenyu-e2e-case/pom.xml
+++ b/shenyu-e2e/shenyu-e2e-case/pom.xml
@@ -29,6 +29,7 @@
<packaging>pom</packaging>
<modules>
+ <module>shenyu-e2e-case-storage</module>
<module>shenyu-e2e-case-http</module>
<module>shenyu-e2e-case-spring-cloud</module>
<module>shenyu-e2e-case-alibaba-dubbo</module>
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-grpc/src/test/resources/admin-application.yml
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-grpc/src/test/resources/admin-application.yml
deleted file mode 100755
index 146a1b43cd..0000000000
---
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-grpc/src/test/resources/admin-application.yml
+++ /dev/null
@@ -1,123 +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.
-
-server:
- port: 9095
- address: 0.0.0.0
-
-spring:
- profiles:
- active: h2
- thymeleaf:
- cache: true
- encoding: utf-8
- enabled: true
- prefix: classpath:/static/
- suffix: .html
- mvc:
- pathmatch:
- matching-strategy: ant_path_matcher
- jackson:
- time-zone: GMT+8 # GMT , Asia/Shanghai
- messages:
- basename: message/i18n
-
-management:
- health:
- mail:
- enabled: off
- endpoints:
- web:
- exposure:
- include:
- - 'health'
- - 'prometheus'
- enabled-by-default: true
-
-mybatis:
- config-location: classpath:/mybatis/mybatis-config.xml
- mapper-locations: classpath:/mappers/*.xml
-
-shenyu:
- register:
- registerType: http #http #zookeeper #etcd #nacos #consul
- serverLists: #localhost:2181 #http://localhost:2379 #localhost:8848
- props:
- sessionTimeout: 5000
- connectionTimeout: 2000
- checked: true
- zombieCheckThreads: 10
- zombieCheckTimes: 5
- scheduledTime: 10
- nacosNameSpace: ShenyuRegisterCenter
- sync:
- websocket:
- enabled: true
- messageMaxSize: 10240
- allowOrigins: ws://localhost:9095;ws://localhost:9195;
- ldap:
- enabled: false
- url: ldap://xxxx:xxx
- bind-dn: cn=xxx,dc=xxx,dc=xxx
- password: xxxx
- base-dn: ou=xxx,dc=xxx,dc=xxx
- object-class: person
- login-field: cn
- jwt:
- expired-seconds: 86400000
- shiro:
- white-list:
- - /
- - /favicon.*
- - /static/**
- - /index**
- - /platform/login
- - /websocket
- - /error
- - /actuator/health
- - /actuator/health/** # /actuator/health/readiness
/actuator/health/liveness
- - /actuator/prometheus
- - /swagger-ui.html
- - /webjars/**
- - /swagger-resources/**
- - /v2/api-docs
- - /csrf
- - /alert/report
- swagger:
- enable: true
- dashboard:
- core:
- onlySuperAdminPermission:
- - system:manager:add
- - system:manager:edit
- - system:manager:delete
- - system:role:add
- - system:role:edit
- - system:role:delete
- - system:resource:addButton
- - system:resource:addMenu
- - system:resource:editButton
- - system:resource:editMenu
- - system:resource:deleteButton
- - system:resource:deleteMenu
-
-logging:
- level:
- root: info
- org.springframework.boot: info
- org.apache.ibatis: info
- org.apache.shenyu.bonuspoint: info
- org.apache.shenyu.lottery: info
- org.apache.shenyu: info
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-grpc/src/test/resources/bootstrap-application.yml
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-grpc/src/test/resources/bootstrap-application.yml
deleted file mode 100644
index 350c2294e8..0000000000
---
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-grpc/src/test/resources/bootstrap-application.yml
+++ /dev/null
@@ -1,335 +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.
-
-server:
- port: 9195
- address: 0.0.0.0
- compression:
- enabled: true
- minResponseSize: 1048576 # If the response data is greater than 1M, enable
compression.
-
-spring:
- main:
- allow-bean-definition-overriding: true
- application:
- name: shenyu-bootstrap
- codec:
- max-in-memory-size: 2MB
- cloud:
- discovery:
- enabled: false
- nacos:
- discovery:
- server-addr: 127.0.0.1:8848 # Spring Cloud Alibaba Dubbo use this.
- enabled: false
- namespace: ShenyuRegisterCenter
-
-# if you want use ribbon please config every server.
-#springCloud-test:
-# ribbon:
-# NIWSServerListClassName:
com.netflix.niws.loadbalancer.DiscoveryEnabledNIWSServerList
-
-eureka:
- client:
- enabled: false
- serviceUrl:
- defaultZone: http://localhost:8761/eureka/
- instance:
- prefer-ip-address: true
-
-# security:
-# oauth2:
-# client:
-# registration:
-# <your client-registration-id>:
-# client-id: <your client-id>
-# client-secret: <your client-secret>
-# provider:
-# <your client-registration-id>:
-# authorization-uri: <your authorization-uri>
-# token-uri: <your access-token-uri>
-# user-info-uri: <your user-info-uri>
-# jwk-set-uri: <your jwk-set-uri>
-
-management:
- health:
- redis:
- enabled: false
- elasticsearch:
- enabled: false
- endpoint:
- health:
- enabled: true
- show-details: always
- endpoints:
- web:
- exposure:
- include: "*" # or health,info
-
-
-shenyu:
- selectorMatchCache:
- ## selector L1 cache
- cache:
- enabled: false
- initialCapacity: 10000 # initial capacity in cache
- maximumSize: 10000 # max size in cache
- ## selector L2 cache, use trie as L2 cache
- trie:
- enabled: false
- cacheSize: 128 # the number of plug-ins
- matchMode: antPathMatch
- ruleMatchCache:
- ## rule L1 cache
- cache:
- enabled: true
- initialCapacity: 10000 # initial capacity in cache
- maximumSize: 65536 # max size in cache
- ## rule L2 cache, use trie as L2 cache
- trie:
- enabled: false
- cacheSize: 1024 # the number of selectors
- matchMode: antPathMatch
- netty:
- http:
- # set to false, user can custom the netty tcp server config.
- webServerFactoryEnabled: true
- selectCount: 1
- workerCount: 8
- accessLog: false
- serverSocketChannel:
- soRcvBuf: 87380
- soBackLog: 128
- soReuseAddr: false
- connectTimeoutMillis: 10000
- writeBufferHighWaterMark: 65536
- writeBufferLowWaterMark: 32768
- writeSpinCount: 16
- autoRead: false
- allocType: "pooled"
- messageSizeEstimator: 8
- singleEventExecutorPerGroup: true
- socketChannel:
- soKeepAlive: false
- soReuseAddr: false
- soLinger: -1
- tcpNoDelay: true
- soRcvBuf: 87380
- soSndBuf: 16384
- ipTos: 0
- allowHalfClosure: false
- connectTimeoutMillis: 10000
- writeBufferHighWaterMark: 65536
- writeBufferLowWaterMark: 32768
- writeSpinCount: 16
- autoRead: false
- allocType: "pooled"
- messageSizeEstimator: 8
- singleEventExecutorPerGroup: true
- sni:
- enabled: false
- mod: k8s #manul
- defaultK8sSecretNamespace: shenyu-ingress
- defaultK8sSecretName: default-cert
- # mod: manual
- # certificates:
- # - domain: 'localhost'
- # keyCertChainFile:
'/Users/zhukunshuai/Desktop/cert/example.com+1.pem'
- # keyFile: '/Users/zhukunshuai/Desktop/cert/example.com+1-key.pem'
- # - domain: 'example.com'
- # keyCertChainFile:
'/Users/zhukunshuai/Desktop/cert/example.com+1.pem'
- # keyFile: '/Users/zhukunshuai/Desktop/cert/example.com+1-key.pem'
- # httpclient:
- # strategy: netty # webClient
- # connectTimeout: 45000
- # responseTimeout: 3000
- # readerIdleTime: 3000
- # writerIdleTime: 3000
- # allIdleTime: 3000
- # readTimeout: 3000
- # writeTimeout: 3000
- # wiretap: false
- # keepAlive: false
- # maxInMemorySize: 1 #1mb
- # pool:
- # type: ELASTIC
- # name: proxy
- # maxConnections: 16
- # acquireTimeout: 45000
- # maxIdleTime: 3000
- # proxy:
- # host:
- # port:
- # username:
- # password:
- # nonProxyHostsPattern:
- # ssl:
- # useInsecureTrustManager: true
- # keyStoreType: PKCS12
- # keyStorePath: classpath:keystore.p12
- # keyStorePassword: 123456
- # keyStoreProvider:
- # keyPassword: 123456
- # trustedX509Certificates:
- # handshakeTimeout:
- # closeNotifyFlushTimeout:
- # closeNotifyReadTimeout:
- # defaultConfigurationType:
- # threadPool:
- # prefix: shenyu
- # selectCount: 1
- # workerCount: 8
- # daemon: true
- register:
- enabled: false
- registerType: zookeeper #etcd #consul
- serverLists: localhost:2181 #http://localhost:2379 #localhost:8848
- props:
- cross:
- enabled: true
- allowedHeaders:
- allowedMethods: "*"
- allowedAnyOrigin: true # the same of Access-Control-Allow-Origin: "*"
- # allowedOrigin:
- # format : schema://prefix spacer domain
- # Access-Control-Allow-Origin: "http://a.apache.org,http://b.apache.org"
- # spacer: "."
- # domain: apache.org
- # prefixes:
- # - a # a.apache.org
- # - b # b.apache.org
- # origins:
- # - c.apache.org
- # - d.apache.org
- # - http://e.apache.org
- # originRegex: ^http(|s)://(.*\.|)abc.com$
- allowedExpose: ""
- maxAge: "18000"
- allowCredentials: true
-
- switchConfig:
- local: true
- collapseSlashes: false
- file:
- enabled: true
- maxSize : 10
- sync:
- websocket:
- urls: ws://localhost:9095/websocket
- allowOrigin: ws://localhost:9195
- # apollo:
- # appId: shenyu
- # meta: http://localhost:8080
- # env: dev
- # clusterName: test
- # namespace: application
- # zookeeper:
- # url: localhost:2181
- # sessionTimeout: 5000
- # connectionTimeout: 2000
- # http:
- # url: http://localhost:9095
- # username:
- # password:
- # nacos:
- # url: localhost:8848
- # namespace: 1c10d748-af86-43b9-8265-75f487d20c6c
- # username:
- # password:
- # acm:
- # enabled: false
- # endpoint: acm.aliyun.com
- # namespace:
- # accessKey:
- # secretKey:
- # etcd:
- # url: http://localhost:2379
- # consul:
- # url: http://localhost:8500
- # waitTime: 1000
- # watchDelay: 1000
- exclude:
- enabled: false
- paths:
- - /favicon.ico
- fallback:
- enabled: false
- paths:
- - /fallback/hystrix
- - /fallback/resilience4j
- - /fallback/sentinel
- health:
- enabled: true
- paths:
- - /actuator
- - /health_check
- alert:
- enabled: true
- admins: localhost:9095
- extPlugin:
- path:
- enabled: true
- threads: 1
- scheduleTime: 300
- scheduleDelay: 30
- scheduler:
- enabled: false
- type: fixed
- threads: 16
- upstreamCheck:
- enabled: false
- poolSize: 10
- timeout: 3000
- healthyThreshold: 1
- unhealthyThreshold: 1
- interval: 5000
- printEnabled: true
- printInterval: 60000
- springCloudCache:
- enabled: false
- ribbon:
- serverListRefreshInterval: 10000
- metrics:
- enabled: false
- name : prometheus
- host: 127.0.0.1
- port: 8090
- jmxConfig:
- props:
- jvm_enabled: true
- # plugins:
- # rate-limiter.enabled: false
- local:
- enabled: false
- sha512Key:
"BA3253876AED6BC22D4A6FF53D8406C6AD864195ED144AB5C87621B6C233B548BAEAE6956DF346EC8C17F5EA10F35EE3CBC514797ED7DDD3145464E2A0BAB413"
-# sharedPool:
-# enable: true
-# prefix: "shenyu-shared"
-# corePoolSize: 200
-# maximumPoolSize: 2000
-# keepAliveTime: 60000
-# # 1GB
-# maxWorkQueueMemory: 1073741824
-# # 256MB
-# maxFreeMemory: 268435456
-
-logging:
- level:
- root: info
- org.springframework.boot: info
- org.apache.ibatis: info
- org.apache.shenyu.bonuspoint: info
- org.apache.shenyu.lottery: info
- org.apache.shenyu: info
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-grpc/src/test/resources/docker-compose.mysql.yml
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-grpc/src/test/resources/docker-compose.mysql.yml
deleted file mode 100644
index 8f64ce68cd..0000000000
---
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-grpc/src/test/resources/docker-compose.mysql.yml
+++ /dev/null
@@ -1,144 +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.
-#
-
-version: '2.3'
-
-services:
- zookeeper:
- image: zookeeper:3.8.0
- restart: always
- expose:
- - 2181
- healthcheck:
- test: ["CMD-SHELL", "echo srvr | nc localhost 2181"]
- interval: 10s
- timeout: 5s
- retries: 3
- start_period: 40s
-
- nacos:
- image: nacos/nacos-server:v2.2.3
- environment:
- - TZ=Asia/Shanghai
- - MODE=standalone
- expose:
- - 8848
- - 9848
- - 9849
- healthcheck:
- test: ["CMD", "curl", "-f",
"http://localhost:8848/nacos/actuator/health"]
- interval: 10s
- timeout: 5s
- retries: 3
- start_period: 30s
-
- etcd:
- image: bitnami/etcd:3.5
- environment:
- - TZ=Asia/Shanghai
- - ALLOW_NONE_AUTHENTICATION=yes
- - ETCD_ADVERTISE_CLIENT_URLS=http://etcd:2379
- expose:
- - 2379
- - 2380
- healthcheck:
- test: [ "CMD", "etcdctl", "endpoint", "health" ]
- interval: 10s
- timeout: 5s
- retries: 3
- start_period: 30s
-
- admin:
- image: shenyu/admin:latest
- expose:
- - 9095
- ports:
- - "9095:9095"
- depends_on:
- zookeeper:
- condition: service_healthy
- nacos:
- condition: service_healthy
- mysql:
- condition: service_healthy
- etcd:
- condition: service_healthy
- volumes:
- -
../../target/test-classes/admin-application.yml:/opt/shenyu-admin/conf/application.yml
- -
/tmp/shenyu-e2e/mysql/mysql-connector.jar:/opt/shenyu-admin/ext-lib/mysql-connector.jar
- environment:
- - SPRING_PROFILES_ACTIVE=mysql
- - spring.datasource.username=shenyue2e
- - spring.datasource.password=123456
- -
spring.datasource.url=jdbc:mysql://mysql:3306/shenyu?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull
- healthcheck:
- test: [ "CMD-SHELL", "wget -q -O - http://admin:9095/actuator/health |
grep UP || exit 1" ]
- timeout: 2s
- retries: 3
- start_period: 10s
-
- grpc:
- image: shenyu-examples-grpc:latest
- restart: always
- environment:
- - shenyu.register.serverLists=http://admin:9095
- healthcheck:
- test: ["CMD", "nc", "-z", "localhost", "55290"]
- timeout: 2s
- retries: 3
- start_period: 10s
- expose:
- - 55290
- - 8080
- ports:
- - "55290:55290"
- - "8080:8080"
- depends_on:
- gateway:
- condition: service_healthy
-
- gateway:
- image: shenyu/bootstrap:latest
- expose:
- - 9195
- ports:
- - "9195:9195"
- depends_on:
- admin:
- condition: service_healthy
- volumes:
- -
../../target/test-classes/bootstrap-application.yml:/opt/shenyu-bootstrap/conf/application.yml
- healthcheck:
- test: [ "CMD", "wget", "-q", "-O", "-",
"http://gateway:9195/actuator/health" ]
- timeout: 2s
- retries: 3
- start_period: 5s
-
- mysql:
- image: mysql:8
- environment:
- - MYSQL_ROOT_PASSWORD=123123
- - MYSQL_USER=shenyue2e
- - MYSQL_PASSWORD=123456
- healthcheck:
- test: "/usr/bin/mysql --user=root --password=123123 --execute \"SHOW
DATABASES;\""
- interval: 2s
- timeout: 20s
- retries: 10
- start_period: 60s
- volumes:
- - /tmp/shenyu-e2e/mysql/schema.sql:/docker-entrypoint-initdb.d/schema.sql
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-websocket/k8s/script/e2e-websocket-sync.sh
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/script/e2e-http-sync.sh
similarity index 81%
copy from
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-websocket/k8s/script/e2e-websocket-sync.sh
copy to
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/script/e2e-http-sync.sh
index 5d96dd4883..3c20a2c70a 100644
---
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-websocket/k8s/script/e2e-websocket-sync.sh
+++
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/script/e2e-http-sync.sh
@@ -16,7 +16,7 @@
# limitations under the License.
#
-docker save shenyu-example-spring-native-websocket:latest | sudo k3s ctr
images import -
+docker save shenyu-examples-http:latest | sudo k3s ctr images import -
# init kubernetes for mysql
SHENYU_TESTCASE_DIR=$(dirname "$(dirname "$(dirname "$(dirname "$0")")")")
@@ -25,7 +25,6 @@ bash
"${SHENYU_TESTCASE_DIR}"/k8s/script/storage/storage_init_mysql.sh
# init register center
CUR_PATH=$(readlink -f "$(dirname "$0")")
PRGDIR=$(dirname "$CUR_PATH")
-echo "$PRGDIR"
kubectl apply -f "${SHENYU_TESTCASE_DIR}"/k8s/sync/shenyu-cm.yml
# init shenyu sync
@@ -36,24 +35,25 @@ for sync in ${SYNC_ARRAY[@]}; do
echo -e "------------------\n"
kubectl apply -f "$SHENYU_TESTCASE_DIR"/k8s/shenyu-mysql.yml
sleep 30s
- echo "[Start ${sync} synchronous] create shenyu-admin-${sync}.yml
shenyu-bootstrap-${sync}.yml shenyu-examples-websocket.yml"
+ echo "[Start ${sync} synchronous] create shenyu-admin-${sync}.yml
shenyu-bootstrap-${sync}.yml shenyu-examples-springcloud.yml"
# shellcheck disable=SC2199
# shellcheck disable=SC2076
+ # shellcheck disable=SC2154
if [[ "${MIDDLEWARE_SYNC_ARRAY[@]}" =~ "${sync}" ]]; then
kubectl apply -f "${SHENYU_TESTCASE_DIR}"/k8s/shenyu-"${sync}".yml
sleep 10s
fi
kubectl apply -f "${SHENYU_TESTCASE_DIR}"/k8s/sync/shenyu-admin-"${sync}".yml
- sh "${CUR_PATH}"/healthcheck.sh http://localhost:31095/actuator/health
+ sh "$SHENYU_TESTCASE_DIR"/k8s/script/healthcheck.sh
http://localhost:31095/actuator/health
kubectl apply -f
"${SHENYU_TESTCASE_DIR}"/k8s/sync/shenyu-bootstrap-"${sync}".yml
- sh "${CUR_PATH}"/healthcheck.sh http://localhost:31195/actuator/health
- kubectl apply -f "${PRGDIR}"/shenyu-examples-websocket.yml
- sh "${CUR_PATH}"/healthcheck.sh http://localhost:31191/actuator/health
+ sh "$SHENYU_TESTCASE_DIR"/k8s/script/healthcheck.sh
http://localhost:31195/actuator/health
+ kubectl apply -f "${PRGDIR}"/shenyu-examples-http.yml
+ sh "$SHENYU_TESTCASE_DIR"/k8s/script/healthcheck.sh
http://localhost:31189/actuator/health
sleep 10s
kubectl get pod -o wide
## run e2e-test
- ./mvnw -B -f ./shenyu-e2e/pom.xml -pl
shenyu-e2e-case/shenyu-e2e-case-websocket -am test
+ ./mvnw -B -f ./shenyu-e2e/pom.xml -pl shenyu-e2e-case/shenyu-e2e-case-http
-am test
# shellcheck disable=SC2181
if (($?)); then
echo "${sync}-sync-e2e-test failed"
@@ -68,11 +68,11 @@ for sync in ${SYNC_ARRAY[@]}; do
kubectl delete -f "${SHENYU_TESTCASE_DIR}"/k8s/shenyu-mysql.yml
kubectl delete -f
"${SHENYU_TESTCASE_DIR}"/k8s/sync/shenyu-admin-"${sync}".yml
kubectl delete -f
"${SHENYU_TESTCASE_DIR}"/k8s/sync/shenyu-bootstrap-"${sync}".yml
- kubectl delete -f "${PRGDIR}"/shenyu-examples-websocket.yml
+ kubectl delete -f "${PRGDIR}"/shenyu-examples-http.yml
# shellcheck disable=SC2199
# shellcheck disable=SC2076
if [[ "${MIDDLEWARE_SYNC_ARRAY[@]}" =~ "${sync}" ]]; then
kubectl delete -f "${SHENYU_TESTCASE_DIR}"/k8s/shenyu-"${sync}".yml
fi
- echo "[Remove ${sync} synchronous] delete shenyu-admin-${sync}.yml
shenyu-bootstrap-${sync}.yml shenyu-examples-websocket.yml"
+ echo "[Remove ${sync} synchronous] delete shenyu-admin-${sync}.yml
shenyu-bootstrap-${sync}.yml shenyu-examples-springcloud.yml"
done
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/shenyu-examples-http.yml
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/shenyu-examples-http.yml
new file mode 100644
index 0000000000..c96ceea19c
--- /dev/null
+++
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/shenyu-examples-http.yml
@@ -0,0 +1,70 @@
+# 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.
+
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: shenyu-examples-http
+ labels:
+ app: shenyu-examples-http
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: shenyu-examples-http
+ strategy: {}
+ template:
+ metadata:
+ labels:
+ app: shenyu-examples-http
+ spec:
+ containers:
+ - image: shenyu-examples-http
+ name: shenyu-examples-http
+ livenessProbe:
+ exec:
+ command:
+ - wget -q -O - http://localhost:8189/actuator/health | grep UP
|| exit 1
+ initialDelaySeconds: 10
+ failureThreshold: 3
+ timeoutSeconds: 2
+ env:
+ - name: shenyu.register.serverLists
+ value: http://shenyu-admin:9095
+ ports:
+ - containerPort: 8189
+ imagePullPolicy: IfNotPresent
+ restartPolicy: Always
+status: {}
+
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: shenyu-examples-http
+ labels:
+ app: shenyu-examples-http
+spec:
+ selector:
+ app: shenyu-examples-http
+ type: NodePort
+ ports:
+ - name: "8189"
+ port: 8189
+ targetPort: 8189
+ nodePort: 31189
+status:
+ loadBalancer: {}
diff --git a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/pom.xml
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/pom.xml
index 911ac61b83..f326c86009 100644
--- a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/pom.xml
+++ b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/pom.xml
@@ -15,16 +15,14 @@
~ 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
https://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
+<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">
<parent>
<groupId>org.apache.shenyu</groupId>
<artifactId>shenyu-e2e-case</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
-
+ <modelVersion>4.0.0</modelVersion>
<artifactId>shenyu-e2e-case-http</artifactId>
-
</project>
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/java/org/apache/shenyu/e2e/testcase/http/DataSynTest.java
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/java/org/apache/shenyu/e2e/testcase/http/DataSynTest.java
new file mode 100644
index 0000000000..14bf9da4f2
--- /dev/null
+++
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/java/org/apache/shenyu/e2e/testcase/http/DataSynTest.java
@@ -0,0 +1,59 @@
+/*
+ * 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.shenyu.e2e.testcase.http;
+
+import org.apache.shenyu.e2e.client.WaitDataSync;
+import org.apache.shenyu.e2e.client.admin.AdminClient;
+import org.apache.shenyu.e2e.client.gateway.GatewayClient;
+import org.apache.shenyu.e2e.engine.annotation.ShenYuTest;
+import org.apache.shenyu.e2e.enums.ServiceTypeEnum;
+import org.junit.jupiter.api.Test;
+
+/**
+ * Testing the correctness of etcd data synchronization method.
+ */
+@ShenYuTest(environments = {
+ @ShenYuTest.Environment(
+ serviceName = "shenyu-e2e-admin",
+ service = @ShenYuTest.ServiceConfigure(moduleName =
"shenyu-e2e",
+ baseUrl = "http://localhost:31095",
+ type = ServiceTypeEnum.SHENYU_ADMIN,
+ parameters = {
+ @ShenYuTest.Parameter(key = "username", value
= "admin"),
+ @ShenYuTest.Parameter(key = "password", value
= "123456")
+ }
+ )
+ ),
+ @ShenYuTest.Environment(
+ serviceName = "shenyu-e2e-gateway",
+ service = @ShenYuTest.ServiceConfigure(moduleName =
"shenyu-e2e",
+ baseUrl = "http://localhost:31195",
+ type = ServiceTypeEnum.SHENYU_GATEWAY
+ )
+ )
+})
+public class DataSynTest {
+
+ @Test
+ void testDataSyn(final AdminClient adminClient, final GatewayClient
gatewayClient) throws Exception {
+ adminClient.login();
+
WaitDataSync.waitAdmin2GatewayDataSyncEquals(adminClient::listAllSelectors,
gatewayClient::getSelectorCache, adminClient);
+
WaitDataSync.waitAdmin2GatewayDataSyncEquals(adminClient::listAllMetaData,
gatewayClient::getMetaDataCache, adminClient);
+
WaitDataSync.waitAdmin2GatewayDataSyncEquals(adminClient::listAllRules,
gatewayClient::getRuleCache, adminClient);
+ }
+}
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/java/org/apache/shenyu/e2e/testcase/http/DividePluginCases.java
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/java/org/apache/shenyu/e2e/testcase/http/DividePluginCases.java
new file mode 100644
index 0000000000..25b469bdda
--- /dev/null
+++
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/java/org/apache/shenyu/e2e/testcase/http/DividePluginCases.java
@@ -0,0 +1,49 @@
+/*
+ * 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.shenyu.e2e.testcase.http;
+
+import com.google.common.collect.Lists;
+import org.apache.shenyu.e2e.engine.scenario.ShenYuScenarioProvider;
+import org.apache.shenyu.e2e.engine.scenario.specification.ScenarioSpec;
+import
org.apache.shenyu.e2e.engine.scenario.specification.ShenYuBeforeEachSpec;
+import org.apache.shenyu.e2e.engine.scenario.specification.ShenYuCaseSpec;
+import org.apache.shenyu.e2e.engine.scenario.specification.ShenYuScenarioSpec;
+
+import java.util.List;
+import static
org.apache.shenyu.e2e.engine.scenario.function.HttpCheckers.exists;
+
+public class DividePluginCases implements ShenYuScenarioProvider {
+ @Override
+ public List<ScenarioSpec> get() {
+ return Lists.newArrayList(
+ testDivideHello()
+ );
+ }
+
+ private ShenYuScenarioSpec testDivideHello() {
+ return ShenYuScenarioSpec.builder()
+ .name("http client hello")
+ .beforeEachSpec(ShenYuBeforeEachSpec.builder()
+ .checker(exists("/http/order/findById?id=123"))
+ .build())
+ .caseSpec(ShenYuCaseSpec.builder()
+ .addExists("/http/order/findById?id=123")
+ .build())
+ .build();
+ }
+}
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/java/org/apache/shenyu/e2e/testcase/divide/DividePluginTest.java
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/java/org/apache/shenyu/e2e/testcase/http/DividePluginTest.java
similarity index 56%
copy from
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/java/org/apache/shenyu/e2e/testcase/divide/DividePluginTest.java
copy to
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/java/org/apache/shenyu/e2e/testcase/http/DividePluginTest.java
index 766b822f22..8d810e8da6 100644
---
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/java/org/apache/shenyu/e2e/testcase/divide/DividePluginTest.java
+++
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/java/org/apache/shenyu/e2e/testcase/http/DividePluginTest.java
@@ -15,26 +15,16 @@
* limitations under the License.
*/
-package org.apache.shenyu.e2e.testcase.divide;
+package org.apache.shenyu.e2e.testcase.http;
-import com.google.common.collect.Lists;
+import org.apache.shenyu.e2e.client.WaitDataSync;
import org.apache.shenyu.e2e.client.admin.AdminClient;
import org.apache.shenyu.e2e.client.gateway.GatewayClient;
import org.apache.shenyu.e2e.engine.annotation.ShenYuScenario;
-import org.apache.shenyu.e2e.engine.scenario.specification.AfterEachSpec;
-import org.apache.shenyu.e2e.engine.scenario.specification.BeforeEachSpec;
+import org.apache.shenyu.e2e.engine.annotation.ShenYuTest;
import org.apache.shenyu.e2e.engine.scenario.specification.CaseSpec;
import org.apache.shenyu.e2e.enums.ServiceTypeEnum;
-import org.apache.shenyu.e2e.engine.annotation.ShenYuTest;
-import org.apache.shenyu.e2e.model.ResourcesData;
-import org.apache.shenyu.e2e.model.ResourcesData.Resource;
-import org.apache.shenyu.e2e.model.response.SelectorDTO;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.BeforeEach;
-
-import java.util.List;
@ShenYuTest(environments = {
@ShenYuTest.Environment(
@@ -56,48 +46,18 @@ import java.util.List;
)
)
})
-
public class DividePluginTest {
- private List<String> selectorIds = Lists.newArrayList();
@BeforeAll
- void setup(final AdminClient client) {
- client.login();
- client.deleteAllSelectors();
- }
-
- @BeforeEach
- void before(final AdminClient client, final GatewayClient gateway, final
BeforeEachSpec spec) {
- spec.getChecker().check(gateway);
-
- ResourcesData resources = spec.getResources();
- for (Resource res : resources.getResources()) {
- SelectorDTO dto = client.create(res.getSelector());
- selectorIds.add(dto.getId());
- res.getRules().forEach(rule -> {
- rule.setSelectorId(dto.getId());
- client.create(rule);
- });
- }
-
- spec.getWaiting().waitFor(gateway);
- }
-
- @AfterEach
- void after(final AdminClient client, final GatewayClient gateway, final
AfterEachSpec spec) {
- spec.getDeleter().delete(client, selectorIds);
- spec.deleteWaiting().waitFor(gateway);
- selectorIds = Lists.newArrayList();
+ void setup(final AdminClient adminClient, final GatewayClient
gatewayClient) throws Exception {
+ adminClient.login();
+
WaitDataSync.waitAdmin2GatewayDataSyncEquals(adminClient::listAllSelectors,
gatewayClient::getSelectorCache, adminClient);
+
WaitDataSync.waitAdmin2GatewayDataSyncEquals(adminClient::listAllMetaData,
gatewayClient::getMetaDataCache, adminClient);
+
WaitDataSync.waitAdmin2GatewayDataSyncEquals(adminClient::listAllRules,
gatewayClient::getRuleCache, adminClient);
}
- @ShenYuScenario(provider =
org.apache.shenyu.e2e.testcase.divide.DividePluginCases.class)
+ @ShenYuScenario(provider = DividePluginCases.class)
void testDivide(final GatewayClient gateway, final CaseSpec spec) {
spec.getVerifiers().forEach(verifier ->
verifier.verify(gateway.getHttpRequesterSupplier().get()));
}
-
- @AfterAll
- static void teardown(final AdminClient client) {
- client.deleteAllSelectors();
- }
-
}
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/resources/docker-compose.h2.yml
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/resources/docker-compose.h2.yml
deleted file mode 100644
index bc7bcb1182..0000000000
---
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/resources/docker-compose.h2.yml
+++ /dev/null
@@ -1,36 +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.
-#
-
-version: '2.3'
-
-services:
- admin:
- image: shenyu/admin:latest
- expose:
- - 9095
-
- gateway:
- image: shenyu/bootstrap:latest
- environment:
- - shenyu.sync.websocket.urls=ws://admin:9095/websocket
- expose:
- - 9095
-
- httpbin:
- image: kennethreitz/httpbin:latest
- expose:
- - 80
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/resources/docker-compose.mysql.yml
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/resources/docker-compose.mysql.yml
deleted file mode 100644
index 6a94925235..0000000000
---
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/resources/docker-compose.mysql.yml
+++ /dev/null
@@ -1,60 +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.
-#
-
-version: '2.3'
-
-services:
- admin:
- image: shenyu/admin:latest
- expose:
- - 9095
- volumes:
- -
/tmp/shenyu-e2e/mysql/mysql-connector.jar:/opt/shenyu-admin/ext-lib/mysql-connector.jar
- environment:
- - SPRING_PROFILES_ACTIVE=mysql
- - spring.datasource.username=shenyue2e
- - spring.datasource.password=123456
- -
spring.datasource.url=jdbc:mysql://mysql:3306/shenyu?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull
- depends_on:
- mysql:
- condition: service_healthy
-
- gateway:
- image: shenyu/bootstrap:latest
- environment:
- - shenyu.sync.websocket.urls=ws://admin:9095/websocket
- expose:
- - 9095
-
- httpbin:
- image: kennethreitz/httpbin:latest
- expose:
- - 80
-
- mysql:
- image: mysql:8
- volumes:
- - /tmp/shenyu-e2e/mysql/schema.sql:/docker-entrypoint-initdb.d/schema.sql
- environment:
- - MYSQL_ROOT_PASSWORD=123123
- - MYSQL_USER=shenyue2e
- - MYSQL_PASSWORD=123456
- healthcheck:
- test: "/usr/bin/mysql --user=root --password=123123 --execute \"SHOW
DATABASES;\""
- interval: 2s
- timeout: 20s
- retries: 10
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/resources/docker-compose.postgres.yml
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/resources/docker-compose.postgres.yml
deleted file mode 100644
index 5b122152d8..0000000000
---
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/resources/docker-compose.postgres.yml
+++ /dev/null
@@ -1,62 +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.
-#
-
-version: '2.3'
-
-services:
- admin:
- image: shenyu/admin:latest
- expose:
- - 9095
- volumes:
- -
/tmp/shenyu-e2e/pg/postgresql.jar:/opt/shenyu-admin/ext-lib/postgresql.jar
- environment:
- - SPRING_PROFILES_ACTIVE=pg
- - spring.datasource.username=shenyue2e
- - spring.datasource.password=123456
- -
spring.datasource.url=jdbc:postgresql://postgres:5432/shenyu?useUnicode=true&characterEncoding=utf-8&useSSL=false
- depends_on:
- postgres:
- condition: service_healthy
-
- gateway:
- image: shenyu/bootstrap:latest
- environment:
- - shenyu.sync.websocket.urls=ws://admin:9095/websocket
- expose:
- - 9095
-
- httpbin:
- image: kennethreitz/httpbin:latest
- expose:
- - 80
-
- postgres:
- image: postgres:14
- expose:
- - 5432
- environment:
- - POSTGRES_USER=shenyue2e
- - POSTGRES_PASSWORD=123456
- - POSTGRES_DB=shenyu
- volumes:
- -
/tmp/shenyu-e2e/pg/create-table.sql:/docker-entrypoint-initdb.d/initdb.sql
- healthcheck:
- test: [CMD, bash, -c, cat < /dev/null > /dev/tcp/127.0.0.1/5432]
- interval: 5s
- timeout: 60s
- retries: 120
\ No newline at end of file
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/resources/docker-compose.test.yml
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/resources/docker-compose.test.yml
deleted file mode 100644
index a94ca4a904..0000000000
---
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/resources/docker-compose.test.yml
+++ /dev/null
@@ -1,64 +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.
-#
-
-version: '2.3'
-
-services:
- admin:
- image: shenyu/admin:latest
- expose:
- - 9095
- ports:
- - 9095:9095
- volumes:
- -
/tmp/shenyu-e2e/mysql/mysql-connector.jar:/opt/shenyu-admin/ext-lib/mysql-connector.jar
- environment:
- - SPRING_PROFILES_ACTIVE=mysql
- - spring.datasource.username=shenyue2e
- - spring.datasource.password=123456
- -
spring.datasource.url=jdbc:mysql://mysql:3306/shenyu?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull
- depends_on:
- mysql:
- condition: service_healthy
-
- gateway:
- image: shenyu/bootstrap:latest
- environment:
- - shenyu.sync.websocket.urls=ws://admin:9095/websocket
- expose:
- - 9095
- ports:
- - 9195:9195
-
- httpbin:
- image: kennethreitz/httpbin:latest
- expose:
- - 80
-
- mysql:
- image: mysql:8
- volumes:
- - /tmp/shenyu-e2e/mysql/schema.sql:/docker-entrypoint-initdb.d/schema.sql
- environment:
- - MYSQL_ROOT_PASSWORD=123123
- - MYSQL_USER=shenyue2e
- - MYSQL_PASSWORD=123456
- healthcheck:
- test: "/usr/bin/mysql --user=root --password=123123 --execute \"SHOW
DATABASES;\""
- interval: 2s
- timeout: 20s
- retries: 10
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-spring-cloud/k8s/script/e2e-springcloud-sync.sh
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-spring-cloud/k8s/script/e2e-springcloud-sync.sh
index ad21845e8b..c8d1a7b37d 100644
---
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-spring-cloud/k8s/script/e2e-springcloud-sync.sh
+++
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-spring-cloud/k8s/script/e2e-springcloud-sync.sh
@@ -45,12 +45,12 @@ for sync in ${SYNC_ARRAY[@]}; do
sleep 10s
fi
kubectl apply -f "${SHENYU_TESTCASE_DIR}"/k8s/sync/shenyu-admin-"${sync}".yml
- sh "${CUR_PATH}"/healthcheck.sh http://localhost:31095/actuator/health
- sh "${CUR_PATH}"/healthcheck.sh http://localhost:30761/actuator/health
+ sh "$SHENYU_TESTCASE_DIR"/k8s/script/healthcheck.sh
http://localhost:31095/actuator/health
+ sh "$SHENYU_TESTCASE_DIR"/k8s/script/healthcheck.sh
http://localhost:30761/actuator/health
kubectl apply -f
"${SHENYU_TESTCASE_DIR}"/k8s/sync/shenyu-bootstrap-"${sync}".yml
- sh "${CUR_PATH}"/healthcheck.sh http://localhost:31195/actuator/health
+ sh "$SHENYU_TESTCASE_DIR"/k8s/script/healthcheck.sh
http://localhost:31195/actuator/health
kubectl apply -f "${PRGDIR}"/shenyu-examples-springcloud.yml
- sh "${CUR_PATH}"/healthcheck.sh http://localhost:30884/actuator/health
+ sh "$SHENYU_TESTCASE_DIR"/k8s/script/healthcheck.sh
http://localhost:30884/actuator/health
sleep 10s
kubectl get pod -o wide
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-spring-cloud/k8s/script/healthcheck.sh
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-spring-cloud/k8s/script/healthcheck.sh
deleted file mode 100644
index 1159a0f417..0000000000
---
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-spring-cloud/k8s/script/healthcheck.sh
+++ /dev/null
@@ -1,39 +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.
-#
-
-for loop in $(seq 1 30); do
- status=$(curl -s -o /dev/null -w %{http_code} -X GET "${1}" -H "accept: */*")
- echo -e "${loop} curl ${1} response $status"
- if [ "$status" -eq 200 ]; then
- break
- fi
- sleep 2s
-done
-
-status=$(curl -s -o /dev/null -w "%{http_code}" -X GET "${1}" -H "accept: */*")
-
-if [ "$status" -eq 200 ]; then
- echo -e "\n-------------------"
- echo -e "Success to ${1} send request: $status"
- echo -e "\n-------------------"
- exit 0
-fi
-echo -e "\n-------------------"
-echo -e "Failed to send request from shenyu-admin : $status"
-echo -e "\n-------------------"
-exit 1
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-spring-cloud/src/test/resources/admin-application.yml
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-spring-cloud/src/test/resources/admin-application.yml
deleted file mode 100755
index 146a1b43cd..0000000000
---
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-spring-cloud/src/test/resources/admin-application.yml
+++ /dev/null
@@ -1,123 +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.
-
-server:
- port: 9095
- address: 0.0.0.0
-
-spring:
- profiles:
- active: h2
- thymeleaf:
- cache: true
- encoding: utf-8
- enabled: true
- prefix: classpath:/static/
- suffix: .html
- mvc:
- pathmatch:
- matching-strategy: ant_path_matcher
- jackson:
- time-zone: GMT+8 # GMT , Asia/Shanghai
- messages:
- basename: message/i18n
-
-management:
- health:
- mail:
- enabled: off
- endpoints:
- web:
- exposure:
- include:
- - 'health'
- - 'prometheus'
- enabled-by-default: true
-
-mybatis:
- config-location: classpath:/mybatis/mybatis-config.xml
- mapper-locations: classpath:/mappers/*.xml
-
-shenyu:
- register:
- registerType: http #http #zookeeper #etcd #nacos #consul
- serverLists: #localhost:2181 #http://localhost:2379 #localhost:8848
- props:
- sessionTimeout: 5000
- connectionTimeout: 2000
- checked: true
- zombieCheckThreads: 10
- zombieCheckTimes: 5
- scheduledTime: 10
- nacosNameSpace: ShenyuRegisterCenter
- sync:
- websocket:
- enabled: true
- messageMaxSize: 10240
- allowOrigins: ws://localhost:9095;ws://localhost:9195;
- ldap:
- enabled: false
- url: ldap://xxxx:xxx
- bind-dn: cn=xxx,dc=xxx,dc=xxx
- password: xxxx
- base-dn: ou=xxx,dc=xxx,dc=xxx
- object-class: person
- login-field: cn
- jwt:
- expired-seconds: 86400000
- shiro:
- white-list:
- - /
- - /favicon.*
- - /static/**
- - /index**
- - /platform/login
- - /websocket
- - /error
- - /actuator/health
- - /actuator/health/** # /actuator/health/readiness
/actuator/health/liveness
- - /actuator/prometheus
- - /swagger-ui.html
- - /webjars/**
- - /swagger-resources/**
- - /v2/api-docs
- - /csrf
- - /alert/report
- swagger:
- enable: true
- dashboard:
- core:
- onlySuperAdminPermission:
- - system:manager:add
- - system:manager:edit
- - system:manager:delete
- - system:role:add
- - system:role:edit
- - system:role:delete
- - system:resource:addButton
- - system:resource:addMenu
- - system:resource:editButton
- - system:resource:editMenu
- - system:resource:deleteButton
- - system:resource:deleteMenu
-
-logging:
- level:
- root: info
- org.springframework.boot: info
- org.apache.ibatis: info
- org.apache.shenyu.bonuspoint: info
- org.apache.shenyu.lottery: info
- org.apache.shenyu: info
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-spring-cloud/src/test/resources/bootstrap-application.yml
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-spring-cloud/src/test/resources/bootstrap-application.yml
deleted file mode 100644
index 99f77eac1f..0000000000
---
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-spring-cloud/src/test/resources/bootstrap-application.yml
+++ /dev/null
@@ -1,203 +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.
-
-server:
- port: 9195
- address: 0.0.0.0
-
-spring:
- main:
- allow-bean-definition-overriding: true
- application:
- name: shenyu-bootstrap
- codec:
- max-in-memory-size: 2MB
- cloud:
- discovery:
- enabled: false
- nacos:
- discovery:
- server-addr: 127.0.0.1:8848 # Spring Cloud Alibaba Dubbo use this.
- enabled: false
- namespace: ShenyuRegisterCenter
-
-eureka:
- client:
- enabled: false
- serviceUrl:
- defaultZone: http://localhost:8761/eureka/
- instance:
- prefer-ip-address: true
-
-management:
- health:
- redis:
- enabled: false
- elasticsearch:
- enabled: false
- endpoint:
- health:
- enabled: true
- show-details: always
- endpoints:
- web:
- exposure:
- include: "*" # or health,info
-
-
-shenyu:
- selectorMatchCache:
- cache:
- enabled: false
- initialCapacity: 10000 # initial capacity in cache
- maximumSize: 10000 # max size in cache
- trie:
- enabled: false
- cacheSize: 128 # the number of plug-ins
- matchMode: antPathMatch
- ruleMatchCache:
- cache:
- enabled: true
- initialCapacity: 10000 # initial capacity in cache
- maximumSize: 65536 # max size in cache
- trie:
- enabled: false
- cacheSize: 1024 # the number of selectors
- matchMode: antPathMatch
- netty:
- http:
- webServerFactoryEnabled: true
- selectCount: 1
- workerCount: 8
- accessLog: false
- serverSocketChannel:
- soRcvBuf: 87380
- soBackLog: 128
- soReuseAddr: false
- connectTimeoutMillis: 10000
- writeBufferHighWaterMark: 65536
- writeBufferLowWaterMark: 32768
- writeSpinCount: 16
- autoRead: false
- allocType: "pooled"
- messageSizeEstimator: 8
- singleEventExecutorPerGroup: true
- socketChannel:
- soKeepAlive: false
- soReuseAddr: false
- soLinger: -1
- tcpNoDelay: true
- soRcvBuf: 87380
- soSndBuf: 16384
- ipTos: 0
- allowHalfClosure: false
- connectTimeoutMillis: 10000
- writeBufferHighWaterMark: 65536
- writeBufferLowWaterMark: 32768
- writeSpinCount: 16
- autoRead: false
- allocType: "pooled"
- messageSizeEstimator: 8
- singleEventExecutorPerGroup: true
- sni:
- enabled: false
- mod: k8s #manul
- defaultK8sSecretNamespace: shenyu-ingress
- defaultK8sSecretName: default-cert
- register:
- enabled: false
- registerType: zookeeper #etcd #consul
- serverLists: localhost:2181 #http://localhost:2379 #localhost:8848
- props:
- cross:
- enabled: true
- allowedHeaders:
- allowedMethods: "*"
- allowedAnyOrigin: true # the same of Access-Control-Allow-Origin: "*"
- allowedExpose: ""
- maxAge: "18000"
- allowCredentials: true
-
- switchConfig:
- local: true
- collapseSlashes: false
- file:
- enabled: true
- maxSize : 10
- sync:
- websocket:
- urls: ws://localhost:9095/websocket
- allowOrigin: ws://localhost:9195
- exclude:
- enabled: false
- paths:
- - /favicon.ico
- fallback:
- enabled: false
- paths:
- - /fallback/hystrix
- - /fallback/resilience4j
- - /fallback/sentinel
- health:
- enabled: true
- paths:
- - /actuator
- - /health_check
- alert:
- enabled: true
- admins: localhost:9095
- extPlugin:
- path:
- enabled: true
- threads: 1
- scheduleTime: 300
- scheduleDelay: 30
- scheduler:
- enabled: false
- type: fixed
- threads: 16
- upstreamCheck:
- enabled: false
- poolSize: 10
- timeout: 3000
- healthyThreshold: 1
- unhealthyThreshold: 1
- interval: 5000
- printEnabled: true
- printInterval: 60000
- springCloudCache:
- enabled: false
- ribbon:
- serverListRefreshInterval: 10000
- metrics:
- enabled: false
- name : prometheus
- host: 127.0.0.1
- port: 8090
- jmxConfig:
- props:
- jvm_enabled: true
- local:
- enabled: false
- sha512Key:
"BA3253876AED6BC22D4A6FF53D8406C6AD864195ED144AB5C87621B6C233B548BAEAE6956DF346EC8C17F5EA10F35EE3CBC514797ED7DDD3145464E2A0BAB413"
-
-logging:
- level:
- root: info
- org.springframework.boot: info
- org.apache.ibatis: info
- org.apache.shenyu.bonuspoint: info
- org.apache.shenyu.lottery: info
- org.apache.shenyu: info
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-spring-cloud/src/test/resources/docker-compose.mysql.yml
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-spring-cloud/src/test/resources/docker-compose.mysql.yml
deleted file mode 100644
index 0985381376..0000000000
---
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-spring-cloud/src/test/resources/docker-compose.mysql.yml
+++ /dev/null
@@ -1,154 +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.
-#
-
-version: '2.3'
-
-services:
- zookeeper:
- image: zookeeper:3.8.0
- restart: always
- expose:
- - 2181
- healthcheck:
- test: ["CMD-SHELL", "echo srvr | nc localhost 2181"]
- interval: 10s
- timeout: 5s
- retries: 3
- start_period: 30s
-
- nacos:
- image: nacos/nacos-server:v2.2.3
- environment:
- - TZ=Asia/Shanghai
- - MODE=standalone
- expose:
- -
- - 8848
- - 9848
- - 9849
- healthcheck:
- test: ["CMD", "curl", "-f",
"http://localhost:8848/nacos/actuator/health"]
- interval: 10s
- timeout: 5s
- retries: 3
- start_period: 30s
-
- eureka:
- image: shenyu-examples-eureka:latest
- restart: always
- expose:
- - 8761
- ports:
- - "8761:8761"
- healthcheck:
- test: [ "CMD-SHELL", "wget -q -O - http://eureka:8761/actuator/health |
grep UP || exit 1" ]
- timeout: 5s
- retries: 5
- start_period: 60s
-
- etcd:
- image: bitnami/etcd:3.5
- environment:
- - TZ=Asia/Shanghai
- - ALLOW_NONE_AUTHENTICATION=yes
- - ETCD_ADVERTISE_CLIENT_URLS=http://etcd:2379
- expose:
- - 2379
- - 2380
- healthcheck:
- test: [ "CMD", "etcdctl", "endpoint", "health" ]
- interval: 10s
- timeout: 5s
- retries: 3
- start_period: 30s
-
- admin:
- image: shenyu/admin:latest
- expose:
- - 9095
- ports:
- - "9095:9095"
- environment:
- - SPRING_PROFILES_ACTIVE=mysql
- - spring.datasource.username=shenyue2e
- - spring.datasource.password=123456
- -
spring.datasource.url=jdbc:mysql://mysql:3306/shenyu?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull
- healthcheck:
- test: [ "CMD-SHELL", "wget -q -O - http://admin:9095/actuator/health |
grep UP || exit 1" ]
- timeout: 5s
- retries: 3
- start_period: 20s
- depends_on:
- mysql:
- condition: service_healthy
- nacos:
- condition: service_healthy
- zookeeper:
- condition: service_healthy
- etcd:
- condition: service_healthy
- volumes:
- -
../../target/test-classes/admin-application.yml:/opt/shenyu-admin/conf/application.yml
- -
/tmp/shenyu-e2e/mysql/mysql-connector.jar:/opt/shenyu-admin/ext-lib/mysql-connector.jar
-
- springcloud:
- image: shenyu-examples-springcloud:latest
- restart: always
- environment:
- - shenyu.register.serverLists=http://admin:9095
- - eureka.client.serviceUrl.defaultZone=http://eureka:8761/eureka/
- expose:
- - 8884
- ports:
- - "8884:8884"
- depends_on:
- eureka:
- condition: service_healthy
- healthcheck:
- test: [ "CMD-SHELL", "wget -q -O -
http://springcloud:8884/actuator/health | grep UP || exit 1" ]
- timeout: 5s
- retries: 3
- start_period: 8s
-
- gateway:
- image: shenyu/bootstrap:latest
- environment:
- - eureka.client.serviceUrl.defaultZone=http://eureka:8761/eureka/
- expose:
- - 9195
- ports:
- - "9195:9195"
- depends_on:
- admin:
- condition: service_healthy
- volumes:
- -
../../target/test-classes/bootstrap-application.yml:/opt/shenyu-bootstrap/conf/application.yml
-
- mysql:
- image: mysql:8
- environment:
- - MYSQL_ROOT_PASSWORD=123123
- - MYSQL_USER=shenyue2e
- - MYSQL_PASSWORD=123456
- healthcheck:
- test: "/usr/bin/mysql --user=root --password=123123 --execute \"SHOW
DATABASES;\""
- interval: 5s
- timeout: 40s
- retries: 10
- start_period: 60s
- volumes:
- - /tmp/shenyu-e2e/mysql/schema.sql:/docker-entrypoint-initdb.d/schema.sql
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-spring-cloud/src/test/resources/log4j2.xml
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-spring-cloud/src/test/resources/log4j2.xml
deleted file mode 100644
index 9383716aa2..0000000000
---
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-spring-cloud/src/test/resources/log4j2.xml
+++ /dev/null
@@ -1,30 +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.
- -->
-<Configuration status="INFO">
- <Appenders>
- <Console name="stdout" target="SYSTEM_OUT">
- <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %p
%X{phase}/%X{operate} %m%n"/>
- </Console>
- </Appenders>
-
- <Loggers>
- <Root level="INFO">
- <AppenderRef ref="stdout"/>
- </Root>
- </Loggers>
-</Configuration>
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/script/e2e-http-h2.sh
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/e2e-h2.sh
similarity index 98%
rename from
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/script/e2e-http-h2.sh
rename to
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/e2e-h2.sh
index bd7f18ba1e..c5f39a9f04 100644
--- a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/script/e2e-http-h2.sh
+++ b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/e2e-h2.sh
@@ -35,4 +35,4 @@ sh "${curPath}"/healthcheck.sh h2
http://localhost:31095/actuator/health http://
curl -S "http://localhost:31195/actuator/pluginData"
-./mvnw -B -f ./shenyu-e2e/pom.xml -pl shenyu-e2e-case/shenyu-e2e-case-http -am
test
+./mvnw -B -f ./shenyu-e2e/pom.xml -pl shenyu-e2e-case/shenyu-e2e-case-storage
-am test
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/script/e2e-http-mysql.sh
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/e2e-mysql.sh
similarity index 98%
rename from
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/script/e2e-http-mysql.sh
rename to
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/e2e-mysql.sh
index bbc7a8dc02..9df50edd11 100644
---
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/script/e2e-http-mysql.sh
+++ b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/e2e-mysql.sh
@@ -40,5 +40,5 @@ sh "${curPath}"/healthcheck.sh mysql
http://localhost:31095/actuator/health http
curl -S "http://localhost:31195/actuator/pluginData"
-./mvnw -B -f ./shenyu-e2e/pom.xml -pl shenyu-e2e-case/shenyu-e2e-case-http -am
test
+./mvnw -B -f ./shenyu-e2e/pom.xml -pl shenyu-e2e-case/shenyu-e2e-case-storage
-am test
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/script/e2e-http-postgres.sh
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/e2e-postgres.sh
similarity index 98%
rename from
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/script/e2e-http-postgres.sh
rename to
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/e2e-postgres.sh
index 5d61229a95..102a905a7b 100644
---
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/script/e2e-http-postgres.sh
+++
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/e2e-postgres.sh
@@ -40,5 +40,5 @@ sh "${curPath}"/healthcheck.sh postgres
http://localhost:31095/actuator/health h
curl -S "http://localhost:31195/actuator/pluginData"
-./mvnw -B -f ./shenyu-e2e/pom.xml -pl shenyu-e2e-case/shenyu-e2e-case-http -am
test
+./mvnw -B -f ./shenyu-e2e/pom.xml -pl shenyu-e2e-case/shenyu-e2e-case-storage
-am test
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/script/healthcheck.sh
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/healthcheck.sh
similarity index 100%
rename from
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/script/healthcheck.sh
rename to
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/healthcheck.sh
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/script/services-h2.list
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/services-h2.list
similarity index 100%
rename from
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/script/services-h2.list
rename to
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/services-h2.list
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/script/services-mysql.list
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/services-mysql.list
similarity index 100%
rename from
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/script/services-mysql.list
rename to
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/services-mysql.list
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/script/services-postgres.list
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/services-postgres.list
similarity index 100%
rename from
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/script/services-postgres.list
rename to
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/services-postgres.list
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/shenyu-app-service-h2.yml
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/shenyu-app-service-h2.yml
similarity index 100%
rename from
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/shenyu-app-service-h2.yml
rename to
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/shenyu-app-service-h2.yml
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/shenyu-app-service-mysql.yml
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/shenyu-app-service-mysql.yml
similarity index 100%
rename from
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/shenyu-app-service-mysql.yml
rename to
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/shenyu-app-service-mysql.yml
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/shenyu-app-service-postgres.yml
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/shenyu-app-service-postgres.yml
similarity index 100%
rename from
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/shenyu-app-service-postgres.yml
rename to
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/shenyu-app-service-postgres.yml
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/shenyu-deployment-h2.yml
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/shenyu-deployment-h2.yml
similarity index 100%
rename from
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/shenyu-deployment-h2.yml
rename to
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/shenyu-deployment-h2.yml
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/shenyu-deployment-mysql.yml
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/shenyu-deployment-mysql.yml
similarity index 100%
rename from
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/shenyu-deployment-mysql.yml
rename to
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/shenyu-deployment-mysql.yml
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/shenyu-deployment-postgres.yml
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/shenyu-deployment-postgres.yml
similarity index 100%
rename from
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/shenyu-deployment-postgres.yml
rename to
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/shenyu-deployment-postgres.yml
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/resources/log4j2.xml
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/pom.xml
similarity index 64%
rename from
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/resources/log4j2.xml
rename to shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/pom.xml
index 9383716aa2..4a4944ea2f 100644
---
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/resources/log4j2.xml
+++ b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/pom.xml
@@ -15,16 +15,16 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<Configuration status="INFO">
- <Appenders>
- <Console name="stdout" target="SYSTEM_OUT">
- <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %p
%X{phase}/%X{operate} %m%n"/>
- </Console>
- </Appenders>
+<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
https://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
- <Loggers>
- <Root level="INFO">
- <AppenderRef ref="stdout"/>
- </Root>
- </Loggers>
-</Configuration>
+ <parent>
+ <groupId>org.apache.shenyu</groupId>
+ <artifactId>shenyu-e2e-case</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>shenyu-e2e-case-storage</artifactId>
+
+</project>
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/java/org/apache/shenyu/e2e/testcase/divide/DividePluginCases.java
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/src/test/java/org/apache/shenyu/e2e/testcase/divide/DividePluginCases.java
similarity index 100%
rename from
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/java/org/apache/shenyu/e2e/testcase/divide/DividePluginCases.java
rename to
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/src/test/java/org/apache/shenyu/e2e/testcase/divide/DividePluginCases.java
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/java/org/apache/shenyu/e2e/testcase/divide/DividePluginTest.java
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/src/test/java/org/apache/shenyu/e2e/testcase/divide/DividePluginTest.java
similarity index 100%
rename from
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/src/test/java/org/apache/shenyu/e2e/testcase/divide/DividePluginTest.java
rename to
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/src/test/java/org/apache/shenyu/e2e/testcase/divide/DividePluginTest.java
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-websocket/k8s/script/e2e-websocket-sync.sh
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-websocket/k8s/script/e2e-websocket-sync.sh
index 5d96dd4883..e6277d1b06 100644
---
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-websocket/k8s/script/e2e-websocket-sync.sh
+++
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-websocket/k8s/script/e2e-websocket-sync.sh
@@ -44,11 +44,11 @@ for sync in ${SYNC_ARRAY[@]}; do
sleep 10s
fi
kubectl apply -f "${SHENYU_TESTCASE_DIR}"/k8s/sync/shenyu-admin-"${sync}".yml
- sh "${CUR_PATH}"/healthcheck.sh http://localhost:31095/actuator/health
+ sh "$SHENYU_TESTCASE_DIR"/k8s/script/healthcheck.sh
http://localhost:31095/actuator/health
kubectl apply -f
"${SHENYU_TESTCASE_DIR}"/k8s/sync/shenyu-bootstrap-"${sync}".yml
- sh "${CUR_PATH}"/healthcheck.sh http://localhost:31195/actuator/health
+ sh "$SHENYU_TESTCASE_DIR"/k8s/script/healthcheck.sh
http://localhost:31195/actuator/health
kubectl apply -f "${PRGDIR}"/shenyu-examples-websocket.yml
- sh "${CUR_PATH}"/healthcheck.sh http://localhost:31191/actuator/health
+ sh "$SHENYU_TESTCASE_DIR"/k8s/script/healthcheck.sh
http://localhost:31191/actuator/health
sleep 10s
kubectl get pod -o wide
diff --git
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-websocket/k8s/script/healthcheck.sh
b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-websocket/k8s/script/healthcheck.sh
deleted file mode 100644
index 1159a0f417..0000000000
---
a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-websocket/k8s/script/healthcheck.sh
+++ /dev/null
@@ -1,39 +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.
-#
-
-for loop in $(seq 1 30); do
- status=$(curl -s -o /dev/null -w %{http_code} -X GET "${1}" -H "accept: */*")
- echo -e "${loop} curl ${1} response $status"
- if [ "$status" -eq 200 ]; then
- break
- fi
- sleep 2s
-done
-
-status=$(curl -s -o /dev/null -w "%{http_code}" -X GET "${1}" -H "accept: */*")
-
-if [ "$status" -eq 200 ]; then
- echo -e "\n-------------------"
- echo -e "Success to ${1} send request: $status"
- echo -e "\n-------------------"
- exit 0
-fi
-echo -e "\n-------------------"
-echo -e "Failed to send request from shenyu-admin : $status"
-echo -e "\n-------------------"
-exit 1