You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by og...@apache.org on 2008/09/03 03:36:53 UTC

svn commit: r691458 [1/3] - in /maven/sandbox/trunk/mercury: mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/ mercury-external/src/main/java/org/apache/maven/mer...

Author: ogusakov
Date: Tue Sep  2 18:36:50 2008
New Revision: 691458

URL: http://svn.apache.org/viewvc?rev=691458&view=rev
Log:
deployment its work for local and remote without authentication, with auth - fail. Recorded in http://jira.codehaus.org/browse/MERCURY-2

Added:
    maven/sandbox/trunk/mercury/mercury-external/src/main/java/org/apache/maven/mercury/builder/api/MetadataReaderException.java   (contents, props changed)
      - copied, changed from r689883, maven/sandbox/trunk/mercury/mercury-external/src/main/java/org/apache/maven/mercury/builder/api/MetadataProcessingException.java
    maven/sandbox/trunk/mercury/mercury-it/src/test/filters/
    maven/sandbox/trunk/mercury/mercury-it/src/test/filters/filter.txt
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/conf/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/conf/plexus.properties
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/conf/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/conf/nexus.xml
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/conf/security.xml
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/apache-snapshots-local/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/apache-snapshots-local/_a.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/apache-snapshots-local/_a_1.del   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/apache-snapshots-local/_b.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/apache-snapshots-local/segments.gen   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/apache-snapshots-local/segments_p   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/apache-snapshots-local/timestamp   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/apache-snapshots-local/write.lock
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/apache-snapshots-remote/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/apache-snapshots-remote/_a.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/apache-snapshots-remote/_a_1.del   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/apache-snapshots-remote/_b.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/apache-snapshots-remote/segments.gen   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/apache-snapshots-remote/segments_p   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/apache-snapshots-remote/timestamp   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/apache-snapshots-remote/write.lock
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/central-local/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/central-local/_a.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/central-local/_a_1.del   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/central-local/_b.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/central-local/segments.gen   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/central-local/segments_p   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/central-local/timestamp   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/central-local/write.lock
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/central-m1-local/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/central-m1-local/_a.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/central-m1-local/_a_1.del   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/central-m1-local/_b.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/central-m1-local/segments.gen   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/central-m1-local/segments_p   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/central-m1-local/timestamp   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/central-m1-local/write.lock
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/central-remote/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/central-remote/_a.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/central-remote/_a_1.del   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/central-remote/_b.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/central-remote/segments.gen   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/central-remote/segments_p   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/central-remote/timestamp   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/central-remote/write.lock
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/codehaus-snapshots-local/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/codehaus-snapshots-local/_a.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/codehaus-snapshots-local/_a_1.del   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/codehaus-snapshots-local/_b.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/codehaus-snapshots-local/segments.gen   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/codehaus-snapshots-local/segments_p   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/codehaus-snapshots-local/timestamp   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/codehaus-snapshots-local/write.lock
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/codehaus-snapshots-remote/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/codehaus-snapshots-remote/_a.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/codehaus-snapshots-remote/_a_1.del   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/codehaus-snapshots-remote/_b.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/codehaus-snapshots-remote/segments.gen   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/codehaus-snapshots-remote/segments_p   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/codehaus-snapshots-remote/timestamp   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/codehaus-snapshots-remote/write.lock
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/public-merged/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/public-merged/_a.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/public-merged/_a_1.del   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/public-merged/_b.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/public-merged/segments.gen   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/public-merged/segments_p   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/public-merged/timestamp   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/public-merged/write.lock
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/public-snapshots-merged/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/public-snapshots-merged/_a.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/public-snapshots-merged/_a_1.del   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/public-snapshots-merged/_b.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/public-snapshots-merged/segments.gen   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/public-snapshots-merged/segments_p   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/public-snapshots-merged/timestamp   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/public-snapshots-merged/write.lock
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/releases-local/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/releases-local/_a.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/releases-local/_a_1.del   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/releases-local/_b.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/releases-local/segments.gen   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/releases-local/segments_p   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/releases-local/timestamp   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/releases-local/write.lock
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/snapshots-local/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/snapshots-local/_a.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/snapshots-local/_a_1.del   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/snapshots-local/_b.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/snapshots-local/segments.gen   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/snapshots-local/segments_p   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/snapshots-local/timestamp   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/snapshots-local/write.lock
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/test-local/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/test-local/_0.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/test-local/segments.gen   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/test-local/segments_3   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/test-local/write.lock
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/thirdparty-local/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/thirdparty-local/_a.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/thirdparty-local/_a_1.del   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/thirdparty-local/_b.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/thirdparty-local/segments.gen   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/thirdparty-local/segments_p   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/thirdparty-local/timestamp   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/indexer/thirdparty-local/write.lock
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/storage/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/storage/apache-snapshots/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/storage/central/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/storage/central-m1/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/storage/codehaus-snapshots/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/storage/releases/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/storage/snapshots/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/storage/test/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/storage/thirdparty/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/template-store/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/template-store/repository-default_hosted_release.xml
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/template-store/repository-default_hosted_snapshot.xml
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/template-store/repository-default_proxy_release.xml
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/template-store/repository-default_proxy_snapshot.xml
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/template-store/repositoryShadow-default_virtual.xml
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/timeline/
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/timeline/_h.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/timeline/_i.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/timeline/_j.cfs   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/timeline/segments.gen   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/timeline/segments_15   (with props)
    maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/timeline/write.lock
Removed:
    maven/sandbox/trunk/mercury/mercury-external/src/main/java/org/apache/maven/mercury/builder/api/MetadataProcessingException.java
    maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/RemoteRepositoryWriterM2Test.java
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/Messages.properties
Modified:
    maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/Quality.java
    maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/Messages.properties
    maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/VersionRange.java
    maven/sandbox/trunk/mercury/mercury-external/src/main/java/org/apache/maven/mercury/builder/api/MetadataProcessor.java
    maven/sandbox/trunk/mercury/mercury-external/src/main/java/org/apache/maven/mercury/builder/api/MetadataReader.java
    maven/sandbox/trunk/mercury/mercury-it/pom.xml
    maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/AbstractRepositoryReaderM2Test.java
    maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/AbstractRepositoryWriterM2Test.java
    maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/LocalRepositoryWriterM2Test.java
    maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/RemoteRepositoryReaderM2Test.java
    maven/sandbox/trunk/mercury/mercury-pom/pom.xml
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/AbstracRepositoryReader.java
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/Repository.java
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryReader.java
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/VirtualRepositoryReader.java
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/java/org/apache/maven/mercury/repository/local/m2/MetadataProcessorMock.java
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-remote-m2/pom.xml
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryM2.java
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryWriterM2.java
    maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-api/src/main/java/org/apache/maven/mercury/transport/api/Server.java
    maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/java/org/apache/maven/mercury/spi/http/server/SimplePutServer.java
    maven/sandbox/trunk/mercury/mercury-util/src/main/java/org/apache/maven/mercury/util/FileUtil.java

Modified: maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/Quality.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/Quality.java?rev=691458&r1=691457&r2=691458&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/Quality.java (original)
+++ maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/Quality.java Tue Sep  2 18:36:50 2008
@@ -16,12 +16,18 @@
   public static final int DEFAULT_QUANTITY = 0;
   public static final int SNAPSHOT_TS_QUANTITY = 1;
 
+  public static final int FIXED_RELEASE_QUANTITY = -2;
+  public static final int FIXED_LATEST_QUANTITY  = -3;
+
   public static final Quality UNKNOWN_QUALITY = new Quality( QualityEnum.unknown, -1 );
   public static final Quality SNAPSHOT_QUALITY = new Quality( QualityEnum.snapshot, DEFAULT_QUANTITY );
   public static final Quality SNAPSHOT_TS_QUALITY = new Quality( QualityEnum.snapshot, SNAPSHOT_TS_QUANTITY );
   public static final Quality ALPHA_QUALITY = new Quality( QualityEnum.alpha, DEFAULT_QUANTITY );
   public static final Quality BETA_QUALITY = new Quality( QualityEnum.beta, DEFAULT_QUANTITY );
   public static final Quality RELEASE_QUALITY = new Quality( QualityEnum.release, DEFAULT_QUANTITY );
+
+  public static final Quality FIXED_RELEASE_QUALITY = new Quality( QualityEnum.unknown, FIXED_RELEASE_QUANTITY );
+  public static final Quality FIXED_LATEST_QUALITY = new Quality( QualityEnum.unknown, FIXED_LATEST_QUANTITY );
   
   private static final String snExp    = ".+-(SNAPSHOT|\\d{8}\\.\\d{6}-\\d+)";
   private static final String alphaExp = ".+-alpha-\\d+";
@@ -42,6 +48,21 @@
     {
       quality = QualityEnum.unknown;
       quantity = -1;
+      return;
+    }
+    
+    if( Artifact.RELEASE_VERSION.equals( version  ) )
+    {
+      quality = QualityEnum.unknown;
+      quantity = FIXED_RELEASE_QUANTITY;
+      return;
+    }
+    
+    if( Artifact.LATEST_VERSION.equals( version  ) )
+    {
+      quality = QualityEnum.unknown;
+      quantity = FIXED_LATEST_QUANTITY;
+      return;
     }
     
     if( version.matches( snExp ) )
@@ -78,13 +99,13 @@
     if( q == null )
       return quality == null ? 0 : 1;
     
-    int ql1 = (quality == null ? QualityEnum.unknown : quality).getId();
+    int ql = (quality == null ? QualityEnum.unknown : quality).getId();
     int ql2 = (q.quality == null ? QualityEnum.unknown : q.quality).getId();
     
-    if( ql1 == ql2 )
+    if( ql == ql2 )
     {
       // snapshots are always equal
-      if( ql1 == QualityEnum.snapshot.getId() )
+      if( ql == QualityEnum.snapshot.getId() )
         return 0;
       else
         return quantity - q.quantity;
@@ -94,12 +115,12 @@
 //    if( ql1 == QualityEnum.unknown.getId() )
 //      return -1;
 
-    return sign(ql1 - ql2);
+    return sign(ql - ql2);
   }
   
-  private int sign( int i )
+  private static int sign( int i )
   {
-    return i<0 ? -1: i == 0 ? 0 : 1;
+    return i<0 ? -1:1;
   }
   
   @Override
@@ -109,6 +130,7 @@
     {
       return false;
     }
+    
     if( obj.getClass().isAssignableFrom( Quality.class ))
       return this.compareTo( (Quality)obj ) == 0;
     else if( obj.getClass().isAssignableFrom( QualityEnum.class ))

Modified: maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/Messages.properties
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/Messages.properties?rev=691458&r1=691457&r2=691458&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/Messages.properties (original)
+++ maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/Messages.properties Tue Sep  2 18:36:50 2008
@@ -0,0 +1 @@
+bad.version.sn=version range cannot include SNAPSHOT, LATEST or RELEASE versions, found: {0}
\ No newline at end of file

Modified: maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/VersionRange.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/VersionRange.java?rev=691458&r1=691457&r2=691458&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/VersionRange.java (original)
+++ maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/VersionRange.java Tue Sep  2 18:36:50 2008
@@ -1,7 +1,13 @@
 package org.apache.maven.mercury.artifact.version;
 
+import java.util.List;
+
 import org.apache.maven.mercury.artifact.Artifact;
+import org.apache.maven.mercury.artifact.Quality;
+import org.apache.maven.mercury.artifact.QualityEnum;
 import org.apache.maven.mercury.artifact.QualityRange;
+import org.codehaus.plexus.i18n.DefaultLanguage;
+import org.codehaus.plexus.i18n.Language;
 
 /**
  * Single range implementation, similar to OSGi specification:
@@ -18,6 +24,7 @@
 public class VersionRange
 {
   private static final DefaultArtifactVersion ZERO_VERSION = new DefaultArtifactVersion("0.0.0");
+  private static final Language _lang = new DefaultLanguage( VersionRange.class );
   
   QualityRange _toQualityRange = QualityRange.ALL;
   
@@ -26,6 +33,7 @@
   
   DefaultArtifactVersion _toVersion;
   boolean _toInclusive = false;
+  
   //--------------------------------------------------------------------------------------------
   public VersionRange( String range, QualityRange qRange )
   throws VersionException
@@ -34,11 +42,13 @@
     setToQualityRange( qRange );
   }
   //--------------------------------------------------------------------------------------------
-  public VersionRange( String range )
+  public VersionRange( final String rangeIn )
   throws VersionException
   {
+    String range = AttributeQuery.stripExpression( rangeIn );
+
     if( range == null || range.length() < 1 )
-      return;
+      return;    
     
     if( range.indexOf(',') > 0 )
     {
@@ -65,9 +75,13 @@
         if( sFromT != null && sFromT.length() > 0 )
         {
           checkForValidCharacters( sFromT );
-// TODO og: look for snapshots
-//        if( sFromT.indexOf( Artifact.SNAPSHOT_VERSION ) != -1 )
-//        throw new VersionException();
+          // TODO og: look for LATEST,RELEASE and SNAPSHOT
+          Quality vq = new Quality( sFromT );
+          if( vq.getQuality().equals( QualityEnum.snapshot )
+              || vq.getQuality().equals( QualityEnum.unknown )
+          )
+              throw new VersionException( _lang.getMessage( "bad.version.sn", sFromT ) );
+          
           _fromVersion = new DefaultArtifactVersion( sFromT );
         }
       }
@@ -163,6 +177,44 @@
     
     return false;
   }
+  
+  //--------------------------------------------------------------------------------------------
+  /**
+   * helpful latest version calculator
+   * 
+   * @param versions
+   * @param noSnapshots
+   * @return
+   */
+  public static final String findLatest( final List<String> versions, final boolean noSnapshots )
+  {
+    DefaultArtifactVersion tempDav = null;
+    DefaultArtifactVersion tempDav2 = null;
+    String version = null;
+
+    // find latest
+    for( String vn : versions )
+    {
+      // RELEASE?
+      if( noSnapshots && vn.endsWith( Artifact.SNAPSHOT_VERSION ))
+        continue;
+      
+      if( version == null )
+      {
+        version = vn;
+        tempDav = new DefaultArtifactVersion( vn );
+        continue;
+      }
+      
+      tempDav2 = new DefaultArtifactVersion( vn );
+      if( tempDav2.compareTo( tempDav ) > 0 )
+      {
+        version = vn;
+        tempDav = tempDav2;
+      }
+    }
+    return version;
+  }
   //--------------------------------------------------------------------------------------------
   //--------------------------------------------------------------------------------------------
 }

Modified: maven/sandbox/trunk/mercury/mercury-external/src/main/java/org/apache/maven/mercury/builder/api/MetadataProcessor.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-external/src/main/java/org/apache/maven/mercury/builder/api/MetadataProcessor.java?rev=691458&r1=691457&r2=691458&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-external/src/main/java/org/apache/maven/mercury/builder/api/MetadataProcessor.java (original)
+++ maven/sandbox/trunk/mercury/mercury-external/src/main/java/org/apache/maven/mercury/builder/api/MetadataProcessor.java Tue Sep  2 18:36:50 2008
@@ -8,5 +8,5 @@
 public interface MetadataProcessor
 {
     List<ArtifactBasicMetadata> getDependencies( ArtifactBasicMetadata bmd, MetadataReader mdReader, Hashtable env )
-    throws MetadataProcessingException;
+    throws MetadataReaderException;
 }

Modified: maven/sandbox/trunk/mercury/mercury-external/src/main/java/org/apache/maven/mercury/builder/api/MetadataReader.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-external/src/main/java/org/apache/maven/mercury/builder/api/MetadataReader.java?rev=691458&r1=691457&r2=691458&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-external/src/main/java/org/apache/maven/mercury/builder/api/MetadataReader.java (original)
+++ maven/sandbox/trunk/mercury/mercury-external/src/main/java/org/apache/maven/mercury/builder/api/MetadataReader.java Tue Sep  2 18:36:50 2008
@@ -19,18 +19,19 @@
    * @param classifier - replaces the getClassifier() from bmd if not null
    * @param type - replaces the getType() from bmd if not null
    * @return
-   * @throws MetadataProcessingException
+   * @throws MetadataReaderException
+   * @throws RepositoryException 
    */
   public byte [] readRawData( ArtifactBasicMetadata bmd, String classifier, String type )
-  throws MetadataProcessingException;
+  throws MetadataReaderException;
 
   /**
    * read metadata for the artifact, pointed by bmd. It will return POM bytes regardless of actual bmd type
    * 
    * @param bmd
    * @return
-   * @throws MetadataProcessingException
+   * @throws MetadataReaderException
    */
   public byte [] readMetadata( ArtifactBasicMetadata bmd )
-  throws MetadataProcessingException;
+  throws MetadataReaderException;
 }

Copied: maven/sandbox/trunk/mercury/mercury-external/src/main/java/org/apache/maven/mercury/builder/api/MetadataReaderException.java (from r689883, maven/sandbox/trunk/mercury/mercury-external/src/main/java/org/apache/maven/mercury/builder/api/MetadataProcessingException.java)
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-external/src/main/java/org/apache/maven/mercury/builder/api/MetadataReaderException.java?p2=maven/sandbox/trunk/mercury/mercury-external/src/main/java/org/apache/maven/mercury/builder/api/MetadataReaderException.java&p1=maven/sandbox/trunk/mercury/mercury-external/src/main/java/org/apache/maven/mercury/builder/api/MetadataProcessingException.java&r1=689883&r2=691458&rev=691458&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-external/src/main/java/org/apache/maven/mercury/builder/api/MetadataProcessingException.java (original)
+++ maven/sandbox/trunk/mercury/mercury-external/src/main/java/org/apache/maven/mercury/builder/api/MetadataReaderException.java Tue Sep  2 18:36:50 2008
@@ -7,14 +7,14 @@
  * @version $Id$
  *
  */
-public class MetadataProcessingException
+public class MetadataReaderException
     extends Exception
 {
 
   /**
    * 
    */
-  public MetadataProcessingException()
+  public MetadataReaderException()
   {
     // TODO Auto-generated constructor stub
   }
@@ -22,7 +22,7 @@
   /**
    * @param message
    */
-  public MetadataProcessingException(
+  public MetadataReaderException(
       String message )
   {
     super( message );
@@ -32,7 +32,7 @@
   /**
    * @param cause
    */
-  public MetadataProcessingException(
+  public MetadataReaderException(
       Throwable cause )
   {
     super( cause );
@@ -43,7 +43,7 @@
    * @param message
    * @param cause
    */
-  public MetadataProcessingException(
+  public MetadataReaderException(
       String message,
       Throwable cause )
   {

Propchange: maven/sandbox/trunk/mercury/mercury-external/src/main/java/org/apache/maven/mercury/builder/api/MetadataReaderException.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Modified: maven/sandbox/trunk/mercury/mercury-it/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-it/pom.xml?rev=691458&r1=691457&r2=691458&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-it/pom.xml (original)
+++ maven/sandbox/trunk/mercury/mercury-it/pom.xml Tue Sep  2 18:36:50 2008
@@ -10,11 +10,101 @@
   <name>Mercury Integration Tests:      ${project.version}</name>
   <description>Mercury Integration Tests</description>
 
+  <properties>
+    <plexus.appbooter.version>1.4</plexus.appbooter.version>
+    <plexus.container.version>1.0-alpha-47</plexus.container.version>
+    <nexus.version>1.0.0</nexus.version>
+
+    <nexus-security-enabled>false</nexus-security-enabled>
+
+    <bundle-expanded-dir>target</bundle-expanded-dir>
+    <config-expanded-dir>target/test-nexus-config</config-expanded-dir>
+
+    <nexus-relative-basedir>${bundle-expanded-dir}/nexus-webapp-${nexus.version}</nexus-relative-basedir>
+    <nexus-abs-basedir>${project.build.directory}/nexus-webapp-${nexus.version}</nexus-abs-basedir>
+
+    <config-target-dir>${nexus-abs-basedir}/runtime/apps/nexus/conf</config-target-dir>
+    <work-target-dir>${nexus-abs-basedir}/runtime/work</work-target-dir>
+    <nexus-plexus-config-file>${nexus-abs-basedir}/conf/plexus.xml</nexus-plexus-config-file>
+
+    <nexus-application-protocol>http</nexus-application-protocol>
+    <nexus-application-host>localhost</nexus-application-host>
+    <nexus-application-name>nexus</nexus-application-name>
+    <nexus-application-port>8091</nexus-application-port>
+    <jetty-application-host>0.0.0.0</jetty-application-host>
+
+    <nexus-base-url>${nexus-application-protocol}://${nexus-application-host}:${nexus-application-port}/${nexus-application-name}/</nexus-base-url>
+
+    <nexus-control-port>33002</nexus-control-port>
+  </properties>
+  
+  <build>
+  
+    <filters>
+      <filter>src/test/filters/filter.txt</filter>
+    </filters>
+
+    <testResources>
+
+      <testResource>
+        <directory>src/test/resources</directory>
+        <filtering>true</filtering>
+      </testResource>
+ 
+      <testResource>
+        <directory>src/test/nexus</directory>
+        <filtering>false</filtering>
+        <excludes>
+            <exclude>work/conf/**</exclude>
+        </excludes>
+        <targetPath>../nexus-webapp-${nexus.version}/runtime</targetPath>
+      </testResource>
+ 
+      <testResource>
+        <directory>src/test/nexus</directory>
+        <filtering>true</filtering>
+        <includes>
+            <include>work/conf/**</include>
+        </includes>
+        <targetPath>../nexus-webapp-${nexus.version}/runtime</targetPath>
+      </testResource>
+ 
+      <testResource>
+        <directory>src/test/nexus/conf</directory>
+        <filtering>true</filtering>
+        <targetPath>../nexus-webapp-${nexus.version}/conf</targetPath>
+      </testResource>
+
+    </testResources>
+
+    <plugins>
+      <plugin>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <version>2.0</version>
+        <executions>
+          <execution>
+            <id>unpack-bundle</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>unpack-dependencies</goal>
+            </goals>
+            <configuration>
+              <includeArtifactIds>nexus-webapp</includeArtifactIds>
+              <outputDirectory>${bundle-expanded-dir}</outputDirectory>
+              <excludes>**/conf/plexus.properties</excludes>
+            </configuration>
+          </execution>
+
+        </executions>
+      </plugin>
+    </plugins>   
+  </build>
+
   <dependencies>
     <dependency>
       <groupId>org.apache.maven.mercury</groupId>
       <artifactId>mercury-repo-api</artifactId>
-      <version>1.0.0-alpha-1-SNAPSHOT</version>
+      <version>${project.version}</version>
       <scope>test</scope>
     </dependency>
     <dependency>
@@ -26,44 +116,44 @@
     <dependency>
       <groupId>org.apache.maven.mercury</groupId>
       <artifactId>mercury-md-shared</artifactId>
-      <version>1.0.0-alpha-1-SNAPSHOT</version>
+      <version>${project.version}</version>
       <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.mercury</groupId>
       <artifactId>mercury-util</artifactId>
-      <version>1.0.0-alpha-1-SNAPSHOT</version>
+      <version>${project.version}</version>
       <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.mercury</groupId>
       <artifactId>mercury-crypto-basic</artifactId>
-      <version>1.0.0-alpha-1-SNAPSHOT</version>
+      <version>${project.version}</version>
       <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.mercury</groupId>
       <artifactId>mercury-repo-local-m2</artifactId>
-      <version>1.0.0-alpha-1-SNAPSHOT</version>
+      <version>${project.version}</version>
       <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.mercury</groupId>
       <artifactId>mercury-repo-local-m2</artifactId>
-      <version>1.0.0-alpha-1-SNAPSHOT</version>
+      <version>${project.version}</version>
       <classifier>tests</classifier>
       <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.mercury</groupId>
       <artifactId>mercury-repo-remote-m2</artifactId>
-      <version>1.0.0-alpha-1-SNAPSHOT</version>
+      <version>${project.version}</version>
       <scope>test</scope>
     </dependency>
      <dependency>
       <groupId>org.apache.maven.mercury</groupId>
       <artifactId>mercury-transport-http</artifactId>
-      <version>1.0.0-alpha-1-SNAPSHOT</version>
+      <version>${project.version}</version>
       <classifier>tests</classifier>
       <scope>test</scope>
     </dependency>
@@ -73,6 +163,22 @@
       <version>1.8</version>
       <scope>test</scope>
     </dependency>
+ 
+    <dependency>
+      <groupId>org.sonatype.nexus</groupId>
+      <artifactId>nexus-webapp</artifactId>
+      <version>${nexus.version}</version>
+      <classifier>bundle</classifier>
+      <type>zip</type>
+      <scope>provided</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.sonatype.appbooter</groupId>
+      <artifactId>plexus-forked-app-booter</artifactId>
+      <version>${plexus.appbooter.version}</version>
+    </dependency>
+    
   </dependencies>
 
 </project>
\ No newline at end of file

Added: maven/sandbox/trunk/mercury/mercury-it/src/test/filters/filter.txt
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-it/src/test/filters/filter.txt?rev=691458&view=auto
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-it/src/test/filters/filter.txt (added)
+++ maven/sandbox/trunk/mercury/mercury-it/src/test/filters/filter.txt Tue Sep  2 18:36:50 2008
@@ -0,0 +1,3 @@
+nexus.working.directory=${basedir}/target/nexus-webapp-${nexus.version}/runtime/work/nexus
+nexus.log.directory=${basedir}/target/runtime/apps/nexus/logs
+nexus.conf.directory=${basedir}/target/nexus-webapp-${nexus.version}/runtime/apps/nexus/conf

Modified: maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/AbstractRepositoryReaderM2Test.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/AbstractRepositoryReaderM2Test.java?rev=691458&r1=691457&r2=691458&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/AbstractRepositoryReaderM2Test.java (original)
+++ maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/AbstractRepositoryReaderM2Test.java Tue Sep  2 18:36:50 2008
@@ -1,17 +1,12 @@
 package org.apache.maven.mercury.repository.tests;
 
-import java.io.File;
-import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
-import java.util.Map;
 
 import junit.framework.TestCase;
 
 import org.apache.maven.mercury.artifact.Artifact;
 import org.apache.maven.mercury.artifact.ArtifactBasicMetadata;
-import org.apache.maven.mercury.artifact.ArtifactMetadata;
-import org.apache.maven.mercury.artifact.DefaultArtifact;
 import org.apache.maven.mercury.artifact.QualityRange;
 import org.apache.maven.mercury.builder.api.MetadataProcessor;
 import org.apache.maven.mercury.crypto.api.StreamVerifierAttributes;
@@ -23,10 +18,7 @@
 import org.apache.maven.mercury.repository.api.ArtifactResults;
 import org.apache.maven.mercury.repository.api.Repository;
 import org.apache.maven.mercury.repository.api.RepositoryException;
-import org.apache.maven.mercury.repository.api.AbstractRepOpResult;
 import org.apache.maven.mercury.repository.api.RepositoryReader;
-import org.apache.maven.mercury.repository.local.m2.LocalRepositoryM2;
-import org.apache.maven.mercury.repository.local.m2.MetadataProcessorMock;
 import org.apache.maven.mercury.transport.api.Server;
 
 /**
@@ -215,6 +207,54 @@
     assertNotNull( da.getPomBlob() );
   }
   //------------------------------------------------------------------------------
+  public void testReadVersionsLatest()
+  throws IllegalArgumentException, RepositoryException
+  {
+    bmd = new ArtifactBasicMetadata("a:a:LATEST");
+    query.add( bmd );
+
+    ArtifactBasicResults ror = reader.readVersions( query );
+    
+    assertNotNull( ror );
+    
+    if( ror.hasExceptions() )
+      System.out.println( ror.getExceptions() );
+    
+    assertFalse( ror.hasExceptions() );
+    assertTrue( ror.hasResults() );
+    
+    List<ArtifactBasicMetadata> deps = ror.getResult(bmd);
+    
+    assertNotNull( deps );
+    assertEquals( 1, deps.size() );
+    assertTrue( deps.contains( new ArtifactBasicMetadata("a:a:5-SNAPSHOT") ) );
+    
+  }
+  //------------------------------------------------------------------------------
+  public void testReadVersionsRelease()
+  throws IllegalArgumentException, RepositoryException
+  {
+    bmd = new ArtifactBasicMetadata("a:a:RELEASE");
+    query.add( bmd );
+
+    ArtifactBasicResults ror = reader.readVersions( query );
+    
+    assertNotNull( ror );
+    
+    if( ror.hasExceptions() )
+      System.out.println( ror.getExceptions() );
+    
+    assertFalse( ror.hasExceptions() );
+    assertTrue( ror.hasResults() );
+    
+    List<ArtifactBasicMetadata> deps = ror.getResult(bmd);
+    
+    assertNotNull( deps );
+    assertEquals( 1, deps.size() );
+    assertTrue( deps.contains( new ArtifactBasicMetadata("a:a:4") ) );
+    
+  }
+  //------------------------------------------------------------------------------
   public void testReadLatest()
   throws IllegalArgumentException, RepositoryException
   {

Modified: maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/AbstractRepositoryWriterM2Test.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/AbstractRepositoryWriterM2Test.java?rev=691458&r1=691457&r2=691458&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/AbstractRepositoryWriterM2Test.java (original)
+++ maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/AbstractRepositoryWriterM2Test.java Tue Sep  2 18:36:50 2008
@@ -1,13 +1,11 @@
 package org.apache.maven.mercury.repository.tests;
 
 import java.io.File;
-import java.util.ArrayList;
+import java.net.MalformedURLException;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import junit.framework.TestCase;
-
 import org.apache.maven.mercury.artifact.Artifact;
 import org.apache.maven.mercury.artifact.ArtifactBasicMetadata;
 import org.apache.maven.mercury.artifact.DefaultArtifact;
@@ -19,10 +17,11 @@
 import org.apache.maven.mercury.repository.api.Repository;
 import org.apache.maven.mercury.repository.api.RepositoryReader;
 import org.apache.maven.mercury.repository.api.RepositoryWriter;
-import org.apache.maven.mercury.repository.local.m2.LocalRepositoryM2;
-import org.apache.maven.mercury.repository.local.m2.MetadataProcessorMock;
 import org.apache.maven.mercury.transport.api.Server;
 import org.apache.maven.mercury.util.FileUtil;
+import org.codehaus.plexus.PlexusContainer;
+import org.codehaus.plexus.PlexusTestCase;
+import org.sonatype.appbooter.ForkedAppBooter;
 
 /**
  *
@@ -32,8 +31,14 @@
  *
  */
 public abstract class AbstractRepositoryWriterM2Test
-extends TestCase
+extends PlexusTestCase
 {
+  public static final String TEST_NEXUS_ROLE = ForkedAppBooter.ROLE;
+  public static final String TEST_NEXUS_HINT = "NexusForkedAppBooter";
+  
+  PlexusContainer plexus;
+  ForkedAppBooter nexusForkedAppBooter;
+
   Repository repo;
   
   File targetDirectory; 
@@ -52,15 +57,69 @@
   protected static final String keyId   = "0EDB5D91141BC4F2";
 
   protected static final String secretKeyFile = "/pgp/secring.gpg";
+  protected static final String publicKeyFile = "/pgp/pubring.gpg";
   protected static final String secretKeyPass = "testKey82";
   
+  PgpStreamVerifierFactory pgpF;
+  SHA1VerifierFactory      sha1F;
+  HashSet<StreamVerifierFactory> vFacPgp;
+  HashSet<StreamVerifierFactory> vFacSha1;
+  
   Server server;
   HashSet<StreamVerifierFactory> factories;
   
+  File f;
+  
+  File artifactBinary;
+  
+  /** current test works with snapshots */
+  abstract void setReleases() throws MalformedURLException;
+  /** current test works with releases */
+  abstract void setSnapshots() throws MalformedURLException;
+  
+  
+  @Override
+  protected void setUp()
+  throws Exception
+  {
+    super.setUp();
+
+    pgpF = new PgpStreamVerifierFactory(
+        new StreamVerifierAttributes( PgpStreamVerifierFactory.DEFAULT_EXTENSION, false, true )
+        , getClass().getResourceAsStream( publicKeyFile )
+                            );
+    sha1F = new SHA1VerifierFactory( false, false );
+
+    vFacPgp  = new HashSet<StreamVerifierFactory>(1);
+    vFacSha1 = new HashSet<StreamVerifierFactory>(1);
+
+    vFacPgp.add( pgpF );
+    vFacSha1.add( sha1F );
+
+    artifactBinary = File.createTempFile( "test-repo-writer", "bin" );
+    FileUtil.writeRawData( artifactBinary, getClass().getResourceAsStream( "/maven-core-2.0.9.jar" ) );
+
+    plexus = getContainer();
+    nexusForkedAppBooter = (ForkedAppBooter)plexus.lookup( TEST_NEXUS_ROLE, TEST_NEXUS_HINT  );
+    
+    nexusForkedAppBooter.start();
+  }
+  
+  @Override
+  protected void tearDown()
+  throws Exception
+  {
+    super.tearDown();
+    nexusForkedAppBooter.stop();
+  }
+
   public void testWriteArtifact()
   throws Exception
   {
+    setReleases();
+    
     File af = new File( targetDirectory, "/org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.jar");
+
     assertFalse( af.exists() );
     assertFalse( new File( targetDirectory, "/org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.jar.asc").exists() );
     assertFalse( new File( targetDirectory, "/org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.jar.sha1").exists() );
@@ -70,7 +129,6 @@
     assertFalse( new File( targetDirectory, "/org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.pom.asc").exists() );
     assertFalse( new File( targetDirectory, "/org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.pom.sha1").exists() );
     
-    
     assertFalse( new File( targetDirectory, "/org/apache/maven/maven-core/"+repo.getMetadataName()).exists() );
     assertFalse( new File( targetDirectory, "/org/apache/maven/maven-core/"+repo.getMetadataName()+".asc").exists() );
     assertFalse( new File( targetDirectory, "/org/apache/maven/maven-core/"+repo.getMetadataName()+".sha1").exists() );
@@ -81,38 +139,51 @@
 
     Set<Artifact> artifacts = new HashSet<Artifact>(3);
     DefaultArtifact da = new DefaultArtifact( new ArtifactBasicMetadata("org.apache.maven:maven-core:2.0.9") );
+    
     da.setPomBlob( FileUtil.readRawData( getClass().getResourceAsStream( "/maven-core-2.0.9.pom" ) ) );
-    da.setStream( getClass().getResourceAsStream( "/maven-core-2.0.9.jar" ) );
+    da.setFile( artifactBinary );
     artifacts.add( da );
     
     writer.writeArtifact( artifacts );
     
-    assertTrue( new File( targetDirectory, "/org/apache/maven/maven-core/"+repo.getMetadataName()).exists() );
+    f = new File( targetDirectory, "/org/apache/maven/maven-core/"+repo.getMetadataName());
+    assertTrue( f.exists() );
     assertTrue( new File( targetDirectory, "/org/apache/maven/maven-core/"+repo.getMetadataName()+".asc").exists() );
+    FileUtil.verify( f, vFacPgp, false, true );
     assertTrue( new File( targetDirectory, "/org/apache/maven/maven-core/"+repo.getMetadataName()+".sha1").exists() );
+    FileUtil.verify( f, vFacSha1, false, true );
 
-    assertTrue( new File( targetDirectory, "/org/apache/maven/maven-core/2.0.9/"+repo.getMetadataName()).exists() );
+    f = new File( targetDirectory, "/org/apache/maven/maven-core/2.0.9/"+repo.getMetadataName());
+    assertTrue( f.exists() );
     assertTrue( new File( targetDirectory, "/org/apache/maven/maven-core/2.0.9/"+repo.getMetadataName()+".asc").exists() );
+    FileUtil.verify( f, vFacPgp, false, true );
     assertTrue( new File( targetDirectory, "/org/apache/maven/maven-core/2.0.9/"+repo.getMetadataName()+".sha1").exists() );
-
+    FileUtil.verify( f, vFacSha1, false, true );
+    
     assertTrue( af.exists() );
     assertEquals( 159630, af.length() );
     assertTrue( new File( targetDirectory, "/org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.jar.asc").exists() );
+    FileUtil.verify( af, vFacPgp, false, true );
     assertTrue( new File( targetDirectory, "/org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.jar.sha1").exists() );
+    FileUtil.verify( af, vFacSha1, false, true );
     
     assertTrue( ap.exists() );
     assertEquals( 7785, ap.length() );  
     assertTrue( new File( targetDirectory, "/org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.pom.asc").exists() );
+    FileUtil.verify( ap, vFacPgp, false, true );
     assertTrue( new File( targetDirectory, "/org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.pom.sha1").exists() );
+    FileUtil.verify( ap, vFacSha1, false, true );
   }
   
   public void testWriteSnapshotAsTS()
   throws Exception
   {
+    setSnapshots();
+    
     Set<Artifact> artifacts = new HashSet<Artifact>(3);
     DefaultArtifact da = new DefaultArtifact( new ArtifactBasicMetadata("org.apache.maven:maven-core:2.0.9-20080805.215925-8") );
     da.setPomBlob( FileUtil.readRawData( getClass().getResourceAsStream( "/maven-core-2.0.9.pom" ) ) );
-    da.setStream( getClass().getResourceAsStream( "/maven-core-2.0.9.jar" ) );
+    da.setFile( artifactBinary );
     artifacts.add( da );
     
     writer.writeArtifact( artifacts );
@@ -129,10 +200,12 @@
   public void testWriteSnapshot()
   throws Exception
   {
+    setSnapshots();
+    
     Set<Artifact> set = new HashSet<Artifact>(3);
     DefaultArtifact da = new DefaultArtifact( new ArtifactBasicMetadata("org.apache.maven:maven-core:2.0.9-SNAPSHOT") );
     da.setPomBlob( FileUtil.readRawData( getClass().getResourceAsStream( "/maven-core-2.0.9.pom" ) ) );
-    da.setStream( getClass().getResourceAsStream( "/maven-core-2.0.9.jar" ) );
+    da.setFile( artifactBinary );
     set.add( da );
     
     writer.writeArtifact( set );
@@ -146,16 +219,4 @@
     assertEquals( 7785, ap.length() );  
   }
   
-  public void ntestTemp()
-  throws Exception
-  {
-    Set<Artifact> set = new HashSet<Artifact>(3);
-    DefaultArtifact da = new DefaultArtifact( new ArtifactBasicMetadata("a:a:4") );
-    da.setPomBlob( FileUtil.readRawData( getClass().getResourceAsStream( "/a-4.pom" ) ) );
-    da.setStream( getClass().getResourceAsStream( "/a-4.jar" ) );
-    set.add( da );
-    
-    writer.writeArtifact( set );
-  }
-  
 }

Modified: maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/LocalRepositoryWriterM2Test.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/LocalRepositoryWriterM2Test.java?rev=691458&r1=691457&r2=691458&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/LocalRepositoryWriterM2Test.java (original)
+++ maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/LocalRepositoryWriterM2Test.java Tue Sep  2 18:36:50 2008
@@ -1,24 +1,15 @@
 package org.apache.maven.mercury.repository.tests;
 
 import java.io.File;
+import java.net.MalformedURLException;
 import java.util.ArrayList;
 import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
 
-import junit.framework.TestCase;
-
-import org.apache.maven.mercury.artifact.Artifact;
 import org.apache.maven.mercury.artifact.ArtifactBasicMetadata;
-import org.apache.maven.mercury.artifact.DefaultArtifact;
-import org.apache.maven.mercury.builder.api.MetadataProcessor;
 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.RepositoryReader;
-import org.apache.maven.mercury.repository.api.RepositoryWriter;
 import org.apache.maven.mercury.repository.local.m2.LocalRepositoryM2;
 import org.apache.maven.mercury.repository.local.m2.MetadataProcessorMock;
 import org.apache.maven.mercury.transport.api.Server;
@@ -39,6 +30,8 @@
   protected void setUp()
   throws Exception
   {
+    super.setUp();
+
     targetDirectory = new File("./target/test-classes/tempRepo");
     FileUtil.copy( new File("./target/test-classes/repo"), targetDirectory, true );
     
@@ -64,5 +57,17 @@
     reader = repo.getReader( mdProcessor );
     writer = repo.getWriter();
   }
+
+  @Override
+  void setReleases()
+      throws MalformedURLException
+  {
+  }
+
+  @Override
+  void setSnapshots()
+      throws MalformedURLException
+  {
+  }
   
 }

Modified: maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/RemoteRepositoryReaderM2Test.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/RemoteRepositoryReaderM2Test.java?rev=691458&r1=691457&r2=691458&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/RemoteRepositoryReaderM2Test.java (original)
+++ maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/RemoteRepositoryReaderM2Test.java Tue Sep  2 18:36:50 2008
@@ -9,19 +9,11 @@
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
-import java.util.Map;
-
-import junit.framework.TestCase;
 
 import org.apache.maven.mercury.artifact.ArtifactBasicMetadata;
-import org.apache.maven.mercury.artifact.ArtifactMetadata;
-import org.apache.maven.mercury.artifact.QualityRange;
-import org.apache.maven.mercury.builder.api.MetadataProcessingException;
-import org.apache.maven.mercury.builder.api.MetadataProcessor;
-import org.apache.maven.mercury.repository.local.m2.MetadataProcessorMock;
+import org.apache.maven.mercury.builder.api.MetadataReaderException;
 import org.apache.maven.mercury.repository.api.RepositoryException;
-import org.apache.maven.mercury.repository.api.AbstractRepOpResult;
-import org.apache.maven.mercury.repository.api.RepositoryReader;
+import org.apache.maven.mercury.repository.local.m2.MetadataProcessorMock;
 import org.apache.maven.mercury.repository.metadata.Metadata;
 import org.apache.maven.mercury.repository.metadata.io.xpp3.MetadataXpp3Reader;
 import org.apache.maven.mercury.repository.remote.m2.RemoteRepositoryM2;
@@ -135,7 +127,7 @@
   }
   //-------------------------------------------------------------------------
   public void testReadRemoteMdViaRepositoryReader()
-  throws FileNotFoundException, IOException, XmlPullParserException, RepositoryException, MetadataProcessingException
+  throws FileNotFoundException, IOException, XmlPullParserException, RepositoryException, MetadataReaderException
   {
     
     byte [] mmBuf = reader.readRawData( "a/a/maven-metadata.xml" );

Added: maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/conf/plexus.properties
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/conf/plexus.properties?rev=691458&view=auto
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/conf/plexus.properties (added)
+++ maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/conf/plexus.properties Tue Sep  2 18:36:50 2008
@@ -0,0 +1,5 @@
+applicationPort=${nexus-application-port}
+runtime=${basedir}/runtime
+apps=${runtime}/apps
+nexus-work=${basedir}/../sonatype-work/nexus
+webapp=${runtime}/apps/nexus/webapp

Added: maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/conf/nexus.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/conf/nexus.xml?rev=691458&view=auto
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/conf/nexus.xml (added)
+++ maven/sandbox/trunk/mercury/mercury-it/src/test/nexus/work/conf/nexus.xml Tue Sep  2 18:36:50 2008
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<nexusConfiguration>
+  <version>1.0.5</version>
+
+  <security>
+    <enabled>${nexus-security-enabled}</enabled>
+    <anonymousAccessEnabled>false</anonymousAccessEnabled>
+    <realms>
+      <realm>default</realm>
+    </realms>
+  </security>
+
+  <globalConnectionSettings />
+  <restApi />
+  <httpProxy>
+    <enabled>true</enabled>
+  </httpProxy>
+  <routing>
+    <groups />
+  </routing>
+  <repositories>
+    <repository>
+      <id>central</id>
+      <name>Maven Central</name>
+      <artifactMaxAge>-1</artifactMaxAge>
+      <remoteStorage>
+        <url>http://repo1.maven.org/maven2/</url>
+      </remoteStorage>
+    </repository>
+    <repository>
+      <id>apache-snapshots</id>
+      <name>Apache Snapshots</name>
+      <repositoryPolicy>snapshot</repositoryPolicy>
+      <remoteStorage>
+        <url>http://people.apache.org/repo/m2-snapshot-repository</url>
+      </remoteStorage>
+    </repository>
+    <repository>
+      <id>codehaus-snapshots</id>
+      <name>Codehaus Snapshots</name>
+      <repositoryPolicy>snapshot</repositoryPolicy>
+      <remoteStorage>
+        <url>http://snapshots.repository.codehaus.org/</url>
+      </remoteStorage>
+    </repository>
+    <repository>
+      <id>releases</id>
+      <name>Releases</name>
+      <allowWrite>true</allowWrite>
+      <artifactMaxAge>-1</artifactMaxAge>
+    </repository>
+    <repository>
+      <id>snapshots</id>
+      <name>Snapshots</name>
+      <allowWrite>true</allowWrite>
+      <repositoryPolicy>snapshot</repositoryPolicy>
+    </repository>
+    <repository>
+      <id>thirdparty</id>
+      <name>3rd party</name>
+      <allowWrite>true</allowWrite>
+      <artifactMaxAge>-1</artifactMaxAge>
+    </repository>
+    <repository>
+      <id>test</id>
+      <name>test</name>
+      <allowWrite>true</allowWrite>
+      <checksumPolicy>ignore</checksumPolicy>
+    </repository>
+  </repositories>
+  <repositoryShadows>
+    <repositoryShadow>
+      <id>central-m1</id>
+      <name>Central M1 shadow</name>
+      <shadowOf>central</shadowOf>
+    </repositoryShadow>
+  </repositoryShadows>
+  <repositoryGrouping>
+    <pathMappings>
+      <pathMapping>
+        <id>inhouse-stuff</id>
+        <groupId>*</groupId>
+        <routePattern>.*/(com|org)/somecompany/.*</routePattern>
+        <routeType>inclusive</routeType>
+        <repositories>
+          <repository>snapshots</repository>
+          <repository>releases</repository>
+        </repositories>
+      </pathMapping>
+      <pathMapping>
+        <id>apache-stuff</id>
+        <groupId>*</groupId>
+        <routePattern>.*/org/some-oss/.*</routePattern>
+        <routeType>exclusive</routeType>
+        <repositories>
+          <repository>releases</repository>
+          <repository>snapshots</repository>
+        </repositories>
+      </pathMapping>
+    </pathMappings>
+    <repositoryGroups>
+      <repositoryGroup>
+        <groupId>public</groupId>
+        <name>Public Repositories</name>
+        <repositories>
+          <repository>releases</repository>
+          <repository>snapshots</repository>
+          <repository>thirdparty</repository>
+          <repository>central</repository>
+        </repositories>
+      </repositoryGroup>
+      <repositoryGroup>
+        <groupId>public-snapshots</groupId>
+        <name>Public Snapshot Repositories</name>
+        <repositories>
+          <repository>apache-snapshots</repository>
+          <repository>codehaus-snapshots</repository>
+        </repositories>
+      </repositoryGroup>
+    </repositoryGroups>
+  </repositoryGrouping>
+  <repositoryTargets>
+    <repositoryTarget>
+      <id>1</id>
+      <name>All (Maven2)</name>
+      <contentClass>maven2</contentClass>
+      <patterns>
+        <pattern>.*</pattern>
+      </patterns>
+    </repositoryTarget>
+    <repositoryTarget>
+      <id>2</id>
+      <name>All (Maven1)</name>
+      <contentClass>maven1</contentClass>
+      <patterns>
+        <pattern>.*</pattern>
+      </patterns>
+    </repositoryTarget>
+    <repositoryTarget>
+      <id>3</id>
+      <name>All but sources (Maven2)</name>
+      <contentClass>maven2</contentClass>
+      <patterns>
+        <pattern>(?!.*-sources.*).*</pattern>
+      </patterns>
+    </repositoryTarget>
+    <repositoryTarget>
+      <id>4</id>
+      <name>All Metadata (Maven2)</name>
+      <contentClass>maven2</contentClass>
+      <patterns>
+        <pattern>.*maven-metadata\.xml.*</pattern>
+      </patterns>
+    </repositoryTarget>
+  </repositoryTargets>
+  <smtpConfiguration>
+    <host>smtp-host</host>
+    <port>25</port>
+    <username>smtp-username</username>
+    <password>smtp-password</password>
+    <systemEmailAddress>system@nexus.org</systemEmailAddress>
+  </smtpConfiguration>
+</nexusConfiguration>