diff options
author | 2016-10-19 14:36:44 +0000 | |
---|---|---|
committer | 2016-10-19 15:02:06 +0000 | |
commit | a87d202652c822796630aaf2bc8925183c8db883 (patch) | |
tree | 332599310d457bd7ac7dcc9f402a5f4ed62a3f96 /src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java | |
parent | 0c06a666ba8b3e5f3582c853185cc173fe4c79bf (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.java | 21 |
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)); } } |