< prev index next >

src/java.base/share/classes/jdk/internal/module/ModulePath.java

Print this page




  26 package jdk.internal.module;
  27 
  28 import java.io.BufferedInputStream;
  29 import java.io.BufferedReader;
  30 import java.io.File;
  31 import java.io.IOException;
  32 import java.io.InputStream;
  33 import java.io.InputStreamReader;
  34 import java.io.UncheckedIOException;
  35 import java.lang.module.FindException;
  36 import java.lang.module.InvalidModuleDescriptorException;
  37 import java.lang.module.ModuleDescriptor;
  38 import java.lang.module.ModuleDescriptor.Builder;
  39 import java.lang.module.ModuleFinder;
  40 import java.lang.module.ModuleReference;
  41 import java.net.URI;
  42 import java.nio.file.DirectoryStream;
  43 import java.nio.file.Files;
  44 import java.nio.file.NoSuchFileException;
  45 import java.nio.file.Path;
  46 import java.nio.file.Paths;
  47 import java.nio.file.attribute.BasicFileAttributes;
  48 import java.util.ArrayList;
  49 import java.util.Collections;
  50 import java.util.HashMap;
  51 import java.util.List;
  52 import java.util.Map;
  53 import java.util.Objects;
  54 import java.util.Optional;
  55 import java.util.Set;
  56 import java.util.jar.Attributes;
  57 import java.util.jar.JarEntry;
  58 import java.util.jar.JarFile;
  59 import java.util.jar.Manifest;
  60 import java.util.regex.Matcher;
  61 import java.util.regex.Pattern;
  62 import java.util.stream.Collectors;
  63 import java.util.zip.ZipException;
  64 import java.util.zip.ZipFile;
  65 
  66 import jdk.internal.jmod.JmodFile;


 343                     return readJMod(entry);
 344                 }
 345             }
 346 
 347             return null;
 348 
 349         } catch (InvalidModuleDescriptorException e) {
 350             throw new FindException("Error reading module: " + entry, e);
 351         }
 352     }
 353 
 354     /**
 355      * Returns a string with the file name of the module if possible.
 356      * If the module location is not a file URI then return the URI
 357      * as a string.
 358      */
 359     private String fileName(ModuleReference mref) {
 360         URI uri = mref.location().orElse(null);
 361         if (uri != null) {
 362             if (uri.getScheme().equalsIgnoreCase("file")) {
 363                 Path file = Paths.get(uri);
 364                 return file.getFileName().toString();
 365             } else {
 366                 return uri.toString();
 367             }
 368         } else {
 369             return "<unknown>";
 370         }
 371     }
 372 
 373     // -- JMOD files --
 374 
 375     private Set<String> jmodPackages(JmodFile jf) {
 376         return jf.stream()
 377             .filter(e -> e.section() == Section.CLASSES)
 378             .map(JmodFile.Entry::name)
 379             .map(this::toPackageName)
 380             .flatMap(Optional::stream)
 381             .collect(Collectors.toSet());
 382     }
 383 




  26 package jdk.internal.module;
  27 
  28 import java.io.BufferedInputStream;
  29 import java.io.BufferedReader;
  30 import java.io.File;
  31 import java.io.IOException;
  32 import java.io.InputStream;
  33 import java.io.InputStreamReader;
  34 import java.io.UncheckedIOException;
  35 import java.lang.module.FindException;
  36 import java.lang.module.InvalidModuleDescriptorException;
  37 import java.lang.module.ModuleDescriptor;
  38 import java.lang.module.ModuleDescriptor.Builder;
  39 import java.lang.module.ModuleFinder;
  40 import java.lang.module.ModuleReference;
  41 import java.net.URI;
  42 import java.nio.file.DirectoryStream;
  43 import java.nio.file.Files;
  44 import java.nio.file.NoSuchFileException;
  45 import java.nio.file.Path;

  46 import java.nio.file.attribute.BasicFileAttributes;
  47 import java.util.ArrayList;
  48 import java.util.Collections;
  49 import java.util.HashMap;
  50 import java.util.List;
  51 import java.util.Map;
  52 import java.util.Objects;
  53 import java.util.Optional;
  54 import java.util.Set;
  55 import java.util.jar.Attributes;
  56 import java.util.jar.JarEntry;
  57 import java.util.jar.JarFile;
  58 import java.util.jar.Manifest;
  59 import java.util.regex.Matcher;
  60 import java.util.regex.Pattern;
  61 import java.util.stream.Collectors;
  62 import java.util.zip.ZipException;
  63 import java.util.zip.ZipFile;
  64 
  65 import jdk.internal.jmod.JmodFile;


 342                     return readJMod(entry);
 343                 }
 344             }
 345 
 346             return null;
 347 
 348         } catch (InvalidModuleDescriptorException e) {
 349             throw new FindException("Error reading module: " + entry, e);
 350         }
 351     }
 352 
 353     /**
 354      * Returns a string with the file name of the module if possible.
 355      * If the module location is not a file URI then return the URI
 356      * as a string.
 357      */
 358     private String fileName(ModuleReference mref) {
 359         URI uri = mref.location().orElse(null);
 360         if (uri != null) {
 361             if (uri.getScheme().equalsIgnoreCase("file")) {
 362                 Path file = Path.get(uri);
 363                 return file.getFileName().toString();
 364             } else {
 365                 return uri.toString();
 366             }
 367         } else {
 368             return "<unknown>";
 369         }
 370     }
 371 
 372     // -- JMOD files --
 373 
 374     private Set<String> jmodPackages(JmodFile jf) {
 375         return jf.stream()
 376             .filter(e -> e.section() == Section.CLASSES)
 377             .map(JmodFile.Entry::name)
 378             .map(this::toPackageName)
 379             .flatMap(Optional::stream)
 380             .collect(Collectors.toSet());
 381     }
 382 


< prev index next >