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
|