-
Enhancement
-
Resolution: Fixed
-
P3
-
9
-
b33
Like this, but at in the make --
// Compute all SE imports
private class AllImports {
ModuleFinder finder = ModuleFinder.ofSystem();
Set<ModuleDescriptor> seModules() {
Set<ModuleDescriptor> closure = new HashSet<>();
moduleClosure(finder.find("java.se"), closure);
return closure;
}
void moduleClosure(Optional<ModuleReference> omr, Set<ModuleDescriptor> closure) {
if (omr.isPresent()) {
ModuleDescriptor mdesc = omr.get().descriptor();
if (closure.add(mdesc)) {
for (ModuleDescriptor.Requires req : mdesc.requires()) {
if (!req.modifiers().contains(ModuleDescriptor.Requires.Modifier.STATIC)) {
moduleClosure(finder.find(req.name()), closure);
}
}
}
}
}
Set<String> packages() {
return seModules().stream().flatMap(md -> md.exports().stream())
.filter(e -> !e.isQualified()).map(Object::toString).collect(Collectors.toSet());
}
String imports() {
Set<String> si = packages();
String[] ai = si.toArray(new String[si.size()]);
Arrays.sort(ai);
return Arrays.stream(ai)
.map(p -> String.format("import %s.*;\n", p))
.collect(Collectors.joining());
}
}
// Compute all SE imports
private class AllImports {
ModuleFinder finder = ModuleFinder.ofSystem();
Set<ModuleDescriptor> seModules() {
Set<ModuleDescriptor> closure = new HashSet<>();
moduleClosure(finder.find("java.se"), closure);
return closure;
}
void moduleClosure(Optional<ModuleReference> omr, Set<ModuleDescriptor> closure) {
if (omr.isPresent()) {
ModuleDescriptor mdesc = omr.get().descriptor();
if (closure.add(mdesc)) {
for (ModuleDescriptor.Requires req : mdesc.requires()) {
if (!req.modifiers().contains(ModuleDescriptor.Requires.Modifier.STATIC)) {
moduleClosure(finder.find(req.name()), closure);
}
}
}
}
}
Set<String> packages() {
return seModules().stream().flatMap(md -> md.exports().stream())
.filter(e -> !e.isQualified()).map(Object::toString).collect(Collectors.toSet());
}
String imports() {
Set<String> si = packages();
String[] ai = si.toArray(new String[si.size()]);
Arrays.sort(ai);
return Arrays.stream(ai)
.map(p -> String.format("import %s.*;\n", p))
.collect(Collectors.joining());
}
}
- relates to
-
JDK-8172102 jshell tool: remove print method forwarding to System.out from default startup
-
- Closed
-