Stop filtering package-info.java entries out of srcjars
MOE_MIGRATED_REVID=137733307
diff --git a/java/com/google/turbine/main/Main.java b/java/com/google/turbine/main/Main.java
index 296afb6..c6d9bd1 100644
--- a/java/com/google/turbine/main/Main.java
+++ b/java/com/google/turbine/main/Main.java
@@ -111,10 +111,6 @@
if (!je.getName().endsWith(".java")) {
continue;
}
- if (je.getName().equals("package-info.java")) {
- // TODO(cushon): package-info.java files
- continue;
- }
// overwrite existing entries for bug-compatibility with JavaBuilder (see b/26688023)
String source = new String(ByteStreams.toByteArray(jf.getInputStream(je)), UTF_8);
sources.put(je.getName(), new SourceFile(je.getName(), source));
diff --git a/javatests/com/google/turbine/main/MainTest.java b/javatests/com/google/turbine/main/MainTest.java
index 85597ae..bdb5243 100644
--- a/javatests/com/google/turbine/main/MainTest.java
+++ b/javatests/com/google/turbine/main/MainTest.java
@@ -90,6 +90,51 @@
assertThat(fields).containsEntry("CONST", "TWO");
}
+ @Test
+ public void packageInfo() throws IOException {
+ Path src = temporaryFolder.newFile("package-info.jar").toPath();
+ Files.write(src, "@Deprecated package test;".getBytes(UTF_8));
+
+ Path output = temporaryFolder.newFile("output.jar").toPath();
+
+ boolean ok =
+ Main.compile(
+ TurbineOptions.builder()
+ .addSources(ImmutableList.of(src.toString()))
+ .addBootClassPathEntries(BOOTCLASSPATH)
+ .setOutput(output.toString())
+ .setTempDir("")
+ .build());
+ assertThat(ok).isTrue();
+
+ Map<String, byte[]> data = readJar(output);
+ assertThat(data.keySet()).containsExactly("test/package-info.class");
+ }
+
+ @Test
+ public void packageInfoSrcjar() throws IOException {
+ Path srcjar = temporaryFolder.newFile("lib.srcjar").toPath();
+ try (JarOutputStream jos = new JarOutputStream(Files.newOutputStream(srcjar))) {
+ jos.putNextEntry(new JarEntry("package-info.java"));
+ jos.write("@Deprecated package test;".getBytes(UTF_8));
+ }
+
+ Path output = temporaryFolder.newFile("output.jar").toPath();
+
+ boolean ok =
+ Main.compile(
+ TurbineOptions.builder()
+ .setSourceJars(ImmutableList.of(srcjar.toString()))
+ .addBootClassPathEntries(BOOTCLASSPATH)
+ .setOutput(output.toString())
+ .setTempDir("")
+ .build());
+ assertThat(ok).isTrue();
+
+ Map<String, byte[]> data = readJar(output);
+ assertThat(data.keySet()).containsExactly("test/package-info.class");
+ }
+
private Map<String, byte[]> readJar(Path output) throws IOException {
Map<String, byte[]> data = new LinkedHashMap<>();
try (JarFile jf = new JarFile(output.toFile())) {