< prev index next >

test/tools/jlink/bindservices/BindServices.java

Print this page




 131                       "--add-modules", "m1",
 132                       "--bind-services",
 133                       "--verbose",
 134                       "--limit-modules", "m1,m2,m3,java.base").output();
 135 
 136         List<String> expected = List.of(
 137             "module m1 (" + MODS_DIR.resolve("m1").toUri().toString() + ")",
 138             "module m2 (" + MODS_DIR.resolve("m2").toUri().toString() + ")",
 139             "module m3 (" + MODS_DIR.resolve("m3").toUri().toString() + ")",
 140             "module m1 provides p1.S, used by m1",
 141             "module m2 provides p1.S, used by m1",
 142             "module m2 provides p2.T, used by m2",
 143             "module m3 provides p2.T, used by m2"
 144         );
 145 
 146         assertTrue(output.containsAll(expected));
 147 
 148         testImage(dir, "m1", "m2", "m3");
 149     }
 150 

















 151     /*
 152      * Tests the given ${java.home} to only contain the specified modules
 153      */
 154     private void testImage(Path javaHome, String... modules) throws Throwable {
 155         Path java = javaHome.resolve("bin").resolve("java");
 156         String[] cmd = Stream.concat(
 157             Stream.of(java.toString(), "-m", "m1/p1.Main"),
 158             Stream.of(modules)).toArray(String[]::new);
 159 
 160         assertTrue(executeProcess(cmd).outputTo(System.out)
 161                                       .errorTo(System.out)
 162                                       .getExitValue() == 0);
 163     }
 164 
 165     static class JLink {
 166         static final ToolProvider JLINK_TOOL = ToolProvider.findFirst("jlink")
 167             .orElseThrow(() ->
 168                 new RuntimeException("jlink tool not found")
 169             );
 170 




 131                       "--add-modules", "m1",
 132                       "--bind-services",
 133                       "--verbose",
 134                       "--limit-modules", "m1,m2,m3,java.base").output();
 135 
 136         List<String> expected = List.of(
 137             "module m1 (" + MODS_DIR.resolve("m1").toUri().toString() + ")",
 138             "module m2 (" + MODS_DIR.resolve("m2").toUri().toString() + ")",
 139             "module m3 (" + MODS_DIR.resolve("m3").toUri().toString() + ")",
 140             "module m1 provides p1.S, used by m1",
 141             "module m2 provides p1.S, used by m1",
 142             "module m2 provides p2.T, used by m2",
 143             "module m3 provides p2.T, used by m2"
 144         );
 145 
 146         assertTrue(output.containsAll(expected));
 147 
 148         testImage(dir, "m1", "m2", "m3");
 149     }
 150 
 151     @Test
 152     public void testVerboseAndNoBindServices() throws Throwable {
 153         if (!hasJmods()) return;
 154 
 155         Path dir = Paths.get("verboseNoop");
 156 
 157         List<String> output =
 158                 JLink.run("--output", dir.toString(),
 159                         "--module-path", MODULE_PATH,
 160                         "--verbose",
 161                         "--add-modules", "m1").output();
 162 
 163         assertTrue(output.contains("module m1 provides p1.S, used by m1"));
 164 
 165         testImage(dir, "m1");
 166     }
 167 
 168     /*
 169      * Tests the given ${java.home} to only contain the specified modules
 170      */
 171     private void testImage(Path javaHome, String... modules) throws Throwable {
 172         Path java = javaHome.resolve("bin").resolve("java");
 173         String[] cmd = Stream.concat(
 174             Stream.of(java.toString(), "-m", "m1/p1.Main"),
 175             Stream.of(modules)).toArray(String[]::new);
 176 
 177         assertTrue(executeProcess(cmd).outputTo(System.out)
 178                                       .errorTo(System.out)
 179                                       .getExitValue() == 0);
 180     }
 181 
 182     static class JLink {
 183         static final ToolProvider JLINK_TOOL = ToolProvider.findFirst("jlink")
 184             .orElseThrow(() ->
 185                 new RuntimeException("jlink tool not found")
 186             );
 187 


< prev index next >