in src/main/java/org/apache/creadur/tentacles/Main.java [338:377]
private void unpack(final File archive) {
log.info("Unpack {}", archive);
try {
final ZipInputStream zip = this.ioSystem.unzip(archive);
final File contents =
new Archive(archive, this.fileSystem, this.layout)
.contentsDirectory();
try {
ZipEntry entry = null;
while ((entry = zip.getNextEntry()) != null) {
if (entry.isDirectory()) {
continue;
}
final String path = entry.getName();
final File fileEntry = new File(contents, path);
this.fileSystem.mkparent(fileEntry);
// Open the output file
this.ioSystem.copy(zip, fileEntry);
if (fileEntry.getName().endsWith(".jar")) {
unpack(fileEntry);
}
}
} finally {
this.ioSystem.close(zip);
}
} catch (final IOException e) {
log.error("Not a zip {}", archive);
}
}