}
if (logger.isInfoEnabled())
logger.info("Installing " + file);
ZipFile zipFile = new ZipFile(file);
byte[] buffer = new byte[5 * 1024];
Enumeration<ZipEntry> entries = (Enumeration<ZipEntry>) zipFile.entries();
while (entries.hasMoreElements()) {
ZipEntry entry = entries.nextElement();
String repoEntryName = getRepoEntryName(entry);
if (repoEntryName != null) {
File extract = extract(zipFile, buffer, entry, repoEntryName, localRepoPath);
if (isFeaturesRepository(extract)) {
addToFeaturesRepositories(repoEntryName);
}
}
if (entry.getName().startsWith("resource")) {
String resourceEntryName = entry.getName().substring("resource/".length());
extract(zipFile, buffer, entry, resourceEntryName, base);
}
}
zipFile.close();
updateTimestamp(file);
}