From d07516b0eafa3e8d5d10a6cb8468f77a79421dc5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?WangLiang/=E7=8E=8B=E8=89=AF?= <841369634@qq.com>
Date: Sun, 18 Dec 2022 13:41:05 +0800
Subject: [PATCH 1/9] optimize: First support `spring:6.x` and
`spring-boot:3.x` (#5115)
---
.github/workflows/test.yml | 43 ++++++--
all/pom.xml | 5 +
changes/en-us/develop.md | 3 +-
changes/zh-cn/develop.md | 5 +-
console/pom.xml | 33 ++++++
dependencies/pom.xml | 18 +++
integration/http-jakarta/pom.xml | 51 +++++++++
.../http/JakartaSeataWebMvcConfigurer.java | 31 ++++++
...artaTransactionPropagationInterceptor.java | 41 +++++++
integration/http/pom.xml | 6 +
...er.java => HandlerInterceptorAdapter.java} | 20 ++--
.../http/SeataWebMvcConfigurer.java | 23 +---
.../TransactionPropagationInterceptor.java | 30 +++--
.../http/WebMvcConfigurerAdapter.java | 104 ++++++++++++++++++
.../seata/integration/http/MockWebServer.java | 30 ++++-
pom.xml | 1 +
...ot.autoconfigure.AutoConfiguration.imports | 1 +
.../boot/autoconfigure/StarterConstants.java | 1 +
...ot.autoconfigure.AutoConfiguration.imports | 1 +
.../SeataHttpAutoConfiguration.java | 65 +++++++++++
.../spring-configuration-metadata.json | 13 +++
.../main/resources/META-INF/spring.factories | 4 +-
...ot.autoconfigure.AutoConfiguration.imports | 4 +
server/pom.xml | 33 ++++++
24 files changed, 509 insertions(+), 57 deletions(-)
create mode 100644 integration/http-jakarta/pom.xml
create mode 100644 integration/http-jakarta/src/main/java/io/seata/integration/http/JakartaSeataWebMvcConfigurer.java
create mode 100644 integration/http-jakarta/src/main/java/io/seata/integration/http/JakartaTransactionPropagationInterceptor.java
rename integration/http/src/main/java/io/seata/integration/http/{HttpHandlerExceptionResolver.java => HandlerInterceptorAdapter.java} (54%)
rename seata-spring-boot-starter/src/main/java/io/seata/spring/boot/autoconfigure/HttpAutoConfiguration.java => integration/http/src/main/java/io/seata/integration/http/SeataWebMvcConfigurer.java (50%)
create mode 100644 integration/http/src/main/java/io/seata/integration/http/WebMvcConfigurerAdapter.java
create mode 100644 seata-spring-autoconfigure/seata-spring-autoconfigure-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
create mode 100644 seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
create mode 100644 seata-spring-boot-starter/src/main/java/io/seata/spring/boot/autoconfigure/SeataHttpAutoConfiguration.java
create mode 100644 seata-spring-boot-starter/src/main/resources/META-INF/spring-configuration-metadata.json
create mode 100644 seata-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 3b6dad73ca5..418102858b1 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -5,6 +5,7 @@ on:
branches: [ test*, "*.*.*" ]
jobs:
+ # job 1
test:
name: "test"
runs-on: ubuntu-latest
@@ -13,8 +14,8 @@ jobs:
matrix:
java: [ 8, 11, 17 ]
springboot: [
- 2.7.2 -Dspring-framework.version=5.3.22,
- 2.6.10 -Dspring-framework.version=5.3.22,
+ 2.7.6 -Dspring-framework.version=5.3.24,
+ 2.6.14 -Dspring-framework.version=5.3.24,
2.5.14 -Dspring-framework.version=5.3.20,
2.4.13 -Dspring-framework.version=5.3.13,
2.3.12.RELEASE -Dspring-framework.version=5.2.15.RELEASE,
@@ -32,14 +33,12 @@ jobs:
# step 1
- name: "Checkout"
uses: actions/checkout@v2.4.0
-
# step 2
- name: "Set up Java JDK"
uses: actions/setup-java@v2.5.0
with:
distribution: 'zulu'
java-version: ${{ matrix.java }}
-
# step 3
- name: "Test with Maven"
# https://docs.github.com/cn/free-pro-team@latest/actions/reference/context-and-expression-syntax-for-github-actions#github-context
@@ -49,14 +48,42 @@ jobs:
else
./mvnw -T 4C clean test -Dspring-boot.version=${{ matrix.springboot }} -Dcheckstyle.skip=true -Dlicense.skip=true -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn;
fi
- arm64-test:
+
+ # job 2
+ test-springboot3x:
+ name: "test-springboot3.x"
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ java: [ 17 ]
+ springboot: [
+ 3.0.0 -Dspring-framework.version=6.0.2 -Dspring-boot-for-server.version=2.4.13 -Dspring-framework-for-server.version=5.3.18 -Dkotlin-maven-plugin.version=1.7.22
+ ]
+ steps:
+ # step 1
+ - name: "Checkout"
+ uses: actions/checkout@v2.4.0
+ # step 2
+ - name: "Set up Java JDK"
+ uses: actions/setup-java@v2.5.0
+ with:
+ distribution: 'zulu'
+ java-version: ${{ matrix.java }}
+ # step 3
+ - name: "Test with Maven"
+ run: |
+ ./mvnw -T 4C clean test -Dspring-boot.version=${{ matrix.springboot }} -Dcheckstyle.skip=false -Dlicense.skip=false -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn;
+
+ # job 3
+ arm64-test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
springboot: [
- 2.7.2 -Dspring-framework.version=5.3.22,
- 2.6.10 -Dspring-framework.version=5.3.22,
+ 2.7.6 -Dspring-framework.version=5.3.24,
+ 2.6.14 -Dspring-framework.version=5.3.24,
2.5.14 -Dspring-framework.version=5.3.20,
2.4.13 -Dspring-framework.version=5.3.13,
2.3.12.RELEASE -Dspring-framework.version=5.2.15.RELEASE,
@@ -69,7 +96,7 @@ jobs:
#1.2.8.RELEASE,
#1.1.12.RELEASE,
#1.0.2.RELEASE
- ]
+ ]
steps:
- uses: actions/checkout@v2
- name: Set up QEMU
diff --git a/all/pom.xml b/all/pom.xml
index 3f2ac74ddd1..b87fe16cec9 100644
--- a/all/pom.xml
+++ b/all/pom.xml
@@ -148,6 +148,11 @@
seata-http
${project.version}
+
+ io.seata
+ seata-http-jakarta
+ ${project.version}
+
io.seata
seata-dubbo-alibaba
diff --git a/changes/en-us/develop.md b/changes/en-us/develop.md
index 03ffeb016a1..c019266f3cc 100644
--- a/changes/en-us/develop.md
+++ b/changes/en-us/develop.md
@@ -9,7 +9,7 @@ Add changes here for all PR submitted to the develop branch.
- [[#xxx](https://github.com/seata/seata/pull/xxx)] fix xxx
### optimize:
-- [[#xxx](https://github.com/seata/seata/pull/xxx)] optimize xxx
+- [[#5115](https://github.com/seata/seata/pull/5115)] compatible with the `spring-boot:3.x`
### test:
- [[#xxx](https://github.com/seata/seata/pull/xxx)] add test for xxx
@@ -18,5 +18,6 @@ Thanks to these contributors for their code commits. Please report an unintended
- [slievrly](https://github.com/slievrly)
+- [wangliang181230](https://github.com/wangliang181230)
Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.
diff --git a/changes/zh-cn/develop.md b/changes/zh-cn/develop.md
index 499d8e8c469..f4cbecca042 100644
--- a/changes/zh-cn/develop.md
+++ b/changes/zh-cn/develop.md
@@ -8,8 +8,8 @@
### bugfix:
- [[#xxx](https://github.com/seata/seata/pull/xxx)] 修复 xxx
-### optimize:
-- [[#xxx](https://github.com/seata/seata/pull/xxx)] 优化 xxx
+### optimize:
+- [[#5115](https://github.com/seata/seata/pull/5115)] 兼容 `spring-boot:3.x`
### test:
- [[#xxx](https://github.com/seata/seata/pull/xxx)] 增加 xxx 测试
@@ -18,5 +18,6 @@
- [slievrly](https://github.com/slievrly)
+- [wangliang181230](https://github.com/wangliang181230)
同时,我们收到了社区反馈的很多有价值的issue和建议,非常感谢大家。
diff --git a/console/pom.xml b/console/pom.xml
index 4e70c7e7b0f..46fd8335c6b 100644
--- a/console/pom.xml
+++ b/console/pom.xml
@@ -28,6 +28,39 @@
seata-console ${project.version}
console for Seata built with Maven
+
+ ${spring-boot.version}
+ ${spring-framework.version}
+
+
+
+
+
+
+ org.springframework
+ spring-framework-bom
+ ${spring-framework-for-server.version}
+ pom
+ import
+
+
+
+
+ org.springframework.boot
+ spring-boot-dependencies
+ ${spring-boot-for-server.version}
+
+
+ org.springframework
+ spring-framework-bom
+
+
+ pom
+ import
+
+
+
+
org.springframework.boot
diff --git a/dependencies/pom.xml b/dependencies/pom.xml
index 5b0266b9a9d..3dea6c12f56 100644
--- a/dependencies/pom.xml
+++ b/dependencies/pom.xml
@@ -57,6 +57,9 @@
1.11.2
27.0.1-jre
1
+ 1.3.2
+ 4.0.1
+ 5.0.0
0.7.6
5.2.0
1.0.0
@@ -423,6 +426,21 @@
javax.inject
${javax-inject.version}
+
+ javax.annotation
+ javax.annotation-api
+ ${javax.annotation-api.version}
+
+
+ javax.servlet
+ javax.servlet-api
+ ${javax.servlet-api.version}
+
+
+ jakarta.servlet
+ jakarta.servlet-api
+ ${jakarta.servlet-api.version}
+
com.weibo
motan-core
diff --git a/integration/http-jakarta/pom.xml b/integration/http-jakarta/pom.xml
new file mode 100644
index 00000000000..c67ad004208
--- /dev/null
+++ b/integration/http-jakarta/pom.xml
@@ -0,0 +1,51 @@
+
+
+
+
+ io.seata
+ seata-parent
+ ${revision}
+ ../../pom.xml
+
+ 4.0.0
+ seata-http-jakarta
+ jar
+ seata-http ${project.version}
+ http-client integration for Seata built with Maven
+
+
+
+ ${project.groupId}
+ seata-http
+ ${project.version}
+
+
+
+ org.springframework
+ spring-webmvc
+ provided
+
+
+
+ jakarta.servlet
+ jakarta.servlet-api
+ provided
+
+
+
diff --git a/integration/http-jakarta/src/main/java/io/seata/integration/http/JakartaSeataWebMvcConfigurer.java b/integration/http-jakarta/src/main/java/io/seata/integration/http/JakartaSeataWebMvcConfigurer.java
new file mode 100644
index 00000000000..eaf5e227817
--- /dev/null
+++ b/integration/http-jakarta/src/main/java/io/seata/integration/http/JakartaSeataWebMvcConfigurer.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright 1999-2019 Seata.io Group.
+ *
+ * Licensed 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 io.seata.integration.http;
+
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+
+/**
+ * The Jakarta Seata Web Mvc Configurer
+ *
+ * @author wang.liang
+ */
+public class JakartaSeataWebMvcConfigurer extends SeataWebMvcConfigurer {
+
+ @Override
+ public void addInterceptors(InterceptorRegistry registry) {
+ registry.addInterceptor(new JakartaTransactionPropagationInterceptor());
+ }
+}
diff --git a/integration/http-jakarta/src/main/java/io/seata/integration/http/JakartaTransactionPropagationInterceptor.java b/integration/http-jakarta/src/main/java/io/seata/integration/http/JakartaTransactionPropagationInterceptor.java
new file mode 100644
index 00000000000..e3c2f198050
--- /dev/null
+++ b/integration/http-jakarta/src/main/java/io/seata/integration/http/JakartaTransactionPropagationInterceptor.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright 1999-2019 Seata.io Group.
+ *
+ * Licensed 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 io.seata.integration.http;
+
+import io.seata.core.context.RootContext;
+
+/**
+ * The Jakarta SpringMVC Interceptor.
+ *
+ * @author wangxb
+ * @author wang.liang
+ */
+public class JakartaTransactionPropagationInterceptor extends TransactionPropagationInterceptor {
+
+ //@Override
+ public boolean preHandle(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, Object handler) {
+ String rpcXid = request.getHeader(RootContext.KEY_XID);
+ return this.bindXid(rpcXid);
+ }
+
+ //@Override
+ public void afterCompletion(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, Object handler, Exception ex) throws Exception {
+ if (RootContext.inGlobalTransaction()) {
+ String rpcXid = request.getHeader(RootContext.KEY_XID);
+ this.cleanXid(rpcXid);
+ }
+ }
+}
diff --git a/integration/http/pom.xml b/integration/http/pom.xml
index f9bb2c65e8a..64ed3840b18 100644
--- a/integration/http/pom.xml
+++ b/integration/http/pom.xml
@@ -46,6 +46,12 @@
javax.servlet-api
provided
+
+ jakarta.servlet
+ jakarta.servlet-api
+ true
+ test
+
org.apache.httpcomponents
httpclient
diff --git a/integration/http/src/main/java/io/seata/integration/http/HttpHandlerExceptionResolver.java b/integration/http/src/main/java/io/seata/integration/http/HandlerInterceptorAdapter.java
similarity index 54%
rename from integration/http/src/main/java/io/seata/integration/http/HttpHandlerExceptionResolver.java
rename to integration/http/src/main/java/io/seata/integration/http/HandlerInterceptorAdapter.java
index 6b3d22c9ec5..b43e4420dec 100644
--- a/integration/http/src/main/java/io/seata/integration/http/HttpHandlerExceptionResolver.java
+++ b/integration/http/src/main/java/io/seata/integration/http/HandlerInterceptorAdapter.java
@@ -15,25 +15,27 @@
*/
package io.seata.integration.http;
-import io.seata.core.context.RootContext;
+import org.springframework.lang.Nullable;
+import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
-import org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
- * Http exception handle.
+ * The Handler Interceptor Adapter
*
- * @author wangxb
+ * @author wang.liang
*/
-public class HttpHandlerExceptionResolver extends AbstractHandlerExceptionResolver {
+public interface HandlerInterceptorAdapter extends HandlerInterceptor {
+ default boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+ return true;
+ }
- @Override
- protected ModelAndView doResolveException(HttpServletRequest request, HttpServletResponse httpServletResponse, Object o, Exception e) {
+ default void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception {
+ }
- XidResource.cleanXid(request.getHeader(RootContext.KEY_XID));
- return null;
+ default void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception {
}
}
diff --git a/seata-spring-boot-starter/src/main/java/io/seata/spring/boot/autoconfigure/HttpAutoConfiguration.java b/integration/http/src/main/java/io/seata/integration/http/SeataWebMvcConfigurer.java
similarity index 50%
rename from seata-spring-boot-starter/src/main/java/io/seata/spring/boot/autoconfigure/HttpAutoConfiguration.java
rename to integration/http/src/main/java/io/seata/integration/http/SeataWebMvcConfigurer.java
index ddaffc91275..b6e11f4067e 100644
--- a/seata-spring-boot-starter/src/main/java/io/seata/spring/boot/autoconfigure/HttpAutoConfiguration.java
+++ b/integration/http/src/main/java/io/seata/integration/http/SeataWebMvcConfigurer.java
@@ -13,35 +13,20 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.seata.spring.boot.autoconfigure;
+package io.seata.integration.http;
-import io.seata.integration.http.HttpHandlerExceptionResolver;
-import io.seata.integration.http.TransactionPropagationInterceptor;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
-
-import java.util.List;
/**
- * Auto bean add for spring context if in springboot env.
+ * The Seata Web Mvc Configurer
*
* @author wangxb
+ * @author wang.liang
*/
-@Configuration(proxyBeanMethods = false)
-@ConditionalOnWebApplication
-public class HttpAutoConfiguration extends WebMvcConfigurerAdapter {
+public class SeataWebMvcConfigurer implements WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new TransactionPropagationInterceptor());
}
-
- @Override
- public void extendHandlerExceptionResolvers(List exceptionResolvers) {
- exceptionResolvers.add(new HttpHandlerExceptionResolver());
- }
-
}
diff --git a/integration/http/src/main/java/io/seata/integration/http/TransactionPropagationInterceptor.java b/integration/http/src/main/java/io/seata/integration/http/TransactionPropagationInterceptor.java
index 9bea3bb67b6..d4251ca4384 100644
--- a/integration/http/src/main/java/io/seata/integration/http/TransactionPropagationInterceptor.java
+++ b/integration/http/src/main/java/io/seata/integration/http/TransactionPropagationInterceptor.java
@@ -22,22 +22,35 @@
import io.seata.core.context.RootContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
-
/**
- * Springmvc Intercepter.
+ * The SpringMVC Interceptor.
*
* @author wangxb
+ * @author wang.liang
*/
-public class TransactionPropagationInterceptor extends HandlerInterceptorAdapter {
+public class TransactionPropagationInterceptor implements HandlerInterceptorAdapter {
private static final Logger LOGGER = LoggerFactory.getLogger(TransactionPropagationInterceptor.class);
+
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
- String xid = RootContext.getXID();
String rpcXid = request.getHeader(RootContext.KEY_XID);
+ return this.bindXid(rpcXid);
+ }
+
+ @Override
+ public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
+ if (RootContext.inGlobalTransaction()) {
+ String rpcXid = request.getHeader(RootContext.KEY_XID);
+ this.cleanXid(rpcXid);
+ }
+ }
+
+
+ protected boolean bindXid(String rpcXid) {
+ String xid = RootContext.getXID();
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("xid in RootContext[{}] xid in HttpContext[{}]", xid, rpcXid);
@@ -52,11 +65,8 @@ public boolean preHandle(HttpServletRequest request, HttpServletResponse respons
return true;
}
- @Override
- public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
- if (RootContext.inGlobalTransaction()) {
- XidResource.cleanXid(request.getHeader(RootContext.KEY_XID));
- }
+ protected void cleanXid(String rpcXid) {
+ XidResource.cleanXid(rpcXid);
}
}
diff --git a/integration/http/src/main/java/io/seata/integration/http/WebMvcConfigurerAdapter.java b/integration/http/src/main/java/io/seata/integration/http/WebMvcConfigurerAdapter.java
new file mode 100644
index 00000000000..ed9c2ea7146
--- /dev/null
+++ b/integration/http/src/main/java/io/seata/integration/http/WebMvcConfigurerAdapter.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright 1999-2019 Seata.io Group.
+ *
+ * Licensed 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 io.seata.integration.http;
+
+import java.util.List;
+
+import org.springframework.format.FormatterRegistry;
+import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.lang.Nullable;
+import org.springframework.validation.MessageCodesResolver;
+import org.springframework.validation.Validator;
+import org.springframework.web.method.support.HandlerMethodArgumentResolver;
+import org.springframework.web.method.support.HandlerMethodReturnValueHandler;
+import org.springframework.web.servlet.HandlerExceptionResolver;
+import org.springframework.web.servlet.config.annotation.AsyncSupportConfigurer;
+import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
+import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
+import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+/**
+ * The Web Mvc Configurer Adapter
+ *
+ * @author wang.liang
+ */
+public interface WebMvcConfigurerAdapter extends WebMvcConfigurer {
+
+ default void configurePathMatch(PathMatchConfigurer configurer) {
+ }
+
+ default void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
+ }
+
+ default void configureAsyncSupport(AsyncSupportConfigurer configurer) {
+ }
+
+ default void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
+ }
+
+ default void addFormatters(FormatterRegistry registry) {
+ }
+
+ default void addInterceptors(InterceptorRegistry registry) {
+ }
+
+ default void addResourceHandlers(ResourceHandlerRegistry registry) {
+ }
+
+ default void addCorsMappings(CorsRegistry registry) {
+ }
+
+ default void addViewControllers(ViewControllerRegistry registry) {
+ }
+
+ default void configureViewResolvers(ViewResolverRegistry registry) {
+ }
+
+ default void addArgumentResolvers(List argumentResolvers) {
+ }
+
+ default void addReturnValueHandlers(List returnValueHandlers) {
+ }
+
+ default void configureMessageConverters(List> converters) {
+ }
+
+ default void extendMessageConverters(List> converters) {
+ }
+
+ default void configureHandlerExceptionResolvers(List exceptionResolvers) {
+ }
+
+ default void extendHandlerExceptionResolvers(List exceptionResolvers) {
+ }
+
+ @Nullable
+ default Validator getValidator() {
+ return null;
+ }
+
+ @Nullable
+ default MessageCodesResolver getMessageCodesResolver() {
+ return null;
+ }
+
+}
diff --git a/integration/http/src/test/java/io/seata/integration/http/MockWebServer.java b/integration/http/src/test/java/io/seata/integration/http/MockWebServer.java
index 1d1c16afdb2..11f4e2aa122 100644
--- a/integration/http/src/test/java/io/seata/integration/http/MockWebServer.java
+++ b/integration/http/src/test/java/io/seata/integration/http/MockWebServer.java
@@ -56,6 +56,8 @@ public void start(int port) {
socket.close();
} catch (IOException e) {
e.printStackTrace();
+ } catch (Exception e) {
+ throw new RuntimeException(e);
} finally {
if (serverSocket != null) {
try {
@@ -79,22 +81,38 @@ public String dispatch(MockRequest myRequest, MockResponse mockResponse) {
String clazz = urlServletMap.get(myRequest.getPath()).split("_")[0];
String methodName = urlServletMap.get(myRequest.getPath()).split("_")[1];
HttpServletRequest request = new MockHttpServletRequest(myRequest);
+
+ /* mock request interceptor */
+ TransactionPropagationInterceptor interceptor = new TransactionPropagationInterceptor();
try {
Class myServletClass = (Class) Class.forName(clazz);
MockController myServlet = myServletClass.newInstance();
HttpTest.Person person = boxing(myRequest);
Method method = myServletClass.getDeclaredMethod(methodName, HttpTest.Person.class);
- /* mock request intercepter */
- TransactionPropagationInterceptor intercepter = new TransactionPropagationInterceptor();
+ // pre
+ interceptor.preHandle(request, null, null);
- intercepter.preHandle(request, null, null);
Object result = method.invoke(myServlet, person);
+ String response = mockResponse.write(result.toString());
+
+ // post
+ interceptor.postHandle(request, null, null, null);
+ // afterCompletion without exception
+ try {
+ interceptor.afterCompletion(request, null, null, null);
+ } catch (Exception ex) {
+ throw new RuntimeException(ex);
+ }
- return mockResponse.write(result.toString());
+ return response;
} catch (Exception e) {
- HttpHandlerExceptionResolver resolver = new HttpHandlerExceptionResolver();
- resolver.doResolveException(request, null, null, e);
+ // afterCompletion with exception
+ try {
+ interceptor.afterCompletion(request, null, null, e);
+ } catch (Exception ex) {
+ throw new RuntimeException(ex);
+ }
if (RootContext.getXID() == null) {
try {
return mockResponse.write("Callee remove local xid success");
diff --git a/pom.xml b/pom.xml
index b63a62c9961..764cb6e129a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -47,6 +47,7 @@
integration/motan
integration/grpc
integration/http
+ integration/http-jakarta
integration/hsf
integration/brpc
rm
diff --git a/seata-spring-autoconfigure/seata-spring-autoconfigure-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/seata-spring-autoconfigure/seata-spring-autoconfigure-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 00000000000..c1a34a216be
--- /dev/null
+++ b/seata-spring-autoconfigure/seata-spring-autoconfigure-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+io.seata.spring.boot.autoconfigure.SeataTCCFenceAutoConfiguration
diff --git a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/StarterConstants.java b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/StarterConstants.java
index 1fa541f7d99..b04d7582081 100644
--- a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/StarterConstants.java
+++ b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/StarterConstants.java
@@ -38,6 +38,7 @@ public interface StarterConstants {
String UNDO_PREFIX = CLIENT_PREFIX + ".undo";
String LOAD_BALANCE_PREFIX_KEBAB_STYLE = CLIENT_PREFIX + ".load-balance";
String LOAD_BALANCE_PREFIX = CLIENT_PREFIX + ".loadBalance";
+ String HTTP_PREFIX = CLIENT_PREFIX + ".http";
String LOG_PREFIX = SEATA_PREFIX + ".log";
String COMPRESS_PREFIX = UNDO_PREFIX + ".compress";
String TCC_PREFIX = SEATA_PREFIX + ".tcc";
diff --git a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 00000000000..b37b5d230b3
--- /dev/null
+++ b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+io.seata.spring.boot.autoconfigure.SeataCoreAutoConfiguration
diff --git a/seata-spring-boot-starter/src/main/java/io/seata/spring/boot/autoconfigure/SeataHttpAutoConfiguration.java b/seata-spring-boot-starter/src/main/java/io/seata/spring/boot/autoconfigure/SeataHttpAutoConfiguration.java
new file mode 100644
index 00000000000..bd5b541b2bb
--- /dev/null
+++ b/seata-spring-boot-starter/src/main/java/io/seata/spring/boot/autoconfigure/SeataHttpAutoConfiguration.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright 1999-2019 Seata.io Group.
+ *
+ * Licensed 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 io.seata.spring.boot.autoconfigure;
+
+import io.seata.integration.http.JakartaSeataWebMvcConfigurer;
+import io.seata.integration.http.SeataWebMvcConfigurer;
+import org.springframework.boot.autoconfigure.AutoConfigureOrder;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.Ordered;
+
+import static io.seata.spring.boot.autoconfigure.StarterConstants.HTTP_PREFIX;
+
+/**
+ * Auto bean add for spring webmvc if in springboot env.
+ *
+ * @author wangxb
+ * @author wang.liang
+ */
+@Configuration(proxyBeanMethods = false)
+@ConditionalOnWebApplication
+@ConditionalOnMissingBean(SeataWebMvcConfigurer.class)
+@ConditionalOnProperty(prefix = HTTP_PREFIX, name = "interceptor-enabled", havingValue = "true", matchIfMissing = true)
+@AutoConfigureOrder(Ordered.LOWEST_PRECEDENCE)
+public class SeataHttpAutoConfiguration {
+
+ /**
+ * The Jakarta seata web mvc configurer.
+ *
+ * @return the seata web mvc configurer
+ */
+ @Bean
+ @ConditionalOnClass(name = "jakarta.servlet.http.HttpServletRequest")
+ public JakartaSeataWebMvcConfigurer jakartaSeataWebMvcConfigurer() {
+ return new JakartaSeataWebMvcConfigurer();
+ }
+
+ /**
+ * The Javax seata web mvc configurer.
+ *
+ * @return the seata web mvc configurer
+ */
+ @Bean
+ @ConditionalOnMissingBean(JakartaSeataWebMvcConfigurer.class)
+ public SeataWebMvcConfigurer seataWebMvcConfigurer() {
+ return new SeataWebMvcConfigurer();
+ }
+}
diff --git a/seata-spring-boot-starter/src/main/resources/META-INF/spring-configuration-metadata.json b/seata-spring-boot-starter/src/main/resources/META-INF/spring-configuration-metadata.json
new file mode 100644
index 00000000000..660d7681dd9
--- /dev/null
+++ b/seata-spring-boot-starter/src/main/resources/META-INF/spring-configuration-metadata.json
@@ -0,0 +1,13 @@
+{
+ "groups": [],
+ "properties": [
+ {
+ "name": "seata.client.http.interceptor-enabled",
+ "type": "java.lang.Boolean",
+ "description": "Whether to enable the seata TransactionPropagationInterceptor",
+ "sourceType": "io.seata.spring.boot.autoconfigure.SeataHttpAutoConfiguration",
+ "defaultValue": true
+ }
+ ],
+ "hints": []
+}
\ No newline at end of file
diff --git a/seata-spring-boot-starter/src/main/resources/META-INF/spring.factories b/seata-spring-boot-starter/src/main/resources/META-INF/spring.factories
index 4f7d18c07b0..b83ade816ef 100644
--- a/seata-spring-boot-starter/src/main/resources/META-INF/spring.factories
+++ b/seata-spring-boot-starter/src/main/resources/META-INF/spring.factories
@@ -1,6 +1,6 @@
# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
-io.seata.spring.boot.autoconfigure.SeataDataSourceAutoConfiguration,\
io.seata.spring.boot.autoconfigure.SeataAutoConfiguration,\
-io.seata.spring.boot.autoconfigure.HttpAutoConfiguration,\
+io.seata.spring.boot.autoconfigure.SeataDataSourceAutoConfiguration,\
+io.seata.spring.boot.autoconfigure.SeataHttpAutoConfiguration,\
io.seata.spring.boot.autoconfigure.SeataSagaAutoConfiguration
diff --git a/seata-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/seata-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 00000000000..8a983ec92b5
--- /dev/null
+++ b/seata-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1,4 @@
+io.seata.spring.boot.autoconfigure.SeataAutoConfiguration
+io.seata.spring.boot.autoconfigure.SeataDataSourceAutoConfiguration
+io.seata.spring.boot.autoconfigure.SeataHttpAutoConfiguration
+io.seata.spring.boot.autoconfigure.SeataSagaAutoConfiguration
diff --git a/server/pom.xml b/server/pom.xml
index c66261bf7a5..9911f321a86 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -28,6 +28,39 @@
seata-server ${project.version}
server for Seata built with Maven
+
+ ${spring-boot.version}
+ ${spring-framework.version}
+
+
+
+
+
+
+ org.springframework
+ spring-framework-bom
+ ${spring-framework-for-server.version}
+ pom
+ import
+
+
+
+
+ org.springframework.boot
+ spring-boot-dependencies
+ ${spring-boot-for-server.version}
+
+
+ org.springframework
+ spring-framework-bom
+
+
+ pom
+ import
+
+
+
+
From 0827ee514d778ec2e6d2d96dfc698ddebe0287c3 Mon Sep 17 00:00:00 2001
From: FUNKYE <364176773@qq.com>
Date: Sun, 18 Dec 2022 21:15:46 +0800
Subject: [PATCH 2/9] optimize: change the version to 1.6.1-SNAPSHOT (#5166)
---
build/pom.xml | 2 +-
core/src/main/java/io/seata/core/protocol/Version.java | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/build/pom.xml b/build/pom.xml
index b8b7e778b4c..c636523d872 100644
--- a/build/pom.xml
+++ b/build/pom.xml
@@ -63,7 +63,7 @@
- 1.6.0
+ 1.6.1-SNAPSHOT
1.8
diff --git a/core/src/main/java/io/seata/core/protocol/Version.java b/core/src/main/java/io/seata/core/protocol/Version.java
index 2fdc55d9bf4..287c1334e7a 100644
--- a/core/src/main/java/io/seata/core/protocol/Version.java
+++ b/core/src/main/java/io/seata/core/protocol/Version.java
@@ -36,7 +36,7 @@ public class Version {
/**
* The constant CURRENT.
*/
- private static final String CURRENT = "1.6.0";
+ private static final String CURRENT = "1.6.1-SNAPSHOT";
private static final String VERSION_0_7_1 = "0.7.1";
private static final String VERSION_1_5_0 = "1.5.0";
private static final int MAX_VERSION_DOT = 3;
From 80001959a6d2702d1c9336fe78e44082e884bc3d Mon Sep 17 00:00:00 2001
From: xingfudeshi
Date: Wed, 21 Dec 2022 12:42:44 +0800
Subject: [PATCH 3/9] optimize:unify the format of configuration items in yml
files (#5120)
---
changes/en-us/develop.md | 32 ++++++++++++++
changes/zh-cn/develop.md | 36 +++++++++++++++
script/client/spring/application.yml | 44 +++++++++----------
.../config/ConfigApolloProperties.java | 2 +-
.../config/ConfigConsulProperties.java | 2 +-
.../config/ConfigCustomProperties.java | 2 +-
.../config/ConfigNacosProperties.java | 12 ++---
.../config/ConfigZooKeeperProperties.java | 4 +-
.../registry/RegistryConsulProperties.java | 2 +-
.../registry/RegistryCustomProperties.java | 2 +-
.../registry/RegistryNacosProperties.java | 14 +++---
.../registry/RegistryRedisProperties.java | 2 +-
.../registry/RegistryZooKeeperProperties.java | 4 +-
.../autoconfigure/CorePropertiesTest.java | 10 ++---
.../server/store/StoreProperties.java | 2 +-
.../server/store/StoreRedisProperties.java | 6 +--
.../autoconfigure/ServerPropertiesTest.java | 2 +-
.../main/resources/application.example.yml | 12 ++---
18 files changed, 129 insertions(+), 61 deletions(-)
diff --git a/changes/en-us/develop.md b/changes/en-us/develop.md
index c019266f3cc..6e6827ef52e 100644
--- a/changes/en-us/develop.md
+++ b/changes/en-us/develop.md
@@ -9,6 +9,38 @@ Add changes here for all PR submitted to the develop branch.
- [[#xxx](https://github.com/seata/seata/pull/xxx)] fix xxx
### optimize:
+- [[#4774](https://github.com/seata/seata/pull/4774)] optimize mysql8 dependencies for seataio/seata-server image
+- [[#4790](https://github.com/seata/seata/pull/4790)] Add a github action to publish Seata to OSSRH
+- [[#4765](https://github.com/seata/seata/pull/4765)] mysql 8.0.29 not should be hold for connection
+- [[#4750](https://github.com/seata/seata/pull/4750)] optimize unBranchLock romove xid
+- [[#4797](https://github.com/seata/seata/pull/4797)] optimize the github actions
+- [[#4800](https://github.com/seata/seata/pull/4800)] Add NOTICE as Apache License V2
+- [[#4681](https://github.com/seata/seata/pull/4681)] optimize the check lock during global transaction
+- [[#4761](https://github.com/seata/seata/pull/4761)] use hget replace hmget because only one field
+- [[#4414](https://github.com/seata/seata/pull/4414)] exclude log4j dependencies
+- [[#4836](https://github.com/seata/seata/pull/4836)] optimize BaseTransactionalExecutor#buildLockKey(TableRecords rowsIncludingPK) method more readable
+- [[#4865](https://github.com/seata/seata/pull/4865)] fix some security vulnerabilities in GGEditor
+- [[#4590](https://github.com/seata/seata/pull/4590)] auto degrade enable to dynamic configure
+- [[#4490](https://github.com/seata/seata/pull/4490)] tccfence log table delete by index
+- [[#4911](https://github.com/seata/seata/pull/4911)] add license checker workflow
+- [[#4917](https://github.com/seata/seata/pull/4917)] upgrade package-lock.json fix vulnerabilities
+- [[#4924](https://github.com/seata/seata/pull/4924)] optimize pom dependencies
+- [[#4932](https://github.com/seata/seata/pull/4932)] extract the default values for some properties
+- [[#4925](https://github.com/seata/seata/pull/4925)] optimize java doc warning
+- [[#4921](https://github.com/seata/seata/pull/4921)] fix some vulnerabilities in console and upgrade skywalking-eyes
+- [[#4936](https://github.com/seata/seata/pull/4936)] optimize read of storage configuration
+- [[#4946](https://github.com/seata/seata/pull/4946)] pass the sqlexception to client when get lock
+- [[#4962](https://github.com/seata/seata/pull/4962)] optimize build and fix the base image
+- [[#4974](https://github.com/seata/seata/pull/4974)] optimize cancel the limit on the number of globalStatus queries in Redis mode
+- [[#4981](https://github.com/seata/seata/pull/4981)] optimize tcc fence record not exists errMessage
+- [[#4985](https://github.com/seata/seata/pull/4985)] fix undo_log id repeat
+- [[#4995](https://github.com/seata/seata/pull/4995)] fix mysql InsertOnDuplicateUpdate duplicate pk condition in after image query sql
+- [[#5047](https://github.com/seata/seata/pull/5047)] remove useless code
+- [[#5051](https://github.com/seata/seata/pull/5051)] undo log dirty throw BranchRollbackFailed_Unretriable
+- [[#5075](https://github.com/seata/seata/pull/5075)] intercept the InsertOnDuplicateUpdate statement which has no primary key and unique index value
+- [[#5104](https://github.com/seata/seata/pull/5104)] remove the druid dependency in ConnectionProxy
+- [[#5120](https://github.com/seata/seata/pull/5120)] unify the format of configuration items in yml files
+- [[#5124](https://github.com/seata/seata/pull/5124)] support oracle on delete tccfence logs
- [[#5115](https://github.com/seata/seata/pull/5115)] compatible with the `spring-boot:3.x`
### test:
diff --git a/changes/zh-cn/develop.md b/changes/zh-cn/develop.md
index f4cbecca042..65933891fe5 100644
--- a/changes/zh-cn/develop.md
+++ b/changes/zh-cn/develop.md
@@ -9,8 +9,44 @@
- [[#xxx](https://github.com/seata/seata/pull/xxx)] 修复 xxx
### optimize:
+- [[#4681](https://github.com/seata/seata/pull/4681)] 优化竞争锁过程
+- [[#4774](https://github.com/seata/seata/pull/4774)] 优化 seataio/seata-server 镜像中的 mysql8 依赖
+- [[#4750](https://github.com/seata/seata/pull/4750)] 优化AT分支释放全局锁不使用xid
+- [[#4790](https://github.com/seata/seata/pull/4790)] 添加一个 github action,用于自动发布Seata到OSSRH
+- [[#4765](https://github.com/seata/seata/pull/4765)] mysql8.0.29版本及以上XA模式不持connection至二阶段
+- [[#4797](https://github.com/seata/seata/pull/4797)] 优化所有github actions脚本
+- [[#4800](https://github.com/seata/seata/pull/4800)] 按照 Apache 协议规范,添加 NOTICE 文件
+- [[#4761](https://github.com/seata/seata/pull/4761)] 使用 hget 代替 RedisLocker 中的 hmget, 因为只有一个 field
+- [[#4414](https://github.com/seata/seata/pull/4414)] 移除log4j依赖
+- [[#4836](https://github.com/seata/seata/pull/4836)] 优化 BaseTransactionalExecutor#buildLockKey(TableRecords rowsIncludingPK) 方法可读性
+- [[#4865](https://github.com/seata/seata/pull/4865)] 修复 Saga 可视化设计器 GGEditor 安全漏洞
+- [[#4590](https://github.com/seata/seata/pull/4590)] 自动降级支持开关支持动态配置
+- [[#4490](https://github.com/seata/seata/pull/4490)] tccfence 记录表优化成按索引删除
+- [[#4911](https://github.com/seata/seata/pull/4911)] 添加 header 和license 检测
+- [[#4917](https://github.com/seata/seata/pull/4917)] 升级 package-lock.json 修复漏洞
+- [[#4924](https://github.com/seata/seata/pull/4924)] 优化 pom 依赖
+- [[#4932](https://github.com/seata/seata/pull/4932)] 抽取部分配置的默认值
+- [[#4925](https://github.com/seata/seata/pull/4925)] 优化 javadoc 注释
+- [[#4921](https://github.com/seata/seata/pull/4921)] 修复控制台模块安全漏洞和升级 skywalking-eyes 版本
+- [[#4936](https://github.com/seata/seata/pull/4936)] 优化存储配置的读取
+- [[#4946](https://github.com/seata/seata/pull/4946)] 将获取锁时遇到的sql异常传递给客户端
+- [[#4962](https://github.com/seata/seata/pull/4962)] 优化构建配置,并修正docker镜像的基础镜像
+- [[#4974](https://github.com/seata/seata/pull/4974)] 取消redis模式下,查询globalStatus条数的限制
+- [[#4981](https://github.com/seata/seata/pull/4981)] 优化当tcc栅栏记录查不到时的错误提示
+- [[#4995](https://github.com/seata/seata/pull/4995)] 修复mysql InsertOnDuplicateUpdate后置镜像查询SQL中重复的主键查询条件
+- [[#5047](https://github.com/seata/seata/pull/5047)] 移除无用代码
+- [[#5051](https://github.com/seata/seata/pull/5051)] 回滚时undolog产生脏写需要抛出不再重试(BranchRollbackFailed_Unretriable)的异常
+- [[#5075](https://github.com/seata/seata/pull/5075)] 拦截没有主键及唯一索引值的insert on duplicate update语句
+- [[#5104](https://github.com/seata/seata/pull/5104)] ConnectionProxy脱离对druid的依赖
+- [[#5120](https://github.com/seata/seata/pull/5120)] 统一yml文件中的配置项格式
+- [[#5124](https://github.com/seata/seata/pull/5124)] 支持oracle删除tccfence记录表
- [[#5115](https://github.com/seata/seata/pull/5115)] 兼容 `spring-boot:3.x`
+### test:
+- [[#4411](https://github.com/seata/seata/pull/4411)] 测试Oracle数据库AT模式下类型支持
+- [[#4794](https://github.com/seata/seata/pull/4794)] 重构代码,尝试修复单元测试 `DataSourceProxyTest.getResourceIdTest()`
+- [[#5101](https://github.com/seata/seata/pull/5101)] 修复zk注册和配置中心报ClassNotFoundException的问题 `DataSourceProxyTest.getResourceIdTest()`
+
### test:
- [[#xxx](https://github.com/seata/seata/pull/xxx)] 增加 xxx 测试
diff --git a/script/client/spring/application.yml b/script/client/spring/application.yml
index 8ee2b52628f..6f8f59cede4 100755
--- a/script/client/spring/application.yml
+++ b/script/client/spring/application.yml
@@ -83,36 +83,36 @@ seata:
apollo-meta: http://192.168.1.204:8801
app-id: seata-server
namespace: application
- apollo-accesskey-secret: ""
+ apollo-accesskey-secret:
etcd3:
server-addr: http://localhost:2379
nacos:
- namespace: ""
+ namespace:
server-addr: 127.0.0.1:8848
group: SEATA_GROUP
- username: ""
- password: ""
- context-path: ""
+ username:
+ password:
+ context-path:
##if use MSE Nacos with auth, mutex with username/password attribute
- #access-key: ""
- #secret-key: ""
+ #access-key:
+ #secret-key:
data-id: seata.properties
zk:
server-addr: 127.0.0.1:2181
session-timeout: 6000
connect-timeout: 2000
- username: ""
- password: ""
+ username:
+ password:
node-path: /seata/seata.properties
custom:
- name: ""
+ name:
registry:
type: file
file:
name: file.conf
consul:
server-addr: 127.0.0.1:8500
- acl-token: ""
+ acl-token:
etcd3:
server-addr: http://localhost:2379
eureka:
@@ -122,19 +122,19 @@ seata:
application: seata-server
server-addr: 127.0.0.1:8848
group : "SEATA_GROUP"
- namespace: ""
- username: ""
- password: ""
- context-path: ""
+ namespace:
+ username:
+ password:
+ context-path:
##if use MSE Nacos with auth, mutex with username/password attribute
- #access-key: ""
- #secret-key: ""
+ #access-key:
+ #secret-key:
##if use Nacos naming meta-data for SLB service registry, specify nacos address pattern rules here
- #slbPattern = ""
+ #slbPattern =
redis:
server-addr: localhost:6379
db: 0
- password: ""
+ password:
timeout: 0
sofa:
server-addr: 127.0.0.1:9603
@@ -147,10 +147,10 @@ seata:
server-addr: 127.0.0.1:2181
session-timeout: 6000
connect-timeout: 2000
- username: ""
- password: ""
+ username:
+ password:
custom:
- name: ""
+ name:
log:
exception-rate: 100
tcc:
diff --git a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/config/ConfigApolloProperties.java b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/config/ConfigApolloProperties.java
index e1a569cace1..4b42e6ef6d5 100644
--- a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/config/ConfigApolloProperties.java
+++ b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/config/ConfigApolloProperties.java
@@ -29,7 +29,7 @@ public class ConfigApolloProperties {
private String appId = "seata-server";
private String apolloMeta;
private String namespace = "application";
- private String apolloAccessKeySecret = "";
+ private String apolloAccessKeySecret;
private String apolloConfigService;
private String cluster;
diff --git a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/config/ConfigConsulProperties.java b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/config/ConfigConsulProperties.java
index effd8db1967..876ac475932 100644
--- a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/config/ConfigConsulProperties.java
+++ b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/config/ConfigConsulProperties.java
@@ -28,7 +28,7 @@
public class ConfigConsulProperties {
private String serverAddr;
private String key = "seata.properties";
- private String aclToken = "";
+ private String aclToken;
public String getServerAddr() {
return serverAddr;
diff --git a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/config/ConfigCustomProperties.java b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/config/ConfigCustomProperties.java
index eff9649cd21..915cdcf8da0 100644
--- a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/config/ConfigCustomProperties.java
+++ b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/config/ConfigCustomProperties.java
@@ -26,7 +26,7 @@
@Component
@ConfigurationProperties(prefix = CONFIG_CUSTOM_PREFIX)
public class ConfigCustomProperties {
- private String name = "";
+ private String name;
public String getName() {
return name;
diff --git a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/config/ConfigNacosProperties.java b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/config/ConfigNacosProperties.java
index 5680f658621..06c46252f54 100644
--- a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/config/ConfigNacosProperties.java
+++ b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/config/ConfigNacosProperties.java
@@ -27,14 +27,14 @@
@ConfigurationProperties(prefix = CONFIG_NACOS_PREFIX)
public class ConfigNacosProperties {
private String serverAddr;
- private String namespace = "";
+ private String namespace;
private String group = "SEATA_GROUP";
- private String username = "";
- private String password = "";
- private String accessKey = "";
- private String secretKey = "";
+ private String username;
+ private String password;
+ private String accessKey;
+ private String secretKey;
private String dataId = "seata.properties";
- private String contextPath = "";
+ private String contextPath;
public String getServerAddr() {
return serverAddr;
diff --git a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/config/ConfigZooKeeperProperties.java b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/config/ConfigZooKeeperProperties.java
index 12a70c0c9b9..897f97eb5ac 100644
--- a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/config/ConfigZooKeeperProperties.java
+++ b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/config/ConfigZooKeeperProperties.java
@@ -29,8 +29,8 @@ public class ConfigZooKeeperProperties {
private String serverAddr;
private long sessionTimeout = 6000L;
private long connectTimeout = 2000L;
- private String username = "";
- private String password = "";
+ private String username;
+ private String password;
private String nodePath = "/seata/seata.properties";
public String getServerAddr() {
diff --git a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/registry/RegistryConsulProperties.java b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/registry/RegistryConsulProperties.java
index a597cdf4407..35ef0949e4b 100644
--- a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/registry/RegistryConsulProperties.java
+++ b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/registry/RegistryConsulProperties.java
@@ -28,7 +28,7 @@
public class RegistryConsulProperties {
private String cluster = "default";
private String serverAddr = "127.0.0.1:8500";
- private String aclToken = "";
+ private String aclToken;
public String getCluster() {
return cluster;
diff --git a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/registry/RegistryCustomProperties.java b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/registry/RegistryCustomProperties.java
index 4f503a80c75..a9d9182b91a 100644
--- a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/registry/RegistryCustomProperties.java
+++ b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/registry/RegistryCustomProperties.java
@@ -26,7 +26,7 @@
@Component
@ConfigurationProperties(prefix = REGISTRY_CUSTOM_PREFIX)
public class RegistryCustomProperties {
- private String name = "";
+ private String name;
public String getName() {
return name;
diff --git a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/registry/RegistryNacosProperties.java b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/registry/RegistryNacosProperties.java
index aec1910d179..1d881b7fb5e 100644
--- a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/registry/RegistryNacosProperties.java
+++ b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/registry/RegistryNacosProperties.java
@@ -27,16 +27,16 @@
@ConfigurationProperties(prefix = REGISTRY_NACOS_PREFIX)
public class RegistryNacosProperties {
private String serverAddr = "localhost:8848";
- private String namespace = "";
+ private String namespace;
private String group = "SEATA_GROUP";
private String cluster = "default";
- private String username = "";
- private String password = "";
- private String accessKey = "";
- private String secretKey = "";
+ private String username;
+ private String password;
+ private String accessKey;
+ private String secretKey;
private String application = "seata-server";
- private String slbPattern = "";
- private String contextPath = "";
+ private String slbPattern;
+ private String contextPath;
public String getServerAddr() {
return serverAddr;
diff --git a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/registry/RegistryRedisProperties.java b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/registry/RegistryRedisProperties.java
index 03cacad8987..33f4ad78b4c 100644
--- a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/registry/RegistryRedisProperties.java
+++ b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/registry/RegistryRedisProperties.java
@@ -28,7 +28,7 @@
public class RegistryRedisProperties {
private String serverAddr = "localhost:6379";
private int db = 0;
- private String password = "";
+ private String password;
private String cluster = "default";
private int timeout = 0;
diff --git a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/registry/RegistryZooKeeperProperties.java b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/registry/RegistryZooKeeperProperties.java
index b96d2587efa..dcb0c407a86 100644
--- a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/registry/RegistryZooKeeperProperties.java
+++ b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/registry/RegistryZooKeeperProperties.java
@@ -30,8 +30,8 @@ public class RegistryZooKeeperProperties {
private String serverAddr = "127.0.0.1:2181";
private long sessionTimeout = 6000L;
private long connectTimeout = 2000L;
- private String username = "";
- private String password = "";
+ private String username;
+ private String password;
public String getCluster() {
return cluster;
diff --git a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/test/java/io/seata/spring/boot/autoconfigure/CorePropertiesTest.java b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/test/java/io/seata/spring/boot/autoconfigure/CorePropertiesTest.java
index 210a778309f..3d5de56606b 100644
--- a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/test/java/io/seata/spring/boot/autoconfigure/CorePropertiesTest.java
+++ b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/test/java/io/seata/spring/boot/autoconfigure/CorePropertiesTest.java
@@ -105,11 +105,11 @@ public void testRegistryEurekaProperties() {
@Test
public void testRegistryNacosProperties() {
assertEquals("localhost:8848", context.getBean(RegistryNacosProperties.class).getServerAddr());
- assertEquals("", context.getBean(RegistryNacosProperties.class).getNamespace());
+ assertEquals(null, context.getBean(RegistryNacosProperties.class).getNamespace());
assertEquals("SEATA_GROUP", context.getBean(RegistryNacosProperties.class).getGroup());
assertEquals("default", context.getBean(RegistryNacosProperties.class).getCluster());
- assertEquals("", context.getBean(RegistryNacosProperties.class).getUsername());
- assertEquals("", context.getBean(RegistryNacosProperties.class).getPassword());
+ assertEquals(null, context.getBean(RegistryNacosProperties.class).getUsername());
+ assertEquals(null, context.getBean(RegistryNacosProperties.class).getPassword());
assertEquals("seata-server", context.getBean(RegistryNacosProperties.class).getApplication());
}
@@ -123,7 +123,7 @@ public void testRegistryProperties() {
public void testRegistryRedisProperties() {
assertEquals("localhost:6379", context.getBean(RegistryRedisProperties.class).getServerAddr());
assertEquals(0, context.getBean(RegistryRedisProperties.class).getDb());
- assertEquals("", context.getBean(RegistryRedisProperties.class).getPassword());
+ assertEquals(null, context.getBean(RegistryRedisProperties.class).getPassword());
assertEquals("default", context.getBean(RegistryRedisProperties.class).getCluster());
assertEquals(0, context.getBean(RegistryRedisProperties.class).getTimeout());
}
@@ -149,7 +149,7 @@ public void testRegistryZooKeeperProperties() {
@Test
public void testRegistryCustomProperties() {
- assertEquals("", context.getBean(RegistryCustomProperties.class).getName());
+ assertEquals(null, context.getBean(RegistryCustomProperties.class).getName());
}
diff --git a/seata-spring-autoconfigure/seata-spring-autoconfigure-server/src/main/java/io/seata/spring/boot/autoconfigure/properties/server/store/StoreProperties.java b/seata-spring-autoconfigure/seata-spring-autoconfigure-server/src/main/java/io/seata/spring/boot/autoconfigure/properties/server/store/StoreProperties.java
index 11de509c051..19000a1268b 100644
--- a/seata-spring-autoconfigure/seata-spring-autoconfigure-server/src/main/java/io/seata/spring/boot/autoconfigure/properties/server/store/StoreProperties.java
+++ b/seata-spring-autoconfigure/seata-spring-autoconfigure-server/src/main/java/io/seata/spring/boot/autoconfigure/properties/server/store/StoreProperties.java
@@ -33,7 +33,7 @@ public class StoreProperties {
*/
private String mode = "file";
- private String publicKey = "";
+ private String publicKey;
public String getMode() {
return mode;
diff --git a/seata-spring-autoconfigure/seata-spring-autoconfigure-server/src/main/java/io/seata/spring/boot/autoconfigure/properties/server/store/StoreRedisProperties.java b/seata-spring-autoconfigure/seata-spring-autoconfigure-server/src/main/java/io/seata/spring/boot/autoconfigure/properties/server/store/StoreRedisProperties.java
index d7d28e1175e..d695699abf5 100644
--- a/seata-spring-autoconfigure/seata-spring-autoconfigure-server/src/main/java/io/seata/spring/boot/autoconfigure/properties/server/store/StoreRedisProperties.java
+++ b/seata-spring-autoconfigure/seata-spring-autoconfigure-server/src/main/java/io/seata/spring/boot/autoconfigure/properties/server/store/StoreRedisProperties.java
@@ -32,7 +32,7 @@ public class StoreRedisProperties {
* single, sentinel
*/
private String mode = "single";
- private String password = null;
+ private String password;
private Integer maxConn = 10;
private Integer minConn = 1;
private Integer database = 0;
@@ -133,11 +133,11 @@ public Single setPort(Integer port) {
@Component
@ConfigurationProperties(prefix = STORE_REDIS_SENTINEL_PREFIX)
public static class Sentinel {
- private String masterName = "";
+ private String masterName;
/**
* such as "10.28.235.65:26379,10.28.235.65:26380,10.28.235.65:26381"
*/
- private String sentinelHosts = "";
+ private String sentinelHosts;
public String getMasterName() {
return masterName;
diff --git a/seata-spring-autoconfigure/seata-spring-autoconfigure-server/src/test/java/io/seata/spring/boot/autoconfigure/ServerPropertiesTest.java b/seata-spring-autoconfigure/seata-spring-autoconfigure-server/src/test/java/io/seata/spring/boot/autoconfigure/ServerPropertiesTest.java
index 8bddb7acde7..043babc6ed9 100644
--- a/seata-spring-autoconfigure/seata-spring-autoconfigure-server/src/test/java/io/seata/spring/boot/autoconfigure/ServerPropertiesTest.java
+++ b/seata-spring-autoconfigure/seata-spring-autoconfigure-server/src/test/java/io/seata/spring/boot/autoconfigure/ServerPropertiesTest.java
@@ -95,7 +95,7 @@ public void testStoreRedisPropertiesSingle() {
@Test
public void testStoreRedisPropertiesSentinel() {
- assertEquals(context.getBean(StoreRedisProperties.Sentinel.class).getSentinelHosts(), "");
+ assertEquals(context.getBean(StoreRedisProperties.Sentinel.class).getSentinelHosts(), null);
}
@AfterAll
diff --git a/server/src/main/resources/application.example.yml b/server/src/main/resources/application.example.yml
index d8f5f1f2fab..f42f934f3a2 100644
--- a/server/src/main/resources/application.example.yml
+++ b/server/src/main/resources/application.example.yml
@@ -42,8 +42,8 @@ seata:
password:
context-path:
##if use MSE Nacos with auth, mutex with username/password attribute
- #access-key: ""
- #secret-key: ""
+ #access-key:
+ #secret-key:
data-id: seataServer.properties
consul:
server-addr: 127.0.0.1:8500
@@ -80,8 +80,8 @@ seata:
password:
context-path:
##if use MSE Nacos with auth, mutex with username/password attribute
- #access-key: ""
- #secret-key: ""
+ #access-key:
+ #secret-key:
eureka:
service-url: http://localhost:8761/eureka
application: default
@@ -97,8 +97,8 @@ seata:
server-addr: 127.0.0.1:2181
session-timeout: 6000
connect-timeout: 2000
- username: ""
- password: ""
+ username:
+ password:
consul:
cluster: default
server-addr: 127.0.0.1:8500
From 07753df739cd16db1a44662fcfeae12adacf6849 Mon Sep 17 00:00:00 2001
From: whxxxxx <90163464+whxxxxx@users.noreply.github.com>
Date: Wed, 21 Dec 2022 15:26:00 +0800
Subject: [PATCH 4/9] optimize: declare @Bean methods as static (#5180)
---
changes/en-us/develop.md | 34 ++-----------------
changes/zh-cn/develop.md | 33 ++----------------
.../autoconfigure/SeataAutoConfiguration.java | 2 +-
.../SeataDataSourceAutoConfiguration.java | 2 +-
4 files changed, 8 insertions(+), 63 deletions(-)
diff --git a/changes/en-us/develop.md b/changes/en-us/develop.md
index 6e6827ef52e..0046408cd52 100644
--- a/changes/en-us/develop.md
+++ b/changes/en-us/develop.md
@@ -9,39 +9,9 @@ Add changes here for all PR submitted to the develop branch.
- [[#xxx](https://github.com/seata/seata/pull/xxx)] fix xxx
### optimize:
-- [[#4774](https://github.com/seata/seata/pull/4774)] optimize mysql8 dependencies for seataio/seata-server image
-- [[#4790](https://github.com/seata/seata/pull/4790)] Add a github action to publish Seata to OSSRH
-- [[#4765](https://github.com/seata/seata/pull/4765)] mysql 8.0.29 not should be hold for connection
-- [[#4750](https://github.com/seata/seata/pull/4750)] optimize unBranchLock romove xid
-- [[#4797](https://github.com/seata/seata/pull/4797)] optimize the github actions
-- [[#4800](https://github.com/seata/seata/pull/4800)] Add NOTICE as Apache License V2
-- [[#4681](https://github.com/seata/seata/pull/4681)] optimize the check lock during global transaction
-- [[#4761](https://github.com/seata/seata/pull/4761)] use hget replace hmget because only one field
-- [[#4414](https://github.com/seata/seata/pull/4414)] exclude log4j dependencies
-- [[#4836](https://github.com/seata/seata/pull/4836)] optimize BaseTransactionalExecutor#buildLockKey(TableRecords rowsIncludingPK) method more readable
-- [[#4865](https://github.com/seata/seata/pull/4865)] fix some security vulnerabilities in GGEditor
-- [[#4590](https://github.com/seata/seata/pull/4590)] auto degrade enable to dynamic configure
-- [[#4490](https://github.com/seata/seata/pull/4490)] tccfence log table delete by index
-- [[#4911](https://github.com/seata/seata/pull/4911)] add license checker workflow
-- [[#4917](https://github.com/seata/seata/pull/4917)] upgrade package-lock.json fix vulnerabilities
-- [[#4924](https://github.com/seata/seata/pull/4924)] optimize pom dependencies
-- [[#4932](https://github.com/seata/seata/pull/4932)] extract the default values for some properties
-- [[#4925](https://github.com/seata/seata/pull/4925)] optimize java doc warning
-- [[#4921](https://github.com/seata/seata/pull/4921)] fix some vulnerabilities in console and upgrade skywalking-eyes
-- [[#4936](https://github.com/seata/seata/pull/4936)] optimize read of storage configuration
-- [[#4946](https://github.com/seata/seata/pull/4946)] pass the sqlexception to client when get lock
-- [[#4962](https://github.com/seata/seata/pull/4962)] optimize build and fix the base image
-- [[#4974](https://github.com/seata/seata/pull/4974)] optimize cancel the limit on the number of globalStatus queries in Redis mode
-- [[#4981](https://github.com/seata/seata/pull/4981)] optimize tcc fence record not exists errMessage
-- [[#4985](https://github.com/seata/seata/pull/4985)] fix undo_log id repeat
-- [[#4995](https://github.com/seata/seata/pull/4995)] fix mysql InsertOnDuplicateUpdate duplicate pk condition in after image query sql
-- [[#5047](https://github.com/seata/seata/pull/5047)] remove useless code
-- [[#5051](https://github.com/seata/seata/pull/5051)] undo log dirty throw BranchRollbackFailed_Unretriable
-- [[#5075](https://github.com/seata/seata/pull/5075)] intercept the InsertOnDuplicateUpdate statement which has no primary key and unique index value
-- [[#5104](https://github.com/seata/seata/pull/5104)] remove the druid dependency in ConnectionProxy
- [[#5120](https://github.com/seata/seata/pull/5120)] unify the format of configuration items in yml files
-- [[#5124](https://github.com/seata/seata/pull/5124)] support oracle on delete tccfence logs
- [[#5115](https://github.com/seata/seata/pull/5115)] compatible with the `spring-boot:3.x`
+- [[#5180](https://github.com/seata/seata/pull/5180)] GlobalTransactionScanner,SeataAutoDataSourceProxyCreator declare @bean methods as static
### test:
- [[#xxx](https://github.com/seata/seata/pull/xxx)] add test for xxx
@@ -51,5 +21,7 @@ Thanks to these contributors for their code commits. Please report an unintended
- [slievrly](https://github.com/slievrly)
- [wangliang181230](https://github.com/wangliang181230)
+- [xingfudeshi](https://github.com/xingfudeshi)
+- [whxxxxx](https://github.com/whxxxxx)
Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.
diff --git a/changes/zh-cn/develop.md b/changes/zh-cn/develop.md
index 65933891fe5..2101723c471 100644
--- a/changes/zh-cn/develop.md
+++ b/changes/zh-cn/develop.md
@@ -9,38 +9,9 @@
- [[#xxx](https://github.com/seata/seata/pull/xxx)] 修复 xxx
### optimize:
-- [[#4681](https://github.com/seata/seata/pull/4681)] 优化竞争锁过程
-- [[#4774](https://github.com/seata/seata/pull/4774)] 优化 seataio/seata-server 镜像中的 mysql8 依赖
-- [[#4750](https://github.com/seata/seata/pull/4750)] 优化AT分支释放全局锁不使用xid
-- [[#4790](https://github.com/seata/seata/pull/4790)] 添加一个 github action,用于自动发布Seata到OSSRH
-- [[#4765](https://github.com/seata/seata/pull/4765)] mysql8.0.29版本及以上XA模式不持connection至二阶段
-- [[#4797](https://github.com/seata/seata/pull/4797)] 优化所有github actions脚本
-- [[#4800](https://github.com/seata/seata/pull/4800)] 按照 Apache 协议规范,添加 NOTICE 文件
-- [[#4761](https://github.com/seata/seata/pull/4761)] 使用 hget 代替 RedisLocker 中的 hmget, 因为只有一个 field
-- [[#4414](https://github.com/seata/seata/pull/4414)] 移除log4j依赖
-- [[#4836](https://github.com/seata/seata/pull/4836)] 优化 BaseTransactionalExecutor#buildLockKey(TableRecords rowsIncludingPK) 方法可读性
-- [[#4865](https://github.com/seata/seata/pull/4865)] 修复 Saga 可视化设计器 GGEditor 安全漏洞
-- [[#4590](https://github.com/seata/seata/pull/4590)] 自动降级支持开关支持动态配置
-- [[#4490](https://github.com/seata/seata/pull/4490)] tccfence 记录表优化成按索引删除
-- [[#4911](https://github.com/seata/seata/pull/4911)] 添加 header 和license 检测
-- [[#4917](https://github.com/seata/seata/pull/4917)] 升级 package-lock.json 修复漏洞
-- [[#4924](https://github.com/seata/seata/pull/4924)] 优化 pom 依赖
-- [[#4932](https://github.com/seata/seata/pull/4932)] 抽取部分配置的默认值
-- [[#4925](https://github.com/seata/seata/pull/4925)] 优化 javadoc 注释
-- [[#4921](https://github.com/seata/seata/pull/4921)] 修复控制台模块安全漏洞和升级 skywalking-eyes 版本
-- [[#4936](https://github.com/seata/seata/pull/4936)] 优化存储配置的读取
-- [[#4946](https://github.com/seata/seata/pull/4946)] 将获取锁时遇到的sql异常传递给客户端
-- [[#4962](https://github.com/seata/seata/pull/4962)] 优化构建配置,并修正docker镜像的基础镜像
-- [[#4974](https://github.com/seata/seata/pull/4974)] 取消redis模式下,查询globalStatus条数的限制
-- [[#4981](https://github.com/seata/seata/pull/4981)] 优化当tcc栅栏记录查不到时的错误提示
-- [[#4995](https://github.com/seata/seata/pull/4995)] 修复mysql InsertOnDuplicateUpdate后置镜像查询SQL中重复的主键查询条件
-- [[#5047](https://github.com/seata/seata/pull/5047)] 移除无用代码
-- [[#5051](https://github.com/seata/seata/pull/5051)] 回滚时undolog产生脏写需要抛出不再重试(BranchRollbackFailed_Unretriable)的异常
-- [[#5075](https://github.com/seata/seata/pull/5075)] 拦截没有主键及唯一索引值的insert on duplicate update语句
-- [[#5104](https://github.com/seata/seata/pull/5104)] ConnectionProxy脱离对druid的依赖
- [[#5120](https://github.com/seata/seata/pull/5120)] 统一yml文件中的配置项格式
-- [[#5124](https://github.com/seata/seata/pull/5124)] 支持oracle删除tccfence记录表
- [[#5115](https://github.com/seata/seata/pull/5115)] 兼容 `spring-boot:3.x`
+- [[#5180](https://github.com/seata/seata/pull/5180)] GlobalTransactionScanner,SeataAutoDataSourceProxyCreator 创建bean用static修饰
### test:
- [[#4411](https://github.com/seata/seata/pull/4411)] 测试Oracle数据库AT模式下类型支持
@@ -55,5 +26,7 @@
- [slievrly](https://github.com/slievrly)
- [wangliang181230](https://github.com/wangliang181230)
+- [xingfudeshi](https://github.com/xingfudeshi)
+- [whxxxxx](https://github.com/whxxxxx)
同时,我们收到了社区反馈的很多有价值的issue和建议,非常感谢大家。
diff --git a/seata-spring-boot-starter/src/main/java/io/seata/spring/boot/autoconfigure/SeataAutoConfiguration.java b/seata-spring-boot-starter/src/main/java/io/seata/spring/boot/autoconfigure/SeataAutoConfiguration.java
index a261c789790..21d058a7bde 100644
--- a/seata-spring-boot-starter/src/main/java/io/seata/spring/boot/autoconfigure/SeataAutoConfiguration.java
+++ b/seata-spring-boot-starter/src/main/java/io/seata/spring/boot/autoconfigure/SeataAutoConfiguration.java
@@ -56,7 +56,7 @@ public FailureHandler failureHandler() {
@Bean
@DependsOn({BEAN_NAME_SPRING_APPLICATION_CONTEXT_PROVIDER, BEAN_NAME_FAILURE_HANDLER})
@ConditionalOnMissingBean(GlobalTransactionScanner.class)
- public GlobalTransactionScanner globalTransactionScanner(SeataProperties seataProperties, FailureHandler failureHandler,
+ public static GlobalTransactionScanner globalTransactionScanner(SeataProperties seataProperties, FailureHandler failureHandler,
ConfigurableListableBeanFactory beanFactory,
@Autowired(required = false) List scannerCheckers) {
if (LOGGER.isInfoEnabled()) {
diff --git a/seata-spring-boot-starter/src/main/java/io/seata/spring/boot/autoconfigure/SeataDataSourceAutoConfiguration.java b/seata-spring-boot-starter/src/main/java/io/seata/spring/boot/autoconfigure/SeataDataSourceAutoConfiguration.java
index 1df129143fe..a0dd9b9eb51 100644
--- a/seata-spring-boot-starter/src/main/java/io/seata/spring/boot/autoconfigure/SeataDataSourceAutoConfiguration.java
+++ b/seata-spring-boot-starter/src/main/java/io/seata/spring/boot/autoconfigure/SeataDataSourceAutoConfiguration.java
@@ -45,7 +45,7 @@ public class SeataDataSourceAutoConfiguration {
*/
@Bean(BEAN_NAME_SEATA_AUTO_DATA_SOURCE_PROXY_CREATOR)
@ConditionalOnMissingBean(SeataAutoDataSourceProxyCreator.class)
- public SeataAutoDataSourceProxyCreator seataAutoDataSourceProxyCreator(SeataProperties seataProperties) {
+ public static SeataAutoDataSourceProxyCreator seataAutoDataSourceProxyCreator(SeataProperties seataProperties) {
return new SeataAutoDataSourceProxyCreator(seataProperties.isUseJdkProxy(),
seataProperties.getExcludesForAutoProxying(), seataProperties.getDataSourceProxyMode());
}
From 23f16e39ba087e2da93a005cc418a265c62c81cc Mon Sep 17 00:00:00 2001
From: Richard Milllions <2234501359@qq.com>
Date: Wed, 21 Dec 2022 15:28:10 +0800
Subject: [PATCH 5/9] bugfix: fix ClassNotFoundException caused when server
starts when using Eureka (#5179)
---
dependencies/pom.xml | 4 ----
1 file changed, 4 deletions(-)
diff --git a/dependencies/pom.xml b/dependencies/pom.xml
index 3dea6c12f56..de852a77cb1 100644
--- a/dependencies/pom.xml
+++ b/dependencies/pom.xml
@@ -363,10 +363,6 @@
javax.servlet
servlet-api
-
- com.github.andrewoma.dexx
- dexx-collections
-
From 512e6059b293b51e8d099ec8b63185bd39e89270 Mon Sep 17 00:00:00 2001
From: jimin
Date: Wed, 21 Dec 2022 19:22:48 +0800
Subject: [PATCH 6/9] security: fix some security vulnerabilities in GGEditor
(#5182)
---
changes/en-us/develop.md | 6 +-
changes/zh-cn/develop.md | 11 +-
.../package-lock.json | 481 ++++++++++++------
3 files changed, 323 insertions(+), 175 deletions(-)
diff --git a/changes/en-us/develop.md b/changes/en-us/develop.md
index 0046408cd52..31856e9f535 100644
--- a/changes/en-us/develop.md
+++ b/changes/en-us/develop.md
@@ -3,15 +3,15 @@ Add changes here for all PR submitted to the develop branch.
### feature:
-- [[#xxx](https://github.com/seata/seata/pull/xxx)] support xxx
+- [[#5115](https://github.com/seata/seata/pull/5115)] support for `spring-boot:3.x`
### bugfix:
-- [[#xxx](https://github.com/seata/seata/pull/xxx)] fix xxx
+- [[#5179](https://github.com/seata/seata/pull/5179)] fix ClassNotFoundException when server starts using Eureka
### optimize:
- [[#5120](https://github.com/seata/seata/pull/5120)] unify the format of configuration items in yml files
-- [[#5115](https://github.com/seata/seata/pull/5115)] compatible with the `spring-boot:3.x`
- [[#5180](https://github.com/seata/seata/pull/5180)] GlobalTransactionScanner,SeataAutoDataSourceProxyCreator declare @bean methods as static
+- [[#5182](https://github.com/seata/seata/pull/5182)] fix some security vulnerabilities in GGEditor
### test:
- [[#xxx](https://github.com/seata/seata/pull/xxx)] add test for xxx
diff --git a/changes/zh-cn/develop.md b/changes/zh-cn/develop.md
index 2101723c471..e7b5aadc792 100644
--- a/changes/zh-cn/develop.md
+++ b/changes/zh-cn/develop.md
@@ -3,20 +3,15 @@
### feature:
-- [[#xxx](https://github.com/seata/seata/pull/xxx)] 支持 xxx
+- [[#5115](https://github.com/seata/seata/pull/5115)] 支持 `spring-boot:3.x`
### bugfix:
-- [[#xxx](https://github.com/seata/seata/pull/xxx)] 修复 xxx
+- [[#5179](https://github.com/seata/seata/pull/5179)] 修复使用Eureka作为注册中心ClassNotFoundException问题
### optimize:
- [[#5120](https://github.com/seata/seata/pull/5120)] 统一yml文件中的配置项格式
-- [[#5115](https://github.com/seata/seata/pull/5115)] 兼容 `spring-boot:3.x`
- [[#5180](https://github.com/seata/seata/pull/5180)] GlobalTransactionScanner,SeataAutoDataSourceProxyCreator 创建bean用static修饰
-
-### test:
-- [[#4411](https://github.com/seata/seata/pull/4411)] 测试Oracle数据库AT模式下类型支持
-- [[#4794](https://github.com/seata/seata/pull/4794)] 重构代码,尝试修复单元测试 `DataSourceProxyTest.getResourceIdTest()`
-- [[#5101](https://github.com/seata/seata/pull/5101)] 修复zk注册和配置中心报ClassNotFoundException的问题 `DataSourceProxyTest.getResourceIdTest()`
+- [[#5182](https://github.com/seata/seata/pull/5182)] 修复 Saga 可视化设计器 GGEditor 安全漏洞
### test:
- [[#xxx](https://github.com/seata/seata/pull/xxx)] 增加 xxx 测试
diff --git a/saga/seata-saga-statemachine-designer/package-lock.json b/saga/seata-saga-statemachine-designer/package-lock.json
index 1d8faad8089..c7b524146c0 100644
--- a/saga/seata-saga-statemachine-designer/package-lock.json
+++ b/saga/seata-saga-statemachine-designer/package-lock.json
@@ -2364,8 +2364,8 @@
"dependencies": {
"emojis-list": {
"version": "3.0.0",
- "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz",
- "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
+ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
"dev": true
},
"fast-deep-equal": {
@@ -2375,17 +2375,17 @@
},
"json5": {
"version": "1.0.1",
- "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&sync_timestamp=1586046271069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz",
- "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
"dev": true,
"requires": {
"minimist": "^1.2.0"
}
},
"loader-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz",
- "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=",
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
"dev": true,
"requires": {
"big.js": "^5.2.2",
@@ -2569,34 +2569,62 @@
"dev": true
},
"body-parser": {
- "version": "1.19.0",
- "resolved": "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz",
- "integrity": "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io=",
+ "version": "1.20.1",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
+ "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
"dev": true,
"requires": {
- "bytes": "3.1.0",
+ "bytes": "3.1.2",
"content-type": "~1.0.4",
"debug": "2.6.9",
- "depd": "~1.1.2",
- "http-errors": "1.7.2",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "http-errors": "2.0.0",
"iconv-lite": "0.4.24",
- "on-finished": "~2.3.0",
- "qs": "6.7.0",
- "raw-body": "2.4.0",
- "type-is": "~1.6.17"
+ "on-finished": "2.4.1",
+ "qs": "6.11.0",
+ "raw-body": "2.5.1",
+ "type-is": "~1.6.18",
+ "unpipe": "1.0.0"
},
"dependencies": {
"bytes": {
- "version": "3.1.0",
- "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.1.0.tgz",
- "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
"dev": true
},
- "qs": {
- "version": "6.7.0",
- "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz",
- "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=",
+ "depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+ "dev": true
+ },
+ "object-inspect": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
+ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
"dev": true
+ },
+ "qs": {
+ "version": "6.11.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
+ "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
+ "dev": true,
+ "requires": {
+ "side-channel": "^1.0.4"
+ }
+ },
+ "side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ }
}
}
},
@@ -2872,6 +2900,16 @@
"unset-value": "^1.0.0"
}
},
+ "call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ }
+ },
"caller-callsite": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
@@ -3203,18 +3241,26 @@
"dev": true
},
"content-disposition": {
- "version": "0.5.3",
- "resolved": "https://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontent-disposition%2Fdownload%2Fcontent-disposition-0.5.3.tgz",
- "integrity": "sha1-4TDK9+cnkIfFYWwgB9BIVpiYT70=",
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
"dev": true,
"requires": {
- "safe-buffer": "5.1.2"
+ "safe-buffer": "5.2.1"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true
+ }
}
},
"content-type": {
"version": "1.0.4",
- "resolved": "https://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz",
- "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
"dev": true
},
"conventional-commit-types": {
@@ -3233,15 +3279,15 @@
}
},
"cookie": {
- "version": "0.4.0",
- "resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.4.0.tgz",
- "integrity": "sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo=",
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
"dev": true
},
"cookie-signature": {
"version": "1.0.6",
- "resolved": "https://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz",
- "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
"dev": true
},
"copy-concurrently": {
@@ -4063,9 +4109,9 @@
}
},
"destroy": {
- "version": "1.0.4",
- "resolved": "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz",
- "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
"dev": true
},
"detect-file": {
@@ -4169,8 +4215,8 @@
},
"ee-first": {
"version": "1.1.1",
- "resolved": "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz",
- "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
"dev": true
},
"elliptic": {
@@ -4203,15 +4249,15 @@
"dev": true
},
"emojis-list": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
- "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
+ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
"dev": true
},
"encodeurl": {
"version": "1.0.2",
- "resolved": "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz",
- "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
"dev": true
},
"end-of-stream": {
@@ -4700,8 +4746,8 @@
},
"etag": {
"version": "1.8.1",
- "resolved": "https://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz",
- "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
"dev": true
},
"eventemitter3": {
@@ -4795,53 +4841,123 @@
}
},
"express": {
- "version": "4.17.1",
- "resolved": "https://registry.npm.taobao.org/express/download/express-4.17.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpress%2Fdownload%2Fexpress-4.17.1.tgz",
- "integrity": "sha1-RJH8OGBc9R+GKdOcK10Cb5ikwTQ=",
+ "version": "4.18.2",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
+ "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
"dev": true,
"requires": {
- "accepts": "~1.3.7",
+ "accepts": "~1.3.8",
"array-flatten": "1.1.1",
- "body-parser": "1.19.0",
- "content-disposition": "0.5.3",
+ "body-parser": "1.20.1",
+ "content-disposition": "0.5.4",
"content-type": "~1.0.4",
- "cookie": "0.4.0",
+ "cookie": "0.5.0",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
- "depd": "~1.1.2",
+ "depd": "2.0.0",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
- "finalhandler": "~1.1.2",
+ "finalhandler": "1.2.0",
"fresh": "0.5.2",
+ "http-errors": "2.0.0",
"merge-descriptors": "1.0.1",
"methods": "~1.1.2",
- "on-finished": "~2.3.0",
+ "on-finished": "2.4.1",
"parseurl": "~1.3.3",
"path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.5",
- "qs": "6.7.0",
+ "proxy-addr": "~2.0.7",
+ "qs": "6.11.0",
"range-parser": "~1.2.1",
- "safe-buffer": "5.1.2",
- "send": "0.17.1",
- "serve-static": "1.14.1",
- "setprototypeof": "1.1.1",
- "statuses": "~1.5.0",
+ "safe-buffer": "5.2.1",
+ "send": "0.18.0",
+ "serve-static": "1.15.0",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
"type-is": "~1.6.18",
"utils-merge": "1.0.1",
"vary": "~1.1.2"
},
"dependencies": {
+ "accepts": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+ "dev": true,
+ "requires": {
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ }
+ },
"array-flatten": {
"version": "1.1.1",
- "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-1.1.1.tgz",
- "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
+ "dev": true
+ },
+ "depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+ "dev": true
+ },
+ "mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dev": true,
+ "requires": {
+ "mime-db": "1.52.0"
+ }
+ },
+ "negotiator": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+ "dev": true
+ },
+ "object-inspect": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
+ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
"dev": true
},
"qs": {
- "version": "6.7.0",
- "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz",
- "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=",
+ "version": "6.11.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
+ "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
+ "dev": true,
+ "requires": {
+ "side-channel": "^1.0.4"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true
+ },
+ "side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ }
+ },
+ "statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
"dev": true
}
}
@@ -5038,18 +5154,26 @@
}
},
"finalhandler": {
- "version": "1.1.2",
- "resolved": "https://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.2.tgz",
- "integrity": "sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0=",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
+ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
"dev": true,
"requires": {
"debug": "2.6.9",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
+ "on-finished": "2.4.1",
"parseurl": "~1.3.3",
- "statuses": "~1.5.0",
+ "statuses": "2.0.1",
"unpipe": "~1.0.0"
+ },
+ "dependencies": {
+ "statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+ "dev": true
+ }
}
},
"find-babel-config": {
@@ -5178,9 +5302,9 @@
}
},
"forwarded": {
- "version": "0.1.2",
- "resolved": "https://registry.npm.taobao.org/forwarded/download/forwarded-0.1.2.tgz",
- "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
"dev": true
},
"fragment-cache": {
@@ -5194,8 +5318,8 @@
},
"fresh": {
"version": "0.5.2",
- "resolved": "https://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz",
- "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
"dev": true
},
"from2": {
@@ -5267,6 +5391,25 @@
"integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=",
"dev": true
},
+ "get-intrinsic": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
+ "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
+ },
+ "dependencies": {
+ "has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "dev": true
+ }
+ }
+ },
"get-stream": {
"version": "4.1.0",
"resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz",
@@ -5571,22 +5714,28 @@
"dev": true
},
"http-errors": {
- "version": "1.7.2",
- "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz?cache=0&sync_timestamp=1593407647372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz",
- "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
"dev": true,
"requires": {
- "depd": "~1.1.2",
- "inherits": "2.0.3",
- "setprototypeof": "1.1.1",
- "statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.0"
+ "depd": "2.0.0",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "toidentifier": "1.0.1"
},
"dependencies": {
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+ "dev": true
+ },
+ "statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
"dev": true
}
}
@@ -6397,13 +6546,13 @@
"dev": true
},
"loader-utils": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
- "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
"dev": true,
"requires": {
"big.js": "^5.2.2",
- "emojis-list": "^2.0.0",
+ "emojis-list": "^3.0.0",
"json5": "^1.0.1"
},
"dependencies": {
@@ -6541,8 +6690,8 @@
},
"media-typer": {
"version": "0.3.0",
- "resolved": "https://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz",
- "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
"dev": true
},
"memory-fs": {
@@ -6557,14 +6706,14 @@
},
"merge-descriptors": {
"version": "1.0.1",
- "resolved": "https://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz",
- "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==",
"dev": true
},
"methods": {
"version": "1.1.2",
- "resolved": "https://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz",
- "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
"dev": true
},
"micromatch": {
@@ -6646,9 +6795,9 @@
"dev": true
},
"minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
"requires": {
"brace-expansion": "^1.1.7"
@@ -7130,9 +7279,9 @@
"dev": true
},
"on-finished": {
- "version": "2.3.0",
- "resolved": "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz",
- "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
"dev": true,
"requires": {
"ee-first": "1.1.1"
@@ -7362,8 +7511,8 @@
},
"path-to-regexp": {
"version": "0.1.7",
- "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz",
- "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==",
"dev": true
},
"path-type": {
@@ -8102,12 +8251,12 @@
}
},
"proxy-addr": {
- "version": "2.0.6",
- "resolved": "https://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.6.tgz",
- "integrity": "sha1-/cIzZQVEfT8vLGOO0nLK9hS7sr8=",
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
"dev": true,
"requires": {
- "forwarded": "~0.1.2",
+ "forwarded": "0.2.0",
"ipaddr.js": "1.9.1"
}
},
@@ -8236,21 +8385,21 @@
"dev": true
},
"raw-body": {
- "version": "2.4.0",
- "resolved": "https://registry.npm.taobao.org/raw-body/download/raw-body-2.4.0.tgz",
- "integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=",
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
+ "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
"dev": true,
"requires": {
- "bytes": "3.1.0",
- "http-errors": "1.7.2",
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
"iconv-lite": "0.4.24",
"unpipe": "1.0.0"
},
"dependencies": {
"bytes": {
- "version": "3.1.0",
- "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.1.0.tgz",
- "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
"dev": true
}
}
@@ -8758,30 +8907,42 @@
"dev": true
},
"send": {
- "version": "0.17.1",
- "resolved": "https://registry.npm.taobao.org/send/download/send-0.17.1.tgz",
- "integrity": "sha1-wdiwWfeQD3Rm3Uk4vcROEd2zdsg=",
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
+ "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
"dev": true,
"requires": {
"debug": "2.6.9",
- "depd": "~1.1.2",
- "destroy": "~1.0.4",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"fresh": "0.5.2",
- "http-errors": "~1.7.2",
+ "http-errors": "2.0.0",
"mime": "1.6.0",
- "ms": "2.1.1",
- "on-finished": "~2.3.0",
+ "ms": "2.1.3",
+ "on-finished": "2.4.1",
"range-parser": "~1.2.1",
- "statuses": "~1.5.0"
+ "statuses": "2.0.1"
},
"dependencies": {
+ "depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+ "dev": true
+ },
"ms": {
- "version": "2.1.1",
- "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.1.tgz",
- "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=",
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
+ },
+ "statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
"dev": true
}
}
@@ -8837,15 +8998,15 @@
}
},
"serve-static": {
- "version": "1.14.1",
- "resolved": "https://registry.npm.taobao.org/serve-static/download/serve-static-1.14.1.tgz",
- "integrity": "sha1-Zm5jbcTwEPfvKZcKiKZ0MgiYsvk=",
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
+ "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
"dev": true,
"requires": {
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"parseurl": "~1.3.3",
- "send": "0.17.1"
+ "send": "0.18.0"
}
},
"set-blocking": {
@@ -8884,9 +9045,9 @@
"dev": true
},
"setprototypeof": {
- "version": "1.1.1",
- "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz?cache=0&sync_timestamp=1563425414995&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.1.tgz",
- "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
"dev": true
},
"sha.js": {
@@ -9643,8 +9804,7 @@
"dependencies": {
"ansi-regex": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "resolved": "",
"dev": true
},
"string-width": {
@@ -9820,9 +9980,9 @@
}
},
"toidentifier": {
- "version": "1.0.0",
- "resolved": "https://registry.npm.taobao.org/toidentifier/download/toidentifier-1.0.0.tgz",
- "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
"dev": true
},
"tough-cookie": {
@@ -9899,8 +10059,8 @@
},
"type-is": {
"version": "1.6.18",
- "resolved": "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz",
- "integrity": "sha1-TlUs0F3wlGfcvE73Od6J8s83wTE=",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
"dev": true,
"requires": {
"media-typer": "0.3.0",
@@ -9979,8 +10139,8 @@
},
"unpipe": {
"version": "1.0.0",
- "resolved": "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz",
- "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
"dev": true
},
"unset-value": {
@@ -10121,8 +10281,8 @@
},
"utils-merge": {
"version": "1.0.1",
- "resolved": "https://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz",
- "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
"dev": true
},
"uuid": {
@@ -10386,25 +10546,19 @@
"yargs": "^13.3.2"
},
"dependencies": {
- "emojis-list": {
- "version": "3.0.0",
- "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz",
- "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=",
- "dev": true
- },
"json5": {
"version": "1.0.1",
- "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&sync_timestamp=1586046271069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz",
- "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
"dev": true,
"requires": {
"minimist": "^1.2.0"
}
},
"loader-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz",
- "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=",
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
"dev": true,
"requires": {
"big.js": "^5.2.2",
@@ -10711,8 +10865,7 @@
"dependencies": {
"ansi-regex": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "resolved": "",
"dev": true
},
"string-width": {
From 4bad6255f8e60e8d04dd46379c461700fee1a239 Mon Sep 17 00:00:00 2001
From: jimin
Date: Wed, 21 Dec 2022 20:41:50 +0800
Subject: [PATCH 7/9] optimize: optimize the default values for some switches
(#5183)
---
changes/en-us/develop.md | 1 +
changes/zh-cn/develop.md | 1 +
.../java/io/seata/common/DefaultValues.java | 16 +++++++--
.../server/ServerOnRequestProcessor.java | 2 +-
.../store/db/AbstractDataSourceProvider.java | 7 ++--
script/client/conf/file.conf | 4 ++-
script/client/spring/application.properties | 2 +-
script/client/spring/application.yml | 2 +-
.../server/store/StoreDBProperties.java | 9 +++--
.../server/store/StoreRedisProperties.java | 9 +++--
.../DataBaseTransactionStoreManager.java | 7 ++--
.../storage/redis/JedisPooledFactory.java | 19 +++++------
.../store/RedisTransactionStoreManager.java | 34 ++++++++++---------
.../main/resources/application.example.yml | 13 +++----
14 files changed, 75 insertions(+), 51 deletions(-)
diff --git a/changes/en-us/develop.md b/changes/en-us/develop.md
index 31856e9f535..a7a1c9427ab 100644
--- a/changes/en-us/develop.md
+++ b/changes/en-us/develop.md
@@ -12,6 +12,7 @@ Add changes here for all PR submitted to the develop branch.
- [[#5120](https://github.com/seata/seata/pull/5120)] unify the format of configuration items in yml files
- [[#5180](https://github.com/seata/seata/pull/5180)] GlobalTransactionScanner,SeataAutoDataSourceProxyCreator declare @bean methods as static
- [[#5182](https://github.com/seata/seata/pull/5182)] fix some security vulnerabilities in GGEditor
+- [[#5183](https://github.com/seata/seata/pull/5183)] optimize the default values for some switches
### test:
- [[#xxx](https://github.com/seata/seata/pull/xxx)] add test for xxx
diff --git a/changes/zh-cn/develop.md b/changes/zh-cn/develop.md
index e7b5aadc792..29e66530e0e 100644
--- a/changes/zh-cn/develop.md
+++ b/changes/zh-cn/develop.md
@@ -12,6 +12,7 @@
- [[#5120](https://github.com/seata/seata/pull/5120)] 统一yml文件中的配置项格式
- [[#5180](https://github.com/seata/seata/pull/5180)] GlobalTransactionScanner,SeataAutoDataSourceProxyCreator 创建bean用static修饰
- [[#5182](https://github.com/seata/seata/pull/5182)] 修复 Saga 可视化设计器 GGEditor 安全漏洞
+- [[#5183](https://github.com/seata/seata/pull/5183)] 优化配置开关的默认值
### test:
- [[#xxx](https://github.com/seata/seata/pull/xxx)] 增加 xxx 测试
diff --git a/common/src/main/java/io/seata/common/DefaultValues.java b/common/src/main/java/io/seata/common/DefaultValues.java
index 180d75dcfe3..8ab3777d72e 100644
--- a/common/src/main/java/io/seata/common/DefaultValues.java
+++ b/common/src/main/java/io/seata/common/DefaultValues.java
@@ -168,7 +168,7 @@ public interface DefaultValues {
/**
* the constant DEFAULT_RPC_RM_REQUEST_TIMEOUT
*/
- long DEFAULT_RPC_RM_REQUEST_TIMEOUT = Duration.ofSeconds(30).toMillis();
+ long DEFAULT_RPC_RM_REQUEST_TIMEOUT = Duration.ofSeconds(15).toMillis();
/**
* the constant DEFAULT_RPC_TM_REQUEST_TIMEOUT
@@ -178,7 +178,7 @@ public interface DefaultValues {
/**
* the constant DEFAULT_RPC_TC_REQUEST_TIMEOUT
*/
- long DEFAULT_RPC_TC_REQUEST_TIMEOUT = Duration.ofSeconds(30).toMillis();
+ long DEFAULT_RPC_TC_REQUEST_TIMEOUT = Duration.ofSeconds(15).toMillis();
/**
* the constant DEFAULT_XAER_NOTA_RETRY_TIMEOUT
@@ -269,4 +269,16 @@ public interface DefaultValues {
* DEFAULT_ENABLE_BRANCH_ASYNC_REMOVE
*/
boolean DEFAULT_ENABLE_BRANCH_ASYNC_REMOVE = false;
+
+ int DEFAULT_DB_MAX_CONN = 100;
+
+ int DEFAULT_DB_MIN_CONN = 10;
+
+ int DEFAULT_REDIS_MAX_IDLE = 100;
+
+ int DEFAULT_REDIS_MAX_TOTAL = 100;
+
+ int DEFAULT_REDIS_MIN_IDLE = 10;
+
+ int DEFAULT_QUERY_LIMIT = 1000;
}
diff --git a/core/src/main/java/io/seata/core/rpc/processor/server/ServerOnRequestProcessor.java b/core/src/main/java/io/seata/core/rpc/processor/server/ServerOnRequestProcessor.java
index 2d0207b621b..b5933444384 100644
--- a/core/src/main/java/io/seata/core/rpc/processor/server/ServerOnRequestProcessor.java
+++ b/core/src/main/java/io/seata/core/rpc/processor/server/ServerOnRequestProcessor.java
@@ -102,7 +102,7 @@ public class ServerOnRequestProcessor implements RemotingProcessor, Disposable {
private static final long KEEP_ALIVE_TIME = Integer.MAX_VALUE;
private static final String BATCH_RESPONSE_THREAD_PREFIX = "rpcBatchResponse";
private static final boolean PARALLEL_REQUEST_HANDLE =
- ConfigurationFactory.getInstance().getBoolean(ConfigurationKeys.ENABLE_PARALLEL_REQUEST_HANDLE_KEY, false);
+ ConfigurationFactory.getInstance().getBoolean(ConfigurationKeys.ENABLE_PARALLEL_REQUEST_HANDLE_KEY, true);
public ServerOnRequestProcessor(RemotingServer remotingServer, TransactionMessageHandler transactionMessageHandler) {
this.remotingServer = remotingServer;
diff --git a/core/src/main/java/io/seata/core/store/db/AbstractDataSourceProvider.java b/core/src/main/java/io/seata/core/store/db/AbstractDataSourceProvider.java
index 45c0d69094b..fee3c98f0b7 100644
--- a/core/src/main/java/io/seata/core/store/db/AbstractDataSourceProvider.java
+++ b/core/src/main/java/io/seata/core/store/db/AbstractDataSourceProvider.java
@@ -35,6 +35,9 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import static io.seata.common.DefaultValues.DEFAULT_DB_MAX_CONN;
+import static io.seata.common.DefaultValues.DEFAULT_DB_MIN_CONN;
+
/**
* The abstract datasource provider
*
@@ -60,10 +63,6 @@ public abstract class AbstractDataSourceProvider implements DataSourceProvider,
private final static Map MYSQL_DRIVER_LOADERS;
- private static final int DEFAULT_DB_MAX_CONN = 20;
-
- private static final int DEFAULT_DB_MIN_CONN = 1;
-
private static final long DEFAULT_DB_MAX_WAIT = 5000;
static {
diff --git a/script/client/conf/file.conf b/script/client/conf/file.conf
index 69c67c58916..7c99daa059a 100644
--- a/script/client/conf/file.conf
+++ b/script/client/conf/file.conf
@@ -26,7 +26,9 @@ transport {
# the rm client rpc request timeout
rpcRmRequestTimeout = 2000
# the tm client rpc request timeout
- rpcTmRequestTimeout = 10000
+ rpcTmRequestTimeout = 30000
+ # the rm client rpc request timeout
+ rpcRmRequestTimeout = 15000
#thread factory for netty
threadFactory {
bossThreadPrefix = "NettyBoss"
diff --git a/script/client/spring/application.properties b/script/client/spring/application.properties
index 3054e01c957..0c4d4b72d42 100755
--- a/script/client/spring/application.properties
+++ b/script/client/spring/application.properties
@@ -78,7 +78,7 @@ seata.transport.serialization=seata
seata.transport.compressor=none
seata.transport.enable-tm-client-batch-send-request=false
seata.transport.enable-rm-client-batch-send-request=true
-seata.transport.rpc-rm-request-timeout=30000
+seata.transport.rpc-rm-request-timeout=15000
seata.transport.rpc-tm-request-timeout=30000
seata.config.type=file
diff --git a/script/client/spring/application.yml b/script/client/spring/application.yml
index 6f8f59cede4..9a547964d57 100755
--- a/script/client/spring/application.yml
+++ b/script/client/spring/application.yml
@@ -73,7 +73,7 @@ seata:
compressor: none
enable-tm-client-batch-send-request: false
enable-rm-client-batch-send-request: true
- rpc-rm-request-timeout: 30000
+ rpc-rm-request-timeout: 15000
rpc-tm-request-timeout: 30000
config:
type: file
diff --git a/seata-spring-autoconfigure/seata-spring-autoconfigure-server/src/main/java/io/seata/spring/boot/autoconfigure/properties/server/store/StoreDBProperties.java b/seata-spring-autoconfigure/seata-spring-autoconfigure-server/src/main/java/io/seata/spring/boot/autoconfigure/properties/server/store/StoreDBProperties.java
index 5d63dfb888b..0bd3c8db313 100644
--- a/seata-spring-autoconfigure/seata-spring-autoconfigure-server/src/main/java/io/seata/spring/boot/autoconfigure/properties/server/store/StoreDBProperties.java
+++ b/seata-spring-autoconfigure/seata-spring-autoconfigure-server/src/main/java/io/seata/spring/boot/autoconfigure/properties/server/store/StoreDBProperties.java
@@ -18,6 +18,9 @@
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
+import static io.seata.common.DefaultValues.DEFAULT_DB_MAX_CONN;
+import static io.seata.common.DefaultValues.DEFAULT_DB_MIN_CONN;
+import static io.seata.common.DefaultValues.DEFAULT_QUERY_LIMIT;
import static io.seata.spring.boot.autoconfigure.StarterConstants.STORE_DB_PREFIX;
/**
@@ -32,13 +35,13 @@ public class StoreDBProperties {
private String url = "jdbc:mysql://127.0.0.1:3306/seata?rewriteBatchedStatements=true";
private String user = "mysql";
private String password = "mysql";
- private Integer minConn = 5;
- private Integer maxConn = 100;
+ private Integer minConn = DEFAULT_DB_MIN_CONN;
+ private Integer maxConn = DEFAULT_DB_MAX_CONN;
private String globalTable = "global_table";
private String branchTable = "branch_table";
private String lockTable = "lock_table";
private String distributedLockTable = "distributed_lock";
- private Integer queryLimit = 100;
+ private Integer queryLimit = DEFAULT_QUERY_LIMIT;
private Integer maxWait = 5000;
public String getDatasource() {
diff --git a/seata-spring-autoconfigure/seata-spring-autoconfigure-server/src/main/java/io/seata/spring/boot/autoconfigure/properties/server/store/StoreRedisProperties.java b/seata-spring-autoconfigure/seata-spring-autoconfigure-server/src/main/java/io/seata/spring/boot/autoconfigure/properties/server/store/StoreRedisProperties.java
index d695699abf5..c6420d84db7 100644
--- a/seata-spring-autoconfigure/seata-spring-autoconfigure-server/src/main/java/io/seata/spring/boot/autoconfigure/properties/server/store/StoreRedisProperties.java
+++ b/seata-spring-autoconfigure/seata-spring-autoconfigure-server/src/main/java/io/seata/spring/boot/autoconfigure/properties/server/store/StoreRedisProperties.java
@@ -18,6 +18,9 @@
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
+import static io.seata.common.DefaultValues.DEFAULT_QUERY_LIMIT;
+import static io.seata.common.DefaultValues.DEFAULT_REDIS_MAX_IDLE;
+import static io.seata.common.DefaultValues.DEFAULT_REDIS_MIN_IDLE;
import static io.seata.spring.boot.autoconfigure.StarterConstants.STORE_REDIS_PREFIX;
import static io.seata.spring.boot.autoconfigure.StarterConstants.STORE_REDIS_SINGLE_PREFIX;
import static io.seata.spring.boot.autoconfigure.StarterConstants.STORE_REDIS_SENTINEL_PREFIX;
@@ -33,10 +36,10 @@ public class StoreRedisProperties {
*/
private String mode = "single";
private String password;
- private Integer maxConn = 10;
- private Integer minConn = 1;
+ private Integer maxConn = DEFAULT_REDIS_MAX_IDLE;
+ private Integer minConn = DEFAULT_REDIS_MIN_IDLE;
private Integer database = 0;
- private Integer queryLimit = 100;
+ private Integer queryLimit = DEFAULT_QUERY_LIMIT;
private Integer maxTotal = 100;
public String getMode() {
diff --git a/server/src/main/java/io/seata/server/storage/db/store/DataBaseTransactionStoreManager.java b/server/src/main/java/io/seata/server/storage/db/store/DataBaseTransactionStoreManager.java
index 2889b851abb..d4daefa23ec 100644
--- a/server/src/main/java/io/seata/server/storage/db/store/DataBaseTransactionStoreManager.java
+++ b/server/src/main/java/io/seata/server/storage/db/store/DataBaseTransactionStoreManager.java
@@ -21,6 +21,7 @@
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
+
import javax.sql.DataSource;
import io.seata.common.exception.StoreException;
@@ -37,12 +38,12 @@
import io.seata.core.store.db.DataSourceProvider;
import io.seata.server.session.GlobalSession;
import io.seata.server.session.SessionCondition;
+import io.seata.server.storage.SessionConverter;
import io.seata.server.store.AbstractTransactionStoreManager;
import io.seata.server.store.SessionStorable;
import io.seata.server.store.TransactionStoreManager;
-import io.seata.server.storage.SessionConverter;
-import static io.seata.core.constants.RedisKeyConstants.DEFAULT_LOG_QUERY_LIMIT;
+import static io.seata.common.DefaultValues.DEFAULT_QUERY_LIMIT;
/**
* The type Database transaction store manager.
@@ -87,7 +88,7 @@ public static DataBaseTransactionStoreManager getInstance() {
* Instantiates a new Database transaction store manager.
*/
private DataBaseTransactionStoreManager() {
- logQueryLimit = CONFIG.getInt(ConfigurationKeys.STORE_DB_LOG_QUERY_LIMIT, DEFAULT_LOG_QUERY_LIMIT);
+ logQueryLimit = CONFIG.getInt(ConfigurationKeys.STORE_DB_LOG_QUERY_LIMIT, DEFAULT_QUERY_LIMIT);
String datasourceType = CONFIG.getConfig(ConfigurationKeys.STORE_DB_DATASOURCE_TYPE);
//init dataSource
DataSource logStoreDataSource = EnhancedServiceLoader.load(DataSourceProvider.class, datasourceType).provide();
diff --git a/server/src/main/java/io/seata/server/storage/redis/JedisPooledFactory.java b/server/src/main/java/io/seata/server/storage/redis/JedisPooledFactory.java
index 6e580ca6568..d3d1a442eed 100644
--- a/server/src/main/java/io/seata/server/storage/redis/JedisPooledFactory.java
+++ b/server/src/main/java/io/seata/server/storage/redis/JedisPooledFactory.java
@@ -33,6 +33,10 @@
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.JedisSentinelPool;
+import static io.seata.common.DefaultValues.DEFAULT_REDIS_MAX_IDLE;
+import static io.seata.common.DefaultValues.DEFAULT_REDIS_MAX_TOTAL;
+import static io.seata.common.DefaultValues.DEFAULT_REDIS_MIN_IDLE;
+
/**
* @author funkye
*/
@@ -47,13 +51,6 @@ public class JedisPooledFactory {
private static final String HOST = "127.0.0.1";
private static final int PORT = 6379;
-
- private static final int MINCONN = 1;
-
- private static final int MAXCONN = 10;
-
- private static final int MAXTOTAL = 100;
-
private static final int DATABASE = 0;
private static final int SENTINEL_HOST_NUMBER = 3;
@@ -87,9 +84,11 @@ public static JedisPoolAbstract getJedisPoolInstance(JedisPoolAbstract... jedisP
}
}
JedisPoolConfig poolConfig = new JedisPoolConfig();
- poolConfig.setMinIdle(CONFIGURATION.getInt(ConfigurationKeys.STORE_REDIS_MIN_CONN, MINCONN));
- poolConfig.setMaxIdle(CONFIGURATION.getInt(ConfigurationKeys.STORE_REDIS_MAX_CONN, MAXCONN));
- poolConfig.setMaxTotal(CONFIGURATION.getInt(ConfigurationKeys.STORE_REDIS_MAX_TOTAL, MAXTOTAL));
+ poolConfig.setMinIdle(CONFIGURATION.getInt(ConfigurationKeys.STORE_REDIS_MIN_CONN,
+ DEFAULT_REDIS_MIN_IDLE));
+ poolConfig.setMaxIdle(CONFIGURATION.getInt(ConfigurationKeys.STORE_REDIS_MAX_CONN,
+ DEFAULT_REDIS_MAX_IDLE));
+ poolConfig.setMaxTotal(CONFIGURATION.getInt(ConfigurationKeys.STORE_REDIS_MAX_TOTAL, DEFAULT_REDIS_MAX_TOTAL));
String mode = CONFIGURATION.getConfig(ConfigurationKeys.STORE_REDIS_MODE,ConfigurationKeys.REDIS_SINGLE_MODE);
if (mode.equals(ConfigurationKeys.REDIS_SENTINEL_MODE)) {
String masterName = CONFIGURATION.getConfig(ConfigurationKeys.STORE_REDIS_SENTINEL_MASTERNAME);
diff --git a/server/src/main/java/io/seata/server/storage/redis/store/RedisTransactionStoreManager.java b/server/src/main/java/io/seata/server/storage/redis/store/RedisTransactionStoreManager.java
index b4b23a79d74..dd50ca12175 100644
--- a/server/src/main/java/io/seata/server/storage/redis/store/RedisTransactionStoreManager.java
+++ b/server/src/main/java/io/seata/server/storage/redis/store/RedisTransactionStoreManager.java
@@ -15,25 +15,21 @@
*/
package io.seata.server.storage.redis.store;
-import java.util.Iterator;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
+import java.util.Date;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import java.util.Date;
import java.util.Objects;
import java.util.Optional;
-import java.util.Collections;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;
-import io.seata.config.Configuration;
-import io.seata.config.ConfigurationFactory;
-import io.seata.server.session.SessionStatusValidator;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+
import com.google.common.collect.ImmutableMap;
import io.seata.common.XID;
import io.seata.common.exception.RedisException;
@@ -41,29 +37,35 @@
import io.seata.common.util.BeanUtils;
import io.seata.common.util.CollectionUtils;
import io.seata.common.util.StringUtils;
-import io.seata.server.console.param.GlobalSessionParam;
+import io.seata.config.Configuration;
+import io.seata.config.ConfigurationFactory;
import io.seata.core.model.GlobalStatus;
import io.seata.core.store.BranchTransactionDO;
import io.seata.core.store.GlobalTransactionDO;
+import io.seata.server.console.param.GlobalSessionParam;
import io.seata.server.session.GlobalSession;
import io.seata.server.session.SessionCondition;
+import io.seata.server.session.SessionStatusValidator;
import io.seata.server.storage.SessionConverter;
import io.seata.server.storage.redis.JedisPooledFactory;
import io.seata.server.store.AbstractTransactionStoreManager;
import io.seata.server.store.SessionStorable;
import io.seata.server.store.TransactionStoreManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.Pipeline;
import redis.clients.jedis.Transaction;
+
import static io.seata.common.ConfigurationKeys.STORE_REDIS_QUERY_LIMIT;
-import static io.seata.core.constants.RedisKeyConstants.REDIS_KEY_BRANCH_XID;
-import static io.seata.core.constants.RedisKeyConstants.REDIS_KEY_GLOBAL_XID;
-import static io.seata.core.constants.RedisKeyConstants.DEFAULT_LOG_QUERY_LIMIT;
+import static io.seata.common.DefaultValues.DEFAULT_QUERY_LIMIT;
+import static io.seata.core.constants.RedisKeyConstants.REDIS_KEY_BRANCH_APPLICATION_DATA;
+import static io.seata.core.constants.RedisKeyConstants.REDIS_KEY_BRANCH_GMT_MODIFIED;
import static io.seata.core.constants.RedisKeyConstants.REDIS_KEY_BRANCH_STATUS;
-import static io.seata.core.constants.RedisKeyConstants.REDIS_KEY_GLOBAL_STATUS;
+import static io.seata.core.constants.RedisKeyConstants.REDIS_KEY_BRANCH_XID;
import static io.seata.core.constants.RedisKeyConstants.REDIS_KEY_GLOBAL_GMT_MODIFIED;
-import static io.seata.core.constants.RedisKeyConstants.REDIS_KEY_BRANCH_GMT_MODIFIED;
-import static io.seata.core.constants.RedisKeyConstants.REDIS_KEY_BRANCH_APPLICATION_DATA;
+import static io.seata.core.constants.RedisKeyConstants.REDIS_KEY_GLOBAL_STATUS;
+import static io.seata.core.constants.RedisKeyConstants.REDIS_KEY_GLOBAL_XID;
/**
* The redis transaction store manager
@@ -126,7 +128,7 @@ public RedisTransactionStoreManager() {
super();
initGlobalMap();
initBranchMap();
- logQueryLimit = CONFIG.getInt(STORE_REDIS_QUERY_LIMIT, DEFAULT_LOG_QUERY_LIMIT);
+ logQueryLimit = CONFIG.getInt(STORE_REDIS_QUERY_LIMIT, DEFAULT_QUERY_LIMIT);
}
/**
diff --git a/server/src/main/resources/application.example.yml b/server/src/main/resources/application.example.yml
index f42f934f3a2..4e46e672825 100644
--- a/server/src/main/resources/application.example.yml
+++ b/server/src/main/resources/application.example.yml
@@ -124,6 +124,7 @@ seata:
enable-parallel-request-handle: true
retry-dead-threshold: 130000
xaer-nota-retry-timeout: 60000
+ enableParallelRequestHandle: true
recovery:
committing-retry-period: 1000
async-committing-retry-period: 1000
@@ -156,22 +157,22 @@ seata:
url: jdbc:mysql://127.0.0.1:3306/seata?rewriteBatchedStatements=true
user: mysql
password: mysql
- min-conn: 5
+ min-conn: 10
max-conn: 100
global-table: global_table
branch-table: branch_table
lock-table: lock_table
distributed-lock-table: distributed_lock
- query-limit: 100
+ query-limit: 1000
max-wait: 5000
redis:
mode: single
database: 0
- min-conn: 1
- max-conn: 10
+ min-conn: 10
+ max-conn: 100
password:
max-total: 100
- query-limit: 100
+ query-limit: 1000
single:
host: 127.0.0.1
port: 6379
@@ -184,7 +185,7 @@ seata:
exporter-list: prometheus
exporter-prometheus-port: 9898
transport:
- rpc-tc-request-timeout: 30000
+ rpc-tc-request-timeout: 15000
enable-tc-server-batch-send-response: false
shutdown:
wait: 3
From c866966a5ba1be10f606bdb64fa70d3d0359cad6 Mon Sep 17 00:00:00 2001
From: jimin
Date: Wed, 21 Dec 2022 20:57:37 +0800
Subject: [PATCH 8/9] release: release for 1.6.1 (#5184)
---
README.md | 2 +-
build/pom.xml | 2 +-
changes/en-us/1.6.1.md | 49 +++++++++++++++++++
changes/en-us/develop.md | 12 ++---
changes/zh-cn/1.6.1.md | 49 +++++++++++++++++++
changes/zh-cn/develop.md | 14 ++----
.../java/io/seata/core/protocol/Version.java | 2 +-
7 files changed, 108 insertions(+), 22 deletions(-)
create mode 100644 changes/en-us/1.6.1.md
create mode 100644 changes/zh-cn/1.6.1.md
diff --git a/README.md b/README.md
index 911b4f964bb..19a88a3a8d7 100644
--- a/README.md
+++ b/README.md
@@ -82,7 +82,7 @@ For more details about principle and design, please go to [Seata wiki page](http
## Maven dependency
```xml
-1.6.0
+1.6.1
io.seata
seata-all
diff --git a/build/pom.xml b/build/pom.xml
index c636523d872..2241bb7ed14 100644
--- a/build/pom.xml
+++ b/build/pom.xml
@@ -63,7 +63,7 @@
- 1.6.1-SNAPSHOT
+ 1.6.1
1.8
diff --git a/changes/en-us/1.6.1.md b/changes/en-us/1.6.1.md
new file mode 100644
index 00000000000..8752dfb9720
--- /dev/null
+++ b/changes/en-us/1.6.1.md
@@ -0,0 +1,49 @@
+### 1.6.1
+
+[source](https://github.com/seata/seata/archive/v1.6.1.zip) |
+[binary](https://github.com/seata/seata/releases/download/v1.6.1/seata-server-1.6.1.zip)
+
+
+ Release notes
+
+
+### Seata 1.6.1
+
+Seata 1.6.1 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+### feature:
+- [[#5115](https://github.com/seata/seata/pull/5115)] support for `spring-boot:3.x`
+
+### bugfix:
+- [[#5179](https://github.com/seata/seata/pull/5179)] fix ClassNotFoundException when server starts using Eureka
+
+### optimize:
+- [[#5120](https://github.com/seata/seata/pull/5120)] unify the format of configuration items in yml files
+- [[#5180](https://github.com/seata/seata/pull/5180)] GlobalTransactionScanner,SeataAutoDataSourceProxyCreator declare @bean methods as static
+- [[#5182](https://github.com/seata/seata/pull/5182)] fix some security vulnerabilities in GGEditor
+- [[#5183](https://github.com/seata/seata/pull/5183)] optimize the default values for some switches
+
+Thanks to these contributors for their code commits. Please report an unintended omission.
+
+
+- [slievrly](https://github.com/slievrly)
+- [wangliang181230](https://github.com/wangliang181230)
+- [xingfudeshi](https://github.com/xingfudeshi)
+- [whxxxxx](https://github.com/whxxxxx)
+- [xssdpgy](https://github.com/xssdpgy)
+
+Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.
+
+#### Link
+
+- **Seata:** https://github.com/seata/seata
+- **Seata-Samples:** https://github.com/seata/seata-samples
+- **Release:** https://github.com/seata/seata/releases
+- **WebSite:** https://seata.io
+
+
+
diff --git a/changes/en-us/develop.md b/changes/en-us/develop.md
index a7a1c9427ab..03ffeb016a1 100644
--- a/changes/en-us/develop.md
+++ b/changes/en-us/develop.md
@@ -3,16 +3,13 @@ Add changes here for all PR submitted to the develop branch.
### feature:
-- [[#5115](https://github.com/seata/seata/pull/5115)] support for `spring-boot:3.x`
+- [[#xxx](https://github.com/seata/seata/pull/xxx)] support xxx
### bugfix:
-- [[#5179](https://github.com/seata/seata/pull/5179)] fix ClassNotFoundException when server starts using Eureka
+- [[#xxx](https://github.com/seata/seata/pull/xxx)] fix xxx
### optimize:
-- [[#5120](https://github.com/seata/seata/pull/5120)] unify the format of configuration items in yml files
-- [[#5180](https://github.com/seata/seata/pull/5180)] GlobalTransactionScanner,SeataAutoDataSourceProxyCreator declare @bean methods as static
-- [[#5182](https://github.com/seata/seata/pull/5182)] fix some security vulnerabilities in GGEditor
-- [[#5183](https://github.com/seata/seata/pull/5183)] optimize the default values for some switches
+- [[#xxx](https://github.com/seata/seata/pull/xxx)] optimize xxx
### test:
- [[#xxx](https://github.com/seata/seata/pull/xxx)] add test for xxx
@@ -21,8 +18,5 @@ Thanks to these contributors for their code commits. Please report an unintended
- [slievrly](https://github.com/slievrly)
-- [wangliang181230](https://github.com/wangliang181230)
-- [xingfudeshi](https://github.com/xingfudeshi)
-- [whxxxxx](https://github.com/whxxxxx)
Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.
diff --git a/changes/zh-cn/1.6.1.md b/changes/zh-cn/1.6.1.md
new file mode 100644
index 00000000000..23d2dcfde3c
--- /dev/null
+++ b/changes/zh-cn/1.6.1.md
@@ -0,0 +1,49 @@
+### 1.6.1
+
+[source](https://github.com/seata/seata/archive/v1.6.1.zip) |
+[binary](https://github.com/seata/seata/releases/download/v1.6.1/seata-server-1.6.1.zip)
+
+
+ Release notes
+
+
+### Seata 1.6.1
+
+Seata 1.6.1 发布。
+
+Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。
+
+此版本更新如下:
+
+### feature:
+- [[#5115](https://github.com/seata/seata/pull/5115)] 支持 `spring-boot:3.x`
+
+### bugfix:
+- [[#5179](https://github.com/seata/seata/pull/5179)] 修复使用Eureka作为注册中心ClassNotFoundException问题
+
+### optimize:
+- [[#5120](https://github.com/seata/seata/pull/5120)] 统一yml文件中的配置项格式
+- [[#5180](https://github.com/seata/seata/pull/5180)] GlobalTransactionScanner,SeataAutoDataSourceProxyCreator 创建bean用static修饰
+- [[#5182](https://github.com/seata/seata/pull/5182)] 修复 Saga 可视化设计器 GGEditor 安全漏洞
+- [[#5183](https://github.com/seata/seata/pull/5183)] 优化配置开关的默认值
+
+非常感谢以下 contributors 的代码贡献。若有无意遗漏,请报告。
+
+
+- [slievrly](https://github.com/slievrly)
+- [wangliang181230](https://github.com/wangliang181230)
+- [xingfudeshi](https://github.com/xingfudeshi)
+- [whxxxxx](https://github.com/whxxxxx)
+- [xssdpgy](https://github.com/xssdpgy)
+
+同时,我们收到了社区反馈的很多有价值的issue和建议,非常感谢大家。
+
+
+#### Link
+
+- **Seata:** https://github.com/seata/seata
+- **Seata-Samples:** https://github.com/seata/seata-samples
+- **Release:** https://github.com/seata/seata/releases
+- **WebSite:** https://seata.io
+
+
diff --git a/changes/zh-cn/develop.md b/changes/zh-cn/develop.md
index 29e66530e0e..499d8e8c469 100644
--- a/changes/zh-cn/develop.md
+++ b/changes/zh-cn/develop.md
@@ -3,16 +3,13 @@
### feature:
-- [[#5115](https://github.com/seata/seata/pull/5115)] 支持 `spring-boot:3.x`
+- [[#xxx](https://github.com/seata/seata/pull/xxx)] 支持 xxx
### bugfix:
-- [[#5179](https://github.com/seata/seata/pull/5179)] 修复使用Eureka作为注册中心ClassNotFoundException问题
+- [[#xxx](https://github.com/seata/seata/pull/xxx)] 修复 xxx
-### optimize:
-- [[#5120](https://github.com/seata/seata/pull/5120)] 统一yml文件中的配置项格式
-- [[#5180](https://github.com/seata/seata/pull/5180)] GlobalTransactionScanner,SeataAutoDataSourceProxyCreator 创建bean用static修饰
-- [[#5182](https://github.com/seata/seata/pull/5182)] 修复 Saga 可视化设计器 GGEditor 安全漏洞
-- [[#5183](https://github.com/seata/seata/pull/5183)] 优化配置开关的默认值
+### optimize:
+- [[#xxx](https://github.com/seata/seata/pull/xxx)] 优化 xxx
### test:
- [[#xxx](https://github.com/seata/seata/pull/xxx)] 增加 xxx 测试
@@ -21,8 +18,5 @@
- [slievrly](https://github.com/slievrly)
-- [wangliang181230](https://github.com/wangliang181230)
-- [xingfudeshi](https://github.com/xingfudeshi)
-- [whxxxxx](https://github.com/whxxxxx)
同时,我们收到了社区反馈的很多有价值的issue和建议,非常感谢大家。
diff --git a/core/src/main/java/io/seata/core/protocol/Version.java b/core/src/main/java/io/seata/core/protocol/Version.java
index 287c1334e7a..ec64f8816d6 100644
--- a/core/src/main/java/io/seata/core/protocol/Version.java
+++ b/core/src/main/java/io/seata/core/protocol/Version.java
@@ -36,7 +36,7 @@ public class Version {
/**
* The constant CURRENT.
*/
- private static final String CURRENT = "1.6.1-SNAPSHOT";
+ private static final String CURRENT = "1.6.1";
private static final String VERSION_0_7_1 = "0.7.1";
private static final String VERSION_1_5_0 = "1.5.0";
private static final int MAX_VERSION_DOT = 3;
From cd339cde06308a5692762a101303efcbdde32da8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?WangLiang/=E7=8E=8B=E8=89=AF?= <841369634@qq.com>
Date: Wed, 21 Dec 2022 22:36:45 +0800
Subject: [PATCH 9/9] test: fix `test-compile` fails when the version of the
`spring-boot` is lower than `2.4.0` (#5186)
---
build/pom.xml | 4 ++++
dependencies/pom.xml | 53 ++++++++------------------------------------
server/pom.xml | 9 ++++++++
3 files changed, 22 insertions(+), 44 deletions(-)
diff --git a/build/pom.xml b/build/pom.xml
index 2241bb7ed14..60f52896fc9 100644
--- a/build/pom.xml
+++ b/build/pom.xml
@@ -76,6 +76,10 @@
2.5.13
5.3.19
+
+ 5.8.2
+ 1.8.2
+
1.0.5
diff --git a/dependencies/pom.xml b/dependencies/pom.xml
index de852a77cb1..67db5b5a7f0 100644
--- a/dependencies/pom.xml
+++ b/dependencies/pom.xml
@@ -110,8 +110,6 @@
1.4.3
- 5.8.2
- 1.8.2
2.23.4
3.12.2
9.4.38.v20210224
@@ -119,6 +117,15 @@
+
+
+ org.junit
+ junit-bom
+ ${junit-jupiter.version}
+ pom
+ import
+
+
org.springframework
@@ -638,48 +645,6 @@
-
- org.junit
- junit-bom
- ${junit-jupiter.version}
- pom
- import
-
-
- org.junit.jupiter
- junit-jupiter
- ${junit-jupiter.version}
-
-
- org.junit.jupiter
- junit-jupiter-api
- ${junit-jupiter.version}
-
-
- org.junit.jupiter
- junit-jupiter-engine
- ${junit-jupiter.version}
-
-
- org.junit.jupiter
- junit-jupiter-params
- ${junit-jupiter.version}
-
-
- org.junit.platform
- junit-platform-commons
- ${junit-platform.version}
-
-
- org.junit.platform
- junit-platform-engine
- ${junit-platform.version}
-
-
- org.junit.platform
- junit-platform-launcher
- ${junit-platform.version}
-
org.mockito
mockito-core
diff --git a/server/pom.xml b/server/pom.xml
index 9911f321a86..d260d1a99f9 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -35,6 +35,15 @@
+
+
+ org.junit
+ junit-bom
+ ${junit-jupiter.version}
+ pom
+ import
+
+
org.springframework