Move ownership of SkyframeBuildView to SkyframeExecutor.
Also move ownership of ArtifactFactory to SkyframeBuildView; simplify the
code.
--
MOS_MIGRATED_REVID=103722228
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
index 92290ac..eb8ec0f 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
@@ -220,8 +220,6 @@
private final ConfiguredRuleClassProvider ruleClassProvider;
- private final ArtifactFactory artifactFactory;
-
/**
* A factory class to create the coverage report action. May be null.
*/
@@ -266,23 +264,9 @@
this.packageManager = skyframeExecutor.getPackageManager();
this.binTools = binTools;
this.coverageReportActionFactory = coverageReportActionFactory;
- this.artifactFactory = new ArtifactFactory(directories.getExecRoot());
this.ruleClassProvider = ruleClassProvider;
this.skyframeExecutor = Preconditions.checkNotNull(skyframeExecutor);
- this.skyframeBuildView =
- new SkyframeBuildView(
- new ConfiguredTargetFactory(ruleClassProvider),
- artifactFactory,
- skyframeExecutor,
- new Runnable() {
- @Override
- public void run() {
- clear();
- }
- },
- binTools,
- ruleClassProvider);
- skyframeExecutor.setSkyframeBuildView(skyframeBuildView);
+ this.skyframeBuildView = skyframeExecutor.getSkyframeBuildView();
}
/** Returns the action graph. */
@@ -312,16 +296,8 @@
skyframeBuildView.setTopLevelHostConfiguration(configurations.getHostConfiguration());
}
- /**
- * Clear the graphs of ConfiguredTargets and Artifacts.
- */
- @VisibleForTesting
- public void clear() {
- artifactFactory.clear();
- }
-
public ArtifactFactory getArtifactFactory() {
- return artifactFactory;
+ return skyframeBuildView.getArtifactFactory();
}
@VisibleForTesting
@@ -627,7 +603,6 @@
skyframeExecutor.dropConfiguredTargets();
skyframeCacheWasInvalidated = true;
- clear();
}
skyframeAnalysisWasDiscarded = false;
this.configurations = configurations;
@@ -741,7 +716,7 @@
actionsWrapper = coverageReportActionFactory.createCoverageReportActionsWrapper(
allTargetsToTest,
baselineCoverageArtifacts,
- artifactFactory,
+ getArtifactFactory(),
CoverageReportValue.ARTIFACT_OWNER);
if (actionsWrapper != null) {
ImmutableList <Action> actions = actionsWrapper.getActions();
@@ -952,7 +927,7 @@
realPackageRoots.put(entry.getKey(), root);
}
// Source Artifact roots:
- artifactFactory.setPackageRoots(realPackageRoots);
+ getArtifactFactory().setPackageRoots(realPackageRoots);
// Derived Artifact roots:
ImmutableList.Builder<Root> roots = ImmutableList.builder();
@@ -965,7 +940,7 @@
roots.addAll(cfg.getRoots());
}
- artifactFactory.setDerivedArtifactRoots(roots.build());
+ getArtifactFactory().setDerivedArtifactRoots(roots.build());
}
/**
@@ -995,7 +970,7 @@
BuildConfigurationCollection configurations) throws InterruptedException {
BuildConfiguration config = target.getConfiguration();
CachingAnalysisEnvironment analysisEnvironment =
- new CachingAnalysisEnvironment(artifactFactory,
+ new CachingAnalysisEnvironment(getArtifactFactory(),
new ConfiguredTargetKey(target.getLabel(), config),
/*isSystemEnv=*/false, config.extendedSanityChecks(), eventHandler,
/*skyframeEnv=*/null, config.isActionsEnabled(), binTools);
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java b/src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java
index bef594b..4c885a3 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java
@@ -103,7 +103,7 @@
this.errorEventListener = errorEventListener;
this.skyframeEnv = env;
this.allowRegisteringActions = allowRegisteringActions;
- this.binTools = binTools;
+ this.binTools = Preconditions.checkNotNull(binTools);
middlemanFactory = new MiddlemanFactory(artifactFactory, this);
artifacts = new HashMap<>();
}