private ArtifactResult downloadZipped(Node node, ArtifactContext context) { ArtifactContext zippedContext = context.getZipContext(); ArtifactResult zipResult = getArtifactResult(zippedContext); if (zipResult != null) { String zipName = zipResult.artifact().getName(); File unzippedFolder = new File( zipResult.artifact().getParentFile(), zipName.substring(0, zipName.length() - 4)); try { IOUtils.extractArchive(zipResult.artifact(), unzippedFolder); } catch (IOException e) { throw new RepositoryException( "Failed to unzip folder downloaded from Herd: " + zipResult.artifact(), e); } return new FileArtifactResult( zipResult.repository(), this, zipResult.name(), zipResult.version(), unzippedFolder, zipResult.repositoryDisplayString()); } else { return null; } }
private void uploadZipped(Node parent, ArtifactContext context, File folder) { File zippedFolder = null; try { try { zippedFolder = IOUtils.zipFolder(folder); } catch (IOException e) { throw new RepositoryException("Failed to zip folder for upload to Herd: " + folder, e); } ArtifactContext zippedContext = context.getZipContext(); putArtifact(zippedContext, zippedFolder); ShaSigner.signArtifact(this, zippedContext, zippedFolder, log); } finally { if (zippedFolder != null) { FileUtil.deleteQuietly(zippedFolder); } } }