in agent/service/src/main/java/org/apache/airavata/mft/agent/transport/TransportClassLoader.java [56:75]
public static final Map<String, byte[]> unzipRecursively(final ByteArrayOutputStream baos) {
final Map<String, byte[]> result = new HashMap<String, byte[]>();
try(final ZipInputStream in = new ZipInputStream(new ByteArrayInputStream(baos.toByteArray()))) {
ZipEntry entry;
while ((entry = in.getNextEntry()) != null) {
final ByteArrayOutputStream os = new ByteArrayOutputStream();
if (!entry.isDirectory()) {
os.write(in.readAllBytes());
if (entry.getName().toLowerCase().endsWith(".jar")) {
result.putAll(unzipRecursively(os));
} else if (entry.getName().toLowerCase().endsWith(".class")) {
result.put(entry.getName().replaceAll("/", ".").substring(0, entry.getName().length() - 6), os.toByteArray());
}
}
}
return result;
} catch (Exception e) {
throw new RuntimeException(e);
}
}