You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2022/05/06 06:16:38 UTC

[servicecomb-java-chassis] branch master updated: [SCB-2474](final task) Java17 Test paas on other modules (#2819)

This is an automated email from the ASF dual-hosted git repository.

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git


The following commit(s) were added to refs/heads/master by this push:
     new c4ee78994 [SCB-2474](final task) Java17 Test paas on other modules (#2819)
c4ee78994 is described below

commit c4ee7899448526d5256876b44dbdfede565a7418
Author: ZhangJian He <sh...@gmail.com>
AuthorDate: Fri May 6 14:16:33 2022 +0800

    [SCB-2474](final task) Java17 Test paas on other modules (#2819)
---
 .github/workflows/unit-test-jdk17.yml              | 38 ++++++++++++++++++++++
 .../src/main/resources/archetype-resources/pom.xml |  4 +--
 .../src/main/resources/archetype-resources/pom.xml |  4 +--
 .../src/main/resources/archetype-resources/pom.xml |  2 +-
 .../src/main/resources/archetype-resources/pom.xml |  4 +--
 .../element/impl/DatetimeConfigurableItemTest.java |  7 +++-
 .../produceprocessor/ProduceAppXmlProcessor.java   |  3 +-
 .../override/ProduceAppXmlProcessor.java           |  3 +-
 integration-tests/it-common/pom.xml                |  4 +++
 .../org/apache/servicecomb/it/ConsumerMain.java    |  4 +--
 .../servicecomb/it/deploy/DeployDefinition.java    | 14 ++++++++
 .../org/apache/servicecomb/it/deploy/Deploys.java  | 28 +++++++++++++---
 .../servicecomb/it/deploy/MicroserviceDeploy.java  |  2 +-
 .../servicecomb/it/deploy/SubProcessLogger.java    |  7 ++--
 .../it/extend/engine/ITAsyncClientHttpRequest.java |  2 +-
 .../it/extend/engine/ITClientHttpRequest.java      |  2 +-
 .../extend/engine/ITClientHttpRequestFactory.java  |  2 +-
 .../it/extend/engine/ITUriTemplateHandler.java     |  2 +-
 .../apache/servicecomb/it/junit/ITJUnitUtils.java  | 12 +++----
 .../apache/servicecomb/it/junit/SCBFailure.java    |  2 +-
 integration-tests/it-edge/pom.xml                  |  4 +++
 .../it-producer-deploy-springboot2-servlet/pom.xml |  2 +-
 .../pom.xml                                        |  2 +-
 .../demo/pojo/test/endpoints/CodeFirstPojo.java    |  6 ++--
 integration-tests/tracing-tests/pom.xml            |  4 +++
 .../src/test/resources/log4j2.xml                  |  3 +-
 service-registry/registry-service-center/pom.xml   | 13 +++++---
 .../generator-spring-data/pom.xml                  |  8 +++--
 .../springdata/TestPageResponseTypeProcessor.java  |  8 ++---
 .../invocation-springmvc/pom.xml                   | 10 ++++++
 .../src/test/resources/log4j2.xml                  |  3 +-
 31 files changed, 158 insertions(+), 51 deletions(-)

diff --git a/.github/workflows/unit-test-jdk17.yml b/.github/workflows/unit-test-jdk17.yml
new file mode 100644
index 000000000..0cf41ed2e
--- /dev/null
+++ b/.github/workflows/unit-test-jdk17.yml
@@ -0,0 +1,38 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+name: Unit Test Jdk17
+
+on:
+  pull_request:
+    branches:
+      - master
+
+jobs:
+  build:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+      - name: Set up jdk
+        uses: actions/setup-java@v2
+        with:
+          java-version: '17'
+          distribution: 'temurin'
+      - name: Compilation and Installation
+        run: mvn -B -Dcheckstyle.skip -Dspotbugs.skip=true clean install -Pit
diff --git a/archetypes/business-service-jaxrs/src/main/resources/archetype-resources/pom.xml b/archetypes/business-service-jaxrs/src/main/resources/archetype-resources/pom.xml
index f7562db76..512f762aa 100644
--- a/archetypes/business-service-jaxrs/src/main/resources/archetype-resources/pom.xml
+++ b/archetypes/business-service-jaxrs/src/main/resources/archetype-resources/pom.xml
@@ -27,7 +27,7 @@
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <!-- this version is used for archetype, do not need to change when release a new version -->
-    <java-chassis.version>2.6.3</java-chassis.version>
+    <java-chassis.version>2.7.1</java-chassis.version>
   </properties>
 
   <dependencyManagement>
@@ -116,7 +116,7 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-compiler-plugin</artifactId>
-        <version>3.1</version>
+        <version>${maven-compiler-plugin.version}</version>
         <configuration>
           <source>1.8</source>
           <target>1.8</target>
diff --git a/archetypes/business-service-pojo/src/main/resources/archetype-resources/pom.xml b/archetypes/business-service-pojo/src/main/resources/archetype-resources/pom.xml
index c179bc103..c56eb4563 100644
--- a/archetypes/business-service-pojo/src/main/resources/archetype-resources/pom.xml
+++ b/archetypes/business-service-pojo/src/main/resources/archetype-resources/pom.xml
@@ -27,7 +27,7 @@
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <!-- this version is used for archetype, do not need to change when release a new version -->
-    <java-chassis.version>2.6.3</java-chassis.version>
+    <java-chassis.version>2.7.1</java-chassis.version>
   </properties>
 
   <dependencyManagement>
@@ -109,7 +109,7 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-compiler-plugin</artifactId>
-        <version>3.1</version>
+        <version>${maven-compiler-plugin.version}</version>
         <configuration>
           <source>1.8</source>
           <target>1.8</target>
diff --git a/archetypes/business-service-spring-boot2-starter/src/main/resources/archetype-resources/pom.xml b/archetypes/business-service-spring-boot2-starter/src/main/resources/archetype-resources/pom.xml
index 9d2f55e49..129c77a88 100755
--- a/archetypes/business-service-spring-boot2-starter/src/main/resources/archetype-resources/pom.xml
+++ b/archetypes/business-service-spring-boot2-starter/src/main/resources/archetype-resources/pom.xml
@@ -27,7 +27,7 @@
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <!-- this version is used for archetype, do not need to change when release a new version -->
-    <java-chassis.version>2.6.3</java-chassis.version>
+    <java-chassis.version>2.7.1</java-chassis.version>
     <springboot.version>2.5.12</springboot.version>
   </properties>
 
diff --git a/archetypes/business-service-springmvc/src/main/resources/archetype-resources/pom.xml b/archetypes/business-service-springmvc/src/main/resources/archetype-resources/pom.xml
index 43ea1faf8..21ef28f74 100644
--- a/archetypes/business-service-springmvc/src/main/resources/archetype-resources/pom.xml
+++ b/archetypes/business-service-springmvc/src/main/resources/archetype-resources/pom.xml
@@ -26,7 +26,7 @@
 
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <java-chassis.version>2.6.3</java-chassis.version>
+    <java-chassis.version>2.7.1</java-chassis.version>
   </properties>
 
   <dependencyManagement>
@@ -108,7 +108,7 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-compiler-plugin</artifactId>
-        <version>3.1</version>
+        <version>${maven-compiler-plugin.version}</version>
         <configuration>
           <source>1.8</source>
           <target>1.8</target>
diff --git a/common/common-access-log/src/test/java/org/apache/servicecomb/common/accessLog/core/element/impl/DatetimeConfigurableItemTest.java b/common/common-access-log/src/test/java/org/apache/servicecomb/common/accessLog/core/element/impl/DatetimeConfigurableItemTest.java
index fb1548ed2..750ebde7e 100644
--- a/common/common-access-log/src/test/java/org/apache/servicecomb/common/accessLog/core/element/impl/DatetimeConfigurableItemTest.java
+++ b/common/common-access-log/src/test/java/org/apache/servicecomb/common/accessLog/core/element/impl/DatetimeConfigurableItemTest.java
@@ -17,7 +17,6 @@
 
 package org.apache.servicecomb.common.accessLog.core.element.impl;
 
-import static org.junit.Assert.assertEquals;
 import static org.mockito.Mockito.when;
 
 import java.text.SimpleDateFormat;
@@ -31,7 +30,9 @@ import org.apache.servicecomb.core.invocation.InvocationStageTrace;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.EnabledOnJre;
 import org.junit.jupiter.api.condition.EnabledOnOs;
+import org.junit.jupiter.api.condition.JRE;
 import org.junit.jupiter.api.condition.OS;
 import org.mockito.Mockito;
 
@@ -68,6 +69,7 @@ public class DatetimeConfigurableItemTest {
 
   @Test
   @EnabledOnOs({OS.LINUX, OS.WINDOWS})
+  @EnabledOnJre(JRE.JAVA_8)
   public void serverFormattedElement() {
     ConfigurableDatetimeAccessItem element = new ConfigurableDatetimeAccessItem(
             "EEE, yyyy MMM dd HH:mm:ss zzz|GMT-08|zh-CN");
@@ -77,6 +79,7 @@ public class DatetimeConfigurableItemTest {
 
   @Test
   @EnabledOnOs({OS.LINUX, OS.WINDOWS})
+  @EnabledOnJre(JRE.JAVA_8)
   public void clientFormattedElement() {
     ConfigurableDatetimeAccessItem element = new ConfigurableDatetimeAccessItem(
             "EEE, yyyy MMM dd HH:mm:ss zzz|GMT-08|zh-CN");
@@ -86,6 +89,7 @@ public class DatetimeConfigurableItemTest {
 
   @Test
   @EnabledOnOs({OS.LINUX, OS.WINDOWS})
+  @EnabledOnJre(JRE.JAVA_8)
   public void serverFormattedElementOnNoPattern() {
     ConfigurableDatetimeAccessItem element = new ConfigurableDatetimeAccessItem(
             "|GMT+08|zh-CN");
@@ -96,6 +100,7 @@ public class DatetimeConfigurableItemTest {
 
   @Test
   @EnabledOnOs({OS.LINUX, OS.WINDOWS})
+  @EnabledOnJre(JRE.JAVA_8)
   public void clientFormattedElementOnNoPattern() {
     ConfigurableDatetimeAccessItem element = new ConfigurableDatetimeAccessItem(
             "|GMT+08|zh-CN");
diff --git a/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/produceprocessor/ProduceAppXmlProcessor.java b/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/produceprocessor/ProduceAppXmlProcessor.java
index 26ea1951f..2303e5d7b 100644
--- a/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/produceprocessor/ProduceAppXmlProcessor.java
+++ b/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/produceprocessor/ProduceAppXmlProcessor.java
@@ -18,6 +18,7 @@ package org.apache.servicecomb.demo.produceprocessor;
 
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.nio.charset.StandardCharsets;
 
 import javax.ws.rs.core.MediaType;
 
@@ -40,7 +41,7 @@ public class ProduceAppXmlProcessor implements ProduceProcessor {
 
   @Override
   public void doEncodeResponse(OutputStream output, Object result) throws Exception {
-    output.write(JAXBUtils.convertToXml(result).getBytes());
+    output.write(JAXBUtils.convertToXml(result).getBytes(StandardCharsets.UTF_8));
   }
 
   @Override
diff --git a/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/produceprocessor/override/ProduceAppXmlProcessor.java b/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/produceprocessor/override/ProduceAppXmlProcessor.java
index 45acf3af2..116b15fa6 100644
--- a/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/produceprocessor/override/ProduceAppXmlProcessor.java
+++ b/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/produceprocessor/override/ProduceAppXmlProcessor.java
@@ -18,6 +18,7 @@ package org.apache.servicecomb.demo.produceprocessor.override;
 
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.nio.charset.StandardCharsets;
 
 import javax.ws.rs.core.MediaType;
 
@@ -40,7 +41,7 @@ public class ProduceAppXmlProcessor implements ProduceProcessor {
 
   @Override
   public void doEncodeResponse(OutputStream output, Object result) throws Exception {
-    output.write(JAXBUtils.convertToXml(result).getBytes());
+    output.write(JAXBUtils.convertToXml(result).getBytes(StandardCharsets.UTF_8));
   }
 
   @Override
diff --git a/integration-tests/it-common/pom.xml b/integration-tests/it-common/pom.xml
index 3c42004fa..fc493a3f1 100644
--- a/integration-tests/it-common/pom.xml
+++ b/integration-tests/it-common/pom.xml
@@ -37,6 +37,10 @@
       <groupId>org.apache.servicecomb</groupId>
       <artifactId>inspector</artifactId>
     </dependency>
+    <dependency>
+      <groupId>javax.xml.bind</groupId>
+      <artifactId>jaxb-api</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.eclipse.jetty</groupId>
       <artifactId>jetty-alpn-openjdk8-server</artifactId>
diff --git a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/ConsumerMain.java b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/ConsumerMain.java
index 13cdfe2dd..12d8aed0c 100644
--- a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/ConsumerMain.java
+++ b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/ConsumerMain.java
@@ -64,9 +64,9 @@ import org.apache.servicecomb.it.testcase.weak.consumer.TestSpringmvcBasic;
 import org.apache.servicecomb.transport.highway.HighwayTransportContext;
 
 public class ConsumerMain {
-  private static ResultPrinter resultPrinter = new ResultPrinter();
+  private static final ResultPrinter resultPrinter = new ResultPrinter();
 
-  private static Deploys deploys = new Deploys();
+  private static final Deploys deploys = new Deploys();
 
   public static boolean autoExit = true;
 
diff --git a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/DeployDefinition.java b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/DeployDefinition.java
index 99becf4fc..42c6d80ae 100644
--- a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/DeployDefinition.java
+++ b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/DeployDefinition.java
@@ -93,6 +93,20 @@ public class DeployDefinition {
     this.args = args;
   }
 
+  public void appendArgs(String arg) {
+    String[] result = new String[args.length + 1];
+    System.arraycopy(args, 0, result, 0, args.length);
+    result[args.length] = arg;
+    this.args = result;
+  }
+
+  public void appendArgs(String[] newArgs) {
+    String[] result = new String[args.length + newArgs.length];
+    System.arraycopy(args, 0, result, 0, args.length);
+    System.arraycopy(newArgs, 0, result, args.length, newArgs.length);
+    this.args = result;
+  }
+
   public void init() {
     if (displayName == null) {
       displayName = deployName;
diff --git a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/Deploys.java b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/Deploys.java
index 359d57b13..607b932b7 100644
--- a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/Deploys.java
+++ b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/Deploys.java
@@ -22,6 +22,7 @@ import java.io.IOException;
 import java.net.URL;
 
 import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.SystemUtils;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
 import org.slf4j.Logger;
@@ -196,6 +197,9 @@ public class Deploys {
     definition.setDeployName("baseProducer");
     definition.setCmd("it-producer");
     definition.setArgs(new String[] {itInstanceMaxHeapSizeOption});
+    if (!SystemUtils.IS_JAVA_1_8) {
+      definition.appendArgs(new String[] {"--add-opens", "java.base/java.lang=ALL-UNNAMED"});
+    }
     definition.setAppId("integration-test");
     definition.setMicroserviceName("it-producer");
     definition.setVersion(DEFAULT_MICROSERVICE_VERSION);
@@ -210,14 +214,16 @@ public class Deploys {
     definition.setDeployName("baseHttp2Producer");
     definition.setCmd("it-producer");
     definition.setArgs(new String[] {itInstanceMaxHeapSizeOption});
+    if (!SystemUtils.IS_JAVA_1_8) {
+      definition.appendArgs(new String[] {"--add-opens", "java.base/java.lang=ALL-UNNAMED"});
+    }
     URL urlServer = Thread.currentThread().getContextClassLoader().getResource("certificates/server.p12");
     URL urlTrust = Thread.currentThread().getContextClassLoader().getResource("certificates/trust.jks");
     if (urlServer != null && urlTrust != null) {
-      definition.setArgs(new String[] {"-Dservicecomb.rest.address=0.0.0.0:0?sslEnabled=true&protocol=http2",
-          itInstanceMaxHeapSizeOption,
-          "-Dservicecomb.highway.address=0.0.0.0:0?sslEnabled=true",
-          "-Dserver.p12=" + urlServer.getPath(),
-          "-Dtrust.jks=" + urlTrust.getPath()
+      definition.appendArgs(new String[] {"-Dservicecomb.rest.address=0.0.0.0:0?sslEnabled=true&protocol=http2",
+              "-Dservicecomb.highway.address=0.0.0.0:0?sslEnabled=true",
+              "-Dserver.p12=" + urlServer.getPath(),
+              "-Dtrust.jks=" + urlTrust.getPath()
       });
     }
     definition.setAppId("integration-test");
@@ -235,6 +241,9 @@ public class Deploys {
     definition.setCmd("it-producer");
     definition
         .setArgs(new String[] {"-Dservicecomb.rest.address=0.0.0.0:0?protocol=http2", itInstanceMaxHeapSizeOption});
+    if (!SystemUtils.IS_JAVA_1_8) {
+      definition.appendArgs(new String[] {"--add-opens", "java.base/java.lang=ALL-UNNAMED"});
+    }
     definition.setAppId("integration-test");
     definition.setMicroserviceName("it-producer-h2c");
     definition.setVersion(DEFAULT_MICROSERVICE_VERSION);
@@ -249,6 +258,9 @@ public class Deploys {
     definition.setDeployName("springBoot2ServletProducer");
     definition.setCmd("it-producer-deploy-springboot2-servlet");
     definition.setArgs(new String[] {itInstanceMaxHeapSizeOption});
+    if (!SystemUtils.IS_JAVA_1_8) {
+      definition.appendArgs(new String[] {"--add-opens", "java.base/java.lang=ALL-UNNAMED"});
+    }
     definition.setAppId("integration-test");
     definition.setMicroserviceName("it-producer-deploy-springboot2-servlet");
     definition.setVersion(DEFAULT_MICROSERVICE_VERSION);
@@ -263,6 +275,9 @@ public class Deploys {
     definition.setDeployName("springBoot2StandaloneProducer");
     definition.setCmd("it-producer-deploy-springboot2-standalone");
     definition.setArgs(new String[] {itInstanceMaxHeapSizeOption});
+    if (!SystemUtils.IS_JAVA_1_8) {
+      definition.appendArgs(new String[] {"--add-opens", "java.base/java.lang=ALL-UNNAMED"});
+    }
     definition.setAppId("integration-test");
     definition.setMicroserviceName("it-producer-deploy-springboot2-standalone");
     definition.setVersion(DEFAULT_MICROSERVICE_VERSION);
@@ -277,6 +292,9 @@ public class Deploys {
     definition.setDeployName("edge");
     definition.setCmd("it-edge");
     definition.setArgs(new String[] {itInstanceMaxHeapSizeOption});
+    if (!SystemUtils.IS_JAVA_1_8) {
+      definition.appendArgs(new String[] {"--add-opens", "java.base/java.lang=ALL-UNNAMED"});
+    }
     definition.setAppId("integration-test");
     definition.setMicroserviceName("it-edge");
     definition.setVersion(DEFAULT_MICROSERVICE_VERSION);
diff --git a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/MicroserviceDeploy.java b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/MicroserviceDeploy.java
index fa9fec128..adaa8ef4f 100644
--- a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/MicroserviceDeploy.java
+++ b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/MicroserviceDeploy.java
@@ -27,7 +27,7 @@ import org.slf4j.LoggerFactory;
 public class MicroserviceDeploy extends NormalDeploy {
   private static final Logger LOGGER = LoggerFactory.getLogger(MicroserviceDeploy.class);
 
-  private MicroserviceDeployDefinition microserviceDeployDefinition;
+  private final MicroserviceDeployDefinition microserviceDeployDefinition;
 
   public MicroserviceDeploy(DeployDefinition deployDefinition) {
     super(deployDefinition);
diff --git a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/SubProcessLogger.java b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/SubProcessLogger.java
index 22ee9bd0c..420a6ad7c 100644
--- a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/SubProcessLogger.java
+++ b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/SubProcessLogger.java
@@ -35,11 +35,11 @@ public class SubProcessLogger implements Closeable {
 
   private final String displayName;
 
-  private BufferedReader reader;
+  private final BufferedReader reader;
 
-  private Thread thread;
+  private final String startCompleteLog;
 
-  private String startCompleteLog;
+  private final Thread thread;
 
   private volatile boolean startCompleted;
 
@@ -116,5 +116,6 @@ public class SubProcessLogger implements Closeable {
   @Override
   public void close() throws IOException {
     reader.close();
+    thread.interrupt();
   }
 }
diff --git a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/ITAsyncClientHttpRequest.java b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/ITAsyncClientHttpRequest.java
index eca412840..820c71c72 100644
--- a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/ITAsyncClientHttpRequest.java
+++ b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/ITAsyncClientHttpRequest.java
@@ -24,7 +24,7 @@ import org.apache.servicecomb.provider.springmvc.reference.async.CseAsyncClientH
 import org.springframework.http.HttpMethod;
 
 public class ITAsyncClientHttpRequest extends CseAsyncClientHttpRequest {
-  private String transport;
+  private final String transport;
 
   public ITAsyncClientHttpRequest(URI uri, HttpMethod method, String transport) {
     super(uri, method);
diff --git a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/ITClientHttpRequest.java b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/ITClientHttpRequest.java
index d25396fd4..0a7bd2488 100644
--- a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/ITClientHttpRequest.java
+++ b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/ITClientHttpRequest.java
@@ -23,7 +23,7 @@ import org.apache.servicecomb.provider.springmvc.reference.RequestMeta;
 import org.springframework.http.HttpMethod;
 
 public class ITClientHttpRequest extends CseClientHttpRequest {
-  private String transport;
+  private final String transport;
 
   public ITClientHttpRequest(URI uri, HttpMethod method, String transport) {
     super(uri, method);
diff --git a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/ITClientHttpRequestFactory.java b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/ITClientHttpRequestFactory.java
index a5def644c..005e5d914 100644
--- a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/ITClientHttpRequestFactory.java
+++ b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/ITClientHttpRequestFactory.java
@@ -24,7 +24,7 @@ import org.springframework.http.HttpMethod;
 import org.springframework.http.client.ClientHttpRequest;
 
 public class ITClientHttpRequestFactory extends CseClientHttpRequestFactory {
-  private String transport;
+  private final String transport;
 
   public ITClientHttpRequestFactory() {
     this.transport = ITJUnitUtils.getTransport();
diff --git a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/ITUriTemplateHandler.java b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/ITUriTemplateHandler.java
index 27e5eb2a2..633284762 100644
--- a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/ITUriTemplateHandler.java
+++ b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/ITUriTemplateHandler.java
@@ -22,7 +22,7 @@ import java.util.Map;
 @SuppressWarnings("deprecation")
 // TODO : upgrade to spring 5 will having warning's , we'll fix it later
 public class ITUriTemplateHandler extends org.springframework.web.util.DefaultUriTemplateHandler {
-  private String urlPrefix;
+  private final String urlPrefix;
 
   public ITUriTemplateHandler(String urlPrefix) {
     this.urlPrefix = urlPrefix;
diff --git a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/junit/ITJUnitUtils.java b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/junit/ITJUnitUtils.java
index 4b7f20706..aa8e33586 100644
--- a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/junit/ITJUnitUtils.java
+++ b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/junit/ITJUnitUtils.java
@@ -40,15 +40,15 @@ import org.junit.runner.notification.RunListener;
 import com.google.common.reflect.ClassPath;
 
 public final class ITJUnitUtils {
-  private static ClassLoader classLoader = JvmUtils.findClassLoader();
+  private static final ClassLoader classLoader = JvmUtils.findClassLoader();
 
-  private static JUnitCore jUnitCore = new JUnitCore();
+  private static final JUnitCore jUnitCore = new JUnitCore();
 
-  private static Stack<String> parents = new Stack<>();
+  private static final Stack<String> parents = new Stack<>();
 
-  private static List<SCBFailure> failures = new ArrayList<>();
+  private static final List<SCBFailure> failures = new ArrayList<>();
 
-  private static AtomicInteger runCount = new AtomicInteger();
+  private static final AtomicInteger runCount = new AtomicInteger();
 
   private static String transport;
 
@@ -68,7 +68,7 @@ public final class ITJUnitUtils {
       public void testFailure(Failure failure) {
         SCBFailure scbFailure = new SCBFailure(failure.getDescription(), failure.getException());
         failures.add(scbFailure);
-        System.out.println(scbFailure.toString());
+        System.out.println(scbFailure);
       }
     });
   }
diff --git a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/junit/SCBFailure.java b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/junit/SCBFailure.java
index faa3c23a6..d51316777 100644
--- a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/junit/SCBFailure.java
+++ b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/junit/SCBFailure.java
@@ -24,7 +24,7 @@ import org.junit.runner.notification.Failure;
 public class SCBFailure extends Failure {
   private static final long serialVersionUID = 6467681668616080232L;
 
-  private List<String> parents;
+  private final List<String> parents;
 
   public SCBFailure(Description description, Throwable thrownException) {
     super(description, thrownException);
diff --git a/integration-tests/it-edge/pom.xml b/integration-tests/it-edge/pom.xml
index 5b474b7d5..07c71fde7 100644
--- a/integration-tests/it-edge/pom.xml
+++ b/integration-tests/it-edge/pom.xml
@@ -49,5 +49,9 @@
       <groupId>org.apache.servicecomb</groupId>
       <artifactId>provider-pojo</artifactId>
     </dependency>
+    <dependency>
+      <groupId>javax.xml.bind</groupId>
+      <artifactId>jaxb-api</artifactId>
+    </dependency>
   </dependencies>
 </project>
\ No newline at end of file
diff --git a/integration-tests/it-producer-deploy-springboot2-servlet/pom.xml b/integration-tests/it-producer-deploy-springboot2-servlet/pom.xml
index 80474fc2d..92c2a555e 100644
--- a/integration-tests/it-producer-deploy-springboot2-servlet/pom.xml
+++ b/integration-tests/it-producer-deploy-springboot2-servlet/pom.xml
@@ -63,7 +63,7 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-compiler-plugin</artifactId>
-          <version>3.1</version>
+          <version>${maven-compiler-plugin.version}</version>
           <configuration>
             <compilerArgument>-parameters</compilerArgument>
             <encoding>UTF-8</encoding>
diff --git a/integration-tests/it-producer-deploy-springboot2-standalone/pom.xml b/integration-tests/it-producer-deploy-springboot2-standalone/pom.xml
index 1b7298bce..3186c2ea3 100644
--- a/integration-tests/it-producer-deploy-springboot2-standalone/pom.xml
+++ b/integration-tests/it-producer-deploy-springboot2-standalone/pom.xml
@@ -64,7 +64,7 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-compiler-plugin</artifactId>
-          <version>3.1</version>
+          <version>${maven-compiler-plugin.version}</version>
           <configuration>
             <compilerArgument>-parameters</compilerArgument>
             <encoding>UTF-8</encoding>
diff --git a/integration-tests/pojo-test/src/test/java/org/apache/servicecomb/demo/pojo/test/endpoints/CodeFirstPojo.java b/integration-tests/pojo-test/src/test/java/org/apache/servicecomb/demo/pojo/test/endpoints/CodeFirstPojo.java
index fc32debf3..126ef5a92 100644
--- a/integration-tests/pojo-test/src/test/java/org/apache/servicecomb/demo/pojo/test/endpoints/CodeFirstPojo.java
+++ b/integration-tests/pojo-test/src/test/java/org/apache/servicecomb/demo/pojo/test/endpoints/CodeFirstPojo.java
@@ -99,10 +99,10 @@ public class CodeFirstPojo implements CodeFirstPojoIntf {
   }
 
   public String addString(List<String> s) {
-    String result = "";
+    StringBuilder result = new StringBuilder();
     for (String x : s) {
-      result += x;
+      result.append(x);
     }
-    return result;
+    return result.toString();
   }
 }
diff --git a/integration-tests/tracing-tests/pom.xml b/integration-tests/tracing-tests/pom.xml
index 93d473da8..98ca57021 100644
--- a/integration-tests/tracing-tests/pom.xml
+++ b/integration-tests/tracing-tests/pom.xml
@@ -85,6 +85,10 @@
       <groupId>com.squareup.okhttp3</groupId>
       <artifactId>okhttp</artifactId>
     </dependency>
+    <dependency>
+      <groupId>javax.xml.bind</groupId>
+      <artifactId>jaxb-api</artifactId>
+    </dependency>
   </dependencies>
 
 </project>
diff --git a/providers/provider-springmvc/src/test/resources/log4j2.xml b/providers/provider-springmvc/src/test/resources/log4j2.xml
index 00732c008..8cee07220 100644
--- a/providers/provider-springmvc/src/test/resources/log4j2.xml
+++ b/providers/provider-springmvc/src/test/resources/log4j2.xml
@@ -22,9 +22,8 @@
         </Console>
     </Appenders>
     <Loggers>
-        <Root level="warn">
+        <Root level="INFO">
             <AppenderRef ref="Console" />
         </Root>
-        <Logger name="org.apache.bookkeeper" level="info"/>
     </Loggers>
 </Configuration>
diff --git a/service-registry/registry-service-center/pom.xml b/service-registry/registry-service-center/pom.xml
index 203a01210..29e955981 100644
--- a/service-registry/registry-service-center/pom.xml
+++ b/service-registry/registry-service-center/pom.xml
@@ -85,9 +85,14 @@
       <groupId>org.apache.servicecomb</groupId>
       <artifactId>foundation-test-scaffolding</artifactId>
     </dependency>
-      <dependency>
-          <groupId>org.apache.servicecomb</groupId>
-          <artifactId>java-chassis-core</artifactId>
-      </dependency>
+    <dependency>
+      <groupId>org.apache.servicecomb</groupId>
+      <artifactId>java-chassis-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>javax.xml.bind</groupId>
+      <artifactId>jaxb-api</artifactId>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 </project>
diff --git a/swagger/swagger-generator/generator-spring-data/pom.xml b/swagger/swagger-generator/generator-spring-data/pom.xml
index dc3bd0d38..402efd632 100644
--- a/swagger/swagger-generator/generator-spring-data/pom.xml
+++ b/swagger/swagger-generator/generator-spring-data/pom.xml
@@ -38,6 +38,10 @@
       <groupId>org.springframework.data</groupId>
       <artifactId>spring-data-commons</artifactId>
     </dependency>
-
+    <dependency>
+      <groupId>javax.xml.bind</groupId>
+      <artifactId>jaxb-api</artifactId>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
-</project>
\ No newline at end of file
+</project>
diff --git a/swagger/swagger-generator/generator-spring-data/src/test/java/org/apache/servicecomb/swagger/generator/springdata/TestPageResponseTypeProcessor.java b/swagger/swagger-generator/generator-spring-data/src/test/java/org/apache/servicecomb/swagger/generator/springdata/TestPageResponseTypeProcessor.java
index 38ddaa2a8..84e7c845c 100644
--- a/swagger/swagger-generator/generator-spring-data/src/test/java/org/apache/servicecomb/swagger/generator/springdata/TestPageResponseTypeProcessor.java
+++ b/swagger/swagger-generator/generator-spring-data/src/test/java/org/apache/servicecomb/swagger/generator/springdata/TestPageResponseTypeProcessor.java
@@ -20,8 +20,8 @@ import java.io.IOException;
 import java.util.Arrays;
 
 import org.apache.servicecomb.swagger.generator.core.unittest.UnitTestSwaggerUtils;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageImpl;
 import org.springframework.data.domain.PageRequest;
@@ -49,13 +49,13 @@ public class TestPageResponseTypeProcessor {
     Pageable pageable = PageRequest.of(1, 10, sort);
     Page<String> page = new PageImpl<>(Arrays.asList("c1", "c2"), pageable, 2);
     String json = Json.mapper().writeValueAsString(page);
-    Assert.assertEquals(
+    Assertions.assertEquals(
         "{\"content\":[\"c1\",\"c2\"],\"pageable\":{\"pageNumber\":1,\"pageSize\":10,\"sort\":{\"properties\":[\"name\"]},\"offset\":10,\"paged\":true,\"unpaged\":false},\"empty\":false,\"first\":false,\"last\":true,\"number\":1,\"numberOfElements\":2,\"size\":10,\"sort\":{\"properties\":[\"name\"]},\"totalElements\":12,\"totalPages\":2}",
         json);
 
     Page<?> page2 = Json.mapper().readValue(json, Page.class);
 
-    Assert.assertEquals(json,
+    Assertions.assertEquals(json,
         Json.mapper().writeValueAsString(page2));
   }
 }
diff --git a/swagger/swagger-invocation/invocation-springmvc/pom.xml b/swagger/swagger-invocation/invocation-springmvc/pom.xml
index f60b9906b..4fc881b75 100644
--- a/swagger/swagger-invocation/invocation-springmvc/pom.xml
+++ b/swagger/swagger-invocation/invocation-springmvc/pom.xml
@@ -40,5 +40,15 @@
       <groupId>org.springframework</groupId>
       <artifactId>spring-webmvc</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-slf4j-impl</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>javax.xml.bind</groupId>
+      <artifactId>jaxb-api</artifactId>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 </project>
diff --git a/providers/provider-springmvc/src/test/resources/log4j2.xml b/swagger/swagger-invocation/invocation-springmvc/src/test/resources/log4j2.xml
similarity index 92%
copy from providers/provider-springmvc/src/test/resources/log4j2.xml
copy to swagger/swagger-invocation/invocation-springmvc/src/test/resources/log4j2.xml
index 00732c008..8cee07220 100644
--- a/providers/provider-springmvc/src/test/resources/log4j2.xml
+++ b/swagger/swagger-invocation/invocation-springmvc/src/test/resources/log4j2.xml
@@ -22,9 +22,8 @@
         </Console>
     </Appenders>
     <Loggers>
-        <Root level="warn">
+        <Root level="INFO">
             <AppenderRef ref="Console" />
         </Root>
-        <Logger name="org.apache.bookkeeper" level="info"/>
     </Loggers>
 </Configuration>