aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/packages
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2017-09-22 14:07:15 -0400
committerGravatar John Cater <jcater@google.com>2017-09-25 09:38:15 -0400
commitca6b46dfe901be10214961189867ad3bcbd0a986 (patch)
tree3eb8569e1b9db6168ef68da1b497b122629d68c2 /src/main/java/com/google/devtools/build/lib/skyframe/packages
parentb6857d5b5f581656f0cb9934a015f69555eb9c20 (diff)
Inject BlazeDirectories into RepositoryDelegatorFunction directly, instead of depending on a precomputed value. BlazeDirectories don't change over the lifetime of the Blaze server, and certainly not over the lifetime of a SkyframeExecutor instance, which already had a reference to them.
Step 2. PiperOrigin-RevId: 169711443
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/packages')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java14
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java7
2 files changed, 14 insertions, 7 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java b/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java
index 2a937bb235..fa12d24362 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java
@@ -123,6 +123,7 @@ public abstract class AbstractPackageLoader implements PackageLoader {
/** Abstract base class of a builder for {@link PackageLoader} instances. */
public abstract static class Builder {
protected final Path workspaceDir;
+ protected final BlazeDirectories directories;
protected RuleClassProvider ruleClassProvider = getDefaultRuleClassProvider();
protected Reporter reporter = new Reporter(new EventBus());
protected Map<SkyFunctionName, SkyFunction> extraSkyFunctions = new HashMap<>();
@@ -133,6 +134,12 @@ public abstract class AbstractPackageLoader implements PackageLoader {
protected Builder(Path workspaceDir) {
this.workspaceDir = workspaceDir;
+ // The 'installBase' and 'outputBase' directories won't be meaningfully used by
+ // WorkspaceFileFunction, so we pass in a dummy Path.
+ // TODO(nharmata): Refactor WorkspaceFileFunction to make this a non-issue.
+ Path devNull = workspaceDir.getFileSystem().getPath("/dev/null");
+ directories =
+ new BlazeDirectories(new ServerDirectories(devNull, devNull), workspaceDir, "blaze");
}
public Builder setRuleClassProvider(RuleClassProvider ruleClassProvider) {
@@ -188,13 +195,8 @@ public abstract class AbstractPackageLoader implements PackageLoader {
this.pkgLocatorRef = new AtomicReference<>(pkgLocator);
this.legacyGlobbingThreads = builder.legacyGlobbingThreads;
this.skyframeThreads = builder.skyframeThreads;
+ this.directories = builder.directories;
- // The 'installBase' and 'outputBase' directories won't be meaningfully used by
- // WorkspaceFileFunction, so we pass in a dummy Path.
- // TODO(nharmata): Refactor WorkspaceFileFunction to make this a non-issue.
- Path devNull = workspaceDir.getFileSystem().getPath("/dev/null");
- this.directories =
- new BlazeDirectories(new ServerDirectories(devNull, devNull), workspaceDir, "blaze");
this.externalFilesHelper = new ExternalFilesHelper(
pkgLocatorRef,
ExternalFileAction.DEPEND_ON_EXTERNAL_PKG_FOR_EXTERNAL_REPO_PATHS,
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java b/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java
index fb95707874..159b69bedc 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java
@@ -56,7 +56,12 @@ public class BazelPackageLoader extends AbstractPackageLoader {
SkyFunctions.LOCAL_REPOSITORY_LOOKUP,
new LocalRepositoryLookupFunction(),
SkyFunctions.REPOSITORY_DIRECTORY,
- new RepositoryDelegatorFunction(repositoryHandlers, null, new AtomicBoolean(true)),
+ new RepositoryDelegatorFunction(
+ repositoryHandlers,
+ null,
+ new AtomicBoolean(true),
+ ImmutableMap::of,
+ builder.directories),
SkyFunctions.REPOSITORY,
new RepositoryLoaderFunction()));