aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/DiffAwarenessManager.java
diff options
context:
space:
mode:
authorGravatar Damien Martin-Guillerez <dmarting@google.com>2016-10-13 19:18:13 +0000
committerGravatar Yue Gan <yueg@google.com>2016-10-14 09:32:58 +0000
commit2c91836c8d4232f26a5b764ea91b7cdb47240b7e (patch)
tree0b1d6be682f727627d1b3cd305d351eed4b854a0 /src/main/java/com/google/devtools/build/lib/skyframe/DiffAwarenessManager.java
parent0c7a42a09d85ddffd9b860bcb31e4c43a00632c1 (diff)
*** Reason for rollback *** Causes our integration tests on Darwin to time out *** Original change description *** Make --watchfs a common command option. Adding an options parameter to DiffAwareness#getCurrentView seems like the simplest way to achieve that. Alternatives considered: 1. Making the diff awareness modules stateful. However, I did not want to do so as I've also been working on improving the module API to reduce state, or at least to have a proper lifecycle management for any necessary state. 2. Making the watchFs flag a constructor parameter. However, that would also invalidate any implement... *** -- MOS_MIGRATED_REVID=136070807
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/DiffAwarenessManager.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/DiffAwarenessManager.java16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/DiffAwarenessManager.java b/src/main/java/com/google/devtools/build/lib/skyframe/DiffAwarenessManager.java
index 76f00a7fb4..02870970d4 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/DiffAwarenessManager.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/DiffAwarenessManager.java
@@ -13,16 +13,17 @@
// limitations under the License.
package com.google.devtools.build.lib.skyframe;
-import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Maps;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.skyframe.DiffAwareness.View;
import com.google.devtools.build.lib.vfs.ModifiedFileSet;
import com.google.devtools.build.lib.vfs.Path;
-import com.google.devtools.common.options.OptionsClassProvider;
+
import java.util.Map;
import java.util.logging.Logger;
+
import javax.annotation.Nullable;
/**
@@ -33,13 +34,11 @@ public final class DiffAwarenessManager {
private static final Logger LOG = Logger.getLogger(DiffAwarenessManager.class.getName());
- // The manager attempts to instantiate these in the order in which they are passed to the
- // constructor; this is critical in the case where a factory always succeeds.
- private final ImmutableList<? extends DiffAwareness.Factory> diffAwarenessFactories;
+ private final ImmutableSet<? extends DiffAwareness.Factory> diffAwarenessFactories;
private Map<Path, DiffAwarenessState> currentDiffAwarenessStates = Maps.newHashMap();
public DiffAwarenessManager(Iterable<? extends DiffAwareness.Factory> diffAwarenessFactories) {
- this.diffAwarenessFactories = ImmutableList.copyOf(diffAwarenessFactories);
+ this.diffAwarenessFactories = ImmutableSet.copyOf(diffAwarenessFactories);
}
private static class DiffAwarenessState {
@@ -80,8 +79,7 @@ public final class DiffAwarenessManager {
* Gets the set of changed files since the last call with this path entry, or
* {@code ModifiedFileSet.EVERYTHING_MODIFIED} if this is the first such call.
*/
- public ProcessableModifiedFileSet getDiff(
- EventHandler eventHandler, Path pathEntry, OptionsClassProvider options) {
+ public ProcessableModifiedFileSet getDiff(EventHandler eventHandler, Path pathEntry) {
DiffAwarenessState diffAwarenessState = maybeGetDiffAwarenessState(pathEntry);
if (diffAwarenessState == null) {
return BrokenProcessableModifiedFileSet.INSTANCE;
@@ -89,7 +87,7 @@ public final class DiffAwarenessManager {
DiffAwareness diffAwareness = diffAwarenessState.diffAwareness;
View newView;
try {
- newView = diffAwareness.getCurrentView(options);
+ newView = diffAwareness.getCurrentView();
} catch (BrokenDiffAwarenessException e) {
handleBrokenDiffAwareness(eventHandler, pathEntry, e);
return BrokenProcessableModifiedFileSet.INSTANCE;