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

cdutz pushed a commit to branch feature/classpath-config
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git

commit 6bd28d4c2e0125a29174c65afd230f812e8f6604
Author: Christofer Dutz <[email protected]>
AuthorDate: Sun Aug 30 19:48:30 2020 +0200

    - Made it possible to load the config from the classpath
---
 pom.xml                                            |  5 +++
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  | 37 ++++++++++++++++++----
 2 files changed, 35 insertions(+), 7 deletions(-)

diff --git a/pom.xml b/pom.xml
index 8a97954..77d1255 100644
--- a/pom.xml
+++ b/pom.xml
@@ -256,6 +256,11 @@
                 <version>1.2.17</version>
             </dependency>
             <dependency>
+                <groupId>net.jpountz.lz4</groupId>
+                <artifactId>lz4</artifactId>
+                <version>1.3.0</version>
+            </dependency>
+            <dependency>
                 <groupId>org.eclipse.jetty</groupId>
                 <artifactId>jetty-server</artifactId>
                 <version>${jetty.version}</version>
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java 
b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
index 1ad30bd..8ca1773 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
@@ -19,10 +19,10 @@
 package org.apache.iotdb.db.conf;
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
+import java.net.MalformedURLException;
 import java.net.URL;
 import java.time.ZoneId;
 import java.util.Properties;
@@ -119,12 +119,23 @@ public class IoTDBDescriptor {
    * load an property file and set TsfileDBConfig variables.
    */
   private void loadProps() {
-    String url = getPropsUrl();
-    if (url == null) {
+    URL url;
+    try {
+      String propsUrl = getPropsUrl();
+      if(propsUrl == null) {
+        return;
+      }
+      // If the url doesn't contain a ":" it's provided as a normal path.
+      // So we need to add the prefix "file:" to make it a real URL.
+      if(!propsUrl.contains(":")) {
+        propsUrl = "file:" + propsUrl;
+      }
+      url = new URL(propsUrl);
+    } catch (MalformedURLException e) {
       return;
     }
 
-    try (InputStream inputStream = new FileInputStream(new File(url))) {
+    try (InputStream inputStream = url.openStream()) {
 
       logger.info("Start to read config file {}", url);
       Properties properties = new Properties();
@@ -660,11 +671,23 @@ public class IoTDBDescriptor {
   }
 
   public void loadHotModifiedProps() throws QueryProcessException {
-    String url = getPropsUrl();
-    if (url == null) {
+    URL url;
+    try {
+      String propsUrl = getPropsUrl();
+      if(propsUrl == null) {
+        return;
+      }
+      // If the url doesn't contain a ":" it's provided as a normal path.
+      // So we need to add the prefix "file:" to make it a real URL.
+      if(!propsUrl.contains(":")) {
+        propsUrl = "file:" + propsUrl;
+      }
+      url = new URL(propsUrl);
+    } catch (MalformedURLException e) {
       return;
     }
-    try (InputStream inputStream = new FileInputStream(new File(url))) {
+
+    try (InputStream inputStream = url.openStream()) {
       logger.info("Start to reload config file {}", url);
       Properties properties = new Properties();
       properties.load(inputStream);

Reply via email to