You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2019/07/08 02:35:27 UTC
[incubator-iotdb] branch master updated: add IOTDB_HOME prefix to
dir (#220)
This is an automated email from the ASF dual-hosted git repository.
qiaojialin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 0fbda87 add IOTDB_HOME prefix to dir (#220)
0fbda87 is described below
commit 0fbda875a2096a068989c95cfbc45f96b31f087f
Author: Jialin Qiao <qj...@mails.tsinghua.edu.cn>
AuthorDate: Mon Jul 8 10:35:23 2019 +0800
add IOTDB_HOME prefix to dir (#220)
* add IOTDB_HOME prefix to dir
---
.../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 39 ++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java b/iotdb/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
index 82dab68..e7543b0 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
@@ -18,7 +18,11 @@
*/
package org.apache.iotdb.db.conf;
+import java.io.File;
import java.time.ZoneId;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
import org.apache.iotdb.db.metadata.MManager;
import org.apache.iotdb.db.service.TSServiceImpl;
import org.slf4j.Logger;
@@ -185,9 +189,44 @@ public class IoTDBConfig {
}
void updatePath() {
+ formulateFolders();
confirmMultiDirStrategy();
}
+
+ /**
+ * if the folders are relative paths, add IOTDB_HOME as the path prefix
+ */
+ private void formulateFolders() {
+ List<String> dirs = new ArrayList<>();
+ dirs.add(baseDir);
+ dirs.add(systemDir);
+ dirs.add(walFolder);
+ dirs.add(indexFileDir);
+ dirs.addAll(Arrays.asList(dataDirs));
+
+ String homeDir = System.getProperty(IoTDBConstant.IOTDB_HOME, null);
+ for (int i = 0; i < dirs.size(); i++) {
+ String dir = dirs.get(i);
+ if (!new File(dir).isAbsolute() && homeDir != null && homeDir.length() > 0) {
+ if (!homeDir.endsWith(File.separator)) {
+ dir = homeDir + File.separatorChar + dir;
+ } else {
+ dir = homeDir + dir;
+ }
+ dirs.set(i, dir);
+ }
+ }
+ baseDir = dirs.get(0);
+ systemDir = dirs.get(1);
+ walFolder = dirs.get(2);
+ indexFileDir = dirs.get(3);
+ for (int i = 0; i < dataDirs.length; i++) {
+ dataDirs[i] = dirs.get(i + 4);
+ }
+ }
+
+
private void confirmMultiDirStrategy() {
if (getMultiDirStrategyClassName() == null) {
multiDirStrategyClassName = DEFAULT_MULTI_DIR_STRATEGY;