You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2018/03/11 06:28:11 UTC
[kylin] 02/04: KYLIN-3271 Optimize sub-path check of ResourceTool
This is an automated email from the ASF dual-hosted git repository.
liyang pushed a commit to branch sync
in repository https://gitbox.apache.org/repos/asf/kylin.git
commit 24d2d6590d1e31edb5f5b7da11c51c477f9d2dcf
Author: nichunen <ch...@kyligence.io>
AuthorDate: Fri Mar 2 17:29:12 2018 +0800
KYLIN-3271 Optimize sub-path check of ResourceTool
---
.../apache/kylin/common/persistence/ResourceTool.java | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/core-common/src/main/java/org/apache/kylin/common/persistence/ResourceTool.java b/core-common/src/main/java/org/apache/kylin/common/persistence/ResourceTool.java
index 6c6189d..f270743 100644
--- a/core-common/src/main/java/org/apache/kylin/common/persistence/ResourceTool.java
+++ b/core-common/src/main/java/org/apache/kylin/common/persistence/ResourceTool.java
@@ -25,6 +25,7 @@ import java.io.InputStreamReader;
import java.util.List;
import java.util.NavigableSet;
import java.util.Set;
+import java.util.TreeSet;
import org.apache.commons.io.IOUtils;
import org.apache.kylin.common.KylinConfig;
@@ -32,16 +33,22 @@ import org.apache.kylin.common.util.StringUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
public class ResourceTool {
private static String[] includes = null;
private static String[] excludes = null;
+ private static final TreeSet<String> pathsSkipChildrenCheck = new TreeSet<>();
+
private static final Logger logger = LoggerFactory.getLogger(ResourceTool.class);
private static final Set<String> IMMUTABLE_PREFIX = Sets.newHashSet("/UUID");
+ private static final List<String> SKIP_CHILDREN_CHECK_RESOURCE_ROOT = Lists
+ .newArrayList(ResourceStore.EXECUTE_RESOURCE_ROOT, ResourceStore.EXECUTE_OUTPUT_RESOURCE_ROOT);
+
public static void main(String[] args) throws IOException {
args = StringUtil.filterSystemArgs(args);
@@ -166,6 +173,9 @@ public class ResourceTool {
logger.info("Copy from {} to {}", src, dst);
+ for (String resourceRoot : SKIP_CHILDREN_CHECK_RESOURCE_ROOT) {
+ pathsSkipChildrenCheck.addAll(src.listResourcesRecursively(resourceRoot));
+ }
copyR(src, dst, path, copyImmutableResource);
}
@@ -203,7 +213,11 @@ public class ResourceTool {
return;
}
- NavigableSet<String> children = src.listResources(path);
+ NavigableSet<String> children = null;
+
+ if (!pathsSkipChildrenCheck.contains(path)) {
+ children = src.listResources(path);
+ }
if (children == null) {
// case of resource (not a folder)
--
To stop receiving notification emails like this one, please contact
liyang@apache.org.