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" ) ) );
}
// -------------------------------------------------------------------------------------