diff options
author | janakr <janakr@google.com> | 2017-09-22 14:07:15 -0400 |
---|---|---|
committer | John Cater <jcater@google.com> | 2017-09-25 09:38:15 -0400 |
commit | ca6b46dfe901be10214961189867ad3bcbd0a986 (patch) | |
tree | 3eb8569e1b9db6168ef68da1b497b122629d68c2 /src/main/java/com/google/devtools/build/lib/skyframe/packages | |
parent | b6857d5b5f581656f0cb9934a015f69555eb9c20 (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.java | 14 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java | 7 |
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())); |