diff options
author | 2016-06-02 11:38:11 +0000 | |
---|---|---|
committer | 2016-06-02 15:41:50 +0000 | |
commit | 0b5d61fe0722b71a63b9756f8687d1ce2e380072 (patch) | |
tree | 456c888d1e0c5941cf508dc5834111d97569e709 /src | |
parent | 3e2a33ab7a2f7b311e6f7a20fc0a8b756e9511aa (diff) |
Rollback of commit 4ab4f05a8cbbaa4b7d938d1d305961fe95a5416c.
--
MOS_MIGRATED_REVID=123851529
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/java/JavaUtil.java | 46 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/java/JavaUtilTest.java | 50 |
2 files changed, 3 insertions, 93 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaUtil.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaUtil.java index e5677d813e..c4f95fe22c 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaUtil.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaUtil.java @@ -61,13 +61,8 @@ public final class JavaUtil { } /** - * Finds the index of the segment in a Java path fragment that precedes the source root. - * Starts from the first "java" or "javatests" or "src" segment. - * If the found item was "src", check if this is followed by "main" or "test" and then "java" - * or "resources" (maven layout). - * If the found item was "src", or "java"/"javatests" at the first segment, check for a nested - * root directory (src, java or javatests). A nested root must be followed by (com|net|org), - * or matching maven structure for nested "src", to be accepted, to avoid false positives. + * Find the index of the "java" or "javatests" segment in a Java path fragment + * that precedes the source root. * * @param path a Java source dir or file path * @return the index of the java segment or -1 iff no java segment was found. @@ -76,42 +71,7 @@ public final class JavaUtil { if (path.isAbsolute()) { throw new IllegalArgumentException("path must not be absolute: '" + path + "'"); } - int rootIndex = path.getFirstSegment(ImmutableSet.of("java", "javatests", "src")); - if (rootIndex < 0) { - return rootIndex; - } - final boolean isSrc = "src".equals(path.getSegment(rootIndex)); - int checkMavenIndex = isSrc ? rootIndex : -1; - if (rootIndex == 0 || isSrc) { - // Check for a nested "src" directory. - // Also, to support an existing case, "javatests" within "src". - for (int i = rootIndex + 1, max = path.segmentCount() - 2; i <= max; i++) { - String segment = path.getSegment(i); - if ("src".equals(segment) - || (isSrc && ("javatests".equals(segment) || "java".equals(segment)))) { - String next = path.getSegment(i + 1); - if ("com".equals(next) || "org".equals(next) || "net".equals(next)) { - // Check for common first element of java package, to avoid false positives. - rootIndex = i; - } else if ("src".equals(segment)) { - // Also accept maven style src/(main|test)/(java|resources). - checkMavenIndex = i; - } - break; - } - } - } - // Check for (main|test)/(java|resources) after /src/. - if (checkMavenIndex >= 0 && checkMavenIndex + 2 < path.segmentCount()) { - String next = path.getSegment(checkMavenIndex + 1); - if ("main".equals(next) || "test".equals(next)) { - next = path.getSegment(checkMavenIndex + 2); - if ("java".equals(next) || "resources".equals(next)) { - rootIndex = checkMavenIndex + 2; - } - } - } - return rootIndex; + return path.getFirstSegment(ImmutableSet.of("java", "javatests")); } /** diff --git a/src/test/java/com/google/devtools/build/lib/rules/java/JavaUtilTest.java b/src/test/java/com/google/devtools/build/lib/rules/java/JavaUtilTest.java index df3b4d5ca7..e93453c0b1 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/java/JavaUtilTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/java/JavaUtilTest.java @@ -39,66 +39,16 @@ public class JavaUtilTest { .isNull(); assertThat(getRootPath("java/com/google/common/case")).isEqualTo("java"); assertThat(getRootPath("javatests/com/google/common/case")).isEqualTo("javatests"); - assertThat(getRootPath("src/com/myproject/util")).isEqualTo("src"); assertThat(getRootPath("project/java")).isEqualTo("project/java"); assertThat(getRootPath("project/java/anything")).isEqualTo("project/java"); assertThat(getRootPath("project/javatests")).isEqualTo("project/javatests"); assertThat(getRootPath("project/javatests/anything")).isEqualTo("project/javatests"); - assertThat(getRootPath("project/src")).isEqualTo("project/src"); - assertThat(getRootPath("project/src/anything")).isEqualTo("project/src"); assertThat(getRootPath("third_party/java_src/project/src/main/java/foo")) .isEqualTo("third_party/java_src/project/src/main/java"); assertThat(getRootPath("third_party/java_src/project/src/test/java/foo")) .isEqualTo("third_party/java_src/project/src/test/java"); - assertThat(getRootPath("third_party/java_src/project/src/main/resources/foo")) - .isEqualTo("third_party/java_src/project/src/main/resources"); - assertThat(getRootPath("third_party/java_src/project/src/test/resources/foo")) - .isEqualTo("third_party/java_src/project/src/test/resources"); assertThat(getRootPath("third_party/java_src/project/javatests/foo")) .isEqualTo("third_party/java_src/project/javatests"); - - // Cases covering nested /src/ directories. - assertThat(getRootPath("java/com/google/project/module/src/com")) - .isEqualTo("java/com/google/project/module/src"); - assertThat(getRootPath("java/com/google/project/module/src/org")) - .isEqualTo("java/com/google/project/module/src"); - assertThat(getRootPath("java/com/google/project/module/src/net")) - .isEqualTo("java/com/google/project/module/src"); - assertThat(getRootPath("java/com/google/project/module/src/main/java")) - .isEqualTo("java/com/google/project/module/src/main/java"); - assertThat(getRootPath("java/com/google/project/module/src/test/java")) - .isEqualTo("java/com/google/project/module/src/test/java"); - assertThat(getRootPath("javatests/com/google/project/src/com")) - .isEqualTo("javatests/com/google/project/src"); - assertThat(getRootPath("src/com/google/project/src/main/java")) - .isEqualTo("src/com/google/project/src/main/java"); - assertThat(getRootPath("java/com/google/project/module/src/somethingelse")) - .isEqualTo("java"); - assertThat(getRootPath("java/com/google/project/module/src/foo/java")) - .isEqualTo("java"); - assertThat(getRootPath("java/com/google/project/module/src/main/com")) - .isEqualTo("java"); - assertThat(getRootPath("java/com/google/project/module/src/test/org")) - .isEqualTo("java"); - assertThat(getRootPath("java/com/google/project/module/src/java/com")) - .isEqualTo("java"); - assertThat(getRootPath("foo/java/com/google/project/src/com")) - .isEqualTo("foo/java"); - assertThat(getRootPath("src/com/google/java/javac")) - .isEqualTo("src"); - - assertThat(getRootPath("src/java_tools/buildjar/javatests/com")) - .isEqualTo("src/java_tools/buildjar/javatests"); - assertThat(getRootPath("third_party/project/src/java_tools/buildjar/javatests/com")) - .isEqualTo("third_party/project/src/java_tools/buildjar/javatests"); - assertThat(getRootPath("third_party/project/src/java_tools/buildjar/java/net")) - .isEqualTo("third_party/project/src/java_tools/buildjar/java"); - assertThat(getRootPath("src/java_tools/buildjar/javatests/foo")) - .isEqualTo("src"); - assertThat(getRootPath("src/tools/workspace/src/test/java/foo")) - .isEqualTo("src/tools/workspace/src/test/java"); - assertThat(getRootPath("foo/src/tools/workspace/src/test/java/foo")) - .isEqualTo("foo/src/tools/workspace/src/test/java"); } @Test |