Search in sources :

Example 1 with DefaultTransferEvent

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;
}
Also used : DefaultTransferEvent(org.sonatype.aether.util.listener.DefaultTransferEvent)

Example 2 with DefaultTransferEvent

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());
            }
        }
    });
}
Also used : FileProcessor(org.sonatype.aether.spi.io.FileProcessor) TransferCancelledException(org.sonatype.aether.transfer.TransferCancelledException) FileNotFoundException(java.io.FileNotFoundException) DefaultTransferEvent(org.sonatype.aether.util.listener.DefaultTransferEvent) IOException(java.io.IOException) ByteBuffer(java.nio.ByteBuffer)

Example 3 with DefaultTransferEvent

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);
        }
    }
}
Also used : MetadataNotFoundException(org.sonatype.aether.transfer.MetadataNotFoundException) ArtifactTransferException(org.sonatype.aether.transfer.ArtifactTransferException) FileNotFoundException(java.io.FileNotFoundException) MetadataTransferException(org.sonatype.aether.transfer.MetadataTransferException) DefaultTransferEvent(org.sonatype.aether.util.listener.DefaultTransferEvent) File(java.io.File) ArtifactNotFoundException(org.sonatype.aether.transfer.ArtifactNotFoundException)

Example 4 with DefaultTransferEvent

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;
}
Also used : DefaultTransferEvent(org.sonatype.aether.util.listener.DefaultTransferEvent)

Example 5 with DefaultTransferEvent

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;
}
Also used : DefaultTransferEvent(org.sonatype.aether.util.listener.DefaultTransferEvent)

Aggregations

DefaultTransferEvent (org.sonatype.aether.util.listener.DefaultTransferEvent)7 File (java.io.File)2 FileNotFoundException (java.io.FileNotFoundException)2 IOException (java.io.IOException)2 ByteBuffer (java.nio.ByteBuffer)1 FileProcessor (org.sonatype.aether.spi.io.FileProcessor)1 ArtifactNotFoundException (org.sonatype.aether.transfer.ArtifactNotFoundException)1 ArtifactTransferException (org.sonatype.aether.transfer.ArtifactTransferException)1 ChecksumFailureException (org.sonatype.aether.transfer.ChecksumFailureException)1 MetadataNotFoundException (org.sonatype.aether.transfer.MetadataNotFoundException)1 MetadataTransferException (org.sonatype.aether.transfer.MetadataTransferException)1 TransferCancelledException (org.sonatype.aether.transfer.TransferCancelledException)1