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 [12/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/artifact/version/DefaultArtifactVersionTest.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/artifact/version/DefaultArtifactVersionTest.java?rev=769199&r1=769198&r2=769199&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/artifact/version/DefaultArtifactVersionTest.java (original)
+++ maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/artifact/version/DefaultArtifactVersionTest.java Mon Apr 27 23:12:25 2009
@@ -23,7 +23,7 @@
 
 /**
  * Test DefaultArtifactVersion.
- *
+ * 
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
  * @version $Id$
  */
@@ -39,9 +39,10 @@
                                       String qualifier )
     {
         ArtifactVersion artifactVersion = newArtifactVersion( version );
-        String parsed = "'" + version + "' parsed as ('" + artifactVersion.getMajorVersion() + "', '"
-            + artifactVersion.getMinorVersion() + "', '" + artifactVersion.getIncrementalVersion() + "', '"
-            + artifactVersion.getBuildNumber() + "', '" + artifactVersion.getQualifier() + "'), ";
+        String parsed =
+            "'" + version + "' parsed as ('" + artifactVersion.getMajorVersion() + "', '"
+                + artifactVersion.getMinorVersion() + "', '" + artifactVersion.getIncrementalVersion() + "', '"
+                + artifactVersion.getBuildNumber() + "', '" + artifactVersion.getQualifier() + "'), ";
         assertEquals( parsed + "check major version", major, artifactVersion.getMajorVersion() );
         assertEquals( parsed + "check minor version", minor, artifactVersion.getMinorVersion() );
         assertEquals( parsed + "check incremental version", incremental, artifactVersion.getIncrementalVersion() );
@@ -52,37 +53,37 @@
 
     public void testVersionParsing()
     {
-        checkVersionParsing( "1" , 1, 0, 0, 0, null );
-        checkVersionParsing( "1.2" , 1, 2, 0, 0, null );
-        checkVersionParsing( "1.2.3" , 1, 2, 3, 0, null );
-        checkVersionParsing( "1.2.3-1" , 1, 2, 3, 1, null );
-        checkVersionParsing( "1.2.3-alpha-1" , 1, 2, 3, 0, "alpha-1" );
-        checkVersionParsing( "1.2-alpha-1" , 1, 2, 0, 0, "alpha-1" );
-        checkVersionParsing( "1.2-alpha-1-20050205.060708-1" , 1, 2, 0, 0, "alpha-1-20050205.060708-1" );
-        checkVersionParsing( "RELEASE" , 0, 0, 0, 0, "RELEASE" );
-        checkVersionParsing( "2.0-1" , 2, 0, 0, 1, null );
+        checkVersionParsing( "1", 1, 0, 0, 0, null );
+        checkVersionParsing( "1.2", 1, 2, 0, 0, null );
+        checkVersionParsing( "1.2.3", 1, 2, 3, 0, null );
+        checkVersionParsing( "1.2.3-1", 1, 2, 3, 1, null );
+        checkVersionParsing( "1.2.3-alpha-1", 1, 2, 3, 0, "alpha-1" );
+        checkVersionParsing( "1.2-alpha-1", 1, 2, 0, 0, "alpha-1" );
+        checkVersionParsing( "1.2-alpha-1-20050205.060708-1", 1, 2, 0, 0, "alpha-1-20050205.060708-1" );
+        checkVersionParsing( "RELEASE", 0, 0, 0, 0, "RELEASE" );
+        checkVersionParsing( "2.0-1", 2, 0, 0, 1, null );
 
         // 0 at the beginning of a number has a special handling
-        checkVersionParsing( "02" , 0, 0, 0, 0, "02" );
-        checkVersionParsing( "0.09" , 0, 0, 0, 0, "0.09" );
-        checkVersionParsing( "0.2.09" , 0, 0, 0, 0, "0.2.09" );
-        checkVersionParsing( "2.0-01" , 2, 0, 0, 0, "01" );
+        checkVersionParsing( "02", 0, 0, 0, 0, "02" );
+        checkVersionParsing( "0.09", 0, 0, 0, 0, "0.09" );
+        checkVersionParsing( "0.2.09", 0, 0, 0, 0, "0.2.09" );
+        checkVersionParsing( "2.0-01", 2, 0, 0, 0, "01" );
 
         // version schemes not really supported: fully transformed as qualifier
-        checkVersionParsing( "1.0.1b" , 0, 0, 0, 0, "1.0.1b" );
-        checkVersionParsing( "1.0M2" , 0, 0, 0, 0, "1.0M2" );
-        checkVersionParsing( "1.0RC2" , 0, 0, 0, 0, "1.0RC2" );
-        checkVersionParsing( "1.7.3.0" , 0, 0, 0, 0, "1.7.3.0" );
-        checkVersionParsing( "1.7.3.0-1" , 0, 0, 0, 0, "1.7.3.0-1" );
-        checkVersionParsing( "PATCH-1193602" , 0, 0, 0, 0, "PATCH-1193602" );
-        checkVersionParsing( "5.0.0alpha-2006020117" , 0, 0, 0, 0, "5.0.0alpha-2006020117" );
+        checkVersionParsing( "1.0.1b", 0, 0, 0, 0, "1.0.1b" );
+        checkVersionParsing( "1.0M2", 0, 0, 0, 0, "1.0M2" );
+        checkVersionParsing( "1.0RC2", 0, 0, 0, 0, "1.0RC2" );
+        checkVersionParsing( "1.7.3.0", 0, 0, 0, 0, "1.7.3.0" );
+        checkVersionParsing( "1.7.3.0-1", 0, 0, 0, 0, "1.7.3.0-1" );
+        checkVersionParsing( "PATCH-1193602", 0, 0, 0, 0, "PATCH-1193602" );
+        checkVersionParsing( "5.0.0alpha-2006020117", 0, 0, 0, 0, "5.0.0alpha-2006020117" );
         checkVersionParsing( "1.0.0.-SNAPSHOT", 0, 0, 0, 0, "1.0.0.-SNAPSHOT" );
         checkVersionParsing( "1..0-SNAPSHOT", 0, 0, 0, 0, "1..0-SNAPSHOT" );
         checkVersionParsing( "1.0.-SNAPSHOT", 0, 0, 0, 0, "1.0.-SNAPSHOT" );
         checkVersionParsing( ".1.0-SNAPSHOT", 0, 0, 0, 0, ".1.0-SNAPSHOT" );
 
-        checkVersionParsing( "1.2.3.200705301630" , 0, 0, 0, 0, "1.2.3.200705301630" );
-        checkVersionParsing( "1.2.3-200705301630" , 1, 2, 3, 0, "200705301630" );
+        checkVersionParsing( "1.2.3.200705301630", 0, 0, 0, 0, "1.2.3.200705301630" );
+        checkVersionParsing( "1.2.3-200705301630", 1, 2, 3, 0, "200705301630" );
     }
 
     public void testVersionComparing()
@@ -115,7 +116,7 @@
         assertVersionOlder( "2.0-1", "2.0.1" );
 
         assertVersionOlder( "2.0.1-klm", "2.0.1-lmn" );
-        //assertVersionOlder( "2.0.1-xyz", "2.0.1" );
+        // assertVersionOlder( "2.0.1-xyz", "2.0.1" );
 
         assertVersionOlder( "2.0.1", "2.0.1-123" );
         assertVersionOlder( "2.0.1-xyz", "2.0.1-123" );
@@ -140,7 +141,7 @@
         assertVersionOlder( "1.0.0-SNAPSHOT", "1.1-SNAPSHOT" );
         assertVersionOlder( "1.1-SNAPSHOT", "1.2.0-SNAPSHOT" );
 
-        //assertVersionOlder( "1.0-alpha-1-SNAPSHOT", "1.0-SNAPSHOT" );
+        // assertVersionOlder( "1.0-alpha-1-SNAPSHOT", "1.0-SNAPSHOT" );
         assertVersionOlder( "1.0-alpha-1-SNAPSHOT", "1.0-alpha-2-SNAPSHOT" );
         assertVersionOlder( "1.0-alpha-1-SNAPSHOT", "1.0-beta-1-SNAPSHOT" );
 
@@ -150,7 +151,7 @@
 
         assertVersionOlder( "1.0-SNAPSHOT", "1.0-1-SNAPSHOT" );
         assertVersionOlder( "1.0-1-SNAPSHOT", "1.0-2-SNAPSHOT" );
-        //assertVersionEqual( "2.0-0-SNAPSHOT", "2.0-SNAPSHOT" );
+        // assertVersionEqual( "2.0-0-SNAPSHOT", "2.0-SNAPSHOT" );
         assertVersionOlder( "2.0-SNAPSHOT", "2.0-1-SNAPSHOT" );
         assertVersionOlder( "2.0.0-SNAPSHOT", "2.0-1-SNAPSHOT" );
         assertVersionOlder( "2.0-1-SNAPSHOT", "2.0.1-SNAPSHOT" );
@@ -163,7 +164,7 @@
 
     public void testSnapshotVsReleases()
     {
-        //assertVersionOlder( "1.0-RC1", "1.0-SNAPSHOT" ); not feasible if "1.0-SNAPSHOT" < "1.0-beta-1" too
+        // assertVersionOlder( "1.0-RC1", "1.0-SNAPSHOT" ); not feasible if "1.0-SNAPSHOT" < "1.0-beta-1" too
         assertVersionOlder( "1.0-SNAPSHOT", "1.0-RC1" );
         assertVersionOlder( "1.0-SNAPSHOT", "1.0-rc1" );
         assertVersionOlder( "1.0-SNAPSHOT", "1.0-rc-1" );

Modified: maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/crypto/pgp/PgpStreamVerifierTest.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/crypto/pgp/PgpStreamVerifierTest.java?rev=769199&r1=769198&r2=769199&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/crypto/pgp/PgpStreamVerifierTest.java (original)
+++ maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/crypto/pgp/PgpStreamVerifierTest.java Mon Apr 27 23:12:25 2009
@@ -30,125 +30,130 @@
 import org.bouncycastle.openpgp.PGPSecretKeyRing;
 
 /**
- *
- *
  * @author Oleg Gusakov
  * @version $Id$
- *
  */
 public class PgpStreamVerifierTest
     extends TestCase
 {
-  private static final String keyId   = "0EDB5D91141BC4F2";
+    private static final String keyId = "0EDB5D91141BC4F2";
 
-  private static final String secretKeyFile = "/secring.gpg";
-  private static final String secretKeyPass = "testKey82";
+    private static final String secretKeyFile = "/secring.gpg";
 
-  private static final String publicKeyFile = "/pubring.gpg";
-  
-  private PGPSecretKeyRing secretKeyRing;
-  private PGPSecretKey secretKey;
-  private PGPPublicKey publicKey;
-  
-  PgpStreamVerifierFactory svf;
-  
-  PgpStreamVerifier sv;
-
-  protected void setUp()
-      throws Exception
-  {
-    InputStream in = getClass().getResourceAsStream( secretKeyFile );
-    assertNotNull( in );
-    
-    secretKeyRing = PgpHelper.readKeyRing( in, keyId );
-    assertNotNull( secretKeyRing );
-    
-    secretKey = secretKeyRing.getSecretKey( Long.parseLong( keyId, 16 ) );
-    publicKey = secretKeyRing.getPublicKey();
-    
-    StreamVerifierAttributes attributes = new StreamVerifierAttributes(PgpStreamVerifierFactory.DEFAULT_EXTENSION, true, true);
-    
-    InputStream is = getClass().getResourceAsStream( publicKeyFile );
-    svf = new PgpStreamVerifierFactory( attributes, is );
-    is.close();
-    
-    is = getClass().getResourceAsStream( secretKeyFile );
-    svf.init( is, keyId, secretKeyPass );
-    is.close();
-  }
-
-  protected void tearDown()
-      throws Exception
-  {
-    super.tearDown();
-  }
-  //-------------------------------------------------------------------------------------------------
-  public void testGenerateSignature()
-  throws IOException, StreamObserverException
-  {
-    PgpStreamVerifier sv = (PgpStreamVerifier)svf.newInstance();
-    InputStream in = getClass().getResourceAsStream( "/file.gif" );
-    
-    int b;
-    while( (b = in.read()) != -1 )
-      sv.byteReady( b );
-    
-    String sig = sv.getSignature();
-    
-    assertNotNull( sig );
-    
-    assertTrue( sig.length() > 10 );
-    
-//    System.out.println("Signature is \n"+sig+"\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
-  }
-  //-------------------------------------------------------------------------------------------------
-  public void testVerifySignature()
-  throws IOException, StreamObserverException
-  {
-    PgpStreamVerifier sv = (PgpStreamVerifier)svf.newInstance();
-
-    InputStream in = getClass().getResourceAsStream( "/file.gif" );
-    String sig = PgpHelper.streamToString( getClass().getResourceAsStream( "/file.gif.asc" ) );
-    
-    sv.initSignature( sig );
-    
-    int b;
-    while( (b = in.read()) != -1 )
-      sv.byteReady( b );
-    
-    boolean verified = sv.verifySignature();
-    
-    assertTrue( verified );
-    
-    System.out.println("BouncyCastle Signature is "+verified);
-  }
-  //-------------------------------------------------------------------------------------------------
-  public void testVerifyExternalSignature2()
-  throws IOException, StreamObserverException
-  {
-    InputStream in = getClass().getResourceAsStream( "/file.gif" );
-    InputStream sig = getClass().getResourceAsStream( "/file.gif.asc.external" );
-    InputStream publicKeyRingStream = getClass().getResourceAsStream( publicKeyFile );
-    
-    boolean verified = PgpHelper.verifyStream( in, sig, publicKeyRingStream );
-    
-    assertTrue( verified );
-    
-    System.out.println("3rd Party Signature is "+verified);
-  }
-  //-------------------------------------------------------------------------------------------------
-  public void testVerifyBCSignature()
-  throws IOException, StreamObserverException
-  {
-    InputStream in = getClass().getResourceAsStream( "/file.gif" );
-    InputStream sig = getClass().getResourceAsStream( "/file.gif.asc" );
-    InputStream publicKeyRingStream = getClass().getResourceAsStream( publicKeyFile );
-    
-    boolean verified = PgpHelper.verifyStream( in, sig, publicKeyRingStream );
-    
-    assertTrue( verified );
-    
-    System.out.println("BC Signature is "+verified);
-  }
-  //-------------------------------------------------------------------------------------------------
+    private static final String secretKeyPass = "testKey82";
+
+    private static final String publicKeyFile = "/pubring.gpg";
+
+    private PGPSecretKeyRing secretKeyRing;
+
+    private PGPSecretKey secretKey;
+
+    private PGPPublicKey publicKey;
+
+    PgpStreamVerifierFactory svf;
+
+    PgpStreamVerifier sv;
+
+    protected void setUp()
+        throws Exception
+    {
+        InputStream in = getClass().getResourceAsStream( secretKeyFile );
+        assertNotNull( in );
+
+        secretKeyRing = PgpHelper.readKeyRing( in, keyId );
+        assertNotNull( secretKeyRing );
+
+        secretKey = secretKeyRing.getSecretKey( Long.parseLong( keyId, 16 ) );
+        publicKey = secretKeyRing.getPublicKey();
+
+        StreamVerifierAttributes attributes =
+            new StreamVerifierAttributes( PgpStreamVerifierFactory.DEFAULT_EXTENSION, true, true );
+
+        InputStream is = getClass().getResourceAsStream( publicKeyFile );
+        svf = new PgpStreamVerifierFactory( attributes, is );
+        is.close();
+
+        is = getClass().getResourceAsStream( secretKeyFile );
+        svf.init( is, keyId, secretKeyPass );
+        is.close();
+    }
+
+    protected void tearDown()
+        throws Exception
+    {
+        super.tearDown();
+    }
+
+    // -------------------------------------------------------------------------------------------------
+    public void testGenerateSignature()
+        throws IOException, StreamObserverException
+    {
+        PgpStreamVerifier sv = (PgpStreamVerifier) svf.newInstance();
+        InputStream in = getClass().getResourceAsStream( "/file.gif" );
+
+        int b;
+        while ( ( b = in.read() ) != -1 )
+            sv.byteReady( b );
+
+        String sig = sv.getSignature();
+
+        assertNotNull( sig );
+
+        assertTrue( sig.length() > 10 );
+
+        // System.out.println("Signature is \n"+sig+"\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
+    }
+
+    // -------------------------------------------------------------------------------------------------
+    public void testVerifySignature()
+        throws IOException, StreamObserverException
+    {
+        PgpStreamVerifier sv = (PgpStreamVerifier) svf.newInstance();
+
+        InputStream in = getClass().getResourceAsStream( "/file.gif" );
+        String sig = PgpHelper.streamToString( getClass().getResourceAsStream( "/file.gif.asc" ) );
+
+        sv.initSignature( sig );
+
+        int b;
+        while ( ( b = in.read() ) != -1 )
+            sv.byteReady( b );
+
+        boolean verified = sv.verifySignature();
+
+        assertTrue( verified );
+
+        System.out.println( "BouncyCastle Signature is " + verified );
+    }
+
+    // -------------------------------------------------------------------------------------------------
+    public void testVerifyExternalSignature2()
+        throws IOException, StreamObserverException
+    {
+        InputStream in = getClass().getResourceAsStream( "/file.gif" );
+        InputStream sig = getClass().getResourceAsStream( "/file.gif.asc.external" );
+        InputStream publicKeyRingStream = getClass().getResourceAsStream( publicKeyFile );
+
+        boolean verified = PgpHelper.verifyStream( in, sig, publicKeyRingStream );
+
+        assertTrue( verified );
+
+        System.out.println( "3rd Party Signature is " + verified );
+    }
+
+    // -------------------------------------------------------------------------------------------------
+    public void testVerifyBCSignature()
+        throws IOException, StreamObserverException
+    {
+        InputStream in = getClass().getResourceAsStream( "/file.gif" );
+        InputStream sig = getClass().getResourceAsStream( "/file.gif.asc" );
+        InputStream publicKeyRingStream = getClass().getResourceAsStream( publicKeyFile );
+
+        boolean verified = PgpHelper.verifyStream( in, sig, publicKeyRingStream );
+
+        assertTrue( verified );
+
+        System.out.println( "BC Signature is " + verified );
+    }
+    // -------------------------------------------------------------------------------------------------
 }

Modified: maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/event/EventFrameworkTest.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/event/EventFrameworkTest.java?rev=769199&r1=769198&r2=769199&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/event/EventFrameworkTest.java (original)
+++ maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/event/EventFrameworkTest.java Mon Apr 27 23:12:25 2009
@@ -27,181 +27,171 @@
 import org.apache.maven.mercury.event.MercuryEvent.EventMask;
 
 /**
- *
- *
  * @author Oleg Gusakov
  * @version $Id$
- *
  */
 public class EventFrameworkTest
-extends TestCase
+    extends TestCase
 {
-  static final int THREAD_COUNT = 5;
-  static final int EVENT_COUNT  = 10;
-  
-  ExecutorService es;
-  
-  EventManager em;
-  
-  Listener listener;
-  
-  @Override
-  protected void setUp()
-  throws Exception
-  {
-    es = Executors.newFixedThreadPool( THREAD_COUNT );
-  }
-  
-  public void testListenAllEvents()
-  throws Exception
-  {
-    runTest( null, null, THREAD_COUNT * EventFrameworkTest.EVENT_COUNT,  THREAD_COUNT * EventFrameworkTest.EVENT_COUNT );
-  }
-
-  public void testListenMaskedListenerEvents()
-  throws Exception
-  {
-    runTest(  null
-            , new MercuryEvent.EventMask(EventTypeEnum.localRepository)
-            , THREAD_COUNT * EventFrameworkTest.EVENT_COUNT
-            , 0
-           );
-  }
-
-  public void testListenMaskedManagerEvents()
-  throws Exception
-  {
-    runTest( new MercuryEvent.EventMask(EventTypeEnum.remoteRepository)
-            , null
-            , 0
-            , THREAD_COUNT * EventFrameworkTest.EVENT_COUNT
-       );
-  }
-
-  public void testListenMismatchedMaskEvents()
-  throws Exception
-  {
-    runTest( new MercuryEvent.EventMask(EventTypeEnum.remoteRepository)
-            , new MercuryEvent.EventMask(EventTypeEnum.localRepository)
-            , 0
-            , 0
-          );
-  }
-  //-------------------------------------------------------------------------------------------------------------------------------
-  private void runTest( MercuryEvent.EventMask emMask, MercuryEvent.EventMask listenerMask, int expectedLocal, int expectedRemote )
-  throws Exception
-  {
-    em = new EventManager( emMask );
-    
-    listener = new Listener( listenerMask  );
-    
-    em.register( listener );
-
-    for( int i=0; i<THREAD_COUNT; i++ )
-    {
-      es.execute( new Generator( em, EventTypeEnum.localRepository, ""+i ) );
-    }
-
-    for( int i=0; i<THREAD_COUNT; i++ )
-    {
-      es.execute( new Generator( em, EventTypeEnum.remoteRepository, ""+i ) );
-    }
-    
-    es.awaitTermination( 2, TimeUnit.SECONDS );
-    
-    assertEquals( expectedLocal, listener.localRepoCount );
-    assertEquals( expectedRemote, listener.remoteRepoCount );
-  }
+    static final int THREAD_COUNT = 5;
+
+    static final int EVENT_COUNT = 10;
+
+    ExecutorService es;
+
+    EventManager em;
+
+    Listener listener;
+
+    @Override
+    protected void setUp()
+        throws Exception
+    {
+        es = Executors.newFixedThreadPool( THREAD_COUNT );
+    }
+
+    public void testListenAllEvents()
+        throws Exception
+    {
+        runTest( null, null, THREAD_COUNT * EventFrameworkTest.EVENT_COUNT, THREAD_COUNT
+            * EventFrameworkTest.EVENT_COUNT );
+    }
+
+    public void testListenMaskedListenerEvents()
+        throws Exception
+    {
+        runTest( null, new MercuryEvent.EventMask( EventTypeEnum.localRepository ), THREAD_COUNT
+            * EventFrameworkTest.EVENT_COUNT, 0 );
+    }
+
+    public void testListenMaskedManagerEvents()
+        throws Exception
+    {
+        runTest( new MercuryEvent.EventMask( EventTypeEnum.remoteRepository ), null, 0, THREAD_COUNT
+            * EventFrameworkTest.EVENT_COUNT );
+    }
+
+    public void testListenMismatchedMaskEvents()
+        throws Exception
+    {
+        runTest( new MercuryEvent.EventMask( EventTypeEnum.remoteRepository ),
+                 new MercuryEvent.EventMask( EventTypeEnum.localRepository ), 0, 0 );
+    }
+
+    // -------------------------------------------------------------------------------------------------------------------------------
+    private void runTest( MercuryEvent.EventMask emMask, MercuryEvent.EventMask listenerMask, int expectedLocal,
+                          int expectedRemote )
+        throws Exception
+    {
+        em = new EventManager( emMask );
+
+        listener = new Listener( listenerMask );
+
+        em.register( listener );
+
+        for ( int i = 0; i < THREAD_COUNT; i++ )
+        {
+            es.execute( new Generator( em, EventTypeEnum.localRepository, "" + i ) );
+        }
+
+        for ( int i = 0; i < THREAD_COUNT; i++ )
+        {
+            es.execute( new Generator( em, EventTypeEnum.remoteRepository, "" + i ) );
+        }
+
+        es.awaitTermination( 2, TimeUnit.SECONDS );
+
+        assertEquals( expectedLocal, listener.localRepoCount );
+        assertEquals( expectedRemote, listener.remoteRepoCount );
+    }
 }
 
-//=====================  helper classes  =====================
+// ===================== helper classes =====================
 class Listener
-implements MercuryEventListener
+    implements MercuryEventListener
 {
-  MercuryEvent.EventMask _mask;
-  
-  int localRepoCount = 0;
-  
-  int remoteRepoCount = 0;
-  
-  public Listener( MercuryEvent.EventMask mask )
-  {
-    _mask = mask;
-  }
-
-  public void fire( MercuryEvent event )
-  {
-//    System.out.println( EventManager.toString( event ) );
-//    System.out.flush();
-    
-    if( event.getType().equals( EventTypeEnum.localRepository ) )
-      ++localRepoCount;
-    else
-      if( event.getType().equals( EventTypeEnum.remoteRepository ) )
-        ++remoteRepoCount;
-  }
-
-  public EventMask getMask()
-  {
-    return _mask;
-  }
-  
+    MercuryEvent.EventMask _mask;
+
+    int localRepoCount = 0;
+
+    int remoteRepoCount = 0;
+
+    public Listener( MercuryEvent.EventMask mask )
+    {
+        _mask = mask;
+    }
+
+    public void fire( MercuryEvent event )
+    {
+        // System.out.println( EventManager.toString( event ) );
+        // System.out.flush();
+
+        if ( event.getType().equals( EventTypeEnum.localRepository ) )
+            ++localRepoCount;
+        else if ( event.getType().equals( EventTypeEnum.remoteRepository ) )
+            ++remoteRepoCount;
+    }
+
+    public EventMask getMask()
+    {
+        return _mask;
+    }
+
 }
 
 class Generator
-implements Runnable, EventGenerator
+    implements Runnable, EventGenerator
 {
-  
-  EventManager _eventManager;
-  
-  String _msg;
-  
-  EventTypeEnum _myType;
-  
-  public Generator( EventManager em, EventTypeEnum type, String msg  )
-  {
-    _eventManager = em;
-    _msg = msg;
-    _myType = type;
-  }
-  
-  public void run()
-  {
-    for( int i=0; i< EventFrameworkTest.EVENT_COUNT; i++ )
-      try
-      {
-        GenericEvent event = new GenericEvent( _myType, _msg );
-        Thread.sleep( (int)(100.0*Math.random()) );
-        event.stop();
-        _eventManager.fireEvent( event );
-      }
-      catch( InterruptedException e )
-      {
-        return;
-      }
-  }
-
-  public void register( MercuryEventListener listener )
-  {
-    if( _eventManager == null )
-      _eventManager = new EventManager();
-      
-    _eventManager.register( listener );
-  }
-
-  public void unRegister( MercuryEventListener listener )
-  {
-    if( _eventManager != null )
-      _eventManager.unRegister( listener );
-  }
-  
-  public void setEventManager( EventManager eventManager )
-  {
-    if( _eventManager == null )
-      _eventManager = eventManager;
-    else
-      _eventManager.getListeners().addAll( eventManager.getListeners() );
-      
-  }
-}
 
+    EventManager _eventManager;
+
+    String _msg;
+
+    EventTypeEnum _myType;
+
+    public Generator( EventManager em, EventTypeEnum type, String msg )
+    {
+        _eventManager = em;
+        _msg = msg;
+        _myType = type;
+    }
+
+    public void run()
+    {
+        for ( int i = 0; i < EventFrameworkTest.EVENT_COUNT; i++ )
+            try
+            {
+                GenericEvent event = new GenericEvent( _myType, _msg );
+                Thread.sleep( (int) ( 100.0 * Math.random() ) );
+                event.stop();
+                _eventManager.fireEvent( event );
+            }
+            catch ( InterruptedException e )
+            {
+                return;
+            }
+    }
+
+    public void register( MercuryEventListener listener )
+    {
+        if ( _eventManager == null )
+            _eventManager = new EventManager();
+
+        _eventManager.register( listener );
+    }
+
+    public void unRegister( MercuryEventListener listener )
+    {
+        if ( _eventManager != null )
+            _eventManager.unRegister( listener );
+    }
+
+    public void setEventManager( EventManager eventManager )
+    {
+        if ( _eventManager == null )
+            _eventManager = eventManager;
+        else
+            _eventManager.getListeners().addAll( eventManager.getListeners() );
+
+    }
+}

Modified: maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/metadata/AbstractSimpleTreeTest.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/metadata/AbstractSimpleTreeTest.java?rev=769199&r1=769198&r2=769199&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/metadata/AbstractSimpleTreeTest.java (original)
+++ maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/metadata/AbstractSimpleTreeTest.java Mon Apr 27 23:12:25 2009
@@ -24,38 +24,46 @@
 import org.apache.maven.mercury.artifact.MetadataTreeNode;
 
 public abstract class AbstractSimpleTreeTest
-extends TestCase
+    extends TestCase
 {
-  //       b:b:1
-  //      / 
-  // a:a:1       b:b:2
-  //    \     /
-  //     c:c:1
-  //          \ b:b:1
-  
-  ArtifactMetadata mdaa1 = new ArtifactMetadata("a:a:1");
-  ArtifactMetadata mdbb1 = new ArtifactMetadata("b:b:1");
-  ArtifactMetadata mdbb2 = new ArtifactMetadata("b:b:2");
-  ArtifactMetadata mdcc1 = new ArtifactMetadata("c:c:1");
-  
-  MetadataTreeNode aa1;
-  MetadataTreeNode bb1;
-  MetadataTreeNode cc1;
-  MetadataTreeNode cc1bb1;
-  MetadataTreeNode cc1bb2;
-  
-  @Override
-  protected void setUp() throws Exception
-  {
-    aa1 = new MetadataTreeNode( mdaa1, null, mdaa1 );
-    bb1 = new MetadataTreeNode( mdbb1, aa1, mdbb1 );
-    aa1.addChild(bb1);
-    cc1 = new MetadataTreeNode( mdcc1, aa1, mdcc1 );
-    aa1.addChild(cc1);
-    cc1bb1 = new MetadataTreeNode( mdbb1, cc1, mdbb1 );
-    cc1.addChild( cc1bb1 );
-    cc1bb2 = new MetadataTreeNode( mdbb2, cc1, mdbb2 );
-    cc1.addChild( cc1bb2 );
-  }
+    // b:b:1
+    // /
+    // a:a:1 b:b:2
+    // \ /
+    // c:c:1
+    // \ b:b:1
+
+    ArtifactMetadata mdaa1 = new ArtifactMetadata( "a:a:1" );
+
+    ArtifactMetadata mdbb1 = new ArtifactMetadata( "b:b:1" );
+
+    ArtifactMetadata mdbb2 = new ArtifactMetadata( "b:b:2" );
+
+    ArtifactMetadata mdcc1 = new ArtifactMetadata( "c:c:1" );
+
+    MetadataTreeNode aa1;
+
+    MetadataTreeNode bb1;
+
+    MetadataTreeNode cc1;
+
+    MetadataTreeNode cc1bb1;
+
+    MetadataTreeNode cc1bb2;
+
+    @Override
+    protected void setUp()
+        throws Exception
+    {
+        aa1 = new MetadataTreeNode( mdaa1, null, mdaa1 );
+        bb1 = new MetadataTreeNode( mdbb1, aa1, mdbb1 );
+        aa1.addChild( bb1 );
+        cc1 = new MetadataTreeNode( mdcc1, aa1, mdcc1 );
+        aa1.addChild( cc1 );
+        cc1bb1 = new MetadataTreeNode( mdbb1, cc1, mdbb1 );
+        cc1.addChild( cc1bb1 );
+        cc1bb2 = new MetadataTreeNode( mdbb2, cc1, mdbb2 );
+        cc1.addChild( cc1bb2 );
+    }
 
 }

Modified: maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/metadata/ClassicDepthComparatorTest.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/metadata/ClassicDepthComparatorTest.java?rev=769199&r1=769198&r2=769199&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/metadata/ClassicDepthComparatorTest.java (original)
+++ maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/metadata/ClassicDepthComparatorTest.java Mon Apr 27 23:12:25 2009
@@ -23,43 +23,43 @@
 import org.apache.maven.mercury.artifact.MetadataTreeNode;
 
 public class ClassicDepthComparatorTest
-extends AbstractSimpleTreeTest
+    extends AbstractSimpleTreeTest
 {
-  
-  @Override
-  protected void setUp()
-  throws Exception
-  {
-    super.setUp();
-  }
-
-  public void testNearestBest()
-  {
-    Comparator<MetadataTreeNode> comparator = new ClassicDepthComparator();
-    
-    int res = comparator.compare( bb1, cc1bb1 );
-    
-    assertTrue( "bb1 should be closer'n cc1bb1",  res > 0 );
-    
-    res = comparator.compare( bb1, cc1 );
-    assertTrue( "bb1 should be the same as cc1",  res == 0 );
-    
-    res = comparator.compare( cc1, aa1 );
-    assertTrue( "cc1 should be deeper'n aa11",  res < 0 );
-  }
-
-  public void testFarestBest()
-  {
-    Comparator<MetadataTreeNode> comparator = new ClassicDepthComparator(false);
-    
-    int res = comparator.compare( bb1, cc1bb1 );
-    
-    assertTrue( "bb1 should be closer'n cc1bb1",  res < 0 );
-    
-    res = comparator.compare( bb1, cc1 );
-    assertTrue( "bb1 should be the same as cc1",  res == 0 );
-    
-    res = comparator.compare( cc1, aa1 );
-    assertTrue( "cc1 should be deeper'n aa11",  res > 0 );
-  }
+
+    @Override
+    protected void setUp()
+        throws Exception
+    {
+        super.setUp();
+    }
+
+    public void testNearestBest()
+    {
+        Comparator<MetadataTreeNode> comparator = new ClassicDepthComparator();
+
+        int res = comparator.compare( bb1, cc1bb1 );
+
+        assertTrue( "bb1 should be closer'n cc1bb1", res > 0 );
+
+        res = comparator.compare( bb1, cc1 );
+        assertTrue( "bb1 should be the same as cc1", res == 0 );
+
+        res = comparator.compare( cc1, aa1 );
+        assertTrue( "cc1 should be deeper'n aa11", res < 0 );
+    }
+
+    public void testFarestBest()
+    {
+        Comparator<MetadataTreeNode> comparator = new ClassicDepthComparator( false );
+
+        int res = comparator.compare( bb1, cc1bb1 );
+
+        assertTrue( "bb1 should be closer'n cc1bb1", res < 0 );
+
+        res = comparator.compare( bb1, cc1 );
+        assertTrue( "bb1 should be the same as cc1", res == 0 );
+
+        res = comparator.compare( cc1, aa1 );
+        assertTrue( "cc1 should be deeper'n aa11", res > 0 );
+    }
 }

Modified: maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/metadata/ClassicVersionComparatorTest.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/metadata/ClassicVersionComparatorTest.java?rev=769199&r1=769198&r2=769199&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/metadata/ClassicVersionComparatorTest.java (original)
+++ maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/metadata/ClassicVersionComparatorTest.java Mon Apr 27 23:12:25 2009
@@ -22,39 +22,38 @@
 
 import org.apache.maven.mercury.artifact.MetadataTreeNode;
 
-
 public class ClassicVersionComparatorTest
-extends AbstractSimpleTreeTest
+    extends AbstractSimpleTreeTest
 {
-  
-  @Override
-  protected void setUp()
-  throws Exception
-  {
-    super.setUp();
-  }
-
-  public void testNewestBest()
-  {
-    Comparator<MetadataTreeNode> comparator = new ClassicVersionComparator();
-    
-    int res = comparator.compare( bb1, cc1bb1 );
-    
-    assertTrue( "bb1 should be the same cc1bb1",  res == 0 );
-    
-    res = comparator.compare( bb1, cc1bb2 );
-    assertTrue( "bb1 should be older'n cc1bb2",  res < 0 );
-  }
-
-  public void testOldestBest()
-  {
-    Comparator<MetadataTreeNode> comparator = new ClassicVersionComparator(false);
-    
-    int res = comparator.compare( bb1, cc1bb1 );
-    
-    assertTrue( "bb1 should be the same cc1bb1",  res == 0 );
-    
-    res = comparator.compare( bb1, cc1bb2 );
-    assertTrue( "bb1 should be older'n cc1bb2",  res > 0 );
-  }
+
+    @Override
+    protected void setUp()
+        throws Exception
+    {
+        super.setUp();
+    }
+
+    public void testNewestBest()
+    {
+        Comparator<MetadataTreeNode> comparator = new ClassicVersionComparator();
+
+        int res = comparator.compare( bb1, cc1bb1 );
+
+        assertTrue( "bb1 should be the same cc1bb1", res == 0 );
+
+        res = comparator.compare( bb1, cc1bb2 );
+        assertTrue( "bb1 should be older'n cc1bb2", res < 0 );
+    }
+
+    public void testOldestBest()
+    {
+        Comparator<MetadataTreeNode> comparator = new ClassicVersionComparator( false );
+
+        int res = comparator.compare( bb1, cc1bb1 );
+
+        assertTrue( "bb1 should be the same cc1bb1", res == 0 );
+
+        res = comparator.compare( bb1, cc1bb2 );
+        assertTrue( "bb1 should be older'n cc1bb2", res > 0 );
+    }
 }

Modified: maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/metadata/DependencyTreeBuilderTest.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/metadata/DependencyTreeBuilderTest.java?rev=769199&r1=769198&r2=769199&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/metadata/DependencyTreeBuilderTest.java (original)
+++ maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/metadata/DependencyTreeBuilderTest.java Mon Apr 27 23:12:25 2009
@@ -34,276 +34,288 @@
 import org.apache.maven.mercury.repository.local.m2.LocalRepositoryM2;
 import org.apache.maven.mercury.repository.local.m2.MetadataProcessorMock;
 
-
 /**
- * 
  * @author Oleg Gusakov
  * @version $Id$
  */
 public class DependencyTreeBuilderTest
-extends TestCase
+    extends TestCase
 {
-  private static final IMercuryLogger LOG = MercuryLoggerManager.getLogger( DependencyTreeBuilderTest.class ); 
-  
-//  ArtifactMetadata md = new ArtifactMetadata( "pmd:pmd:3.9" );
-//  File repo = new File("./target/test-classes/localRepo");
-
-  File repoDir = new File("./target/test-classes/controlledRepoSat");
-  
-  DependencyBuilder mt;
-  LocalRepositoryM2 localRepo;
-  List<Repository> reps;
-  DependencyProcessor processor;
-  
-  //----------------------------------------------------------------------------------------------
-  @Override
-  protected void setUp()
-  throws Exception
-  {
-    processor = new MetadataProcessorMock();
-    localRepo = new LocalRepositoryM2( "local", repoDir, new MetadataProcessorMock() );
-    
-    reps = new ArrayList<Repository>(4);
-    reps.add(  localRepo );
-
-    mt = new DependencyTreeBuilder( reps, null, null, null );
-  }
-  //----------------------------------------------------------------------------------------------
-  @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 testCircularDependency()
-  {
-    ArtifactMetadata circularMd = new ArtifactMetadata( "a:a:1" );
-    try
-    {
-      mt.buildTree( circularMd, null );
-    }
-    catch (MetadataTreeException e)
-    {
-      assertTrue( "expected circular dependency exception, but got "+e.getClass().getName()
-          , e instanceof MetadataTreeCircularDependencyException
-      );
-      return;
-    }
-    fail("circular dependency was not detected");
-  }
-  //----------------------------------------------------------------------------------------------
-  public void testBuildTree()
-  throws MetadataTreeException
-  {
-    ArtifactMetadata md = new ArtifactMetadata( "a:a:2" );
-    
-    MetadataTreeNode root = mt.buildTree( md, null );
-    assertNotNull( "null tree built", root );
-    assertEquals( "wrong tree size", 4, root.countNodes() );
-  }
-  //----------------------------------------------------------------------------------------------
-  public void testResolveConflicts()
-  throws MetadataTreeException
-  {
-    ArtifactMetadata md = new ArtifactMetadata( "a:a:2" );
-    
-    MetadataTreeNode root = mt.buildTree( md, ArtifactScopeEnum.compile );
-    assertNotNull( "null tree built", root );
-    assertEquals( "wrong tree size", 4, root.countNodes() );
-
-    List<ArtifactMetadata> res = mt.resolveConflicts( root );
-    assertNotNull( "null resolution", res );
-    assertEquals( "wrong tree size", 3, res.size() );
-    
-    assertTrue( "no a:a:2 in the result", assertHasArtifact( res, "a:a:2" ) );
-    assertTrue( "no b:b:2 in the result", assertHasArtifact( res, "b:b:2" ) );
-    assertTrue( "no c:c:2 in the result", assertHasArtifact( res, "c:c:2" ) );
-    
-    System.out.println( "testResolveConflicts: " + res );
-  }
-  //----------------------------------------------------------------------------------------------
-  public void testResolveScopedConflicts()
-  throws MetadataTreeException
-  {
-    ArtifactMetadata md = new ArtifactMetadata( "a:a:4" );
-    
-    MetadataTreeNode root = mt.buildTree( md, ArtifactScopeEnum.compile );
-    assertNotNull( "null tree built", root );
-    assertEquals( "wrong tree size", 3, root.countNodes() );
-
-    List<ArtifactMetadata> res = mt.resolveConflicts( root );
-    assertNotNull( "null resolution", res );
-    assertEquals( "wrong tree size", 2, res.size() );
-
-    System.out.println( "testResolveScopedConflicts: " + res );
-    
-    assertTrue( "no a:a:4 in the result", assertHasArtifact( res, "a:a:4" ) );
-    assertTrue( "no c:c:3 in the result", assertHasArtifact( res, "c:c:3" ) );
-    
-  }
-  //----------------------------------------------------------------------------------------------
-  public void testResolveScopedConflictsWithFiltering()
-  throws MetadataTreeException
-  {
-    String title = "testResolveScopedConflictsWithFiltering";
-    ArtifactMetadata md = new ArtifactMetadata( "a:a:4" );
-    
-    List<ArtifactMetadata> exclusions = new ArrayList<ArtifactMetadata>();
-    exclusions.add( new ArtifactMetadata("c:c:3") );
-    md.setExclusions( exclusions );
-    
-    MetadataTreeNode root = mt.buildTree( md, ArtifactScopeEnum.compile );
-    assertNotNull( "null tree built", root );
-    assertEquals( "wrong tree size", 2, root.countNodes() );
-
-    List<ArtifactMetadata> res = mt.resolveConflicts( root );
-    assertNotNull( "null resolution", res );
-    assertEquals( "wrong tree size", 2, res.size() );
-
-    System.out.println( title+": " + res );
-    
-    assertTrue( assertHasArtifact( res, "a:a:4" ) );
-    assertFalse( assertHasArtifact( res, "c:c:3" ) );
-    
-  }
-  //----------------------------------------------------------------------------------------------
-  public void testResolveScopedConflictsWithFilteringOne()
-  throws MetadataTreeException
-  {
-    String title = "testResolveScopedConflictsWithFilteringOne";
-    ArtifactMetadata md = new ArtifactMetadata( "a:a:2" );
-    
-    List<ArtifactMetadata> exclusions = new ArrayList<ArtifactMetadata>();
-    exclusions.add( new ArtifactMetadata("c:c:2") );
-    md.setExclusions( exclusions );
-    
-    MetadataTreeNode root = mt.buildTree( md, ArtifactScopeEnum.compile );
-    assertNotNull( "null tree built", root );
-    assertEquals( "wrong tree size", 3, root.countNodes() );
-
-    List<ArtifactMetadata> res = mt.resolveConflicts( root );
-    assertNotNull( "null resolution", res );
-    assertEquals( "wrong tree size", 2, res.size() );
-    
-    assertTrue( "no a:a:2 in the result", assertHasArtifact( res, "a:a:2" ) );
-    assertTrue( "no b:b:2 in the result", assertHasArtifact( res, "b:b:2" ) );
-    assertFalse( "no c:c:2 in the result", assertHasArtifact( res, "c:c:2" ) );
-    
-    System.out.println( title+": " + res );
-    
-  }
-  //----------------------------------------------------------------------------------------------
-  public void testResolveScopedConflictsWithFilteringTwo()
-  throws MetadataTreeException
-  {
-    String title = "testResolveScopedConflictsWithFilteringTwo";
-    ArtifactMetadata md = new ArtifactMetadata( "a:a:2" );
-    
-    List<ArtifactMetadata> exclusions = new ArrayList<ArtifactMetadata>();
-    exclusions.add( new ArtifactMetadata("b:b:2") );
-    exclusions.add( new ArtifactMetadata("c:c:2") );
-    md.setExclusions( exclusions );
-    
-    MetadataTreeNode root = mt.buildTree( md, ArtifactScopeEnum.compile );
-    assertNotNull( "null tree built", root );
-    assertEquals( "wrong tree size", 2, root.countNodes() );
-
-    List<ArtifactMetadata> res = mt.resolveConflicts( root );
-    assertNotNull( "null resolution", res );
-    assertEquals( "wrong tree size", 2, res.size() );
-    
-    assertTrue( "no a:a:2 in the result", assertHasArtifact( res, "a:a:2" ) );
-    assertTrue( "no b:b:2 in the result", assertHasArtifact( res, "b:b:1" ) );
-    assertFalse( "no b:b:2 in the result", assertHasArtifact( res, "b:b:2" ) );
-    assertFalse( "no c:c:2 in the result", assertHasArtifact( res, "c:c:2" ) );
-    
-    System.out.println( title+": " + res );
-    
-  }
-  //----------------------------------------------------------------------------------------------
-  public void testResolveScopedConflictsWithFilteringAll()
-  throws MetadataTreeException
-  {
-    String title = "testResolveScopedConflictsWithFilteringTwo";
-    ArtifactMetadata md = new ArtifactMetadata( "a:a:2" );
-    
-    List<ArtifactMetadata> exclusions = new ArrayList<ArtifactMetadata>();
-    exclusions.add( new ArtifactMetadata("b:b:1") );
-    exclusions.add( new ArtifactMetadata("b:b:2") );
-    exclusions.add( new ArtifactMetadata("c:c:2") );
-    md.setExclusions( exclusions );
-    
-    MetadataTreeNode root = mt.buildTree( md, ArtifactScopeEnum.compile );
-    assertNotNull( "null tree built", root );
-    assertEquals( "wrong tree size", 1, root.countNodes() );
-
-    List<ArtifactMetadata> res = mt.resolveConflicts( root );
-    assertNotNull( "null resolution", res );
-    assertEquals( "wrong tree size", 1, res.size() );
-    
-    assertTrue( "no a:a:2 in the result", assertHasArtifact( res, "a:a:2" ) );
-    assertFalse( "no b:b:1 in the result", assertHasArtifact( res, "b:b:1" ) );
-    assertFalse( "no b:b:2 in the result", assertHasArtifact( res, "b:b:2" ) );
-    assertFalse( "no c:c:2 in the result", assertHasArtifact( res, "c:c:2" ) );
-    
-    System.out.println( title+": " + res );
-    
-  }
-  //----------------------------------------------------------------------------------------------
-  public void testResolveBigConflicts()
-  throws MetadataTreeException
-  {
-    ArtifactMetadata md = new ArtifactMetadata( "a:a:3" );
-    
-    MetadataTreeNode root = mt.buildTree( md, ArtifactScopeEnum.compile );
-    assertNotNull( "null tree built", root );
-    assertTrue( "wrong tree size, expected gte 4", 4 <= root.countNodes() );
-
-    List<ArtifactMetadata> res = mt.resolveConflicts( root );
-    assertNotNull( "null resolution", res );
-
-System.out.println("BigRes: "+res);    
-    
-    assertEquals( "wrong tree size", 3, res.size() );
-    
-//    assertTrue( "no a:a:2 in the result", assertHasArtifact( res, "a:a:2" ) );
-//    assertTrue( "no b:b:1 in the result", assertHasArtifact( res, "b:b:1" ) );
-//    assertTrue( "no c:c:2 in the result", assertHasArtifact( res, "c:c:2" ) );
-  }
-  //----------------------------------------------------------------------------------------------
-  public void testResolveMultiple()
-  throws MetadataTreeException
-  {
-    ArtifactMetadata md1 = new ArtifactMetadata( "a:a:3" );
-    ArtifactMetadata md2 = new ArtifactMetadata( "a:a:4" );
-    
-    MetadataTreeNode root = mt.buildTree( md1, ArtifactScopeEnum.compile );
-    assertNotNull( "null tree built", root );
-    assertTrue( "wrong tree size, expected gte 4", 4 <= root.countNodes() );
-
-    List<ArtifactMetadata> res = mt.resolveConflicts( root );
-    assertNotNull( "null resolution", res );
-
-    System.out.println("BigRes: "+res);    
-    
-    assertEquals( "wrong tree size", 3, res.size() );
-    
-//    assertTrue( "no a:a:2 in the result", assertHasArtifact( res, "a:a:2" ) );
-//    assertTrue( "no b:b:1 in the result", assertHasArtifact( res, "b:b:1" ) );
-//    assertTrue( "no c:c:2 in the result", assertHasArtifact( res, "c:c:2" ) );
-  }
-  //----------------------------------------------------------------------------------------------
-  //----------------------------------------------------------------------------------------------
+    private static final IMercuryLogger LOG = MercuryLoggerManager.getLogger( DependencyTreeBuilderTest.class );
+
+    // ArtifactMetadata md = new ArtifactMetadata( "pmd:pmd:3.9" );
+    // File repo = new File("./target/test-classes/localRepo");
+
+    File repoDir = new File( "./target/test-classes/controlledRepoSat" );
+
+    DependencyBuilder mt;
+
+    LocalRepositoryM2 localRepo;
+
+    List<Repository> reps;
+
+    DependencyProcessor processor;
+
+    // ----------------------------------------------------------------------------------------------
+    @Override
+    protected void setUp()
+        throws Exception
+    {
+        processor = new MetadataProcessorMock();
+        localRepo = new LocalRepositoryM2( "local", repoDir, new MetadataProcessorMock() );
+
+        reps = new ArrayList<Repository>( 4 );
+        reps.add( localRepo );
+
+        mt = new DependencyTreeBuilder( reps, null, null, null );
+    }
+
+    // ----------------------------------------------------------------------------------------------
+    @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 testCircularDependency()
+    {
+        ArtifactMetadata circularMd = new ArtifactMetadata( "a:a:1" );
+        try
+        {
+            mt.buildTree( circularMd, null );
+        }
+        catch ( MetadataTreeException e )
+        {
+            assertTrue( "expected circular dependency exception, but got " + e.getClass().getName(),
+                        e instanceof MetadataTreeCircularDependencyException );
+            return;
+        }
+        fail( "circular dependency was not detected" );
+    }
+
+    // ----------------------------------------------------------------------------------------------
+    public void testBuildTree()
+        throws MetadataTreeException
+    {
+        ArtifactMetadata md = new ArtifactMetadata( "a:a:2" );
+
+        MetadataTreeNode root = mt.buildTree( md, null );
+        assertNotNull( "null tree built", root );
+        assertEquals( "wrong tree size", 4, root.countNodes() );
+    }
+
+    // ----------------------------------------------------------------------------------------------
+    public void testResolveConflicts()
+        throws MetadataTreeException
+    {
+        ArtifactMetadata md = new ArtifactMetadata( "a:a:2" );
+
+        MetadataTreeNode root = mt.buildTree( md, ArtifactScopeEnum.compile );
+        assertNotNull( "null tree built", root );
+        assertEquals( "wrong tree size", 4, root.countNodes() );
+
+        List<ArtifactMetadata> res = mt.resolveConflicts( root );
+        assertNotNull( "null resolution", res );
+        assertEquals( "wrong tree size", 3, res.size() );
+
+        assertTrue( "no a:a:2 in the result", assertHasArtifact( res, "a:a:2" ) );
+        assertTrue( "no b:b:2 in the result", assertHasArtifact( res, "b:b:2" ) );
+        assertTrue( "no c:c:2 in the result", assertHasArtifact( res, "c:c:2" ) );
+
+        System.out.println( "testResolveConflicts: " + res );
+    }
+
+    // ----------------------------------------------------------------------------------------------
+    public void testResolveScopedConflicts()
+        throws MetadataTreeException
+    {
+        ArtifactMetadata md = new ArtifactMetadata( "a:a:4" );
+
+        MetadataTreeNode root = mt.buildTree( md, ArtifactScopeEnum.compile );
+        assertNotNull( "null tree built", root );
+        assertEquals( "wrong tree size", 3, root.countNodes() );
+
+        List<ArtifactMetadata> res = mt.resolveConflicts( root );
+        assertNotNull( "null resolution", res );
+        assertEquals( "wrong tree size", 2, res.size() );
+
+        System.out.println( "testResolveScopedConflicts: " + res );
+
+        assertTrue( "no a:a:4 in the result", assertHasArtifact( res, "a:a:4" ) );
+        assertTrue( "no c:c:3 in the result", assertHasArtifact( res, "c:c:3" ) );
+
+    }
+
+    // ----------------------------------------------------------------------------------------------
+    public void testResolveScopedConflictsWithFiltering()
+        throws MetadataTreeException
+    {
+        String title = "testResolveScopedConflictsWithFiltering";
+        ArtifactMetadata md = new ArtifactMetadata( "a:a:4" );
+
+        List<ArtifactMetadata> exclusions = new ArrayList<ArtifactMetadata>();
+        exclusions.add( new ArtifactMetadata( "c:c:3" ) );
+        md.setExclusions( exclusions );
+
+        MetadataTreeNode root = mt.buildTree( md, ArtifactScopeEnum.compile );
+        assertNotNull( "null tree built", root );
+        assertEquals( "wrong tree size", 2, root.countNodes() );
+
+        List<ArtifactMetadata> res = mt.resolveConflicts( root );
+        assertNotNull( "null resolution", res );
+        assertEquals( "wrong tree size", 2, res.size() );
+
+        System.out.println( title + ": " + res );
+
+        assertTrue( assertHasArtifact( res, "a:a:4" ) );
+        assertFalse( assertHasArtifact( res, "c:c:3" ) );
+
+    }
+
+    // ----------------------------------------------------------------------------------------------
+    public void testResolveScopedConflictsWithFilteringOne()
+        throws MetadataTreeException
+    {
+        String title = "testResolveScopedConflictsWithFilteringOne";
+        ArtifactMetadata md = new ArtifactMetadata( "a:a:2" );
+
+        List<ArtifactMetadata> exclusions = new ArrayList<ArtifactMetadata>();
+        exclusions.add( new ArtifactMetadata( "c:c:2" ) );
+        md.setExclusions( exclusions );
+
+        MetadataTreeNode root = mt.buildTree( md, ArtifactScopeEnum.compile );
+        assertNotNull( "null tree built", root );
+        assertEquals( "wrong tree size", 3, root.countNodes() );
+
+        List<ArtifactMetadata> res = mt.resolveConflicts( root );
+        assertNotNull( "null resolution", res );
+        assertEquals( "wrong tree size", 2, res.size() );
+
+        assertTrue( "no a:a:2 in the result", assertHasArtifact( res, "a:a:2" ) );
+        assertTrue( "no b:b:2 in the result", assertHasArtifact( res, "b:b:2" ) );
+        assertFalse( "no c:c:2 in the result", assertHasArtifact( res, "c:c:2" ) );
+
+        System.out.println( title + ": " + res );
+
+    }
+
+    // ----------------------------------------------------------------------------------------------
+    public void testResolveScopedConflictsWithFilteringTwo()
+        throws MetadataTreeException
+    {
+        String title = "testResolveScopedConflictsWithFilteringTwo";
+        ArtifactMetadata md = new ArtifactMetadata( "a:a:2" );
+
+        List<ArtifactMetadata> exclusions = new ArrayList<ArtifactMetadata>();
+        exclusions.add( new ArtifactMetadata( "b:b:2" ) );
+        exclusions.add( new ArtifactMetadata( "c:c:2" ) );
+        md.setExclusions( exclusions );
+
+        MetadataTreeNode root = mt.buildTree( md, ArtifactScopeEnum.compile );
+        assertNotNull( "null tree built", root );
+        assertEquals( "wrong tree size", 2, root.countNodes() );
+
+        List<ArtifactMetadata> res = mt.resolveConflicts( root );
+        assertNotNull( "null resolution", res );
+        assertEquals( "wrong tree size", 2, res.size() );
+
+        assertTrue( "no a:a:2 in the result", assertHasArtifact( res, "a:a:2" ) );
+        assertTrue( "no b:b:2 in the result", assertHasArtifact( res, "b:b:1" ) );
+        assertFalse( "no b:b:2 in the result", assertHasArtifact( res, "b:b:2" ) );
+        assertFalse( "no c:c:2 in the result", assertHasArtifact( res, "c:c:2" ) );
+
+        System.out.println( title + ": " + res );
+
+    }
+
+    // ----------------------------------------------------------------------------------------------
+    public void testResolveScopedConflictsWithFilteringAll()
+        throws MetadataTreeException
+    {
+        String title = "testResolveScopedConflictsWithFilteringTwo";
+        ArtifactMetadata md = new ArtifactMetadata( "a:a:2" );
+
+        List<ArtifactMetadata> exclusions = new ArrayList<ArtifactMetadata>();
+        exclusions.add( new ArtifactMetadata( "b:b:1" ) );
+        exclusions.add( new ArtifactMetadata( "b:b:2" ) );
+        exclusions.add( new ArtifactMetadata( "c:c:2" ) );
+        md.setExclusions( exclusions );
+
+        MetadataTreeNode root = mt.buildTree( md, ArtifactScopeEnum.compile );
+        assertNotNull( "null tree built", root );
+        assertEquals( "wrong tree size", 1, root.countNodes() );
+
+        List<ArtifactMetadata> res = mt.resolveConflicts( root );
+        assertNotNull( "null resolution", res );
+        assertEquals( "wrong tree size", 1, res.size() );
+
+        assertTrue( "no a:a:2 in the result", assertHasArtifact( res, "a:a:2" ) );
+        assertFalse( "no b:b:1 in the result", assertHasArtifact( res, "b:b:1" ) );
+        assertFalse( "no b:b:2 in the result", assertHasArtifact( res, "b:b:2" ) );
+        assertFalse( "no c:c:2 in the result", assertHasArtifact( res, "c:c:2" ) );
+
+        System.out.println( title + ": " + res );
+
+    }
+
+    // ----------------------------------------------------------------------------------------------
+    public void testResolveBigConflicts()
+        throws MetadataTreeException
+    {
+        ArtifactMetadata md = new ArtifactMetadata( "a:a:3" );
+
+        MetadataTreeNode root = mt.buildTree( md, ArtifactScopeEnum.compile );
+        assertNotNull( "null tree built", root );
+        assertTrue( "wrong tree size, expected gte 4", 4 <= root.countNodes() );
+
+        List<ArtifactMetadata> res = mt.resolveConflicts( root );
+        assertNotNull( "null resolution", res );
+
+        System.out.println( "BigRes: " + res );
+
+        assertEquals( "wrong tree size", 3, res.size() );
+
+        // assertTrue( "no a:a:2 in the result", assertHasArtifact( res, "a:a:2" ) );
+        // assertTrue( "no b:b:1 in the result", assertHasArtifact( res, "b:b:1" ) );
+        // assertTrue( "no c:c:2 in the result", assertHasArtifact( res, "c:c:2" ) );
+    }
+
+    // ----------------------------------------------------------------------------------------------
+    public void testResolveMultiple()
+        throws MetadataTreeException
+    {
+        ArtifactMetadata md1 = new ArtifactMetadata( "a:a:3" );
+        ArtifactMetadata md2 = new ArtifactMetadata( "a:a:4" );
+
+        MetadataTreeNode root = mt.buildTree( md1, ArtifactScopeEnum.compile );
+        assertNotNull( "null tree built", root );
+        assertTrue( "wrong tree size, expected gte 4", 4 <= root.countNodes() );
+
+        List<ArtifactMetadata> res = mt.resolveConflicts( root );
+        assertNotNull( "null resolution", res );
+
+        System.out.println( "BigRes: " + res );
+
+        assertEquals( "wrong tree size", 3, res.size() );
+
+        // assertTrue( "no a:a:2 in the result", assertHasArtifact( res, "a:a:2" ) );
+        // assertTrue( "no b:b:1 in the result", assertHasArtifact( res, "b:b:1" ) );
+        // assertTrue( "no c:c:2 in the result", assertHasArtifact( res, "c:c:2" ) );
+    }
+    // ----------------------------------------------------------------------------------------------
+    // ----------------------------------------------------------------------------------------------
 }

Modified: maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/metadata/sat/DefaultSatSolverTest.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/metadata/sat/DefaultSatSolverTest.java?rev=769199&r1=769198&r2=769199&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/metadata/sat/DefaultSatSolverTest.java (original)
+++ maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/metadata/sat/DefaultSatSolverTest.java Mon Apr 27 23:12:25 2009
@@ -38,529 +38,453 @@
 public class DefaultSatSolverTest
     extends TestCase
 {
-  DefaultSatSolver ss;
-  String title;
-  
-  MetadataTreeNode tree;
-  
-  ArtifactMetadata a1 = new ArtifactMetadata("t:a:1");
-  ArtifactMetadata b1 = new ArtifactMetadata("t:b:1");
-  ArtifactMetadata b2 = new ArtifactMetadata("t:b:2");
-  ArtifactMetadata b3 = new ArtifactMetadata("t:b:3");
-  ArtifactMetadata c1 = new ArtifactMetadata("t:c:1");
-  ArtifactMetadata c2 = new ArtifactMetadata("t:c:2");
-
-  ArtifactMetadata d1 = new ArtifactMetadata("t:d:1");
-  
-  //----------------------------------------------------------------------
-  protected void setUp()
-  throws Exception
-  {
-    super.setUp();
-  }
-  //----------------------------------------------------------------------
-  public void testDedupe()
-  {
-    List<MetadataTreeNode> list = new ArrayList<MetadataTreeNode>();
-    
-    list.add(  new MetadataTreeNode( new ArtifactMetadata("a:a:1"), null, null ) );
-    list.add(  new MetadataTreeNode( new ArtifactMetadata("a:a:1"), null, null ) );
-    list.add(  new MetadataTreeNode( new ArtifactMetadata("a:a:1"), null, null ) );
-    list.add(  new MetadataTreeNode( new ArtifactMetadata("b:b:1"), null, null ) );
-    list.add(  new MetadataTreeNode( new ArtifactMetadata("b:b:1"), null, null ) );
-    list.add(  new MetadataTreeNode( new ArtifactMetadata("a:a:1"), null, null ) );
-    
-    DefaultSatSolver.removeDuplicateGAVs( list );
-    
-    System.out.println(list);
-    
-    assertEquals( 2, list.size() );
-  }
-  
-  
-  private int f( int a, int b )
-  {
-    return -a + b;
-  }
-  //----------------------------------------------------------------------
-  //       d:d:1 - c:c:[2,4)
-  //      / 
-  // a:a:1
-  //      \     
-  //       b:b:2 - c:c:1
-  //----------------------------------------------------------------------
-  public void testReNumeration()
-  throws SatException, IOException
-  {
-    title = "testReNumeration";
-    System.out.println("\n\n==========================\n"+title+"\n");
-    
-    MetadataTreeNode na1 = new MetadataTreeNode( a1, null, null )
-      .addQuery(d1)
-      .addQuery(b2)
-    ;
-    
-    ArtifactMetadata c2q = new ArtifactMetadata("t:c:[2,4)");
-    
-    MetadataTreeNode nd1 = new MetadataTreeNode( d1, na1, d1 )
-      .addQuery( c2q )
-    ;
-    MetadataTreeNode nb2 = new MetadataTreeNode( b2, na1, b2 )
-      .addQuery( c1 )
-    ;
-    
-    MetadataTreeNode nc2 = new MetadataTreeNode( c2, nd1, c2q );
-
-    MetadataTreeNode nc1 = new MetadataTreeNode( c1, nb2, c1 );
-    
-    na1
-      .addChild(nd1)
-      .addChild(nb2)
-    ;
-    
-    nd1
-      .addChild(nc2)
-    ;
-    
-    nb2
-      .addChild(nc1)
-    ;
-    
-    MetadataTreeNode.reNumber( na1, 1 );
-    
-    assertEquals( 1, na1.getId() );
-    
-    assertEquals( 2, nd1.getId() );
-    
-  }
-  //----------------------------------------------------------------------
-  public void testOptimization()
-  throws SatException
-  {
-    title = "optimization test";
-    System.out.println("\n\n==========================\n"+title+"\n");
-
-    //       b:b:1
-    //      / 
-    // a:a:1       b:b:2
-    //    \     /
-    //     c:c:1
-    //          \ b:b:1
-    
-    ArtifactMetadata mdaa1 = new ArtifactMetadata("a:a:1");
-    ArtifactMetadata mdbb1 = new ArtifactMetadata("b:b:1");
-    ArtifactMetadata mdbb2 = new ArtifactMetadata("b:b:2");
-    ArtifactMetadata mdcc1 = new ArtifactMetadata("c:c:1");
-    
-    MetadataTreeNode aa1;
-    MetadataTreeNode bb1;
-    MetadataTreeNode cc1;
-    MetadataTreeNode cc1bb1;
-    MetadataTreeNode cc1bb2;
-    
-    aa1 = new MetadataTreeNode( mdaa1, null, mdaa1 );
-    bb1 = new MetadataTreeNode( mdbb1, aa1, mdbb1 );
-    aa1.addChild(bb1);
-    cc1 = new MetadataTreeNode( mdcc1, aa1, mdcc1 );
-    aa1.addChild(cc1);
-    cc1bb1 = new MetadataTreeNode( mdbb1, cc1, mdbb1 );
-    cc1.addChild( cc1bb1 );
-    cc1bb2 = new MetadataTreeNode( mdbb2, cc1, mdbb2 );
-    cc1.addChild( cc1bb2 );
-    
-    ss = (DefaultSatSolver) DefaultSatSolver.create( aa1 );
-    
-    List< Comparator<MetadataTreeNode>> comparators = new ArrayList<Comparator<MetadataTreeNode>>(2);
-    comparators.add( new ClassicDepthComparator() );
-    comparators.add( new ClassicVersionComparator() );
-    
-    Map<String, List<MetadataTreeNode>> buckets = new HashMap<String, List<MetadataTreeNode>>(128);
-    DefaultSatSolver.fillBuckets( buckets, aa1 );
-    DefaultSatSolver.sortBuckets( buckets, comparators );
-
-    assertNotNull("no resulting map", buckets ); 
-    assertEquals( "bad map size", 3, buckets.size() ); 
-    
-    System.out.println("optimized buckets: "+buckets);
-    
-    List<MetadataTreeNode> bbl = buckets.get("b:b");
-    assertNotNull("no b:b list", bbl );
-    assertEquals( "bad b:b list size", 2, bbl.size() ); 
-    
-    MetadataTreeNode first = bbl.get(0);
-    assertNotNull("bad first element", first );
-    assertEquals( "bad first element's GAV", "b:b:1::jar", first.getMd().getGAV() );
-    assertEquals( "bad first element's depth", 1, first.getDepth() );
-    
-    MetadataTreeNode second = bbl.get(1);
-    assertNotNull("bad second element", second );
-    assertEquals( "bad second element's GAV", "b:b:2::jar", second.getMd().getGAV() );
-    assertEquals( "bad second element's depth", 2, second.getDepth() );
-  }
-  //----------------------------------------------------------------------
-  //
-  // a1
-  //    and (b1 or b2 or b3)
-  //    and ((c1 and b1) or (c2 and (b2 or b3))
-  //
-  //----------------------------------------------------------------------
-  public void testClassicResolution()
-  throws SatException
-  {
-    title = "simplest 3-node tree";
-    System.out.println("\n\n==========================\n"+title+"\n");
-    
-    MetadataTreeNode na1 = new MetadataTreeNode( a1, null, null )
-      .addQuery(b1)
-      .addQuery(c1)
-    ;
-    
-    MetadataTreeNode nb1 = new MetadataTreeNode( b1, na1, b1 );
-    MetadataTreeNode nb2 = new MetadataTreeNode( b2, na1, b1 );
-    MetadataTreeNode nb3 = new MetadataTreeNode( b3, na1, b1 );
-    
-    MetadataTreeNode nc1 = new MetadataTreeNode( c1, na1, c1 )
-      .addQuery(b1)
-    ;
-    MetadataTreeNode nc2 = new MetadataTreeNode( c2, na1, c1 )
-      .addQuery(b1)
-    ;
-    
-    na1
-      .addChild(nb1)
-      .addChild(nb2)
-      .addChild(nb3)
-      .addChild(nc1)
-      .addChild(nc2)
-    ;
-    
-    nc1
-      .addChild(nb1)
-    ;
-    
-    nc2
-      .addChild(nb2)
-      .addChild(nb3)
-    ;
-
-    ss = (DefaultSatSolver) DefaultSatSolver.create(na1);
-
-    List<ArtifactMetadata> res = ss.solve();
-    
-    int m[] = ss._solver.model();
-
-    System.out.print("model: " );
-    for( int i=0; i<m.length; i++ )
-      System.out.print(" "+m[i]);
-    System.out.println("");
-
-    assertNotNull( res );
-    
-    System.out.print("Result:");
-    for( ArtifactMetadata md : res )
+    DefaultSatSolver ss;
+
+    String title;
+
+    MetadataTreeNode tree;
+
+    ArtifactMetadata a1 = new ArtifactMetadata( "t:a:1" );
+
+    ArtifactMetadata b1 = new ArtifactMetadata( "t:b:1" );
+
+    ArtifactMetadata b2 = new ArtifactMetadata( "t:b:2" );
+
+    ArtifactMetadata b3 = new ArtifactMetadata( "t:b:3" );
+
+    ArtifactMetadata c1 = new ArtifactMetadata( "t:c:1" );
+
+    ArtifactMetadata c2 = new ArtifactMetadata( "t:c:2" );
+
+    ArtifactMetadata d1 = new ArtifactMetadata( "t:d:1" );
+
+    // ----------------------------------------------------------------------
+    protected void setUp()
+        throws Exception
+    {
+        super.setUp();
+    }
+
+    // ----------------------------------------------------------------------
+    public void testDedupe()
     {
-      System.out.print(" "+md);
+        List<MetadataTreeNode> list = new ArrayList<MetadataTreeNode>();
+
+        list.add( new MetadataTreeNode( new ArtifactMetadata( "a:a:1" ), null, null ) );
+        list.add( new MetadataTreeNode( new ArtifactMetadata( "a:a:1" ), null, null ) );
+        list.add( new MetadataTreeNode( new ArtifactMetadata( "a:a:1" ), null, null ) );
+        list.add( new MetadataTreeNode( new ArtifactMetadata( "b:b:1" ), null, null ) );
+        list.add( new MetadataTreeNode( new ArtifactMetadata( "b:b:1" ), null, null ) );
+        list.add( new MetadataTreeNode( new ArtifactMetadata( "a:a:1" ), null, null ) );
+
+        DefaultSatSolver.removeDuplicateGAVs( list );
+
+        System.out.println( list );
+
+        assertEquals( 2, list.size() );
     }
-    System.out.println("");
 
-    assertEquals( 3, res.size() );
-    
-    assertTrue( res.contains( a1 ) );
-    assertTrue( res.contains( b2 ) );
-    assertTrue( res.contains( c2 ) );
-  }
-  //----------------------------------------------------------------------
-  //       b:b:1 - c:c:2
-  //      / 
-  // a:a:1
-  //      \     
-  //       b:b:2 - c:c:1
-  //----------------------------------------------------------------------
-  public void testSingleVersionResolution()
-  throws SatException
-  {
-    title = "testSingleVersionResolution";
-    System.out.println("\n\n==========================\n"+title+"\n");
-    
-    MetadataTreeNode na1 = new MetadataTreeNode( a1, null, null )
-      .addQuery(b1)
-      .addQuery(b2)
-    ;
-    
-    MetadataTreeNode nb1 = new MetadataTreeNode( b1, na1, b1 )
-      .addQuery( c2 )
-    ;
-    MetadataTreeNode nb2 = new MetadataTreeNode( b2, na1, b2 )
-      .addQuery( c1 )
-    ;
-    
-    MetadataTreeNode nc2 = new MetadataTreeNode( c2, nb1, c2 );
-
-    MetadataTreeNode nc1 = new MetadataTreeNode( c1, nb2, c1 );
-    
-    na1
-      .addChild(nb1)
-      .addChild(nb2)
-    ;
-    
-    nb1
-      .addChild(nc2)
-    ;
-    
-    nb2
-      .addChild(nc1)
-    ;
-    
-    List<Comparator<MetadataTreeNode>> cl = new ArrayList<Comparator<MetadataTreeNode>>(2);
-    cl.add( new ClassicDepthComparator() );
-    cl.add( new ClassicVersionComparator() );
-
-    ss = (DefaultSatSolver) DefaultSatSolver.create(na1);
-    
-    ss.applyPolicies( cl );
-
-    List<ArtifactMetadata> res = ss.solve();
-    
-    int m[] = ss._solver.model();
-
-    System.out.print("model: " );
-
-    for( int i=0; i<m.length; i++ )
-      System.out.print(" "+m[i]);
-    System.out.println("");
-
-    assertNotNull( res );
-    
-    System.out.print("Result:");
-    for( ArtifactMetadata md : res )
+    private int f( int a, int b )
     {
-      System.out.print(" "+md);
+        return -a + b;
     }
-    System.out.println("");
-    
-    assertEquals( 3, res.size() );
-    
-    assertTrue( res.contains( a1 ) );
-    assertTrue( res.contains( b1 ) );
-    assertTrue( res.contains( c2 ) );
-  }
-  //----------------------------------------------------------------------
-  //       b:b:1 - c:c:[2,4)
-  //      / 
-  // a:a:1
-  //      \     
-  //       b:b:2 - c:c:1
-  //----------------------------------------------------------------------
-  public void testStrictRangeResolution()
-  throws SatException
-  {
-    title = "testStrictRangeResolution";
-    System.out.println("\n\n==========================\n"+title+"\n");
-    
-    MetadataTreeNode na1 = new MetadataTreeNode( a1, null, null )
-      .addQuery(b1)
-      .addQuery(b2)
-    ;
-    
-    ArtifactMetadata c2q = new ArtifactMetadata("t:c:[2,4)");
-    
-    MetadataTreeNode nb1 = new MetadataTreeNode( b1, na1, b1 )
-      .addQuery( c2q )
-    ;
-    MetadataTreeNode nb2 = new MetadataTreeNode( b2, na1, b2 )
-      .addQuery( c1 )
-    ;
-    
-    MetadataTreeNode nc2 = new MetadataTreeNode( c2, nb1, c2q );
-
-    MetadataTreeNode nc1 = new MetadataTreeNode( c1, nb2, c1 );
-    
-    na1
-      .addChild(nb1)
-      .addChild(nb2)
-    ;
-    
-    nb1
-      .addChild(nc2)
-    ;
-    
-    nb2
-      .addChild(nc1)
-    ;
-    
-    List<Comparator<MetadataTreeNode>> cl = new ArrayList<Comparator<MetadataTreeNode>>(2);
-    cl.add( new ClassicDepthComparator() );
-    cl.add( new ClassicVersionComparator() );
-
-    ss = (DefaultSatSolver) DefaultSatSolver.create(na1);
-    
-    ss.applyPolicies( cl );
-
-    List<ArtifactMetadata> res = ss.solve();
-    
-    int m[] = ss._solver.model();
-
-    System.out.print("model: " );
-
-    for( int i=0; i<m.length; i++ )
-      System.out.print(" "+m[i]);
-    System.out.println("");
-
-    assertNotNull( res );
-    
-    System.out.print("Result:");
-    for( ArtifactMetadata md : res )
+
+    // ----------------------------------------------------------------------
+    // d:d:1 - c:c:[2,4)
+    // /
+    // a:a:1
+    // \
+    // b:b:2 - c:c:1
+    // ----------------------------------------------------------------------
+    public void testReNumeration()
+        throws SatException, IOException
     {
-      System.out.print(" "+md);
+        title = "testReNumeration";
+        System.out.println( "\n\n==========================\n" + title + "\n" );
+
+        MetadataTreeNode na1 = new MetadataTreeNode( a1, null, null ).addQuery( d1 ).addQuery( b2 );
+
+        ArtifactMetadata c2q = new ArtifactMetadata( "t:c:[2,4)" );
+
+        MetadataTreeNode nd1 = new MetadataTreeNode( d1, na1, d1 ).addQuery( c2q );
+        MetadataTreeNode nb2 = new MetadataTreeNode( b2, na1, b2 ).addQuery( c1 );
+
+        MetadataTreeNode nc2 = new MetadataTreeNode( c2, nd1, c2q );
+
+        MetadataTreeNode nc1 = new MetadataTreeNode( c1, nb2, c1 );
+
+        na1.addChild( nd1 ).addChild( nb2 );
+
+        nd1.addChild( nc2 );
+
+        nb2.addChild( nc1 );
+
+        MetadataTreeNode.reNumber( na1, 1 );
+
+        assertEquals( 1, na1.getId() );
+
+        assertEquals( 2, nd1.getId() );
+
     }
-    System.out.println("");
-    
-    assertEquals( 3, res.size() );
-    
-    assertTrue( res.contains( a1 ) );
-    assertTrue( res.contains( b1 ) );
-    assertTrue( res.contains( c2 ) );
-  }
-  //----------------------------------------------------------------------
-  //       d:d:1 - c:c:[2,4)
-  //      / 
-  // a:a:1
-  //      \     
-  //       b:b:2 - c:c:1
-  //----------------------------------------------------------------------
-  public void testStrictRangeResolution2()
-  throws SatException
-  {
-    title = "testStrictRangeResolution2";
-    System.out.println("\n\n==========================\n"+title+"\n");
-    
-    MetadataTreeNode na1 = new MetadataTreeNode( a1, null, null )
-      .addQuery(d1)
-      .addQuery(b2)
-    ;
-    
-    ArtifactMetadata c2q = new ArtifactMetadata("t:c:[2,4)");
-    
-    MetadataTreeNode nd1 = new MetadataTreeNode( d1, na1, d1 )
-      .addQuery( c2q )
-    ;
-    MetadataTreeNode nb2 = new MetadataTreeNode( b2, na1, b2 )
-      .addQuery( c1 )
-    ;
-    
-    MetadataTreeNode nc2 = new MetadataTreeNode( c2, nd1, c2q );
-
-    MetadataTreeNode nc1 = new MetadataTreeNode( c1, nb2, c1 );
-    
-    na1
-      .addChild(nd1)
-      .addChild(nb2)
-    ;
-    
-    nd1
-      .addChild(nc2)
-    ;
-    
-    nb2
-      .addChild(nc1)
-    ;
-    
-    List<Comparator<MetadataTreeNode>> cl = new ArrayList<Comparator<MetadataTreeNode>>(2);
-    cl.add( new ClassicDepthComparator() );
-    cl.add( new ClassicVersionComparator() );
-
-    ss = (DefaultSatSolver) DefaultSatSolver.create(na1);
-    
-    ss.applyPolicies( cl );
-
-    List<ArtifactMetadata> res = ss.solve();
-    
-    int m[] = ss._solver.model();
-
-    System.out.print("model: " );
-
-    for( int i=0; i<m.length; i++ )
-      System.out.print(" "+m[i]);
-    System.out.println("");
-
-    assertNotNull( res );
-    
-    System.out.print("Result:");
-    for( ArtifactMetadata md : res )
+
+    // ----------------------------------------------------------------------
+    public void testOptimization()
+        throws SatException
     {
-      System.out.print(" "+md);
+        title = "optimization test";
+        System.out.println( "\n\n==========================\n" + title + "\n" );
+
+        // b:b:1
+        // /
+        // a:a:1 b:b:2
+        // \ /
+        // c:c:1
+        // \ b:b:1
+
+        ArtifactMetadata mdaa1 = new ArtifactMetadata( "a:a:1" );
+        ArtifactMetadata mdbb1 = new ArtifactMetadata( "b:b:1" );
+        ArtifactMetadata mdbb2 = new ArtifactMetadata( "b:b:2" );
+        ArtifactMetadata mdcc1 = new ArtifactMetadata( "c:c:1" );
+
+        MetadataTreeNode aa1;
+        MetadataTreeNode bb1;
+        MetadataTreeNode cc1;
+        MetadataTreeNode cc1bb1;
+        MetadataTreeNode cc1bb2;
+
+        aa1 = new MetadataTreeNode( mdaa1, null, mdaa1 );
+        bb1 = new MetadataTreeNode( mdbb1, aa1, mdbb1 );
+        aa1.addChild( bb1 );
+        cc1 = new MetadataTreeNode( mdcc1, aa1, mdcc1 );
+        aa1.addChild( cc1 );
+        cc1bb1 = new MetadataTreeNode( mdbb1, cc1, mdbb1 );
+        cc1.addChild( cc1bb1 );
+        cc1bb2 = new MetadataTreeNode( mdbb2, cc1, mdbb2 );
+        cc1.addChild( cc1bb2 );
+
+        ss = (DefaultSatSolver) DefaultSatSolver.create( aa1 );
+
+        List<Comparator<MetadataTreeNode>> comparators = new ArrayList<Comparator<MetadataTreeNode>>( 2 );
+        comparators.add( new ClassicDepthComparator() );
+        comparators.add( new ClassicVersionComparator() );
+
+        Map<String, List<MetadataTreeNode>> buckets = new HashMap<String, List<MetadataTreeNode>>( 128 );
+        DefaultSatSolver.fillBuckets( buckets, aa1 );
+        DefaultSatSolver.sortBuckets( buckets, comparators );
+
+        assertNotNull( "no resulting map", buckets );
+        assertEquals( "bad map size", 3, buckets.size() );
+
+        System.out.println( "optimized buckets: " + buckets );
+
+        List<MetadataTreeNode> bbl = buckets.get( "b:b" );
+        assertNotNull( "no b:b list", bbl );
+        assertEquals( "bad b:b list size", 2, bbl.size() );
+
+        MetadataTreeNode first = bbl.get( 0 );
+        assertNotNull( "bad first element", first );
+        assertEquals( "bad first element's GAV", "b:b:1::jar", first.getMd().getGAV() );
+        assertEquals( "bad first element's depth", 1, first.getDepth() );
+
+        MetadataTreeNode second = bbl.get( 1 );
+        assertNotNull( "bad second element", second );
+        assertEquals( "bad second element's GAV", "b:b:2::jar", second.getMd().getGAV() );
+        assertEquals( "bad second element's depth", 2, second.getDepth() );
+    }
+
+    // ----------------------------------------------------------------------
+    //
+    // a1
+    // and (b1 or b2 or b3)
+    // and ((c1 and b1) or (c2 and (b2 or b3))
+    //
+    // ----------------------------------------------------------------------
+    public void testClassicResolution()
+        throws SatException
+    {
+        title = "simplest 3-node tree";
+        System.out.println( "\n\n==========================\n" + title + "\n" );
+
+        MetadataTreeNode na1 = new MetadataTreeNode( a1, null, null ).addQuery( b1 ).addQuery( c1 );
+
+        MetadataTreeNode nb1 = new MetadataTreeNode( b1, na1, b1 );
+        MetadataTreeNode nb2 = new MetadataTreeNode( b2, na1, b1 );
+        MetadataTreeNode nb3 = new MetadataTreeNode( b3, na1, b1 );
+
+        MetadataTreeNode nc1 = new MetadataTreeNode( c1, na1, c1 ).addQuery( b1 );
+        MetadataTreeNode nc2 = new MetadataTreeNode( c2, na1, c1 ).addQuery( b1 );
+
+        na1.addChild( nb1 ).addChild( nb2 ).addChild( nb3 ).addChild( nc1 ).addChild( nc2 );
+
+        nc1.addChild( nb1 );
+
+        nc2.addChild( nb2 ).addChild( nb3 );
+
+        ss = (DefaultSatSolver) DefaultSatSolver.create( na1 );
+
+        List<ArtifactMetadata> res = ss.solve();
+
+        int m[] = ss._solver.model();
+
+        System.out.print( "model: " );
+        for ( int i = 0; i < m.length; i++ )
+            System.out.print( " " + m[i] );
+        System.out.println( "" );
+
+        assertNotNull( res );
+
+        System.out.print( "Result:" );
+        for ( ArtifactMetadata md : res )
+        {
+            System.out.print( " " + md );
+        }
+        System.out.println( "" );
+
+        assertEquals( 3, res.size() );
+
+        assertTrue( res.contains( a1 ) );
+        assertTrue( res.contains( b2 ) );
+        assertTrue( res.contains( c2 ) );
+    }
+
+    // ----------------------------------------------------------------------
+    // b:b:1 - c:c:2
+    // /
+    // a:a:1
+    // \
+    // b:b:2 - c:c:1
+    // ----------------------------------------------------------------------
+    public void testSingleVersionResolution()
+        throws SatException
+    {
+        title = "testSingleVersionResolution";
+        System.out.println( "\n\n==========================\n" + title + "\n" );
+
+        MetadataTreeNode na1 = new MetadataTreeNode( a1, null, null ).addQuery( b1 ).addQuery( b2 );
+
+        MetadataTreeNode nb1 = new MetadataTreeNode( b1, na1, b1 ).addQuery( c2 );
+        MetadataTreeNode nb2 = new MetadataTreeNode( b2, na1, b2 ).addQuery( c1 );
+
+        MetadataTreeNode nc2 = new MetadataTreeNode( c2, nb1, c2 );
+
+        MetadataTreeNode nc1 = new MetadataTreeNode( c1, nb2, c1 );
+
+        na1.addChild( nb1 ).addChild( nb2 );
+
+        nb1.addChild( nc2 );
+
+        nb2.addChild( nc1 );
+
+        List<Comparator<MetadataTreeNode>> cl = new ArrayList<Comparator<MetadataTreeNode>>( 2 );
+        cl.add( new ClassicDepthComparator() );
+        cl.add( new ClassicVersionComparator() );
+
+        ss = (DefaultSatSolver) DefaultSatSolver.create( na1 );
+
+        ss.applyPolicies( cl );
+
+        List<ArtifactMetadata> res = ss.solve();
+
+        int m[] = ss._solver.model();
+
+        System.out.print( "model: " );
+
+        for ( int i = 0; i < m.length; i++ )
+            System.out.print( " " + m[i] );
+        System.out.println( "" );
+
+        assertNotNull( res );
+
+        System.out.print( "Result:" );
+        for ( ArtifactMetadata md : res )
+        {
+            System.out.print( " " + md );
+        }
+        System.out.println( "" );
+
+        assertEquals( 3, res.size() );
+
+        assertTrue( res.contains( a1 ) );
+        assertTrue( res.contains( b1 ) );
+        assertTrue( res.contains( c2 ) );
+    }
+
+    // ----------------------------------------------------------------------
+    // b:b:1 - c:c:[2,4)
+    // /
+    // a:a:1
+    // \
+    // b:b:2 - c:c:1
+    // ----------------------------------------------------------------------
+    public void testStrictRangeResolution()
+        throws SatException
+    {
+        title = "testStrictRangeResolution";
+        System.out.println( "\n\n==========================\n" + title + "\n" );
+
+        MetadataTreeNode na1 = new MetadataTreeNode( a1, null, null ).addQuery( b1 ).addQuery( b2 );
+
+        ArtifactMetadata c2q = new ArtifactMetadata( "t:c:[2,4)" );
+
+        MetadataTreeNode nb1 = new MetadataTreeNode( b1, na1, b1 ).addQuery( c2q );
+        MetadataTreeNode nb2 = new MetadataTreeNode( b2, na1, b2 ).addQuery( c1 );
+
+        MetadataTreeNode nc2 = new MetadataTreeNode( c2, nb1, c2q );
+
+        MetadataTreeNode nc1 = new MetadataTreeNode( c1, nb2, c1 );
+
+        na1.addChild( nb1 ).addChild( nb2 );
+
+        nb1.addChild( nc2 );
+
+        nb2.addChild( nc1 );
+
+        List<Comparator<MetadataTreeNode>> cl = new ArrayList<Comparator<MetadataTreeNode>>( 2 );
+        cl.add( new ClassicDepthComparator() );
+        cl.add( new ClassicVersionComparator() );
+
+        ss = (DefaultSatSolver) DefaultSatSolver.create( na1 );
+
+        ss.applyPolicies( cl );
+
+        List<ArtifactMetadata> res = ss.solve();
+
+        int m[] = ss._solver.model();
+
+        System.out.print( "model: " );
+
+        for ( int i = 0; i < m.length; i++ )
+            System.out.print( " " + m[i] );
+        System.out.println( "" );
+
+        assertNotNull( res );
+
+        System.out.print( "Result:" );
+        for ( ArtifactMetadata md : res )
+        {
+            System.out.print( " " + md );
+        }
+        System.out.println( "" );
+
+        assertEquals( 3, res.size() );
+
+        assertTrue( res.contains( a1 ) );
+        assertTrue( res.contains( b1 ) );
+        assertTrue( res.contains( c2 ) );
+    }
+
+    // ----------------------------------------------------------------------
+    // d:d:1 - c:c:[2,4)
+    // /
+    // a:a:1
+    // \
+    // b:b:2 - c:c:1
+    // ----------------------------------------------------------------------
+    public void testStrictRangeResolution2()
+        throws SatException
+    {
+        title = "testStrictRangeResolution2";
+        System.out.println( "\n\n==========================\n" + title + "\n" );
+
+        MetadataTreeNode na1 = new MetadataTreeNode( a1, null, null ).addQuery( d1 ).addQuery( b2 );
+
+        ArtifactMetadata c2q = new ArtifactMetadata( "t:c:[2,4)" );
+
+        MetadataTreeNode nd1 = new MetadataTreeNode( d1, na1, d1 ).addQuery( c2q );
+        MetadataTreeNode nb2 = new MetadataTreeNode( b2, na1, b2 ).addQuery( c1 );
+
+        MetadataTreeNode nc2 = new MetadataTreeNode( c2, nd1, c2q );
+
+        MetadataTreeNode nc1 = new MetadataTreeNode( c1, nb2, c1 );
+
+        na1.addChild( nd1 ).addChild( nb2 );
+
+        nd1.addChild( nc2 );
+
+        nb2.addChild( nc1 );
+
+        List<Comparator<MetadataTreeNode>> cl = new ArrayList<Comparator<MetadataTreeNode>>( 2 );
+        cl.add( new ClassicDepthComparator() );
+        cl.add( new ClassicVersionComparator() );
+
+        ss = (DefaultSatSolver) DefaultSatSolver.create( na1 );
+
+        ss.applyPolicies( cl );
+
+        List<ArtifactMetadata> res = ss.solve();
+
+        int m[] = ss._solver.model();
+
+        System.out.print( "model: " );
+
+        for ( int i = 0; i < m.length; i++ )
+            System.out.print( " " + m[i] );
+        System.out.println( "" );
+
+        assertNotNull( res );
+
+        System.out.print( "Result:" );
+        for ( ArtifactMetadata md : res )
+        {
+            System.out.print( " " + md );
+        }
+        System.out.println( "" );
+
+        assertEquals( 4, res.size() );
+
+        assertTrue( res.contains( a1 ) );
+        assertTrue( res.contains( d1 ) );
+        assertTrue( res.contains( b2 ) );
+        assertTrue( res.contains( c2 ) );
+    }
+
+    // ----------------------------------------------------------------------
+    // d:d:1 - c:c:[2,4)
+    // /
+    // a:a:1
+    // \
+    // b:b:2 - c:c:1
+    // ----------------------------------------------------------------------
+    public void testSolveAsTree()
+        throws SatException, IOException
+    {
+        title = "testSolveAsTree";
+        System.out.println( "\n\n==========================\n" + title + "\n" );
+
+        MetadataTreeNode na1 = new MetadataTreeNode( a1, null, null ).addQuery( d1 ).addQuery( b2 );
+
+        ArtifactMetadata c2q = new ArtifactMetadata( "t:c:[2,4)" );
+
+        MetadataTreeNode nd1 = new MetadataTreeNode( d1, na1, d1 ).addQuery( c2q );
+        MetadataTreeNode nb2 = new MetadataTreeNode( b2, na1, b2 ).addQuery( c1 );
+
+        MetadataTreeNode nc2 = new MetadataTreeNode( c2, nd1, c2q );
+
+        MetadataTreeNode nc1 = new MetadataTreeNode( c1, nb2, c1 );
+
+        na1.addChild( nd1 ).addChild( nb2 );
+
+        nd1.addChild( nc2 );
+
+        nb2.addChild( nc1 );
+
+        List<Comparator<MetadataTreeNode>> cl = new ArrayList<Comparator<MetadataTreeNode>>( 2 );
+        cl.add( new ClassicDepthComparator() );
+        cl.add( new ClassicVersionComparator() );
+
+        ss = (DefaultSatSolver) DefaultSatSolver.create( na1 );
+
+        ss.applyPolicies( cl );
+
+        MetadataTreeNode res = ss.solveAsTree();
+
+        assertNotNull( res );
+
+        MetadataTreeNode.showNode( res, 0 );
+
+        assertEquals( 4, res.countNodes() );
+
     }
-    System.out.println("");
-    
-    assertEquals( 4, res.size() );
-    
-    assertTrue( res.contains( a1 ) );
-    assertTrue( res.contains( d1 ) );
-    assertTrue( res.contains( b2 ) );
-    assertTrue( res.contains( c2 ) );
-  }
-  
-  //----------------------------------------------------------------------
-  //       d:d:1 - c:c:[2,4)
-  //      / 
-  // a:a:1
-  //      \     
-  //       b:b:2 - c:c:1
-  //----------------------------------------------------------------------
-  public void testSolveAsTree()
-  throws SatException, IOException
-  {
-    title = "testSolveAsTree";
-    System.out.println("\n\n==========================\n"+title+"\n");
-    
-    MetadataTreeNode na1 = new MetadataTreeNode( a1, null, null )
-      .addQuery(d1)
-      .addQuery(b2)
-    ;
-    
-    ArtifactMetadata c2q = new ArtifactMetadata("t:c:[2,4)");
-    
-    MetadataTreeNode nd1 = new MetadataTreeNode( d1, na1, d1 )
-      .addQuery( c2q )
-    ;
-    MetadataTreeNode nb2 = new MetadataTreeNode( b2, na1, b2 )
-      .addQuery( c1 )
-    ;
-    
-    MetadataTreeNode nc2 = new MetadataTreeNode( c2, nd1, c2q );
-
-    MetadataTreeNode nc1 = new MetadataTreeNode( c1, nb2, c1 );
-    
-    na1
-      .addChild(nd1)
-      .addChild(nb2)
-    ;
-    
-    nd1
-      .addChild(nc2)
-    ;
-    
-    nb2
-      .addChild(nc1)
-    ;
-    
-    List<Comparator<MetadataTreeNode>> cl = new ArrayList<Comparator<MetadataTreeNode>>(2);
-    cl.add( new ClassicDepthComparator() );
-    cl.add( new ClassicVersionComparator() );
-
-    ss = (DefaultSatSolver) DefaultSatSolver.create(na1);
-    
-    ss.applyPolicies( cl );
-
-    MetadataTreeNode res = ss.solveAsTree();
-    
-    assertNotNull( res );
-    
-    MetadataTreeNode.showNode( res, 0 );
-    
-    assertEquals( 4, res.countNodes() );
-    
-  }
-  //----------------------------------------------------------------------
-  //----------------------------------------------------------------------
+    // ----------------------------------------------------------------------
+    // ----------------------------------------------------------------------
 }

Modified: maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/repository/api/AbstractRepositoryTest.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/repository/api/AbstractRepositoryTest.java?rev=769199&r1=769198&r2=769199&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/repository/api/AbstractRepositoryTest.java (original)
+++ maven/mercury/trunk/mercury-core/src/test/java/org/apache/maven/mercury/repository/api/AbstractRepositoryTest.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.repository.api;
 
 import junit.framework.TestCase;
 
 /**
- *
- *
  * @author Oleg Gusakov
  * @version $Id$
- *
  */
 public class AbstractRepositoryTest
     extends TestCase
@@ -34,11 +31,11 @@
     public void testIdHash()
     {
         String res = AbstractRepository.hashId( "central" );
-        
+
         assertEquals( "central", res );
 
         res = AbstractRepository.hashId( "http://central" );
-        
+
         assertEquals( "3e447f03cb543932ff37403fe937841ff58ff788", res );
     }
 }