< prev index next >

src/java.base/share/classes/java/lang/module/ModulePath.java

Print this page
rev 14279 : [mq]: 8140281-deprecation-optional.get


 421         // configuration file
 422         Stream<String> stream = jf.stream()
 423             .map(e -> e.getName())
 424             .filter(e -> (e.endsWith(".class") || e.startsWith(SERVICES_PREFIX)))
 425             .distinct();
 426         Map<Boolean, Set<String>> map
 427             = stream.collect(Collectors.partitioningBy(s -> s.endsWith(".class"),
 428                              Collectors.toSet()));
 429         Set<String> classFiles = map.get(Boolean.TRUE);
 430         Set<String> configFiles = map.get(Boolean.FALSE);
 431 
 432         // all packages are exported
 433         classFiles.stream()
 434             .map(c -> toPackageName(c))
 435             .distinct()
 436             .forEach(p -> builder.exports(p));
 437 
 438         // map names of service configuration files to service names
 439         Set<String> serviceNames = configFiles.stream()
 440             .map(this::toServiceName)
 441             .filter(Optional::isPresent)
 442             .map(Optional::get)
 443             .collect(Collectors.toSet());
 444 
 445         // parse each service configuration file
 446         for (String sn : serviceNames) {
 447             JarEntry entry = jf.getJarEntry(SERVICES_PREFIX + sn);
 448             Set<String> providerClasses = new HashSet<>();
 449             try (InputStream in = jf.getInputStream(entry)) {
 450                 BufferedReader reader
 451                     = new BufferedReader(new InputStreamReader(in, "UTF-8"));
 452                 String cn;
 453                 while ((cn = nextLine(reader)) != null) {
 454                     if (Checks.isJavaIdentifier(cn)) {
 455                         providerClasses.add(cn);
 456                     }
 457                 }
 458             }
 459             if (!providerClasses.isEmpty())
 460                 builder.provides(sn, providerClasses);
 461         }
 462 




 421         // configuration file
 422         Stream<String> stream = jf.stream()
 423             .map(e -> e.getName())
 424             .filter(e -> (e.endsWith(".class") || e.startsWith(SERVICES_PREFIX)))
 425             .distinct();
 426         Map<Boolean, Set<String>> map
 427             = stream.collect(Collectors.partitioningBy(s -> s.endsWith(".class"),
 428                              Collectors.toSet()));
 429         Set<String> classFiles = map.get(Boolean.TRUE);
 430         Set<String> configFiles = map.get(Boolean.FALSE);
 431 
 432         // all packages are exported
 433         classFiles.stream()
 434             .map(c -> toPackageName(c))
 435             .distinct()
 436             .forEach(p -> builder.exports(p));
 437 
 438         // map names of service configuration files to service names
 439         Set<String> serviceNames = configFiles.stream()
 440             .map(this::toServiceName)
 441             .flatMap(Optional::stream)

 442             .collect(Collectors.toSet());
 443 
 444         // parse each service configuration file
 445         for (String sn : serviceNames) {
 446             JarEntry entry = jf.getJarEntry(SERVICES_PREFIX + sn);
 447             Set<String> providerClasses = new HashSet<>();
 448             try (InputStream in = jf.getInputStream(entry)) {
 449                 BufferedReader reader
 450                     = new BufferedReader(new InputStreamReader(in, "UTF-8"));
 451                 String cn;
 452                 while ((cn = nextLine(reader)) != null) {
 453                     if (Checks.isJavaIdentifier(cn)) {
 454                         providerClasses.add(cn);
 455                     }
 456                 }
 457             }
 458             if (!providerClasses.isEmpty())
 459                 builder.provides(sn, providerClasses);
 460         }
 461 


< prev index next >