< prev index next >

test/tools/jar/modularJar/src/bar/jdk/test/bar/Bar.java

Print this page
rev 14541 : 8156497: Add jar tool support for Multi-Release Modular JARs
Reviewed-by:

@@ -24,10 +24,12 @@
  */
 
 package jdk.test.bar;
 
 import java.lang.module.ModuleDescriptor;
+import java.lang.module.ModuleDescriptor.Exports;
+import java.lang.module.ModuleDescriptor.Requires;
 import java.lang.reflect.Method;
 import java.util.Optional;
 import java.util.StringJoiner;
 
 import jdk.internal.module.ModuleHashes;

@@ -37,20 +39,38 @@
     public static void main(String[] args) throws Exception {
         System.out.println("message:" + Message.get());
 
         ModuleDescriptor md = Bar.class.getModule().getDescriptor();
         System.out.println("nameAndVersion:" + md.toNameAndVersion());
-        System.out.println("mainClass:" + md.mainClass().get());
+        md.mainClass().ifPresent(mc -> System.out.println("mainClass:" + mc));
 
-        Method m = ModuleDescriptor.class.getDeclaredMethod("hashes");
-        m.setAccessible(true);
-        ModuleDescriptor foo = jdk.test.foo.Foo.class.getModule().getDescriptor();
-        Optional<ModuleHashes> oHashes =
-                (Optional<ModuleHashes>) m.invoke(foo);
+        StringJoiner sj = new StringJoiner(",");
+        md.requires().stream().map(ModuleDescriptor.Requires::name).sorted().forEach(sj::add);
+        System.out.println("requires:" + sj.toString());
 
-        System.out.println("hashes:" + oHashes.get().hashFor("bar"));
+        sj = new StringJoiner(",");
+        md.exports().stream().map(ModuleDescriptor.Exports::source).sorted().forEach(sj::add);
+        if (!sj.toString().equals(""))
+            System.out.println("exports:" + sj.toString());
+
+        sj = new StringJoiner(",");
+        md.uses().stream().sorted().forEach(sj::add);
+        if (!sj.toString().equals(""))
+            System.out.println("uses:" + sj.toString());
+
+        sj = new StringJoiner(",");
+        md.provides().keySet().stream().sorted().forEach(sj::add);
+        if (!sj.toString().equals(""))
+            System.out.println("provides:" + sj.toString());
 
-        StringJoiner sj = new StringJoiner(",");
+        sj = new StringJoiner(",");
         md.conceals().forEach(sj::add);
+        if (!sj.toString().equals(""))
         System.out.println("conceals:" + sj.toString());
+
+        Method m = ModuleDescriptor.class.getDeclaredMethod("hashes");
+        m.setAccessible(true);
+        ModuleDescriptor foo = jdk.test.foo.Foo.class.getModule().getDescriptor();
+        Optional<ModuleHashes> oHashes = (Optional<ModuleHashes>) m.invoke(foo);
+        System.out.println("hashes:" + oHashes.get().hashFor("bar"));
     }
 }
< prev index next >