Browse Source

Fix the compatibility problem of ConfigUtil for Windows environment (#903)

master
Lin.Liang Eric Zhao 5 years ago
parent
commit
326dd4434d
2 changed files with 12 additions and 2 deletions
  1. +11
    -1
      sentinel-core/src/main/java/com/alibaba/csp/sentinel/util/ConfigUtil.java
  2. +1
    -1
      sentinel-core/src/test/java/com/alibaba/csp/sentinel/util/ConfigUtilTest.java

+ 11
- 1
sentinel-core/src/main/java/com/alibaba/csp/sentinel/util/ConfigUtil.java View File

@@ -45,7 +45,7 @@ public final class ConfigUtil {
*/
public static Properties loadProperties(String fileName) {
if (StringUtil.isNotBlank(fileName)) {
if (fileName.startsWith(File.separator)) {
if (absolutePathStart(fileName)) {
return loadPropertiesFromAbsoluteFile(fileName);
} else if (fileName.startsWith(CLASSPATH_FILE_FLAG)) {
return loadPropertiesFromClasspathFile(fileName);
@@ -76,6 +76,16 @@ public final class ConfigUtil {
return properties;
}

private static boolean absolutePathStart(String path) {
File[] files = File.listRoots();
for (File file : files) {
if (path.startsWith(file.getPath())) {
return true;
}
}
return false;
}


private static Properties loadPropertiesFromClasspathFile(String fileName) {
fileName = fileName.substring(CLASSPATH_FILE_FLAG.length()).trim();


+ 1
- 1
sentinel-core/src/test/java/com/alibaba/csp/sentinel/util/ConfigUtilTest.java View File

@@ -49,7 +49,7 @@ public class ConfigUtilTest {
}
BufferedWriter out = new BufferedWriter(new FileWriter(file));
out.write(LOG_OUTPUT_TYPE + "=" + logOutputType);
out.write("\n");
out.write(System.getProperty("line.separator"));
out.write(LOG_DIR + "=" + dir);
out.flush();
out.close();


Loading…
Cancel
Save