public static List unZip()

in src/main/java/org/apache/pulsar/manager/EmbeddedTomcatCustomizer.java [119:150]


    public static List<File> unZip(File war, File outDir) throws IOException {
        log.info("Unzipping " + war.getAbsolutePath() + " to " + outDir);
        try (ZipInputStream zipStream = new ZipInputStream(new FileInputStream(war), StandardCharsets.UTF_8);) {
            ZipEntry entry = zipStream.getNextEntry();
            List<File> listFiles = new ArrayList<>();
            while (entry != null) {
                if (entry.isDirectory()) {
                    entry = zipStream.getNextEntry();
                    continue;
                }

                String normalized = entry.getName();
                File outFile = new File(outDir, normalized);
                File parentDir = outFile.getParentFile();
                if (parentDir != null && !parentDir.isDirectory()) {
                    Files.createDirectories(parentDir.toPath());
                }

                listFiles.add(outFile);
                try (FileOutputStream out = new FileOutputStream(outFile);
                        BufferedOutputStream oo = new BufferedOutputStream(out)) {
                    copyStream(zipStream, oo);
                }
                entry = zipStream.getNextEntry();

            }
            return listFiles;
        } catch (IllegalArgumentException ex) {
            throw new IOException(ex);
        }

    }