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 2009/02/17 19:44:48 UTC

svn commit: r745190 - in /maven/mercury/trunk/mercury-ant-tasks: ./ src/main/java/org/apache/maven/mercury/ant/tasks/ src/main/resources/org/apache/maven/mercury/ant/tasks/ src/test/java/org/apache/maven/mercury/ant/tasks/ src/test/resources/remoteRepo...

Author: ogusakov
Date: Tue Feb 17 18:44:46 2009
New Revision: 745190

URL: http://svn.apache.org/viewvc?rev=745190&view=rev
Log:
[MNG-3969] intermediate commit. New syntax for signature validation implemented and partially tested

Added:
    maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Validation.java   (with props)
    maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/
    maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/
    maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/
    maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/maven-metadata.xml   (with props)
    maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/v2/
    maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/v2/a2-v2.jar
    maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/v2/a2-v2.pom   (with props)
    maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/v2/maven-metadata.xml   (with props)
    maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/
    maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/
    maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/
    maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/maven-metadata.xml   (with props)
    maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/v0/
    maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/v0/a0-v0.jar
    maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/v0/a0-v0.pom   (with props)
    maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/v0/maven-metadata.xml   (with props)
    maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/
    maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/
    maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/maven-metadata.xml   (with props)
    maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/v1/
    maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/v1/a1-v1.jar
    maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/v1/a1-v1.pom   (with props)
    maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/v1/maven-metadata.xml   (with props)
Modified:
    maven/mercury/trunk/mercury-ant-tasks/build.xml
    maven/mercury/trunk/mercury-ant-tasks/mercury.xml
    maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Auth.java
    maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Config.java
    maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Dep.java
    maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Repo.java
    maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/ResolveTask.java
    maven/mercury/trunk/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/tasks/Messages.properties
    maven/mercury/trunk/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/tasks/antlib.xml
    maven/mercury/trunk/mercury-ant-tasks/src/test/java/org/apache/maven/mercury/ant/tasks/MercuryBootstrapTest.java

Modified: maven/mercury/trunk/mercury-ant-tasks/build.xml
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant-tasks/build.xml?rev=745190&r1=745189&r2=745190&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-ant-tasks/build.xml (original)
+++ maven/mercury/trunk/mercury-ant-tasks/build.xml Tue Feb 17 18:44:46 2009
@@ -50,19 +50,12 @@
 
     <merc:config id="verification-conf">
       
-      <merc:repo id="localVerifyRepo" dir="${local.verify.dir}">
-        
-        <merc:verifywrite type="pgp">
-          <property name="keyring" value="${basedir}/target/test-classes/pgp/secring.gpg"/>
-          <property name="pass"    value="${secret.keyring.pass}"/>
-          <property name="key"     value="${secret.keyring.key}"/>
-        </merc:verifywrite>
-        
-        <merc:verifyread type="pgp">
-          <property name="keyring" value="${basedir}/target/test-classes/pgp/pubring.gpg"/>
-        </merc:verifyread>
-
-      </merc:repo>
+      <merc:repo id="localVerifyRepo" dir="${local.verify.dir}"
+                 pgpKeyring="${basedir}/target/test-classes/pgp/pubring.gpg"
+      	         pgpSecretKeyring="${basedir}/target/test-classes/pgp/secring.gpg"
+      	         pgpSecretKey="${secret.keyring.key}"
+      	         pgpSecretKeyPass="${secret.keyring.pass}"
+      />
 
     </merc:config>
 
@@ -73,17 +66,16 @@
   </target>
 
   <target name="compile" depends="init">
-    <merc:resolve pathid="compile-path"
-                 depid="my-libs"
-                 configid="${config.name}"
+    <merc:resolve depid="my-libs"
+                  configid="${config.name}"
                  />
 
-    <property name="cp" refid="compile-path"/>
+    <property name="cp" refid="mercury.classpath.compile"/>
     <echo>path is ${cp}</echo>
 
     <javac srcdir="${src}"
            destdir="${target}"
-           classpathref="compile-path"
+           classpathref="mercury.classpath.compile"
            source="${compiler.version}"
            target="${compiler.version}"
     />
@@ -105,17 +97,16 @@
   
   <target name="compile-auth" depends="init">
 
-    <merc:resolve pathid="compile-path-auth"
-                 depid="my-libs"
+    <merc:resolve depid="my-libs"
                  configid="config-auth"
                  />
 
-    <property name="cpa" refid="compile-path-auth"/>
+    <property name="cpa" refid="mercury.classpath.compile"/>
     <echo>compile-path-auth is ${cpa}</echo>
 
     <javac srcdir="${src}"
            destdir="${target}"
-           classpathref="compile-path-auth"
+           classpathref="mercury.classpath.compile"
            source="${compiler.version}"
            target="${compiler.version}"
     />
@@ -152,11 +143,9 @@
   
     <merc:config id="pgp-conf">
       <merc:repo id="localPgpRepo"  dir="${local.verify.dir}"/>
-      <merc:repo id="remotePgpRepo" url="http://localhost:${repo.port}/maven2">
-        <merc:verifyread type="pgp">
-          <property name="keyring" value="${basedir}/target/test-classes/pgp/pubring.gpg"/>
-        </merc:verifyread>
-      </merc:repo>
+      <merc:repo id="remotePgpRepo" url="http://localhost:${repo.port}/maven2"
+      	         pgpKeyring="${basedir}/target/test-classes/pgp/pubring.gpg"
+      />
     </merc:config>
 
     <merc:dep id="t-good">
@@ -276,7 +265,7 @@
 
     <localRepository path="${basedir}/target/path-old" layout="default"/>
     
-    <dependencies pathId="dependency.classpath">
+    <dependencies>
       <dependency groupId="asm" artifactId="asm" version="3.0"/>
     </dependencies>
     
@@ -285,7 +274,7 @@
            source="${compiler.version}"
            target="${compiler.version}"
     >
-      <classpath refid="dependency.classpath"/> 
+      <classpath refid="mercury.classpath"/> 
     </javac>
 
   </target>
@@ -298,7 +287,7 @@
 
     <localRepository path="${basedir}/target/path-old-auth" layout="default"/>
     
-    <dependencies pathId="dependency.classpath">
+    <dependencies>
       <dependency groupId="asm" artifactId="asm" version="3.0"/>
     </dependencies>
     
@@ -307,7 +296,7 @@
            source="${compiler.version}"
            target="${compiler.version}"
     >
-      <classpath refid="dependency.classpath"/> 
+      <classpath refid="mercury.classpath"/> 
     </javac>
 
   </target>

Modified: maven/mercury/trunk/mercury-ant-tasks/mercury.xml
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant-tasks/mercury.xml?rev=745190&r1=745189&r2=745190&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-ant-tasks/mercury.xml (original)
+++ maven/mercury/trunk/mercury-ant-tasks/mercury.xml Tue Feb 17 18:44:46 2009
@@ -1,7 +1,8 @@
-<project name="build" default="build" xmlns:mercury="antlib:org.apache.maven.mercury.ant.tasks">
+<project name="build" xmlns:mercury="antlib:org.apache.maven.mercury.ant.tasks">
   
   <target name="initialize">
-<!--    <path id="boot.classpath" path="target/mercury-all-1.0.jar" />
+<!-- 
+    <path id="boot.classpath" path="target/mercury-all-1.0.jar" />
     <taskdef resource="org/apache/maven/mercury/ant/antlib.xml" uri="urn:mercury" classpathref="boot.classpath"/>
     <taskdef resource="org/apache/maven/mercury/ant/antlib.xml" uri="urn:mercury"/>
 -->
@@ -107,23 +108,46 @@
     	             source="maven:${basedir}/target/test-classes/pom-non-transitive.xml" 
     	             id="g:a:1::pom"
     />
-
+    
+    <property name="cp"         refid="mercury.classpath"/>
+    <property name="cp.runtime" refid="mercury.classpath.runtime"/>
+    
+    <property name="cp.dir" location="${basedir}/target/test-copy"/>
+    <delete dir="${cp.dir}"/>
+    <mkdir dir="${cp.dir}"/>
+    <copy todir="${cp.dir}" flatten="true">
+      <fileset refid="mercury.fileset"/>
+    </copy>
+    
+    <property name="cpr.dir" location="${basedir}/target/test-copy-runtime"/>
+    <delete dir="${cpr.dir}"/>
+    <mkdir dir="${cpr.dir}"/>
+    <copy todir="${cpr.dir}" flatten="true">
+      <fileset refid="mercury.fileset"/>
+    </copy>
+  	
  </target>
-          
-  <target name="download-repo-flat">
+
+  <target name="repo-pgp">
     
-    <mercury:resolve-dependencies source="maven:pom.xml">
-      <mercury:local-repository location="${basedir}/lib" layout="flat"/>
+    <mercury:local-repository location="${localRepo}"/>
       <!-- Control checksum and pgp globally for all remote repositories used -->
-      <mercury:remote-repositories checksum-validation="true" pgp-key-validation="true">
-        <mercury:remote-repository location="http://repository.sonatype.com/groups/public"/>
-        <mercury:remote-repository location="http://repository.sonatype.com/groups/bad" checksum-validation="false" pgp-validation="false"/>
+      <mercury:remote-repositories sha1Validation="true" pgpValidation="true">
+        <mercury:repository location="${remoteRepo}/good"/>
+        <mercury:repository location="${remoteRepo}/bad"
+                                   sha1Validation="false"
+                                   pgpValidation="false"
+        />
       </mercury:remote-repositories>
-    </mercury:resolve-dependencies>
+  	
+      <mercury:resolve-dependencies id="g:a:1::pom" source="maven:${basedir}/target/test-classes/pom-non-transitive.xml"/>
 
   </target>
-  	          
-  <target name="download-repos-2">
+
+	
+	
+	
+  <target name="download-repos-pgp-2">
 
     <mercury:resolve-dependencies source="maven:pom.xml">
       <mercury:local-repository location="${basedir}/lib" layout="flat"/>
@@ -138,12 +162,16 @@
       </mercury:remote-repositories>
     </mercury:resolve-dependencies>
 
+    </target>
+                
+    <target name="download-repos-3">
+
     <mercury:resolve-dependencies source="maven:pom.xml">
       <mercury:local-repository location="${basedir}/lib" layout="flat"/>
       <mercury:remote-repositories checksum-validation="true">
         <!-- The presence of this element says we want this feature turned on, and allow some configuration -->
         <mercury:pgp-key-validation keyring-location="${basedir}/pgp/project-keyring.gpg">
-          <exclude id="g0:a0:v0"/>
+              <exclude id="g0:a0:v0"/>
         </mercury:pgp-key-validation>
         <mercury:remote-repository location="http://repository.sonatype.com/groups/public"/>
         <mercury:remote-repository location="http://repository.sonatype.com/groups/bad" checksum-validation="false" pgp-validation="false"/>
@@ -152,10 +180,4 @@
 
   </target>
 
-  <target name="build" depends="initialize">
-    <javac srcdir="src/main/java" destdir="target/classes">
-      <classpath refid="mercury.classpath.compile"/>
-    </javac>      
-  </target>
-
 </project>

Modified: maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Auth.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Auth.java?rev=745190&r1=745189&r2=745190&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Auth.java (original)
+++ maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Auth.java Tue Feb 17 18:44:46 2009
@@ -21,6 +21,7 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.util.StringTokenizer;
 
 import org.apache.maven.mercury.transport.api.Credentials;
 import org.apache.maven.mercury.util.FileUtil;
@@ -40,12 +41,41 @@
 
     private static final String DEFAULT_AUTH_ID =
         System.getProperty( "mercury.default.auth.id", "mercury.default.auth.id." + System.currentTimeMillis() );
+    
+    public static final String METHOD_BASIC = "basic";
+
+    String _method;
 
     String _name;
 
     String _pass;
 
     String _certfile;
+    
+    public Auth()
+    {
+    }
+    
+    public Auth( String auth )
+    {
+        if( auth == null )
+            throw new IllegalArgumentException( LANG.getMessage( "auth.null.auth" ) );
+        
+        int colon = auth.indexOf( ':' );
+        
+        String paramStr = null;
+        
+        if( colon == -1 )
+        {
+            _method = METHOD_BASIC;
+            
+            paramStr = auth;
+        }
+        else
+            paramStr = auth.substring( colon+1 );
+        
+        StringTokenizer st = new StringTokenizer( paramStr, "," );
+    }
 
     public void setName( String name )
     {

Modified: maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Config.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Config.java?rev=745190&r1=745189&r2=745190&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Config.java (original)
+++ maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Config.java Tue Feb 17 18:44:46 2009
@@ -51,13 +51,22 @@
 
     public static final String DEFAULT_CONFIG_ID =
         System.getProperty( "mercury.default.config.id", "mercury.default.config.id." + System.currentTimeMillis() );
-
-    Collection<Repo> _repos;
-
-    Collection<Auth> _auths;
-
-    List<Repository> _repositories;
-
+    
+    public static final String USER_HOME = System.getProperty( "user.home" );
+    
+    public static final String DEFAULT_PUBLIC_KEYRING = USER_HOME + "/.gnupg/pubring.gpg";
+    
+    public static final String DEFAULT_SECRET_KEYRING = USER_HOME + "/.gnupg/secring.gpg";
+    
+    private Collection<Repo> _repos;
+
+    private Collection<Auth> _auths;
+
+    private List<Repository> _repositories;
+    
+    private Validation _validation = new Validation();
+    
+    //------------------------------------------------------------------------------
     public Config()
     {
     }
@@ -125,9 +134,9 @@
     {
         init();
 
-        Repo r = new Repo( true );
+        Repo r = new Repo( true, _validation );
 
-        listRepo( r );
+        registerRepo( r );
 
         return r;
     }
@@ -137,7 +146,7 @@
         return createRepo();
     }
 
-    protected void listRepo( Repo repo )
+    protected void registerRepo( Repo repo )
     {
         if ( _repos == null )
         {
@@ -160,7 +169,7 @@
 
         Config config = (Config) co;
 
-        config.listRepo( repo );
+        config.registerRepo( repo );
     }
 
     public static Config getDefaultConfig( Project project )
@@ -194,6 +203,74 @@
         return a;
     }
 
-    // ======================================================================================
+    public void setSha1Validation( boolean val )
+    {
+        _validation._sha1Validation = val;
+    }
+
+    public void setSha1validation( boolean val )
+    {
+        setSha1Validation( val );
+    }
+
+    public void setSha1Signature( boolean val )
+    {
+        _validation._sha1Signature = val;
+    }
+
+    public void setSha1signature( boolean val )
+    {
+        setSha1Signature( val );
+    }
+
+    public void setPgpValidation( boolean val )
+    {
+        _validation._pgpValidation = val;
+    }
+
+    public void setPgpvalidation( boolean val )
+    {
+        setPgpValidation( val );
+    }
+
+    public void setPgpPublicKeyring( String val )
+    {
+        _validation._pgpPublicKeyring = val;
+    }
+
+    public void setPgpPublickeyring( String val )
+    {
+        setPgpPublicKeyring( val );
+    }
+
+    public void setPgpSecretKeyring( String val )
+    {
+        _validation._pgpSecretKeyring = val;
+    }
+
+    public void setPgpSecretkeyring( String val )
+    {
+        setPgpSecretKeyring( val );
+    }
+
+    public void setPgpSecretKey( String val )
+    {
+        _validation._pgpSecretKey = val;
+    }
+
+    public void setPgpSecretkey( String val )
+    {
+        setPgpSecretKey( val );
+    }
+
+    public void setPgpSecretKeyPass( String val )
+    {
+        _validation._pgpSecretKeyPass = val;
+    }
+
+    public void setPgpSecretKeypass( String val )
+    {
+        setPgpSecretKeyPass( val );
+    }
 
 }

Modified: maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Dep.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Dep.java?rev=745190&r1=745189&r2=745190&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Dep.java (original)
+++ maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Dep.java Tue Feb 17 18:44:46 2009
@@ -208,13 +208,16 @@
             throw new BuildException( LANG.getMessage( "resolve.cannot.read", config.getId(), res.toString() ) );
         }
 
-        if ( ( aRes == null ) || aRes.hasExceptions() )
+        if ( aRes == null )
         {
             throw new Exception( LANG.getMessage( "vr.error", aRes.getExceptions().toString() ) );
         }
 
         if ( !aRes.hasResults() )
         {
+            if( aRes.hasExceptions() )
+                throw new Exception( LANG.getMessage( "vr.error", aRes.getExceptions().toString() ) );
+            
             return null;
         }
 

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=745190&r1=745189&r2=745190&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 Feb 17 18:44:46 2009
@@ -64,8 +64,6 @@
 
     private String _url;
 
-    private String _type;
-
     private String _authid;
 
     private String _layout = DEFAULT_LAYOUT;
@@ -89,14 +87,19 @@
     private transient boolean _registered = false;
 
     private static final String[] SUPPORTED_LAYOUTS = new String[] { DEFAULT_LAYOUT, "m2", "flat" };
+    
+    private Validation _validation;
+    
 
     public Repo()
     {
     }
 
-    public Repo( boolean managed )
+    public Repo( boolean managed, Validation validation )
     {
         _managed = managed;
+        
+        _validation = validation;
     }
 
     private void processDefaults()
@@ -177,14 +180,12 @@
             setUrl( path );
         }
     }
-
-    public void setType( String type )
+    
+    public void setAuthentication()
     {
-        this._type = type;
-
-        processDefaults();
+        
     }
-
+    
     public void setAuthid( String authid )
     {
         this._authid = authid;
@@ -232,33 +233,33 @@
         return ( _dir != null );
     }
 
-    public Verify createVerifywrite()
-    {
-        if ( _writeVerifiers == null )
-        {
-            _writeVerifiers = new ArrayList<Verify>( 2 );
-        }
-
-        Verify v = new Verify();
-
-        _writeVerifiers.add( v );
-
-        return v;
-    }
-
-    public Verify createVerifyread()
-    {
-        if ( _readVerifiers == null )
-        {
-            _readVerifiers = new ArrayList<Verify>( 2 );
-        }
-
-        Verify v = new Verify();
-
-        _readVerifiers.add( v );
-
-        return v;
-    }
+//    public Verify createVerifywrite()
+//    {
+//        if ( _writeVerifiers == null )
+//        {
+//            _writeVerifiers = new ArrayList<Verify>( 2 );
+//        }
+//
+//        Verify v = new Verify();
+//
+//        _writeVerifiers.add( v );
+//
+//        return v;
+//    }
+
+//    public Verify createVerifyread()
+//    {
+//        if ( _readVerifiers == null )
+//        {
+//            _readVerifiers = new ArrayList<Verify>( 2 );
+//        }
+//
+//        Verify v = new Verify();
+//
+//        _readVerifiers.add( v );
+//
+//        return v;
+//    }
 
     private Set<StreamVerifierFactory> getVerifiers( List<Verify> vlist )
     {
@@ -281,6 +282,10 @@
     public Repository getRepository()
     {
         Repository r = null;
+        
+        updateReadVerifiers( _validation );
+        
+        updateWriteVerifiers( _validation );
 
         if ( isLocal() )
         {
@@ -370,6 +375,78 @@
         return r;
     }
 
+    /**
+     * @param validation
+     */
+    private void updateReadVerifiers( Validation validation )
+    {
+        if( validation == null 
+            ||
+            (
+              validation._sha1Validation == false
+              && 
+              validation._pgpValidation == false
+            ) 
+        )
+            return;
+
+        if( _readVerifiers == null )
+            _readVerifiers = new ArrayList<Verify>(2);
+        
+        if( validation._sha1Validation )
+        {
+            Verify v = new Verify( Validation.TYPE_SHA1 );
+            
+            _readVerifiers.add( v );
+        }
+        
+        if( validation._pgpValidation )
+        {
+            Verify v = new Verify( Validation.TYPE_PGP, prop("keyring", validation._pgpPublicKeyring ) );
+            
+            _readVerifiers.add( v );
+        }
+            
+    }
+
+    /**
+     * @param validation
+     */
+    private void updateWriteVerifiers( Validation validation )
+    {
+        if( validation == null 
+            ||
+            (
+            validation._sha1Signature == false
+            &&
+            Util.isEmpty( validation._pgpSecretKeyPass ) 
+            ) 
+        )
+            return;
+
+        if( _writeVerifiers == null )
+            _writeVerifiers = new ArrayList<Verify>(2);
+        
+        if( validation._sha1Signature )
+        {
+            Verify v = new Verify( Validation.TYPE_SHA1 );
+            
+            _writeVerifiers.add( v );
+        }
+        
+        if( ! Util.isEmpty( validation._pgpSecretKeyPass ) )
+        {
+            Verify v = new Verify( Validation.TYPE_PGP
+                                   , prop( "keyring", validation._pgpSecretKeyring )
+                                   , prop( "pass",    validation._pgpSecretKeyPass )
+                                   , prop( "key",     validation._pgpSecretKey )
+                                 );
+            
+            _writeVerifiers.add( v );
+        }
+            
+    }
+
     public Auth createAuth()
     {
         _auth = new Auth();
@@ -398,14 +475,21 @@
     {
         return createProxyauth();
     }
+    
+    public static final Property prop( String name, String val )
+    {
+        Property prop = new Property();
+        
+        prop.setName( name );
+        
+        prop.setValue( val );
+        
+        return prop;
+    }
 
-    public class Verify
+    private class Verify
         extends AbstractDataType
     {
-        public static final String PGP = "pgp";
-
-        public static final String SHA1 = "sha1";
-
         String _type;
 
         boolean _lenient = true;
@@ -413,6 +497,23 @@
         boolean _sufficient = false;
 
         Map<String, String> _properties;
+        
+        public Verify( String type, Property... properties )
+        {
+            setType( type );
+            
+            if( properties != null )
+                for( Property p : properties )
+                    addConfiguredProperty( p );
+        }
+
+        /**
+         * 
+         */
+        public Verify()
+        {
+            // TODO Auto-generated constructor stub
+        }
 
         public void setType( String type )
         {
@@ -447,13 +548,14 @@
                 throw new BuildException( LANG.getMessage( "config.repo.verifier.no.type" ) );
             }
 
-            if ( ( _properties == null ) || _properties.isEmpty() )
+            if ( Validation.TYPE_PGP.equals( _type ) )
             {
-                throw new BuildException( LANG.getMessage( "config.repo.verifier.no.properties", _type ) );
-            }
 
-            if ( PGP.equals( _type ) )
-            {
+                if ( Util.isEmpty(  _properties ) )
+                {
+                    throw new BuildException( LANG.getMessage( "config.repo.verifier.no.properties", _type ) );
+                }
+
                 String keyRing = _properties.get( "keyring" );
 
                 if ( keyRing == null )
@@ -508,7 +610,7 @@
 
                 }
             }
-            else if ( SHA1.equals( _type ) )
+            else if ( Validation.TYPE_SHA1.equals( _type ) )
             {
                 SHA1VerifierFactory fac =
                     new SHA1VerifierFactory( new StreamVerifierAttributes( SHA1VerifierFactory.DEFAULT_EXTENSION,
@@ -521,4 +623,60 @@
         }
     }
 
+    public void setSha1Validation( boolean val )
+    {
+        _validation._sha1Validation = val;
+    }
+
+    public void setSha1validation( boolean val )
+    {
+        setSha1Validation( val );
+    }
+
+    public void setPgpValidation( boolean val )
+    {
+        _validation._pgpValidation = val;
+    }
+
+    public void setPgpKeyring( String val )
+    {
+        setPgpValidation( true );
+        _validation._pgpPublicKeyring = val;
+    }
+
+    public void setPgpkeyring( String val )
+    {
+        setPgpKeyring( val );
+    }
+
+    public void setPgpSecretKeyring( String val )
+    {
+        _validation._pgpSecretKeyring = val;
+    }
+
+    public void setPgpSecretkeyring( String val )
+    {
+        setPgpSecretKeyring( val );
+    }
+
+    public void setPgpSecretKey( String val )
+    {
+        _validation._pgpSecretKey = val;
+    }
+
+    public void setPgpSecretkey( String val )
+    {
+        setPgpSecretKey( val );
+    }
+
+    public void setPgpSecretKeyPass( String val )
+    {
+        _validation._pgpSecretKeyPass = val;
+    }
+
+    public void setPgpSecretKeypass( String val )
+    {
+        setPgpSecretKeyPass( val );
+    }
+
 }

Modified: maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/ResolveTask.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/ResolveTask.java?rev=745190&r1=745189&r2=745190&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/ResolveTask.java (original)
+++ maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/ResolveTask.java Tue Feb 17 18:44:46 2009
@@ -32,8 +32,6 @@
 import org.apache.tools.ant.types.FileList;
 import org.apache.tools.ant.types.FileSet;
 import org.apache.tools.ant.types.Path;
-import org.apache.tools.ant.types.FileList.FileName;
-import org.apache.tools.ant.types.selectors.FilenameSelector;
 import org.codehaus.plexus.lang.DefaultLanguage;
 import org.codehaus.plexus.lang.Language;
 
@@ -55,8 +53,6 @@
 
     private String _pathId;
 
-    private String _fileSetId;
-
     private String _refPathId;
 
     private String _configId;
@@ -72,7 +68,7 @@
     private List<Dependency> _dependencies;
 
     private Dependency _sourceDependency;
-
+    
     // ----------------------------------------------------------------------------------------
     @Override
     public String getDescription()
@@ -167,9 +163,7 @@
                 Collection<Artifact> artifacts = dep.resolve( config, sc );
 
                 if ( Util.isEmpty( artifacts ) )
-                {
                     continue;
-                }
 
                 if ( ArtifactScopeEnum.compile.equals( sc ) )
                 {
@@ -180,46 +174,6 @@
                     + sc.getScope(), artifacts );
             }
 
-            // FileList pathFileList = new FileList();
-            //
-            // File dir = null;
-            //
-            // for ( Artifact a : artifacts )
-            // {
-            // if ( dir == null )
-            // {
-            // dir = a.getFile().getParentFile();
-            // }
-            //
-            // String aPath = a.getFile().getCanonicalPath();
-            //
-            // FileList.FileName fn = new FileList.FileName();
-            //
-            // fn.setName( aPath );
-            //
-            // pathFileList.addConfiguredFile( fn );
-            // }
-            //
-            // pathFileList.setDir( dir );
-            //
-            // // now - the path
-            // if ( path == null )
-            // {
-            // path = new Path( getProject(), _pathId );
-            //
-            // path.addFilelist( pathFileList );
-            //
-            // getProject().addReference( _pathId, path );
-            // }
-            // else
-            // {
-            // Path newPath = new Path( getProject() );
-            //
-            // newPath.addFilelist( pathFileList );
-            //
-            // path.append( newPath );
-            // }
-
         }
         catch ( Exception e )
         {
@@ -227,6 +181,16 @@
         }
     }
 
+    private File findRoot( File f )
+    {
+        File root = f;
+        
+        while( root.getParentFile() != null )
+            root = root.getParentFile();
+        
+        return root;
+    }
+
     private void createPath( String pathId, String filesetId, Collection<Artifact> artifacts )
         throws IOException
     {
@@ -238,13 +202,15 @@
 
         FileList pathFileList = new FileList();
 
-        FileList fList = (FileList) getProject().getReference( filesetId );
+        FileSet fSet = (FileSet) getProject().getReference( filesetId );
 
-        if ( fList == null )
+        if ( fSet == null )
         {
-            fList = pathFileList;
+            fSet = new FileSet();
+
+            fSet.setProject( getProject() );
 
-            getProject().addReference( filesetId, pathFileList );
+            getProject().addReference( filesetId, fSet );
         }
 
         File dir = null;
@@ -252,10 +218,8 @@
         for ( Artifact a : artifacts )
         {
             if ( dir == null )
-            {
-                dir = a.getFile().getParentFile();
-            }
-
+                dir = findRoot( a.getFile() );
+                
             String aPath = a.getFile().getCanonicalPath();
 
             FileList.FileName fn = new FileList.FileName();
@@ -263,20 +227,34 @@
             fn.setName( aPath );
 
             pathFileList.addConfiguredFile( fn );
+            
         }
 
         pathFileList.setDir( dir );
+        
+        
+        // fileset is trickier as it wants a dir
+        fSet.setDir( dir );
+        
+        String dirName = dir.getCanonicalPath(); 
+        
+        int dirLen = dirName.length();
+        
+        for( String fn : pathFileList.getFiles( getProject() ) )
+        {
+            fSet.createInclude().setName( fn.substring( dirLen ) );
+        }
 
         Path path = (Path) getProject().getReference( pathId );
 
         // now - the path
         if ( path == null )
         {
-            path = new Path( getProject(), _pathId );
+            path = new Path( getProject(), pathId );
 
             path.addFilelist( pathFileList );
 
-            getProject().addReference( _pathId, path );
+            getProject().addReference( pathId, path );
         }
         else
         {
@@ -305,21 +283,6 @@
         this._pathId = pathId;
     }
 
-    public void setFilesetid( String fileSetIdId )
-    {
-        this._fileSetId = fileSetIdId;
-    }
-
-    public void setFilesetId( String fileSetIdId )
-    {
-        this._fileSetId = fileSetIdId;
-    }
-
-    public void setFileSetId( String fileSetIdId )
-    {
-        this._fileSetId = fileSetIdId;
-    }
-
     public void setRefpathid( String refPathId )
     {
         this._refPathId = refPathId;
@@ -395,4 +358,5 @@
 
         return dependency;
     }
+
 }
\ No newline at end of file

Added: maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Validation.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Validation.java?rev=745190&view=auto
==============================================================================
--- maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Validation.java (added)
+++ maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Validation.java Tue Feb 17 18:44:46 2009
@@ -0,0 +1,56 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/
+
+package org.apache.maven.mercury.ant.tasks;
+
+/**
+ *
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
+public class Validation
+{
+    public static final String TYPE_PGP = "pgp";
+
+    public static final String TYPE_SHA1 = "sha1";
+    
+    public static final String PROP_PUBLIC_KEYRING = "keyring";
+    
+    public static final String PROP_SECRET_KEYRING = "secret-keyring";
+    
+    public static final String PROP_SECRET_KEY_ID = "secret-keyring";
+    
+    public static final String PROP_SECRET_KEY_PASS = "secret-keyring";
+
+    protected boolean _pgpValidation = false;
+    
+    protected String _pgpPublicKeyring = Config.DEFAULT_PUBLIC_KEYRING;
+    
+    protected String _pgpSecretKeyring = Config.DEFAULT_SECRET_KEYRING;
+    
+    protected String _pgpSecretKey;
+    
+    protected String _pgpSecretKeyPass;
+    
+    protected boolean _sha1Validation = false;
+    
+    protected boolean _sha1Signature  = true;
+}

Propchange: maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Validation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/mercury/trunk/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Validation.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: maven/mercury/trunk/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/tasks/Messages.properties
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/tasks/Messages.properties?rev=745190&r1=745189&r2=745190&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/tasks/Messages.properties (original)
+++ maven/mercury/trunk/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/tasks/Messages.properties Tue Feb 17 18:44:46 2009
@@ -45,3 +45,7 @@
 dep.dependency.pom.not.implemented=pom attribute not implemented for <dependency ../> tag
 dep.cannot.remove=cannot delete non-existing datum for: {0}
 defaultStorage.add.file.no.file=file for the key {0} does not exist.
+
+
+auth.null.auth=null auth supplied. Cannot process it.
+auth.no.method=auth '{0}' does not provide a method, general format 'method:method_specific_args' 

Modified: maven/mercury/trunk/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/tasks/antlib.xml
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/tasks/antlib.xml?rev=745190&r1=745189&r2=745190&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/tasks/antlib.xml (original)
+++ maven/mercury/trunk/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/tasks/antlib.xml Tue Feb 17 18:44:46 2009
@@ -5,28 +5,29 @@
   <taskdef name="resolve"          classname="org.apache.maven.mercury.ant.tasks.ResolveTask"/>
   <taskdef name="write"            classname="org.apache.maven.mercury.ant.tasks.WriteTask"/>
 
+  <!--  good old syntax -->
+  <taskdef name="dependencies"          classname="org.apache.maven.mercury.ant.tasks.ResolveTask"/>
+  <taskdef name="resolve-dependencies"  classname="org.apache.maven.mercury.ant.tasks.ResolveTask"/>
+ 
+  <!--  now data -->
   <typedef name="deps"             classname="org.apache.maven.mercury.ant.tasks.Dep"/>
-  <typedef name="repository"       classname="org.apache.maven.mercury.ant.tasks.Repo"/>
-  <typedef name="config"           classname="org.apache.maven.mercury.ant.tasks.Config"/>
-  <typedef name="repo"             classname="org.apache.maven.mercury.ant.tasks.Repo"/>
-  <typedef name="repository"       classname="org.apache.maven.mercury.ant.tasks.Repo"/>
-
-  <!-- helper syntaxes -->
   <typedef name="dep"              classname="org.apache.maven.mercury.ant.tasks.Dep"/>
   <typedef name="dependencySet"    classname="org.apache.maven.mercury.ant.tasks.Dep"/>
-  <typedef name="settings"         classname="org.apache.maven.mercury.ant.tasks.Config"/>
+
+  <typedef name="repository"        classname="org.apache.maven.mercury.ant.tasks.Repo"/>
+  <typedef name="repo"              classname="org.apache.maven.mercury.ant.tasks.Repo"/>
+  <typedef name="localRepository"   classname="org.apache.maven.mercury.ant.tasks.Repo"/>
+  <typedef name="local-repository"  classname="org.apache.maven.mercury.ant.tasks.Repo"/>
+  <typedef name="remoteRepository"  classname="org.apache.maven.mercury.ant.tasks.Repo"/>
+  <typedef name="remote-repository" classname="org.apache.maven.mercury.ant.tasks.Repo"/>
+
+  <typedef name="config"              classname="org.apache.maven.mercury.ant.tasks.Config"/>
+  <typedef name="settings"            classname="org.apache.maven.mercury.ant.tasks.Config"/>
+  <typedef name="remote-repositories" classname="org.apache.maven.mercury.ant.tasks.Config"/>
+  <typedef name="remoteRepositories"  classname="org.apache.maven.mercury.ant.tasks.Config"/>
 
   <!-- do we need them as upper-level elements ?? -->
   <typedef name="auth"             classname="org.apache.maven.mercury.ant.tasks.Auth"/>
   <typedef name="proxyauth"        classname="org.apache.maven.mercury.ant.tasks.Auth"/>
 
-  <!--  good old syntax -->
-  <taskdef name="dependencies"     classname="org.apache.maven.mercury.ant.tasks.ResolveTask"/>
-  <taskdef name="resolve-dependencies"  classname="org.apache.maven.mercury.ant.tasks.ResolveTask"/>
-
-  <typedef name="localRepository"  classname="org.apache.maven.mercury.ant.tasks.Repo"/>
-  <typedef name="local-repository"  classname="org.apache.maven.mercury.ant.tasks.Repo"/>
-  <typedef name="remoteRepository" classname="org.apache.maven.mercury.ant.tasks.Repo"/>
-  <typedef name="remote-repository" classname="org.apache.maven.mercury.ant.tasks.Repo"/>
-
 </antlib>

Modified: maven/mercury/trunk/mercury-ant-tasks/src/test/java/org/apache/maven/mercury/ant/tasks/MercuryBootstrapTest.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant-tasks/src/test/java/org/apache/maven/mercury/ant/tasks/MercuryBootstrapTest.java?rev=745190&r1=745189&r2=745190&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-ant-tasks/src/test/java/org/apache/maven/mercury/ant/tasks/MercuryBootstrapTest.java (original)
+++ maven/mercury/trunk/mercury-ant-tasks/src/test/java/org/apache/maven/mercury/ant/tasks/MercuryBootstrapTest.java Tue Feb 17 18:44:46 2009
@@ -20,10 +20,14 @@
  */
 
 import java.io.File;
+import java.io.IOException;
 
 import org.apache.maven.mercury.spi.http.server.AuthenticatingTestServer;
 import org.apache.maven.mercury.util.FileUtil;
 import org.apache.tools.ant.BuildFileTest;
+import org.apache.tools.ant.types.FileList;
+import org.apache.tools.ant.types.FileSet;
+import org.apache.tools.ant.types.selectors.FileSelector;
 
 /**
  * @author Oleg Gusakov
@@ -50,6 +54,10 @@
 
     static final String _pathId = "class-path";
 
+    File _testCopyDir;
+
+    File _testCopyRuntimeDir;
+    
     AuthenticatingTestServer _jetty;
 
     int _port;
@@ -70,6 +78,14 @@
         _localRepoDirFile = new File( _localRepoDir );
         FileUtil.delete( _localRepoDirFile );
         _localRepoDirFile.mkdirs();
+        
+        _testCopyDir = new File( "target/test-copy" );
+        FileUtil.delete( _testCopyDir );
+        _testCopyDir.mkdirs();
+        
+        _testCopyRuntimeDir = new File( "target/test-copy-runtime" );
+        FileUtil.delete( _testCopyRuntimeDir );
+        _testCopyRuntimeDir.mkdirs();
 
         _remoteRepoDirFile = new File( _remoteRepoDir );
         _jetty = new AuthenticatingTestServer( 0, _remoteRepoDirFile, _remoteRepoUrlSufix, false );
@@ -161,11 +177,13 @@
 
     // -----------------------------------
     public void testDownloadPomNonTransitive()
+    throws IOException
     {
         String title = "download-pom-non-transtive";
         System.out.println( "========> start " + title );
         System.out.flush();
 
+        // mercury.classpath
         File a0 = new File( _localRepoDirFile, "g0/a0/v0/a0-v0.jar" );
         File a1 = new File( _localRepoDirFile, "g1/a1/v1/a1-v1.jar" );
         File a2 = new File( _localRepoDirFile, "g2/a2/v2/a2-v2.jar" );
@@ -174,11 +192,70 @@
         assertFalse( a1.exists() );
         assertFalse( a2.exists() );
 
+        // mercury.fileset
+        File tc0 = new File( _testCopyDir, "a0-v0.jar" );
+        File tc1 = new File( _testCopyDir, "a1-v1.jar" );
+        File tc2 = new File( _testCopyDir, "a2-v2.jar" );
+        
+        assertFalse( tc0.exists() );
+        assertFalse( tc1.exists() );
+        assertFalse( tc2.exists() );
+
+        // mercury.fileset.runtime
+        File tcr0 = new File( _testCopyRuntimeDir, "a0-v0.jar" );
+        File tcr1 = new File( _testCopyRuntimeDir, "a1-v1.jar" );
+        File tcr2 = new File( _testCopyRuntimeDir, "a2-v2.jar" );
+        
+        assertFalse( tcr0.exists() );
+        assertFalse( tcr1.exists() );
+        assertFalse( tcr2.exists() );
+        
         executeTarget( title );
 
         assertTrue( a0.exists() );
         assertTrue( a1.exists() );
         assertFalse( a2.exists() );
+        
+        String cp = getProject().getProperty( "cp" );
+        
+//        System.out.println( "cp = " + cp );
+        
+        // mercury.classpath
+        assertTrue( cp.indexOf( a0.getCanonicalPath() ) != -1 );
+        assertTrue( cp.indexOf( a1.getCanonicalPath() ) != -1 );
+        assertTrue( cp.indexOf( a2.getCanonicalPath() ) == -1 );
+        
+        // mercury.fileset
+        assertTrue( tc0.exists() );
+        assertTrue( tc1.exists() );
+        assertFalse( tc2.exists() );
+        
+        // mercury.fileset.runtime
+        assertTrue( tcr0.exists() );
+        assertTrue( tcr1.exists() );
+        assertFalse( tcr2.exists() );
+    }
+
+    // -----------------------------------
+    public void testRepoPgp()
+    {
+        String title = "repo-pgp";
+        System.out.println( "========> start " + title );
+        System.out.flush();
+
+        File a0 = new File( _localRepoDirFile, "g0/a0/v0/a0-v0.jar" );
+        File a1 = new File( _localRepoDirFile, "g1/a1/v1/a1-v1.jar" );
+        File a2 = new File( _localRepoDirFile, "g2/a2/v2/a2-v2.jar" );
+
+        assertFalse( a0.exists() );
+        assertFalse( a1.exists() );
+        assertFalse( a2.exists() );
+
+        executeTarget( title );
+//
+//        assertTrue( a0.exists() );
+//        assertTrue( a1.exists() );
+//        assertTrue( a2.exists() );
     }
     // -----------------------------------
     // -----------------------------------

Added: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/maven-metadata.xml
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/maven-metadata.xml?rev=745190&view=auto
==============================================================================
--- maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/maven-metadata.xml (added)
+++ maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/maven-metadata.xml Tue Feb 17 18:44:46 2009
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+  <groupId>g2</groupId>
+  <artifactId>a2</artifactId>
+  <version>v2</version>
+  <versioning>
+    <versions>
+      <version>v2</version>
+    </versions>
+  </versioning>
+</metadata>

Propchange: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/maven-metadata.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/maven-metadata.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/v2/a2-v2.jar
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/v2/a2-v2.jar?rev=745190&view=auto
==============================================================================
--- maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/v2/a2-v2.jar (added)
+++ maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/v2/a2-v2.jar Tue Feb 17 18:44:46 2009
@@ -0,0 +1 @@
+jar
\ No newline at end of file

Added: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/v2/a2-v2.pom
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/v2/a2-v2.pom?rev=745190&view=auto
==============================================================================
--- maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/v2/a2-v2.pom (added)
+++ maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/v2/a2-v2.pom Tue Feb 17 18:44:46 2009
@@ -0,0 +1,6 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>g2</groupId>
+  <artifactId>a2</artifactId>
+  <version>v2</version>
+</project>
\ No newline at end of file

Propchange: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/v2/a2-v2.pom
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/v2/a2-v2.pom
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/v2/maven-metadata.xml
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/v2/maven-metadata.xml?rev=745190&view=auto
==============================================================================
--- maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/v2/maven-metadata.xml (added)
+++ maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/v2/maven-metadata.xml Tue Feb 17 18:44:46 2009
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+  <groupId>g2</groupId>
+  <artifactId>a2</artifactId>
+  <version>v2</version>
+  <versioning>
+    <versions>
+      <version>v2</version>
+    </versions>
+  </versioning>
+</metadata>

Propchange: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/v2/maven-metadata.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/bad/g2/a2/v2/maven-metadata.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/maven-metadata.xml
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/maven-metadata.xml?rev=745190&view=auto
==============================================================================
--- maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/maven-metadata.xml (added)
+++ maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/maven-metadata.xml Tue Feb 17 18:44:46 2009
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+  <groupId>g0</groupId>
+  <artifactId>a0</artifactId>
+  <version>v0</version>
+  <versioning>
+    <versions>
+      <version>v0</version>
+    </versions>
+  </versioning>
+</metadata>

Propchange: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/maven-metadata.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/maven-metadata.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/v0/a0-v0.jar
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/v0/a0-v0.jar?rev=745190&view=auto
==============================================================================
--- maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/v0/a0-v0.jar (added)
+++ maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/v0/a0-v0.jar Tue Feb 17 18:44:46 2009
@@ -0,0 +1 @@
+jar
\ No newline at end of file

Added: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/v0/a0-v0.pom
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/v0/a0-v0.pom?rev=745190&view=auto
==============================================================================
--- maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/v0/a0-v0.pom (added)
+++ maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/v0/a0-v0.pom Tue Feb 17 18:44:46 2009
@@ -0,0 +1,6 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>g0</groupId>
+  <artifactId>a0</artifactId>
+  <version>v0</version>
+</project>
\ No newline at end of file

Propchange: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/v0/a0-v0.pom
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/v0/a0-v0.pom
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/v0/maven-metadata.xml
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/v0/maven-metadata.xml?rev=745190&view=auto
==============================================================================
--- maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/v0/maven-metadata.xml (added)
+++ maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/v0/maven-metadata.xml Tue Feb 17 18:44:46 2009
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+  <groupId>g0</groupId>
+  <artifactId>a0</artifactId>
+  <version>v0</version>
+  <versioning>
+    <versions>
+      <version>v0</version>
+    </versions>
+  </versioning>
+</metadata>

Propchange: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/v0/maven-metadata.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g0/a0/v0/maven-metadata.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/maven-metadata.xml
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/maven-metadata.xml?rev=745190&view=auto
==============================================================================
--- maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/maven-metadata.xml (added)
+++ maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/maven-metadata.xml Tue Feb 17 18:44:46 2009
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+  <groupId>g1</groupId>
+  <artifactId>a1</artifactId>
+  <version>v1</version>
+  <versioning>
+    <versions>
+      <version>v1</version>
+    </versions>
+  </versioning>
+</metadata>

Propchange: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/maven-metadata.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/maven-metadata.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/v1/a1-v1.jar
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/v1/a1-v1.jar?rev=745190&view=auto
==============================================================================
--- maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/v1/a1-v1.jar (added)
+++ maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/v1/a1-v1.jar Tue Feb 17 18:44:46 2009
@@ -0,0 +1 @@
+jar
\ No newline at end of file

Added: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/v1/a1-v1.pom
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/v1/a1-v1.pom?rev=745190&view=auto
==============================================================================
--- maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/v1/a1-v1.pom (added)
+++ maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/v1/a1-v1.pom Tue Feb 17 18:44:46 2009
@@ -0,0 +1,13 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>g1</groupId>
+  <artifactId>a1</artifactId>
+  <version>v1</version>
+  <dependencies>
+  	<dependency>
+  		<groupId>g2</groupId>
+  		<artifactId>a2</artifactId>
+  		<version>v2</version>
+  	</dependency>
+  </dependencies>
+</project>
\ No newline at end of file

Propchange: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/v1/a1-v1.pom
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/v1/a1-v1.pom
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/v1/maven-metadata.xml
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/v1/maven-metadata.xml?rev=745190&view=auto
==============================================================================
--- maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/v1/maven-metadata.xml (added)
+++ maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/v1/maven-metadata.xml Tue Feb 17 18:44:46 2009
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+  <groupId>g1</groupId>
+  <artifactId>a1</artifactId>
+  <version>v1</version>
+  <versioning>
+    <versions>
+      <version>v1</version>
+    </versions>
+  </versioning>
+</metadata>

Propchange: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/v1/maven-metadata.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/mercury/trunk/mercury-ant-tasks/src/test/resources/remoteRepoBoot/good/g1/a1/v1/maven-metadata.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision