Author: ogusakov
Date: Tue Mar 10 04:16:06 2009
New Revision: 751975

URL: http://svn.apache.org/viewvc?rev=751975&view=rev
Log:
[MNG-3849] added repository quality filtering

Modified:
    
maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Repo.java
    
maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactMetadata.java
    
maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/Messages.properties
    
maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/QualityRange.java
    
maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/DefaultArtifactVersion.java
    
maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/AbstractRepository.java
    
maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/Repository.java
    
maven/mercury/trunk/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java
    
maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/LocalRepositoryReaderMap.java
    
maven/mercury/trunk/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java

Modified: 
maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Repo.java
URL: 
http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Repo.java?rev=751975&r1=751974&r2=751975&view=diff
==============================================================================
--- 
maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Repo.java
 (original)
+++ 
maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Repo.java
 Tue Mar 10 04:16:06 2009
@@ -30,13 +30,13 @@
 import java.util.Set;
 
 import org.apache.maven.mercury.MavenDependencyProcessor;
+import org.apache.maven.mercury.artifact.QualityRange;
 import org.apache.maven.mercury.builder.api.DependencyProcessor;
 import org.apache.maven.mercury.crypto.api.StreamVerifierAttributes;
 import org.apache.maven.mercury.crypto.api.StreamVerifierFactory;
 import org.apache.maven.mercury.crypto.pgp.PgpStreamVerifierFactory;
 import org.apache.maven.mercury.crypto.sha.SHA1VerifierFactory;
 import org.apache.maven.mercury.repository.api.Repository;
-import org.apache.maven.mercury.repository.api.RepositoryUpdateIntervalPolicy;
 import org.apache.maven.mercury.repository.api.RepositoryUpdatePolicy;
 import org.apache.maven.mercury.repository.api.RepositoryUpdatePolicyFactory;
 import org.apache.maven.mercury.repository.local.m2.LocalRepositoryM2;
@@ -79,6 +79,10 @@
 
     private boolean _writeable = false;
 
+    private boolean _releases = true;
+
+    private boolean _snapshots = true;
+
     private Auth _auth;
 
     private Auth _proxyAuth;
@@ -139,6 +143,20 @@
         processDefaults();
     }
 
+    public void setReleases( boolean releases )
+    {
+        this._releases = releases;
+
+        processDefaults();
+    }
+    
+    public void setSnapshots( boolean snapshots )
+    {
+        this._snapshots = snapshots;
+
+        processDefaults();
+    }
+
     public void setReadable( boolean readable )
     {
         this._readable = readable;
@@ -242,6 +260,8 @@
     public void setUpdatePolicy( String updatePolicy )
     {
         this._updatePolicy = updatePolicy;
+
+        processDefaults();
     }
 
     boolean isLocal()
@@ -327,6 +347,10 @@
             }
 
             r = new LocalRepositoryM2( server, dp );
+            
+            QualityRange qr = QualityRange.create( _releases, _snapshots );
+            
+            r.setRepositoryQualityRange( qr );
         }
         else
         {
@@ -397,6 +421,10 @@
             
             if( !Util.isEmpty( _updatePolicy) )
                 ((RemoteRepositoryM2)r).setUpdatePolicy( 
RepositoryUpdatePolicyFactory.create( _updatePolicy ) );
+            
+            QualityRange qr = QualityRange.create( _releases, _snapshots );
+            
+            r.setRepositoryQualityRange( qr );
         }
 
         return r;

Modified: 
maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactMetadata.java
URL: 
http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactMetadata.java?rev=751975&r1=751974&r2=751975&view=diff
==============================================================================
--- 
maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactMetadata.java
 (original)
+++ 
maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactMetadata.java
 Tue Mar 10 04:16:06 2009
@@ -54,9 +54,11 @@
     protected String artifactId;
 
     private String version;
-    
+
     private transient VersionRange versionRange;
 
+    private Quality quality;
+
     /**
      * relocation chain after processing by ProjectBuilder
      */
@@ -434,6 +436,31 @@
         return !isSingleton();
     }
 
+    /** code quality used to decide whether try or skip a repository - see 
repository code quality  */
+    public Quality getRequestedQuality()
+    {
+        if( isRange() )
+            return null;
+        
+        if( isVirtual() )
+        {
+            if( isVirtualSnapshot() )
+                return Quality.SNAPSHOT_QUALITY;
+            else
+                if( isVirtualRelease() )
+                    return Quality.RELEASE_QUALITY;
+            
+            return null;
+        }
+        
+        if( quality != null )
+            return quality;
+        
+        quality = new Quality( getVersion() );
+        
+        return quality;
+    }
+
     public String getClassifier()
     {
         return classifier;
@@ -529,6 +556,21 @@
         return DefaultArtifactVersion.isVirtual( version );
     }
 
+    public boolean isVirtualSnapshot()
+    {
+        return DefaultArtifactVersion.isVirtualSnapshot( version );
+    }
+
+    public boolean isVirtualRelease()
+    {
+        return DefaultArtifactVersion.isVirtualRelease( version );
+    }
+
+    public boolean isVirtualLatest()
+    {
+        return DefaultArtifactVersion.isVirtualLatest( version );
+    }
+
     public ArtifactCoordinates getEffectiveCoordinates()
     {
         if ( relocations == null || relocations.isEmpty() )

Modified: 
maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/Messages.properties
URL: 
http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/Messages.properties?rev=751975&r1=751974&r2=751975&view=diff
==============================================================================
--- 
maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/Messages.properties
 (original)
+++ 
maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/Messages.properties
 Tue Mar 10 04:16:06 2009
@@ -18,4 +18,6 @@
 #
 
 artifact.metadata.no.version=no version in this metadata: {0}
-null.copy.from.md=cannot create a copy of a null metadata
\ No newline at end of file
+null.copy.from.md=cannot create a copy of a null metadata
+
+quality.no.sn.no.rel=cannot decide how to create a quality range when 
releases=false and snapshots=false

Modified: 
maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/QualityRange.java
URL: 
http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/QualityRange.java?rev=751975&r1=751974&r2=751975&view=diff
==============================================================================
--- 
maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/QualityRange.java
 (original)
+++ 
maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/QualityRange.java
 Tue Mar 10 04:16:06 2009
@@ -18,12 +18,17 @@
  */
 package org.apache.maven.mercury.artifact;
 
+import org.codehaus.plexus.lang.DefaultLanguage;
+import org.codehaus.plexus.lang.Language;
+
 /**
  * @author Oleg Gusakov
  * @version $Id$
  */
 public class QualityRange
 {
+    private static final Language LANG = new DefaultLanguage( 
QualityRange.class );
+    
     public static final QualityRange SNAPSHOTS_ONLY =
         new QualityRange( Quality.SNAPSHOT_QUALITY, true, 
Quality.SNAPSHOT_TS_QUALITY, true );
 
@@ -61,13 +66,28 @@
         this.qualityTo = qualityTo;
         this.toInclusive = toInclusive;
     }
+    
+    public static QualityRange create( boolean releases, boolean snapshots )
+    {
+        if( releases && snapshots )
+            return ALL;
+        else
+            if( releases )
+                return new QualityRange( Quality.ALPHA_QUALITY, true, 
Quality.RELEASE_QUALITY, true );
+            else
+                if( snapshots )
+                    return new QualityRange( Quality.SNAPSHOT_QUALITY, true, 
Quality.SNAPSHOT_TS_QUALITY, true );
+        
+        throw new IllegalArgumentException( LANG.getMessage( 
"quality.no.sn.no.rel" ) );
+    }
 
     // 
---------------------------------------------------------------------------
     public boolean isAcceptedQuality( Quality quality )
     {
+        // null quality means anything goes
         if ( quality == null )
         {
-            return false;
+            return true;
         }
 
         int from = quality.compareTo( qualityFrom );

Modified: 
maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/DefaultArtifactVersion.java
URL: 
http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/DefaultArtifactVersion.java?rev=751975&r1=751974&r2=751975&view=diff
==============================================================================
--- 
maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/DefaultArtifactVersion.java
 (original)
+++ 
maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/DefaultArtifactVersion.java
 Tue Mar 10 04:16:06 2009
@@ -128,6 +128,39 @@
         return false;
     }
 
+    public static boolean isVirtualRelease( String version )
+    {
+        if ( version == null )
+            return false;
+
+        if ( version.endsWith( Artifact.RELEASE_VERSION ) )
+            return true;
+
+        return false;
+    }
+
+    public static boolean isVirtualLatest( String version )
+    {
+        if ( version == null )
+            return false;
+
+        if ( version.endsWith( Artifact.LATEST_VERSION ) )
+            return true;
+
+        return false;
+    }
+
+    public static boolean isVirtualSnapshot( String version )
+    {
+        if ( version == null )
+            return false;
+
+        if ( version.endsWith( Artifact.SNAPSHOT_VERSION ) )
+            return true;
+
+        return false;
+    }
+
     public final void parseVersion( String version )
     {
         comparable = new ComparableVersion( version );

Modified: 
maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/AbstractRepository.java
URL: 
http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/AbstractRepository.java?rev=751975&r1=751974&r2=751975&view=diff
==============================================================================
--- 
maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/AbstractRepository.java
 (original)
+++ 
maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/AbstractRepository.java
 Tue Mar 10 04:16:06 2009
@@ -125,7 +125,7 @@
     // 
---------------------------------------------------------------------------
     public QualityRange getRepositoryQualityRange()
     {
-        return repositoryQualityRange;
+        return repositoryQualityRange == null ? QualityRange.ALL : 
repositoryQualityRange;
     }
 
     // 
---------------------------------------------------------------------------

Modified: 
maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/Repository.java
URL: 
http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/Repository.java?rev=751975&r1=751974&r2=751975&view=diff
==============================================================================
--- 
maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/Repository.java
 (original)
+++ 
maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/Repository.java
 Tue Mar 10 04:16:06 2009
@@ -70,21 +70,21 @@
     public boolean isAcceptedQuality( Quality quality );
 
     /**
-     * defines how VersionRnage treats upper boundary - which Artifacts should 
be treated as belonging to the vicinity -
-     * http://docs.codehaus.org/x/twDPBQ
-     * 
-     * @return
-     * @throws NonExistentProtocolException if protocol not supported
+     * defines the code quality range for this repository
      */
-    public QualityRange getVersionRangeQualityRange();
+    public QualityRange getRepositoryQualityRange();
+    void setRepositoryQualityRange( QualityRange qualityRange );
 
     /**
-     * what quality code this repository serves
+     * defines how VersionRnage treats upper boundary - which Artifacts should 
be treated as belonging to the vicinity -
+     * http://docs.codehaus.org/x/twDPBQ
+     * 
+     * note: don't mix this with repository quality range - this one is for 
version range calculations only!
      * 
-     * @param qualityRange
      */
-    void setRepositoryQualityRange( QualityRange qualityRange );
-
+    public QualityRange getVersionRangeQualityRange();
+    public void setVersionRangeQualityRange( QualityRange qualityRange );
+    
     /**
      * get default reader, if any
      * 

Modified: 
maven/mercury/trunk/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java
URL: 
http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java?rev=751975&r1=751974&r2=751975&view=diff
==============================================================================
--- 
maven/mercury/trunk/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java
 (original)
+++ 
maven/mercury/trunk/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java
 Tue Mar 10 04:16:06 2009
@@ -206,11 +206,14 @@
         if ( _repo.hasServer() && 
_repo.getServer().hasReaderStreamVerifierFactories() )
             vFacs = _repo.getServer().getReaderStreamVerifierFactories();
 
-        for ( ArtifactMetadata bmd : query )
+        for ( ArtifactMetadata md : query )
         {
-            DefaultArtifact da = bmd instanceof DefaultArtifact ? 
(DefaultArtifact) bmd : new DefaultArtifact( bmd );
+            if( ! _repo.getRepositoryQualityRange().isAcceptedQuality( 
md.getRequestedQuality() ) )
+                continue;
+
+            DefaultArtifact da = md instanceof DefaultArtifact ? 
(DefaultArtifact) md : new DefaultArtifact( md );
 
-            ArtifactLocation loc = calculateLocation( 
_repoDir.getAbsolutePath(), bmd, res );
+            ArtifactLocation loc = calculateLocation( 
_repoDir.getAbsolutePath(), md, res );
 
             if ( loc == null )
                 continue;
@@ -223,7 +226,7 @@
 //                res.addError( bmd, new RepositoryException( LANG.getMessage( 
"binary.not.found", bmd.toString(),
 //                                                                             
binary.getAbsolutePath() ) ) );
                 if( LOG.isDebugEnabled() )
-                    LOG.debug( LANG.getMessage( "binary.not.found", 
bmd.toString(), binary.getAbsolutePath() ) );
+                    LOG.debug( LANG.getMessage( "binary.not.found", 
md.toString(), binary.getAbsolutePath() ) );
 
                 continue;
             }
@@ -236,7 +239,7 @@
                     da.setTracker( this._repo );
                 }
 
-                if ( "pom".equals( bmd.getType() ) )
+                if ( "pom".equals( md.getType() ) )
                 {
                     da.setPomBlob( FileUtil.readRawData( binary ) );
                 }
@@ -249,11 +252,11 @@
                             da.setPomBlob( FileUtil.readRawData( pomFile ) );
                     }
                     else
-                        LOG.warn( LANG.getMessage( "pom.not.found", 
bmd.toString() ) );
+                        LOG.warn( LANG.getMessage( "pom.not.found", 
md.toString() ) );
                 }
 
                 da.setVersion( loc.getVersion() );
-                res.add( bmd, da );
+                res.add( md, da );
             }
             catch ( Exception e )
             {
@@ -367,11 +370,14 @@
         MetadataResults ror = null;
 
         File pomFile = null;
-        for ( ArtifactMetadata bmd : query )
+        for ( ArtifactMetadata md : query )
         {
+            if( ! _repo.getRepositoryQualityRange().isAcceptedQuality( 
md.getRequestedQuality() ) )
+                continue;
+
             String pomPath =
-                bmd.getGroupId().replace( '.', '/' ) + "/" + 
bmd.getArtifactId() + "/" + ArtifactLocation.calculateVersionDir( 
bmd.getVersion() ) + "/"
-                    + bmd.getArtifactId() + '-' + bmd.getVersion() + ".pom";
+                md.getGroupId().replace( '.', '/' ) + "/" + md.getArtifactId() 
+ "/" + ArtifactLocation.calculateVersionDir( md.getVersion() ) + "/"
+                    + md.getArtifactId() + '-' + md.getVersion() + ".pom";
 
             pomFile = new File( _repoDir, pomPath );
             if ( !pomFile.exists() )
@@ -384,18 +390,18 @@
             try
             {
                 List<ArtifactMetadata> deps =
-                    _mdProcessor.getDependencies( bmd, _mdReader == null ? 
this : _mdReader, System.getenv(),
+                    _mdProcessor.getDependencies( md, _mdReader == null ? this 
: _mdReader, System.getenv(),
                                                   System.getProperties() );
 // for(ArtifactBasicMetadata d : deps )
 // {
 // System.out.println("======> "+d.getScope() );
 // }
-                ror = MetadataResults.add( ror, bmd, deps );
+                ror = MetadataResults.add( ror, md, deps );
             }
             catch ( Exception e )
             {
                 if( LOG.isDebugEnabled() )
-                    LOG.debug( "error reading " + bmd.toString() + " 
dependencies", e );
+                    LOG.debug( "error reading " + md.toString() + " 
dependencies", e );
                 continue;
             }
 
@@ -468,9 +474,12 @@
         MetadataResults res = new MetadataResults( query.size() );
 
         File gaDir = null;
-        for ( ArtifactMetadata bmd : query )
+        for ( ArtifactMetadata md : query )
         {
-            gaDir = new File( _repoDir, bmd.getGroupId().replace( '.', '/' ) + 
"/" + bmd.getArtifactId() );
+            if( ! _repo.getRepositoryQualityRange().isAcceptedQuality( 
md.getRequestedQuality() ) )
+                continue;
+
+            gaDir = new File( _repoDir, md.getGroupId().replace( '.', '/' ) + 
"/" + md.getArtifactId() );
             if ( !gaDir.exists() )
                 continue;
 
@@ -479,32 +488,32 @@
             VersionRange versionQuery;
             try
             {
-                versionQuery = VersionRangeFactory.create( bmd.getVersion(), 
_repo.getVersionRangeQualityRange() );
+                versionQuery = VersionRangeFactory.create( md.getVersion(), 
_repo.getVersionRangeQualityRange() );
             }
             catch ( VersionException e )
             {
-                res = MetadataResults.add( res, bmd, new RepositoryException( 
e ) );
+                res = MetadataResults.add( res, md, new RepositoryException( e 
) );
                 continue;
             }
 
-            Quality vq = new Quality( bmd.getVersion() );
+            Quality vq = new Quality( md.getVersion() );
 
             if ( vq.equals( Quality.FIXED_RELEASE_QUALITY ) || vq.equals( 
Quality.FIXED_LATEST_QUALITY )
                 || vq.equals( Quality.SNAPSHOT_QUALITY ) )
             {
-                ArtifactLocation loc = calculateLocation( 
_repoDir.getAbsolutePath(), bmd, res );
+                ArtifactLocation loc = calculateLocation( 
_repoDir.getAbsolutePath(), md, res );
 
                 if ( loc == null )
                     continue;
 
                 ArtifactMetadata vmd = new ArtifactMetadata();
-                vmd.setGroupId( bmd.getGroupId() );
-                vmd.setArtifactId( bmd.getArtifactId() );
-                vmd.setClassifier( bmd.getClassifier() );
-                vmd.setType( bmd.getType() );
+                vmd.setGroupId( md.getGroupId() );
+                vmd.setArtifactId( md.getArtifactId() );
+                vmd.setClassifier( md.getClassifier() );
+                vmd.setType( md.getType() );
                 vmd.setVersion( loc.getVersion() );
 
-                res = MetadataResults.add( res, bmd, vmd );
+                res = MetadataResults.add( res, md, vmd );
 
                 continue;
 
@@ -525,29 +534,32 @@
                     continue;
 
                 ArtifactMetadata vmd = new ArtifactMetadata();
-                vmd.setGroupId( bmd.getGroupId() );
-                vmd.setArtifactId( bmd.getArtifactId() );
-                vmd.setClassifier( bmd.getClassifier() );
-                vmd.setType( bmd.getType() );
+                vmd.setGroupId( md.getGroupId() );
+                vmd.setArtifactId( md.getArtifactId() );
+                vmd.setClassifier( md.getClassifier() );
+                vmd.setType( md.getType() );
                 vmd.setVersion( vf.getName() );
 
-                res = MetadataResults.add( res, bmd, vmd );
+                res = MetadataResults.add( res, md, vmd );
             }
         }
         return res;
     }
 
     // 
---------------------------------------------------------------------------------------------------------------
-    public byte[] readRawData( ArtifactMetadata bmd, String classifier, String 
type )
+    public byte[] readRawData( ArtifactMetadata md, String classifier, String 
type )
         throws MetadataReaderException
     {
-        return readRawData( bmd, classifier, type, false );
+        return readRawData( md, classifier, type, false );
     }
     // 
---------------------------------------------------------------------------------------------------------------
-    public byte[] readRawData( ArtifactMetadata bmd, String classifier, String 
type, boolean exempt )
+    public byte[] readRawData( ArtifactMetadata md, String classifier, String 
type, boolean exempt )
         throws MetadataReaderException
     {
-        return readRawData( relPathOf( bmd, classifier, type ), exempt );
+        if( ! _repo.getRepositoryQualityRange().isAcceptedQuality( 
md.getRequestedQuality() ) )
+            return null;
+
+        return readRawData( relPathOf( md, classifier, type ), exempt );
     }
 
     // 
---------------------------------------------------------------------------------------------------------------

Modified: 
maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/LocalRepositoryReaderMap.java
URL: 
http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/LocalRepositoryReaderMap.java?rev=751975&r1=751974&r2=751975&view=diff
==============================================================================
--- 
maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/LocalRepositoryReaderMap.java
 (original)
+++ 
maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/LocalRepositoryReaderMap.java
 Tue Mar 10 04:16:06 2009
@@ -43,9 +43,9 @@
     extends AbstracRepositoryReader
     implements RepositoryReader
 {
-    private static final IMercuryLogger _log = MercuryLoggerManager.getLogger( 
LocalRepositoryReaderMap.class );
+    private static final IMercuryLogger LOG = MercuryLoggerManager.getLogger( 
LocalRepositoryReaderMap.class );
 
-    private static final Language _lang = new DefaultLanguage( 
LocalRepositoryReaderMap.class );
+    private static final Language LANG = new DefaultLanguage( 
LocalRepositoryReaderMap.class );
 
     // 
---------------------------------------------------------------------------------------------------------------
     private static final String[] _protocols = new String[] { "map" };
@@ -93,12 +93,12 @@
         
         ArtifactResults res = new ArtifactResults();
         
-        for( ArtifactMetadata bmd : query )
+        for( ArtifactMetadata md : query )
         {
             Artifact a;
             try
             {
-                a = _repo._storage.findArtifact( bmd );
+                a = _repo._storage.findArtifact( md );
             }
             catch ( Exception e )
             {
@@ -106,7 +106,7 @@
             }
             
             if( a != null )
-                res.add( bmd, a );
+                res.add( md, a );
         }
 
         return res;
@@ -173,7 +173,7 @@
             }
             catch ( Exception e )
             {
-                _log.error( e.getMessage() );
+                LOG.error( e.getMessage() );
                 
                 res.addError( bmd, e );
             }

Modified: 
maven/mercury/trunk/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java
URL: 
http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java?rev=751975&r1=751974&r2=751975&view=diff
==============================================================================
--- 
maven/mercury/trunk/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java
 (original)
+++ 
maven/mercury/trunk/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java
 Tue Mar 10 04:16:06 2009
@@ -361,15 +361,18 @@
 
         ArtifactResults res = new ArtifactResults();
 
-        for ( ArtifactMetadata bmd : query )
+        for ( ArtifactMetadata md : query )
         {
+            if( ! _repo.getRepositoryQualityRange().isAcceptedQuality( 
md.getRequestedQuality() ) )
+                continue;
+            
             try
             {
-                readArtifact( bmd, res );
+                readArtifact( md, res );
             }
             catch ( Exception e )
             {
-                res.addError( bmd, e );
+                res.addError( md, e );
             }
         }
 
@@ -387,7 +390,7 @@
     }
 
     // 
---------------------------------------------------------------------------------------------------------------
-    public void readArtifact( ArtifactMetadata bmd, ArtifactResults res )
+    private void readArtifact( ArtifactMetadata bmd, ArtifactResults res )
         throws IOException, RepositoryException, MetadataReaderException, 
MetadataException
     {
         DefaultArtifact da = bmd instanceof DefaultArtifact ? 
(DefaultArtifact) bmd : new DefaultArtifact( bmd );
@@ -448,21 +451,23 @@
 
         MetadataResults ror = new MetadataResults( 16 );
 
-        for ( ArtifactMetadata bmd : query )
+        for ( ArtifactMetadata md : query )
         {
+            if( ! _repo.getRepositoryQualityRange().isAcceptedQuality( 
md.getRequestedQuality() ) )
+                continue;
+            
             try
             {
                 List<ArtifactMetadata> deps =
-                    _mdProcessor.getDependencies( bmd, _mdReader == null ? 
this : _mdReader, System.getenv(),
+                    _mdProcessor.getDependencies( md, _mdReader == null ? this 
: _mdReader, System.getenv(),
                                                   System.getProperties() );
-                ror.add( bmd, deps );
+                ror.add( md, deps );
             }
             catch ( Exception e )
             {
-                LOG.warn( "error reading " + bmd.toString() + " dependencies", 
e );
+                LOG.warn( "error reading " + md.toString() + " dependencies", 
e );
                 continue;
             }
-
         }
 
         return ror;
@@ -707,26 +712,29 @@
 
         String root = _repo.getServer().getURL().toString();
 
-        for ( ArtifactMetadata bmd : query )
+        for ( ArtifactMetadata md : query )
         {
-            ArtifactLocation loc = new ArtifactLocation( root, bmd );
+            if( ! _repo.getRepositoryQualityRange().isAcceptedQuality( 
md.getRequestedQuality() ) )
+                continue;
+            
+            ArtifactLocation loc = new ArtifactLocation( root, md );
 
             TreeSet<String> versions = null;
 
             try
             {
-                versions = getCachedVersions( loc, bmd, res );
+                versions = getCachedVersions( loc, md, res );
 
                 if ( Util.isEmpty( versions ) )
                     continue;
             }
             catch ( Exception e )
             {
-                res.addError( bmd, e );
+                res.addError( md, e );
                 continue;
             }
 
-            Quality vq = new Quality( bmd.getVersion() );
+            Quality vq = new Quality( md.getVersion() );
 
             boolean lookForSnapshot = vq.equals( Quality.SNAPSHOT_QUALITY );
             boolean lookForLatest = vq.equals( Quality.FIXED_LATEST_QUALITY );
@@ -760,7 +768,7 @@
                 }
                 else
                 {
-                    String base = ArtifactLocation.stripSN( bmd.getVersion() );
+                    String base = ArtifactLocation.stripSN( md.getVersion() );
 
                     if ( base != null )
                     {
@@ -785,13 +793,13 @@
                 if ( found != null )
                 {
                     ArtifactMetadata vmd = new ArtifactMetadata();
-                    vmd.setGroupId( bmd.getGroupId() );
-                    vmd.setArtifactId( bmd.getArtifactId() );
-                    vmd.setClassifier( bmd.getClassifier() );
-                    vmd.setType( bmd.getType() );
+                    vmd.setGroupId( md.getGroupId() );
+                    vmd.setArtifactId( md.getArtifactId() );
+                    vmd.setClassifier( md.getClassifier() );
+                    vmd.setType( md.getType() );
                     vmd.setVersion( found );
 
-                    res = MetadataResults.add( res, bmd, vmd );
+                    res = MetadataResults.add( res, md, vmd );
                 }
 
                 continue;
@@ -800,11 +808,11 @@
             VersionRange versionQuery;
             try
             {
-                versionQuery = VersionRangeFactory.create( bmd.getVersion(), 
_repo.getVersionRangeQualityRange() );
+                versionQuery = VersionRangeFactory.create( md.getVersion(), 
_repo.getVersionRangeQualityRange() );
             }
             catch ( VersionException e )
             {
-                res.addError( bmd, new RepositoryException( e ) );
+                res.addError( md, new RepositoryException( e ) );
                 continue;
             }
 
@@ -819,13 +827,13 @@
                     continue;
 
                 ArtifactMetadata vmd = new ArtifactMetadata();
-                vmd.setGroupId( bmd.getGroupId() );
-                vmd.setArtifactId( bmd.getArtifactId() );
-                vmd.setClassifier( bmd.getClassifier() );
-                vmd.setType( bmd.getType() );
+                vmd.setGroupId( md.getGroupId() );
+                vmd.setArtifactId( md.getArtifactId() );
+                vmd.setClassifier( md.getClassifier() );
+                vmd.setType( md.getType() );
                 vmd.setVersion( version );
 
-                res = MetadataResults.add( res, bmd, vmd );
+                res = MetadataResults.add( res, md, vmd );
             }
 
         }
@@ -834,10 +842,13 @@
     }
 
     // 
---------------------------------------------------------------------------------------------------------------
-    public byte[] readRawData( ArtifactMetadata bmd, String classifier, String 
type )
+    public byte[] readRawData( ArtifactMetadata md, String classifier, String 
type )
         throws MetadataReaderException
     {
-        return readRawData( bmd, classifier, type, false );
+        if( ! _repo.getRepositoryQualityRange().isAcceptedQuality( 
md.getRequestedQuality() ) )
+            return null;
+
+        return readRawData( md, classifier, type, false );
     }
 
     // 
---------------------------------------------------------------------------------------------------------------


Reply via email to