diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
3 files changed, 14 insertions, 6 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/Constants.java b/src/main/java/com/google/devtools/build/lib/Constants.java index d11a075c26..7787f47002 100644 --- a/src/main/java/com/google/devtools/build/lib/Constants.java +++ b/src/main/java/com/google/devtools/build/lib/Constants.java @@ -35,8 +35,6 @@ public class Constants { public static final String NATIVE_DEPS_LIB_SUFFIX = "_nativedeps"; - public static final ImmutableList<String> WATCHFS_BLACKLIST = ImmutableList.of(); - public static final String PRELUDE_FILE_DEPOT_RELATIVE_PATH = "tools/build_rules/prelude_bazel"; /** diff --git a/src/main/java/com/google/devtools/build/lib/bazel/BazelDiffAwarenessModule.java b/src/main/java/com/google/devtools/build/lib/bazel/BazelDiffAwarenessModule.java index 1dad1f5d0c..de58caea13 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/BazelDiffAwarenessModule.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/BazelDiffAwarenessModule.java @@ -22,12 +22,11 @@ import com.google.devtools.build.lib.skyframe.LocalDiffAwareness; * Provides the {@link DiffAwareness} implementation that uses the Java watch service. */ public class BazelDiffAwarenessModule extends BlazeModule { - @Override public Iterable<DiffAwareness.Factory> getDiffAwarenessFactories(boolean watchFS) { ImmutableList.Builder<DiffAwareness.Factory> builder = ImmutableList.builder(); if (watchFS) { - builder.add(new LocalDiffAwareness.Factory()); + builder.add(new LocalDiffAwareness.Factory(ImmutableList.<String>of())); } return builder.build(); } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/LocalDiffAwareness.java b/src/main/java/com/google/devtools/build/lib/skyframe/LocalDiffAwareness.java index dba00768ce..8d8c8dbde2 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/LocalDiffAwareness.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/LocalDiffAwareness.java @@ -17,9 +17,9 @@ package com.google.devtools.build.lib.skyframe; import com.google.common.base.Function; import com.google.common.base.Preconditions; import com.google.common.collect.HashBiMap; +import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; -import com.google.devtools.build.lib.Constants; import com.google.devtools.build.lib.vfs.ModifiedFileSet; import com.google.devtools.build.lib.vfs.PathFragment; @@ -49,6 +49,17 @@ public class LocalDiffAwareness implements DiffAwareness { /** Factory for creating {@link LocalDiffAwareness} instances. */ public static class Factory implements DiffAwareness.Factory { + private final ImmutableList<String> prefixBlacklist; + + /** + * Creates a new factory; the file system watcher may not work on all file systems, particularly + * for network file systems. The prefix blacklist can be used to blacklist known paths that + * point to network file systems. + */ + public Factory(ImmutableList<String> prefixBlacklist) { + this.prefixBlacklist = prefixBlacklist; + } + @Override public DiffAwareness maybeCreate(com.google.devtools.build.lib.vfs.Path pathEntry) { com.google.devtools.build.lib.vfs.Path resolvedPathEntry; @@ -60,7 +71,7 @@ public class LocalDiffAwareness implements DiffAwareness { PathFragment resolvedPathEntryFragment = resolvedPathEntry.asFragment(); // There's no good way to automatically detect network file systems. We rely on a blacklist // for now (and maybe add a command-line option in the future?). - for (String prefix : Constants.WATCHFS_BLACKLIST) { + for (String prefix : prefixBlacklist) { if (resolvedPathEntryFragment.startsWith(new PathFragment(prefix))) { return null; } |