aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/packages
diff options
context:
space:
mode:
authorGravatar Kristina Chodorow <kchodorow@google.com>2016-01-11 15:28:02 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-01-11 20:03:04 +0000
commit3680a58b5caa1552254790dd54ec7ae28a7e3bcc (patch)
tree5ba90723eb947f23caf08dace33899cbe482ab2c /src/main/java/com/google/devtools/build/lib/packages
parenteaf8930fd1062590011b55321f551ce8b01fc57c (diff)
Allow overridding any rule in the WORKSPACE file
...instead of throwing an uncaught exception and printing a stack trace. Fixes #409. -- MOS_MIGRATED_REVID=111850179
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/packages')
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/ExternalPackageBuilder.java16
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/Package.java2
2 files changed, 1 insertions, 17 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/ExternalPackageBuilder.java b/src/main/java/com/google/devtools/build/lib/packages/ExternalPackageBuilder.java
index 8ea4ceec26..8570899691 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/ExternalPackageBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/ExternalPackageBuilder.java
@@ -18,7 +18,6 @@ import com.google.common.base.Verify;
import com.google.common.collect.Maps;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.cmdline.LabelSyntaxException;
-import com.google.devtools.build.lib.cmdline.PackageIdentifier;
import com.google.devtools.build.lib.events.Location;
import com.google.devtools.build.lib.events.StoredEventHandler;
import com.google.devtools.build.lib.syntax.FuncallExpression;
@@ -31,19 +30,6 @@ import java.util.Map;
*/
public class ExternalPackageBuilder {
- private Map<PackageIdentifier.RepositoryName, Rule> repositoryMap = Maps.newLinkedHashMap();
-
- void build(Package.Builder pkg) {
- for (Rule rule : repositoryMap.values()) {
- try {
- pkg.addRule(rule);
- } catch (Package.NameConflictException e) {
- throw new IllegalStateException(
- "Got a name conflict for " + rule + ", which can't happen: " + e.getMessage(), e);
- }
- }
- }
-
public ExternalPackageBuilder createAndAddRepositoryRule(
Package.Builder pkg,
RuleClass ruleClass,
@@ -57,7 +43,7 @@ public class ExternalPackageBuilder {
Rule tempRule =
RuleFactory.createRule(pkg, ruleClass, kwargs, eventHandler, ast, ast.getLocation(), null);
pkg.addEvents(eventHandler.getEvents());
- repositoryMap.put(PackageIdentifier.RepositoryName.create("@" + tempRule.getName()), tempRule);
+ overwriteRule(pkg, tempRule);
for (Map.Entry<String, Label> entry :
ruleClass.getExternalBindingsFunction().apply(tempRule).entrySet()) {
Label nameLabel = Label.parseAbsolute("//external:" + entry.getKey());
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Package.java b/src/main/java/com/google/devtools/build/lib/packages/Package.java
index f6ec1e86eb..ecf1df70dc 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Package.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Package.java
@@ -1288,8 +1288,6 @@ public class Package {
return pkg;
}
- externalPackageData.build(this);
-
// Freeze targets and distributions.
targets = ImmutableMap.copyOf(targets);
defaultDistributionSet =