package ${hello.pkg}; import java.util.logging.Logger; public class HelloWorld { public void run(String[] resources) { Logger logger = Logger.getLogger(HelloWorld.class.getName()); logger.info("HELLO WORLD"); for (String resource : resources) { Object url = HelloWorld.class.getResource(resource); logger.info(resource + " " + (url != null ? "present" : "absent")); } } public static void main(String[] args) { new HelloWorld().run(args); } } module ${hello.mod} { exports ${hello.pkg}; requires java.logging; } package ${smile.pkg}; import java.util.logging.Logger; import ${hello.pkg}.HelloWorld; public class Smile { public void run(String[] resources) { Logger logger = Logger.getLogger(Smile.class.getName()); logger.info("\u263a\u263b\u263a\u263b"); for (String resource : resources) { Object url = HelloWorld.class.getResource(resource); logger.info(resource + " " + (url != null ? "present" : "absent")); } } public static void main(String[] args) { new Smile().run(args); new HelloWorld().run(args); } } module ${smile.mod} { exports ${smile.pkg}; requires java.logging; requires ${hello.mod}; } languages = new HashSet<>(); for (Locale locale : Locale.getAvailableLocales()) { languages.add(locale.getLanguage()); } boolean matched = languages.containsAll(Arrays.asList(languagesToFind)); System.exit(matched ? 0 : 1); } }]]> module ${localefinder.mod} { exports ${localefinder.pkg}; requires jdk.localedata; } package ${thrower.pkg}; public class Thrower { public static void main(String[] args) { throw new RuntimeException("Deliberate exception."); } } module ${thrower.mod} { exports ${thrower.pkg}; } package ${inc.pkg}; public interface IncrementProvider { int getIncrement(); } package ${inc.pkg}; import java.util.ServiceLoader; public class Incrementer { public static void main(String[] args) { for (IncrementProvider provider : ServiceLoader.load(IncrementProvider.class)) { int n = 0; for (int i = 0; i < 5; i++) { n += provider.getIncrement(); System.out.println(n); } } } } module ${inc.mod} { exports ${inc.pkg}; uses ${inc.pkg}.IncrementProvider; } package ${provider.pkg}; import ${inc.pkg}.IncrementProvider; public class ByTwoProvider implements IncrementProvider { @Override public int getIncrement() { return 2; } } module ${provider.mod} { exports ${provider.pkg}; requires transitive ${inc.mod}; provides ${inc.pkg}.IncrementProvider with ${provider.pkg}.ByTwoProvider; }