use of com.synopsys.integration.blackduck.bdio2.model.BdioFileContent in project blackduck-common by blackducksoftware.
the class Bdio2UploadJob method attemptJob.
@Override
public void attemptJob() throws IntegrationException {
Response headerResponse = bdio2Uploader.start(header, editor);
complete = true;
try {
throwIfResponseUnsuccessful(headerResponse);
uploadUrl = new HttpUrl(headerResponse.getHeaderValue("location"));
logger.debug(String.format("Starting upload to %s", uploadUrl.string()));
for (BdioFileContent content : bdioEntries) {
Response chunkResponse = bdio2Uploader.append(uploadUrl, count, content, editor);
throwIfResponseUnsuccessful(chunkResponse);
}
throwIfResponseUnsuccessful(bdio2Uploader.finish(uploadUrl, count, editor));
} catch (RetriableBdioUploadException e) {
complete = false;
}
}
use of com.synopsys.integration.blackduck.bdio2.model.BdioFileContent in project blackduck-common by blackducksoftware.
the class Bdio2ContentExtractor method readEntryContent.
private BdioFileContent readEntryContent(ZipFile zipFile, ZipEntry entry) throws IntegrationException {
String entryContent;
byte[] buffer = new byte[4096];
try (InputStream zipInputStream = zipFile.getInputStream(entry);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(byteArrayOutputStream)) {
int length;
while ((length = zipInputStream.read(buffer)) > 0) {
bufferedOutputStream.write(buffer, 0, length);
}
bufferedOutputStream.flush();
entryContent = new String(byteArrayOutputStream.toByteArray(), StandardCharsets.UTF_8);
} catch (IOException ex) {
throw new IntegrationException(String.format("Error reading entry %s", entry.getName()), ex);
}
return new BdioFileContent(entry.getName(), entryContent);
}
use of com.synopsys.integration.blackduck.bdio2.model.BdioFileContent in project blackduck-common by blackducksoftware.
the class Bdio2FileUploadService method uploadFiles.
private Bdio2UploadResult uploadFiles(List<BdioFileContent> bdioFiles, @Nullable NameVersion nameVersion, long timeout) throws IntegrationException, InterruptedException {
if (bdioFiles.isEmpty()) {
throw new IllegalArgumentException("BDIO files cannot be empty.");
}
BdioFileContent header = bdioFiles.stream().filter(content -> content.getFileName().equals(FILE_NAME_BDIO_HEADER_JSONLD)).findFirst().orElseThrow(() -> new BlackDuckIntegrationException("Cannot find BDIO header file" + FILE_NAME_BDIO_HEADER_JSONLD + "."));
List<BdioFileContent> remainingFiles = bdioFiles.stream().filter(content -> !content.getFileName().equals(FILE_NAME_BDIO_HEADER_JSONLD)).collect(Collectors.toList());
int count = remainingFiles.size();
logger.debug("BDIO upload file count = " + count);
BlackDuckRequestBuilderEditor editor = noOp -> {
};
if (nameVersion != null) {
editor = builder -> builder.addHeader(Bdio2StreamUploader.PROJECT_NAME_HEADER, nameVersion.getName()).addHeader(Bdio2StreamUploader.VERSION_NAME_HEADER, nameVersion.getVersion());
}
ResilientJobConfig jobConfig = new ResilientJobConfig(logger, timeout, System.currentTimeMillis(), BD_WAIT_AND_RETRY_INTERVAL);
Bdio2UploadJob bdio2UploadJob = new Bdio2UploadJob(bdio2Uploader, header, remainingFiles, editor, count);
ResilientJobExecutor jobExecutor = new ResilientJobExecutor(jobConfig);
return jobExecutor.executeJob(bdio2UploadJob);
}
Aggregations