aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java
diff options
context:
space:
mode:
authorGravatar Kristina Chodorow <kchodorow@google.com>2016-05-02 20:48:47 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-05-03 08:38:12 +0000
commita7fea8a1467a89adde75e67bc99bf0e040f71fe9 (patch)
tree46dc3f2c71c5ceafd2c781ec6028142620d130fb /src/main/java
parent81a1605ac079e0570ba5747346360dafbb3907ea (diff)
Set workspace name for http_file, http_jar, and maven_jar
Fixes #1166. While I was here, I also: * Renamed the implementations of Decompressor to show that they are Decompressors, not SkyFunctions (they used to be, it's confusing to have them still have the -Function suffix). * Added a unit test and moved the testing target to the rule/repository subdirectory, since it was a good chance to break off a tiny chunk of the monolithic BUILD file in lib/. -- MOS_MIGRATED_REVID=121306165
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/repository/DecompressorValue.java11
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/repository/FileDecompressor.java (renamed from src/main/java/com/google/devtools/build/lib/bazel/repository/FileFunction.java)6
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/repository/HttpFileFunction.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/repository/HttpJarFunction.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/repository/JarDecompressor.java (renamed from src/main/java/com/google/devtools/build/lib/bazel/repository/JarFunction.java)13
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/repository/MavenJarFunction.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/repository/NewGitRepositoryFunction.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/repository/NewHttpArchiveFunction.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryFunction.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/repository/NewLocalRepositoryFunction.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryFunction.java7
11 files changed, 22 insertions, 29 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/DecompressorValue.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/DecompressorValue.java
index 0d5ee8fc09..9343bbd459 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/repository/DecompressorValue.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/DecompressorValue.java
@@ -41,15 +41,8 @@ public class DecompressorValue implements SkyValue {
@Override
public boolean equals(Object other) {
- if (this == other) {
- return true;
- }
-
- if (!(other instanceof DecompressorValue)) {
- return false;
- }
-
- return directory.equals(((DecompressorValue) other).directory);
+ return this == other || other instanceof DecompressorValue
+ && directory.equals(((DecompressorValue) other).directory);
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/FileFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/FileDecompressor.java
index 0392e2de79..9031d4ba54 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/repository/FileFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/FileDecompressor.java
@@ -20,10 +20,10 @@ import com.google.devtools.build.lib.bazel.repository.DecompressorValue.Decompre
/**
* Creates a repository for a random file.
*/
-public class FileFunction extends JarFunction {
- public static final Decompressor INSTANCE = new FileFunction();
+public class FileDecompressor extends JarDecompressor {
+ public static final Decompressor INSTANCE = new FileDecompressor();
- private FileFunction() {
+ private FileDecompressor() {
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpFileFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpFileFunction.java
index bd5b733da1..25216ed2c2 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpFileFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpFileFunction.java
@@ -32,7 +32,7 @@ public class HttpFileFunction extends HttpArchiveFunction {
boolean executable = (mapper.has("executable", Type.BOOLEAN)
&& mapper.get("executable", Type.BOOLEAN));
return DecompressorDescriptor.builder()
- .setDecompressor(FileFunction.INSTANCE)
+ .setDecompressor(FileDecompressor.INSTANCE)
.setTargetKind(rule.getTargetKind())
.setTargetName(rule.getName())
.setArchivePath(downloadPath)
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpJarFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpJarFunction.java
index 42331586cc..a09ee1c8d0 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpJarFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpJarFunction.java
@@ -27,7 +27,7 @@ public class HttpJarFunction extends HttpArchiveFunction {
protected DecompressorDescriptor getDescriptor(Rule rule, Path downloadPath, Path outputDirectory)
throws RepositoryFunctionException {
return DecompressorDescriptor.builder()
- .setDecompressor(JarFunction.INSTANCE)
+ .setDecompressor(JarDecompressor.INSTANCE)
.setTargetKind(rule.getTargetKind())
.setTargetName(rule.getName())
.setArchivePath(downloadPath)
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/JarFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/JarDecompressor.java
index 048c507168..cfd7aefed8 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/repository/JarFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/JarDecompressor.java
@@ -16,6 +16,7 @@ package com.google.devtools.build.lib.bazel.repository;
import com.google.common.base.Joiner;
import com.google.devtools.build.lib.bazel.repository.DecompressorValue.Decompressor;
+import com.google.devtools.build.lib.rules.repository.RepositoryFunction;
import com.google.devtools.build.lib.rules.repository.RepositoryFunction.RepositoryFunctionException;
import com.google.devtools.build.lib.vfs.FileSystemUtils;
import com.google.devtools.build.lib.vfs.Path;
@@ -29,10 +30,10 @@ import javax.annotation.Nullable;
/**
* Creates a repository for a jar file.
*/
-public class JarFunction implements Decompressor {
- public static final Decompressor INSTANCE = new JarFunction();
+public class JarDecompressor implements Decompressor {
+ public static final Decompressor INSTANCE = new JarDecompressor();
- protected JarFunction() {
+ protected JarDecompressor() {
}
/**
@@ -50,10 +51,8 @@ public class JarFunction implements Decompressor {
try {
FileSystemUtils.createDirectoryAndParents(descriptor.repositoryPath());
// external/some-name/WORKSPACE.
- Path workspaceFile = descriptor.repositoryPath().getRelative("WORKSPACE");
- FileSystemUtils.writeContent(workspaceFile, Charset.forName("UTF-8"), String.format(
- "# DO NOT EDIT: automatically generated WORKSPACE file for %s rule %s\n",
- descriptor.targetKind(), descriptor.targetName()));
+ RepositoryFunction.createWorkspaceFile(
+ descriptor.repositoryPath(), descriptor.targetKind(), descriptor.targetName());
// external/some-name/jar.
Path jarDirectory = descriptor.repositoryPath().getRelative(getPackageName());
FileSystemUtils.createDirectoryAndParents(jarDirectory);
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 f3dbb06a0b..c8a826f0cc 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
@@ -139,7 +139,7 @@ public class MavenJarFunction extends HttpArchiveFunction {
// Add a WORKSPACE file & BUILD file to the Maven jar.
Path result = DecompressorValue.decompress(DecompressorDescriptor.builder()
- .setDecompressor(JarFunction.INSTANCE)
+ .setDecompressor(JarDecompressor.INSTANCE)
.setTargetKind(MavenJarRule.NAME)
.setTargetName(downloader.getName())
.setArchivePath(repositoryJar)
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 96f2b2bd78..2bf1f18e5d 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
@@ -39,7 +39,7 @@ public class NewGitRepositoryFunction extends GitRepositoryFunction {
createDirectory(outputDirectory, rule);
GitCloner.clone(rule, outputDirectory, env.getListener());
- createWorkspaceFile(outputDirectory, rule);
+ createWorkspaceFile(outputDirectory, rule.getTargetKind(), rule.getName());
buildFileHandler.finishBuildFile(outputDirectory);
return RepositoryDirectoryValue.create(outputDirectory);
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 815e41d9a2..71e34f6380 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
@@ -75,7 +75,7 @@ public class NewHttpArchiveFunction extends HttpArchiveFunction {
.build());
// Finally, write WORKSPACE and BUILD files.
- createWorkspaceFile(decompressed, rule);
+ createWorkspaceFile(decompressed, rule.getTargetKind(), rule.getName());
buildFileHandler.finishBuildFile(outputDirectory);
return RepositoryDirectoryValue.create(outputDirectory);
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryFunction.java
index 397b01393a..08015a220e 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryFunction.java
@@ -140,7 +140,7 @@ public class SkylarkRepositoryFunction extends RepositoryFunction {
}
if (!outputDirectory.getRelative("WORKSPACE").exists()) {
- createWorkspaceFile(outputDirectory, rule);
+ createWorkspaceFile(outputDirectory, rule.getTargetKind(), rule.getName());
}
return RepositoryDirectoryValue.create(outputDirectory);
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 66942f390d..eb77b57211 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
@@ -91,7 +91,7 @@ public class NewLocalRepositoryFunction extends RepositoryFunction {
throw new RepositoryFunctionException(e, SkyFunctionException.Transience.TRANSIENT);
}
}
- createWorkspaceFile(outputDirectory, rule);
+ createWorkspaceFile(outputDirectory, rule.getTargetKind(), rule.getName());
return RepositoryDirectoryValue.createWithSourceDirectory(outputDirectory, directoryValue);
}
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 d9c0b0b697..d3f5982fb1 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
@@ -175,17 +175,18 @@ public abstract class RepositoryFunction {
}
// Add x/WORKSPACE.
- createWorkspaceFile(repositoryDirectory, rule);
+ createWorkspaceFile(repositoryDirectory, rule.getTargetKind(), rule.getName());
return repositoryDirectory;
}
- protected void createWorkspaceFile(Path repositoryDirectory, Rule rule)
+ public static void createWorkspaceFile(
+ Path repositoryDirectory, String ruleKind, String ruleName)
throws RepositoryFunctionException {
try {
Path workspaceFile = repositoryDirectory.getRelative("WORKSPACE");
FileSystemUtils.writeContent(workspaceFile, Charset.forName("UTF-8"),
String.format("# DO NOT EDIT: automatically generated WORKSPACE file for %s\n"
- + "workspace(name = \"%s\")", rule, rule.getName()));
+ + "workspace(name = \"%s\")\n", ruleKind, ruleName));
} catch (IOException e) {
throw new RepositoryFunctionException(e, Transience.TRANSIENT);
}