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);
}
}