Prepare upstream tools for 9+181 integration.
After this CL, CopyUpstreamFiles creates an additional snapshot "9+181"
with files from OpenJDK 9+181. The behavior of the CompareUpstreams
and upstream-diff tools is unchanged (the default reference upstream
is still OpenJDK 8u121-b13).
Test: Verified that the following command produces the same
output before/after this CL:
make libcore-compare-upstreams && java -jar \
out/host/linux-x86/framework/libcore-compare-upstreams.jar
Test: Verified that the following command produces the same
output before/after this CL, except that it now also produces
a subdirectory 9+181 with a snapshot of OpenJDK 9+181 files:
make libcore-copy-upstream-files && java -jar \
out/host/linux-x86/framework/libcore-copy-upstream-files.jar \
~/ojluni-upstreams
Bug: 63554956
Change-Id: I85bfb7556263232ed4e2f9192ebeb5acca04b184
diff --git a/tools/upstream/src/main/java/libcore/CompareUpstreams.java b/tools/upstream/src/main/java/libcore/CompareUpstreams.java
index 65b0074..e3504ae 100644
--- a/tools/upstream/src/main/java/libcore/CompareUpstreams.java
+++ b/tools/upstream/src/main/java/libcore/CompareUpstreams.java
@@ -152,7 +152,8 @@
headers.add("diff");
printTsv(out, headers);
for (Path relPath : relPaths) {
- Repository expectedUpstream = standardRepositories.currentUpstream(relPath);
+ Repository expectedUpstream = standardRepositories.referenceUpstreamAsOfAndroidP(
+ relPath);
out.print(relPath + "\t");
Path ojluniFile = standardRepositories.ojluni().absolutePath(relPath);
List<String> linesB = Util.readLines(ojluniFile);
diff --git a/tools/upstream/src/main/java/libcore/CopyUpstreamFiles.java b/tools/upstream/src/main/java/libcore/CopyUpstreamFiles.java
index 6bd758e..7137861 100644
--- a/tools/upstream/src/main/java/libcore/CopyUpstreamFiles.java
+++ b/tools/upstream/src/main/java/libcore/CopyUpstreamFiles.java
@@ -45,7 +45,8 @@
}
}
for (Path relPath : relPaths) {
- Repository expectedUpstream = standardRepositories.currentUpstream(relPath);
+ Repository expectedUpstream = standardRepositories.referenceUpstreamAsOfAndroidP(
+ relPath);
for (Repository upstream : standardRepositories.upstreams()) {
Path upstreamFile = upstream.absolutePath(relPath);
if (upstreamFile != null) {
diff --git a/tools/upstream/src/main/java/libcore/StandardRepositories.java b/tools/upstream/src/main/java/libcore/StandardRepositories.java
index a79e905..3bdbebf 100644
--- a/tools/upstream/src/main/java/libcore/StandardRepositories.java
+++ b/tools/upstream/src/main/java/libcore/StandardRepositories.java
@@ -22,6 +22,7 @@
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import libcore.Repository.OjluniRepository;
@@ -31,20 +32,34 @@
public class StandardRepositories {
+ private final List<Repository> allUpstreams;
+ // upstreams older than what is currently the default
private final List<Repository> historicUpstreams;
- private final Repository defaultUpstream;
- private final Repository jsr166Upstream;
- private final Repository javaSqlUpstream;
+ private final Repository openJdk8u121;
+ private final Repository openJdk9b113;
+ private final Repository openJdk7u40;
private final OjluniRepository ojluni;
private StandardRepositories(Path buildTop, Path upstreamRoot) {
- this.historicUpstreams = openJdkLegacy(upstreamRoot, Arrays.asList("8u60", "7u40"));
- this.defaultUpstream = openJdkLegacy(upstreamRoot, "8u121-b13");
- this.jsr166Upstream = openJdk9(upstreamRoot, "9b113+");
- this.javaSqlUpstream = openJdkLegacy(upstreamRoot, "7u40");
+ // allUpstreams is ordered from latest to earliest
+ Set<Repository> allUpstreams = new LinkedHashSet<>();
+ allUpstreams.add(openJdk9(upstreamRoot, "9+181"));
+ this.openJdk9b113 = addAndReturn(allUpstreams, openJdk9(upstreamRoot, "9b113+"));
+ this.openJdk8u121 = addAndReturn(allUpstreams, openJdkLegacy(upstreamRoot, "8u121-b13"));
+ Repository openJdk8u60 = addAndReturn(allUpstreams, openJdkLegacy(upstreamRoot, "8u60"));
+ this.openJdk7u40 = addAndReturn(allUpstreams, openJdkLegacy(upstreamRoot, "7u40"));
+ this.allUpstreams = Collections.unmodifiableList(new ArrayList<>(allUpstreams));
+ this.historicUpstreams = Collections.unmodifiableList(new ArrayList<>(
+ Arrays.asList(openJdk8u60, openJdk7u40)
+ ));
this.ojluni = new OjluniRepository(buildTop);
}
+ private static Repository addAndReturn(Set<Repository> repositories, Repository repository) {
+ repositories.add(repository);
+ return repository;
+ }
+
public List<Repository> historicUpstreams() {
return historicUpstreams;
}
@@ -57,10 +72,7 @@
* Returns all upstream repository snapshots, in order from latest to earliest.
*/
public List<Repository> upstreams() {
- List<Repository> upstreams = new ArrayList<>(Arrays.asList(
- jsr166Upstream, defaultUpstream));
- upstreams.addAll(historicUpstreams);
- return Collections.unmodifiableList(upstreams);
+ return allUpstreams;
}
public static StandardRepositories fromEnv() {
@@ -105,14 +117,14 @@
return result;
}
- public Repository currentUpstream(Path relPath) {
+ public Repository referenceUpstreamAsOfAndroidP(Path relPath) {
boolean isJsr166 = isJsr166(relPath);
if (isJsr166) {
- return jsr166Upstream;
+ return openJdk9b113;
} else if (relPath.startsWith("java/sql/") || relPath.startsWith("javax/sql/")) {
- return javaSqlUpstream;
+ return openJdk7u40;
} else {
- return defaultUpstream;
+ return openJdk8u121;
}
}