aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java
diff options
context:
space:
mode:
authorGravatar Kristina Chodorow <kchodorow@google.com>2016-01-25 17:12:29 +0000
committerGravatar Lukacs Berki <lberki@google.com>2016-01-26 13:05:26 +0000
commitec5c07a953f546a7a336fc3ee2ba31cf6f36369a (patch)
tree5d2e95f61423312d9021b94ec4466e862c07e170 /src/main/java
parent14aaeb90d14fdd61f109f34d13710815253eaa93 (diff)
Move RepositoryName to its own top-level class
As it's about to get more important in its own right. The only change that isn't just moving code around is making RepositoryName.validate package-private. -- MOS_MIGRATED_REVID=112956571
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/ArtifactFactory.java2
-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/cmdline/PackageIdentifier.java201
-rw-r--r--src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java220
-rw-r--r--src/main/java/com/google/devtools/build/lib/cmdline/TargetPattern.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/cmdline/TargetPatternResolver.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/pkgcache/RecursivePackageProvider.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryFunction.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/CollectPackagesUnderDirectoryFunction.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/CollectPackagesUnderDirectoryValue.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/EnvironmentBackedRecursivePackageProvider.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/GraphBackedRecursivePackageProvider.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternFunction.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryFunction.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryValue.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/RecursiveDirectoryTraversalFunction.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/RecursivePackageProviderBackedTargetPatternResolver.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgValue.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/RepositoryValue.java2
21 files changed, 237 insertions, 220 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ArtifactFactory.java b/src/main/java/com/google/devtools/build/lib/actions/ArtifactFactory.java
index 7b8356981e..090059677a 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/ArtifactFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/ArtifactFactory.java
@@ -21,7 +21,7 @@ import com.google.common.collect.ImmutableSortedSet;
import com.google.common.collect.Lists;
import com.google.devtools.build.lib.actions.Artifact.SpecialArtifactType;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
-import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName;
+import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
import com.google.devtools.build.lib.util.Pair;
import com.google.devtools.build.lib.util.Preconditions;
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 18a94b70ef..83a7ed1b77 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
@@ -22,7 +22,7 @@ import com.google.common.hash.Hasher;
import com.google.common.hash.Hashing;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.bazel.rules.workspace.MavenJarRule;
-import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName;
+import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.packages.AggregatingAttributeMapper;
import com.google.devtools.build.lib.packages.AttributeMap;
import com.google.devtools.build.lib.packages.Rule;
diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java b/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java
index b29e820b9c..4c995eb5cf 100644
--- a/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java
+++ b/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java
@@ -14,27 +14,14 @@
package com.google.devtools.build.lib.cmdline;
-import com.google.common.base.Throwables;
-import com.google.common.cache.CacheBuilder;
-import com.google.common.cache.CacheLoader;
-import com.google.common.cache.LoadingCache;
import com.google.common.collect.ComparisonChain;
import com.google.common.collect.Interner;
import com.google.common.collect.Interners;
-import com.google.devtools.build.lib.util.Pair;
import com.google.devtools.build.lib.util.Preconditions;
-import com.google.devtools.build.lib.util.StringCanonicalizer;
-import com.google.devtools.build.lib.util.StringUtilities;
import com.google.devtools.build.lib.vfs.Canonicalizer;
import com.google.devtools.build.lib.vfs.PathFragment;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.ObjectStreamException;
import java.io.Serializable;
-import java.util.concurrent.ExecutionException;
-import java.util.regex.Pattern;
import javax.annotation.concurrent.Immutable;
@@ -60,194 +47,6 @@ public final class PackageIdentifier implements Comparable<PackageIdentifier>, S
return INTERNER.intern(new PackageIdentifier(repository, pkgName));
}
- /**
- * A human-readable name for the repository.
- */
- public static final class RepositoryName implements Serializable {
- private static final Pattern VALID_REPO_NAME = Pattern.compile("@[\\w\\-.]*");
-
- /** Helper for serializing {@link RepositoryName}. */
- private static final class SerializationProxy implements Serializable {
- private RepositoryName repositoryName;
-
- private SerializationProxy(RepositoryName repositoryName) {
- this.repositoryName = repositoryName;
- }
-
- private void writeObject(ObjectOutputStream out) throws IOException {
- out.writeObject(repositoryName.toString());
- }
-
- private void readObject(ObjectInputStream in)
- throws IOException, ClassNotFoundException {
- try {
- repositoryName = RepositoryName.create((String) in.readObject());
- } catch (LabelSyntaxException e) {
- throw new IOException("Error serializing repository name: " + e.getMessage());
- }
- }
-
- @SuppressWarnings("unused")
- private void readObjectNoData() throws ObjectStreamException {
- }
-
- private Object readResolve() {
- return repositoryName;
- }
- }
-
- private void readObject(@SuppressWarnings("unused") ObjectInputStream in) throws IOException {
- throw new IOException("Serialization is allowed only by proxy");
- }
-
- private Object writeReplace() {
- return new SerializationProxy(this);
- }
-
- private static final LoadingCache<String, RepositoryName> repositoryNameCache =
- CacheBuilder.newBuilder()
- .weakValues()
- .build(
- new CacheLoader<String, RepositoryName> () {
- @Override
- public RepositoryName load(String name) throws LabelSyntaxException {
- String errorMessage = validate(name);
- if (errorMessage != null) {
- errorMessage = "invalid repository name '"
- + StringUtilities.sanitizeControlChars(name) + "': " + errorMessage;
- throw new LabelSyntaxException(errorMessage);
- }
- return new RepositoryName(StringCanonicalizer.intern(name));
- }
- });
-
- /**
- * Makes sure that name is a valid repository name and creates a new RepositoryName using it.
- *
- * @throws LabelSyntaxException if the name is invalid
- */
- public static RepositoryName create(String name) throws LabelSyntaxException {
- try {
- return repositoryNameCache.get(name);
- } catch (ExecutionException e) {
- Throwables.propagateIfInstanceOf(e.getCause(), LabelSyntaxException.class);
- throw new IllegalStateException("Failed to create RepositoryName from " + name, e);
- }
- }
-
- /**
- * Extracts the repository name from a PathFragment that was created with
- * {@code PackageIdentifier.getPathFragment}.
- *
- * @return a {@code Pair} of the extracted repository name and the path fragment with stripped
- * of "external/"-prefix and repository name, or null if none was found or the repository name
- * was invalid.
- */
- public static Pair<RepositoryName, PathFragment> fromPathFragment(PathFragment path) {
- if (path.segmentCount() < 2 || !path.getSegment(0).equals(Label.EXTERNAL_PATH_PREFIX)) {
- return null;
- }
- try {
- RepositoryName repoName = RepositoryName.create("@" + path.getSegment(1));
- PathFragment subPath = path.subFragment(2, path.segmentCount());
- return Pair.of(repoName, subPath);
- } catch (LabelSyntaxException e) {
- return null;
- }
- }
-
- private final String name;
-
- private RepositoryName(String name) {
- this.name = name;
- }
-
- /**
- * Performs validity checking. Returns null on success, an error message otherwise.
- */
- private static String validate(String name) {
- if (name.isEmpty()) {
- return null;
- }
-
- // Some special cases for more user-friendly error messages.
- if (!name.startsWith("@")) {
- return "workspace names must start with '@'";
- }
- if (name.equals("@.")) {
- return "workspace names are not allowed to be '@.'";
- }
- if (name.equals("@..")) {
- return "workspace names are not allowed to be '@..'";
- }
-
- if (!VALID_REPO_NAME.matcher(name).matches()) {
- return "workspace names may contain only A-Z, a-z, 0-9, '-', '_' and '.'";
- }
-
- return null;
- }
-
- /**
- * Returns the repository name without the leading "{@literal @}". For the default repository,
- * returns "".
- */
- public String strippedName() {
- if (name.isEmpty()) {
- return name;
- }
- return name.substring(1);
- }
-
- /**
- * Returns if this is the default repository, that is, {@link #name} is "".
- */
- public boolean isDefault() {
- return name.isEmpty();
- }
-
- /**
- * Returns the repository name, with leading "{@literal @}" (or "" for the default repository).
- */
- // TODO(bazel-team): Use this over toString()- easier to track its usage.
- public String getName() {
- return name;
- }
-
- /**
- * Returns the path at which this repository is mapped within the exec root.
- */
- public PathFragment getPathFragment() {
- return isDefault()
- ? PathFragment.EMPTY_FRAGMENT
- : new PathFragment(Label.EXTERNAL_PATH_PREFIX).getRelative(strippedName());
- }
-
- /**
- * Returns the repository name, with leading "{@literal @}" (or "" for the default repository).
- */
- @Override
- public String toString() {
- return name;
- }
-
- @Override
- public boolean equals(Object object) {
- if (this == object) {
- return true;
- }
- if (!(object instanceof RepositoryName)) {
- return false;
- }
- return name.equals(((RepositoryName) object).name);
- }
-
- @Override
- public int hashCode() {
- return name.hashCode();
- }
- }
-
public static final String DEFAULT_REPOSITORY = "";
public static final RepositoryName DEFAULT_REPOSITORY_NAME;
public static final RepositoryName MAIN_REPOSITORY_NAME;
diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java b/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java
new file mode 100644
index 0000000000..2aa253dcb1
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java
@@ -0,0 +1,220 @@
+// Copyright 2016 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.devtools.build.lib.cmdline;
+
+import com.google.common.base.Throwables;
+import com.google.common.cache.CacheBuilder;
+import com.google.common.cache.CacheLoader;
+import com.google.common.cache.LoadingCache;
+import com.google.devtools.build.lib.util.Pair;
+import com.google.devtools.build.lib.util.StringCanonicalizer;
+import com.google.devtools.build.lib.util.StringUtilities;
+import com.google.devtools.build.lib.vfs.PathFragment;
+
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.ObjectStreamException;
+import java.io.Serializable;
+import java.util.concurrent.ExecutionException;
+import java.util.regex.Pattern;
+
+/**
+ * A human-readable name for the repository.
+ */
+public final class RepositoryName implements Serializable {
+ private static final Pattern VALID_REPO_NAME = Pattern.compile("@[\\w\\-.]*");
+
+ /** Helper for serializing {@link RepositoryName}. */
+ private static final class SerializationProxy implements Serializable {
+ private RepositoryName repositoryName;
+
+ private SerializationProxy(RepositoryName repositoryName) {
+ this.repositoryName = repositoryName;
+ }
+
+ private void writeObject(ObjectOutputStream out) throws IOException {
+ out.writeObject(repositoryName.toString());
+ }
+
+ private void readObject(ObjectInputStream in)
+ throws IOException, ClassNotFoundException {
+ try {
+ repositoryName = RepositoryName.create((String) in.readObject());
+ } catch (LabelSyntaxException e) {
+ throw new IOException("Error serializing repository name: " + e.getMessage());
+ }
+ }
+
+ @SuppressWarnings("unused")
+ private void readObjectNoData() throws ObjectStreamException {
+ }
+
+ private Object readResolve() {
+ return repositoryName;
+ }
+ }
+
+ private void readObject(@SuppressWarnings("unused") ObjectInputStream in) throws IOException {
+ throw new IOException("Serialization is allowed only by proxy");
+ }
+
+ private Object writeReplace() {
+ return new SerializationProxy(this);
+ }
+
+ private static final LoadingCache<String, RepositoryName> repositoryNameCache =
+ CacheBuilder.newBuilder()
+ .weakValues()
+ .build(
+ new CacheLoader<String, RepositoryName>() {
+ @Override
+ public RepositoryName load(String name) throws LabelSyntaxException {
+ String errorMessage = validate(name);
+ if (errorMessage != null) {
+ errorMessage = "invalid repository name '"
+ + StringUtilities.sanitizeControlChars(name) + "': " + errorMessage;
+ throw new LabelSyntaxException(errorMessage);
+ }
+ return new RepositoryName(StringCanonicalizer.intern(name));
+ }
+ });
+
+ /**
+ * Makes sure that name is a valid repository name and creates a new RepositoryName using it.
+ *
+ * @throws LabelSyntaxException if the name is invalid
+ */
+ public static RepositoryName create(String name) throws LabelSyntaxException {
+ try {
+ return repositoryNameCache.get(name);
+ } catch (ExecutionException e) {
+ Throwables.propagateIfInstanceOf(e.getCause(), LabelSyntaxException.class);
+ throw new IllegalStateException("Failed to create RepositoryName from " + name, e);
+ }
+ }
+
+ /**
+ * Extracts the repository name from a PathFragment that was created with
+ * {@code PackageIdentifier.getPathFragment}.
+ *
+ * @return a {@code Pair} of the extracted repository name and the path fragment with stripped
+ * of "external/"-prefix and repository name, or null if none was found or the repository name
+ * was invalid.
+ */
+ public static Pair<RepositoryName, PathFragment> fromPathFragment(PathFragment path) {
+ if (path.segmentCount() < 2 || !path.getSegment(0).equals(Label.EXTERNAL_PATH_PREFIX)) {
+ return null;
+ }
+ try {
+ RepositoryName repoName = RepositoryName.create("@" + path.getSegment(1));
+ PathFragment subPath = path.subFragment(2, path.segmentCount());
+ return Pair.of(repoName, subPath);
+ } catch (LabelSyntaxException e) {
+ return null;
+ }
+ }
+
+ private final String name;
+
+ private RepositoryName(String name) {
+ this.name = name;
+ }
+
+ /**
+ * Performs validity checking. Returns null on success, an error message otherwise.
+ */
+ static String validate(String name) {
+ if (name.isEmpty()) {
+ return null;
+ }
+
+ // Some special cases for more user-friendly error messages.
+ if (!name.startsWith("@")) {
+ return "workspace names must start with '@'";
+ }
+ if (name.equals("@.")) {
+ return "workspace names are not allowed to be '@.'";
+ }
+ if (name.equals("@..")) {
+ return "workspace names are not allowed to be '@..'";
+ }
+
+ if (!VALID_REPO_NAME.matcher(name).matches()) {
+ return "workspace names may contain only A-Z, a-z, 0-9, '-', '_' and '.'";
+ }
+
+ return null;
+ }
+
+ /**
+ * Returns the repository name without the leading "{@literal @}". For the default repository,
+ * returns "".
+ */
+ public String strippedName() {
+ if (name.isEmpty()) {
+ return name;
+ }
+ return name.substring(1);
+ }
+
+ /**
+ * Returns if this is the default repository, that is, {@link #name} is "".
+ */
+ public boolean isDefault() {
+ return name.isEmpty();
+ }
+
+ /**
+ * Returns the repository name, with leading "{@literal @}" (or "" for the default repository).
+ */
+ // TODO(bazel-team): Use this over toString()- easier to track its usage.
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Returns the path at which this repository is mapped within the exec root.
+ */
+ public PathFragment getPathFragment() {
+ return isDefault()
+ ? PathFragment.EMPTY_FRAGMENT
+ : new PathFragment(Label.EXTERNAL_PATH_PREFIX).getRelative(strippedName());
+ }
+
+ /**
+ * Returns the repository name, with leading "{@literal @}" (or "" for the default repository).
+ */
+ @Override
+ public String toString() {
+ return name;
+ }
+
+ @Override
+ public boolean equals(Object object) {
+ if (this == object) {
+ return true;
+ }
+ if (!(object instanceof RepositoryName)) {
+ return false;
+ }
+ return name.equals(((RepositoryName) object).name);
+ }
+
+ @Override
+ public int hashCode() {
+ return name.hashCode();
+ }
+}
diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/TargetPattern.java b/src/main/java/com/google/devtools/build/lib/cmdline/TargetPattern.java
index 254be3c776..5617c942e9 100644
--- a/src/main/java/com/google/devtools/build/lib/cmdline/TargetPattern.java
+++ b/src/main/java/com/google/devtools/build/lib/cmdline/TargetPattern.java
@@ -21,7 +21,6 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.cmdline.LabelValidator.BadLabelException;
import com.google.devtools.build.lib.cmdline.LabelValidator.PackageAndTarget;
-import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName;
import com.google.devtools.build.lib.util.BatchCallback;
import com.google.devtools.build.lib.util.Preconditions;
import com.google.devtools.build.lib.util.StringUtilities;
diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/TargetPatternResolver.java b/src/main/java/com/google/devtools/build/lib/cmdline/TargetPatternResolver.java
index 6cf7ddc906..05c914ae49 100644
--- a/src/main/java/com/google/devtools/build/lib/cmdline/TargetPatternResolver.java
+++ b/src/main/java/com/google/devtools/build/lib/cmdline/TargetPatternResolver.java
@@ -15,7 +15,6 @@
package com.google.devtools.build.lib.cmdline;
import com.google.common.collect.ImmutableSet;
-import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName;
import com.google.devtools.build.lib.util.BatchCallback;
import com.google.devtools.build.lib.vfs.PathFragment;
diff --git a/src/main/java/com/google/devtools/build/lib/pkgcache/RecursivePackageProvider.java b/src/main/java/com/google/devtools/build/lib/pkgcache/RecursivePackageProvider.java
index 808085bbeb..0daec5d349 100644
--- a/src/main/java/com/google/devtools/build/lib/pkgcache/RecursivePackageProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/pkgcache/RecursivePackageProvider.java
@@ -15,7 +15,7 @@ package com.google.devtools.build.lib.pkgcache;
import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
-import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName;
+import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.packages.NoSuchPackageException;
import com.google.devtools.build.lib.packages.Package;
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 2d8ecd3939..903fc63eb2 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
@@ -16,7 +16,7 @@ package com.google.devtools.build.lib.rules.repository;
import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
-import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName;
+import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.Location;
import com.google.devtools.build.lib.packages.Rule;
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 48a8eb4354..6979a42598 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
@@ -19,7 +19,7 @@ import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.cmdline.LabelSyntaxException;
-import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName;
+import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
import com.google.devtools.build.lib.packages.AggregatingAttributeMapper;
import com.google.devtools.build.lib.packages.BuildFileContainsErrorsException;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/CollectPackagesUnderDirectoryFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/CollectPackagesUnderDirectoryFunction.java
index bfa8c1c2ee..21d4eb2336 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/CollectPackagesUnderDirectoryFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/CollectPackagesUnderDirectoryFunction.java
@@ -17,7 +17,7 @@ import com.google.common.collect.ImmutableCollection;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
-import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName;
+import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.packages.Package;
import com.google.devtools.build.lib.skyframe.RecursivePkgValue.RecursivePkgKey;
import com.google.devtools.build.lib.vfs.PathFragment;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/CollectPackagesUnderDirectoryValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/CollectPackagesUnderDirectoryValue.java
index 3d0b5b6ccd..f01550999d 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/CollectPackagesUnderDirectoryValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/CollectPackagesUnderDirectoryValue.java
@@ -16,7 +16,7 @@ package com.google.devtools.build.lib.skyframe;
import com.google.common.base.MoreObjects;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
-import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName;
+import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
import com.google.devtools.build.lib.skyframe.RecursivePkgValue.RecursivePkgKey;
import com.google.devtools.build.lib.vfs.PathFragment;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/EnvironmentBackedRecursivePackageProvider.java b/src/main/java/com/google/devtools/build/lib/skyframe/EnvironmentBackedRecursivePackageProvider.java
index db6639dd5d..a388389141 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/EnvironmentBackedRecursivePackageProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/EnvironmentBackedRecursivePackageProvider.java
@@ -18,7 +18,7 @@ import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
-import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName;
+import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.EventHandler;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/GraphBackedRecursivePackageProvider.java b/src/main/java/com/google/devtools/build/lib/skyframe/GraphBackedRecursivePackageProvider.java
index c099dcb88b..f5c3ada49b 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/GraphBackedRecursivePackageProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/GraphBackedRecursivePackageProvider.java
@@ -24,7 +24,7 @@ import com.google.common.collect.Sets;
import com.google.common.collect.Sets.SetView;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
-import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName;
+import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.cmdline.TargetPattern;
import com.google.devtools.build.lib.cmdline.TargetPattern.Type;
import com.google.devtools.build.lib.events.Event;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternFunction.java
index a2e3910cf8..f98a01d45e 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternFunction.java
@@ -17,7 +17,7 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
-import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName;
+import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.cmdline.ResolvedTargets;
import com.google.devtools.build.lib.cmdline.TargetParsingException;
import com.google.devtools.build.lib.cmdline.TargetPattern;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryFunction.java
index ac8801c835..b5b560a2c8 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryFunction.java
@@ -16,7 +16,7 @@ package com.google.devtools.build.lib.skyframe;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
-import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName;
+import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.cmdline.ResolvedTargets;
import com.google.devtools.build.lib.packages.NoSuchPackageException;
import com.google.devtools.build.lib.packages.NoSuchTargetException;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryValue.java
index 9b726c3279..136a94bcd4 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryValue.java
@@ -15,7 +15,7 @@ package com.google.devtools.build.lib.skyframe;
import com.google.common.base.MoreObjects;
import com.google.common.collect.ImmutableSet;
-import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName;
+import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
import com.google.devtools.build.lib.pkgcache.FilteringPolicies;
import com.google.devtools.build.lib.pkgcache.FilteringPolicy;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveDirectoryTraversalFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveDirectoryTraversalFunction.java
index 9746831ce5..ce9a912cdf 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveDirectoryTraversalFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveDirectoryTraversalFunction.java
@@ -18,7 +18,7 @@ import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Sets;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
-import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName;
+import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.packages.NoSuchPackageException;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePackageProviderBackedTargetPatternResolver.java b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePackageProviderBackedTargetPatternResolver.java
index 5764b6cfe4..b24ee7af58 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePackageProviderBackedTargetPatternResolver.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePackageProviderBackedTargetPatternResolver.java
@@ -21,7 +21,7 @@ import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
-import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName;
+import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.cmdline.ResolvedTargets;
import com.google.devtools.build.lib.cmdline.TargetParsingException;
import com.google.devtools.build.lib.cmdline.TargetPatternResolver;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java
index dbbbe8cd6d..a701802c06 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java
@@ -15,7 +15,7 @@ package com.google.devtools.build.lib.skyframe;
import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
-import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName;
+import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgValue.java
index 019de51223..891957863b 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgValue.java
@@ -14,7 +14,7 @@
package com.google.devtools.build.lib.skyframe;
import com.google.common.collect.ImmutableSet;
-import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName;
+import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
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 4aea6ea92b..e647b817b2 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
@@ -15,7 +15,7 @@
package com.google.devtools.build.lib.skyframe;
import com.google.common.base.Objects;
-import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName;
+import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;