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 2023/09/19 12:50:03 UTC
[servicecomb-java-chassis] 07/12: [SCB-2008]change DynamicPropertyFactory to Environment: core and transports
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
commit 1c924443c70c37cc680413bb7eb128ccbfeba516
Author: liubao <bi...@qq.com>
AuthorDate: Mon Sep 18 09:19:49 2023 +0800
[SCB-2008]change DynamicPropertyFactory to Environment: core and transports
---
.../servicecomb/common/rest/UploadConfig.java | 69 ++----
.../servicecomb/common/rest/TestUploadConfig.java | 76 -------
.../rest/locator/TestServicePathManager.java | 2 +
.../core/ConfigurationSpringInitializer.java | 10 +-
.../core/filter/impl/ParameterValidatorFilter.java | 15 +-
.../core/governance/GovernanceConfiguration.java | 4 +-
.../provider/producer/ProducerProviderManager.java | 5 +-
.../core/transport/AbstractTransport.java | 14 +-
.../filter/impl/ParameterValidatorFilterTest.java | 12 +-
.../core/transport/TestAbstractTransport.java | 18 ++
.../config/FoundationConfigConfiguration.java | 6 +
.../servicecomb/config/LegacyPropertyFactory.java | 59 +++++
.../inspector/internal/TestInspectorImpl.java | 9 +
.../transport/common/TransportConfigUtils.java | 7 +-
.../transport/common/TestTransportConfigUtils.java | 28 ++-
.../transport/highway/HighwayClient.java | 11 +-
.../transport/highway/HighwayConfig.java | 8 +-
.../transport/highway/HighwayServer.java | 6 +-
.../transport/highway/TestHighwayClient.java | 29 ++-
.../transport/highway/TestHighwayConfig.java | 53 -----
.../transport/highway/TestHighwayTransport.java | 23 ++
.../rest/client/TransportClientConfig.java | 79 +++----
.../rest/client/TestTransportClientConfig.java | 97 ---------
.../transport/rest/servlet/ServletConfig.java | 19 +-
.../transport/rest/servlet/TestServletConfig.java | 57 -----
.../rest/servlet/TestServletRestTransport.java | 16 ++
.../transport/rest/servlet/TestServletUtils.java | 37 ++--
.../transport/rest/vertx/RestServerVerticle.java | 11 +-
.../transport/rest/vertx/TransportConfig.java | 122 +++++------
.../transport/rest/vertx/VertxRestDispatcher.java | 18 +-
.../vertx/TestAbstractVertxHttpDispatcher.java | 39 ++--
.../rest/vertx/TestRestServerVerticle.java | 146 +++++++++----
.../transport/rest/vertx/TestTransportConfig.java | 237 ---------------------
.../rest/vertx/TestVertxRestDispatcher.java | 23 +-
.../rest/vertx/TestVertxRestTransport.java | 32 ++-
35 files changed, 531 insertions(+), 866 deletions(-)
diff --git a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/UploadConfig.java b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/UploadConfig.java
index a5d921b1a..fb89bf91c 100644
--- a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/UploadConfig.java
+++ b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/UploadConfig.java
@@ -16,79 +16,46 @@
*/
package org.apache.servicecomb.common.rest;
-import jakarta.servlet.MultipartConfigElement;
+import org.apache.servicecomb.config.LegacyPropertyFactory;
-import com.netflix.config.DynamicPropertyFactory;
+import jakarta.servlet.MultipartConfigElement;
public class UploadConfig {
-
/**
* null means not support upload
*/
- private String location;
+ public String getLocation() {
+ return LegacyPropertyFactory
+ .getStringProperty(RestConst.UPLOAD_DIR, RestConst.UPLOAD_DEFAULT_DIR);
+ }
/**
* limit of one upload file, only available for servlet rest transport
*/
- private long maxFileSize;
+ public long getMaxFileSize() {
+ return LegacyPropertyFactory.getLongProperty(RestConst.UPLOAD_MAX_FILE_SIZE, -1L);
+ }
/**
* limit of upload request body
*/
- private long maxSize;
-
- /**
- * the size threshold after which files will be written to disk, only available for servlet rest transport
- */
- private int fileSizeThreshold;
-
- public UploadConfig() {
- location = DynamicPropertyFactory.getInstance()
- .getStringProperty(RestConst.UPLOAD_DIR, RestConst.UPLOAD_DEFAULT_DIR).get();
- maxFileSize = DynamicPropertyFactory.getInstance().getLongProperty(RestConst.UPLOAD_MAX_FILE_SIZE, -1L).get();
- maxSize = DynamicPropertyFactory.getInstance().getLongProperty(RestConst.UPLOAD_MAX_SIZE, -1L).get();
- fileSizeThreshold = DynamicPropertyFactory.getInstance().getIntProperty(RestConst.UPLOAD_FILE_SIZE_THRESHOLD, 0)
- .get();
- }
-
- public String getLocation() {
- return location;
- }
-
- public void setLocation(String location) {
- this.location = location;
- }
-
- public long getMaxFileSize() {
- return maxFileSize;
- }
-
- public void setMaxFileSize(long maxFileSize) {
- this.maxFileSize = maxFileSize;
- }
-
public long getMaxSize() {
- return maxSize;
+ return LegacyPropertyFactory.getLongProperty(RestConst.UPLOAD_MAX_SIZE, -1L);
}
- public void setMaxSize(long maxSize) {
- this.maxSize = maxSize;
- }
+ /**
+ * the size threshold after which files will be written to disk, only available for servlet rest transport
+ */
public int getFileSizeThreshold() {
- return fileSizeThreshold;
- }
-
- public void setFileSizeThreshold(int fileSizeThreshold) {
- this.fileSizeThreshold = fileSizeThreshold;
+ return LegacyPropertyFactory.getIntProperty(RestConst.UPLOAD_FILE_SIZE_THRESHOLD, 0);
}
public MultipartConfigElement toMultipartConfigElement() {
-
return new MultipartConfigElement(
- location,
- DynamicPropertyFactory.getInstance().getLongProperty(RestConst.UPLOAD_MAX_FILE_SIZE, -1L).get(),
- DynamicPropertyFactory.getInstance().getLongProperty(RestConst.UPLOAD_MAX_SIZE, -1L).get(),
- DynamicPropertyFactory.getInstance().getIntProperty(RestConst.UPLOAD_FILE_SIZE_THRESHOLD, 0).get());
+ getLocation(),
+ getMaxFileSize(),
+ getMaxSize(),
+ getFileSizeThreshold());
}
}
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestUploadConfig.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestUploadConfig.java
deleted file mode 100644
index 4ef76bdee..000000000
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestUploadConfig.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.servicecomb.common.rest;
-
-import jakarta.servlet.MultipartConfigElement;
-
-import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-public class TestUploadConfig {
- @BeforeEach
- public void setUp() {
- ArchaiusUtils.resetConfig();
- }
-
- @AfterEach
- public void tearDown() {
- ArchaiusUtils.resetConfig();
- }
-
- @Test
- public void getMultipartConfig_default() {
- ArchaiusUtils.setProperty(RestConst.UPLOAD_DIR, "upload");
-
- UploadConfig uploadConfig = new UploadConfig();
- MultipartConfigElement multipartConfigElement = uploadConfig.toMultipartConfigElement();
-
- Assertions.assertEquals("upload", uploadConfig.getLocation());
- Assertions.assertEquals(-1L, uploadConfig.getMaxFileSize());
- Assertions.assertEquals(-1L, uploadConfig.getMaxSize());
- Assertions.assertEquals(0, uploadConfig.getFileSizeThreshold());
-
- Assertions.assertEquals("upload", multipartConfigElement.getLocation());
- Assertions.assertEquals(-1L, multipartConfigElement.getMaxFileSize());
- Assertions.assertEquals(-1L, multipartConfigElement.getMaxRequestSize());
- Assertions.assertEquals(0, multipartConfigElement.getFileSizeThreshold());
- }
-
- @Test
- public void getMultipartConfig_config() {
- ArchaiusUtils.setProperty(RestConst.UPLOAD_DIR, "upload");
- ArchaiusUtils.setProperty(RestConst.UPLOAD_MAX_FILE_SIZE, 1);
- ArchaiusUtils.setProperty(RestConst.UPLOAD_MAX_SIZE, 2);
- ArchaiusUtils.setProperty(RestConst.UPLOAD_FILE_SIZE_THRESHOLD, 3);
-
- UploadConfig uploadConfig = new UploadConfig();
- MultipartConfigElement multipartConfigElement = uploadConfig.toMultipartConfigElement();
-
- Assertions.assertEquals("upload", uploadConfig.getLocation());
- Assertions.assertEquals(1, uploadConfig.getMaxFileSize());
- Assertions.assertEquals(2, uploadConfig.getMaxSize());
- Assertions.assertEquals(3, uploadConfig.getFileSizeThreshold());
-
- Assertions.assertEquals("upload", multipartConfigElement.getLocation());
- Assertions.assertEquals(1, multipartConfigElement.getMaxFileSize());
- Assertions.assertEquals(2, multipartConfigElement.getMaxRequestSize());
- Assertions.assertEquals(3, multipartConfigElement.getFileSizeThreshold());
- }
-}
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/locator/TestServicePathManager.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/locator/TestServicePathManager.java
index 2e244e123..902ea583d 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/locator/TestServicePathManager.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/locator/TestServicePathManager.java
@@ -87,6 +87,8 @@ public class TestServicePathManager {
scbEngine.setEnvironment(environment);
Mockito.when(environment.getProperty(CFG_KEY_TURN_DOWN_STATUS_WAIT_SEC,
long.class, DEFAULT_TURN_DOWN_STATUS_WAIT_SEC)).thenReturn(DEFAULT_TURN_DOWN_STATUS_WAIT_SEC);
+ Mockito.when(environment.getProperty(DefinitionConst.REGISTER_URL_PREFIX, boolean.class, false)).thenReturn(false);
+
ExecutorManager executorManager = Mockito.mock(ExecutorManager.class);
TransportManager transportManager = Mockito.mock(TransportManager.class);
scbEngine.setTransportManager(transportManager);
diff --git a/core/src/main/java/org/apache/servicecomb/core/ConfigurationSpringInitializer.java b/core/src/main/java/org/apache/servicecomb/core/ConfigurationSpringInitializer.java
index c3e9952b7..f814f1209 100644
--- a/core/src/main/java/org/apache/servicecomb/core/ConfigurationSpringInitializer.java
+++ b/core/src/main/java/org/apache/servicecomb/core/ConfigurationSpringInitializer.java
@@ -52,10 +52,8 @@ import org.springframework.core.env.MapPropertySource;
import org.springframework.core.env.MutablePropertySources;
import org.springframework.core.env.PropertySource;
-
import com.google.common.eventbus.Subscribe;
import com.netflix.config.ConfigurationManager;
-import com.netflix.config.DynamicPropertyFactory;
import com.netflix.config.WatchedUpdateResult;
/**
@@ -243,8 +241,8 @@ public class ConfigurationSpringInitializer extends PropertySourcesPlaceholderCo
try {
ce.getPropertySources().addFirst(new MapPropertySource("dynamic-source", dynamicData));
} catch (Exception e) {
- if (DynamicPropertyFactory.getInstance().getBooleanProperty(CoreConst.PRINT_SENSITIVE_ERROR_MESSAGE,
- false).get()) {
+ if (environment.getProperty(CoreConst.PRINT_SENSITIVE_ERROR_MESSAGE, boolean.class,
+ false)) {
LOGGER.warn("set up spring property source failed.", e);
} else {
LOGGER.warn("set up spring property source failed. msg: {}", e.getMessage());
@@ -331,7 +329,9 @@ public class ConfigurationSpringInitializer extends PropertySourcesPlaceholderCo
try {
Object propertyValue = environment.getProperty(propertyName, Object.class);
if (propertyValue == null) {
- LOGGER.error("The value of a configuration item is null, please check whether there is any impact, config item key: {}", propertyName);
+ LOGGER.error(
+ "The value of a configuration item is null, please check whether there is any impact, config item key: {}",
+ propertyName);
continue;
}
configFromSpringBoot.put(propertyName, propertyValue);
diff --git a/core/src/main/java/org/apache/servicecomb/core/filter/impl/ParameterValidatorFilter.java b/core/src/main/java/org/apache/servicecomb/core/filter/impl/ParameterValidatorFilter.java
index 03efe04ad..ea5cf5ffd 100644
--- a/core/src/main/java/org/apache/servicecomb/core/filter/impl/ParameterValidatorFilter.java
+++ b/core/src/main/java/org/apache/servicecomb/core/filter/impl/ParameterValidatorFilter.java
@@ -37,8 +37,8 @@ import org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpo
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.InitializingBean;
-
-import com.netflix.config.DynamicPropertyFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
import jakarta.validation.ConstraintViolation;
import jakarta.validation.ConstraintViolationException;
@@ -52,10 +52,17 @@ public class ParameterValidatorFilter implements ProviderFilter, InitializingBea
public static final String NAME = "validator";
- private static final String ENABLE_EL = "servicecomb.filters.validation.useResourceBundleMessageInterpolator";
+ public static final String ENABLE_EL = "servicecomb.filters.validation.useResourceBundleMessageInterpolator";
protected ExecutableValidator validator;
+ private Environment environment;
+
+ @Autowired
+ public void setEnvironment(Environment environment) {
+ this.environment = environment;
+ }
+
@Nonnull
@Override
public String getName() {
@@ -89,7 +96,7 @@ public class ParameterValidatorFilter implements ProviderFilter, InitializingBea
}
private boolean useResourceBundleMessageInterpolator() {
- return DynamicPropertyFactory.getInstance().getBooleanProperty(ENABLE_EL, false).get();
+ return environment.getProperty(ENABLE_EL, boolean.class, false);
}
@Override
diff --git a/core/src/main/java/org/apache/servicecomb/core/governance/GovernanceConfiguration.java b/core/src/main/java/org/apache/servicecomb/core/governance/GovernanceConfiguration.java
index eff944fff..37ca9ce0c 100644
--- a/core/src/main/java/org/apache/servicecomb/core/governance/GovernanceConfiguration.java
+++ b/core/src/main/java/org/apache/servicecomb/core/governance/GovernanceConfiguration.java
@@ -16,7 +16,7 @@
*/
package org.apache.servicecomb.core.governance;
-import com.netflix.config.DynamicPropertyFactory;
+import org.apache.servicecomb.config.LegacyPropertyFactory;
public class GovernanceConfiguration {
public static final String ROOT = "servicecomb.loadbalance.";
@@ -62,7 +62,7 @@ public class GovernanceConfiguration {
public static String getStringProperty(String defaultValue, String... keys) {
String property;
for (String key : keys) {
- property = DynamicPropertyFactory.getInstance().getStringProperty(key, null).get();
+ property = LegacyPropertyFactory.getStringProperty(key);
if (property != null) {
return property;
}
diff --git a/core/src/main/java/org/apache/servicecomb/core/provider/producer/ProducerProviderManager.java b/core/src/main/java/org/apache/servicecomb/core/provider/producer/ProducerProviderManager.java
index 6344b90b1..68ba02f36 100644
--- a/core/src/main/java/org/apache/servicecomb/core/provider/producer/ProducerProviderManager.java
+++ b/core/src/main/java/org/apache/servicecomb/core/provider/producer/ProducerProviderManager.java
@@ -39,8 +39,6 @@ import org.apache.servicecomb.swagger.engine.SwaggerProducerOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.netflix.config.DynamicPropertyFactory;
-
import io.swagger.v3.oas.models.OpenAPI;
public class ProducerProviderManager {
@@ -121,8 +119,7 @@ public class ProducerProviderManager {
private void registerUrlPrefixToSwagger(OpenAPI swagger) {
String urlPrefix = ClassLoaderScopeContext.getClassLoaderScopeProperty(DefinitionConst.URL_PREFIX);
if (!StringUtils.isEmpty(urlPrefix) && !SwaggerUtils.getBasePath(swagger).startsWith(urlPrefix)
- && DynamicPropertyFactory.getInstance()
- .getBooleanProperty(DefinitionConst.REGISTER_URL_PREFIX, false).get()) {
+ && scbEngine.getEnvironment().getProperty(DefinitionConst.REGISTER_URL_PREFIX, boolean.class, false)) {
LOGGER.info("Add swagger base path prefix for {} with {}", SwaggerUtils.getBasePath(swagger), urlPrefix);
SwaggerUtils.setBasePath(swagger, urlPrefix + SwaggerUtils.getBasePath(swagger));
}
diff --git a/core/src/main/java/org/apache/servicecomb/core/transport/AbstractTransport.java b/core/src/main/java/org/apache/servicecomb/core/transport/AbstractTransport.java
index de9926fa8..8a68eb9ec 100644
--- a/core/src/main/java/org/apache/servicecomb/core/transport/AbstractTransport.java
+++ b/core/src/main/java/org/apache/servicecomb/core/transport/AbstractTransport.java
@@ -38,8 +38,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.env.Environment;
-import com.netflix.config.DynamicPropertyFactory;
-
import io.vertx.core.Vertx;
public abstract class AbstractTransport implements Transport {
@@ -133,7 +131,7 @@ public abstract class AbstractTransport implements Transport {
*
* @return the publish address, or {@code null} if the param {@code address} is null.
*/
- public static String getPublishAddress(String schema, String address) {
+ protected String getPublishAddress(String schema, String address) {
if (address == null) {
return address;
}
@@ -155,16 +153,12 @@ public abstract class AbstractTransport implements Transport {
}
}
- private static IpPort genPublishIpPort(String schema, IpPort ipPort) {
- String publicAddressSetting = DynamicPropertyFactory.getInstance()
- .getStringProperty(PUBLISH_ADDRESS, "")
- .get();
+ private IpPort genPublishIpPort(String schema, IpPort ipPort) {
+ String publicAddressSetting = environment.getProperty(PUBLISH_ADDRESS, String.class, "");
publicAddressSetting = publicAddressSetting.trim();
String publishPortKey = PUBLISH_PORT.replace("{transport_name}", schema);
- int publishPortSetting = DynamicPropertyFactory.getInstance()
- .getIntProperty(publishPortKey, 0)
- .get();
+ int publishPortSetting = environment.getProperty(publishPortKey, int.class, 0);
int publishPort = publishPortSetting == 0 ? ipPort.getPort() : publishPortSetting;
if (publicAddressSetting.isEmpty()) {
diff --git a/core/src/test/java/org/apache/servicecomb/core/filter/impl/ParameterValidatorFilterTest.java b/core/src/test/java/org/apache/servicecomb/core/filter/impl/ParameterValidatorFilterTest.java
index d7ed12f58..5d441ef26 100644
--- a/core/src/test/java/org/apache/servicecomb/core/filter/impl/ParameterValidatorFilterTest.java
+++ b/core/src/test/java/org/apache/servicecomb/core/filter/impl/ParameterValidatorFilterTest.java
@@ -20,6 +20,7 @@ package org.apache.servicecomb.core.filter.impl;
import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
import static org.apache.servicecomb.core.exception.ExceptionCodes.DEFAULT_VALIDATE;
import static org.apache.servicecomb.core.exception.converter.ConstraintViolationExceptionConverter.KEY_CODE;
+import static org.apache.servicecomb.core.filter.impl.ParameterValidatorFilter.ENABLE_EL;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.catchThrowable;
@@ -39,7 +40,6 @@ import org.apache.servicecomb.swagger.engine.SwaggerProducerOperation;
import org.apache.servicecomb.swagger.invocation.exception.CommonExceptionData;
import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
import org.junit.Before;
-import org.junit.BeforeClass;
import org.junit.Test;
import org.mockito.Mockito;
import org.springframework.core.env.Environment;
@@ -88,7 +88,7 @@ public class ParameterValidatorFilterTest {
}
}
- static ParameterValidatorFilter filter = new ParameterValidatorFilter();
+ ParameterValidatorFilter filter = new ParameterValidatorFilter();
@Mocked
Invocation invocation;
@@ -98,15 +98,13 @@ public class ParameterValidatorFilterTest {
Environment environment;
- @BeforeClass
- public static void beforeClass() throws Exception {
- filter.afterPropertiesSet();
- }
-
@Before
public void setUp() throws Exception {
SCBEngine engine = SCBBootstrap.createSCBEngineForTest();
environment = Mockito.mock(Environment.class);
+ Mockito.when(environment.getProperty(ENABLE_EL, boolean.class, false)).thenReturn(false);
+ filter.setEnvironment(environment);
+ filter.afterPropertiesSet();
engine.setEnvironment(environment);
new Expectations() {
{
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 cf0a1e3e4..640134367 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
@@ -17,6 +17,8 @@
package org.apache.servicecomb.core.transport;
+import static org.apache.servicecomb.core.transport.AbstractTransport.PUBLISH_ADDRESS;
+
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
@@ -24,9 +26,14 @@ import java.util.Collections;
import org.apache.servicecomb.foundation.common.net.IpPort;
import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
public class TestAbstractTransport {
+ Environment environment = Mockito.mock(Environment.class);
+
static class MyAbstractTransport extends AbstractTransport {
@Override
@@ -40,9 +47,16 @@ public class TestAbstractTransport {
}
}
+ @BeforeEach
+ public void setUp() {
+ Mockito.when(environment.getProperty(PUBLISH_ADDRESS, String.class, "")).thenReturn("");
+ Mockito.when(environment.getProperty("servicecomb.my.publishPort", int.class, 0)).thenReturn(0);
+ }
+
@Test
public void testSetListenAddressWithoutSchemaChineseSpaceNewSC() throws UnsupportedEncodingException {
MyAbstractTransport transport = new MyAbstractTransport();
+ transport.setEnvironment(environment);
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()),
transport.getEndpoint().getEndpoint());
@@ -51,6 +65,7 @@ public class TestAbstractTransport {
@Test
public void testSetListenAddressWithoutSchemaNormalNotEncode() {
MyAbstractTransport transport = new MyAbstractTransport();
+ transport.setEnvironment(environment);
transport.setListenAddressWithoutSchema("127.0.0.1:9090", Collections.singletonMap("country", "chinese"));
Assertions.assertEquals("my://127.0.0.1:9090?country=chinese", transport.getEndpoint().getEndpoint());
}
@@ -58,6 +73,7 @@ public class TestAbstractTransport {
@Test
public void testSetListenAddressWithoutSchemaAlreadyHaveQuery() {
MyAbstractTransport transport = new MyAbstractTransport();
+ transport.setEnvironment(environment);
transport.setListenAddressWithoutSchema("127.0.0.1:9090?a=aValue",
Collections.singletonMap("country", "chinese"));
Assertions.assertEquals("my://127.0.0.1:9090?a=aValue&country=chinese", transport.getEndpoint().getEndpoint());
@@ -66,6 +82,7 @@ public class TestAbstractTransport {
@Test
public void testMyAbstractTransport() {
MyAbstractTransport transport = new MyAbstractTransport();
+ transport.setEnvironment(environment);
transport.setListenAddressWithoutSchema("127.0.0.1:9090");
Assertions.assertEquals("my", transport.getName());
Assertions.assertEquals("my://127.0.0.1:9090", transport.getEndpoint().getEndpoint());
@@ -80,6 +97,7 @@ public class TestAbstractTransport {
@Test
public void testMyAbstractTransportException() {
MyAbstractTransport transport = new MyAbstractTransport();
+ transport.setEnvironment(environment);
Assertions.assertThrows(IllegalArgumentException.class, () ->
transport.setListenAddressWithoutSchema(":127.0.0.1:9090"));
}
diff --git a/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/FoundationConfigConfiguration.java b/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/FoundationConfigConfiguration.java
index 87ee0c5c7..00e302bf5 100644
--- a/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/FoundationConfigConfiguration.java
+++ b/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/FoundationConfigConfiguration.java
@@ -23,6 +23,7 @@ import org.apache.servicecomb.config.priority.PriorityPropertyManager;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.core.env.Environment;
@Configuration
@SuppressWarnings("unused")
@@ -68,4 +69,9 @@ public class FoundationConfigConfiguration {
public DataCenterProperties dataCenterProperties() {
return new DataCenterProperties();
}
+
+ @Bean
+ public LegacyPropertyFactory legacyPropertyFactory(Environment environment) {
+ return new LegacyPropertyFactory(environment);
+ }
}
diff --git a/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/LegacyPropertyFactory.java b/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/LegacyPropertyFactory.java
new file mode 100644
index 000000000..f01f8736b
--- /dev/null
+++ b/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/LegacyPropertyFactory.java
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.servicecomb.config;
+
+import org.springframework.core.env.Environment;
+
+import com.google.common.annotations.VisibleForTesting;
+
+/**
+ * Provider a convenient way to get property value in static context.
+ *
+ * NOTE: this way is not commented and only for legacy code without too much refactoring.
+ */
+public class LegacyPropertyFactory {
+ private static Environment environment;
+
+ public LegacyPropertyFactory(Environment environment) {
+ LegacyPropertyFactory.environment = environment;
+ }
+
+ @VisibleForTesting
+ public static void setEnvironment(Environment environment) {
+ LegacyPropertyFactory.environment = environment;
+ }
+
+ public static boolean getBooleanProperty(String key, boolean defaultValue) {
+ return environment.getProperty(key, boolean.class, defaultValue);
+ }
+
+ public static int getIntProperty(String key, int defaultValue) {
+ return environment.getProperty(key, int.class, defaultValue);
+ }
+
+ public static long getLongProperty(String key, long defaultValue) {
+ return environment.getProperty(key, long.class, defaultValue);
+ }
+
+ public static String getStringProperty(String key) {
+ return environment.getProperty(key);
+ }
+
+ public static String getStringProperty(String key, String defaultValue) {
+ return environment.getProperty(key, String.class, defaultValue);
+ }
+}
diff --git a/inspector/src/test/java/org/apache/servicecomb/inspector/internal/TestInspectorImpl.java b/inspector/src/test/java/org/apache/servicecomb/inspector/internal/TestInspectorImpl.java
index f28f966f0..715d3fed4 100644
--- a/inspector/src/test/java/org/apache/servicecomb/inspector/internal/TestInspectorImpl.java
+++ b/inspector/src/test/java/org/apache/servicecomb/inspector/internal/TestInspectorImpl.java
@@ -34,6 +34,7 @@ import java.util.zip.ZipInputStream;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.servicecomb.config.ConfigUtil;
+import org.apache.servicecomb.config.LegacyPropertyFactory;
import org.apache.servicecomb.config.priority.PriorityPropertyFactory;
import org.apache.servicecomb.core.SCBEngine;
import org.apache.servicecomb.core.Transport;
@@ -55,6 +56,7 @@ import org.hamcrest.Matchers;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledForJreRange;
import org.junit.jupiter.api.condition.JRE;
@@ -84,6 +86,13 @@ public class TestInspectorImpl {
inspector = initInspector(null);
}
+ Environment environment = Mockito.mock(Environment.class);
+
+ @BeforeEach
+ public void setUp() {
+ LegacyPropertyFactory.setEnvironment(environment);
+ }
+
private static InspectorImpl initInspector(String urlPrefix) {
SCBEngine scbEngine = SCBBootstrap.createSCBEngineForTest();
Environment environment = Mockito.mock(Environment.class);
diff --git a/transports/transport-common/src/main/java/org/apache/servicecomb/transport/common/TransportConfigUtils.java b/transports/transport-common/src/main/java/org/apache/servicecomb/transport/common/TransportConfigUtils.java
index 29a7b9533..26524a094 100644
--- a/transports/transport-common/src/main/java/org/apache/servicecomb/transport/common/TransportConfigUtils.java
+++ b/transports/transport-common/src/main/java/org/apache/servicecomb/transport/common/TransportConfigUtils.java
@@ -16,11 +16,10 @@
*/
package org.apache.servicecomb.transport.common;
+import org.apache.servicecomb.config.LegacyPropertyFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.netflix.config.DynamicPropertyFactory;
-
public final class TransportConfigUtils {
private static final Logger LOGGER = LoggerFactory.getLogger(TransportConfigUtils.class);
@@ -30,12 +29,12 @@ public final class TransportConfigUtils {
// old verticle count key is ambiguous
// suggest to use new name
public static int readVerticleCount(String key, String deprecatedKey) {
- int count = DynamicPropertyFactory.getInstance().getIntProperty(key, -1).get();
+ int count = LegacyPropertyFactory.getIntProperty(key, -1);
if (count > 0) {
return count;
}
- count = DynamicPropertyFactory.getInstance().getIntProperty(deprecatedKey, -1).get();
+ count = LegacyPropertyFactory.getIntProperty(deprecatedKey, -1);
if (count > 0) {
LOGGER.warn("{} is ambiguous, and deprecated, recommended to use {}.", deprecatedKey, key);
return count;
diff --git a/transports/transport-common/src/test/java/org/apache/servicecomb/transport/common/TestTransportConfigUtils.java b/transports/transport-common/src/test/java/org/apache/servicecomb/transport/common/TestTransportConfigUtils.java
index a05f51906..14a77032d 100644
--- a/transports/transport-common/src/test/java/org/apache/servicecomb/transport/common/TestTransportConfigUtils.java
+++ b/transports/transport-common/src/test/java/org/apache/servicecomb/transport/common/TestTransportConfigUtils.java
@@ -18,25 +18,28 @@ package org.apache.servicecomb.transport.common;
import java.util.concurrent.atomic.AtomicInteger;
-import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
+import org.apache.servicecomb.config.LegacyPropertyFactory;
import org.apache.servicecomb.foundation.test.scaffolding.log.LogCollector;
-
-import mockit.Mock;
-import mockit.MockUp;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
+
+import mockit.Mock;
+import mockit.MockUp;
public class TestTransportConfigUtils {
+ Environment environment = Mockito.mock(Environment.class);
+
@BeforeEach
public void setup() {
- ArchaiusUtils.resetConfig();
+ LegacyPropertyFactory.setEnvironment(environment);
}
@AfterAll
public static void teardown() {
- ArchaiusUtils.resetConfig();
}
static String key = "verticle-count";
@@ -45,15 +48,14 @@ public class TestTransportConfigUtils {
@Test
public void readVerticleCount_new_exist() {
- ArchaiusUtils.setProperty(key, 10);
-
+ Mockito.when(environment.getProperty("verticle-count", int.class, -1)).thenReturn(10);
Assertions.assertEquals(10, TransportConfigUtils.readVerticleCount(key, deprecatedKey));
}
@Test
public void readVerticleCount_old_exist() {
- ArchaiusUtils.setProperty(deprecatedKey, 10);
-
+ Mockito.when(environment.getProperty("verticle-count", int.class, -1)).thenReturn(-1);
+ Mockito.when(environment.getProperty("thread-count", int.class, -1)).thenReturn(10);
LogCollector collector = new LogCollector();
Assertions.assertEquals(10, TransportConfigUtils.readVerticleCount(key, deprecatedKey));
Assertions.assertEquals("thread-count is ambiguous, and deprecated, recommended to use verticle-count.",
@@ -63,6 +65,9 @@ public class TestTransportConfigUtils {
@Test
public void readVerticleCount_default_smallCpu() {
+ Mockito.when(environment.getProperty("verticle-count", int.class, -1)).thenReturn(-1);
+ Mockito.when(environment.getProperty("thread-count", int.class, -1)).thenReturn(-1);
+
new MockUp<Runtime>() {
@Mock
int availableProcessors() {
@@ -79,6 +84,9 @@ public class TestTransportConfigUtils {
@Test
public void readVerticleCount_default_bigCpu() {
+ Mockito.when(environment.getProperty("verticle-count", int.class, -1)).thenReturn(-1);
+ Mockito.when(environment.getProperty("thread-count", int.class, -1)).thenReturn(-1);
+
AtomicInteger count = new AtomicInteger(8);
new MockUp<Runtime>() {
@Mock
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 e15124dbb..122be005e 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
@@ -19,11 +19,9 @@ package org.apache.servicecomb.transport.highway;
import java.util.concurrent.TimeoutException;
-import jakarta.ws.rs.core.Response.Status;
-
-import com.google.common.annotations.VisibleForTesting;
import org.apache.servicecomb.codec.protobuf.definition.OperationProtobuf;
import org.apache.servicecomb.codec.protobuf.definition.ProtobufManager;
+import org.apache.servicecomb.config.LegacyPropertyFactory;
import org.apache.servicecomb.core.Invocation;
import org.apache.servicecomb.foundation.ssl.SSLCustom;
import org.apache.servicecomb.foundation.ssl.SSLOption;
@@ -40,10 +38,11 @@ import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.netflix.config.DynamicPropertyFactory;
+import com.google.common.annotations.VisibleForTesting;
import io.vertx.core.DeploymentOptions;
import io.vertx.core.Vertx;
+import jakarta.ws.rs.core.Response.Status;
public class HighwayClient {
private static final Logger LOGGER = LoggerFactory.getLogger(HighwayClient.class);
@@ -70,8 +69,8 @@ public class HighwayClient {
TcpClientConfig createTcpClientConfig() {
TcpClientConfig tcpClientConfig = new TcpClientConfig();
// global request timeout to be login timeout
- tcpClientConfig.setMsLoginTimeout(DynamicPropertyFactory.getInstance()
- .getLongProperty("servicecomb.request.timeout", TcpClientConfig.DEFAULT_LOGIN_TIMEOUT).get());
+ tcpClientConfig.setMsLoginTimeout(
+ LegacyPropertyFactory.getLongProperty("servicecomb.request.timeout", TcpClientConfig.DEFAULT_LOGIN_TIMEOUT));
SSLOptionFactory factory =
SSLOptionFactory.createSSLOptionFactory(SSL_KEY, null);
diff --git a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayConfig.java b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayConfig.java
index 7122fa508..0148cfbfe 100644
--- a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayConfig.java
+++ b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayConfig.java
@@ -17,19 +17,15 @@
package org.apache.servicecomb.transport.highway;
+import org.apache.servicecomb.config.LegacyPropertyFactory;
import org.apache.servicecomb.transport.common.TransportConfigUtils;
-import com.netflix.config.DynamicPropertyFactory;
-import com.netflix.config.DynamicStringProperty;
-
public final class HighwayConfig {
private HighwayConfig() {
}
public static String getAddress() {
- DynamicStringProperty address =
- DynamicPropertyFactory.getInstance().getStringProperty("servicecomb.highway.address", null);
- return address.get();
+ return LegacyPropertyFactory.getStringProperty("servicecomb.highway.address", null);
}
public static int getServerThreadCount() {
diff --git a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServer.java b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServer.java
index 08956df6a..9224c6ac2 100644
--- a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServer.java
+++ b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServer.java
@@ -17,13 +17,12 @@
package org.apache.servicecomb.transport.highway;
+import org.apache.servicecomb.config.LegacyPropertyFactory;
import org.apache.servicecomb.core.Endpoint;
import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
import org.apache.servicecomb.foundation.vertx.server.TcpServer;
import org.apache.servicecomb.foundation.vertx.server.TcpServerConnection;
-import com.netflix.config.DynamicPropertyFactory;
-
public class HighwayServer extends TcpServer {
private final Endpoint endpoint;
@@ -39,7 +38,6 @@ public class HighwayServer extends TcpServer {
@Override
protected int getConnectionLimit() {
- return DynamicPropertyFactory.getInstance()
- .getIntProperty("servicecomb.highway.server.connection-limit", Integer.MAX_VALUE).get();
+ return LegacyPropertyFactory.getIntProperty("servicecomb.highway.server.connection-limit", Integer.MAX_VALUE);
}
}
diff --git a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayClient.java b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayClient.java
index 1c71f1c41..999688a16 100644
--- a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayClient.java
+++ b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayClient.java
@@ -17,10 +17,9 @@
package org.apache.servicecomb.transport.highway;
-import jakarta.ws.rs.core.Response.Status;
-
import org.apache.servicecomb.codec.protobuf.definition.OperationProtobuf;
import org.apache.servicecomb.codec.protobuf.definition.ProtobufManager;
+import org.apache.servicecomb.config.LegacyPropertyFactory;
import org.apache.servicecomb.core.Endpoint;
import org.apache.servicecomb.core.Invocation;
import org.apache.servicecomb.core.definition.OperationConfig;
@@ -28,7 +27,6 @@ import org.apache.servicecomb.core.definition.OperationMeta;
import org.apache.servicecomb.core.executor.ReactiveExecutor;
import org.apache.servicecomb.core.invocation.InvocationStageTrace;
import org.apache.servicecomb.foundation.common.Holder;
-import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
import org.apache.servicecomb.foundation.vertx.VertxUtils;
import org.apache.servicecomb.foundation.vertx.client.ClientPoolManager;
import org.apache.servicecomb.foundation.vertx.client.tcp.AbstractTcpClientPackage;
@@ -38,15 +36,18 @@ import org.apache.servicecomb.foundation.vertx.client.tcp.TcpResponseCallback;
import org.apache.servicecomb.swagger.invocation.Response;
import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
import org.junit.AfterClass;
+import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
import io.vertx.core.AbstractVerticle;
import io.vertx.core.DeploymentOptions;
import io.vertx.core.Vertx;
import io.vertx.core.buffer.Buffer;
+import jakarta.ws.rs.core.Response.Status;
import mockit.Deencapsulation;
import mockit.Mock;
import mockit.MockUp;
@@ -67,13 +68,12 @@ public class TestHighwayClient {
Endpoint endpoint = Mockito.mock(Endpoint.class);
+ Environment environment = Mockito.mock(Environment.class);
+
static long nanoTime = 123;
@BeforeClass
public static void setup() {
- ArchaiusUtils.resetConfig();
- ArchaiusUtils.setProperty(REQUEST_TIMEOUT_KEY, 2000);
-
new MockUp<System>() {
@Mock
long nanoTime() {
@@ -84,7 +84,22 @@ public class TestHighwayClient {
@AfterClass
public static void teardown() {
- ArchaiusUtils.resetConfig();
+
+ }
+
+ @Before
+ public void setUp() {
+ LegacyPropertyFactory.setEnvironment(environment);
+ Mockito.when(environment.getProperty(REQUEST_TIMEOUT_KEY, long.class, (long) TcpClientConfig.DEFAULT_LOGIN_TIMEOUT))
+ .thenReturn((long) 2000);
+ Mockito.when(environment.getProperty("servicecomb.highway.client.verticle-count", int.class, -1))
+ .thenReturn(-1);
+ Mockito.when(environment.getProperty("servicecomb.highway.client.thread-count", int.class, -1))
+ .thenReturn(-1);
+ Mockito.when(environment.getProperty("servicecomb.highway.server.verticle-count", int.class, -1))
+ .thenReturn(-1);
+ Mockito.when(environment.getProperty("servicecomb.highway.server.thread-count", int.class, -1))
+ .thenReturn(-1);
}
@Test
diff --git a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayConfig.java b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayConfig.java
deleted file mode 100644
index 90fb5fd60..000000000
--- a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayConfig.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.transport.highway;
-
-import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.jupiter.api.Assertions;
-
-public class TestHighwayConfig {
- @BeforeClass
- public static void setup() {
- ArchaiusUtils.resetConfig();
- }
-
- @AfterClass
- public static void tearDown() {
- ArchaiusUtils.resetConfig();
- }
-
- @Test
- public void getServerThreadCount() {
- ArchaiusUtils.setProperty("servicecomb.highway.server.verticle-count", 1);
- Assertions.assertEquals(HighwayConfig.getServerThreadCount(), 1);
- }
-
- @Test
- public void getClientThreadCount() {
- ArchaiusUtils.setProperty("servicecomb.highway.client.verticle-count", 1);
- Assertions.assertEquals(HighwayConfig.getClientThreadCount(), 1);
- }
-
- @Test
- public void getAddress() {
- Assertions.assertNull(HighwayConfig.getAddress());
- }
-}
diff --git a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayTransport.java b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayTransport.java
index 4aae882ab..263d2e264 100644
--- a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayTransport.java
+++ b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayTransport.java
@@ -19,24 +19,30 @@ package org.apache.servicecomb.transport.highway;
import org.apache.servicecomb.codec.protobuf.definition.OperationProtobuf;
import org.apache.servicecomb.codec.protobuf.definition.RequestRootSerializer;
+import org.apache.servicecomb.config.LegacyPropertyFactory;
import org.apache.servicecomb.core.Endpoint;
import org.apache.servicecomb.core.Invocation;
import org.apache.servicecomb.core.definition.OperationMeta;
import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
import org.apache.servicecomb.foundation.vertx.VertxUtils;
+import org.apache.servicecomb.foundation.vertx.client.tcp.TcpClientConfig;
import org.junit.AfterClass;
+import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.mockito.Mockito;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.core.env.Environment;
public class TestHighwayTransport {
private static final Logger LOGGER = LoggerFactory.getLogger(TestHighwayTransport.class);
private final HighwayTransport transport = new HighwayTransport();
+ Environment environment = Mockito.mock(Environment.class);
+
@BeforeClass
public static void setup() {
VertxUtils.blockCloseVertxByName("transport");
@@ -49,6 +55,22 @@ public class TestHighwayTransport {
Thread.getAllStackTraces().keySet().forEach(t -> LOGGER.info("after: {}", t.getName()));
}
+ @Before
+ public void setUp() {
+ Mockito.when(environment.getProperty(
+ "servicecomb.request.timeout", long.class, (long) TcpClientConfig.DEFAULT_LOGIN_TIMEOUT))
+ .thenReturn((long) TcpClientConfig.DEFAULT_LOGIN_TIMEOUT);
+ Mockito.when(environment.getProperty("servicecomb.highway.client.verticle-count", int.class, -1))
+ .thenReturn(-1);
+ Mockito.when(environment.getProperty("servicecomb.highway.client.thread-count", int.class, -1))
+ .thenReturn(-1);
+ Mockito.when(environment.getProperty("servicecomb.highway.server.verticle-count", int.class, -1))
+ .thenReturn(-1);
+ Mockito.when(environment.getProperty("servicecomb.highway.server.thread-count", int.class, -1))
+ .thenReturn(-1);
+ LegacyPropertyFactory.setEnvironment(environment);
+ }
+
@Test
public void testGetInstance() {
Assertions.assertNotNull(transport);
@@ -60,6 +82,7 @@ public class TestHighwayTransport {
try {
transport.init();
} catch (Exception e) {
+ e.printStackTrace();
status = false;
}
diff --git a/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/TransportClientConfig.java b/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/TransportClientConfig.java
index 542955859..a371a8bc6 100644
--- a/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/TransportClientConfig.java
+++ b/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/TransportClientConfig.java
@@ -17,10 +17,9 @@
package org.apache.servicecomb.transport.rest.client;
+import org.apache.servicecomb.config.LegacyPropertyFactory;
import org.apache.servicecomb.transport.common.TransportConfigUtils;
-import com.netflix.config.DynamicPropertyFactory;
-
import io.vertx.core.http.HttpClientOptions;
public final class TransportClientConfig {
@@ -38,98 +37,80 @@ public final class TransportClientConfig {
}
public static int getHttp2ConnectionMaxPoolSize() {
- return DynamicPropertyFactory.getInstance().getIntProperty("servicecomb.rest.client.http2.maxPoolSize",
- HttpClientOptions.DEFAULT_HTTP2_MAX_POOL_SIZE)
- .get();
+ return LegacyPropertyFactory.getIntProperty("servicecomb.rest.client.http2.maxPoolSize",
+ HttpClientOptions.DEFAULT_HTTP2_MAX_POOL_SIZE);
}
public static int getHttp2MultiplexingLimit() {
- return DynamicPropertyFactory.getInstance().getIntProperty("servicecomb.rest.client.http2.multiplexingLimit",
- HttpClientOptions.DEFAULT_HTTP2_MULTIPLEXING_LIMIT)
- .get();
+ return LegacyPropertyFactory.getIntProperty("servicecomb.rest.client.http2.multiplexingLimit",
+ HttpClientOptions.DEFAULT_HTTP2_MULTIPLEXING_LIMIT);
}
public static boolean getUseAlpn() {
- return DynamicPropertyFactory.getInstance()
- .getBooleanProperty("servicecomb.rest.client.http2.useAlpnEnabled", true)
- .get();
+ return LegacyPropertyFactory.getBooleanProperty("servicecomb.rest.client.http2.useAlpnEnabled", true);
}
public static boolean isHttp2TransportClientEnabled() {
- return DynamicPropertyFactory.getInstance()
- .getBooleanProperty("servicecomb.rest.client.http2.enabled",
- true)
- .get();
+ return LegacyPropertyFactory.getBooleanProperty("servicecomb.rest.client.http2.enabled",
+ true);
}
public static int getConnectionMaxPoolSize() {
- return DynamicPropertyFactory.getInstance()
- .getIntProperty("servicecomb.rest.client.connection.maxPoolSize", HttpClientOptions.DEFAULT_MAX_POOL_SIZE)
- .get();
+ return LegacyPropertyFactory.getIntProperty("servicecomb.rest.client.connection.maxPoolSize",
+ HttpClientOptions.DEFAULT_MAX_POOL_SIZE);
}
public static int getHttp2ConnectionIdleTimeoutInSeconds() {
- return DynamicPropertyFactory.getInstance()
- .getIntProperty("servicecomb.rest.client.http2.connection.idleTimeoutInSeconds", DEFAULT_IDLE_TIME_OUT)
- .get();
+ return LegacyPropertyFactory.getIntProperty("servicecomb.rest.client.http2.connection.idleTimeoutInSeconds",
+ DEFAULT_IDLE_TIME_OUT);
}
public static int getConnectionIdleTimeoutInSeconds() {
- return DynamicPropertyFactory.getInstance()
- .getIntProperty("servicecomb.rest.client.connection.idleTimeoutInSeconds", DEFAULT_IDLE_TIME_OUT)
- .get();
+ return LegacyPropertyFactory.getIntProperty("servicecomb.rest.client.connection.idleTimeoutInSeconds",
+ DEFAULT_IDLE_TIME_OUT);
}
public static boolean getConnectionKeepAlive() {
- return DynamicPropertyFactory.getInstance()
- .getBooleanProperty("servicecomb.rest.client.connection.keepAlive", HttpClientOptions.DEFAULT_KEEP_ALIVE)
- .get();
+ return LegacyPropertyFactory
+ .getBooleanProperty("servicecomb.rest.client.connection.keepAlive", HttpClientOptions.DEFAULT_KEEP_ALIVE);
}
public static int getConnectionKeepAliveTimeoutInSeconds() {
- return DynamicPropertyFactory.getInstance()
- .getIntProperty("servicecomb.rest.client.connection.keepAliveTimeoutInSeconds",
- DEFAULT_KEEP_ALIVE_TIME_OUT)
- .get();
+ return LegacyPropertyFactory
+ .getIntProperty("servicecomb.rest.client.connection.keepAliveTimeoutInSeconds", DEFAULT_KEEP_ALIVE_TIME_OUT);
}
public static int getHttp2ConnectionKeepAliveTimeoutInSeconds() {
- return DynamicPropertyFactory.getInstance()
+ return LegacyPropertyFactory
.getIntProperty("servicecomb.rest.client.http2.connection.keepAliveTimeoutInSeconds",
- DEFAULT_KEEP_ALIVE_TIME_OUT)
- .get();
+ DEFAULT_KEEP_ALIVE_TIME_OUT);
}
public static boolean getConnectionCompression() {
- return DynamicPropertyFactory.getInstance()
+ return LegacyPropertyFactory
.getBooleanProperty("servicecomb.rest.client.connection.compression",
- HttpClientOptions.DEFAULT_TRY_USE_COMPRESSION)
- .get();
+ HttpClientOptions.DEFAULT_TRY_USE_COMPRESSION);
}
public static int getMaxHeaderSize() {
- return DynamicPropertyFactory.getInstance()
- .getIntProperty("servicecomb.rest.client.maxHeaderSize", HttpClientOptions.DEFAULT_MAX_HEADER_SIZE)
- .get();
+ return LegacyPropertyFactory
+ .getIntProperty("servicecomb.rest.client.maxHeaderSize", HttpClientOptions.DEFAULT_MAX_HEADER_SIZE);
}
public static int getMaxWaitQueueSize() {
- return DynamicPropertyFactory.getInstance()
+ return LegacyPropertyFactory
.getIntProperty("servicecomb.rest.client.maxWaitQueueSize",
- HttpClientOptions.DEFAULT_MAX_WAIT_QUEUE_SIZE)
- .get();
+ HttpClientOptions.DEFAULT_MAX_WAIT_QUEUE_SIZE);
}
public static boolean isHttpTransportClientEnabled() {
- return DynamicPropertyFactory.getInstance()
+ return LegacyPropertyFactory
.getBooleanProperty("servicecomb.rest.client.enabled",
- true)
- .get();
+ true);
}
public static int getConnectionTimeoutInMillis() {
- return DynamicPropertyFactory.getInstance()
- .getIntProperty("servicecomb.rest.client.connection.timeoutInMillis", 1000)
- .get();
+ return LegacyPropertyFactory
+ .getIntProperty("servicecomb.rest.client.connection.timeoutInMillis", 1000);
}
}
diff --git a/transports/transport-rest/transport-rest-client/src/test/java/org/apache/servicecomb/transport/rest/client/TestTransportClientConfig.java b/transports/transport-rest/transport-rest-client/src/test/java/org/apache/servicecomb/transport/rest/client/TestTransportClientConfig.java
deleted file mode 100644
index 4409e2979..000000000
--- a/transports/transport-rest/transport-rest-client/src/test/java/org/apache/servicecomb/transport/rest/client/TestTransportClientConfig.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.transport.rest.client;
-
-import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-public class TestTransportClientConfig {
-
- @BeforeEach
- public void before() {
- ArchaiusUtils.resetConfig();
- }
-
- @AfterEach
- public void after() {
- ArchaiusUtils.resetConfig();
- }
-
- @Test
- public void getThreadCount() {
- ArchaiusUtils.setProperty("servicecomb.rest.client.verticle-count", 1);
- Assertions.assertEquals(1, TransportClientConfig.getThreadCount());
- }
-
- @Test
- public void getConnectionMaxPoolSize() {
- Assertions.assertEquals(5, TransportClientConfig.getConnectionMaxPoolSize());
- }
-
- @Test
- public void getConnectionIdleTimeoutInSeconds() {
- Assertions.assertEquals(150, TransportClientConfig.getConnectionIdleTimeoutInSeconds());
- }
-
- @Test
- public void getHttp2MultiplexingLimit() {
- Assertions.assertEquals(-1, TransportClientConfig.getHttp2MultiplexingLimit());
- }
-
- @Test
- public void getHttp2ConnectionMaxPoolSize() {
- Assertions.assertEquals(1, TransportClientConfig.getHttp2ConnectionMaxPoolSize());
- }
-
- @Test
- public void getHttp2ConnectionIdleTimeoutInSeconds() {
- Assertions.assertEquals(150, TransportClientConfig.getHttp2ConnectionIdleTimeoutInSeconds());
- }
-
- @Test
- public void getUseAlpnEnabled() {
- Assertions.assertTrue(TransportClientConfig.getUseAlpn());
- }
-
- @Test
- public void getConnectionKeepAlive() {
- Assertions.assertTrue(TransportClientConfig.getConnectionKeepAlive());
- }
-
- @Test
- public void getConnectionCompression() {
- Assertions.assertFalse(TransportClientConfig.getConnectionCompression());
- }
-
- @Test
- public void getMaxHeaderSize() {
- Assertions.assertEquals(8192, TransportClientConfig.getMaxHeaderSize());
- ArchaiusUtils.setProperty("servicecomb.rest.client.maxHeaderSize", 1024);
- Assertions.assertEquals(1024, TransportClientConfig.getMaxHeaderSize());
- }
-
- @Test
- public void getMaxWaitQueueSize() {
- Assertions.assertEquals(-1, TransportClientConfig.getMaxWaitQueueSize());
- ArchaiusUtils.setProperty("servicecomb.rest.client.maxWaitQueueSize", 1024);
- Assertions.assertEquals(1024, TransportClientConfig.getMaxWaitQueueSize());
- }
-}
diff --git a/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/ServletConfig.java b/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/ServletConfig.java
index 9993a3dfb..8c5934c04 100644
--- a/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/ServletConfig.java
+++ b/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/ServletConfig.java
@@ -17,9 +17,7 @@
package org.apache.servicecomb.transport.rest.servlet;
-import com.netflix.config.DynamicLongProperty;
-import com.netflix.config.DynamicPropertyFactory;
-import com.netflix.config.DynamicStringProperty;
+import org.apache.servicecomb.config.LegacyPropertyFactory;
public final class ServletConfig {
public static final long DEFAULT_ASYN_SERVLET_TIMEOUT = -1;
@@ -32,26 +30,19 @@ public final class ServletConfig {
public static final String DEFAULT_URL_PATTERN = "/*";
- private static final DynamicLongProperty asyncServletTimeoutProperty =
- DynamicPropertyFactory.getInstance().getLongProperty(KEY_SERVICECOMB_ASYC_SERVLET_TIMEOUT,
- DEFAULT_ASYN_SERVLET_TIMEOUT);
-
private ServletConfig() {
}
public static long getAsyncServletTimeout() {
- return asyncServletTimeoutProperty.get();
+ return LegacyPropertyFactory.getLongProperty(KEY_SERVICECOMB_ASYC_SERVLET_TIMEOUT,
+ DEFAULT_ASYN_SERVLET_TIMEOUT);
}
public static String getLocalServerAddress() {
- DynamicStringProperty address =
- DynamicPropertyFactory.getInstance().getStringProperty(SERVICECOMB_REST_ADDRESS, null);
- return address.get();
+ return LegacyPropertyFactory.getStringProperty(SERVICECOMB_REST_ADDRESS, null);
}
public static String getServletUrlPattern() {
- DynamicStringProperty address =
- DynamicPropertyFactory.getInstance().getStringProperty(KEY_SERVLET_URL_PATTERN, null);
- return address.get();
+ return LegacyPropertyFactory.getStringProperty(KEY_SERVLET_URL_PATTERN, null);
}
}
diff --git a/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletConfig.java b/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletConfig.java
deleted file mode 100644
index f269c30e6..000000000
--- a/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletConfig.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.transport.rest.servlet;
-
-import org.apache.commons.configuration.Configuration;
-import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import com.netflix.config.DynamicPropertyFactory;
-import org.junit.jupiter.api.Assertions;
-
-public class TestServletConfig {
- @BeforeClass
- public static void classSetup() {
- ArchaiusUtils.resetConfig();
- }
-
- @AfterClass
- public static void classTeardown() {
- ArchaiusUtils.resetConfig();
- }
-
- @Test
- public void testGetLocalServerAddress() {
- Assertions.assertNull(ServletConfig.getLocalServerAddress());
- }
-
- @Test
- public void testGetServerTimeout() {
- Assertions.assertEquals(ServletConfig.DEFAULT_ASYN_SERVLET_TIMEOUT, ServletConfig.getAsyncServletTimeout());
- }
-
- @Test
- public void testGetServletUrlPattern() {
- DynamicPropertyFactory.getInstance();
- Configuration configuration = (Configuration) DynamicPropertyFactory.getBackingConfigurationSource();
- configuration.setProperty(ServletConfig.KEY_SERVLET_URL_PATTERN, "/*");
- Assertions.assertEquals("/*", ServletConfig.getServletUrlPattern());
- }
-}
diff --git a/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletRestTransport.java b/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletRestTransport.java
index 93fdb0931..50169fa67 100644
--- a/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletRestTransport.java
+++ b/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletRestTransport.java
@@ -17,20 +17,36 @@
package org.apache.servicecomb.transport.rest.servlet;
+import static org.apache.servicecomb.core.transport.AbstractTransport.PUBLISH_ADDRESS;
+
import java.io.IOException;
import java.net.ServerSocket;
import org.apache.servicecomb.foundation.common.utils.ClassLoaderScopeContext;
import org.apache.servicecomb.registry.definition.DefinitionConst;
import org.junit.After;
+import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
+import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
import mockit.Expectations;
public class TestServletRestTransport {
ServletRestTransport transport = new ServletRestTransport();
+ Environment environment = Mockito.mock(Environment.class);
+
+ @Before
+ public void setUp() {
+ Mockito.when(environment.getProperty(PUBLISH_ADDRESS, String.class, ""))
+ .thenReturn("");
+ Mockito.when(environment.getProperty("servicecomb.rest.publishPort", int.class, 0))
+ .thenReturn(0);
+ transport.setEnvironment(environment);
+ }
+
@After
public void tearDown() {
ClassLoaderScopeContext.clearClassLoaderScopeProperty();
diff --git a/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletUtils.java b/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletUtils.java
index 8b77dd7e1..febed525e 100644
--- a/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletUtils.java
+++ b/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletUtils.java
@@ -29,38 +29,44 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import jakarta.servlet.MultipartConfigElement;
-import jakarta.servlet.ServletContext;
-import jakarta.servlet.ServletRegistration;
-import jakarta.servlet.ServletRegistration.Dynamic;
-import jakarta.servlet.http.HttpServlet;
-
import org.apache.servicecomb.common.rest.RestConst;
+import org.apache.servicecomb.config.LegacyPropertyFactory;
import org.apache.servicecomb.foundation.common.exceptions.ServiceCombException;
import org.apache.servicecomb.foundation.common.utils.ClassLoaderScopeContext;
import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
import org.apache.servicecomb.registry.definition.DefinitionConst;
import org.hamcrest.MatcherAssert;
import org.hamcrest.Matchers;
-import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
+import jakarta.servlet.MultipartConfigElement;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletRegistration;
+import jakarta.servlet.ServletRegistration.Dynamic;
+import jakarta.servlet.http.HttpServlet;
import mockit.Expectations;
import mockit.Mock;
import mockit.MockUp;
import mockit.Mocked;
-import org.junit.jupiter.api.Assertions;
public class TestServletUtils {
+ Environment environment = Mockito.mock(Environment.class);
+
@Before
public void setUp() {
- ArchaiusUtils.resetConfig();
- }
-
- @After
- public void tearDown() {
- ArchaiusUtils.resetConfig();
+ Mockito.when(environment.getProperty(RestConst.UPLOAD_DIR, String.class, RestConst.UPLOAD_DEFAULT_DIR))
+ .thenReturn(RestConst.UPLOAD_DEFAULT_DIR);
+ Mockito.when(environment.getProperty(RestConst.UPLOAD_MAX_FILE_SIZE, long.class, -1L))
+ .thenReturn(-1L);
+ Mockito.when(environment.getProperty(RestConst.UPLOAD_MAX_SIZE, long.class, -1L))
+ .thenReturn(-1L);
+ Mockito.when(environment.getProperty(RestConst.UPLOAD_FILE_SIZE_THRESHOLD, int.class, 0))
+ .thenReturn(0);
+ LegacyPropertyFactory.setEnvironment(environment);
}
@Test
@@ -283,7 +289,8 @@ public class TestServletUtils {
File tempDir = Files.createTempDirectory("temp").toFile();
File uploadDir = new File(tempDir, "upload");
- ArchaiusUtils.setProperty(RestConst.UPLOAD_DIR, uploadDir.getAbsolutePath());
+ Mockito.when(environment.getProperty(RestConst.UPLOAD_DIR, String.class, RestConst.UPLOAD_DEFAULT_DIR))
+ .thenReturn(uploadDir.getAbsolutePath());
ServletUtils.setServletParameters(servletContext);
diff --git a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java
index 1c6120f61..ecc0e175d 100644
--- a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java
+++ b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java
@@ -21,12 +21,10 @@ import java.nio.channels.ClosedChannelException;
import java.util.List;
import java.util.Set;
-import jakarta.ws.rs.core.HttpHeaders;
-import jakarta.ws.rs.core.MediaType;
-
import org.apache.servicecomb.common.accessLog.AccessLogConfig;
import org.apache.servicecomb.common.accessLog.core.element.impl.LocalHostAccessItem;
import org.apache.servicecomb.common.rest.codec.RestObjectMapperFactory;
+import org.apache.servicecomb.config.LegacyPropertyFactory;
import org.apache.servicecomb.core.Endpoint;
import org.apache.servicecomb.core.event.ServerAccessLogEvent;
import org.apache.servicecomb.core.transport.AbstractTransport;
@@ -46,7 +44,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.common.annotations.VisibleForTesting;
-import com.netflix.config.DynamicPropertyFactory;
import io.vertx.core.AbstractVerticle;
import io.vertx.core.Context;
@@ -62,6 +59,8 @@ import io.vertx.core.net.impl.ConnectionBase;
import io.vertx.ext.web.Router;
import io.vertx.ext.web.RoutingContext;
import io.vertx.ext.web.handler.CorsHandler;
+import jakarta.ws.rs.core.HttpHeaders;
+import jakarta.ws.rs.core.MediaType;
public class RestServerVerticle extends AbstractVerticle {
private static final Logger LOGGER = LoggerFactory.getLogger(RestServerVerticle.class);
@@ -100,8 +99,8 @@ public class RestServerVerticle extends AbstractVerticle {
DefaultHttpServerMetrics serverMetrics = (DefaultHttpServerMetrics) ((ConnectionBase) connection).metrics();
DefaultServerEndpointMetric endpointMetric = serverMetrics.getEndpointMetric();
long connectedCount = endpointMetric.getCurrentConnectionCount();
- int connectionLimit = DynamicPropertyFactory.getInstance()
- .getIntProperty("servicecomb.rest.server.connection-limit", Integer.MAX_VALUE).get();
+ int connectionLimit = LegacyPropertyFactory.getIntProperty("servicecomb.rest.server.connection-limit",
+ Integer.MAX_VALUE);
if (connectedCount > connectionLimit) {
connection.close();
endpointMetric.onRejectByConnectionLimit();
diff --git a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/TransportConfig.java b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/TransportConfig.java
index 6e7f229b0..59308280c 100644
--- a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/TransportConfig.java
+++ b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/TransportConfig.java
@@ -22,11 +22,9 @@ import java.util.Set;
import java.util.stream.Stream;
import org.apache.commons.lang3.StringUtils;
+import org.apache.servicecomb.config.LegacyPropertyFactory;
import org.apache.servicecomb.transport.common.TransportConfigUtils;
-import com.netflix.config.DynamicPropertyFactory;
-import com.netflix.config.DynamicStringProperty;
-
import io.vertx.core.Verticle;
import io.vertx.core.http.Http2Settings;
import io.vertx.core.http.HttpServerOptions;
@@ -55,39 +53,35 @@ public final class TransportConfig {
}
public static String getAddress() {
- DynamicStringProperty address =
- DynamicPropertyFactory.getInstance().getStringProperty("servicecomb.rest.address", null);
- return address.get();
+ return LegacyPropertyFactory.getStringProperty("servicecomb.rest.address", null);
}
public static int getMaxFormAttributeSize() {
- return DynamicPropertyFactory.getInstance()
- .getIntProperty("servicecomb.rest.server.maxFormAttributeSize",
- HttpServerOptions.DEFAULT_MAX_FORM_ATTRIBUTE_SIZE).get();
+ return LegacyPropertyFactory.getIntProperty("servicecomb.rest.server.maxFormAttributeSize",
+ HttpServerOptions.DEFAULT_MAX_FORM_ATTRIBUTE_SIZE);
}
public static int getCompressionLevel() {
- return DynamicPropertyFactory.getInstance()
- .getIntProperty("servicecomb.rest.server.compressionLevel",
- HttpServerOptions.DEFAULT_COMPRESSION_LEVEL).get();
+ return LegacyPropertyFactory.getIntProperty("servicecomb.rest.server.compressionLevel",
+ HttpServerOptions.DEFAULT_COMPRESSION_LEVEL);
}
public static int getMaxChunkSize() {
- return DynamicPropertyFactory.getInstance()
+ return LegacyPropertyFactory
.getIntProperty("servicecomb.rest.server.maxChunkSize",
- HttpServerOptions.DEFAULT_MAX_CHUNK_SIZE).get();
+ HttpServerOptions.DEFAULT_MAX_CHUNK_SIZE);
}
public static int getDecoderInitialBufferSize() {
- return DynamicPropertyFactory.getInstance()
+ return LegacyPropertyFactory
.getIntProperty("servicecomb.rest.server.decoderInitialBufferSize",
- HttpServerOptions.DEFAULT_DECODER_INITIAL_BUFFER_SIZE).get();
+ HttpServerOptions.DEFAULT_DECODER_INITIAL_BUFFER_SIZE);
}
public static int getHttp2ConnectionWindowSize() {
- return DynamicPropertyFactory.getInstance()
+ return LegacyPropertyFactory
.getIntProperty("servicecomb.rest.server.http2ConnectionWindowSize",
- HttpServerOptions.DEFAULT_HTTP2_CONNECTION_WINDOW_SIZE).get();
+ HttpServerOptions.DEFAULT_HTTP2_CONNECTION_WINDOW_SIZE);
}
public static int getThreadCount() {
@@ -97,122 +91,111 @@ public final class TransportConfig {
}
public static int getConnectionIdleTimeoutInSeconds() {
- return DynamicPropertyFactory.getInstance()
+ return LegacyPropertyFactory
.getIntProperty("servicecomb.rest.server.connection.idleTimeoutInSeconds",
DEFAULT_SERVER_CONNECTION_IDLE_TIMEOUT_SECOND)
- .get();
+ ;
}
public static int getHttp2ConnectionIdleTimeoutInSeconds() {
- return DynamicPropertyFactory.getInstance()
+ return LegacyPropertyFactory
.getIntProperty("servicecomb.rest.server.http2.connection.idleTimeoutInSeconds",
- DEFAULT_SERVER_CONNECTION_IDLE_TIMEOUT_SECOND)
- .get();
+ DEFAULT_SERVER_CONNECTION_IDLE_TIMEOUT_SECOND);
}
public static boolean getCompressed() {
- return DynamicPropertyFactory.getInstance()
- .getBooleanProperty("servicecomb.rest.server.compression", DEFAULT_SERVER_COMPRESSION_SUPPORT)
- .get();
+ return LegacyPropertyFactory
+ .getBooleanProperty("servicecomb.rest.server.compression", DEFAULT_SERVER_COMPRESSION_SUPPORT);
}
public static boolean getDecompressionSupported() {
- return DynamicPropertyFactory.getInstance()
+ return LegacyPropertyFactory
.getBooleanProperty("servicecomb.rest.server.decompressionSupported",
- HttpServerOptions.DEFAULT_DECOMPRESSION_SUPPORTED).get();
+ HttpServerOptions.DEFAULT_DECOMPRESSION_SUPPORTED);
}
public static long getMaxConcurrentStreams() {
- return DynamicPropertyFactory.getInstance()
+ return LegacyPropertyFactory
.getLongProperty("servicecomb.rest.server.http2.concurrentStreams",
- HttpServerOptions.DEFAULT_INITIAL_SETTINGS_MAX_CONCURRENT_STREAMS).get();
+ HttpServerOptions.DEFAULT_INITIAL_SETTINGS_MAX_CONCURRENT_STREAMS);
}
public static long getHttp2HeaderTableSize() {
- return DynamicPropertyFactory.getInstance()
+ return LegacyPropertyFactory
.getLongProperty("servicecomb.rest.server.http2.HeaderTableSize",
- Http2Settings.DEFAULT_HEADER_TABLE_SIZE).get();
+ Http2Settings.DEFAULT_HEADER_TABLE_SIZE);
}
public static boolean getPushEnabled() {
- return DynamicPropertyFactory.getInstance()
+ return LegacyPropertyFactory
.getBooleanProperty("servicecomb.rest.server.http2.pushEnabled",
- Http2Settings.DEFAULT_ENABLE_PUSH).get();
+ Http2Settings.DEFAULT_ENABLE_PUSH);
}
public static int getInitialWindowSize() {
- return DynamicPropertyFactory.getInstance()
+ return LegacyPropertyFactory
.getIntProperty("servicecomb.rest.server.http2.initialWindowSize",
- Http2Settings.DEFAULT_INITIAL_WINDOW_SIZE).get();
+ Http2Settings.DEFAULT_INITIAL_WINDOW_SIZE);
}
public static int getMaxFrameSize() {
- return DynamicPropertyFactory.getInstance()
+ return LegacyPropertyFactory
.getIntProperty("servicecomb.rest.server.http2.maxFrameSize",
- Http2Settings.DEFAULT_MAX_FRAME_SIZE).get();
+ Http2Settings.DEFAULT_MAX_FRAME_SIZE);
}
public static int getMaxHeaderListSize() {
- return DynamicPropertyFactory.getInstance()
+ return LegacyPropertyFactory
.getIntProperty("servicecomb.rest.server.http2.maxHeaderListSize",
- Http2Settings.DEFAULT_MAX_HEADER_LIST_SIZE).get();
+ Http2Settings.DEFAULT_MAX_HEADER_LIST_SIZE);
}
public static boolean getUseAlpn() {
- return DynamicPropertyFactory.getInstance()
- .getBooleanProperty("servicecomb.rest.server.http2.useAlpnEnabled", true)
- .get();
+ return LegacyPropertyFactory
+ .getBooleanProperty("servicecomb.rest.server.http2.useAlpnEnabled", true);
}
public static int getMaxHeaderSize() {
- return DynamicPropertyFactory.getInstance()
- .getIntProperty("servicecomb.rest.server.maxHeaderSize", DEFAULT_SERVER_MAX_HEADER_SIZE)
- .get();
+ return LegacyPropertyFactory
+ .getIntProperty("servicecomb.rest.server.maxHeaderSize", DEFAULT_SERVER_MAX_HEADER_SIZE);
}
public static boolean isCorsEnabled() {
- return DynamicPropertyFactory.getInstance()
- .getBooleanProperty(SERVICECOMB_CORS_CONFIG_BASE + ".enabled", false)
- .get();
+ return LegacyPropertyFactory
+ .getBooleanProperty(SERVICECOMB_CORS_CONFIG_BASE + ".enabled", false);
}
public static String getCorsAllowedOrigin() {
- return DynamicPropertyFactory.getInstance()
- .getStringProperty(SERVICECOMB_CORS_CONFIG_BASE + ".origin", "*")
- .get();
+ return LegacyPropertyFactory
+ .getStringProperty(SERVICECOMB_CORS_CONFIG_BASE + ".origin", "*");
}
public static boolean isCorsAllowCredentials() {
- return DynamicPropertyFactory.getInstance()
- .getBooleanProperty(SERVICECOMB_CORS_CONFIG_BASE + ".allowCredentials", false)
- .get();
+ return LegacyPropertyFactory
+ .getBooleanProperty(SERVICECOMB_CORS_CONFIG_BASE + ".allowCredentials", false);
}
public static Set<String> getCorsAllowedHeaders() {
- String allowedHeaders = DynamicPropertyFactory.getInstance()
- .getStringProperty(SERVICECOMB_CORS_CONFIG_BASE + ".allowedHeader", null)
- .get();
+ String allowedHeaders = LegacyPropertyFactory
+ .getStringProperty(SERVICECOMB_CORS_CONFIG_BASE + ".allowedHeader");
return convertToSet(allowedHeaders);
}
public static Set<String> getCorsAllowedMethods() {
- String allowedMethods = DynamicPropertyFactory.getInstance()
- .getStringProperty(SERVICECOMB_CORS_CONFIG_BASE + ".allowedMethod", null)
- .get();
+ String allowedMethods = LegacyPropertyFactory
+ .getStringProperty(SERVICECOMB_CORS_CONFIG_BASE + ".allowedMethod");
return convertToSet(allowedMethods);
}
public static Set<String> getCorsExposedHeaders() {
- String exposedHeaders = DynamicPropertyFactory.getInstance()
- .getStringProperty(SERVICECOMB_CORS_CONFIG_BASE + ".exposedHeader", null)
- .get();
+ String exposedHeaders = LegacyPropertyFactory
+ .getStringProperty(SERVICECOMB_CORS_CONFIG_BASE + ".exposedHeader");
return convertToSet(exposedHeaders);
}
public static int getCorsMaxAge() {
- return DynamicPropertyFactory.getInstance()
- .getIntProperty(SERVICECOMB_CORS_CONFIG_BASE + ".maxAge", -1)
- .get();
+ return LegacyPropertyFactory
+ .getIntProperty(SERVICECOMB_CORS_CONFIG_BASE + ".maxAge", -1);
}
private static Set<String> convertToSet(String setString) {
@@ -226,9 +209,8 @@ public final class TransportConfig {
}
public static int getMaxInitialLineLength() {
- return DynamicPropertyFactory.getInstance()
+ return LegacyPropertyFactory
.getIntProperty("servicecomb.rest.server.maxInitialLineLength",
- HttpServerOptions.DEFAULT_MAX_INITIAL_LINE_LENGTH)
- .get();
+ HttpServerOptions.DEFAULT_MAX_INITIAL_LINE_LENGTH);
}
}
diff --git a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/VertxRestDispatcher.java b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/VertxRestDispatcher.java
index cd2c14d98..abce41bf5 100644
--- a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/VertxRestDispatcher.java
+++ b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/VertxRestDispatcher.java
@@ -17,13 +17,9 @@
package org.apache.servicecomb.transport.rest.vertx;
-import jakarta.ws.rs.core.HttpHeaders;
-import jakarta.ws.rs.core.MediaType;
-import jakarta.ws.rs.core.Response.Status;
-import jakarta.ws.rs.core.Response.Status.Family;
-
import org.apache.servicecomb.common.rest.RestProducerInvocationFlow;
import org.apache.servicecomb.common.rest.RestVertxProducerInvocationCreator;
+import org.apache.servicecomb.config.LegacyPropertyFactory;
import org.apache.servicecomb.core.CoreConst;
import org.apache.servicecomb.core.SCBEngine;
import org.apache.servicecomb.core.Transport;
@@ -37,12 +33,14 @@ import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.netflix.config.DynamicPropertyFactory;
-
import io.netty.handler.codec.http.multipart.HttpPostRequestDecoder.ErrorDataDecoderException;
import io.vertx.core.json.JsonObject;
import io.vertx.ext.web.Router;
import io.vertx.ext.web.RoutingContext;
+import jakarta.ws.rs.core.HttpHeaders;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response.Status;
+import jakarta.ws.rs.core.Response.Status.Family;
public class VertxRestDispatcher extends AbstractVertxHttpDispatcher {
private static final Logger LOGGER = LoggerFactory.getLogger(VertxRestDispatcher.class);
@@ -59,18 +57,18 @@ public class VertxRestDispatcher extends AbstractVertxHttpDispatcher {
@Override
public int getOrder() {
- return DynamicPropertyFactory.getInstance().getIntProperty(KEY_ORDER, Integer.MAX_VALUE).get();
+ return LegacyPropertyFactory.getIntProperty(KEY_ORDER, Integer.MAX_VALUE);
}
@Override
public boolean enabled() {
- return DynamicPropertyFactory.getInstance().getBooleanProperty(KEY_ENABLED, true).get();
+ return LegacyPropertyFactory.getBooleanProperty(KEY_ENABLED, true);
}
@Override
public void init(Router router) {
// cookies handler are enabled by default start from 3.8.3
- String pattern = DynamicPropertyFactory.getInstance().getStringProperty(KEY_PATTERN, null).get();
+ String pattern = LegacyPropertyFactory.getStringProperty(KEY_PATTERN);
if (pattern == null) {
router.route().handler(createBodyHandler());
router.route().failureHandler(this::failureHandler).handler(this::onRequest);
diff --git a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestAbstractVertxHttpDispatcher.java b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestAbstractVertxHttpDispatcher.java
index b03ae001c..93bececb8 100644
--- a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestAbstractVertxHttpDispatcher.java
+++ b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestAbstractVertxHttpDispatcher.java
@@ -17,17 +17,15 @@
package org.apache.servicecomb.transport.rest.vertx;
-import org.apache.commons.configuration.Configuration;
import org.apache.servicecomb.common.rest.RestConst;
-import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
+import org.apache.servicecomb.config.LegacyPropertyFactory;
+import org.junit.Before;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.runners.MethodSorters;
-
-import com.netflix.config.DynamicPropertyFactory;
+import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
import io.vertx.ext.web.Router;
import mockit.Deencapsulation;
@@ -45,21 +43,26 @@ public class TestAbstractVertxHttpDispatcher {
}
}
- Configuration config = (Configuration) DynamicPropertyFactory.getBackingConfigurationSource();
+ Environment environment = Mockito.mock(Environment.class);
- @BeforeClass
- public static void setup() {
- ArchaiusUtils.resetConfig();
- }
-
-
- @AfterClass
- public static void teardown() {
- ArchaiusUtils.resetConfig();
+ @Before
+ public void setUp() {
+ LegacyPropertyFactory.setEnvironment(environment);
+ Mockito.when(environment.getProperty(
+ RestConst.UPLOAD_MAX_SIZE, long.class, -1L))
+ .thenReturn(-1L);
+ Mockito.when(environment.getProperty(RestConst.UPLOAD_MAX_FILE_SIZE, long.class, -1L))
+ .thenReturn(-1L);
+ Mockito.when(environment.getProperty(RestConst.UPLOAD_FILE_SIZE_THRESHOLD, int.class, 0))
+ .thenReturn(0);
}
@Test
public void createBodyHandlerUploadDefault() {
+ Mockito.when(environment.getProperty(
+ "servicecomb.uploads.directory", String.class, RestConst.UPLOAD_DEFAULT_DIR))
+ .thenReturn(RestConst.UPLOAD_DEFAULT_DIR);
+
AbstractVertxHttpDispatcher dispatcher = new AbstractVertxHttpDispatcherForTest();
RestBodyHandler bodyHandler = (RestBodyHandler) dispatcher.createBodyHandler();
@@ -69,7 +72,9 @@ public class TestAbstractVertxHttpDispatcher {
@Test
public void createBodyHandlerUploadNormal() {
- config.setProperty("servicecomb.uploads.directory", "/path");
+ Mockito.when(environment.getProperty(
+ "servicecomb.uploads.directory", String.class, RestConst.UPLOAD_DEFAULT_DIR))
+ .thenReturn("/path");
AbstractVertxHttpDispatcher dispatcher = new AbstractVertxHttpDispatcherForTest();
RestBodyHandler bodyHandler = (RestBodyHandler) dispatcher.createBodyHandler();
diff --git a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestRestServerVerticle.java b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestRestServerVerticle.java
index 57a6a2ac1..d4c963ee3 100644
--- a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestRestServerVerticle.java
+++ b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestRestServerVerticle.java
@@ -17,11 +17,25 @@
package org.apache.servicecomb.transport.rest.vertx;
+import static io.vertx.core.http.HttpServerOptions.DEFAULT_COMPRESSION_LEVEL;
+import static io.vertx.core.http.HttpServerOptions.DEFAULT_DECODER_INITIAL_BUFFER_SIZE;
+import static io.vertx.core.http.HttpServerOptions.DEFAULT_DECOMPRESSION_SUPPORTED;
+import static io.vertx.core.http.HttpServerOptions.DEFAULT_HTTP2_CONNECTION_WINDOW_SIZE;
+import static io.vertx.core.http.HttpServerOptions.DEFAULT_MAX_CHUNK_SIZE;
+import static io.vertx.core.http.HttpServerOptions.DEFAULT_MAX_FORM_ATTRIBUTE_SIZE;
+import static io.vertx.core.http.HttpServerOptions.DEFAULT_MAX_INITIAL_LINE_LENGTH;
+import static org.apache.servicecomb.core.transport.AbstractTransport.PUBLISH_ADDRESS;
+import static org.apache.servicecomb.transport.rest.vertx.TransportConfig.DEFAULT_SERVER_COMPRESSION_SUPPORT;
+import static org.apache.servicecomb.transport.rest.vertx.TransportConfig.DEFAULT_SERVER_CONNECTION_IDLE_TIMEOUT_SECOND;
+import static org.apache.servicecomb.transport.rest.vertx.TransportConfig.DEFAULT_SERVER_MAX_HEADER_SIZE;
+import static org.apache.servicecomb.transport.rest.vertx.TransportConfig.SERVICECOMB_CORS_CONFIG_BASE;
+
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.atomic.AtomicInteger;
-import org.apache.servicecomb.config.ConfigUtil;
+import org.apache.servicecomb.common.rest.RestConst;
+import org.apache.servicecomb.config.LegacyPropertyFactory;
import org.apache.servicecomb.core.Endpoint;
import org.apache.servicecomb.core.SCBEngine;
import org.apache.servicecomb.core.Transport;
@@ -30,6 +44,7 @@ import org.apache.servicecomb.core.transport.AbstractTransport;
import org.apache.servicecomb.foundation.common.Holder;
import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
+import org.apache.servicecomb.foundation.vertx.client.tcp.TcpClientConfig;
import org.hamcrest.MatcherAssert;
import org.hamcrest.Matchers;
import org.junit.After;
@@ -37,11 +52,13 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
import io.vertx.core.Context;
import io.vertx.core.Handler;
import io.vertx.core.Promise;
import io.vertx.core.Vertx;
+import io.vertx.core.http.Http2Settings;
import io.vertx.core.http.HttpMethod;
import io.vertx.core.http.HttpServerResponse;
import io.vertx.core.json.JsonObject;
@@ -60,9 +77,80 @@ public class TestRestServerVerticle {
Promise<Void> startPromise = null;
+ Environment environment = Mockito.mock(Environment.class);
+
@Before
public void setUp() {
- ConfigUtil.installDynamicConfig();
+ Mockito.when(environment.getProperty(
+ "servicecomb.request.timeout", long.class, (long) TcpClientConfig.DEFAULT_LOGIN_TIMEOUT))
+ .thenReturn((long) TcpClientConfig.DEFAULT_LOGIN_TIMEOUT);
+ Mockito.when(environment.getProperty("servicecomb.rest.client.verticle-count", int.class, -1))
+ .thenReturn(-1);
+ Mockito.when(environment.getProperty("servicecomb.rest.client.thread-count", int.class, -1))
+ .thenReturn(-1);
+ Mockito.when(environment.getProperty("servicecomb.rest.server.verticle-count", int.class, -1))
+ .thenReturn(-1);
+ Mockito.when(environment.getProperty("servicecomb.rest.server.thread-count", int.class, -1))
+ .thenReturn(-1);
+ Mockito.when(environment.getProperty("servicecomb.http.dispatcher.rest.order", int.class, Integer.MAX_VALUE))
+ .thenReturn(Integer.MAX_VALUE);
+ Mockito.when(environment.getProperty("servicecomb.rest.publishPort", int.class, 0))
+ .thenReturn(0);
+ Mockito.when(environment.getProperty("servicecomb.http.dispatcher.rest.enabled", boolean.class, true))
+ .thenReturn(true);
+ Mockito.when(environment.getProperty(SERVICECOMB_CORS_CONFIG_BASE + ".enabled", boolean.class, false))
+ .thenReturn(false);
+ Mockito.when(environment.getProperty(PUBLISH_ADDRESS, String.class, ""))
+ .thenReturn("");
+ Mockito.when(environment.getProperty(
+ RestConst.UPLOAD_MAX_SIZE, long.class, -1L))
+ .thenReturn(-1L);
+ Mockito.when(environment.getProperty(RestConst.UPLOAD_MAX_FILE_SIZE, long.class, -1L))
+ .thenReturn(-1L);
+ Mockito.when(environment.getProperty(RestConst.UPLOAD_FILE_SIZE_THRESHOLD, int.class, 0))
+ .thenReturn(0);
+ Mockito.when(environment.getProperty("servicecomb.rest.server.compression", boolean.class,
+ DEFAULT_SERVER_COMPRESSION_SUPPORT))
+ .thenReturn(false);
+ Mockito.when(environment.getProperty("servicecomb.rest.server.maxHeaderSize", int.class,
+ DEFAULT_SERVER_MAX_HEADER_SIZE))
+ .thenReturn(DEFAULT_SERVER_MAX_HEADER_SIZE);
+ Mockito.when(environment.getProperty("servicecomb.rest.server.maxFormAttributeSize", int.class,
+ DEFAULT_MAX_FORM_ATTRIBUTE_SIZE))
+ .thenReturn(DEFAULT_MAX_FORM_ATTRIBUTE_SIZE);
+ Mockito.when(environment.getProperty("servicecomb.rest.server.compressionLevel", int.class,
+ DEFAULT_COMPRESSION_LEVEL))
+ .thenReturn(DEFAULT_COMPRESSION_LEVEL);
+ Mockito.when(environment.getProperty("servicecomb.rest.server.maxChunkSize", int.class,
+ DEFAULT_MAX_CHUNK_SIZE))
+ .thenReturn(DEFAULT_MAX_CHUNK_SIZE);
+ Mockito.when(environment.getProperty("servicecomb.rest.server.decompressionSupported", boolean.class,
+ DEFAULT_DECOMPRESSION_SUPPORTED))
+ .thenReturn(DEFAULT_DECOMPRESSION_SUPPORTED);
+ Mockito.when(environment.getProperty("servicecomb.rest.server.decoderInitialBufferSize", int.class,
+ DEFAULT_DECODER_INITIAL_BUFFER_SIZE))
+ .thenReturn(DEFAULT_DECODER_INITIAL_BUFFER_SIZE);
+ Mockito.when(environment.getProperty("servicecomb.rest.server.maxInitialLineLength", int.class,
+ DEFAULT_MAX_INITIAL_LINE_LENGTH))
+ .thenReturn(DEFAULT_MAX_INITIAL_LINE_LENGTH);
+ Mockito.when(environment.getProperty("servicecomb.rest.server.connection.idleTimeoutInSeconds", int.class,
+ DEFAULT_SERVER_CONNECTION_IDLE_TIMEOUT_SECOND))
+ .thenReturn(DEFAULT_SERVER_CONNECTION_IDLE_TIMEOUT_SECOND);
+ Mockito.when(environment.getProperty("servicecomb.rest.server.http2.useAlpnEnabled", boolean.class,
+ true))
+ .thenReturn(true);
+ Mockito.when(environment.getProperty("servicecomb.rest.server.http2ConnectionWindowSize", int.class,
+ DEFAULT_HTTP2_CONNECTION_WINDOW_SIZE))
+ .thenReturn(DEFAULT_HTTP2_CONNECTION_WINDOW_SIZE);
+ Mockito.when(environment.getProperty("servicecomb.rest.server.http2.connection.idleTimeoutInSeconds", int.class,
+ DEFAULT_SERVER_CONNECTION_IDLE_TIMEOUT_SECOND))
+ .thenReturn(DEFAULT_SERVER_CONNECTION_IDLE_TIMEOUT_SECOND);
+ Mockito.when(environment.getProperty("servicecomb.rest.server.http2.pushEnabled", boolean.class,
+ Http2Settings.DEFAULT_ENABLE_PUSH))
+ .thenReturn(Http2Settings.DEFAULT_ENABLE_PUSH);
+
+ LegacyPropertyFactory.setEnvironment(environment);
+
instance = new RestServerVerticle();
startPromise = Promise.promise();
@@ -81,6 +169,7 @@ public class TestRestServerVerticle {
public void testRestServerVerticleWithRouter(@Mocked Transport transport, @Mocked Vertx vertx,
@Mocked Context context,
@Mocked JsonObject jsonObject, @Mocked Promise<Void> startPromise) throws Exception {
+
URIEndpointObject endpointObject = new URIEndpointObject("http://127.0.0.1:8080");
new Expectations() {
{
@@ -131,37 +220,6 @@ public class TestRestServerVerticle {
server.start(startPromise);
}
- @Test
- public void testRestServerVerticleWithHttp2(@Mocked Transport transport, @Mocked Vertx vertx,
- @Mocked Context context,
- @Mocked JsonObject jsonObject, @Mocked Promise<Void> startPromise) {
- URIEndpointObject endpointObject = new URIEndpointObject("http://127.0.0.1:8080?protocol=http2");
- new Expectations() {
- {
- transport.parseAddress("http://127.0.0.1:8080?protocol=http2");
- result = endpointObject;
- }
- };
- Endpoint endpiont = new Endpoint(transport, "http://127.0.0.1:8080?protocol=http2");
-
- new Expectations() {
- {
- context.config();
- result = jsonObject;
- jsonObject.getValue(AbstractTransport.ENDPOINT_KEY);
- result = endpiont;
- }
- };
- RestServerVerticle server = new RestServerVerticle();
- boolean status = false;
- try {
- server.init(vertx, context);
- server.start(startPromise);
- } catch (Exception e) {
- status = true;
- }
- Assertions.assertFalse(status);
- }
@Test
public void testStartFutureAddressEmpty() {
@@ -189,11 +247,23 @@ public class TestRestServerVerticle {
@Test
public void testMountCorsHandler() {
- ArchaiusUtils.setProperty("servicecomb.cors.enabled", true);
- ArchaiusUtils.setProperty("servicecomb.cors.allowedMethod", "GET,PUT,POST");
- ArchaiusUtils.setProperty("servicecomb.cors.allowedHeader", "abc,def");
- ArchaiusUtils.setProperty("servicecomb.cors.exposedHeader", "abc2,def2");
- ArchaiusUtils.setProperty("servicecomb.cors.maxAge", 1);
+ Mockito.when(environment.getProperty("servicecomb.cors.enabled", boolean.class,
+ false))
+ .thenReturn(true);
+ Mockito.when(environment.getProperty("servicecomb.cors.origin", String.class,
+ "*"))
+ .thenReturn("*");
+ Mockito.when(environment.getProperty("servicecomb.cors.allowedMethod"))
+ .thenReturn("GET,PUT,POST");
+ Mockito.when(environment.getProperty("servicecomb.cors.allowedHeader"))
+ .thenReturn("abc,def");
+ Mockito.when(environment.getProperty("servicecomb.cors.exposedHeader"))
+ .thenReturn("abc2,def2");
+ Mockito.when(environment.getProperty("servicecomb.cors.maxAge", int.class, -1))
+ .thenReturn(1);
+ Mockito.when(environment.getProperty("servicecomb.cors.allowCredentials", boolean.class, false))
+ .thenReturn(false);
+
Set<HttpMethod> methodSet = new HashSet<>(3);
methodSet.add(HttpMethod.GET);
methodSet.add(HttpMethod.PUT);
diff --git a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestTransportConfig.java b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestTransportConfig.java
deleted file mode 100644
index fd1e88d63..000000000
--- a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestTransportConfig.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.transport.rest.vertx;
-
-import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
-import org.hamcrest.MatcherAssert;
-import org.hamcrest.Matchers;
-
-import mockit.Mock;
-import mockit.MockUp;
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-public class TestTransportConfig {
-
- @BeforeEach
- public void before() {
- ArchaiusUtils.resetConfig();
- }
-
- @AfterEach
- public void after() {
- ArchaiusUtils.resetConfig();
- }
-
- @Test
- public void testGetAddressNull() {
- Assertions.assertNull(TransportConfig.getAddress());
- }
-
- @Test
- public void testGetAddressNormal() {
- ArchaiusUtils.setProperty("servicecomb.rest.address", "1.1.1.1");
- Assertions.assertEquals("1.1.1.1", TransportConfig.getAddress());
- }
-
- @Test
- public void testGetThreadCountNull() {
- new MockUp<Runtime>() {
- @Mock
- int availableProcessors() {
- return 1;
- }
- };
- Assertions.assertEquals(1, TransportConfig.getThreadCount());
- }
-
- @Test
- public void testGetThreadCountNormal() {
- ArchaiusUtils.setProperty("servicecomb.rest.server.thread-count", 10);
- Assertions.assertEquals(10, TransportConfig.getThreadCount());
- }
-
- @Test
- public void testGetCompressedAndHeaderSize() {
- ArchaiusUtils.setProperty("servicecomb.rest.server.compression", true);
- Assertions.assertTrue(TransportConfig.getCompressed());
- ArchaiusUtils.setProperty("servicecomb.rest.server.maxHeaderSize", 2048);
- Assertions.assertEquals(2048, TransportConfig.getMaxHeaderSize());
- }
-
- @Test
- public void testGetDecompressed() {
- Assertions.assertFalse(TransportConfig.getDecompressionSupported());
- ArchaiusUtils.setProperty("servicecomb.rest.server.decompressionSupported", true);
- Assertions.assertTrue(TransportConfig.getDecompressionSupported());
- }
-
- @Test
- public void testGetDecoderInitialBufferSize() {
- Assertions.assertEquals(128, TransportConfig.getDecoderInitialBufferSize());
- ArchaiusUtils.setProperty("servicecomb.rest.server.decoderInitialBufferSize", 256);
- Assertions.assertEquals(256, TransportConfig.getDecoderInitialBufferSize());
- }
-
- @Test
- public void testGetHttp2ConnectionWindowSize() {
- Assertions.assertEquals(-1, TransportConfig.getHttp2ConnectionWindowSize());
- ArchaiusUtils.setProperty("servicecomb.rest.server.http2ConnectionWindowSize", 1);
- Assertions.assertEquals(1, TransportConfig.getHttp2ConnectionWindowSize());
- }
-
- @Test
- public void testGetMaxFormAttributeSize() {
- Assertions.assertEquals(8192, TransportConfig.getMaxFormAttributeSize());
- ArchaiusUtils.setProperty("servicecomb.rest.server.maxFormAttributeSize", 3072);
- Assertions.assertEquals(3072, TransportConfig.getMaxFormAttributeSize());
- }
-
- @Test
- public void testGeCompressionLevel() {
- Assertions.assertEquals(6, TransportConfig.getCompressionLevel());
- ArchaiusUtils.setProperty("servicecomb.rest.server.compressionLevel", 8);
- Assertions.assertEquals(8, TransportConfig.getCompressionLevel());
- }
-
- @Test
- public void testGetMaxChunkSize() {
- Assertions.assertEquals(8192, TransportConfig.getMaxChunkSize());
- ArchaiusUtils.setProperty("servicecomb.rest.server.maxChunkSize", 65536);
- Assertions.assertEquals(65536, TransportConfig.getMaxChunkSize());
- }
-
- @Test
- public void testIsCorsEnabled() {
- Assertions.assertFalse(TransportConfig.isCorsEnabled());
- ArchaiusUtils.setProperty("servicecomb.cors.enabled", true);
- Assertions.assertTrue(TransportConfig.isCorsEnabled());
- ArchaiusUtils.setProperty("servicecomb.cors.enabled", false);
- Assertions.assertFalse(TransportConfig.isCorsEnabled());
- }
-
- @Test
- public void testGetCorsAllowedOrigin() {
- Assertions.assertEquals("*", TransportConfig.getCorsAllowedOrigin());
- String origin = "http://localhost:8080";
- ArchaiusUtils.setProperty("servicecomb.cors.origin", origin);
- Assertions.assertEquals(origin, TransportConfig.getCorsAllowedOrigin());
- }
-
- @Test
- public void testIsCorsAllowCredentials() {
- Assertions.assertFalse(TransportConfig.isCorsAllowCredentials());
- ArchaiusUtils.setProperty("servicecomb.cors.allowCredentials", true);
- Assertions.assertTrue(TransportConfig.isCorsAllowCredentials());
- ArchaiusUtils.setProperty("servicecomb.cors.allowCredentials", false);
- Assertions.assertFalse(TransportConfig.isCorsAllowCredentials());
- }
-
- @Test
- public void testGetCorsAllowedHeaders() {
- String configKey = "servicecomb.cors.allowedHeader";
- Assertions.assertTrue(TransportConfig.getCorsAllowedHeaders().isEmpty());
- ArchaiusUtils.setProperty(configKey, "abc");
- MatcherAssert.assertThat(TransportConfig.getCorsAllowedHeaders(), Matchers.containsInAnyOrder("abc"));
- ArchaiusUtils.setProperty(configKey, "abc, def");
- MatcherAssert.assertThat(TransportConfig.getCorsAllowedHeaders(), Matchers.containsInAnyOrder("abc", "def"));
- ArchaiusUtils.setProperty(configKey, "abc ,, def");
- MatcherAssert.assertThat(TransportConfig.getCorsAllowedHeaders(), Matchers.containsInAnyOrder("abc", "def"));
- ArchaiusUtils.setProperty(configKey, "");
- Assertions.assertTrue(TransportConfig.getCorsAllowedHeaders().isEmpty());
- }
-
- @Test
- public void testGetCorsAllowedMethods() {
- String configKey = "servicecomb.cors.allowedMethod";
- Assertions.assertTrue(TransportConfig.getCorsAllowedMethods().isEmpty());
- ArchaiusUtils.setProperty(configKey, "GET");
- MatcherAssert.assertThat(TransportConfig.getCorsAllowedMethods(), Matchers.containsInAnyOrder("GET"));
- ArchaiusUtils.setProperty(configKey, "GET, POST");
- MatcherAssert.assertThat(TransportConfig.getCorsAllowedMethods(), Matchers.containsInAnyOrder("GET", "POST"));
- ArchaiusUtils.setProperty(configKey, "GET,,POST");
- MatcherAssert.assertThat(TransportConfig.getCorsAllowedMethods(), Matchers.containsInAnyOrder("GET", "POST"));
- ArchaiusUtils.setProperty(configKey, "");
- Assertions.assertTrue(TransportConfig.getCorsAllowedMethods().isEmpty());
- }
-
- @Test
- public void testGetCorsExposedHeaders() {
- String configKey = "servicecomb.cors.exposedHeader";
- Assertions.assertTrue(TransportConfig.getCorsExposedHeaders().isEmpty());
- ArchaiusUtils.setProperty(configKey, "abc");
- MatcherAssert.assertThat(TransportConfig.getCorsExposedHeaders(), Matchers.containsInAnyOrder("abc"));
- ArchaiusUtils.setProperty(configKey, "abc, def");
- MatcherAssert.assertThat(TransportConfig.getCorsExposedHeaders(), Matchers.containsInAnyOrder("abc", "def"));
- ArchaiusUtils.setProperty(configKey, "abc ,, def");
- MatcherAssert.assertThat(TransportConfig.getCorsExposedHeaders(), Matchers.containsInAnyOrder("abc", "def"));
- ArchaiusUtils.setProperty(configKey, "");
- Assertions.assertTrue(TransportConfig.getCorsExposedHeaders().isEmpty());
- }
-
- @Test
- public void testGetCorsMaxAge() {
- Assertions.assertEquals(-1, TransportConfig.getCorsMaxAge());
- ArchaiusUtils.setProperty("servicecomb.cors.maxAge", 3600);
- Assertions.assertEquals(3600, TransportConfig.getCorsMaxAge());
- }
-
- @Test
- public void testHttp2Setting() {
- Assertions.assertEquals(100L, TransportConfig.getMaxConcurrentStreams());
- ArchaiusUtils.setProperty("servicecomb.rest.server.http2.concurrentStreams", 200L);
- Assertions.assertEquals(200L, TransportConfig.getMaxConcurrentStreams());
-
- Assertions.assertEquals(4096L, TransportConfig.getHttp2HeaderTableSize());
- ArchaiusUtils.setProperty("servicecomb.rest.server.http2.HeaderTableSize", 8192L);
- Assertions.assertEquals(8192L, TransportConfig.getHttp2HeaderTableSize());
-
- Assertions.assertTrue(TransportConfig.getPushEnabled());
- ArchaiusUtils.setProperty("servicecomb.rest.server.http2.pushEnabled", false);
- Assertions.assertFalse(TransportConfig.getPushEnabled());
-
- Assertions.assertEquals(65535, TransportConfig.getInitialWindowSize());
- ArchaiusUtils.setProperty("servicecomb.rest.server.http2.initialWindowSize", 2 * 65535);
- Assertions.assertEquals(2 * 65535, TransportConfig.getInitialWindowSize());
-
- Assertions.assertEquals(16384, TransportConfig.getMaxFrameSize());
- ArchaiusUtils.setProperty("servicecomb.rest.server.http2.maxFrameSize", 65535);
- Assertions.assertEquals(65535, TransportConfig.getMaxFrameSize());
-
- Assertions.assertEquals(8192, TransportConfig.getMaxHeaderListSize());
- ArchaiusUtils.setProperty("servicecomb.rest.server.http2.maxHeaderListSize", 65535);
- Assertions.assertEquals(65535, TransportConfig.getMaxHeaderListSize());
- }
-
-
- @Test
- public void testUseAlpn() {
- Assertions.assertTrue(TransportConfig.getUseAlpn());
- ArchaiusUtils.setProperty("servicecomb.rest.server.http2.useAlpnEnabled", false);
- Assertions.assertFalse(TransportConfig.getUseAlpn());
- }
-
- @Test
- public void testGetMaxInitialLineLength() {
- Assertions.assertEquals(4096, TransportConfig.getMaxInitialLineLength());
- ArchaiusUtils.setProperty("servicecomb.rest.server.maxInitialLineLength", 8000);
- Assertions.assertEquals(8000, TransportConfig.getMaxInitialLineLength());
- }
-}
diff --git a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestDispatcher.java b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestDispatcher.java
index 67099a56a..ddce28c37 100644
--- a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestDispatcher.java
+++ b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestDispatcher.java
@@ -17,12 +17,9 @@
package org.apache.servicecomb.transport.rest.vertx;
-import jakarta.ws.rs.core.MediaType;
-import jakarta.ws.rs.core.Response.Status;
-
import org.apache.http.HttpHeaders;
import org.apache.servicecomb.common.rest.RestConst;
-import org.apache.servicecomb.config.ConfigUtil;
+import org.apache.servicecomb.config.LegacyPropertyFactory;
import org.apache.servicecomb.core.SCBEngine;
import org.apache.servicecomb.core.bootstrap.SCBBootstrap;
import org.apache.servicecomb.core.transport.TransportManager;
@@ -35,11 +32,14 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
import io.netty.handler.codec.http.multipart.HttpPostRequestDecoder.ErrorDataDecoderException;
import io.vertx.core.json.JsonObject;
import io.vertx.ext.web.Router;
import io.vertx.ext.web.RoutingContext;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response.Status;
import mockit.Mocked;
public class TestVertxRestDispatcher {
@@ -53,9 +53,19 @@ public class TestVertxRestDispatcher {
Throwable throwable;
+ Environment environment = Mockito.mock(Environment.class);
+
@Before
public void setUp() {
- ConfigUtil.installDynamicConfig();
+ LegacyPropertyFactory.setEnvironment(environment);
+ Mockito.when(environment.getProperty(
+ RestConst.UPLOAD_MAX_SIZE, long.class, -1L))
+ .thenReturn(-1L);
+ Mockito.when(environment.getProperty(RestConst.UPLOAD_MAX_FILE_SIZE, long.class, -1L))
+ .thenReturn(-1L);
+ Mockito.when(environment.getProperty(RestConst.UPLOAD_FILE_SIZE_THRESHOLD, int.class, 0))
+ .thenReturn(0);
+
dispatcher = new VertxRestDispatcher();
dispatcher.init(mainRouter);
@@ -70,6 +80,9 @@ public class TestVertxRestDispatcher {
@Test
public void getOrder() {
+ Mockito.when(environment.getProperty(
+ "servicecomb.http.dispatcher.rest.order", int.class, Integer.MAX_VALUE))
+ .thenReturn(Integer.MAX_VALUE);
Assertions.assertEquals(Integer.MAX_VALUE, dispatcher.getOrder());
}
diff --git a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestTransport.java b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestTransport.java
index 8bec21af7..29377821f 100644
--- a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestTransport.java
+++ b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestTransport.java
@@ -17,10 +17,15 @@
package org.apache.servicecomb.transport.rest.vertx;
+import static org.apache.servicecomb.core.transport.AbstractTransport.PUBLISH_ADDRESS;
+
import java.io.IOException;
import java.net.ServerSocket;
+import org.apache.servicecomb.config.LegacyPropertyFactory;
import org.apache.servicecomb.foundation.vertx.VertxUtils;
+import org.apache.servicecomb.foundation.vertx.client.tcp.TcpClientConfig;
+import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.mockito.Mockito;
@@ -38,6 +43,30 @@ public class TestVertxRestTransport {
private final VertxRestTransport instance = new VertxRestTransport();
+ Environment environment = Mockito.mock(Environment.class);
+
+ @Before
+ public void setUp() {
+ Mockito.when(environment.getProperty(
+ "servicecomb.request.timeout", long.class, (long) TcpClientConfig.DEFAULT_LOGIN_TIMEOUT))
+ .thenReturn((long) TcpClientConfig.DEFAULT_LOGIN_TIMEOUT);
+ Mockito.when(environment.getProperty("servicecomb.rest.client.verticle-count", int.class, -1))
+ .thenReturn(-1);
+ Mockito.when(environment.getProperty("servicecomb.rest.client.thread-count", int.class, -1))
+ .thenReturn(-1);
+ Mockito.when(environment.getProperty("servicecomb.rest.server.verticle-count", int.class, -1))
+ .thenReturn(-1);
+ Mockito.when(environment.getProperty("servicecomb.rest.server.thread-count", int.class, -1))
+ .thenReturn(-1);
+ Mockito.when(environment.getProperty("servicecomb.http.dispatcher.rest.order", int.class, Integer.MAX_VALUE))
+ .thenReturn(Integer.MAX_VALUE);
+ Mockito.when(environment.getProperty("servicecomb.rest.publishPort", int.class, 0))
+ .thenReturn(0);
+ Mockito.when(environment.getProperty(PUBLISH_ADDRESS, String.class, ""))
+ .thenReturn("");
+ LegacyPropertyFactory.setEnvironment(environment);
+ }
+
@Test
public void testGetInstance() {
Assertions.assertNotNull(instance);
@@ -66,6 +95,7 @@ public class TestVertxRestTransport {
};
instance.init();
} catch (Exception e) {
+ e.printStackTrace();
status = true;
}
Assertions.assertFalse(status);
@@ -105,7 +135,6 @@ public class TestVertxRestTransport {
};
VertxRestTransport transport = new VertxRestTransport();
- Environment environment = Mockito.mock(Environment.class);
transport.setEnvironment(environment);
Assertions.assertFalse(transport.canInit());
@@ -126,7 +155,6 @@ public class TestVertxRestTransport {
};
VertxRestTransport transport = new VertxRestTransport();
- Environment environment = Mockito.mock(Environment.class);
transport.setEnvironment(environment);
Assertions.assertTrue(transport.canInit());
}