jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/ResourcePoolConfiguration.java
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/ResourcePoolConfiguration.java Wed Nov 23 16:16:35 2016 +0000
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/ResourcePoolConfiguration.java Thu Dec 01 08:57:53 2016 +0000
@@ -50,24 +50,23 @@
ModuleDescriptor md = mod.descriptor();
// drop hashes
- ModuleDescriptor.Builder builder = new ModuleDescriptor.Builder(md.name());
+ ModuleDescriptor.Builder builder = ModuleDescriptor.module(md.name());
md.requires().stream()
.forEach(builder::requires);
md.exports().stream()
.forEach(builder::exports);
+ md.opens().stream()
+ .forEach(builder::opens);
md.uses().stream()
.forEach(builder::uses);
- md.provides().values().stream()
+ md.provides().stream()
.forEach(builder::provides);
// build the proper concealed packages
- Set<String> exps = md.exports().stream()
- .map(ModuleDescriptor.Exports::source)
- .collect(Collectors.toSet());
-
- mod.packages().stream()
- .filter(pn -> !exps.contains(pn))
- .forEach(builder::conceals);
+ Set<String> concealed = new HashSet<>(mod.packages());
+ md.exports().stream().map(ModuleDescriptor.Exports::source).forEach(concealed::remove);
+ md.opens().stream().map(ModuleDescriptor.Opens::source).forEach(concealed::remove);
+ concealed.stream().forEach(builder::contains);
md.version().ifPresent(builder::version);
md.mainClass().ifPresent(builder::mainClass);