< prev index next >

src/jdk.jartool/share/classes/sun/tools/jar/Main.java

Print this page
rev 50498 : 8199871: Deprecate pack200 and unpack200 tools
Reviewed-by:

*** 29,78 **** import java.lang.module.Configuration; import java.lang.module.FindException; import java.lang.module.InvalidModuleDescriptorException; import java.lang.module.ModuleDescriptor; import java.lang.module.ModuleDescriptor.Exports; - import java.lang.module.ModuleDescriptor.Provides; import java.lang.module.ModuleDescriptor.Opens; ! import java.lang.module.ModuleDescriptor.Requires; import java.lang.module.ModuleDescriptor.Version; import java.lang.module.ModuleFinder; import java.lang.module.ModuleReader; import java.lang.module.ModuleReference; - import java.lang.module.ResolutionException; import java.lang.module.ResolvedModule; import java.net.URI; import java.nio.ByteBuffer; - import java.nio.file.Path; import java.nio.file.Files; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; import java.util.*; import java.util.function.Consumer; ! import java.util.function.Supplier; import java.util.regex.Pattern; import java.util.stream.Collectors; import java.util.stream.Stream; ! import java.util.zip.*; ! import java.util.jar.*; ! import java.util.jar.Pack200.*; ! import java.util.jar.Manifest; ! import java.text.MessageFormat; ! import jdk.internal.module.Checks; import jdk.internal.module.ModuleHashes; import jdk.internal.module.ModuleHashesBuilder; import jdk.internal.module.ModuleInfo; import jdk.internal.module.ModuleInfoExtender; import jdk.internal.module.ModuleResolution; import jdk.internal.module.ModuleTarget; import jdk.internal.util.jar.JarIndex; ! import static jdk.internal.util.jar.JarIndex.INDEX_NAME; import static java.util.jar.JarFile.MANIFEST_NAME; import static java.util.stream.Collectors.joining; ! import static java.nio.file.StandardCopyOption.REPLACE_EXISTING; /** * This class implements a simple utility for creating files in the JAR * (Java Archive) file format. The JAR format is based on the ZIP file * format, with optional meta-information stored in a MANIFEST entry. --- 29,79 ---- import java.lang.module.Configuration; import java.lang.module.FindException; import java.lang.module.InvalidModuleDescriptorException; import java.lang.module.ModuleDescriptor; import java.lang.module.ModuleDescriptor.Exports; import java.lang.module.ModuleDescriptor.Opens; ! import java.lang.module.ModuleDescriptor.Provides; import java.lang.module.ModuleDescriptor.Version; import java.lang.module.ModuleFinder; import java.lang.module.ModuleReader; import java.lang.module.ModuleReference; import java.lang.module.ResolvedModule; import java.net.URI; import java.nio.ByteBuffer; import java.nio.file.Files; + import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; + import java.text.MessageFormat; import java.util.*; import java.util.function.Consumer; ! import java.util.jar.Attributes; ! import java.util.jar.JarFile; ! import java.util.jar.JarOutputStream; ! import java.util.jar.Manifest; import java.util.regex.Pattern; import java.util.stream.Collectors; import java.util.stream.Stream; ! import java.util.zip.CRC32; ! import java.util.zip.ZipEntry; ! import java.util.zip.ZipFile; ! import java.util.zip.ZipInputStream; ! import java.util.zip.ZipOutputStream; import jdk.internal.module.Checks; import jdk.internal.module.ModuleHashes; import jdk.internal.module.ModuleHashesBuilder; import jdk.internal.module.ModuleInfo; import jdk.internal.module.ModuleInfoExtender; import jdk.internal.module.ModuleResolution; import jdk.internal.module.ModuleTarget; import jdk.internal.util.jar.JarIndex; ! import static java.nio.file.StandardCopyOption.REPLACE_EXISTING; import static java.util.jar.JarFile.MANIFEST_NAME; import static java.util.stream.Collectors.joining; ! import static jdk.internal.util.jar.JarIndex.INDEX_NAME; /** * This class implements a simple utility for creating files in the JAR * (Java Archive) file format. The JAR format is based on the ZIP file * format, with optional meta-information stored in a MANIFEST entry.
*** 149,158 **** --- 150,161 ---- * pflag: preserve/don't strip leading slash and .. component from file name * dflag: print module descriptor */ boolean cflag, uflag, xflag, tflag, vflag, flag0, Mflag, iflag, nflag, pflag, dflag; + boolean suppressDeprecateMsg = false; + /* To support additional GNU Style informational options */ Consumer<PrintWriter> info; /* Modular jar related options */ Version moduleVersion;
*** 236,245 **** --- 239,249 ---- private boolean ok; /** * Starts main program with the specified arguments. */ + @SuppressWarnings({"removal"}) public synchronized boolean run(String args[]) { ok = true; if (!parseArgs(args)) { return false; }
*** 313,327 **** tmpFile = createTemporaryFile(tmpbase, ".jar"); try (OutputStream out = new FileOutputStream(tmpFile)) { create(new BufferedOutputStream(out, 4096), manifest); } if (nflag) { File packFile = createTemporaryFile(tmpbase, ".pack"); try { ! Packer packer = Pack200.newPacker(); Map<String, String> p = packer.properties(); ! p.put(Packer.EFFORT, "1"); // Minimal effort to conserve CPU try (JarFile jarFile = new JarFile(tmpFile.getCanonicalPath()); OutputStream pack = new FileOutputStream(packFile)) { packer.pack(jarFile, pack); } --- 317,334 ---- tmpFile = createTemporaryFile(tmpbase, ".jar"); try (OutputStream out = new FileOutputStream(tmpFile)) { create(new BufferedOutputStream(out, 4096), manifest); } if (nflag) { + if (!suppressDeprecateMsg) { + warn(formatMsg("warn.flag.is.deprecated", "-n")); + } File packFile = createTemporaryFile(tmpbase, ".pack"); try { ! java.util.jar.Pack200.Packer packer = java.util.jar.Pack200.newPacker(); Map<String, String> p = packer.properties(); ! p.put(java.util.jar.Pack200.Packer.EFFORT, "1"); // Minimal effort to conserve CPU try (JarFile jarFile = new JarFile(tmpFile.getCanonicalPath()); OutputStream pack = new FileOutputStream(packFile)) { packer.pack(jarFile, pack); }
*** 330,340 **** } tmpFile = createTemporaryFile(tmpbase, ".jar"); try (OutputStream out = new FileOutputStream(tmpFile); JarOutputStream jos = new JarOutputStream(out)) { ! Unpacker unpacker = Pack200.newUnpacker(); unpacker.unpack(packFile, jos); } } finally { Files.deleteIfExists(packFile.toPath()); } --- 337,347 ---- } tmpFile = createTemporaryFile(tmpbase, ".jar"); try (OutputStream out = new FileOutputStream(tmpFile); JarOutputStream jos = new JarOutputStream(out)) { ! java.util.jar.Pack200.Unpacker unpacker = java.util.jar.Pack200.newUnpacker(); unpacker.unpack(packFile, jos); } } finally { Files.deleteIfExists(packFile.toPath()); }
< prev index next >