aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java
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/bazel/BazelRepositoryModule.java
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/bazel/BazelRepositoryModule.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java b/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java
index 648874f23c..b065806674 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java
@@ -66,6 +66,7 @@ import com.google.devtools.build.lib.runtime.Command;
import com.google.devtools.build.lib.runtime.CommandEnvironment;
import com.google.devtools.build.lib.runtime.ServerBuilder;
import com.google.devtools.build.lib.runtime.WorkspaceBuilder;
+import com.google.devtools.build.lib.skyframe.MutableSupplier;
import com.google.devtools.build.lib.skyframe.PrecomputedValue;
import com.google.devtools.build.lib.skyframe.PrecomputedValue.Injected;
import com.google.devtools.build.lib.skyframe.SkyFunctions;
@@ -79,6 +80,7 @@ import com.google.devtools.build.skyframe.SkyValue;
import com.google.devtools.common.options.OptionsBase;
import com.google.devtools.common.options.OptionsProvider;
import java.lang.reflect.InvocationTargetException;
+import java.util.Map;
import java.util.Map.Entry;
import java.util.concurrent.atomic.AtomicBoolean;
import javax.annotation.Nullable;
@@ -92,10 +94,11 @@ public class BazelRepositoryModule extends BlazeModule {
private final ImmutableMap<String, RepositoryFunction> repositoryHandlers;
private final AtomicBoolean isFetch = new AtomicBoolean(false);
private final SkylarkRepositoryFunction skylarkRepositoryFunction;
- private final RepositoryDelegatorFunction delegator;
private final RepositoryCache repositoryCache = new RepositoryCache();
private final HttpDownloader httpDownloader = new HttpDownloader(repositoryCache);
private final MavenDownloader mavenDownloader = new MavenDownloader(repositoryCache);
+ private final MutableSupplier<Map<String, String>> clientEnvironmentSupplier =
+ new MutableSupplier<>();
private ImmutableMap<RepositoryName, PathFragment> overrides = ImmutableMap.of();
private FileSystem filesystem;
@@ -116,8 +119,6 @@ public class BazelRepositoryModule extends BlazeModule {
.put(AndroidNdkRepositoryRule.NAME, new AndroidNdkRepositoryFunction())
.put(MavenServerRule.NAME, new MavenServerRepositoryFunction())
.build();
- this.delegator = new RepositoryDelegatorFunction(
- repositoryHandlers, skylarkRepositoryFunction, isFetch);
}
/**
@@ -160,7 +161,14 @@ public class BazelRepositoryModule extends BlazeModule {
builder.addCustomDirtinessChecker(REPOSITORY_VALUE_CHECKER);
// Create the repository function everything flows through.
builder.addSkyFunction(SkyFunctions.REPOSITORY, new RepositoryLoaderFunction());
- builder.addSkyFunction(SkyFunctions.REPOSITORY_DIRECTORY, delegator);
+ builder.addSkyFunction(
+ SkyFunctions.REPOSITORY_DIRECTORY,
+ new RepositoryDelegatorFunction(
+ repositoryHandlers,
+ skylarkRepositoryFunction,
+ isFetch,
+ clientEnvironmentSupplier,
+ directories));
builder.addSkyFunction(MavenServerFunction.NAME, new MavenServerFunction());
filesystem = directories.getFileSystem();
}
@@ -184,7 +192,7 @@ public class BazelRepositoryModule extends BlazeModule {
@Override
public void beforeCommand(CommandEnvironment env) {
- delegator.setClientEnvironment(env.getActionClientEnv());
+ clientEnvironmentSupplier.set(env.getActionClientEnv());
PackageCacheOptions pkgOptions = env.getOptions().getOptions(PackageCacheOptions.class);
isFetch.set(pkgOptions != null && pkgOptions.fetch);