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/04/28 01:12:32 UTC

svn commit: r769199 [16/19] - in /maven/mercury/trunk: mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/ mercury-ant-tasks/src/test/java/org/apache/maven/mercury/ant/tasks/ mercury-core/src/main/java/org/apache/maven/mercury/artifact/...

Modified: maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/util/FileUtilTest.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/util/FileUtilTest.java?rev=769199&r1=769198&r2=769199&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/util/FileUtilTest.java (original)
+++ maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/util/FileUtilTest.java Mon Apr 27 23:12:25 2009
@@ -32,389 +32,424 @@
 import org.apache.maven.mercury.crypto.sha.SHA1VerifierFactory;
 
 /**
- *
- *
  * @author Oleg Gusakov
  * @version $Id$
- *
  */
 public class FileUtilTest
     extends TestCase
 {
-  public static final String SYSTEM_PARAMETER_SKIP_NIO_TESTS = "maven.mercury.tests.skip.nio";
-  boolean skipNioTests = Boolean.parseBoolean( System.getProperty( SYSTEM_PARAMETER_SKIP_NIO_TESTS, "true" ) );
-  
-  private static final String publicKeyFile = "/pgp/pubring.gpg";
-  private static final String secretKeyFile = "/pgp/secring.gpg";
-  private static final String keyId         = "0EDB5D91141BC4F2";
-  private static final String secretKeyPass = "testKey82";
-
-  private File testDir;
-  private File a;
-  private File b;
-  private File bAsc;
-  private File badAsc;
-
-  HashSet<StreamVerifierFactory> vFacs;
-  //----------------------------------------------------------------------------------------
-  @Override
-  protected void setUp()
-      throws Exception
-  {
-    testDir = new File("./target/test-classes");
-    a = new File( testDir, "a.jar" );
-    b = new File( testDir, "b.jar" );
-    bAsc = new File( testDir, "b.jar.asc" );
-    badAsc = new File( testDir, "bad.asc" );
-    
-    FileUtil.copy( a, b, true );
-    
-    vFacs = new HashSet<StreamVerifierFactory>(2);
-    
-    tearDown();
-  }
-  //----------------------------------------------------------------------------------------
-  @Override
-  protected void tearDown()
-      throws Exception
-  {
-    bAsc.delete();
-  }
-  //----------------------------------------------------------------------------------------
-  private void setPgp( boolean generator )
-  throws StreamVerifierException
-  {
-    if( generator )
-      vFacs.add( 
-          new PgpStreamVerifierFactory(
-              new StreamVerifierAttributes( PgpStreamVerifierFactory.DEFAULT_EXTENSION, false, true )
-              , getClass().getResourceAsStream( secretKeyFile )
-              , keyId
-              , secretKeyPass
-                                      )
-              );
-    else
-      vFacs.add( 
-          new PgpStreamVerifierFactory(
-              new StreamVerifierAttributes( PgpStreamVerifierFactory.DEFAULT_EXTENSION, false, true )
-              , getClass().getResourceAsStream( publicKeyFile )
-                                      )
-              );
-    
-  }
-  //----------------------------------------------------------------------------------------
-  private void setSha1( boolean generator )
-  {
-    vFacs.add( new SHA1VerifierFactory(false,false) );
-  }
-  //----------------------------------------------------------------------------------------
-  public void testVerifyGood()
-  throws IOException, StreamObserverException
-  {
-    setPgp( false );
-    FileUtil.verify( a, vFacs, false, true ); 
-  }
-  //----------------------------------------------------------------------------------------
-  public void testVerifyBad()
-  throws IOException, StreamObserverException
-  {
-    setPgp( false );
-    FileUtil.copy( badAsc, bAsc, true );
-
-    try
-    {
-      FileUtil.verify( b, vFacs, false, false ); 
-    }
-    catch( StreamObserverException e )
-    {
-      System.out.println( "Caught expected exception: "+e.getMessage() );
-      return;
-    }
-    fail( "Expected exception never thrown:"+StreamObserverException.class.getName() );
-  }
-  //----------------------------------------------------------------------------------------
-  public void testVerifyNoSigNoForce()
-  throws IOException, StreamObserverException
-  {
-    setPgp( false );
-    FileUtil.verify( b, vFacs, false, false ); 
-  }
-  //----------------------------------------------------------------------------------------
-  public void testVerifyNoSigForce()
-  throws IOException, StreamVerifierException
-  {
-    setPgp( false );
-    
-    try
-    {
-      FileUtil.verify( b, vFacs, false, true );
-    }
-    catch( StreamObserverException e )
-    {
-      System.out.println( "Caught expected exception: "+e.getMessage() );
-      return;
-    }
-    fail( "Expected exception never thrown:"+StreamObserverException.class.getName() );
-  }
-  //----------------------------------------------------------------------------------------
-  public void testSign()
-  throws IOException, StreamObserverException
-  {
-    setPgp( true );
-    FileUtil.sign( b, vFacs, false, true );
-
-    vFacs.clear();
-    setPgp( false );
-    FileUtil.verify( b, vFacs, false, true );
-  }
-  
-  //----------------------------------------------------------------------------------------
-  private static void say( String msg )
-  {
-    System.out.println(msg);
-    System.out.flush();
-  }
-  //----------------------------------------------------------------------------------------
-  public void testLock()
-  throws Exception
-  {
-    Ok th1ok = new Ok();
-    Ok th2ok = new Ok();
-    
-    class TestThread1
-    extends Thread
-    {
-      FileLockBundle lock;
-      String dir;
-      Ok ok;
-
-      public TestThread1( String dir, Ok ok )
-      {
-        this.dir = dir;
-        this.ok = ok;
-      }
-      @Override
-      public void run()
-      {
+    public static final String SYSTEM_PARAMETER_SKIP_NIO_TESTS = "maven.mercury.tests.skip.nio";
+
+    boolean skipNioTests = Boolean.parseBoolean( System.getProperty( SYSTEM_PARAMETER_SKIP_NIO_TESTS, "true" ) );
+
+    private static final String publicKeyFile = "/pgp/pubring.gpg";
+
+    private static final String secretKeyFile = "/pgp/secring.gpg";
+
+    private static final String keyId = "0EDB5D91141BC4F2";
+
+    private static final String secretKeyPass = "testKey82";
+
+    private File testDir;
+
+    private File a;
+
+    private File b;
+
+    private File bAsc;
+
+    private File badAsc;
+
+    HashSet<StreamVerifierFactory> vFacs;
+
+    // ----------------------------------------------------------------------------------------
+    @Override
+    protected void setUp()
+        throws Exception
+    {
+        testDir = new File( "./target/test-classes" );
+        a = new File( testDir, "a.jar" );
+        b = new File( testDir, "b.jar" );
+        bAsc = new File( testDir, "b.jar.asc" );
+        badAsc = new File( testDir, "bad.asc" );
+
+        FileUtil.copy( a, b, true );
+
+        vFacs = new HashSet<StreamVerifierFactory>( 2 );
+
+        tearDown();
+    }
+
+    // ----------------------------------------------------------------------------------------
+    @Override
+    protected void tearDown()
+        throws Exception
+    {
+        bAsc.delete();
+    }
+
+    // ----------------------------------------------------------------------------------------
+    private void setPgp( boolean generator )
+        throws StreamVerifierException
+    {
+        if ( generator )
+            vFacs.add( new PgpStreamVerifierFactory(
+                                                     new StreamVerifierAttributes(
+                                                                                   PgpStreamVerifierFactory.DEFAULT_EXTENSION,
+                                                                                   false, true ),
+                                                     getClass().getResourceAsStream( secretKeyFile ), keyId,
+                                                     secretKeyPass ) );
+        else
+            vFacs.add( new PgpStreamVerifierFactory(
+                                                     new StreamVerifierAttributes(
+                                                                                   PgpStreamVerifierFactory.DEFAULT_EXTENSION,
+                                                                                   false, true ),
+                                                     getClass().getResourceAsStream( publicKeyFile ) ) );
+
+    }
+
+    // ----------------------------------------------------------------------------------------
+    private void setSha1( boolean generator )
+    {
+        vFacs.add( new SHA1VerifierFactory( false, false ) );
+    }
+
+    // ----------------------------------------------------------------------------------------
+    public void testVerifyGood()
+        throws IOException, StreamObserverException
+    {
+        setPgp( false );
+        FileUtil.verify( a, vFacs, false, true );
+    }
+
+    // ----------------------------------------------------------------------------------------
+    public void testVerifyBad()
+        throws IOException, StreamObserverException
+    {
+        setPgp( false );
+        FileUtil.copy( badAsc, bAsc, true );
+
         try
         {
-          lock = FileUtil.lockDir( dir, 10L, 10L );
-          assertNotNull( lock );
-          say("Thread1: lock "+dir+" obtained");
-          
-          try { sleep( 2000L ); } catch( InterruptedException e ) {}
-          say("Thread1: slept for 2s");
-          
-          lock.release();
-          say("Thread1: lock "+dir+" released");
-          
-          ok.ok();
+            FileUtil.verify( b, vFacs, false, false );
         }
-        catch( Exception e )
+        catch ( StreamObserverException e )
         {
-          fail( e.getMessage() );
+            System.out.println( "Caught expected exception: " + e.getMessage() );
+            return;
         }
-      }
-      
+        fail( "Expected exception never thrown:" + StreamObserverException.class.getName() );
+    }
+
+    // ----------------------------------------------------------------------------------------
+    public void testVerifyNoSigNoForce()
+        throws IOException, StreamObserverException
+    {
+        setPgp( false );
+        FileUtil.verify( b, vFacs, false, false );
     }
-    
-    class TestThread2
-    extends Thread
-    {
-      FileLockBundle lock;
-      String dir;
-      Ok ok;
-
-      public TestThread2( String dir, Ok ok )
-      {
-        this.dir = dir;
-        this.ok = ok;
-      }
-      @Override
-      public void run()
-      {
+
+    // ----------------------------------------------------------------------------------------
+    public void testVerifyNoSigForce()
+        throws IOException, StreamVerifierException
+    {
+        setPgp( false );
+
         try
         {
-          sleep(10l);
-          lock = FileUtil.lockDir( dir, 10L, 10L );
-          assertNull( lock );
-          say("Thread2: resource "+dir+" locked");
-          
-          lock = FileUtil.lockDir( dir, 5000L, 100L );
-          assertNotNull( lock );
-          
-          lock.release();
-          say("Thread2: lock "+dir+" released");
-          
-          ok.ok();
+            FileUtil.verify( b, vFacs, false, true );
         }
-        catch( Exception e )
+        catch ( StreamObserverException e )
         {
-          fail( e.getMessage() );
+            System.out.println( "Caught expected exception: " + e.getMessage() );
+            return;
         }
-      }
-      
+        fail( "Expected exception never thrown:" + StreamObserverException.class.getName() );
     }
-    
-    File dir = File.createTempFile( "test-", "-dir" );
-    String dirName = dir.getAbsolutePath();
-    dir.delete();
-    dir = new File( dirName );
-    dir.mkdir();
-    dir.deleteOnExit();
-    
-    TestThread1 th1 = new TestThread1( dirName, th1ok );
-    TestThread2 th2 = new TestThread2( dirName, th2ok );
-    
-    th1.start();
-    th2.start();
-    
-    for(;;)
-      if( th1.isAlive() || th2.isAlive() )
-        Thread.sleep( 1000L );
-      else
-        break;
-    
-    
-    assertTrue( th1ok.isOk() );
-    
-    assertTrue( th2ok.isOk() );
-    
-    say("Multi-threaded test finished successfully");
-  }
-  //----------------------------------------------------------------------------------------
-  // TODO: 2008-10-06 Oleg: enable if switching to NIO locking between processes
-  public void notestLockNio()
-  throws Exception
-  {
-    Ok th1ok = new Ok();
-    Ok th2ok = new Ok();
-    
-    class TestThread1
-    extends Thread
-    {
-      FileLockBundle lock;
-      String dir;
-      Ok ok;
-
-      public TestThread1( String dir, Ok ok )
-      {
-        this.dir = dir;
-        this.ok = ok;
-      }
-      @Override
-      public void run()
-      {
-        try
+
+    // ----------------------------------------------------------------------------------------
+    public void testSign()
+        throws IOException, StreamObserverException
+    {
+        setPgp( true );
+        FileUtil.sign( b, vFacs, false, true );
+
+        vFacs.clear();
+        setPgp( false );
+        FileUtil.verify( b, vFacs, false, true );
+    }
+
+    // ----------------------------------------------------------------------------------------
+    private static void say( String msg )
+    {
+        System.out.println( msg );
+        System.out.flush();
+    }
+
+    // ----------------------------------------------------------------------------------------
+    public void testLock()
+        throws Exception
+    {
+        Ok th1ok = new Ok();
+        Ok th2ok = new Ok();
+
+        class TestThread1
+            extends Thread
         {
-          lock = FileUtil.lockDirNio( dir, 10L, 10L );
-          say("NioThread1: got lock "+lock+" on "+dir+" obtained");
+            FileLockBundle lock;
+
+            String dir;
+
+            Ok ok;
+
+            public TestThread1( String dir, Ok ok )
+            {
+                this.dir = dir;
+                this.ok = ok;
+            }
+
+            @Override
+            public void run()
+            {
+                try
+                {
+                    lock = FileUtil.lockDir( dir, 10L, 10L );
+                    assertNotNull( lock );
+                    say( "Thread1: lock " + dir + " obtained" );
+
+                    try
+                    {
+                        sleep( 2000L );
+                    }
+                    catch ( InterruptedException e )
+                    {
+                    }
+                    say( "Thread1: slept for 2s" );
+
+                    lock.release();
+                    say( "Thread1: lock " + dir + " released" );
+
+                    ok.ok();
+                }
+                catch ( Exception e )
+                {
+                    fail( e.getMessage() );
+                }
+            }
 
-          assertNotNull( lock );
-          say("NioThread1: lock "+dir+" obtained");
-          
-          try { sleep( 2000L ); } catch( InterruptedException e ) {}
-          say("NioThread1: slept for 2s");
-          
-          lock.release();
-          say("NioThread1: lock "+dir+" released");
-          
-          ok.ok();
         }
-        catch( Exception e )
+
+        class TestThread2
+            extends Thread
         {
-          fail( e.getMessage() );
+            FileLockBundle lock;
+
+            String dir;
+
+            Ok ok;
+
+            public TestThread2( String dir, Ok ok )
+            {
+                this.dir = dir;
+                this.ok = ok;
+            }
+
+            @Override
+            public void run()
+            {
+                try
+                {
+                    sleep( 10l );
+                    lock = FileUtil.lockDir( dir, 10L, 10L );
+                    assertNull( lock );
+                    say( "Thread2: resource " + dir + " locked" );
+
+                    lock = FileUtil.lockDir( dir, 5000L, 100L );
+                    assertNotNull( lock );
+
+                    lock.release();
+                    say( "Thread2: lock " + dir + " released" );
+
+                    ok.ok();
+                }
+                catch ( Exception e )
+                {
+                    fail( e.getMessage() );
+                }
+            }
+
         }
-      }
-      
+
+        File dir = File.createTempFile( "test-", "-dir" );
+        String dirName = dir.getAbsolutePath();
+        dir.delete();
+        dir = new File( dirName );
+        dir.mkdir();
+        dir.deleteOnExit();
+
+        TestThread1 th1 = new TestThread1( dirName, th1ok );
+        TestThread2 th2 = new TestThread2( dirName, th2ok );
+
+        th1.start();
+        th2.start();
+
+        for ( ;; )
+            if ( th1.isAlive() || th2.isAlive() )
+                Thread.sleep( 1000L );
+            else
+                break;
+
+        assertTrue( th1ok.isOk() );
+
+        assertTrue( th2ok.isOk() );
+
+        say( "Multi-threaded test finished successfully" );
     }
-    
-    class TestThread2
-    extends Thread
-    {
-      FileLockBundle lock;
-      String dir;
-      Ok ok;
-
-      public TestThread2( String dir, Ok ok )
-      {
-        this.dir = dir;
-        this.ok = ok;
-      }
-      @Override
-      public void run()
-      {
-        try
+
+    // ----------------------------------------------------------------------------------------
+    // TODO: 2008-10-06 Oleg: enable if switching to NIO locking between processes
+    public void notestLockNio()
+        throws Exception
+    {
+        Ok th1ok = new Ok();
+        Ok th2ok = new Ok();
+
+        class TestThread1
+            extends Thread
         {
-          sleep(10l);
-          lock = FileUtil.lockDirNio( dir, 10L, 10L );
-          say("NioThread2: got lock "+lock+" on "+dir+" obtained");
-
-          assertNull( lock );
-          
-          System.out.println("NioThread2: resource "+dir+" busy");
-          System.out.flush();
-          
-          lock = FileUtil.lockDirNio( dir, 5000L, 100L );
-          assertNotNull( lock );
-          
-          say("NioThread2: lock "+dir+" obtained");
-          
-          lock.release();
-          say("NioThread2: lock "+dir+" released");
-          
-          ok.ok();
+            FileLockBundle lock;
+
+            String dir;
+
+            Ok ok;
+
+            public TestThread1( String dir, Ok ok )
+            {
+                this.dir = dir;
+                this.ok = ok;
+            }
+
+            @Override
+            public void run()
+            {
+                try
+                {
+                    lock = FileUtil.lockDirNio( dir, 10L, 10L );
+                    say( "NioThread1: got lock " + lock + " on " + dir + " obtained" );
+
+                    assertNotNull( lock );
+                    say( "NioThread1: lock " + dir + " obtained" );
+
+                    try
+                    {
+                        sleep( 2000L );
+                    }
+                    catch ( InterruptedException e )
+                    {
+                    }
+                    say( "NioThread1: slept for 2s" );
+
+                    lock.release();
+                    say( "NioThread1: lock " + dir + " released" );
+
+                    ok.ok();
+                }
+                catch ( Exception e )
+                {
+                    fail( e.getMessage() );
+                }
+            }
+
         }
-        catch( Exception e )
+
+        class TestThread2
+            extends Thread
         {
-          fail( e.getMessage() );
+            FileLockBundle lock;
+
+            String dir;
+
+            Ok ok;
+
+            public TestThread2( String dir, Ok ok )
+            {
+                this.dir = dir;
+                this.ok = ok;
+            }
+
+            @Override
+            public void run()
+            {
+                try
+                {
+                    sleep( 10l );
+                    lock = FileUtil.lockDirNio( dir, 10L, 10L );
+                    say( "NioThread2: got lock " + lock + " on " + dir + " obtained" );
+
+                    assertNull( lock );
+
+                    System.out.println( "NioThread2: resource " + dir + " busy" );
+                    System.out.flush();
+
+                    lock = FileUtil.lockDirNio( dir, 5000L, 100L );
+                    assertNotNull( lock );
+
+                    say( "NioThread2: lock " + dir + " obtained" );
+
+                    lock.release();
+                    say( "NioThread2: lock " + dir + " released" );
+
+                    ok.ok();
+                }
+                catch ( Exception e )
+                {
+                    fail( e.getMessage() );
+                }
+            }
+
         }
-      }
-      
+
+        File dir = File.createTempFile( "test-", "-dir" );
+        String dirName = dir.getAbsolutePath();
+        dir.delete();
+        dir = new File( dirName );
+        dir.mkdir();
+        dir.deleteOnExit();
+
+        TestThread1 th1 = new TestThread1( dirName, th1ok );
+        TestThread2 th2 = new TestThread2( dirName, th2ok );
+
+        th1.start();
+        th2.start();
+
+        for ( ;; )
+            if ( th1.isAlive() || th2.isAlive() )
+                Thread.sleep( 1000L );
+            else
+                break;
+
+        if ( skipNioTests )
+            return;
+
+        assertTrue( th1ok.isOk() );
+
+        assertTrue( th2ok.isOk() );
+
+        say( "Multi-threaded NIO test finished successfully" );
     }
-    
-    File dir = File.createTempFile( "test-", "-dir" );
-    String dirName = dir.getAbsolutePath();
-    dir.delete();
-    dir = new File( dirName );
-    dir.mkdir();
-    dir.deleteOnExit();
-    
-    TestThread1 th1 = new TestThread1( dirName, th1ok );
-    TestThread2 th2 = new TestThread2( dirName, th2ok );
-    
-    th1.start();
-    th2.start();
-    
-    for(;;)
-      if( th1.isAlive() || th2.isAlive() )
-        Thread.sleep( 1000L );
-      else
-        break;
-
-if(skipNioTests)
-  return;
-
-    assertTrue( th1ok.isOk() );
-    
-    assertTrue( th2ok.isOk() );
-    
-    say("Multi-threaded NIO test finished successfully");
-  }
 }
 
-
 class Ok
 {
-  boolean ok = false;
-  
-  public void ok()
-  {
-    ok = true;
-  }
-  
-  public boolean isOk()
-  {
-    return ok;
-  }
+    boolean ok = false;
+
+    public void ok()
+    {
+        ok = true;
+    }
+
+    public boolean isOk()
+    {
+        return ok;
+    }
 }

Modified: maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/util/NioTest.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/util/NioTest.java?rev=769199&r1=769198&r2=769199&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/util/NioTest.java (original)
+++ maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/util/NioTest.java Mon Apr 27 23:12:25 2009
@@ -27,63 +27,60 @@
 import junit.framework.TestCase;
 
 /**
- *
- *
  * @author Oleg Gusakov
  * @version $Id$
- *
  */
 public class NioTest
     extends TestCase
 {
-  
-  public void testNio()
-  {
-    boolean ok = false;
-    
-    try
-    {
-      File file = File.createTempFile( "test-nio-", "-file" );
-      file.deleteOnExit();
-      
-      String fn = file.getAbsolutePath();
-      
-      File f1 = new File( fn ); 
-      FileChannel c1 = new RandomAccessFile( f1, "rw").getChannel();
-  
-      FileLock l1 = c1.lock();
-      assertNotNull( "cannot obtain even the first lock", l1 );
-      
-      File f2 = new File( fn ); 
-      FileChannel c2 = new RandomAccessFile( f2, "rw").getChannel();
-      FileLock l2 = null;
-      try
-      {
-          l2 = c2.tryLock();
-          
-          if( l2 == null )
-            throw new OverlappingFileLockException();
-          
-          l2.release();
-      }
-      catch (OverlappingFileLockException e)
-      {
-          ok = true;
-      }
-  
-      l1.release();
-      c1.close();
-      c2.close();
-      
-      file.delete();
 
-if(false)      
-      assertTrue( "java.nio does not work !!", ok );
-    }
-    catch (Exception e)
+    public void testNio()
     {
-      e.printStackTrace();
+        boolean ok = false;
+
+        try
+        {
+            File file = File.createTempFile( "test-nio-", "-file" );
+            file.deleteOnExit();
+
+            String fn = file.getAbsolutePath();
+
+            File f1 = new File( fn );
+            FileChannel c1 = new RandomAccessFile( f1, "rw" ).getChannel();
+
+            FileLock l1 = c1.lock();
+            assertNotNull( "cannot obtain even the first lock", l1 );
+
+            File f2 = new File( fn );
+            FileChannel c2 = new RandomAccessFile( f2, "rw" ).getChannel();
+            FileLock l2 = null;
+            try
+            {
+                l2 = c2.tryLock();
+
+                if ( l2 == null )
+                    throw new OverlappingFileLockException();
+
+                l2.release();
+            }
+            catch ( OverlappingFileLockException e )
+            {
+                ok = true;
+            }
+
+            l1.release();
+            c1.close();
+            c2.close();
+
+            file.delete();
+
+            if ( false )
+                assertTrue( "java.nio does not work !!", ok );
+        }
+        catch ( Exception e )
+        {
+            e.printStackTrace();
+        }
     }
-  }
 
 }

Modified: maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/util/TimeUtilTest.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/util/TimeUtilTest.java?rev=769199&r1=769198&r2=769199&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/util/TimeUtilTest.java (original)
+++ maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/util/TimeUtilTest.java Mon Apr 27 23:12:25 2009
@@ -15,23 +15,17 @@
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
-*/
+ */
 
 package org.apache.maven.mercury.util;
 
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
 import java.util.Date;
-import java.util.TimeZone;
 
 import junit.framework.TestCase;
 
 /**
- *
- *
  * @author Oleg Gusakov
  * @version $Id$
- *
  */
 public class TimeUtilTest
     extends TestCase
@@ -39,36 +33,36 @@
     long expected = 1234550304000L;
 
     public void testSnTsWithDash()
-    throws Exception
+        throws Exception
     {
         long ts = TimeUtil.snTstoMillis( "20090213.183824-29" );
-        
+
         assertEquals( expected, ts );
     }
 
     public void testSnTsWithoutDash()
-    throws Exception
+        throws Exception
     {
         long ts = TimeUtil.snTstoMillis( "20090213.183824" );
-        
+
         assertEquals( expected, ts );
     }
-    
+
     public void testNow()
-    throws Exception
+        throws Exception
     {
         long now = System.currentTimeMillis();
-        
-        System.out.println( new Date(now) );
+
+        System.out.println( new Date( now ) );
         System.out.println( TimeUtil.defaultToSnTs( now ) );
-        
+
         String name = "a-1.0-20090213.183824-90.jar";
-        
+
         int lastDash = name.lastIndexOf( '-' );
-        int firstDash = name.lastIndexOf( '-', lastDash-1 );
-        String fTS = name.substring( firstDash+1, lastDash );
-        
-        System.out.println(fTS);
+        int firstDash = name.lastIndexOf( '-', lastDash - 1 );
+        String fTS = name.substring( firstDash + 1, lastDash );
+
+        System.out.println( fTS );
 
     }
 }

Modified: maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/util/UtilTest.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/util/UtilTest.java?rev=769199&r1=769198&r2=769199&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/util/UtilTest.java (original)
+++ maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/util/UtilTest.java Mon Apr 27 23:12:25 2009
@@ -15,18 +15,15 @@
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
-*/
+ */
 
 package org.apache.maven.mercury.util;
 
 import junit.framework.TestCase;
 
 /**
- *
- *
  * @author Oleg Gusakov
  * @version $Id$
- *
  */
 public class UtilTest
     extends TestCase
@@ -35,13 +32,13 @@
     {
         String s = Util.convertLength( 25L );
         assertEquals( "25 bytes", s );
-        
+
         s = Util.convertLength( 4999L );
         assertEquals( "4999 bytes", s );
-        
+
         s = Util.convertLength( 5800L );
         assertEquals( "6 kb", s );
-        
+
         s = Util.convertLength( 6400L );
         assertEquals( "6 kb", s );
     }

Added: maven/mercury/trunk/mercury-core/src/test/resources/repoReactor/a/target/a-1.0-SNAPSHOT.jar
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-core/src/test/resources/repoReactor/a/target/a-1.0-SNAPSHOT.jar?rev=769199&view=auto
==============================================================================
    (empty)

Added: maven/mercury/trunk/mercury-core/src/test/resources/repoReactor/a/target/a-1.0-SNAPSHOT.pom
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-core/src/test/resources/repoReactor/a/target/a-1.0-SNAPSHOT.pom?rev=769199&view=auto
==============================================================================
--- maven/mercury/trunk/mercury-core/src/test/resources/repoReactor/a/target/a-1.0-SNAPSHOT.pom (added)
+++ maven/mercury/trunk/mercury-core/src/test/resources/repoReactor/a/target/a-1.0-SNAPSHOT.pom Mon Apr 27 23:12:25 2009
@@ -0,0 +1,11 @@
+<project>
+	<groupId>a</groupId>
+	<artifactId>a</artifactId>
+	<version>1.0-SNAPSHOT</version>
+	<dependencies>
+		<dependency>
+			<groupId>b</groupId>
+			<artifactId>b</artifactId>
+			<version>1.0-SNAPSHOT</version>
+		</dependency>
+	</dependencies></project>
\ No newline at end of file

Propchange: maven/mercury/trunk/mercury-core/src/test/resources/repoReactor/a/target/a-1.0-SNAPSHOT.pom
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/mercury/trunk/mercury-core/src/test/resources/repoReactor/a/target/a-1.0-SNAPSHOT.pom
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/mercury/trunk/mercury-core/src/test/resources/repoReactor/b/target/b-1.0-SNAPSHOT.jar
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-core/src/test/resources/repoReactor/b/target/b-1.0-SNAPSHOT.jar?rev=769199&view=auto
==============================================================================
    (empty)

Added: maven/mercury/trunk/mercury-core/src/test/resources/repoReactor/b/target/b-1.0-SNAPSHOT.pom
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-core/src/test/resources/repoReactor/b/target/b-1.0-SNAPSHOT.pom?rev=769199&view=auto
==============================================================================
--- maven/mercury/trunk/mercury-core/src/test/resources/repoReactor/b/target/b-1.0-SNAPSHOT.pom (added)
+++ maven/mercury/trunk/mercury-core/src/test/resources/repoReactor/b/target/b-1.0-SNAPSHOT.pom Mon Apr 27 23:12:25 2009
@@ -0,0 +1,4 @@
+<project>
+	<groupId>b</groupId>
+	<artifactId>b</artifactId>
+	<version>1.0-SNAPSHOT</version></project>
\ No newline at end of file

Propchange: maven/mercury/trunk/mercury-core/src/test/resources/repoReactor/b/target/b-1.0-SNAPSHOT.pom
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/mercury/trunk/mercury-core/src/test/resources/repoReactor/b/target/b-1.0-SNAPSHOT.pom
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/all/it/AbstractTestCase.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/all/it/AbstractTestCase.java?rev=769199&r1=769198&r2=769199&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/all/it/AbstractTestCase.java (original)
+++ maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/all/it/AbstractTestCase.java Mon Apr 27 23:12:25 2009
@@ -15,7 +15,7 @@
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
-*/
+ */
 
 package org.apache.maven.mercury.all.it;
 
@@ -23,12 +23,11 @@
 
 /**
  * Common tests code
- *
+ * 
  * @author Oleg Gusakov
  * @version $Id$
- *
  */
 public abstract class AbstractTestCase
-extends PlexusTestCase
+    extends PlexusTestCase
 {
 }

Modified: maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/all/it/AllTestCases.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/all/it/AllTestCases.java?rev=769199&r1=769198&r2=769199&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/all/it/AllTestCases.java (original)
+++ maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/all/it/AllTestCases.java Mon Apr 27 23:12:25 2009
@@ -15,7 +15,7 @@
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
-*/
+ */
 
 package org.apache.maven.mercury.all.it;
 
@@ -36,10 +36,9 @@
 
 /**
  * adopted from Maven ITs structure
- *
+ * 
  * @author Oleg Gusakov
  * @version $Id$
- *
  */
 public class AllTestCases
     extends AbstractTestCase
@@ -50,17 +49,17 @@
     {
         super.setUp();
     }
-    
+
     @Override
     protected void tearDown()
         throws Exception
     {
         super.tearDown();
     }
-    
+
     public void testConfig()
     {
-        
+
     }
 
     public static Test suite()
@@ -73,10 +72,9 @@
         suite.addTestSuite( DavServerTest.class );
 
         /*
-         * Add tests in reverse alpha order by number below. This makes testing new
-         * ITs quicker and since it counts down to zero, it's easier to judge how close
-         * the tests are to finishing. Newer tests are also more likely to fail, so this is
-         * a fail fast technique as well.
+         * Add tests in reverse alpha order by number below. This makes testing new ITs quicker and since it counts down
+         * to zero, it's easier to judge how close the tests are to finishing. Newer tests are also more likely to fail,
+         * so this is a fail fast technique as well.
          */
         suite.addTestSuite( LocalRepositoryReaderM2Test.class );
         suite.addTestSuite( LocalRepositoryWriterM2Test.class );
@@ -89,7 +87,6 @@
         suite.addTestSuite( DefaultPlexusMercuryTest.class );
         suite.addTestSuite( ComprehensiveRepositoryTest.class );
 
-
         /*
          * Add tests in reverse alpha order above.
          */

Modified: maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/dependency/tests/DependencyTreeBuilderTest.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/dependency/tests/DependencyTreeBuilderTest.java?rev=769199&r1=769198&r2=769199&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/dependency/tests/DependencyTreeBuilderTest.java (original)
+++ maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/dependency/tests/DependencyTreeBuilderTest.java Mon Apr 27 23:12:25 2009
@@ -50,327 +50,335 @@
 import org.apache.maven.mercury.repository.virtual.VirtualRepositoryReader;
 import org.apache.maven.mercury.transport.api.Server;
 
-
 /**
- * 
  * @author Oleg Gusakov
  * @version $Id$
  */
 public class DependencyTreeBuilderTest
-extends TestCase
+    extends TestCase
 {
-  private static final IMercuryLogger _log = MercuryLoggerManager.getLogger( DependencyTreeBuilderTest.class ); 
-  
-  String repoUrl = "http://repo1.maven.org/maven2";
-//  String repoUrl = "http://repository.sonatype.org/content/groups/public";
-//  String repoUrl = "http://nexus:8081/nexus/content/groups/public";
-
-  File repoDir;
-  
-  DependencyBuilder depBuilder;
-  LocalRepositoryM2 localRepo;
-  RemoteRepositoryM2 remoteRepo;
-  List<Repository> reps;
-  
-  VirtualRepositoryReader vReader;
-  
-  //----------------------------------------------------------------------------------------------
-  @Override
-  protected void setUp()
-  throws Exception
-  {
-    
-    Logger.getLogger("").setLevel(Level.ALL);
-
-    repoDir = new File( "./target/local");
-//    repoDir = File.createTempFile( "local-repo-","-it");
-    repoDir.delete();
-    repoDir.mkdirs();
-    
-    _log.info( "temporary local repository at "+repoDir );
-    
-    reps = new ArrayList<Repository>();
-    
-    localRepo = new LocalRepositoryM2( "testLocalRepo", repoDir, new MavenDependencyProcessor() );
-    reps.add(  localRepo );
-    
-    Server server = new Server( "testRemoteRepo", new URL(repoUrl) );
-    remoteRepo = new RemoteRepositoryM2(server, new MavenDependencyProcessor());
-    reps.add( remoteRepo );
-    
-//    Server central = new Server("central", new URL("http://repo1.maven.org/maven2") );
-//    RemoteRepositoryM2 centralRepo = new RemoteRepositoryM2(central);
-//    reps.add(centralRepo);
-
-    depBuilder = DependencyBuilderFactory.create( DependencyBuilderFactory.JAVA_DEPENDENCY_MODEL, reps );
-    depBuilder.register( new DumbListener() );
-    
-    vReader = new VirtualRepositoryReader( reps );
-  }
-  //----------------------------------------------------------------------------------------------
-  @Override
-  protected void tearDown()
-  throws Exception
-  {
-    super.tearDown();
-  }
-  //----------------------------------------------------------------------------------------------
-  private static boolean assertHasArtifact( List<ArtifactMetadata> res, String gav )
-  {
-    ArtifactMetadata gavMd = new ArtifactMetadata(gav);
-    
-    for( ArtifactMetadata md : res )
-      if( md.sameGAV( gavMd ) )
-        return true;
-    
-    return false;
-  }
-   //----------------------------------------------------------------------------------------------
-  public void testDummy()
-  throws MetadataTreeException
-  {
-  }
-  //----------------------------------------------------------------------------------------------
-  /**
-   * this test relies on MavenVersionRange maven.mercury.osgi.version being set to false, it's default value.
-   * <strong>Do not</strong> run maven with -Dmaven.mercury.osgi.version=true   
-   */
-  public void testResolveConflicts()
-  throws Exception
-  {
-//    String artifactId = "org.testng:testng:5.7";
-    String artifactId = "asm:asm-xml:3.0";
-//  String artifactId = "org.apache.maven:maven-core:2.0.9";
-//  String artifactId = "qdox:qdox:1.6.1";
-    
-    
-    ArtifactMetadata md = new ArtifactMetadata( artifactId );
-
-    MetadataTreeNode root = depBuilder.buildTree( md, ArtifactScopeEnum.compile );
-
-    assertNotNull( "null tree built", root );
-    
-//    assertTrue( "wrong tree size, expected gte 4", 4 <= root.countNodes() );
-
-    List<ArtifactMetadata> res = depBuilder.resolveConflicts( root );
-    
-    assertNotNull( res );
-    
-    assertTrue( res.size() > 1 );
-    
-    System.out.println("\n---------------------------------\nclasspath: "+res);    
-    System.out.println("---------------------------------");    
-    for( ArtifactMetadata amd : res )
+    private static final IMercuryLogger _log = MercuryLoggerManager.getLogger( DependencyTreeBuilderTest.class );
+
+    String repoUrl = "http://repo1.maven.org/maven2";
+
+    // String repoUrl = "http://repository.sonatype.org/content/groups/public";
+    // String repoUrl = "http://nexus:8081/nexus/content/groups/public";
+
+    File repoDir;
+
+    DependencyBuilder depBuilder;
+
+    LocalRepositoryM2 localRepo;
+
+    RemoteRepositoryM2 remoteRepo;
+
+    List<Repository> reps;
+
+    VirtualRepositoryReader vReader;
+
+    // ----------------------------------------------------------------------------------------------
+    @Override
+    protected void setUp()
+        throws Exception
     {
-      System.out.println(amd + ( amd.getTracker() == null ? " [no tracker]" : " ["+((RepositoryReader)amd.getTracker()).getRepository().getId()+"]" ) );
+
+        Logger.getLogger( "" ).setLevel( Level.ALL );
+
+        repoDir = new File( "./target/local" );
+        // repoDir = File.createTempFile( "local-repo-","-it");
+        repoDir.delete();
+        repoDir.mkdirs();
+
+        _log.info( "temporary local repository at " + repoDir );
+
+        reps = new ArrayList<Repository>();
+
+        localRepo = new LocalRepositoryM2( "testLocalRepo", repoDir, new MavenDependencyProcessor() );
+        reps.add( localRepo );
+
+        Server server = new Server( "testRemoteRepo", new URL( repoUrl ) );
+        remoteRepo = new RemoteRepositoryM2( server, new MavenDependencyProcessor() );
+        reps.add( remoteRepo );
+
+        // Server central = new Server("central", new URL("http://repo1.maven.org/maven2") );
+        // RemoteRepositoryM2 centralRepo = new RemoteRepositoryM2(central);
+        // reps.add(centralRepo);
+
+        depBuilder = DependencyBuilderFactory.create( DependencyBuilderFactory.JAVA_DEPENDENCY_MODEL, reps );
+        depBuilder.register( new DumbListener() );
+
+        vReader = new VirtualRepositoryReader( reps );
+    }
+
+    // ----------------------------------------------------------------------------------------------
+    @Override
+    protected void tearDown()
+        throws Exception
+    {
+        super.tearDown();
     }
-    System.out.println("---------------------------------");    
 
-    
-    assertEquals( 4, res.size() );
-    
-    assertTrue( assertHasArtifact( res, "asm:asm-xml:3.0" ) );
-    assertTrue( assertHasArtifact( res, "asm:asm-util:3.0" ) );
-    assertTrue( assertHasArtifact( res, "asm:asm-tree:3.0" ) );
-    assertTrue( assertHasArtifact( res, "asm:asm:3.0" ) );
-    
-    ArtifactResults aRes = vReader.readArtifacts( res );
-    
-    assertNotNull( aRes );
-    
-    assertFalse( aRes.hasExceptions() );
-    
-    assertTrue( aRes.hasResults() );
-    
-    List<Artifact> artifacts = new ArrayList<Artifact>();
-    
-    for( ArtifactMetadata abm : aRes.getResults().keySet() )
-      artifacts.addAll(  aRes.getResults(abm) );
-    
-    localRepo.getWriter().writeArtifacts( artifacts );
-    
-    System.out.println("Saved "+artifacts.size()+" artifacts to "+localRepo.getDirectory() );
-    
-  }
-  //----------------------------------------------------------------------------------------------
-  private static void showClasspath( List<ArtifactMetadata> cp )
-  {
-    TreeSet<String> scp = new TreeSet<String>();
-    
-    for( ArtifactMetadata m : cp )
-      scp.add( m.getArtifactId()+"-"+m.getVersion()+"."+m.getType() );
-    
-    System.out.println("\n========> Classpath: "+cp.size()+" elements");
-    for( String s : scp )
+    // ----------------------------------------------------------------------------------------------
+    private static boolean assertHasArtifact( List<ArtifactMetadata> res, String gav )
     {
-      System.out.println(s);
+        ArtifactMetadata gavMd = new ArtifactMetadata( gav );
+
+        for ( ArtifactMetadata md : res )
+            if ( md.sameGAV( gavMd ) )
+                return true;
+
+        return false;
     }
-    System.out.println("<======== Classpath\n");
-    
-  }
-  //----------------------------------------------------------------------------------------------
-  /**
-   * this test relies on MavenVersionRange maven.mercury.osgi.version being set to false, it's default value.
-   * <strong>Do not</strong> run maven with -Dmaven.mercury.osgi.version=true   
-   */
-  public void testResolvePlugin()
-  throws Exception
-  {
-    String centralUrl = "http://repo1.maven.org/maven2";
-
-    String artifactId = "org.apache.maven.plugins:maven-clean-plugin:2.2";
-    
-    reps.clear();
-    
-    File pluginRepo = new File( "./target/repoPlugin" );
-    localRepo = new LocalRepositoryM2( "testLocalPluginRepo", pluginRepo, new MavenDependencyProcessor() );
-    reps.add(  localRepo );
-
-    Server server = new Server( "id", new URL(centralUrl) );
-    remoteRepo = new RemoteRepositoryM2(server, new MavenDependencyProcessor());
-    remoteRepo.setUpdatePolicy( RepositoryUpdateIntervalPolicy.UPDATE_POLICY_NEVER );
-    reps.add( remoteRepo );
-    
-    depBuilder = DependencyBuilderFactory.create( DependencyBuilderFactory.JAVA_DEPENDENCY_MODEL, reps );
-//    depBuilder.register( new DumbListener() );
-    
-    ArtifactMetadata md = new ArtifactMetadata( artifactId );
-
-    MetadataTreeNode root = depBuilder.buildTree( md, ArtifactScopeEnum.compile );
-
-    assertNotNull( "null tree built", root );
-    
-//    assertTrue( "wrong tree size, expected gte 4", 4 <= root.countNodes() );
-
-    List<ArtifactMetadata> res = depBuilder.resolveConflicts( root );
-    
-    assertNotNull( res );
-    
-    assertTrue( res.size() > 1 );
-
-    showClasspath( res );
-
-    artifactId = "org.apache.maven.plugins:maven-compiler-plugin:2.0.2";
-    md = new ArtifactMetadata( artifactId );
-    root = depBuilder.buildTree( md, ArtifactScopeEnum.compile );
-    assertNotNull( "null tree built", root );
-    res = depBuilder.resolveConflicts( root );
-    showClasspath( res );
-    
-    ArtifactResults ar = vReader.readArtifacts( res );
-    
-    assertNotNull( ar );
-    
-    assertFalse( ar.hasExceptions() );
-
-    assertTrue( ar.hasResults() );
-    
-    Map<ArtifactMetadata, List<Artifact>> arts = ar.getResults();
-    
-    for( List<Artifact> al : arts.values() )
+
+    // ----------------------------------------------------------------------------------------------
+    public void testDummy()
+        throws MetadataTreeException
     {
-      for( Artifact a : al )
-        System.out.println( a.toString()+" -> "+a.getFile() );
     }
-  }
-  //----------------------------------------------------------------------------------------------
-  public void testResolvePluginAsTree()
-  throws Exception
-  {
-    String centralUrl = "http://repo1.maven.org/maven2";
-
-    String artifactId = "org.apache.maven.plugins:maven-clean-plugin:2.2";
-    
-    reps.clear();
-    
-    File pluginRepo = new File( "./target/repoPlugin" );
-    localRepo = new LocalRepositoryM2( "testLocalPluginRepo", pluginRepo, new MavenDependencyProcessor() );
-    reps.add(  localRepo );
-
-    Server server = new Server( "id", new URL(centralUrl) );
-    remoteRepo = new RemoteRepositoryM2(server, new MavenDependencyProcessor());
-    remoteRepo.setUpdatePolicy( RepositoryUpdateIntervalPolicy.UPDATE_POLICY_NEVER );
-    reps.add( remoteRepo );
-    
-    depBuilder = DependencyBuilderFactory.create( DependencyBuilderFactory.JAVA_DEPENDENCY_MODEL, reps );
-//    depBuilder.register( new DumbListener() );
-    
-    ArtifactMetadata md = new ArtifactMetadata( artifactId );
-
-    MetadataTreeNode root = depBuilder.buildTree( md, ArtifactScopeEnum.compile );
-
-    assertNotNull( root );
-    
-    MetadataTreeNode res = depBuilder.resolveConflictsAsTree( root );
-    
-    assertNotNull( res );
-    
-    int nodeCount = res.countNodes();
-    
-    assertEquals( 15, nodeCount);
-    
-    System.out.println("Unique feature - junit is in the compile scope thanks to plexus-container-default 1.0.9");
-
-    MetadataTreeNode.showNode( res, 0 );
-
-  }
-  //----------------------------------------------------------------------------------------------
-  // modify the resolution by demanding plexus-util:1.5.8, by default clean plugin 2.2 depends on plexus-util:1.1 
-  public void testManagedVersionMap()
-  throws Exception
-  {
-      String centralUrl = "http://repo1.maven.org/maven2";
-
-      String artifactId = "org.apache.maven.plugins:maven-clean-plugin:2.2";
-      
-      reps.clear();
-      
-      File versionMapRepo = new File( "./target/repoVersionMap" );
-      localRepo = new LocalRepositoryM2( "testVersionMap", versionMapRepo, new MavenDependencyProcessor() );
-      reps.add(  localRepo );
-
-      Server server = new Server( "id", new URL(centralUrl) );
-      remoteRepo = new RemoteRepositoryM2(server, new MavenDependencyProcessor());
-      remoteRepo.setUpdatePolicy( RepositoryUpdateIntervalPolicy.UPDATE_POLICY_NEVER );
-      reps.add( remoteRepo );
-      
-      ArtifactMetadata modifiedDep = new ArtifactMetadata("org.codehaus.plexus:plexus-utils:1.5.8");
-      Map<String, ArtifactMetadata> versionMap = new HashMap<String, ArtifactMetadata>(1);
-      String key = modifiedDep.toManagementString();
-      versionMap.put( key, modifiedDep );
-      
-      Map<String,Object> config = new HashMap<String, Object>(1);
-      config.put( DependencyBuilder.CONFIGURATION_PROPERTY_VERSION_MAP, versionMap );
-      
-      depBuilder = DependencyBuilderFactory.create( DependencyBuilderFactory.JAVA_DEPENDENCY_MODEL, reps, null, null, null, config );
-//      depBuilder.register( new DumbListener() );
-      
-      ArtifactMetadata md = new ArtifactMetadata( artifactId );
-
-      MetadataTreeNode root = depBuilder.buildTree( md, ArtifactScopeEnum.compile );
-
-      assertNotNull( "null tree built", root );
-      
-//      assertTrue( "wrong tree size, expected gte 4", 4 <= root.countNodes() );
-
-      List<ArtifactMetadata> res = depBuilder.resolveConflicts( root );
-      
-      assertNotNull( res );
-      
-      assertTrue( res.size() > 1 );
-
-      showClasspath( res );
-      
-      for( ArtifactMetadata am : res )
-      {
-          if( 
-              "org.codehaus.plexus".equals( am.getGroupId() )
-              &&
-              "plexus-utils".equals( am.getArtifactId() )
-            )
-              assertEquals( "1.5.8", am.getVersion() );
-      }
-  }
-  //----------------------------------------------------------------------------------------------
-  //----------------------------------------------------------------------------------------------
+
+    // ----------------------------------------------------------------------------------------------
+    /**
+     * this test relies on MavenVersionRange maven.mercury.osgi.version being set to false, it's default value.
+     * <strong>Do not</strong> run maven with -Dmaven.mercury.osgi.version=true
+     */
+    public void testResolveConflicts()
+        throws Exception
+    {
+        // String artifactId = "org.testng:testng:5.7";
+        String artifactId = "asm:asm-xml:3.0";
+        // String artifactId = "org.apache.maven:maven-core:2.0.9";
+        // String artifactId = "qdox:qdox:1.6.1";
+
+        ArtifactMetadata md = new ArtifactMetadata( artifactId );
+
+        MetadataTreeNode root = depBuilder.buildTree( md, ArtifactScopeEnum.compile );
+
+        assertNotNull( "null tree built", root );
+
+        // assertTrue( "wrong tree size, expected gte 4", 4 <= root.countNodes() );
+
+        List<ArtifactMetadata> res = depBuilder.resolveConflicts( root );
+
+        assertNotNull( res );
+
+        assertTrue( res.size() > 1 );
+
+        System.out.println( "\n---------------------------------\nclasspath: " + res );
+        System.out.println( "---------------------------------" );
+        for ( ArtifactMetadata amd : res )
+        {
+            System.out.println( amd
+                + ( amd.getTracker() == null ? " [no tracker]" : " ["
+                    + ( (RepositoryReader) amd.getTracker() ).getRepository().getId() + "]" ) );
+        }
+        System.out.println( "---------------------------------" );
+
+        assertEquals( 4, res.size() );
+
+        assertTrue( assertHasArtifact( res, "asm:asm-xml:3.0" ) );
+        assertTrue( assertHasArtifact( res, "asm:asm-util:3.0" ) );
+        assertTrue( assertHasArtifact( res, "asm:asm-tree:3.0" ) );
+        assertTrue( assertHasArtifact( res, "asm:asm:3.0" ) );
+
+        ArtifactResults aRes = vReader.readArtifacts( res );
+
+        assertNotNull( aRes );
+
+        assertFalse( aRes.hasExceptions() );
+
+        assertTrue( aRes.hasResults() );
+
+        List<Artifact> artifacts = new ArrayList<Artifact>();
+
+        for ( ArtifactMetadata abm : aRes.getResults().keySet() )
+            artifacts.addAll( aRes.getResults( abm ) );
+
+        localRepo.getWriter().writeArtifacts( artifacts );
+
+        System.out.println( "Saved " + artifacts.size() + " artifacts to " + localRepo.getDirectory() );
+
+    }
+
+    // ----------------------------------------------------------------------------------------------
+    private static void showClasspath( List<ArtifactMetadata> cp )
+    {
+        TreeSet<String> scp = new TreeSet<String>();
+
+        for ( ArtifactMetadata m : cp )
+            scp.add( m.getArtifactId() + "-" + m.getVersion() + "." + m.getType() );
+
+        System.out.println( "\n========> Classpath: " + cp.size() + " elements" );
+        for ( String s : scp )
+        {
+            System.out.println( s );
+        }
+        System.out.println( "<======== Classpath\n" );
+
+    }
+
+    // ----------------------------------------------------------------------------------------------
+    /**
+     * this test relies on MavenVersionRange maven.mercury.osgi.version being set to false, it's default value.
+     * <strong>Do not</strong> run maven with -Dmaven.mercury.osgi.version=true
+     */
+    public void testResolvePlugin()
+        throws Exception
+    {
+        String centralUrl = "http://repo1.maven.org/maven2";
+
+        String artifactId = "org.apache.maven.plugins:maven-clean-plugin:2.2";
+
+        reps.clear();
+
+        File pluginRepo = new File( "./target/repoPlugin" );
+        localRepo = new LocalRepositoryM2( "testLocalPluginRepo", pluginRepo, new MavenDependencyProcessor() );
+        reps.add( localRepo );
+
+        Server server = new Server( "id", new URL( centralUrl ) );
+        remoteRepo = new RemoteRepositoryM2( server, new MavenDependencyProcessor() );
+        remoteRepo.setUpdatePolicy( RepositoryUpdateIntervalPolicy.UPDATE_POLICY_NEVER );
+        reps.add( remoteRepo );
+
+        depBuilder = DependencyBuilderFactory.create( DependencyBuilderFactory.JAVA_DEPENDENCY_MODEL, reps );
+        // depBuilder.register( new DumbListener() );
+
+        ArtifactMetadata md = new ArtifactMetadata( artifactId );
+
+        MetadataTreeNode root = depBuilder.buildTree( md, ArtifactScopeEnum.compile );
+
+        assertNotNull( "null tree built", root );
+
+        // assertTrue( "wrong tree size, expected gte 4", 4 <= root.countNodes() );
+
+        List<ArtifactMetadata> res = depBuilder.resolveConflicts( root );
+
+        assertNotNull( res );
+
+        assertTrue( res.size() > 1 );
+
+        showClasspath( res );
+
+        artifactId = "org.apache.maven.plugins:maven-compiler-plugin:2.0.2";
+        md = new ArtifactMetadata( artifactId );
+        root = depBuilder.buildTree( md, ArtifactScopeEnum.compile );
+        assertNotNull( "null tree built", root );
+        res = depBuilder.resolveConflicts( root );
+        showClasspath( res );
+
+        ArtifactResults ar = vReader.readArtifacts( res );
+
+        assertNotNull( ar );
+
+        assertFalse( ar.hasExceptions() );
+
+        assertTrue( ar.hasResults() );
+
+        Map<ArtifactMetadata, List<Artifact>> arts = ar.getResults();
+
+        for ( List<Artifact> al : arts.values() )
+        {
+            for ( Artifact a : al )
+                System.out.println( a.toString() + " -> " + a.getFile() );
+        }
+    }
+
+    // ----------------------------------------------------------------------------------------------
+    public void testResolvePluginAsTree()
+        throws Exception
+    {
+        String centralUrl = "http://repo1.maven.org/maven2";
+
+        String artifactId = "org.apache.maven.plugins:maven-clean-plugin:2.2";
+
+        reps.clear();
+
+        File pluginRepo = new File( "./target/repoPlugin" );
+        localRepo = new LocalRepositoryM2( "testLocalPluginRepo", pluginRepo, new MavenDependencyProcessor() );
+        reps.add( localRepo );
+
+        Server server = new Server( "id", new URL( centralUrl ) );
+        remoteRepo = new RemoteRepositoryM2( server, new MavenDependencyProcessor() );
+        remoteRepo.setUpdatePolicy( RepositoryUpdateIntervalPolicy.UPDATE_POLICY_NEVER );
+        reps.add( remoteRepo );
+
+        depBuilder = DependencyBuilderFactory.create( DependencyBuilderFactory.JAVA_DEPENDENCY_MODEL, reps );
+        // depBuilder.register( new DumbListener() );
+
+        ArtifactMetadata md = new ArtifactMetadata( artifactId );
+
+        MetadataTreeNode root = depBuilder.buildTree( md, ArtifactScopeEnum.compile );
+
+        assertNotNull( root );
+
+        MetadataTreeNode res = depBuilder.resolveConflictsAsTree( root );
+
+        assertNotNull( res );
+
+        int nodeCount = res.countNodes();
+
+        assertEquals( 15, nodeCount );
+
+        System.out.println( "Unique feature - junit is in the compile scope thanks to plexus-container-default 1.0.9" );
+
+        MetadataTreeNode.showNode( res, 0 );
+
+    }
+
+    // ----------------------------------------------------------------------------------------------
+    // modify the resolution by demanding plexus-util:1.5.8, by default clean plugin 2.2 depends on plexus-util:1.1
+    public void testManagedVersionMap()
+        throws Exception
+    {
+        String centralUrl = "http://repo1.maven.org/maven2";
+
+        String artifactId = "org.apache.maven.plugins:maven-clean-plugin:2.2";
+
+        reps.clear();
+
+        File versionMapRepo = new File( "./target/repoVersionMap" );
+        localRepo = new LocalRepositoryM2( "testVersionMap", versionMapRepo, new MavenDependencyProcessor() );
+        reps.add( localRepo );
+
+        Server server = new Server( "id", new URL( centralUrl ) );
+        remoteRepo = new RemoteRepositoryM2( server, new MavenDependencyProcessor() );
+        remoteRepo.setUpdatePolicy( RepositoryUpdateIntervalPolicy.UPDATE_POLICY_NEVER );
+        reps.add( remoteRepo );
+
+        ArtifactMetadata modifiedDep = new ArtifactMetadata( "org.codehaus.plexus:plexus-utils:1.5.8" );
+        Map<String, ArtifactMetadata> versionMap = new HashMap<String, ArtifactMetadata>( 1 );
+        String key = modifiedDep.toManagementString();
+        versionMap.put( key, modifiedDep );
+
+        Map<String, Object> config = new HashMap<String, Object>( 1 );
+        config.put( DependencyBuilder.CONFIGURATION_PROPERTY_VERSION_MAP, versionMap );
+
+        depBuilder =
+            DependencyBuilderFactory.create( DependencyBuilderFactory.JAVA_DEPENDENCY_MODEL, reps, null, null, null,
+                                             config );
+        // depBuilder.register( new DumbListener() );
+
+        ArtifactMetadata md = new ArtifactMetadata( artifactId );
+
+        MetadataTreeNode root = depBuilder.buildTree( md, ArtifactScopeEnum.compile );
+
+        assertNotNull( "null tree built", root );
+
+        // assertTrue( "wrong tree size, expected gte 4", 4 <= root.countNodes() );
+
+        List<ArtifactMetadata> res = depBuilder.resolveConflicts( root );
+
+        assertNotNull( res );
+
+        assertTrue( res.size() > 1 );
+
+        showClasspath( res );
+
+        for ( ArtifactMetadata am : res )
+        {
+            if ( "org.codehaus.plexus".equals( am.getGroupId() ) && "plexus-utils".equals( am.getArtifactId() ) )
+                assertEquals( "1.5.8", am.getVersion() );
+        }
+    }
+    // ----------------------------------------------------------------------------------------------
+    // ----------------------------------------------------------------------------------------------
 }
\ No newline at end of file

Modified: maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/plexus/DefaultPlexusMercuryTest.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/plexus/DefaultPlexusMercuryTest.java?rev=769199&r1=769198&r2=769199&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/plexus/DefaultPlexusMercuryTest.java (original)
+++ maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/plexus/DefaultPlexusMercuryTest.java Mon Apr 27 23:12:25 2009
@@ -357,27 +357,29 @@
 
         System.out.println( "Resolved as tree:" );
         MetadataTreeNode.showNode( res, 0 );
-        
+
         assertNotNull( res );
-        
+
         assertTrue( res.hasChildren() );
-        
+
         int nodes = res.countNodes();
 
-        /* tree structure:
-            0 asm:asm-xml:3.0::jar
-              1 asm:asm-util:3.0::jar
-                2 asm:asm-tree:3.0::jar
-                  3 asm:asm:3.0::jar
+        /*
+         * tree structure: 0 asm:asm-xml:3.0::jar 1 asm:asm-util:3.0::jar 2 asm:asm-tree:3.0::jar 3 asm:asm:3.0::jar
          */
-        
+
         assertEquals( 4, nodes );
 
         assertTrue( res.getMd().equals( new ArtifactMetadata( "asm:asm-xml:3.0" ) ) );
         assertTrue( res.getChildren().get( 0 ).getMd().equals( new ArtifactMetadata( "asm:asm-util:3.0" ) ) );
-        assertTrue( res.getChildren().get( 0 ).getChildren().get( 0 ).getMd().equals( new ArtifactMetadata( "asm:asm-tree:3.0" ) ) );
-        assertTrue( res.getChildren().get( 0 ).getChildren().get( 0 ).getChildren().get( 0 ).getMd().equals( new ArtifactMetadata( "asm:asm:3.0" ) ) );
+        assertTrue( res.getChildren().get( 0 ).getChildren().get( 0 ).getMd().equals(
+                                                                                      new ArtifactMetadata(
+                                                                                                            "asm:asm-tree:3.0" ) ) );
+        assertTrue( res.getChildren().get( 0 ).getChildren().get( 0 ).getChildren().get( 0 ).getMd().equals(
+                                                                                                             new ArtifactMetadata(
+                                                                                                                                   "asm:asm:3.0" ) ) );
     }
+
     // -------------------------------------------------------------------------------------
     public void testResolveListAsTree()
         throws Exception
@@ -392,37 +394,36 @@
         String artifactId2 = "cobertura:cobertura:1.8";
 
         MetadataTreeNode res =
-            pm.resolveAsTree( repos, ArtifactScopeEnum.test, new ArtifactQueryList( artifactId, artifactId2 ), null, null );
+            pm.resolveAsTree( repos, ArtifactScopeEnum.test, new ArtifactQueryList( artifactId, artifactId2 ), null,
+                              null );
 
         System.out.println( "Resolved as tree:" );
         MetadataTreeNode.showNode( res, 0 );
-        
+
         assertNotNull( res );
-        
+
         assertTrue( res.hasChildren() );
-        
+
         int nodes = res.countNodes();
 
-        /* tree structure:
-            0 asm:asm-xml:3.0::jar
-              1 asm:asm-util:3.0::jar
-                2 asm:asm-tree:3.0::jar
-                  3 asm:asm:3.0::jar
+        /*
+         * tree structure: 0 asm:asm-xml:3.0::jar 1 asm:asm-util:3.0::jar 2 asm:asm-tree:3.0::jar 3 asm:asm:3.0::jar
          */
-        
-//        assertEquals( 4, nodes );
-//
-//        assertTrue( res.getMd().equals( new ArtifactMetadata( "asm:asm-xml:3.0" ) ) );
-//        assertTrue( res.getChildren().get( 0 ).getMd().equals( new ArtifactMetadata( "asm:asm-util:3.0" ) ) );
-//        assertTrue( res.getChildren().get( 0 ).getChildren().get( 0 ).getMd().equals( new ArtifactMetadata( "asm:asm-tree:3.0" ) ) );
-//        assertTrue( res.getChildren().get( 0 ).getChildren().get( 0 ).getChildren().get( 0 ).getMd().equals( new ArtifactMetadata( "asm:asm:3.0" ) ) );
 
+        // assertEquals( 4, nodes );
+        //
+        // assertTrue( res.getMd().equals( new ArtifactMetadata( "asm:asm-xml:3.0" ) ) );
+        // assertTrue( res.getChildren().get( 0 ).getMd().equals( new ArtifactMetadata( "asm:asm-util:3.0" ) ) );
+        // assertTrue( res.getChildren().get( 0 ).getChildren().get( 0 ).getMd().equals( new ArtifactMetadata(
+        // "asm:asm-tree:3.0" ) ) );
+        // assertTrue( res.getChildren().get( 0 ).getChildren().get( 0 ).getChildren().get( 0 ).getMd().equals( new
+        // ArtifactMetadata( "asm:asm:3.0" ) ) );
         List<ArtifactMetadata> res2 =
             pm.resolve( repos, ArtifactScopeEnum.test, new ArtifactQueryList( artifactId, artifactId2 ), null, null );
-        
-        System.out.println("\n============== as List =========");
-        if( res2 != null )
-            for( ArtifactMetadata a : res2 )
+
+        System.out.println( "\n============== as List =========" );
+        if ( res2 != null )
+            for ( ArtifactMetadata a : res2 )
                 System.out.println( a );
     }
 
@@ -442,26 +443,27 @@
 
         System.out.println( "Resolved as tree:" );
         MetadataTreeNode.showNode( res, 0 );
-        
+
         assertNotNull( res );
-        
+
         assertTrue( res.hasChildren() );
-        
+
         int nodes = res.countNodes();
 
-        /* tree structure:
-            0 asm:asm-xml:3.0::pom
-              1 asm:asm-util:3.0::jar
-                2 asm:asm-tree:3.0::jar
-                  3 asm:asm:3.0::jar
+        /*
+         * tree structure: 0 asm:asm-xml:3.0::pom 1 asm:asm-util:3.0::jar 2 asm:asm-tree:3.0::jar 3 asm:asm:3.0::jar
          */
-        
+
         assertEquals( 4, nodes );
 
         assertTrue( res.getMd().equals( new ArtifactMetadata( "asm:asm-xml:3.0::pom" ) ) );
         assertTrue( res.getChildren().get( 0 ).getMd().equals( new ArtifactMetadata( "asm:asm-util:3.0" ) ) );
-        assertTrue( res.getChildren().get( 0 ).getChildren().get( 0 ).getMd().equals( new ArtifactMetadata( "asm:asm-tree:3.0" ) ) );
-        assertTrue( res.getChildren().get( 0 ).getChildren().get( 0 ).getChildren().get( 0 ).getMd().equals( new ArtifactMetadata( "asm:asm:3.0" ) ) );
+        assertTrue( res.getChildren().get( 0 ).getChildren().get( 0 ).getMd().equals(
+                                                                                      new ArtifactMetadata(
+                                                                                                            "asm:asm-tree:3.0" ) ) );
+        assertTrue( res.getChildren().get( 0 ).getChildren().get( 0 ).getChildren().get( 0 ).getMd().equals(
+                                                                                                             new ArtifactMetadata(
+                                                                                                                                   "asm:asm:3.0" ) ) );
     }
 
     // -------------------------------------------------------------------------------------