From 11afa6961fa34cb4d666759b646c06f700a744f9 Mon Sep 17 00:00:00 2001 From: Benjamin Bentmann Date: Sun, 19 Sep 2010 18:54:25 +0000 Subject: [PATCH] o Fixed repo logging to go consistently through listener git-svn-id: https://svn.apache.org/repos/asf/maven/maven-3/trunk@998715 13f79535-47bb-0310-9956-ffa450edef68 --- .../DefaultArtifactDescriptorReader.java | 5 +- .../internal/DefaultVersionRangeResolver.java | 41 +++--- .../internal/DefaultVersionResolver.java | 35 ++--- .../java/org/apache/maven/DefaultMaven.java | 39 +----- .../maven/LoggingRepositoryListener.java | 128 ++++++++++++++++++ .../internal/DefaultPluginPrefixResolver.java | 55 +++----- .../DefaultPluginVersionResolver.java | 58 ++++---- .../cli/AbstractMavenTransferListener.java | 6 +- 8 files changed, 221 insertions(+), 146 deletions(-) create mode 100644 maven-core/src/main/java/org/apache/maven/LoggingRepositoryListener.java diff --git a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java index 3a4b3e7f75..661e757f99 100644 --- a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java +++ b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java @@ -73,6 +73,7 @@ import org.sonatype.aether.resolution.ArtifactResolutionException; import org.sonatype.aether.resolution.ArtifactResult; import org.sonatype.aether.resolution.VersionRequest; import org.sonatype.aether.resolution.VersionResolutionException; +import org.sonatype.aether.resolution.VersionResult; import org.sonatype.aether.spi.locator.Service; import org.sonatype.aether.spi.locator.ServiceLocator; import org.sonatype.aether.spi.log.Logger; @@ -221,7 +222,9 @@ public class DefaultArtifactDescriptorReader { VersionRequest versionRequest = new VersionRequest( artifact, request.getRepositories(), request.getRequestContext() ); - versionResolver.resolveVersion( session, versionRequest ); + VersionResult versionResult = versionResolver.resolveVersion( session, versionRequest ); + + artifact = artifact.setVersion( versionResult.getVersion() ); } catch ( VersionResolutionException e ) { diff --git a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java index 462df4a949..82055b2d37 100644 --- a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java +++ b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java @@ -19,7 +19,6 @@ package org.apache.maven.repository.internal; * under the License. */ -import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.ArrayList; @@ -46,7 +45,6 @@ import org.sonatype.aether.impl.MetadataResolver; import org.sonatype.aether.impl.VersionRangeResolver; import org.sonatype.aether.metadata.Metadata; import org.sonatype.aether.repository.ArtifactRepository; -import org.sonatype.aether.repository.LocalRepositoryManager; import org.sonatype.aether.repository.RemoteRepository; import org.sonatype.aether.repository.WorkspaceReader; import org.sonatype.aether.resolution.MetadataRequest; @@ -160,12 +158,16 @@ public class DefaultVersionRangeResolver MAVEN_METADATA_XML, Metadata.Nature.RELEASE_OR_SNAPSHOT ); List metadataRequests = new ArrayList( request.getRepositories().size() ); + + metadataRequests.add( new MetadataRequest( metadata, null, request.getRequestContext() ) ); + for ( RemoteRepository repository : request.getRepositories() ) { MetadataRequest metadataRequest = new MetadataRequest( metadata, repository, request.getRequestContext() ); metadataRequest.setDeleteLocalCopyIfMissing( true ); metadataRequests.add( metadataRequest ); } + List metadataResults = metadataResolver.resolveMetadata( session, metadataRequests ); WorkspaceReader workspace = session.getWorkspaceReader(); @@ -178,30 +180,22 @@ public class DefaultVersionRangeResolver } } - LocalRepositoryManager lrm = session.getLocalRepositoryManager(); - File localMetadataFile = new File( lrm.getRepository().getBasedir(), lrm.getPathForLocalMetadata( metadata ) ); - if ( localMetadataFile.isFile() ) - { - metadata = metadata.setFile( localMetadataFile ); - Versioning versioning = readVersions( session, metadata, result ); - for ( String version : versioning.getVersions() ) - { - if ( !versionIndex.containsKey( version ) ) - { - versionIndex.put( version, lrm.getRepository() ); - } - } - } - for ( MetadataResult metadataResult : metadataResults ) { result.addException( metadataResult.getException() ); - Versioning versioning = readVersions( session, metadataResult.getMetadata(), result ); + + ArtifactRepository repository = metadataResult.getRequest().getRepository(); + if ( repository == null ) + { + repository = session.getLocalRepository(); + } + + Versioning versioning = readVersions( session, metadataResult.getMetadata(), repository, result ); for ( String version : versioning.getVersions() ) { if ( !versionIndex.containsKey( version ) ) { - versionIndex.put( version, metadataResult.getRequest().getRepository() ); + versionIndex.put( version, repository ); } } } @@ -209,7 +203,8 @@ public class DefaultVersionRangeResolver return versionIndex; } - private Versioning readVersions( RepositorySystemSession session, Metadata metadata, VersionRangeResult result ) + private Versioning readVersions( RepositorySystemSession session, Metadata metadata, ArtifactRepository repository, + VersionRangeResult result ) { Versioning versioning = null; @@ -229,7 +224,7 @@ public class DefaultVersionRangeResolver } catch ( Exception e ) { - invalidMetadata( session, metadata, e ); + invalidMetadata( session, metadata, repository, e ); result.addException( e ); } finally @@ -240,13 +235,15 @@ public class DefaultVersionRangeResolver return ( versioning != null ) ? versioning : new Versioning(); } - private void invalidMetadata( RepositorySystemSession session, Metadata metadata, Exception exception ) + private void invalidMetadata( RepositorySystemSession session, Metadata metadata, ArtifactRepository repository, + Exception exception ) { RepositoryListener listener = session.getRepositoryListener(); if ( listener != null ) { DefaultRepositoryEvent event = new DefaultRepositoryEvent( session, metadata ); event.setException( exception ); + event.setRepository( repository ); listener.metadataInvalid( event ); } } diff --git a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java index d0058cb91d..d39ca50692 100644 --- a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java +++ b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java @@ -49,7 +49,6 @@ import org.sonatype.aether.impl.VersionResolver; import org.sonatype.aether.impl.internal.CacheUtils; import org.sonatype.aether.metadata.Metadata; import org.sonatype.aether.repository.ArtifactRepository; -import org.sonatype.aether.repository.LocalRepositoryManager; import org.sonatype.aether.repository.RemoteRepository; import org.sonatype.aether.repository.WorkspaceReader; import org.sonatype.aether.repository.WorkspaceRepository; @@ -174,6 +173,9 @@ public class DefaultVersionResolver else { List metadataRequests = new ArrayList( request.getRepositories().size() ); + + metadataRequests.add( new MetadataRequest( metadata, null, request.getRequestContext() ) ); + for ( RemoteRepository repository : request.getRepositories() ) { MetadataRequest metadataRequest = @@ -182,25 +184,23 @@ public class DefaultVersionResolver metadataRequest.setFavorLocalRepository( true ); metadataRequests.add( metadataRequest ); } + List metadataResults = metadataResolver.resolveMetadata( session, metadataRequests ); - LocalRepositoryManager lrm = session.getLocalRepositoryManager(); - File localMetadataFile = - new File( lrm.getRepository().getBasedir(), lrm.getPathForLocalMetadata( metadata ) ); - if ( localMetadataFile.isFile() ) - { - metadata = metadata.setFile( localMetadataFile ); - } - Map infos = new HashMap(); - merge( artifact, infos, readVersions( session, metadata, result ), - session.getLocalRepositoryManager().getRepository() ); for ( MetadataResult metadataResult : metadataResults ) { result.addException( metadataResult.getException() ); - merge( artifact, infos, readVersions( session, metadataResult.getMetadata(), result ), - metadataResult.getRequest().getRepository() ); + + ArtifactRepository repository = metadataResult.getRequest().getRepository(); + if ( repository == null ) + { + repository = session.getLocalRepository(); + } + + Versioning versioning = readVersions( session, metadataResult.getMetadata(), repository, result ); + merge( artifact, infos, versioning, repository ); } if ( RELEASE.equals( version ) ) @@ -269,7 +269,8 @@ public class DefaultVersionResolver return info != null; } - private Versioning readVersions( RepositorySystemSession session, Metadata metadata, VersionResult result ) + private Versioning readVersions( RepositorySystemSession session, Metadata metadata, ArtifactRepository repository, + VersionResult result ) { Versioning versioning = null; @@ -289,7 +290,7 @@ public class DefaultVersionResolver } catch ( Exception e ) { - invalidMetadata( session, metadata, e ); + invalidMetadata( session, metadata, repository, e ); result.addException( e ); } finally @@ -300,13 +301,15 @@ public class DefaultVersionResolver return ( versioning != null ) ? versioning : new Versioning(); } - private void invalidMetadata( RepositorySystemSession session, Metadata metadata, Exception exception ) + private void invalidMetadata( RepositorySystemSession session, Metadata metadata, ArtifactRepository repository, + Exception exception ) { RepositoryListener listener = session.getRepositoryListener(); if ( listener != null ) { DefaultRepositoryEvent event = new DefaultRepositoryEvent( session, metadata ); event.setException( exception ); + event.setRepository( repository ); listener.metadataInvalid( event ); } } diff --git a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java index 915165f436..ed54bc8ef6 100644 --- a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java +++ b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java @@ -96,7 +96,6 @@ import org.sonatype.aether.util.graph.transformer.ConflictMarker; import org.sonatype.aether.util.graph.transformer.JavaDependencyContextRefiner; import org.sonatype.aether.util.graph.transformer.JavaEffectiveScopeCalculator; import org.sonatype.aether.util.graph.traverser.FatArtifactTraverser; -import org.sonatype.aether.util.listener.AbstractRepositoryListener; import org.sonatype.aether.util.repository.ChainedWorkspaceReader; import org.sonatype.aether.util.repository.DefaultAuthenticationSelector; import org.sonatype.aether.util.repository.DefaultMirrorSelector; @@ -421,43 +420,7 @@ public class DefaultMaven session.setTransferListener( request.getTransferListener() ); - session.setRepositoryListener( new AbstractRepositoryListener() - { - @Override - public void artifactInstalling( RepositoryEvent event ) - { - logger.info( "Installing " + event.getArtifact().getFile() + " to " + event.getFile() ); - } - - @Override - public void metadataInstalling( RepositoryEvent event ) - { - logger.debug( "Installing " + event.getMetadata() + " to " + event.getFile() ); - } - - @Override - public void artifactDescriptorInvalid( RepositoryEvent event ) - { - if ( logger.isDebugEnabled() ) - { - logger.warn( "The POM for " + event.getArtifact() + " is invalid" - + ", transitive dependencies (if any) will not be available: " - + event.getException().getMessage() ); - } - else - { - logger.warn( "The POM for " + event.getArtifact() + " is invalid" - + ", transitive dependencies (if any) will not be available" - + ", enable debug logging for more details" ); - } - } - - @Override - public void artifactDescriptorMissing( RepositoryEvent event ) - { - logger.warn( "The POM for " + event.getArtifact() + " is missing, no dependency information available" ); - } - } ); + session.setRepositoryListener( new LoggingRepositoryListener( logger ) ); return session; } diff --git a/maven-core/src/main/java/org/apache/maven/LoggingRepositoryListener.java b/maven-core/src/main/java/org/apache/maven/LoggingRepositoryListener.java new file mode 100644 index 0000000000..6b5723f509 --- /dev/null +++ b/maven-core/src/main/java/org/apache/maven/LoggingRepositoryListener.java @@ -0,0 +1,128 @@ +package org.apache.maven; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.codehaus.plexus.logging.Logger; +import org.sonatype.aether.RepositoryEvent; +import org.sonatype.aether.transfer.MetadataNotFoundException; +import org.sonatype.aether.util.listener.AbstractRepositoryListener; + +/** + * @author Benjamin Bentmann + */ +class LoggingRepositoryListener + extends AbstractRepositoryListener +{ + + private final Logger logger; + + public LoggingRepositoryListener( Logger logger ) + { + this.logger = logger; + } + + @Override + public void artifactInstalling( RepositoryEvent event ) + { + logger.info( "Installing " + event.getArtifact().getFile() + " to " + event.getFile() ); + } + + @Override + public void metadataInstalling( RepositoryEvent event ) + { + logger.debug( "Installing " + event.getMetadata() + " to " + event.getFile() ); + } + + @Override + public void metadataResolved( RepositoryEvent event ) + { + Exception e = event.getException(); + if ( e != null ) + { + if ( e instanceof MetadataNotFoundException ) + { + logger.debug( e.getMessage() ); + } + else if ( logger.isDebugEnabled() ) + { + logger.warn( e.getMessage(), e ); + } + else + { + logger.warn( e.getMessage() ); + } + } + } + + @Override + public void metadataInvalid( RepositoryEvent event ) + { + StringBuilder buffer = new StringBuilder( 256 ); + buffer.append( "The metadata " ); + if ( event.getMetadata().getFile() != null ) + { + buffer.append( event.getMetadata().getFile() ); + } + else + { + buffer.append( event.getMetadata() ); + } + buffer.append( " is invalid" ); + if ( event.getException() != null ) + { + buffer.append( ": " ); + buffer.append( event.getException().getMessage() ); + } + + if ( logger.isDebugEnabled() ) + { + logger.warn( buffer.toString(), event.getException() ); + } + else + { + logger.warn( buffer.toString() ); + } + } + + @Override + public void artifactDescriptorInvalid( RepositoryEvent event ) + { + StringBuilder buffer = new StringBuilder( 256 ); + buffer.append( "The POM for " ); + buffer.append( event.getArtifact() ); + buffer.append( " is invalid, transitive dependencies (if any) will not be available" ); + + if ( logger.isDebugEnabled() ) + { + logger.warn( buffer + ": " + event.getException().getMessage() ); + } + else + { + logger.warn( buffer + ", enable debug logging for more details" ); + } + } + + @Override + public void artifactDescriptorMissing( RepositoryEvent event ) + { + logger.warn( "The POM for " + event.getArtifact() + " is missing, no dependency information available" ); + } + +} diff --git a/maven-core/src/main/java/org/apache/maven/plugin/prefix/internal/DefaultPluginPrefixResolver.java b/maven-core/src/main/java/org/apache/maven/plugin/prefix/internal/DefaultPluginPrefixResolver.java index d04b668534..4980a4edf6 100644 --- a/maven-core/src/main/java/org/apache/maven/plugin/prefix/internal/DefaultPluginPrefixResolver.java +++ b/maven-core/src/main/java/org/apache/maven/plugin/prefix/internal/DefaultPluginPrefixResolver.java @@ -19,7 +19,6 @@ package org.apache.maven.plugin.prefix.internal; * under the License. */ -import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; @@ -39,14 +38,16 @@ import org.apache.maven.plugin.prefix.PluginPrefixResult; import org.codehaus.plexus.component.annotations.Component; import org.codehaus.plexus.component.annotations.Requirement; import org.codehaus.plexus.logging.Logger; +import org.sonatype.aether.RepositoryListener; import org.sonatype.aether.RepositorySystem; +import org.sonatype.aether.RepositorySystemSession; import org.sonatype.aether.repository.ArtifactRepository; import org.sonatype.aether.repository.RemoteRepository; import org.sonatype.aether.repository.RepositoryPolicy; import org.sonatype.aether.resolution.MetadataRequest; import org.sonatype.aether.resolution.MetadataResult; -import org.sonatype.aether.transfer.MetadataNotFoundException; import org.sonatype.aether.util.DefaultRepositorySystemSession; +import org.sonatype.aether.util.listener.DefaultRepositoryEvent; import org.sonatype.aether.util.metadata.DefaultMetadata; /** @@ -207,25 +208,6 @@ public class DefaultPluginPrefixResolver { for ( MetadataResult res : results ) { - if ( res.getException() != null ) - { - if ( res.getException() instanceof MetadataNotFoundException ) - { - logger.debug( "Could not find " + res.getRequest().getMetadata() + " in " - + res.getRequest().getRepository() ); - } - else if ( logger.isDebugEnabled() ) - { - logger.warn( "Could not retrieve " + res.getRequest().getMetadata() + " from " - + res.getRequest().getRepository() + ": " + res.getException().getMessage(), res.getException() ); - } - else - { - logger.warn( "Could not retrieve " + res.getRequest().getMetadata() + " from " - + res.getRequest().getRepository() + ": " + res.getException().getMessage() ); - } - } - org.sonatype.aether.metadata.Metadata metadata = res.getMetadata(); if ( metadata != null ) @@ -237,7 +219,7 @@ public class DefaultPluginPrefixResolver } PluginPrefixResult result = - resolveFromRepository( request, metadata.getGroupId(), metadata.getFile(), repository ); + resolveFromRepository( request, metadata.getGroupId(), metadata, repository ); if ( result != null ) { @@ -255,15 +237,16 @@ public class DefaultPluginPrefixResolver } private PluginPrefixResult resolveFromRepository( PluginPrefixRequest request, String pluginGroup, - File metadataFile, ArtifactRepository repository ) + org.sonatype.aether.metadata.Metadata metadata, + ArtifactRepository repository ) { - if ( metadataFile != null && metadataFile.isFile() ) + if ( metadata != null && metadata.getFile() != null && metadata.getFile().isFile() ) { try { Map options = Collections.singletonMap( MetadataReader.IS_STRICT, Boolean.FALSE ); - Metadata pluginGroupMetadata = metadataReader.read( metadataFile, options ); + Metadata pluginGroupMetadata = metadataReader.read( metadata.getFile(), options ); List plugins = pluginGroupMetadata.getPlugins(); @@ -280,18 +263,24 @@ public class DefaultPluginPrefixResolver } catch ( IOException e ) { - if ( logger.isDebugEnabled() ) - { - logger.warn( "Error reading plugin group metadata: " + e.getMessage(), e ); - } - else - { - logger.warn( "Error reading plugin group metadata: " + e.getMessage() ); - } + invalidMetadata( request.getRepositorySession(), metadata, repository, e ); } } return null; } + private void invalidMetadata( RepositorySystemSession session, org.sonatype.aether.metadata.Metadata metadata, + ArtifactRepository repository, Exception exception ) + { + RepositoryListener listener = session.getRepositoryListener(); + if ( listener != null ) + { + DefaultRepositoryEvent event = new DefaultRepositoryEvent( session, metadata ); + event.setException( exception ); + event.setRepository( repository ); + listener.metadataInvalid( event ); + } + } + } diff --git a/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java b/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java index 889b75921d..be0951a15e 100644 --- a/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java +++ b/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java @@ -19,7 +19,6 @@ package org.apache.maven.plugin.version.internal; * under the License. */ -import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; @@ -39,13 +38,15 @@ import org.codehaus.plexus.component.annotations.Component; import org.codehaus.plexus.component.annotations.Requirement; import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.util.StringUtils; +import org.sonatype.aether.RepositoryListener; import org.sonatype.aether.RepositorySystem; +import org.sonatype.aether.RepositorySystemSession; import org.sonatype.aether.repository.ArtifactRepository; import org.sonatype.aether.repository.LocalRepository; import org.sonatype.aether.repository.RemoteRepository; import org.sonatype.aether.resolution.MetadataRequest; import org.sonatype.aether.resolution.MetadataResult; -import org.sonatype.aether.transfer.MetadataNotFoundException; +import org.sonatype.aether.util.listener.DefaultRepositoryEvent; import org.sonatype.aether.util.metadata.DefaultMetadata; /** @@ -122,29 +123,13 @@ public class DefaultPluginVersionResolver for ( MetadataResult res : results ) { - if ( res.getException() != null ) + ArtifactRepository repository = res.getRequest().getRepository(); + if ( repository == null ) { - if ( res.getException() instanceof MetadataNotFoundException ) - { - logger.debug( "Could not find " + res.getRequest().getMetadata() + " in " - + res.getRequest().getRepository() ); - } - else if ( logger.isDebugEnabled() ) - { - logger.warn( "Could not retrieve " + res.getRequest().getMetadata() + " from " - + res.getRequest().getRepository() + ": " + res.getException().getMessage(), res.getException() ); - } - else - { - logger.warn( "Could not retrieve " + res.getRequest().getMetadata() + " from " - + res.getRequest().getRepository() + ": " + res.getException().getMessage() ); - } + repository = request.getRepositorySession().getLocalRepository(); } - if ( res.getMetadata() != null ) - { - mergeMetadata( versions, res.getMetadata().getFile(), res.getRequest().getRepository() ); - } + mergeMetadata( request.getRepositorySession(), versions, res.getMetadata(), repository ); } if ( StringUtils.isNotEmpty( versions.releaseVersion ) ) @@ -167,32 +152,39 @@ public class DefaultPluginVersionResolver return result; } - private void mergeMetadata( Versions versions, File metadataFile, ArtifactRepository repository ) + private void mergeMetadata( RepositorySystemSession session, Versions versions, + org.sonatype.aether.metadata.Metadata metadata, ArtifactRepository repository ) { - if ( metadataFile != null && metadataFile.isFile() ) + if ( metadata != null && metadata.getFile() != null && metadata.getFile().isFile() ) { try { Map options = Collections.singletonMap( MetadataReader.IS_STRICT, Boolean.FALSE ); - Metadata repoMetadata = metadataReader.read( metadataFile, options ); + Metadata repoMetadata = metadataReader.read( metadata.getFile(), options ); mergeMetadata( versions, repoMetadata, repository ); } catch ( IOException e ) { - if ( logger.isDebugEnabled() ) - { - logger.warn( "Failed to read metadata " + metadataFile + ": " + e.getMessage(), e ); - } - else - { - logger.warn( "Failed to read metadata " + metadataFile + ": " + e.getMessage() ); - } + invalidMetadata( session, metadata, repository, e ); } } } + private void invalidMetadata( RepositorySystemSession session, org.sonatype.aether.metadata.Metadata metadata, + ArtifactRepository repository, Exception exception ) + { + RepositoryListener listener = session.getRepositoryListener(); + if ( listener != null ) + { + DefaultRepositoryEvent event = new DefaultRepositoryEvent( session, metadata ); + event.setException( exception ); + event.setRepository( repository ); + listener.metadataInvalid( event ); + } + } + private void mergeMetadata( Versions versions, Metadata source, ArtifactRepository repository ) { Versioning versioning = source.getVersioning(); diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/AbstractMavenTransferListener.java b/maven-embedder/src/main/java/org/apache/maven/cli/AbstractMavenTransferListener.java index 56c07f288f..5e2b656a32 100644 --- a/maven-embedder/src/main/java/org/apache/maven/cli/AbstractMavenTransferListener.java +++ b/maven-embedder/src/main/java/org/apache/maven/cli/AbstractMavenTransferListener.java @@ -48,7 +48,7 @@ abstract class AbstractMavenTransferListener public void transferSucceeded( TransferEvent event ) { - TransferResource artifact = event.getResource(); + TransferResource resource = event.getResource(); long contentLength = event.getTransferredBytes(); if ( contentLength >= 0 ) { @@ -56,7 +56,7 @@ abstract class AbstractMavenTransferListener String len = contentLength >= 1024 ? toKB( contentLength ) + " KB" : contentLength + " B"; String throughput = ""; - long duration = System.currentTimeMillis() - artifact.getTransferStartTime(); + long duration = System.currentTimeMillis() - resource.getTransferStartTime(); if ( duration > 0 ) { DecimalFormat format = new DecimalFormat( "0.0", new DecimalFormatSymbols( Locale.ENGLISH ) ); @@ -64,7 +64,7 @@ abstract class AbstractMavenTransferListener throughput = " at " + format.format( kbPerSec ) + " KB/sec"; } - out.println( type + ": " + artifact.getRepositoryUrl() + artifact.getResourceName() + " (" + len + out.println( type + ": " + resource.getRepositoryUrl() + resource.getResourceName() + " (" + len + throughput + ")" ); } }