You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by xx...@apache.org on 2022/09/28 02:04:14 UTC
[kylin] branch kylin5 updated: Kylin 5256 Add a cache for the system property get by the optional config in KylinConfigBase (#1969)
This is an automated email from the ASF dual-hosted git repository.
xxyu pushed a commit to branch kylin5
in repository https://gitbox.apache.org/repos/asf/kylin.git
The following commit(s) were added to refs/heads/kylin5 by this push:
new ce5c40393a Kylin 5256 Add a cache for the system property get by the optional config in KylinConfigBase (#1969)
ce5c40393a is described below
commit ce5c40393a73664344a9275e9f31af4722d651f7
Author: zznlime <68...@users.noreply.github.com>
AuthorDate: Wed Sep 28 10:04:07 2022 +0800
Kylin 5256 Add a cache for the system property get by the optional config in KylinConfigBase (#1969)
* KYLIN-5256 Add a cache for the system property get by the optional config in KylinConfigBase limitation during loading properties to Kylin config.
* KYLIN-5256 Add ICachedExternalConfigLoader.
* KYLIN-5256 Fix UT
* Revert "KYLIN-5256 Add ICachedExternalConfigLoader."
This reverts commit 3231653d
* KYLIN-5256 Fix UT
* KYLIN-5256 Fix UT
---
.../rest/controller/NEpochControllerTest.java | 3 +-
.../org/apache/kylin/common/KylinConfigBase.java | 69 ++++++++++++++++------
.../org/apache/kylin/common/AbstractTestCase.java | 4 +-
.../org/apache/kylin/junit/MetadataExtension.java | 3 +-
.../apache/kylin/junit/OverwritePropExtension.java | 9 +--
.../controller/StreamingJobControllerTest.java | 3 +-
.../rest/service/StreamingTableServiceTest.java | 3 +-
.../kylin/rest/controller/KafkaControllerTest.java | 3 +-
.../controller/StreamingTableControllerTest.java | 3 +-
.../open/OpenStreamingJobControllerTest.java | 3 +-
.../kylin/source/hive/HiveCmdBuilderTest.java | 7 ++-
.../utils/HiveTransactionTableHelperTest.java | 5 +-
.../rest/service/StreamingJobServiceTest.java | 3 +-
13 files changed, 81 insertions(+), 37 deletions(-)
diff --git a/src/common-server/src/test/java/org/apache/kylin/rest/controller/NEpochControllerTest.java b/src/common-server/src/test/java/org/apache/kylin/rest/controller/NEpochControllerTest.java
index d2c70b6910..83eb177b76 100644
--- a/src/common-server/src/test/java/org/apache/kylin/rest/controller/NEpochControllerTest.java
+++ b/src/common-server/src/test/java/org/apache/kylin/rest/controller/NEpochControllerTest.java
@@ -19,6 +19,7 @@ package org.apache.kylin.rest.controller;
import static org.apache.kylin.common.constant.HttpConstant.HTTP_VND_APACHE_KYLIN_JSON;
+import org.apache.kylin.common.KylinConfigBase;
import org.apache.kylin.rest.constant.Constant;
import org.apache.kylin.common.util.NLocalFileMetadataTestCase;
import org.apache.kylin.rest.service.EpochService;
@@ -62,7 +63,7 @@ public class NEpochControllerTest extends NLocalFileMetadataTestCase {
@Before
public void setupResource() {
- System.setProperty("HADOOP_USER_NAME", "root");
+ KylinConfigBase.setSystemProperty("HADOOP_USER_NAME", "root");
createTestMetadata();
}
diff --git a/src/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java b/src/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
index fedbd83f9d..57cd5e6306 100644
--- a/src/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
+++ b/src/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
@@ -111,6 +111,43 @@ public abstract class KylinConfigBase implements Serializable {
protected static final Map<String, String> STATIC_SYSTEM_ENV = new ConcurrentHashMap<>(System.getenv());
+ // It's a workaround to avoid lock in bottom hash table
+ // It can be removed after updating JDK to 11
+ protected static final ConcurrentHashMap<Object, Object> STATIC_SYSTEM_PROPERTY = new ConcurrentHashMap<>(
+ System.getProperties());
+
+ protected static String getSystemProperty(String key) {
+ checkKey(key);
+ Object oval = STATIC_SYSTEM_PROPERTY.get(key);
+ return (oval instanceof String) ? (String) oval : null;
+ }
+
+ protected static String getSystemProperty(String key, String defaultValue) {
+ String val = getSystemProperty(key);
+ return (val == null) ? defaultValue : val;
+ }
+
+ // Mainly invoked in tests
+ public static String setSystemProperty(String key, String value) {
+ System.setProperty(key, value);
+ return (String) STATIC_SYSTEM_PROPERTY.put(key, value);
+ }
+
+ // Mainly invoked in tests
+ public static void clearSystemProperty(String key) {
+ System.clearProperty(key);
+ STATIC_SYSTEM_PROPERTY.remove(key);
+ }
+
+ private static void checkKey(String key) {
+ if (key == null) {
+ throw new NullPointerException("key can't be null");
+ }
+ if (key.equals("")) {
+ throw new IllegalArgumentException("key can't be empty");
+ }
+ }
+
/*
* DON'T DEFINE CONSTANTS FOR PROPERTY KEYS!
*
@@ -119,8 +156,8 @@ public abstract class KylinConfigBase implements Serializable {
* For 3), key literals usually appear only once.
*/
- public static String vendor(){
- if(VENDOR != null) {
+ public static String vendor() {
+ if (VENDOR != null) {
return VENDOR;
} else {
return DEFAULT_VENDOR;
@@ -138,7 +175,7 @@ public abstract class KylinConfigBase implements Serializable {
public static String getKylinHomeWithoutWarn() {
String kylinHome = System.getenv("KYLIN_HOME");
if (StringUtils.isEmpty(kylinHome)) {
- kylinHome = System.getProperty("KYLIN_HOME");
+ kylinHome = getSystemProperty("KYLIN_HOME");
}
return kylinHome;
}
@@ -146,7 +183,7 @@ public abstract class KylinConfigBase implements Serializable {
public static String getKylinConfHome() {
String confHome = System.getenv("KYLIN_CONF");
if (StringUtils.isEmpty(confHome)) {
- confHome = System.getProperty("KYLIN_CONF");
+ confHome = getSystemProperty("KYLIN_CONF");
}
return confHome;
}
@@ -160,7 +197,7 @@ public abstract class KylinConfigBase implements Serializable {
return getKylinHome() + File.separator + "spark";
}
- public Map<String, String> getReadonlyProperties(){
+ public Map<String, String> getReadonlyProperties() {
val substitutor = getSubstitutor();
HashMap<String, String> config = Maps.newHashMap();
for (Entry<Object, Object> entry : this.properties.entrySet()) {
@@ -201,7 +238,7 @@ public abstract class KylinConfigBase implements Serializable {
}
protected String getOptional(String prop, String dft) {
- final String property = System.getProperty(prop);
+ final String property = getSystemProperty(prop);
return property != null ? getSubstitutor().replace(property)
: getSubstitutor().replace(properties.getProperty(prop, dft));
}
@@ -248,7 +285,7 @@ public abstract class KylinConfigBase implements Serializable {
result.put(key.substring(prefix.length()), (String) entry.getValue());
}
}
- for (Entry<Object, Object> entry : System.getProperties().entrySet()) {
+ for (Entry<Object, Object> entry : STATIC_SYSTEM_PROPERTY.entrySet()) {
String key = (String) entry.getKey();
if (key.startsWith(prefix)) {
result.put(key.substring(prefix.length()), (String) entry.getValue());
@@ -267,7 +304,7 @@ public abstract class KylinConfigBase implements Serializable {
}
protected final String[] getSystemStringArray(String prop, String[] dft) {
- final String property = System.getProperty(prop);
+ final String property = getSystemProperty(prop);
if (!StringUtils.isBlank(property)) {
return property.split("\\s*,\\s*");
} else {
@@ -1006,7 +1043,7 @@ public abstract class KylinConfigBase implements Serializable {
public String getQueryExtensionFactory() {
String dft = "org.apache.kylin.query.QueryExtension$Factory";
- if(vendor().equals("kyligence")) {
+ if (vendor().equals("kyligence")) {
dft = "io.kyligence.kap.query.QueryExtensionFactoryEnterprise";
}
return getOptional("kylin.extension.query.factory", dft);
@@ -1396,12 +1433,11 @@ public abstract class KylinConfigBase implements Serializable {
public List<String> getSparkBuildConfExtraRules() {
String rules = getOptional("kylin.engine.spark.build-conf-extra-rules");
if (StringUtils.isEmpty(rules)) {
- return Collections.<String>emptyList();
+ return Collections.<String> emptyList();
}
return Lists.newArrayList(rules.split(","));
}
-
public String getSparkTableSamplingClassName() {
return getOptional("kylin.engine.spark.sampling-class-name",
"org.apache.kylin.engine.spark.stats.analyzer.TableAnalyzerJob");
@@ -1606,7 +1642,7 @@ public abstract class KylinConfigBase implements Serializable {
}
public boolean asyncProfilingEnabled() {
- return !Boolean.parseBoolean(System.getProperty("spark.local", FALSE))
+ return !Boolean.parseBoolean(getSystemProperty("spark.local", FALSE))
&& Boolean.parseBoolean(getOptional("kylin.query.async-profiler-enabled", TRUE));
}
@@ -1944,10 +1980,8 @@ public abstract class KylinConfigBase implements Serializable {
public String[] getTableDetectorTransformers() {
String value = getOptional("kylin.query.table-detect-transformers");
- return value == null
- ? new String[] { "org.apache.kylin.query.util.PowerBIConverter",
- "org.apache.kylin.query.util.DefaultQueryTransformer",
- "org.apache.kylin.query.util.EscapeTransformer" }
+ return value == null ? new String[] { "org.apache.kylin.query.util.PowerBIConverter",
+ "org.apache.kylin.query.util.DefaultQueryTransformer", "org.apache.kylin.query.util.EscapeTransformer" }
: getOptionalStringArray("kylin.query.table-detect-transformers", new String[0]);
}
@@ -1955,8 +1989,7 @@ public abstract class KylinConfigBase implements Serializable {
String value = getOptional("kylin.query.transformers");
return value == null ? new String[] { "org.apache.kylin.query.util.ReplaceStringWithVarchar",
"org.apache.kylin.query.util.PowerBIConverter", "org.apache.kylin.query.util.DefaultQueryTransformer",
- "org.apache.kylin.query.util.EscapeTransformer",
- "org.apache.kylin.query.util.ConvertToComputedColumn",
+ "org.apache.kylin.query.util.EscapeTransformer", "org.apache.kylin.query.util.ConvertToComputedColumn",
"org.apache.kylin.query.util.KeywordDefaultDirtyHack", "org.apache.kylin.query.security.RowFilter" }
: getOptionalStringArray("kylin.query.transformers", new String[0]);
}
diff --git a/src/core-common/src/test/java/org/apache/kylin/common/AbstractTestCase.java b/src/core-common/src/test/java/org/apache/kylin/common/AbstractTestCase.java
index 96a9735fd6..f2b25edd48 100644
--- a/src/core-common/src/test/java/org/apache/kylin/common/AbstractTestCase.java
+++ b/src/core-common/src/test/java/org/apache/kylin/common/AbstractTestCase.java
@@ -80,9 +80,9 @@ public abstract class AbstractTestCase {
/** Clear system property in test method with annotation {@link org.junit.Test} */
public final void restoreSystemProp(String property) {
if (!METHOD_PROPERTY_MAP.containsKey(property) || METHOD_PROPERTY_MAP.get(property) == null) {
- System.clearProperty(property);
+ KylinConfigBase.clearSystemProperty(property);
} else {
- System.setProperty(property, METHOD_PROPERTY_MAP.get(property));
+ KylinConfigBase.setSystemProperty(property, METHOD_PROPERTY_MAP.get(property));
}
METHOD_PROPERTY_MAP.remove(property);
}
diff --git a/src/core-common/src/test/java/org/apache/kylin/junit/MetadataExtension.java b/src/core-common/src/test/java/org/apache/kylin/junit/MetadataExtension.java
index 05c0d3aec9..e519fb6c63 100644
--- a/src/core-common/src/test/java/org/apache/kylin/junit/MetadataExtension.java
+++ b/src/core-common/src/test/java/org/apache/kylin/junit/MetadataExtension.java
@@ -25,6 +25,7 @@ import java.util.concurrent.ConcurrentHashMap;
import org.apache.commons.io.FileUtils;
import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.KylinConfigBase;
import org.apache.kylin.common.QueryContext;
import org.apache.kylin.common.Singletons;
import org.apache.kylin.common.persistence.ResourceStore;
@@ -100,7 +101,7 @@ public class MetadataExtension implements BeforeEachCallback, BeforeAllCallback,
cleanSingletonInstances();
val kylinHomePath = new File(getTestConfig().getMetadataUrl().toString()).getParentFile().getAbsolutePath();
- System.setProperty("KYLIN_HOME", kylinHomePath);
+ KylinConfigBase.setSystemProperty("KYLIN_HOME", kylinHomePath);
val jobJar = org.apache.kylin.common.util.FileUtils.findFile(
new File(kylinHomePath, "../../../assembly/target/").getAbsolutePath(), "kylin-assembly(.?)\\.jar");
getTestConfig().setProperty("kylin.engine.spark.job-jar", jobJar == null ? "" : jobJar.getAbsolutePath());
diff --git a/src/core-common/src/test/java/org/apache/kylin/junit/OverwritePropExtension.java b/src/core-common/src/test/java/org/apache/kylin/junit/OverwritePropExtension.java
index d071d1199b..1afe225934 100644
--- a/src/core-common/src/test/java/org/apache/kylin/junit/OverwritePropExtension.java
+++ b/src/core-common/src/test/java/org/apache/kylin/junit/OverwritePropExtension.java
@@ -19,6 +19,7 @@ package org.apache.kylin.junit;
import java.util.Map;
+import org.apache.kylin.common.KylinConfigBase;
import org.apache.kylin.common.util.Unsafe;
import org.apache.kylin.junit.annotation.OverwriteProp;
import org.junit.jupiter.api.extension.AfterEachCallback;
@@ -64,9 +65,9 @@ public class OverwritePropExtension implements BeforeEachCallback, AfterEachCall
val keys = Sets.newHashSet(overwritten.keySet());
for (String property : keys) {
if (!overwritten.containsKey(property) || overwritten.get(property) == null) {
- System.clearProperty(property);
+ KylinConfigBase.clearSystemProperty(property);
} else {
- System.setProperty(property, overwritten.get(property));
+ KylinConfigBase.setSystemProperty(property, overwritten.get(property));
}
}
context.getStore(NAMESPACE).remove(OVERWRITE_PROP_BEFORE_EACH_KEY);
@@ -82,9 +83,9 @@ public class OverwritePropExtension implements BeforeEachCallback, AfterEachCall
/** Clear system property in test method with annotation {@link org.junit.Test} */
public final void restoreSystemProp(Map<String, String> overwritten, String property) {
if (!overwritten.containsKey(property) || overwritten.get(property) == null) {
- System.clearProperty(property);
+ KylinConfigBase.clearSystemProperty(property);
} else {
- System.setProperty(property, overwritten.get(property));
+ KylinConfigBase.setSystemProperty(property, overwritten.get(property));
}
overwritten.remove(property);
}
diff --git a/src/data-loading-server/src/test/java/org/apache/kylin/rest/controller/StreamingJobControllerTest.java b/src/data-loading-server/src/test/java/org/apache/kylin/rest/controller/StreamingJobControllerTest.java
index dbdb410209..29cd3392af 100644
--- a/src/data-loading-server/src/test/java/org/apache/kylin/rest/controller/StreamingJobControllerTest.java
+++ b/src/data-loading-server/src/test/java/org/apache/kylin/rest/controller/StreamingJobControllerTest.java
@@ -26,6 +26,7 @@ import java.util.HashMap;
import org.apache.commons.lang.StringUtils;
import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.KylinConfigBase;
import org.apache.kylin.common.util.JsonUtil;
import org.apache.kylin.job.execution.JobTypeEnum;
import org.apache.kylin.metadata.model.SegmentRange;
@@ -102,7 +103,7 @@ public class StreamingJobControllerTest extends NLocalFileMetadataTestCase {
@Before
public void setupResource() {
- System.setProperty("HADOOP_USER_NAME", "root");
+ KylinConfigBase.setSystemProperty("HADOOP_USER_NAME", "root");
createTestMetadata();
}
diff --git a/src/datasource-service/src/test/java/org/apache/kylin/rest/service/StreamingTableServiceTest.java b/src/datasource-service/src/test/java/org/apache/kylin/rest/service/StreamingTableServiceTest.java
index 977c7020da..d991183adc 100644
--- a/src/datasource-service/src/test/java/org/apache/kylin/rest/service/StreamingTableServiceTest.java
+++ b/src/datasource-service/src/test/java/org/apache/kylin/rest/service/StreamingTableServiceTest.java
@@ -22,6 +22,7 @@ import java.util.Locale;
import org.apache.commons.lang3.StringUtils;
import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.KylinConfigBase;
import org.apache.kylin.common.exception.KylinException;
import org.apache.kylin.common.msg.MsgPicker;
import org.apache.kylin.common.scheduler.EventBusFactory;
@@ -94,7 +95,7 @@ public class StreamingTableServiceTest extends NLocalFileMetadataTestCase {
projectManager.forceDropProject("broken_test");
projectManager.forceDropProject("bad_query_test");
- System.setProperty("HADOOP_USER_NAME", "root");
+ KylinConfigBase.setSystemProperty("HADOOP_USER_NAME", "root");
ReflectionTestUtils.setField(aclEvaluate, "aclUtil", aclUtil);
ReflectionTestUtils.setField(streamingTableService, "aclEvaluate", aclEvaluate);
diff --git a/src/metadata-server/src/test/java/org/apache/kylin/rest/controller/KafkaControllerTest.java b/src/metadata-server/src/test/java/org/apache/kylin/rest/controller/KafkaControllerTest.java
index 18aa515840..2b29d266fd 100644
--- a/src/metadata-server/src/test/java/org/apache/kylin/rest/controller/KafkaControllerTest.java
+++ b/src/metadata-server/src/test/java/org/apache/kylin/rest/controller/KafkaControllerTest.java
@@ -23,6 +23,7 @@ import java.nio.ByteBuffer;
import java.util.Arrays;
import java.util.HashMap;
+import org.apache.kylin.common.KylinConfigBase;
import org.apache.kylin.common.util.JsonUtil;
import org.apache.kylin.rest.constant.Constant;
import org.apache.kylin.rest.util.AclEvaluate;
@@ -84,7 +85,7 @@ public class KafkaControllerTest extends NLocalFileMetadataTestCase {
@Before
public void setupResource() {
- System.setProperty("HADOOP_USER_NAME", "root");
+ KylinConfigBase.setSystemProperty("HADOOP_USER_NAME", "root");
createTestMetadata();
}
diff --git a/src/metadata-server/src/test/java/org/apache/kylin/rest/controller/StreamingTableControllerTest.java b/src/metadata-server/src/test/java/org/apache/kylin/rest/controller/StreamingTableControllerTest.java
index ae8bb2f94a..2e0f000715 100644
--- a/src/metadata-server/src/test/java/org/apache/kylin/rest/controller/StreamingTableControllerTest.java
+++ b/src/metadata-server/src/test/java/org/apache/kylin/rest/controller/StreamingTableControllerTest.java
@@ -21,6 +21,7 @@ package org.apache.kylin.rest.controller;
import static org.apache.kylin.common.constant.HttpConstant.HTTP_VND_APACHE_KYLIN_JSON;
import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.KylinConfigBase;
import org.apache.kylin.common.util.JsonUtil;
import org.apache.kylin.metadata.model.TableDesc;
import org.apache.kylin.rest.constant.Constant;
@@ -90,7 +91,7 @@ public class StreamingTableControllerTest extends NLocalFileMetadataTestCase {
@Before
public void setupResource() {
- System.setProperty("HADOOP_USER_NAME", "root");
+ KylinConfigBase.setSystemProperty("HADOOP_USER_NAME", "root");
createTestMetadata();
}
diff --git a/src/server-base/src/test/java/org/apache/kylin/rest/controller/open/OpenStreamingJobControllerTest.java b/src/server-base/src/test/java/org/apache/kylin/rest/controller/open/OpenStreamingJobControllerTest.java
index 9198ff47f3..de40ca662c 100644
--- a/src/server-base/src/test/java/org/apache/kylin/rest/controller/open/OpenStreamingJobControllerTest.java
+++ b/src/server-base/src/test/java/org/apache/kylin/rest/controller/open/OpenStreamingJobControllerTest.java
@@ -24,6 +24,7 @@ import static org.apache.kylin.common.exception.code.ErrorCodeServer.REQUEST_PAR
import java.util.Collections;
import org.apache.commons.lang.StringUtils;
+import org.apache.kylin.common.KylinConfigBase;
import org.apache.kylin.common.util.JsonUtil;
import org.apache.kylin.common.util.NLocalFileMetadataTestCase;
import org.apache.kylin.job.execution.JobTypeEnum;
@@ -80,7 +81,7 @@ public class OpenStreamingJobControllerTest extends NLocalFileMetadataTestCase {
@Before
public void setupResource() {
- System.setProperty("HADOOP_USER_NAME", "root");
+ KylinConfigBase.setSystemProperty("HADOOP_USER_NAME", "root");
createTestMetadata();
}
diff --git a/src/source-hive/src/test/java/org/apache/kylin/source/hive/HiveCmdBuilderTest.java b/src/source-hive/src/test/java/org/apache/kylin/source/hive/HiveCmdBuilderTest.java
index dd0853a2ff..b98af52dd8 100644
--- a/src/source-hive/src/test/java/org/apache/kylin/source/hive/HiveCmdBuilderTest.java
+++ b/src/source-hive/src/test/java/org/apache/kylin/source/hive/HiveCmdBuilderTest.java
@@ -45,6 +45,7 @@ import java.nio.charset.Charset;
import org.apache.commons.io.FileUtils;
import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.KylinConfigBase;
import org.apache.kylin.common.util.CliCommandExecutor;
import org.apache.kylin.common.util.ShellException;
import org.junit.Before;
@@ -54,15 +55,15 @@ public class HiveCmdBuilderTest {
@Before
public void setup() {
- System.setProperty("log4j.configuration", "file:../build/conf/kylin-tools-log4j.properties");
- System.setProperty("KYLIN_CONF", "../examples/test_case_data/localmeta");
+ KylinConfigBase.setSystemProperty("log4j.configuration", "file:../build/conf/kylin-tools-log4j.properties");
+ KylinConfigBase.setSystemProperty("KYLIN_CONF", "../examples/test_case_data/localmeta");
}
@Test
public void testBeeline() throws IOException, ShellException {
String lineSeparator = java.security.AccessController
.doPrivileged(new sun.security.action.GetPropertyAction("line.separator"));
- System.setProperty("kylin.source.hive.beeline-params", "-u jdbc_url");
+ KylinConfigBase.setSystemProperty("kylin.source.hive.beeline-params", "-u jdbc_url");
HiveCmdBuilder hiveCmdBuilder = new HiveCmdBuilder(KylinConfig.getInstanceFromEnv());
hiveCmdBuilder.addStatement("USE default;");
diff --git a/src/spark-project/engine-spark/src/test/java/org/apache/kylin/engine/spark/utils/HiveTransactionTableHelperTest.java b/src/spark-project/engine-spark/src/test/java/org/apache/kylin/engine/spark/utils/HiveTransactionTableHelperTest.java
index f190d34e08..e0693e8b4d 100644
--- a/src/spark-project/engine-spark/src/test/java/org/apache/kylin/engine/spark/utils/HiveTransactionTableHelperTest.java
+++ b/src/spark-project/engine-spark/src/test/java/org/apache/kylin/engine/spark/utils/HiveTransactionTableHelperTest.java
@@ -43,6 +43,7 @@ import java.util.UUID;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
+import org.apache.kylin.common.KylinConfigBase;
import org.apache.kylin.common.util.HadoopUtil;
import org.apache.kylin.metadata.model.ColumnDesc;
import org.apache.kylin.metadata.model.PartitionDesc;
@@ -96,8 +97,8 @@ public class HiveTransactionTableHelperTest extends NLocalWithSparkSessionTest {
@Test
public void testDoGetQueryHiveTemporaryTableSql() {
// Init needed variable parameters
- System.setProperty("kylin.source.provider.9", "org.apache.kylin.engine.spark.source.NSparkDataSource");
- System.setProperty("kylin.build.resource.read-transactional-table-enabled", "true");
+ KylinConfigBase.setSystemProperty("kylin.source.provider.9", "org.apache.kylin.engine.spark.source.NSparkDataSource");
+ KylinConfigBase.setSystemProperty("kylin.build.resource.read-transactional-table-enabled", "true");
KylinBuildEnv kylinBuildEnv = KylinBuildEnv.getOrCreate(getTestConfig());
NTableMetadataManager tableMgr = NTableMetadataManager.getInstance(getTestConfig(), "tdh");
TableDesc fact = tableMgr.getTableDesc("TDH_TEST.LINEORDER_PARTITION");
diff --git a/src/streaming-service/src/test/java/org/apache/kylin/rest/service/StreamingJobServiceTest.java b/src/streaming-service/src/test/java/org/apache/kylin/rest/service/StreamingJobServiceTest.java
index 000358c653..9f3c76ca1f 100644
--- a/src/streaming-service/src/test/java/org/apache/kylin/rest/service/StreamingJobServiceTest.java
+++ b/src/streaming-service/src/test/java/org/apache/kylin/rest/service/StreamingJobServiceTest.java
@@ -41,6 +41,7 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.KylinConfigBase;
import org.apache.kylin.common.exception.KylinException;
import org.apache.kylin.common.msg.MsgPicker;
import org.apache.kylin.common.scheduler.EventBusFactory;
@@ -121,7 +122,7 @@ public class StreamingJobServiceTest extends CSVSourceTestCase {
@Before
public void setup() {
super.setup();
- System.setProperty("HADOOP_USER_NAME", "root");
+ KylinConfigBase.setSystemProperty("HADOOP_USER_NAME", "root");
ReflectionTestUtils.setField(aclEvaluate, "aclUtil", aclUtil);
ReflectionTestUtils.setField(streamingJobService, "aclEvaluate", aclEvaluate);