Skip to content
This repository has been archived by the owner on Aug 11, 2020. It is now read-only.

Commit

Permalink
[AETHER-46] Fire events for downloads of artifacts/metadata
Browse files Browse the repository at this point in the history
  • Loading branch information
bentmann committed Nov 11, 2010
1 parent a2de277 commit e609037
Show file tree
Hide file tree
Showing 9 changed files with 206 additions and 1 deletion.
Expand Up @@ -33,6 +33,14 @@ public void artifactDescriptorMissing( RepositoryEvent event )
{
}

public void artifactDownloaded( RepositoryEvent event )
{
}

public void artifactDownloading( RepositoryEvent event )
{
}

public void artifactInstalled( RepositoryEvent event )
{
}
Expand All @@ -57,6 +65,14 @@ public void metadataDeploying( RepositoryEvent event )
{
}

public void metadataDownloaded( RepositoryEvent event )
{
}

public void metadataDownloading( RepositoryEvent event )
{
}

public void metadataInstalled( RepositoryEvent event )
{
}
Expand Down
Expand Up @@ -36,6 +36,10 @@ enum EventType
ARTIFACT_RESOLVED,
METADATA_RESOLVING,
METADATA_RESOLVED,
ARTIFACT_DOWNLOADING,
ARTIFACT_DOWNLOADED,
METADATA_DOWNLOADING,
METADATA_DOWNLOADED,
ARTIFACT_INSTALLING,
ARTIFACT_INSTALLED,
METADATA_INSTALLING,
Expand Down
Expand Up @@ -35,6 +35,14 @@ public interface RepositoryListener

void metadataResolved( RepositoryEvent event );

void artifactDownloading( RepositoryEvent event );

void artifactDownloaded( RepositoryEvent event );

void metadataDownloading( RepositoryEvent event );

void metadataDownloaded( RepositoryEvent event );

void artifactInstalling( RepositoryEvent event );

void artifactInstalled( RepositoryEvent event );
Expand Down
10 changes: 10 additions & 0 deletions aether-demo/src/main/java/demo/ConsoleRepositoryListener.java
Expand Up @@ -60,6 +60,16 @@ public void artifactResolved( RepositoryEvent event )
out.println( "Resolved artifact " + event.getArtifact() + " from " + event.getRepository() );
}

public void artifactDownloading( RepositoryEvent event )
{
out.println( "Downloading artifact " + event.getArtifact() + " from " + event.getRepository() );
}

public void artifactDownloaded( RepositoryEvent event )
{
out.println( "Downloaded artifact " + event.getArtifact() + " from " + event.getRepository() );
}

public void artifactResolving( RepositoryEvent event )
{
out.println( "Resolving artifact " + event.getArtifact() );
Expand Down
Expand Up @@ -391,10 +391,17 @@ else if ( local.getFile() != null )
downloads.add( download );
item.download = download;
}

if ( downloads.isEmpty() )
{
continue;
}

for ( ArtifactDownload download : downloads )
{
artifactDownloading( session, download.getArtifact(), group.repository );
}

try
{
RepositoryConnector connector =
Expand All @@ -415,6 +422,7 @@ else if ( local.getFile() != null )
download.setException( new ArtifactTransferException( download.getArtifact(), group.repository, e ) );
}
}

for ( ResolutionItem item : group.items )
{
ArtifactDownload download = item.download;
Expand All @@ -428,6 +436,7 @@ else if ( local.getFile() != null )
item.updateCheck.setException( download.getException() );
updateCheckManager.touchArtifact( session, item.updateCheck );
}

if ( download.getException() == null )
{
item.resolved.set( true );
Expand Down Expand Up @@ -457,11 +466,15 @@ else if ( local.getFile() != null )
}
}

artifactDownloaded( session, artifact, group.repository, null );

artifactResolved( session, artifact, group.repository, null );
}
else
{
item.result.addException( download.getException() );

artifactDownloaded( session, download.getArtifact(), group.repository, download.getException() );
}
}
}
Expand Down Expand Up @@ -546,6 +559,36 @@ private void artifactResolved( RepositorySystemSession session, Artifact artifac
}
}

private void artifactDownloading( RepositorySystemSession session, Artifact artifact, RemoteRepository repository )
{
RepositoryListener listener = session.getRepositoryListener();
if ( listener != null )
{
DefaultRepositoryEvent event = new DefaultRepositoryEvent( EventType.ARTIFACT_DOWNLOADING, session );
event.setArtifact( artifact );
event.setRepository( repository );
listener.artifactDownloading( event );
}
}

private void artifactDownloaded( RepositorySystemSession session, Artifact artifact, RemoteRepository repository,
Exception exception )
{
RepositoryListener listener = session.getRepositoryListener();
if ( listener != null )
{
DefaultRepositoryEvent event = new DefaultRepositoryEvent( EventType.ARTIFACT_DOWNLOADED, session );
event.setArtifact( artifact );
event.setRepository( repository );
event.setException( exception );
if ( artifact != null )
{
event.setFile( artifact.getFile() );
}
listener.artifactDownloaded( event );
}
}

static class ResolutionGroup
{

Expand Down
Expand Up @@ -324,6 +324,11 @@ private void upload( Collection<MetadataUpload> metadataUploads, RepositorySyste
event.setMetadata( metadata );
event.setRepository( repository );
listener.metadataResolving( event );

event = new DefaultRepositoryEvent( EventType.METADATA_DOWNLOADING, session );
event.setMetadata( metadata );
event.setRepository( repository );
listener.metadataDownloading( event );
}

RepositoryPolicy policy = getPolicy( session, repository, metadata.getNature() );
Expand All @@ -335,10 +340,18 @@ private void upload( Collection<MetadataUpload> metadataUploads, RepositorySyste

if ( listener != null )
{
DefaultRepositoryEvent event = new DefaultRepositoryEvent( EventType.METADATA_RESOLVED, session );
DefaultRepositoryEvent event = new DefaultRepositoryEvent( EventType.METADATA_DOWNLOADED, session );
event.setMetadata( metadata );
event.setRepository( repository );
event.setException( download.getException() );
event.setFile( dstFile );
listener.metadataDownloaded( event );

event = new DefaultRepositoryEvent( EventType.METADATA_RESOLVED, session );
event.setMetadata( metadata );
event.setRepository( repository );
event.setException( download.getException() );
event.setFile( dstFile );
listener.metadataResolved( event );
}

Expand Down
Expand Up @@ -378,6 +378,33 @@ private void metadataResolved( RepositorySystemSession session, Metadata metadat
}
}

private void metadataDownloading( RepositorySystemSession session, Metadata metadata, ArtifactRepository repository )
{
RepositoryListener listener = session.getRepositoryListener();
if ( listener != null )
{
DefaultRepositoryEvent event = new DefaultRepositoryEvent( EventType.METADATA_DOWNLOADING, session );
event.setMetadata( metadata );
event.setRepository( repository );
listener.metadataDownloading( event );
}
}

private void metadataDownloaded( RepositorySystemSession session, Metadata metadata, ArtifactRepository repository,
File file, Exception exception )
{
RepositoryListener listener = session.getRepositoryListener();
if ( listener != null )
{
DefaultRepositoryEvent event = new DefaultRepositoryEvent( EventType.METADATA_DOWNLOADED, session );
event.setMetadata( metadata );
event.setRepository( repository );
event.setException( exception );
event.setFile( file );
listener.metadataDownloaded( event );
}
}

private Executor getExecutor( int threads )
{
if ( threads <= 1 )
Expand Down Expand Up @@ -439,6 +466,8 @@ public ResolveTask( RepositorySystemSession session, MetadataResult result, File

public void run()
{
metadataDownloading( session, request.getMetadata(), request.getRepository() );

try
{
List<RemoteRepository> repositories = new ArrayList<RemoteRepository>();
Expand Down Expand Up @@ -485,6 +514,8 @@ public void run()
{
updateCheckManager.touchMetadata( session, check.setException( exception ) );
}

metadataDownloaded( session, request.getMetadata(), request.getRepository(), metadataFile, exception );
}

}
Expand Down
Expand Up @@ -117,6 +117,22 @@ public void artifactResolved( RepositoryEvent event )

}

public void artifactDownloading( RepositoryEvent event )
{
}

public void artifactDownloaded( RepositoryEvent event )
{
}

public void metadataDownloaded( RepositoryEvent event )
{
}

public void metadataDownloading( RepositoryEvent event )
{
}

public void metadataResolving( RepositoryEvent event )
{
Type type = Type.METADATA_RESOLVING;
Expand Down
Expand Up @@ -163,6 +163,38 @@ public void artifactDescriptorMissing( RepositoryEvent event )
}
}

@Override
public void artifactDownloaded( RepositoryEvent event )
{
for ( RepositoryListener listener : listeners )
{
try
{
listener.artifactDownloaded( event );
}
catch ( RuntimeException e )
{
handleError( event, listener, e );
}
}
}

@Override
public void artifactDownloading( RepositoryEvent event )
{
for ( RepositoryListener listener : listeners )
{
try
{
listener.artifactDownloading( event );
}
catch ( RuntimeException e )
{
handleError( event, listener, e );
}
}
}

@Override
public void artifactInstalled( RepositoryEvent event )
{
Expand Down Expand Up @@ -259,6 +291,38 @@ public void metadataDeploying( RepositoryEvent event )
}
}

@Override
public void metadataDownloaded( RepositoryEvent event )
{
for ( RepositoryListener listener : listeners )
{
try
{
listener.metadataDownloaded( event );
}
catch ( RuntimeException e )
{
handleError( event, listener, e );
}
}
}

@Override
public void metadataDownloading( RepositoryEvent event )
{
for ( RepositoryListener listener : listeners )
{
try
{
listener.metadataDownloading( event );
}
catch ( RuntimeException e )
{
handleError( event, listener, e );
}
}
}

@Override
public void metadataInstalled( RepositoryEvent event )
{
Expand Down

0 comments on commit e609037

Please sign in to comment.