Package org.sonatype.aether.util.listener

Examples of org.sonatype.aether.util.listener.DefaultTransferEvent


        long totalTransferred = 0;
        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 );
            }
        }
    }
View Full Code Here


            if ( RepositoryPolicy.CHECKSUM_POLICY_FAIL.equals( transfer.getChecksumPolicy() ) )
            {
                throw e;
            }

            DefaultTransferEvent event = newEvent( transfer );
            event.setException( e );
            catapult.fireCorrupted( event );
        }
    }
View Full Code Here

        {
            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 )
View Full Code Here

        } );
    }

    private DefaultTransferEvent newEvent( TransferWrapper transfer )
    {
        DefaultTransferEvent event = new DefaultTransferEvent();
        event.setResource( resource );
        event.setRequestType( direction.getType() );
        event.setException( transfer.getException() );
        return event;
    }
View Full Code Here

TOP

Related Classes of org.sonatype.aether.util.listener.DefaultTransferEvent

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.