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

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


The following commit(s) were added to refs/heads/2.8.x by this push:
     new eb1bb1f3f Bump netty from 4.1.110.Final to 4.1.112.Final vertx from 
4.4.9 4.5.9 (#4463)
eb1bb1f3f is described below

commit eb1bb1f3fb16d450eecc5781e49ec1303f333c3c
Author: liubao68 <[email protected]>
AuthorDate: Fri Aug 9 13:45:13 2024 +0800

    Bump netty from 4.1.110.Final to 4.1.112.Final vertx from 4.4.9 4.5.9 
(#4463)
---
 .../core/transport/TestAbstractTransport.java      |  24 +--
 dependencies/default/pom.xml                       |   4 +-
 .../main/java/io/vertx/core/impl/SyncContext.java  | 170 +++++++++++++++++++--
 .../foundation/vertx/VertxTLSBuilder.java          |  10 +-
 .../foundation/vertx/server/TcpServer.java         |   3 +-
 .../ext/web/impl/TestHttpServerRequestUtils.java   |  10 +-
 .../foundation/vertx/stream/TestPumpFromPart.java  |  18 ++-
 .../transport/highway/HighwayClient.java           |   6 +-
 8 files changed, 195 insertions(+), 50 deletions(-)

diff --git 
a/core/src/test/java/org/apache/servicecomb/core/transport/TestAbstractTransport.java
 
b/core/src/test/java/org/apache/servicecomb/core/transport/TestAbstractTransport.java
index b0fd7ba0c..c43ea62b1 100644
--- 
a/core/src/test/java/org/apache/servicecomb/core/transport/TestAbstractTransport.java
+++ 
b/core/src/test/java/org/apache/servicecomb/core/transport/TestAbstractTransport.java
@@ -18,7 +18,6 @@
 package org.apache.servicecomb.core.transport;
 
 import java.io.UnsupportedEncodingException;
-import java.lang.reflect.Method;
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
 import java.util.Collections;
@@ -26,27 +25,12 @@ import java.util.Collections;
 import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.foundation.common.net.IpPort;
 import org.apache.servicecomb.foundation.vertx.VertxUtils;
-import org.apache.servicecomb.registry.RegistrationManager;
 import org.apache.servicecomb.swagger.invocation.AsyncResponse;
 import org.junit.AfterClass;
 import org.junit.Test;
 import org.junit.jupiter.api.Assertions;
-import org.springframework.util.ReflectionUtils;
-
-import com.netflix.config.DynamicProperty;
-
-import mockit.Expectations;
-import mockit.Mocked;
 
 public class TestAbstractTransport {
-  private final Method updatePropertyMethod =
-      ReflectionUtils.findMethod(DynamicProperty.class, "updateProperty", 
String.class, Object.class);
-
-  private void updateProperty(String key, Object value) {
-    updatePropertyMethod.setAccessible(true);
-    ReflectionUtils.invokeMethod(updatePropertyMethod, null, key, value);
-  }
-
   static class MyAbstractTransport extends AbstractTransport {
 
     @Override
@@ -71,12 +55,6 @@ public class TestAbstractTransport {
 
   @Test
   public void testSetListenAddressWithoutSchemaChineseSpaceNewSC() throws 
UnsupportedEncodingException {
-    new Expectations() {
-      {
-        RegistrationManager.getPublishAddress("my", "127.0.0.1:9090");
-      }
-    };
-
     MyAbstractTransport transport = new MyAbstractTransport();
     transport.setListenAddressWithoutSchema("127.0.0.1:9090", 
Collections.singletonMap("country", "中 国"));
     Assertions.assertEquals("my://127.0.0.1:9090?country=" + 
URLEncoder.encode("中 国", StandardCharsets.UTF_8.name()),
@@ -113,7 +91,7 @@ public class TestAbstractTransport {
   }
 
   @Test(expected = IllegalArgumentException.class)
-  public void testMyAbstractTransportException(@Mocked TransportManager 
manager) {
+  public void testMyAbstractTransportException() {
     MyAbstractTransport transport = new MyAbstractTransport();
 
     transport.setListenAddressWithoutSchema(":127.0.0.1:9090");
diff --git a/dependencies/default/pom.xml b/dependencies/default/pom.xml
index 517c648e6..c8c251de3 100644
--- a/dependencies/default/pom.xml
+++ b/dependencies/default/pom.xml
@@ -78,7 +78,7 @@
     <mock-server.version>5.14.0</mock-server.version>
     <nacos-client.version>2.2.0</nacos-client.version>
     <netflix-commons.version>0.3.0</netflix-commons.version>
-    <netty.version>4.1.110.Final</netty.version>
+    <netty.version>4.1.112.Final</netty.version>
     <okhttp3.version>4.10.0</okhttp3.version>
     <prometheus.version>0.16.0</prometheus.version>
     <protobuf.version>3.21.12</protobuf.version>
@@ -98,7 +98,7 @@
     <spring-boot.version>2.7.18</spring-boot.version>
     <swagger.version>1.6.9</swagger.version>
     <swagger2markup.version>1.3.3</swagger2markup.version>
-    <vertx.version>4.4.9</vertx.version>
+    <vertx.version>4.5.9</vertx.version>
     <zipkin.version>2.24.0</zipkin.version>
     <zipkin-reporter.version>2.16.3</zipkin-reporter.version>
     <!-- Base dir of main -->
diff --git 
a/foundations/foundation-test-scaffolding/src/main/java/io/vertx/core/impl/SyncContext.java
 
b/foundations/foundation-test-scaffolding/src/main/java/io/vertx/core/impl/SyncContext.java
index eb25a08f5..9a6f0ce38 100644
--- 
a/foundations/foundation-test-scaffolding/src/main/java/io/vertx/core/impl/SyncContext.java
+++ 
b/foundations/foundation-test-scaffolding/src/main/java/io/vertx/core/impl/SyncContext.java
@@ -16,20 +16,39 @@
  */
 package io.vertx.core.impl;
 
+import java.util.concurrent.Callable;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+
+import io.netty.channel.EventLoop;
+import io.vertx.codegen.annotations.Nullable;
 import io.vertx.core.AsyncResult;
+import io.vertx.core.Context;
 import io.vertx.core.Future;
 import io.vertx.core.Handler;
 import io.vertx.core.Promise;
+import io.vertx.core.ThreadingModel;
+import io.vertx.core.json.JsonObject;
+import io.vertx.core.spi.tracing.VertxTracer;
+
+/**
+ * This class is created to make vertx unit test easier
+ */
+@SuppressWarnings({"rawtypes"})
+public class SyncContext extends ContextBase implements ContextInternal {
+  private static final long serialVersionUID = -6209656149925076980L;
 
-public class SyncContext extends EventLoopContext {
   protected VertxInternal owner;
 
+  protected Executor executor = Executors.newSingleThreadExecutor();
+
   public SyncContext() {
-    this(null);
+    this(0);
   }
 
-  public SyncContext(VertxInternal vertx) {
-    super(vertx, null, null, null, null, null, null);
+  public SyncContext(int localsLength) {
+    super(localsLength);
   }
 
   @Override
@@ -37,15 +56,76 @@ public class SyncContext extends EventLoopContext {
     return owner;
   }
 
-  public void setOwner(VertxInternal owner) {
-    this.owner = owner;
+  @Override
+  public Context exceptionHandler(@Nullable Handler<Throwable> handler) {
+    return null;
+  }
+
+  @Override
+  public @Nullable Handler<Throwable> exceptionHandler() {
+    return null;
+  }
+
+  @Override
+  public boolean inThread() {
+    return false;
+  }
+
+  @Override
+  public <T> void emit(T t, Handler<T> handler) {
+
+  }
+
+  @Override
+  public void execute(Runnable runnable) {
+
+  }
+
+  @Override
+  public <T> void execute(T t, Handler<T> handler) {
+
+  }
+
+  @Override
+  public void reportException(Throwable throwable) {
+
+  }
+
+  @Override
+  public ConcurrentMap<Object, Object> contextData() {
+    return null;
+  }
+
+  @Override
+  public ClassLoader classLoader() {
+    return null;
   }
 
   @Override
-  protected void runOnContext(ContextInternal ctx, Handler<Void> action) {
-    action.handle(null);
+  public WorkerPool workerPool() {
+    return null;
   }
 
+  @Override
+  public VertxTracer tracer() {
+    return null;
+  }
+
+  @Override
+  public ContextInternal duplicate() {
+    return null;
+  }
+
+  @Override
+  public CloseFuture closeFuture() {
+    return null;
+  }
+
+  public void setOwner(VertxInternal owner) {
+    this.owner = owner;
+  }
+
+
   public static <T> void syncExecuteBlocking(Handler<Promise<T>> 
blockingCodeHandler,
       Handler<AsyncResult<T>> asyncResultHandler) {
     Promise<T> res = Promise.promise();
@@ -70,7 +150,6 @@ public class SyncContext extends EventLoopContext {
       return res.future();
     }
 
-    res.complete();
     return res.future();
   }
 
@@ -80,8 +159,81 @@ public class SyncContext extends EventLoopContext {
   }
 
   @Override
+  public <T> Future<T> executeBlockingInternal(Callable<T> callable) {
+    return null;
+  }
+
+  @Override
+  public <T> Future<T> executeBlockingInternal(Handler<Promise<T>> handler, 
boolean b) {
+    return null;
+  }
+
+  @Override
+  public <T> Future<T> executeBlockingInternal(Callable<T> callable, boolean 
b) {
+    return null;
+  }
+
+  @Override
+  public Deployment getDeployment() {
+    return null;
+  }
+
+  @Override
+  public Executor executor() {
+    return executor;
+  }
+
+  @Override
+  public EventLoop nettyEventLoop() {
+    return null;
+  }
+
+  @Override
+  @Deprecated
+  public <T> Future<T> executeBlocking(Handler<Promise<T>> handler, TaskQueue 
taskQueue) {
+    return null;
+  }
+
+  @Override
+  public <T> Future<T> executeBlocking(Callable<T> callable, TaskQueue 
taskQueue) {
+    return null;
+  }
+
+  @Override
+  @Deprecated
   public <T> void executeBlocking(Handler<Promise<T>> blockingCodeHandler, 
boolean ordered,
       Handler<AsyncResult<T>> asyncResultHandler) {
     syncExecuteBlocking(blockingCodeHandler, asyncResultHandler);
   }
+
+  @Override
+  public <T> Future<@Nullable T> executeBlocking(Callable<T> callable, boolean 
b) {
+    return null;
+  }
+
+  @Override
+  @Deprecated
+  public <T> Future<@Nullable T> executeBlocking(Handler<Promise<T>> handler, 
boolean b) {
+    return null;
+  }
+
+  @Override
+  public @Nullable JsonObject config() {
+    return null;
+  }
+
+  @Override
+  public boolean isEventLoopContext() {
+    return false;
+  }
+
+  @Override
+  public boolean isWorkerContext() {
+    return false;
+  }
+
+  @Override
+  public ThreadingModel threadingModel() {
+    return null;
+  }
 }
diff --git 
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxTLSBuilder.java
 
b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxTLSBuilder.java
index 4564ba9d4..b26ae3f4b 100644
--- 
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxTLSBuilder.java
+++ 
b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxTLSBuilder.java
@@ -110,7 +110,7 @@ public final class VertxTLSBuilder {
     tcpClientOptions.setSsl(true);
 
     if (sslOption.getEngine().equalsIgnoreCase("openssl")) {
-      tcpClientOptions.setOpenSslEngineOptions(new OpenSSLEngineOptions());
+      tcpClientOptions.setSslEngineOptions(new OpenSSLEngineOptions());
     }
     String fullKeyStore = sslCustom.getFullPath(sslOption.getKeyStore());
     if (isFileExists(fullKeyStore)) {
@@ -118,12 +118,12 @@ public final class VertxTLSBuilder {
         PfxOptions keyPfxOptions = new PfxOptions();
         keyPfxOptions.setPath(fullKeyStore);
         keyPfxOptions.setPassword(new 
String(sslCustom.decode(sslOption.getKeyStoreValue().toCharArray())));
-        tcpClientOptions.setPfxKeyCertOptions(keyPfxOptions);
+        tcpClientOptions.setKeyCertOptions(keyPfxOptions);
       } else if (STORE_JKS.equalsIgnoreCase(sslOption.getKeyStoreType())) {
         JksOptions keyJksOptions = new JksOptions();
         keyJksOptions.setPath(fullKeyStore);
         keyJksOptions.setPassword(new 
String(sslCustom.decode(sslOption.getKeyStoreValue().toCharArray())));
-        tcpClientOptions.setKeyStoreOptions(keyJksOptions);
+        tcpClientOptions.setKeyCertOptions(keyJksOptions);
       } else {
         throw new IllegalArgumentException("invalid key store type.");
       }
@@ -137,13 +137,13 @@ public final class VertxTLSBuilder {
         trustPfxOptions.setPath(fullTrustStore);
         trustPfxOptions
             .setPassword(new 
String(sslCustom.decode(sslOption.getTrustStoreValue().toCharArray())));
-        tcpClientOptions.setPfxTrustOptions(trustPfxOptions);
+        tcpClientOptions.setTrustOptions(trustPfxOptions);
       } else if (STORE_JKS.equalsIgnoreCase(sslOption.getTrustStoreType())) {
         JksOptions trustJksOptions = new JksOptions();
         trustJksOptions.setPath(fullTrustStore);
         trustJksOptions
             .setPassword(new 
String(sslCustom.decode(sslOption.getTrustStoreValue().toCharArray())));
-        tcpClientOptions.setTrustStoreOptions(trustJksOptions);
+        tcpClientOptions.setTrustOptions(trustJksOptions);
       } else {
         throw new IllegalArgumentException("invalid trust store type.");
       }
diff --git 
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/server/TcpServer.java
 
b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/server/TcpServer.java
index 46608d121..972d145ec 100644
--- 
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/server/TcpServer.java
+++ 
b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/server/TcpServer.java
@@ -20,7 +20,6 @@ package org.apache.servicecomb.foundation.vertx.server;
 import java.net.InetSocketAddress;
 
 import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
-import org.apache.servicecomb.foundation.common.utils.ExceptionUtils;
 import org.apache.servicecomb.foundation.ssl.SSLCustom;
 import org.apache.servicecomb.foundation.ssl.SSLOption;
 import org.apache.servicecomb.foundation.ssl.SSLOptionFactory;
@@ -78,7 +77,7 @@ public class TcpServer {
       TcpServerConnection connection = createTcpServerConnection();
       connection.init(netSocket);
     });
-    netServer.exceptionHandler(e -> LOGGER.error("Unexpected error in 
server.{}", ExceptionUtils.getExceptionMessageWithoutTrace(e)));
+    netServer.exceptionHandler(e -> LOGGER.error("Unexpected error in 
server.", e));
     InetSocketAddress socketAddress = endpointObject.getSocketAddress();
     netServer.listen(socketAddress.getPort(), socketAddress.getHostString(), 
ar -> {
       if (ar.succeeded()) {
diff --git 
a/foundations/foundation-vertx/src/test/java/io/vertx/ext/web/impl/TestHttpServerRequestUtils.java
 
b/foundations/foundation-vertx/src/test/java/io/vertx/ext/web/impl/TestHttpServerRequestUtils.java
index ec8255fdc..edf51783c 100644
--- 
a/foundations/foundation-vertx/src/test/java/io/vertx/ext/web/impl/TestHttpServerRequestUtils.java
+++ 
b/foundations/foundation-vertx/src/test/java/io/vertx/ext/web/impl/TestHttpServerRequestUtils.java
@@ -17,15 +17,16 @@
 
 package io.vertx.ext.web.impl;
 
-import io.vertx.ext.web.RequestBody;
 import 
org.apache.servicecomb.foundation.vertx.http.VertxServerRequestToHttpServletRequest;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
 
 import io.vertx.core.http.impl.HttpServerRequestInternal;
+import io.vertx.core.net.HostAndPort;
 import io.vertx.ext.web.AllowForwardHeaders;
+import io.vertx.ext.web.RequestBody;
 import io.vertx.ext.web.RoutingContext;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
-import org.mockito.Mockito;
 
 // HttpServerRequestWrapper is a package visible class, so put this test in 
package io.vertx.ext.web.impl
 public class TestHttpServerRequestUtils {
@@ -36,6 +37,7 @@ public class TestHttpServerRequestUtils {
     HttpServerRequestWrapper wrapper = new HttpServerRequestWrapper(request, 
AllowForwardHeaders.NONE);
     Mockito.when(request.scheme()).thenReturn("http");
     Mockito.when(context.request()).thenReturn(wrapper);
+    
Mockito.when(request.authority()).thenReturn(HostAndPort.create("localhost", 
8080));
     RequestBody requestBody = Mockito.mock(RequestBody.class);
     Mockito.when(context.body()).thenReturn(requestBody);
 
diff --git 
a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/stream/TestPumpFromPart.java
 
b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/stream/TestPumpFromPart.java
index dd391c4f9..c4c14b50b 100644
--- 
a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/stream/TestPumpFromPart.java
+++ 
b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/stream/TestPumpFromPart.java
@@ -25,23 +25,28 @@ import java.util.concurrent.ExecutionException;
 import javax.servlet.http.Part;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.RandomStringUtils;
+import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.servicecomb.foundation.common.part.InputStreamPart;
 import 
org.apache.servicecomb.foundation.vertx.stream.InputStreamToReadStream.ReadResult;
 import org.hamcrest.MatcherAssert;
 import org.hamcrest.Matchers;
+import org.junit.Before;
 import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
 
 import io.vertx.core.Context;
 import io.vertx.core.Promise;
+import io.vertx.core.Vertx;
 import io.vertx.core.impl.SyncContext;
+import io.vertx.core.impl.VertxInternal;
 import mockit.Expectations;
 import mockit.Mock;
 import mockit.MockUp;
-import org.junit.jupiter.api.Assertions;
 
 public class TestPumpFromPart {
-  String src = RandomStringUtils.random(100);
+  static Vertx vertx = Vertx.vertx();
+
+  String src = RandomStringUtils.random(100, true, true);
 
   boolean inputStreamClosed;
 
@@ -61,7 +66,12 @@ public class TestPumpFromPart {
 
   IOException error = new IOException();
 
-  Context context = new SyncContext();
+  SyncContext context = new SyncContext();
+
+  @Before
+  public void setup() throws IOException {
+    context.setOwner((VertxInternal) vertx);
+  }
 
   private void run(Context context, boolean closeOutput) throws Throwable {
     inputStream.reset();
diff --git 
a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayClient.java
 
b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayClient.java
index 4afe98a1f..1493fea1b 100644
--- 
a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayClient.java
+++ 
b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayClient.java
@@ -87,7 +87,11 @@ public class HighwayClient {
     }
     SSLCustom sslCustom = 
SSLCustom.createSSLCustom(sslOption.getSslCustomClass());
     VertxTLSBuilder.buildClientOptionsBase(sslOption, sslCustom, 
tcpClientConfig);
-
+    if (!sslOption.isCheckCNHost()) {
+      tcpClientConfig.setHostnameVerificationAlgorithm("");
+    } else {
+      tcpClientConfig.setHostnameVerificationAlgorithm("HTTPS");
+    }
     return tcpClientConfig;
   }
 

Reply via email to