diff options
author | Lukacs Berki <lberki@google.com> | 2015-11-25 09:23:14 +0000 |
---|---|---|
committer | Philipp Wollermann <philwo@google.com> | 2015-11-25 10:00:30 +0000 |
commit | d6023e5fb78f7fe6aae3073c77f1fee6ad0a3837 (patch) | |
tree | caf689fc0ed7cd482caea7116c5486946d2b795b /src/main/java/com/google/devtools/build/lib | |
parent | d91aa2e54a1f176dade3baf6d27b496ef2e8cf90 (diff) |
Simplify external repository support by removing FileValue from RepositoryValue and not depending it from repository functions.
--
MOS_MIGRATED_REVID=108685867
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
12 files changed, 47 insertions, 123 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/GitRepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/GitRepositoryFunction.java index 433e355595..bdcb1dd2a6 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/GitRepositoryFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/GitRepositoryFunction.java @@ -19,7 +19,6 @@ import com.google.devtools.build.lib.bazel.rules.workspace.GitRepositoryRule; import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName; import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.rules.repository.RepositoryFunction; -import com.google.devtools.build.lib.skyframe.FileValue; import com.google.devtools.build.lib.skyframe.RepositoryValue; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.Path; @@ -44,10 +43,7 @@ public class GitRepositoryFunction extends RepositoryFunction { } Path outputDirectory = getExternalRepositoryDirectory().getRelative(rule.getName()); - FileValue directoryValue = createDirectory(outputDirectory, env, rule); - if (directoryValue == null) { - return null; - } + createDirectory(outputDirectory, rule); try { HttpDownloadValue value = (HttpDownloadValue) env.getValueOrThrow( @@ -59,10 +55,10 @@ public class GitRepositoryFunction extends RepositoryFunction { throw new RepositoryFunctionException(e, Transience.TRANSIENT); } - return RepositoryValue.create(directoryValue); + return RepositoryValue.create(outputDirectory); } - protected FileValue createDirectory(Path path, Environment env, Rule rule) + protected void createDirectory(Path path, Rule rule) throws RepositoryFunctionException { try { FileSystemUtils.createDirectoryAndParents(path); @@ -70,7 +66,6 @@ public class GitRepositoryFunction extends RepositoryFunction { throw new RepositoryFunctionException(new IOException("Could not create directory for " + rule.getName() + ": " + e.getMessage()), Transience.TRANSIENT); } - return getRepositoryDirectory(path, env); } @Override diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpArchiveFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpArchiveFunction.java index 406673bc58..671ee6d955 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpArchiveFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpArchiveFunction.java @@ -19,7 +19,6 @@ import com.google.devtools.build.lib.bazel.rules.workspace.HttpArchiveRule; import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName; import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.rules.repository.RepositoryFunction; -import com.google.devtools.build.lib.skyframe.FileValue; import com.google.devtools.build.lib.skyframe.RepositoryValue; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.Path; @@ -47,14 +46,13 @@ public class HttpArchiveFunction extends RepositoryFunction { return compute(env, rule); } - protected FileValue createDirectory(Path path, Environment env) + protected void createDirectory(Path path) throws RepositoryFunctionException { try { FileSystemUtils.createDirectoryAndParents(path); } catch (IOException e) { throw new RepositoryFunctionException(e, Transience.TRANSIENT); } - return getRepositoryDirectory(path, env); } protected SkyValue compute(Environment env, Rule rule) @@ -67,11 +65,7 @@ public class HttpArchiveFunction extends RepositoryFunction { // // This would download png.tar.gz to .external-repository/png/png.tar.gz. Path outputDirectory = getExternalRepositoryDirectory().getRelative(rule.getName()); - FileValue directoryValue = createDirectory(outputDirectory, env); - if (directoryValue == null) { - return null; - } - + createDirectory(outputDirectory); try { HttpDownloadValue downloadValue = (HttpDownloadValue) env.getValueOrThrow( HttpDownloadFunction.key(rule, outputDirectory), IOException.class); @@ -88,7 +82,7 @@ public class HttpArchiveFunction extends RepositoryFunction { // Assumes all IO errors transient. throw new RepositoryFunctionException(e, Transience.TRANSIENT); } - return RepositoryValue.create(directoryValue); + return RepositoryValue.create(outputDirectory); } protected SkyKey decompressorValueKey(Rule rule, Path downloadPath, Path outputDirectory) diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/MavenJarFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/MavenJarFunction.java index e6d997aef6..b3f1805c27 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/MavenJarFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/MavenJarFunction.java @@ -29,7 +29,6 @@ import com.google.devtools.build.lib.packages.AggregatingAttributeMapper; import com.google.devtools.build.lib.packages.AttributeMap; import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.rules.repository.RepositoryFunction; -import com.google.devtools.build.lib.skyframe.FileValue; import com.google.devtools.build.lib.skyframe.RepositoryValue; import com.google.devtools.build.lib.syntax.EvalException; import com.google.devtools.build.lib.syntax.Type; @@ -110,12 +109,10 @@ public class MavenJarFunction extends HttpArchiveFunction { SkyValue createOutputTree(MavenDownloader downloader, Environment env) throws RepositoryFunctionException { - FileValue outputDirectoryValue = createDirectory(downloader.getOutputDirectory(), env); - if (outputDirectoryValue == null) { - return null; - } - + Path outputDirectory = downloader.getOutputDirectory(); + createDirectory(outputDirectory); Path repositoryJar; + try { repositoryJar = downloader.download(); } catch (IOException e) { @@ -130,7 +127,7 @@ public class MavenJarFunction extends HttpArchiveFunction { .setTargetKind(MavenJarRule.NAME) .setTargetName(downloader.getName()) .setArchivePath(repositoryJar) - .setRepositoryPath(outputDirectoryValue.realRootedPath().asPath()).build()), + .setRepositoryPath(outputDirectory).build()), IOException.class); if (value == null) { return null; @@ -138,11 +135,7 @@ public class MavenJarFunction extends HttpArchiveFunction { } catch (IOException e) { throw new RepositoryFunctionException(e, Transience.TRANSIENT); } - FileValue repositoryFileValue = getRepositoryDirectory(value.getDirectory(), env); - if (repositoryFileValue == null) { - return null; - } - return RepositoryValue.create(repositoryFileValue); + return RepositoryValue.create(value.getDirectory()); } @Override diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/NewGitRepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/NewGitRepositoryFunction.java index 5431342406..ba659f1ffd 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/NewGitRepositoryFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/NewGitRepositoryFunction.java @@ -18,7 +18,6 @@ import com.google.devtools.build.lib.bazel.rules.workspace.NewGitRepositoryRule; import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName; import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.rules.repository.RepositoryFunction; -import com.google.devtools.build.lib.skyframe.FileValue; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.skyframe.SkyFunctionException; import com.google.devtools.build.skyframe.SkyFunctionException.Transience; @@ -46,11 +45,7 @@ public class NewGitRepositoryFunction extends GitRepositoryFunction { } Path outputDirectory = getExternalRepositoryDirectory().getRelative(rule.getName()); - FileValue directoryValue = createDirectory(outputDirectory, env, rule); - if (directoryValue == null) { - return null; - } - + createDirectory(outputDirectory, rule); try { HttpDownloadValue value = (HttpDownloadValue) env.getValueOrThrow( GitCloneFunction.key(rule, outputDirectory), IOException.class); @@ -62,6 +57,6 @@ public class NewGitRepositoryFunction extends GitRepositoryFunction { } createWorkspaceFile(outputDirectory, rule); - return symlinkBuildFile(rule, getWorkspace(), directoryValue, env); + return symlinkBuildFile(rule, getWorkspace(), outputDirectory, env); } } diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/NewHttpArchiveFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/NewHttpArchiveFunction.java index 1ee640c989..f5fb603109 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/NewHttpArchiveFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/NewHttpArchiveFunction.java @@ -18,7 +18,6 @@ import com.google.devtools.build.lib.bazel.rules.workspace.NewHttpArchiveRule; import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName; import com.google.devtools.build.lib.packages.AggregatingAttributeMapper; import com.google.devtools.build.lib.packages.Rule; -import com.google.devtools.build.lib.skyframe.FileValue; import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.Path; @@ -59,10 +58,6 @@ public class NewHttpArchiveFunction extends HttpArchiveFunction { throw new RepositoryFunctionException(new IOException("Could not create directory for " + rule.getName() + ": " + e.getMessage()), Transience.TRANSIENT); } - FileValue repositoryDirectory = getRepositoryDirectory(outputDirectory, env); - if (repositoryDirectory == null) { - return null; - } // Download. HttpDownloadValue downloadedFileValue; @@ -103,6 +98,6 @@ public class NewHttpArchiveFunction extends HttpArchiveFunction { // Add WORKSPACE and BUILD files. createWorkspaceFile(decompressed.getDirectory(), rule); - return symlinkBuildFile(rule, getWorkspace(), repositoryDirectory, env); + return symlinkBuildFile(rule, getWorkspace(), outputDirectory, env); } } diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java index be1cbaf8fd..7bb53e5d5b 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java @@ -77,13 +77,9 @@ public class AndroidNdkRepositoryFunction extends RepositoryFunction { return null; } - FileValue directoryValue = prepareLocalRepositorySymlinkTree(rule, env); - if (directoryValue == null) { - return null; - } - + Path outputDirectory = prepareLocalRepositorySymlinkTree(rule, env); PathFragment pathFragment = getTargetPath(rule); - Path ndkSymlinkTreeDirectory = directoryValue.realRootedPath().asPath().getRelative("ndk"); + Path ndkSymlinkTreeDirectory = outputDirectory.getRelative("ndk"); try { ndkSymlinkTreeDirectory.createDirectory(); } catch (IOException e) { @@ -100,7 +96,7 @@ public class AndroidNdkRepositoryFunction extends RepositoryFunction { String apiLevelAttr = attributes.get("api_level", Type.INTEGER).toString(); ApiLevel apiLevel = new ApiLevel(env.getListener(), ruleName, apiLevelAttr); - NdkRelease ndkRelease = getNdkRelease(directoryValue, env); + NdkRelease ndkRelease = getNdkRelease(outputDirectory, env); ImmutableList.Builder<CrosstoolStlPair> crosstoolsAndStls = ImmutableList.builder(); try { @@ -127,7 +123,7 @@ public class AndroidNdkRepositoryFunction extends RepositoryFunction { } String buildFile = createBuildFile(ruleName, crosstoolsAndStls.build()); - return writeBuildFile(directoryValue, buildFile); + return writeBuildFile(getOutputBase(), buildFile); } @Override @@ -237,10 +233,10 @@ public class AndroidNdkRepositoryFunction extends RepositoryFunction { .replace("%toolchainFileGlobs%", toolchainFileGlobs.toString().trim()); } - private static NdkRelease getNdkRelease(FileValue directoryValue, Environment env) + private static NdkRelease getNdkRelease(Path directory, Environment env) throws RepositoryFunctionException { - Path releaseFilePath = directoryValue.realRootedPath().asPath().getRelative("ndk/RELEASE.TXT"); + Path releaseFilePath = directory.getRelative("ndk/RELEASE.TXT"); SkyKey releaseFileKey = FileValue.key(RootedPath.toRootedPath( releaseFilePath, PathFragment.EMPTY_FRAGMENT)); diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryFunction.java index 1556ffe962..00e53cbfef 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryFunction.java @@ -19,9 +19,9 @@ import com.google.devtools.build.lib.packages.AttributeMap; import com.google.devtools.build.lib.packages.NonconfigurableAttributeMapper; import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.rules.repository.RepositoryFunction; -import com.google.devtools.build.lib.skyframe.FileValue; import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.util.ResourceFileLoader; +import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.skyframe.SkyFunctionException; import com.google.devtools.build.skyframe.SkyFunctionName; @@ -42,15 +42,11 @@ public class AndroidSdkRepositoryFunction extends RepositoryFunction { return null; } - FileValue directoryValue = prepareLocalRepositorySymlinkTree(rule, env); - if (directoryValue == null) { - return null; - } - + Path outputDirectory = prepareLocalRepositorySymlinkTree(rule, env); PathFragment pathFragment = getTargetPath(rule); if (!symlinkLocalRepositoryContents( - directoryValue.realRootedPath().asPath(), + outputDirectory, getOutputBase().getFileSystem().getPath(pathFragment), env)) { return null; @@ -72,7 +68,7 @@ public class AndroidSdkRepositoryFunction extends RepositoryFunction { .replaceAll("%build_tools_version%", buildToolsVersion) .replaceAll("%api_level%", apiLevel.toString()); - return writeBuildFile(directoryValue, buildFile); + return writeBuildFile(outputDirectory, buildFile); } /** diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/LocalRepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/rules/repository/LocalRepositoryFunction.java index 4d259a41d8..40a0ee7cb7 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/repository/LocalRepositoryFunction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/repository/LocalRepositoryFunction.java @@ -81,7 +81,7 @@ public class LocalRepositoryFunction extends RepositoryFunction { new IOException(rule + " must specify an existing directory"), Transience.TRANSIENT); } - return RepositoryValue.create(repositoryPath, repositoryValue); + return RepositoryValue.create(repositoryPath); } @Override diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/NewLocalRepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/rules/repository/NewLocalRepositoryFunction.java index 356173e660..cfa0532fdf 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/repository/NewLocalRepositoryFunction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/repository/NewLocalRepositoryFunction.java @@ -17,7 +17,7 @@ package com.google.devtools.build.lib.rules.repository; import com.google.devtools.build.lib.analysis.RuleDefinition; import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName; import com.google.devtools.build.lib.packages.Rule; -import com.google.devtools.build.lib.skyframe.FileValue; +import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.skyframe.SkyFunctionException; import com.google.devtools.build.skyframe.SkyFunctionName; @@ -37,23 +37,19 @@ public class NewLocalRepositoryFunction extends RepositoryFunction { return null; } - FileValue directoryValue = prepareLocalRepositorySymlinkTree(rule, env); - if (directoryValue == null) { - return null; - } - + Path outputDirectory = prepareLocalRepositorySymlinkTree(rule, env); PathFragment pathFragment = getTargetPath(rule); // Link x/y/z to /some/path/to/y/z. if (!symlinkLocalRepositoryContents( - directoryValue.realRootedPath().asPath(), + outputDirectory, getOutputBase().getFileSystem().getPath(pathFragment), env)) { return null; } // Link x/BUILD to <build_root>/x.BUILD. - return symlinkBuildFile(rule, getWorkspace(), directoryValue, env); + return symlinkBuildFile(rule, getWorkspace(), outputDirectory, env); } /** diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java index beb7381349..e29769ec24 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java @@ -82,7 +82,7 @@ public class RepositoryDelegatorFunction implements SkyFunction { + " not found"), Transience.TRANSIENT); } - return RepositoryValue.create(repoRoot); + return RepositoryValue.create(repoPath); } RepositoryFunction handler = handlers.get(rule.getRuleClass()); diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryFunction.java index 93d3cf6c7e..2bba0bfcd5 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryFunction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryFunction.java @@ -79,7 +79,7 @@ public abstract class RepositoryFunction implements SkyFunction { private BlazeDirectories directories; - protected FileValue prepareLocalRepositorySymlinkTree(Rule rule, Environment env) + protected Path prepareLocalRepositorySymlinkTree(Rule rule, Environment env) throws RepositoryFunctionException { Path repositoryDirectory = getExternalRepositoryDirectory().getRelative(rule.getName()); try { @@ -88,15 +88,10 @@ public abstract class RepositoryFunction implements SkyFunction { } catch (IOException e) { throw new RepositoryFunctionException(e, Transience.TRANSIENT); } - FileValue directoryValue = getRepositoryDirectory(repositoryDirectory, env); - - if (directoryValue == null) { - return null; - } // Add x/WORKSPACE. createWorkspaceFile(repositoryDirectory, rule); - return directoryValue; + return repositoryDirectory; } protected void createWorkspaceFile(Path repositoryDirectory, Rule rule) @@ -110,30 +105,30 @@ public abstract class RepositoryFunction implements SkyFunction { } } - protected RepositoryValue writeBuildFile(FileValue directoryValue, String contents) + protected RepositoryValue writeBuildFile(Path repositoryDirectory, String contents) throws RepositoryFunctionException { - Path buildFilePath = directoryValue.realRootedPath().asPath().getRelative("BUILD"); + Path buildFilePath = repositoryDirectory.getRelative("BUILD"); try { FileSystemUtils.writeContentAsLatin1(buildFilePath, contents); } catch (IOException e) { throw new RepositoryFunctionException(e, Transience.TRANSIENT); } - return RepositoryValue.create(directoryValue); + return RepositoryValue.create(repositoryDirectory); } /** * Symlinks a BUILD file from the local filesystem into the external repository's root. * @param rule the rule that declares the build_file path. * @param workspaceDirectory the workspace root for the build. - * @param directoryValue the FileValue corresponding to the external repository's root directory. + * @param outputDirectory the directory of the remote repository * @param env the Skyframe environment. * @return the file value of the symlink created. * @throws RepositoryFunctionException if the BUILD file specified does not exist or cannot be * linked. */ protected RepositoryValue symlinkBuildFile( - Rule rule, Path workspaceDirectory, FileValue directoryValue, Environment env) + Rule rule, Path workspaceDirectory, Path outputDirectory, Environment env) throws RepositoryFunctionException { AggregatingAttributeMapper mapper = AggregatingAttributeMapper.of(rule); PathFragment buildFile = new PathFragment(mapper.get("build_file", Type.STRING)); @@ -167,11 +162,11 @@ public abstract class RepositoryFunction implements SkyFunction { Transience.TRANSIENT); } - Path buildFilePath = directoryValue.realRootedPath().asPath().getRelative("BUILD"); + Path buildFilePath = outputDirectory.getRelative("BUILD"); if (createSymbolicLink(buildFilePath, buildFileTarget, env) == null) { return null; } - return RepositoryValue.createNew(directoryValue, buildFileValue); + return RepositoryValue.createNew(outputDirectory, buildFileValue); } protected static PathFragment getTargetPath(Rule rule) throws RepositoryFunctionException { diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RepositoryValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/RepositoryValue.java index ed3fe4c038..0b29f0ac93 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/RepositoryValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/RepositoryValue.java @@ -28,14 +28,6 @@ public class RepositoryValue implements SkyValue { private final Path path; /** - * This is the FileValue for the [output_base]/external/repo-name directory. - * - * <p>If path is a symlink, this will keep track of what the symlink actually points to (for - * checking equality).</p> - */ - private final FileValue details; - - /** * If this repository is using a user-created BUILD file (any of the new_* functions) then that * FileValue needs to be propagated up to the PackageLookup so it doesn't get pruned. The BUILD * file symlink will be under external/, thus assumed to be immutable, thus Skyframe will prune @@ -43,41 +35,23 @@ public class RepositoryValue implements SkyValue { */ private final Optional<FileValue> overlaidBuildFile; - private RepositoryValue( - Path path, FileValue repositoryDirectory, Optional<FileValue> overlaidBuildFile) { + private RepositoryValue(Path path, Optional<FileValue> overlaidBuildFile) { this.path = path; - this.details = repositoryDirectory; this.overlaidBuildFile = overlaidBuildFile; } /** * Creates an immutable external repository. */ - public static RepositoryValue create(FileValue repositoryDirectory) { - return new RepositoryValue( - repositoryDirectory.realRootedPath().asPath(), repositoryDirectory, - Optional.<FileValue>absent()); - } - - /** - * Creates an immutable external repository that's a symlink to elsewhere on the system. - * - * <p>For local repositories, the repository path is something like [output root]/external/repo - * and the repository value resolves that to the actual symlink it points to. We don't want to - * lose the repository path, so this constructor is used.</p> - */ - public static RepositoryValue create(Path repositoryDirectory, FileValue details) { - return new RepositoryValue(repositoryDirectory, details, Optional.<FileValue>absent()); + public static RepositoryValue create(Path repositoryDirectory) { + return new RepositoryValue(repositoryDirectory, Optional.<FileValue>absent()); } /** * Creates an immutable external repository with a mutable BUILD file. */ - public static RepositoryValue createNew( - FileValue repositoryDirectory, FileValue overlaidBuildFile) { - return new RepositoryValue( - repositoryDirectory.realRootedPath().asPath(), repositoryDirectory, - Optional.of(overlaidBuildFile)); + public static RepositoryValue createNew(Path repositoryDirectory, FileValue overlaidBuildFile) { + return new RepositoryValue(repositoryDirectory, Optional.of(overlaidBuildFile)); } /** @@ -90,10 +64,6 @@ public class RepositoryValue implements SkyValue { return path; } - public FileValue getRepositoryDirectory() { - return details; - } - public Optional<FileValue> getOverlaidBuildFile() { return overlaidBuildFile; } @@ -106,20 +76,19 @@ public class RepositoryValue implements SkyValue { if (other instanceof RepositoryValue) { RepositoryValue otherValue = (RepositoryValue) other; - return details.equals(otherValue.details) - && overlaidBuildFile.equals(otherValue.overlaidBuildFile); + return overlaidBuildFile.equals(otherValue.overlaidBuildFile); } return false; } @Override public int hashCode() { - return Objects.hashCode(details, overlaidBuildFile); + return Objects.hashCode(overlaidBuildFile); } @Override public String toString() { - return details + (overlaidBuildFile.isPresent() + return path.getPathString() + (overlaidBuildFile.isPresent() ? " (BUILD file: " + overlaidBuildFile.get() + ")" : ""); } |