aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java
diff options
context:
space:
mode:
authorGravatar Jingwen Chen <jingwen@google.com>2016-10-19 14:36:44 +0000
committerGravatar Philipp Wollermann <philwo@google.com>2016-10-19 15:02:06 +0000
commita87d202652c822796630aaf2bc8925183c8db883 (patch)
tree332599310d457bd7ac7dcc9f402a5f4ed62a3f96 /src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java
parent0c06a666ba8b3e5f3582c853185cc173fe4c79bf (diff)
Made HttpDownloader download calls non-static.
To set and use a RepositoryCache instance in HttpDownloader while parsing the command line options, we can pass an AtomicReference<HttpDownloader> instance from BazelRepositoryModule to the HttpArchiveFunctions. However, we'll need to change HttpDownloader download() calls to be non-static in order to initialize an instance of HttpDownloader in BazelRepositoryModule. Remaining TODOs: - RepositoryCache implementation and unit testing - RepositoryCache lockfiles - RepositoryCache integration testing GITHUB: #1752 -- MOS_MIGRATED_REVID=136593517
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.java21
1 files changed, 12 insertions, 9 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 282508b9e5..da9b9b9b25 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
@@ -31,6 +31,7 @@ import com.google.devtools.build.lib.bazel.repository.NewGitRepositoryFunction;
import com.google.devtools.build.lib.bazel.repository.NewHttpArchiveFunction;
import com.google.devtools.build.lib.bazel.repository.RepositoryOptions;
import com.google.devtools.build.lib.bazel.repository.cache.RepositoryCache;
+import com.google.devtools.build.lib.bazel.repository.downloader.HttpDownloader;
import com.google.devtools.build.lib.bazel.repository.skylark.SkylarkRepositoryFunction;
import com.google.devtools.build.lib.bazel.repository.skylark.SkylarkRepositoryModule;
import com.google.devtools.build.lib.bazel.rules.android.AndroidNdkRepositoryFunction;
@@ -81,21 +82,22 @@ public class BazelRepositoryModule extends BlazeModule {
// A map of repository handlers that can be looked up by rule class name.
private final ImmutableMap<String, RepositoryFunction> repositoryHandlers;
private final AtomicBoolean isFetch = new AtomicBoolean(false);
- private final SkylarkRepositoryFunction skylarkRepositoryFunction =
- new SkylarkRepositoryFunction();
+ private final SkylarkRepositoryFunction skylarkRepositoryFunction;
private final RepositoryDelegatorFunction delegator;
- private final AtomicReference<RepositoryCache> repositoryCache = new AtomicReference<>();
+ private final AtomicReference<HttpDownloader> httpDownloader =
+ new AtomicReference<>(new HttpDownloader());
public BazelRepositoryModule() {
+ this.skylarkRepositoryFunction = new SkylarkRepositoryFunction(httpDownloader);
this.repositoryHandlers =
ImmutableMap.<String, RepositoryFunction>builder()
.put(LocalRepositoryRule.NAME, new LocalRepositoryFunction())
- .put(HttpArchiveRule.NAME, new HttpArchiveFunction(repositoryCache))
+ .put(HttpArchiveRule.NAME, new HttpArchiveFunction(httpDownloader))
.put(GitRepositoryRule.NAME, new GitRepositoryFunction())
- .put(HttpJarRule.NAME, new HttpJarFunction())
- .put(HttpFileRule.NAME, new HttpFileFunction())
- .put(MavenJarRule.NAME, new MavenJarFunction())
- .put(NewHttpArchiveRule.NAME, new NewHttpArchiveFunction())
+ .put(HttpJarRule.NAME, new HttpJarFunction(httpDownloader))
+ .put(HttpFileRule.NAME, new HttpFileFunction(httpDownloader))
+ .put(MavenJarRule.NAME, new MavenJarFunction(httpDownloader))
+ .put(NewHttpArchiveRule.NAME, new NewHttpArchiveFunction(httpDownloader))
.put(NewGitRepositoryRule.NAME, new NewGitRepositoryFunction())
.put(NewLocalRepositoryRule.NAME, new NewLocalRepositoryFunction())
.put(AndroidSdkRepositoryRule.NAME, new AndroidSdkRepositoryFunction())
@@ -171,7 +173,8 @@ public class BazelRepositoryModule extends BlazeModule {
RepositoryOptions repoOptions = optionsProvider.getOptions(RepositoryOptions.class);
if (repoOptions != null && repoOptions.experimentalRepositoryCache != null) {
- repositoryCache.set(new RepositoryCache(repoOptions.experimentalRepositoryCache));
+ httpDownloader.get().setRepositoryCache(
+ new RepositoryCache(repoOptions.experimentalRepositoryCache));
}
}