You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2016/05/01 12:57:04 UTC
[06/15] maven-aether git commit: Bug 448409 - Output being spammed
with "Using mirror ..." messages when running Maven with -X option
Bug 448409 - Output being spammed with "Using mirror ..." messages when running Maven with -X option
Reduced debug logging for mirror selection to log a given repository pair only once per session
Project: http://git-wip-us.apache.org/repos/asf/maven-aether/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-aether/commit/e6be118d
Tree: http://git-wip-us.apache.org/repos/asf/maven-aether/tree/e6be118d
Diff: http://git-wip-us.apache.org/repos/asf/maven-aether/diff/e6be118d
Branch: refs/heads/1.0.x
Commit: e6be118d62c465f4622bd59a6d7750c971ac9da6
Parents: 535df40
Author: Benjamin Bentmann <be...@sonatype.com>
Authored: Tue Nov 11 15:04:58 2014 +0100
Committer: Benjamin Bentmann <be...@sonatype.com>
Committed: Tue Nov 11 15:04:58 2014 +0100
----------------------------------------------------------------------
.../impl/DefaultRemoteRepositoryManager.java | 58 +++++++++++++++++++-
1 file changed, 56 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/e6be118d/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManager.java
----------------------------------------------------------------------
diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManager.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManager.java
index ccb618a..8a54d62 100644
--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManager.java
+++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManager.java
@@ -11,12 +11,14 @@
package org.eclipse.aether.internal.impl;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.ListIterator;
import javax.inject.Inject;
import javax.inject.Named;
+import org.eclipse.aether.RepositoryCache;
import org.eclipse.aether.RepositorySystemSession;
import org.eclipse.aether.impl.RemoteRepositoryManager;
import org.eclipse.aether.impl.UpdatePolicyAnalyzer;
@@ -42,6 +44,39 @@ public class DefaultRemoteRepositoryManager
implements RemoteRepositoryManager, Service
{
+ private static final class LoggedMirror
+ {
+
+ private final Object[] keys;
+
+ public LoggedMirror( RemoteRepository original, RemoteRepository mirror )
+ {
+ keys = new Object[] { mirror.getId(), mirror.getUrl(), original.getId(), original.getUrl() };
+ }
+
+ @Override
+ public boolean equals( Object obj )
+ {
+ if ( this == obj )
+ {
+ return true;
+ }
+ else if ( !( obj instanceof LoggedMirror ) )
+ {
+ return false;
+ }
+ LoggedMirror that = (LoggedMirror) obj;
+ return Arrays.equals( keys, that.keys );
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return Arrays.hashCode( keys );
+ }
+
+ }
+
private Logger logger = NullLoggerFactory.LOGGER;
private UpdatePolicyAnalyzer updatePolicyAnalyzer;
@@ -121,8 +156,7 @@ public class DefaultRemoteRepositoryManager
if ( mirrorRepository != null )
{
- logger.debug( "Using mirror " + mirrorRepository.getId() + " (" + mirrorRepository.getUrl()
- + ") for " + recessiveRepository.getId() + " (" + recessiveRepository.getUrl() + ")." );
+ logMirror( session, recessiveRepository, mirrorRepository );
repository = mirrorRepository;
}
}
@@ -179,6 +213,26 @@ public class DefaultRemoteRepositoryManager
return result;
}
+ private void logMirror( RepositorySystemSession session, RemoteRepository original, RemoteRepository mirror )
+ {
+ if ( !logger.isDebugEnabled() )
+ {
+ return;
+ }
+ RepositoryCache cache = session.getCache();
+ if ( cache != null )
+ {
+ Object key = new LoggedMirror( original, mirror );
+ if ( cache.get( session, key ) != null )
+ {
+ return;
+ }
+ cache.put( session, key, Boolean.TRUE );
+ }
+ logger.debug( "Using mirror " + mirror.getId() + " (" + mirror.getUrl() + ") for " + original.getId() + " ("
+ + original.getUrl() + ")." );
+ }
+
private String getKey( RemoteRepository repository )
{
return repository.getId();