use of org.sonatype.aether.util.listener.DefaultTransferEvent in project sonatype-aether by sonatype.
the class AsyncRepositoryConnector method newEvent.
private TransferEvent newEvent(TransferResource resource, Exception e, TransferEvent.RequestType requestType, TransferEvent.EventType eventType) {
DefaultTransferEvent event = new DefaultTransferEvent();
event.setResource(resource);
event.setRequestType(requestType);
event.setType(eventType);
event.setException(e);
return event;
}
use of org.sonatype.aether.util.listener.DefaultTransferEvent in project sonatype-aether by sonatype.
the class FileRepositoryWorker method copy.
private long copy(File src, File target) throws TransferCancelledException, IOException {
if (src == null) {
throw new IllegalArgumentException("source file not specified");
}
if (!src.isFile()) {
throw new FileNotFoundException(src.getAbsolutePath());
}
if (target == null) {
throw new IllegalArgumentException("target file not specified");
}
resource.setContentLength(src.length());
DefaultTransferEvent event = newEvent(transfer);
catapult.fireStarted(event);
return fileProcessor.copy(src, target, new FileProcessor.ProgressListener() {
int total = 0;
public void progressed(ByteBuffer buffer) throws IOException {
total += buffer.remaining();
DefaultTransferEvent event = newEvent(transfer);
event.setDataBuffer(buffer).setTransferredBytes(total);
try {
catapult.fireProgressed(event);
} catch (TransferCancelledException e) {
throw new IOException("Transfer was cancelled: " + e.getMessage());
}
}
});
}
use of org.sonatype.aether.util.listener.DefaultTransferEvent in project sonatype-aether by sonatype.
the class FileRepositoryWorker method run.
/**
* Do transfer according to {@link RepositoryConnector} specifications.
*
* @see FileRepositoryConnector
*/
public void run() {
File target = null;
long totalTransferred = -1;
try {
transfer.setState(State.ACTIVE);
resource = newResource(transfer, repository);
DefaultTransferEvent event = newEvent(transfer);
catapult.fireInitiated(event);
File baseDir = new File(PathUtils.basedir(repository.getUrl()));
File localFile = transfer.getFile();
File repoFile = new File(baseDir, transfer.getRelativePath());
File src = null;
switch(direction) {
case UPLOAD:
src = localFile;
target = repoFile;
break;
case DOWNLOAD:
src = repoFile;
target = localFile;
break;
}
if (transfer.isExistenceCheck()) {
if (!src.exists()) {
throw new FileNotFoundException(src.getAbsolutePath());
}
} else {
File tmp = tmpfile(target);
totalTransferred = copy(src, tmp);
fileProcessor.move(tmp, target);
switch(direction) {
case UPLOAD:
writeChecksum(src, target.getPath());
break;
case DOWNLOAD:
verifyChecksum(src);
break;
}
}
} catch (FileNotFoundException e) {
switch(transfer.getType()) {
case ARTIFACT:
ArtifactTransferException artEx;
if (Direction.DOWNLOAD.equals(direction)) {
artEx = new ArtifactNotFoundException(transfer.getArtifact(), repository);
} else {
artEx = new ArtifactTransferException(transfer.getArtifact(), repository, e);
}
transfer.setException(artEx);
break;
case METADATA:
MetadataTransferException mdEx;
if (Direction.DOWNLOAD.equals(direction)) {
mdEx = new MetadataNotFoundException(transfer.getMetadata(), repository);
} else {
mdEx = new MetadataTransferException(transfer.getMetadata(), repository, e);
}
transfer.setException(mdEx);
break;
}
} catch (Throwable t) {
logger.debug(t.getMessage(), t);
switch(transfer.getType()) {
case ARTIFACT:
transfer.setException(new ArtifactTransferException(transfer.getArtifact(), repository, t));
break;
case METADATA:
transfer.setException(new MetadataTransferException(transfer.getMetadata(), repository, t));
break;
}
} finally {
transfer.setState(State.DONE);
if (transfer.getException() == null) {
DefaultTransferEvent event = newEvent(transfer);
event.setTransferredBytes((int) totalTransferred);
catapult.fireSucceeded(event);
} else {
// cleanup
if (direction.equals(Direction.UPLOAD)) {
for (String ext : checksumAlgos.values()) {
new File(target.getPath() + ext).delete();
}
}
if (target != null) {
target.delete();
}
DefaultTransferEvent event = newEvent(transfer);
catapult.fireFailed(event);
}
}
}
use of org.sonatype.aether.util.listener.DefaultTransferEvent in project sonatype-aether by sonatype.
the class WagonTransferListenerAdapter method newEvent.
public DefaultTransferEvent newEvent() {
DefaultTransferEvent e = new DefaultTransferEvent();
e.setResource(resource);
e.setTransferredBytes(transferredBytes);
return e;
}
use of org.sonatype.aether.util.listener.DefaultTransferEvent in project sonatype-aether by sonatype.
the class FileRepositoryWorker method newEvent.
private DefaultTransferEvent newEvent(TransferWrapper transfer) {
DefaultTransferEvent event = new DefaultTransferEvent();
event.setResource(resource);
event.setRequestType(direction.getType());
event.setException(transfer.getException());
return event;
}
Aggregations