aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
-rw-r--r--src/main/java/com/google/devtools/build/lib/Constants.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/BazelDiffAwarenessModule.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/LocalDiffAwareness.java15
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;
}