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 5f660e28c3ebee1d183624211b43093c8bfe92ae
Author: liubao <[email protected]>
AuthorDate: Thu Sep 21 15:07:51 2023 +0800

    [SCB-2008]change DynamicPropertyFactory to Environment: in common rest
---
 .../common/rest/RestProducerInvocationCreator.java    | 11 +++++------
 .../common/rest/codec/param/BodyProcessorCreator.java |  6 +++---
 .../rest/codec/param/HeaderProcessorCreator.java      |  6 +++---
 .../rest/codec/param/QueryProcessorCreator.java       | 14 +++++++-------
 .../servicecomb/common/rest/codec/TestRestCodec.java  | 14 ++++++++++++++
 .../rest/codec/param/TestHeaderProcessorCreator.java  | 13 +++++++++++++
 .../common/rest/codec/param/TestQueryProcessor.java   | 16 ++++++++++++++++
 .../rest/codec/param/TestQueryProcessorCreator.java   | 19 ++++++++++++++++++-
 .../common/rest/codec/query/QueryCodecCsvTest.java    | 17 +++++++++++++++++
 .../common/rest/codec/query/QueryCodecPipesTest.java  | 17 +++++++++++++++++
 .../common/rest/codec/query/QueryCodecSsvTest.java    | 19 ++++++++++++++++++-
 .../servicecomb/common/rest/definition/TestPath.java  | 15 +++++++++++++++
 .../rest/definition/path/QueryVarParamWriterTest.java | 13 +++++++++++++
 .../rest/definition/path/URLPathBuilderTest.java      | 17 +++++++++++++++++
 .../common/rest/locator/TestServicePathManager.java   | 11 +++++++++++
 .../foundation/common/LegacyPropertyFactory.java      |  3 ++-
 16 files changed, 189 insertions(+), 22 deletions(-)

diff --git 
a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocationCreator.java
 
b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocationCreator.java
index 548b5dc0f..df5eebc83 100644
--- 
a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocationCreator.java
+++ 
b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocationCreator.java
@@ -38,13 +38,12 @@ import 
org.apache.servicecomb.core.definition.MicroserviceMeta;
 import org.apache.servicecomb.core.exception.Exceptions;
 import org.apache.servicecomb.core.invocation.InvocationCreator;
 import org.apache.servicecomb.core.invocation.InvocationFactory;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.vertx.http.HttpServletRequestEx;
 import org.apache.servicecomb.foundation.vertx.http.HttpServletResponseEx;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.netflix.config.DynamicPropertyFactory;
-
 import io.vertx.core.json.Json;
 
 public abstract class RestProducerInvocationCreator implements 
InvocationCreator {
@@ -100,10 +99,10 @@ public abstract class RestProducerInvocationCreator 
implements InvocationCreator
   }
 
   protected void addParameterContext(Invocation invocation) {
-    String headerContextMapper = DynamicPropertyFactory.getInstance()
-        .getStringProperty(RestConst.HEADER_CONTEXT_MAPPER, null).get();
-    String queryContextMapper = DynamicPropertyFactory.getInstance()
-        .getStringProperty(RestConst.QUERY_CONTEXT_MAPPER, null).get();
+    String headerContextMapper = LegacyPropertyFactory
+        .getStringProperty(RestConst.HEADER_CONTEXT_MAPPER);
+    String queryContextMapper = LegacyPropertyFactory
+        .getStringProperty(RestConst.QUERY_CONTEXT_MAPPER);
 
     Map<String, Object> headerContextMappers;
     if (headerContextMapper != null) {
diff --git 
a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/param/BodyProcessorCreator.java
 
b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/param/BodyProcessorCreator.java
index dcb8aaf97..c59815a94 100644
--- 
a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/param/BodyProcessorCreator.java
+++ 
b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/param/BodyProcessorCreator.java
@@ -35,6 +35,7 @@ import 
org.apache.servicecomb.common.rest.codec.RestClientRequest;
 import org.apache.servicecomb.common.rest.codec.RestObjectMapperFactory;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
 import org.apache.servicecomb.core.definition.OperationMeta;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.protobuf.ProtoMapper;
 import org.apache.servicecomb.foundation.protobuf.RootDeserializer;
 import org.apache.servicecomb.foundation.protobuf.RootSerializer;
@@ -51,7 +52,6 @@ import com.fasterxml.jackson.databind.ObjectReader;
 import com.fasterxml.jackson.databind.exc.MismatchedInputException;
 import com.fasterxml.jackson.databind.type.SimpleType;
 import com.fasterxml.jackson.databind.type.TypeFactory;
-import com.netflix.config.DynamicPropertyFactory;
 
 import io.swagger.v3.oas.models.OpenAPI;
 import io.swagger.v3.oas.models.parameters.RequestBody;
@@ -75,8 +75,8 @@ public class BodyProcessorCreator implements 
ParamValueProcessorCreator<RequestB
   private static final JavaType OBJECT_TYPE = 
SimpleType.constructUnsafe(Object.class);
 
   // This configuration is used for temporary use only. Do not use it if you 
are sure how it works. And may be deleted in future.
-  private static final boolean decodeAsObject = 
DynamicPropertyFactory.getInstance()
-      .getBooleanProperty("servicecomb.rest.parameter.decodeAsObject", 
false).get();
+  private static final boolean decodeAsObject = LegacyPropertyFactory
+      .getBooleanProperty("servicecomb.rest.parameter.decodeAsObject", false);
 
   private static final Object LOCK = new Object();
 
diff --git 
a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/param/HeaderProcessorCreator.java
 
b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/param/HeaderProcessorCreator.java
index ab03afd49..a3b72403b 100644
--- 
a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/param/HeaderProcessorCreator.java
+++ 
b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/param/HeaderProcessorCreator.java
@@ -24,13 +24,13 @@ import java.util.Enumeration;
 import org.apache.servicecomb.common.rest.codec.RestClientRequest;
 import org.apache.servicecomb.common.rest.codec.RestObjectMapperFactory;
 import org.apache.servicecomb.core.definition.OperationMeta;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.fasterxml.jackson.databind.JavaType;
 import com.fasterxml.jackson.databind.type.TypeFactory;
-import com.netflix.config.DynamicPropertyFactory;
 
 import io.swagger.v3.oas.models.media.ArraySchema;
 import io.swagger.v3.oas.models.parameters.HeaderParameter;
@@ -45,8 +45,8 @@ public class HeaderProcessorCreator implements 
ParamValueProcessorCreator<Parame
 
   public static class HeaderProcessor extends AbstractParamProcessor {
     // This configuration is used for temporary use only. Do not use it if you 
are sure how it works. And may be deleted in future.
-    private final boolean ignoreRequiredCheck = 
DynamicPropertyFactory.getInstance()
-        
.getBooleanProperty("servicecomb.rest.parameter.header.ignoreRequiredCheck", 
false).get();
+    private final boolean ignoreRequiredCheck = LegacyPropertyFactory
+        
.getBooleanProperty("servicecomb.rest.parameter.header.ignoreRequiredCheck", 
false);
 
     private final boolean repeatedType;
 
diff --git 
a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/param/QueryProcessorCreator.java
 
b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/param/QueryProcessorCreator.java
index 1462e413a..8fef05686 100644
--- 
a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/param/QueryProcessorCreator.java
+++ 
b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/param/QueryProcessorCreator.java
@@ -25,11 +25,11 @@ import 
org.apache.servicecomb.common.rest.codec.RestClientRequest;
 import org.apache.servicecomb.common.rest.codec.query.QueryCodec;
 import org.apache.servicecomb.common.rest.codec.query.QueryCodecsUtils;
 import org.apache.servicecomb.core.definition.OperationMeta;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
 
 import com.fasterxml.jackson.databind.JavaType;
 import com.fasterxml.jackson.databind.type.TypeFactory;
-import com.netflix.config.DynamicPropertyFactory;
 
 import io.swagger.v3.oas.models.media.ArraySchema;
 import io.swagger.v3.oas.models.parameters.Parameter;
@@ -43,16 +43,16 @@ public class QueryProcessorCreator implements 
ParamValueProcessorCreator<Paramet
 
   public static class QueryProcessor extends AbstractParamProcessor {
     // This configuration is used for temporary use only. Do not use it if you 
are sure how it works. And may be deleted in future.
-    private final boolean emptyAsNull = DynamicPropertyFactory.getInstance()
-        .getBooleanProperty("servicecomb.rest.parameter.query.emptyAsNull", 
false).get();
+    private final boolean emptyAsNull = LegacyPropertyFactory
+        .getBooleanProperty("servicecomb.rest.parameter.query.emptyAsNull", 
false);
 
     // This configuration is used for temporary use only. Do not use it if you 
are sure how it works. And may be deleted in future.
-    private final boolean ignoreDefaultValue = 
DynamicPropertyFactory.getInstance()
-        
.getBooleanProperty("servicecomb.rest.parameter.query.ignoreDefaultValue", 
false).get();
+    private final boolean ignoreDefaultValue = LegacyPropertyFactory
+        
.getBooleanProperty("servicecomb.rest.parameter.query.ignoreDefaultValue", 
false);
 
     // This configuration is used for temporary use only. Do not use it if you 
are sure how it works. And may be deleted in future.
-    private final boolean ignoreRequiredCheck = 
DynamicPropertyFactory.getInstance()
-        
.getBooleanProperty("servicecomb.rest.parameter.query.ignoreRequiredCheck", 
false).get();
+    private final boolean ignoreRequiredCheck = LegacyPropertyFactory
+        
.getBooleanProperty("servicecomb.rest.parameter.query.ignoreRequiredCheck", 
false);
 
     private final boolean repeatedType;
 
diff --git 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/TestRestCodec.java
 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/TestRestCodec.java
index ebbe2975a..dafb99949 100644
--- 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/TestRestCodec.java
+++ 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/TestRestCodec.java
@@ -27,6 +27,7 @@ import 
org.apache.servicecomb.common.rest.codec.param.RestClientRequestImpl;
 import org.apache.servicecomb.common.rest.definition.RestOperationMeta;
 import org.apache.servicecomb.common.rest.definition.RestParam;
 import org.apache.servicecomb.core.definition.OperationMeta;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.swagger.invocation.exception.CommonExceptionData;
 import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
 import org.junit.jupiter.api.AfterAll;
@@ -34,6 +35,7 @@ import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
 
 import io.swagger.v3.oas.models.media.Schema;
 import io.swagger.v3.oas.models.parameters.HeaderParameter;
@@ -55,8 +57,20 @@ public class TestRestCodec {
 
   private static List<RestParam> paramList = null;
 
+  static Environment environment = Mockito.mock(Environment.class);
+
   @BeforeAll
   public static void beforeClass() {
+    LegacyPropertyFactory.setEnvironment(environment);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.emptyAsNull",
 boolean.class, false))
+        .thenReturn(false);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.ignoreDefaultValue",
 boolean.class, false))
+        .thenReturn(false);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.ignoreRequiredCheck",
 boolean.class, false))
+        .thenReturn(false);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.header.ignoreRequiredCheck",
 boolean.class, false))
+        .thenReturn(false);
+
     Parameter hp = new HeaderParameter();
     hp.setName("header");
     hp.setSchema(new Schema());
diff --git 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestHeaderProcessorCreator.java
 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestHeaderProcessorCreator.java
index 2ea7c3823..d275b16b6 100644
--- 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestHeaderProcessorCreator.java
+++ 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestHeaderProcessorCreator.java
@@ -18,13 +18,26 @@
 package org.apache.servicecomb.common.rest.codec.param;
 
 import 
org.apache.servicecomb.common.rest.codec.param.HeaderProcessorCreator.HeaderProcessor;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
 
 import io.swagger.v3.oas.models.media.Schema;
 import io.swagger.v3.oas.models.parameters.HeaderParameter;
 
 public class TestHeaderProcessorCreator {
+  static Environment environment = Mockito.mock(Environment.class);
+
+  @BeforeAll
+  public static void beforeClass() {
+    LegacyPropertyFactory.setEnvironment(environment);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.header.ignoreRequiredCheck",
 boolean.class, false))
+        .thenReturn(false);
+  }
+
   @Test
   public void testCreate() {
     ParamValueProcessorCreator creator =
diff --git 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestQueryProcessor.java
 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestQueryProcessor.java
index 73c547b03..be18fb837 100644
--- 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestQueryProcessor.java
+++ 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestQueryProcessor.java
@@ -18,11 +18,14 @@
 package org.apache.servicecomb.common.rest.codec.param;
 
 import 
org.apache.servicecomb.common.rest.codec.param.QueryProcessorCreator.QueryProcessor;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.hamcrest.MatcherAssert;
 import org.hamcrest.Matchers;
 import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
 
 import com.fasterxml.jackson.databind.JavaType;
 import com.fasterxml.jackson.databind.type.TypeFactory;
@@ -35,6 +38,19 @@ import io.swagger.v3.oas.models.parameters.QueryParameter;
 import jakarta.servlet.http.HttpServletRequest;
 
 public class TestQueryProcessor {
+  static Environment environment = Mockito.mock(Environment.class);
+
+  @BeforeAll
+  public static void beforeClass() {
+    LegacyPropertyFactory.setEnvironment(environment);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.emptyAsNull",
 boolean.class, false))
+        .thenReturn(false);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.ignoreDefaultValue",
 boolean.class, false))
+        .thenReturn(false);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.ignoreRequiredCheck",
 boolean.class, false))
+        .thenReturn(false);
+  }
+
   final HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
 
   private ParamValueProcessor createProcessor(String name, Class<?> type,
diff --git 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestQueryProcessorCreator.java
 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestQueryProcessorCreator.java
index 6f59823b0..d1f98da4e 100644
--- 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestQueryProcessorCreator.java
+++ 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestQueryProcessorCreator.java
@@ -18,10 +18,13 @@
 package org.apache.servicecomb.common.rest.codec.param;
 
 import 
org.apache.servicecomb.common.rest.codec.param.QueryProcessorCreator.QueryProcessor;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
 import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
 
 import com.fasterxml.jackson.databind.type.TypeFactory;
 
@@ -31,6 +34,19 @@ import io.swagger.v3.oas.models.parameters.QueryParameter;
 import jakarta.servlet.http.HttpServletRequest;
 
 public class TestQueryProcessorCreator {
+  static Environment environment = Mockito.mock(Environment.class);
+
+  @BeforeAll
+  public static void beforeClass() {
+    LegacyPropertyFactory.setEnvironment(environment);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.emptyAsNull",
 boolean.class, false))
+        .thenReturn(false);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.ignoreDefaultValue",
 boolean.class, false))
+        .thenReturn(false);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.ignoreRequiredCheck",
 boolean.class, false))
+        .thenReturn(false);
+  }
+
   @Test
   public void testCreate() {
     ParamValueProcessorCreator creator =
@@ -56,7 +72,8 @@ public class TestQueryProcessorCreator {
   @Test
   public void testCreateNullAsEmpty() throws Exception {
     HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
-    ArchaiusUtils.setProperty("servicecomb.rest.parameter.query.emptyAsNull", 
"true");
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.emptyAsNull",
 boolean.class, false))
+        .thenReturn(true);
     ParamValueProcessorCreator creator =
         
ParamValueProcessorCreatorManager.INSTANCE.findValue(QueryProcessorCreator.PARAMTYPE);
     Parameter parameter = new QueryParameter();
diff --git 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/query/QueryCodecCsvTest.java
 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/query/QueryCodecCsvTest.java
index 3d34e1097..890075cbe 100644
--- 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/query/QueryCodecCsvTest.java
+++ 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/query/QueryCodecCsvTest.java
@@ -19,11 +19,28 @@ package org.apache.servicecomb.common.rest.codec.query;
 
 import java.util.Date;
 
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
 
 class QueryCodecCsvTest extends QueryCodecTestBase {
+  static Environment environment = Mockito.mock(Environment.class);
+
+  @BeforeAll
+  public static void beforeClass() {
+    LegacyPropertyFactory.setEnvironment(environment);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.emptyAsNull",
 boolean.class, false))
+        .thenReturn(false);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.ignoreDefaultValue",
 boolean.class, false))
+        .thenReturn(false);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.ignoreRequiredCheck",
 boolean.class, false))
+        .thenReturn(false);
+  }
+
   @BeforeEach
   void setUp() {
     codec = new QueryCodecCsv();
diff --git 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/query/QueryCodecPipesTest.java
 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/query/QueryCodecPipesTest.java
index 3b7f33459..83f2b8006 100644
--- 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/query/QueryCodecPipesTest.java
+++ 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/query/QueryCodecPipesTest.java
@@ -19,11 +19,28 @@ package org.apache.servicecomb.common.rest.codec.query;
 
 import java.util.Date;
 
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
 
 class QueryCodecPipesTest extends QueryCodecTestBase {
+  static Environment environment = Mockito.mock(Environment.class);
+
+  @BeforeAll
+  public static void beforeClass() {
+    LegacyPropertyFactory.setEnvironment(environment);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.emptyAsNull",
 boolean.class, false))
+        .thenReturn(false);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.ignoreDefaultValue",
 boolean.class, false))
+        .thenReturn(false);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.ignoreRequiredCheck",
 boolean.class, false))
+        .thenReturn(false);
+  }
+
   @BeforeEach
   void setUp() {
     codec = new QueryCodecPipes();
diff --git 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/query/QueryCodecSsvTest.java
 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/query/QueryCodecSsvTest.java
index c719eae08..c6e521f67 100644
--- 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/query/QueryCodecSsvTest.java
+++ 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/query/QueryCodecSsvTest.java
@@ -19,11 +19,28 @@ package org.apache.servicecomb.common.rest.codec.query;
 
 import java.util.Date;
 
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
+
+public class QueryCodecSsvTest extends QueryCodecTestBase {
+  static Environment environment = Mockito.mock(Environment.class);
+
+  @BeforeAll
+  public static void beforeClass() {
+    LegacyPropertyFactory.setEnvironment(environment);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.emptyAsNull",
 boolean.class, false))
+        .thenReturn(false);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.ignoreDefaultValue",
 boolean.class, false))
+        .thenReturn(false);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.ignoreRequiredCheck",
 boolean.class, false))
+        .thenReturn(false);
+  }
 
-class QueryCodecSsvTest extends QueryCodecTestBase {
   @BeforeEach
   void setUp() {
     codec = new QueryCodecSsv();
diff --git 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/TestPath.java
 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/TestPath.java
index 51a4cf26e..db0b09f83 100644
--- 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/TestPath.java
+++ 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/TestPath.java
@@ -25,11 +25,14 @@ import 
org.apache.servicecomb.common.rest.definition.path.PathRegExp;
 import org.apache.servicecomb.common.rest.definition.path.QueryVarParamWriter;
 import org.apache.servicecomb.common.rest.definition.path.URLPathBuilder;
 import 
org.apache.servicecomb.common.rest.definition.path.URLPathBuilder.URLPathStringBuilder;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.junit.jupiter.api.AfterEach;
 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.mockito.Mockito;
+import org.springframework.core.env.Environment;
 
 import io.swagger.v3.oas.models.media.Schema;
 import io.swagger.v3.oas.models.parameters.Parameter;
@@ -37,6 +40,18 @@ import io.swagger.v3.oas.models.parameters.PathParameter;
 import io.swagger.v3.oas.models.parameters.QueryParameter;
 
 public class TestPath {
+  static Environment environment = Mockito.mock(Environment.class);
+
+  @BeforeAll
+  public static void beforeClass() {
+    LegacyPropertyFactory.setEnvironment(environment);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.emptyAsNull",
 boolean.class, false))
+        .thenReturn(false);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.ignoreDefaultValue",
 boolean.class, false))
+        .thenReturn(false);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.ignoreRequiredCheck",
 boolean.class, false))
+        .thenReturn(false);
+  }
 
   @BeforeEach
   public void setUp() {
diff --git 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/path/QueryVarParamWriterTest.java
 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/path/QueryVarParamWriterTest.java
index 55c69bf60..1aafc89fb 100644
--- 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/path/QueryVarParamWriterTest.java
+++ 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/path/QueryVarParamWriterTest.java
@@ -26,9 +26,12 @@ import java.util.Map;
 
 import org.apache.servicecomb.common.rest.definition.RestParam;
 import 
org.apache.servicecomb.common.rest.definition.path.URLPathBuilder.URLPathStringBuilder;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
 
 import io.swagger.v3.oas.models.media.Schema;
 import io.swagger.v3.oas.models.parameters.Parameter.StyleEnum;
@@ -41,8 +44,18 @@ public class QueryVarParamWriterTest {
 
   private static QueryVarParamWriter queryVarParamWriterDefault;
 
+  static Environment environment = Mockito.mock(Environment.class);
+
   @BeforeAll
   public static void beforeClass() {
+    LegacyPropertyFactory.setEnvironment(environment);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.emptyAsNull",
 boolean.class, false))
+        .thenReturn(false);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.ignoreDefaultValue",
 boolean.class, false))
+        .thenReturn(false);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.ignoreRequiredCheck",
 boolean.class, false))
+        .thenReturn(false);
+
     QueryParameter parameter = new QueryParameter();
     parameter.setName("q");
     parameter.setSchema(new Schema());
diff --git 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/path/URLPathBuilderTest.java
 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/path/URLPathBuilderTest.java
index 43f2b1396..bcff2ff15 100644
--- 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/path/URLPathBuilderTest.java
+++ 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/path/URLPathBuilderTest.java
@@ -23,8 +23,12 @@ import java.util.LinkedHashMap;
 import java.util.Map;
 
 import org.apache.servicecomb.common.rest.definition.RestParam;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
 
 import io.swagger.v3.oas.models.media.Schema;
 import io.swagger.v3.oas.models.parameters.Parameter;
@@ -32,6 +36,19 @@ import io.swagger.v3.oas.models.parameters.PathParameter;
 import io.swagger.v3.oas.models.parameters.QueryParameter;
 
 public class URLPathBuilderTest {
+  static Environment environment = Mockito.mock(Environment.class);
+
+  @BeforeAll
+  public static void beforeClass() {
+    LegacyPropertyFactory.setEnvironment(environment);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.emptyAsNull",
 boolean.class, false))
+        .thenReturn(false);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.ignoreDefaultValue",
 boolean.class, false))
+        .thenReturn(false);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.query.ignoreRequiredCheck",
 boolean.class, false))
+        .thenReturn(false);
+  }
+
   @Test
   public void testNormal() throws Exception {
     Map<String, RestParam> paramMap = new LinkedHashMap<>();
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 902ea583d..85476f627 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
@@ -30,17 +30,28 @@ import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.bootstrap.SCBBootstrap;
 import org.apache.servicecomb.core.executor.ExecutorManager;
 import org.apache.servicecomb.core.transport.TransportManager;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 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.junit.jupiter.api.AfterEach;
 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.mockito.Mockito;
 import org.springframework.core.env.Environment;
 
 public class TestServicePathManager {
+  static Environment environment = Mockito.mock(Environment.class);
+
+  @BeforeAll
+  public static void beforeClass() {
+    LegacyPropertyFactory.setEnvironment(environment);
+    
Mockito.when(environment.getProperty("servicecomb.rest.parameter.decodeAsObject",
 boolean.class, false))
+        .thenReturn(false);
+  }
+
   SCBEngine scbEngine;
 
   @BeforeEach
diff --git 
a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/LegacyPropertyFactory.java
 
b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/LegacyPropertyFactory.java
index 6bda26c06..52f8372ba 100644
--- 
a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/LegacyPropertyFactory.java
+++ 
b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/LegacyPropertyFactory.java
@@ -23,7 +23,8 @@ 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.
+ * NOTE: This way is not commented and only for legacy code without too much 
refactoring.
+ *   And make sure to use this class when spring bean context is already 
initialized.
  */
 public class LegacyPropertyFactory {
   private static Environment environment;

Reply via email to