[maven-release-plugin] copy for tag mercury-1.0-alpha-5
git-svn-id: https://svn.apache.org/repos/asf/maven/mercury/tags/mercury-1.0-alpha-5@743215 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/mercury-artifact/pom.xml b/mercury-artifact/pom.xml
index 91d4507..d4d8330 100644
--- a/mercury-artifact/pom.xml
+++ b/mercury-artifact/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury</artifactId>
- <version>1.0-alpha-5-SNAPSHOT</version> </parent>
+ <version>1.0-alpha-5</version> </parent>
<artifactId>mercury-artifact</artifactId>
diff --git a/mercury-crypto/mercury-crypto-api/pom.xml b/mercury-crypto/mercury-crypto-api/pom.xml
index 80bc008..2bc16e9 100644
--- a/mercury-crypto/mercury-crypto-api/pom.xml
+++ b/mercury-crypto/mercury-crypto-api/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury-crypto</artifactId>
- <version>1.0-alpha-5-SNAPSHOT</version>
+ <version>1.0-alpha-5</version>
</parent>
<artifactId>mercury-crypto-api</artifactId>
diff --git a/mercury-crypto/mercury-crypto-basic/pom.xml b/mercury-crypto/mercury-crypto-basic/pom.xml
index 3f9d961..8dd1d2b 100644
--- a/mercury-crypto/mercury-crypto-basic/pom.xml
+++ b/mercury-crypto/mercury-crypto-basic/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury-crypto</artifactId>
- <version>1.0-alpha-5-SNAPSHOT</version>
+ <version>1.0-alpha-5</version>
</parent>
<artifactId>mercury-crypto-basic</artifactId>
diff --git a/mercury-crypto/pom.xml b/mercury-crypto/pom.xml
index 6d3a810..60c9fdc 100644
--- a/mercury-crypto/pom.xml
+++ b/mercury-crypto/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury</artifactId>
- <version>1.0-alpha-5-SNAPSHOT</version> </parent>
+ <version>1.0-alpha-5</version> </parent>
<artifactId>mercury-crypto</artifactId>
<packaging>pom</packaging>
diff --git a/mercury-event/pom.xml b/mercury-event/pom.xml
index 200c3cc..f35b141 100644
--- a/mercury-event/pom.xml
+++ b/mercury-event/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury</artifactId>
- <version>1.0-alpha-5-SNAPSHOT</version> </parent>
+ <version>1.0-alpha-5</version> </parent>
<artifactId>mercury-event</artifactId>
diff --git a/mercury-external/pom.xml b/mercury-external/pom.xml
index be390ba..37a845b 100644
--- a/mercury-external/pom.xml
+++ b/mercury-external/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury</artifactId>
- <version>1.0-alpha-5-SNAPSHOT</version> </parent>
+ <version>1.0-alpha-5</version> </parent>
<groupId>org.apache.maven.mercury</groupId>
diff --git a/mercury-it/pom.xml b/mercury-it/pom.xml
index a64cba0..be92a36 100644
--- a/mercury-it/pom.xml
+++ b/mercury-it/pom.xml
@@ -215,25 +215,105 @@
</testResources>
<plugins>
+
+
<plugin>
- <artifactId>maven-dependency-plugin</artifactId>
- <version>2.0</version>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+
+ <configuration>
+ <includes>
+ <include>org/apache/maven/mercury/all/it/AllTestCases.java</include>
+ </includes>
+ </configuration>
+<!--
<executions>
+
<execution>
- <id>unpack-bundle</id>
- <phase>generate-resources</phase>
+ <id>test</id>
+ <phase>test</phase>
<goals>
- <goal>unpack-dependencies</goal>
+ <goal>test</goal>
</goals>
<configuration>
- <includeArtifactIds>nexus-webapp</includeArtifactIds>
- <outputDirectory>${bundle-expanded-dir}</outputDirectory>
- <excludes>**/conf/plexus.properties</excludes>
+ <includes>
+ <include>org/apache/maven/mercury/all/it/AllTestCases.java</include>
+ </includes>
</configuration>
</execution>
-
</executions>
+ -->
</plugin>
+
+ <plugin>
+ <groupId>org.sonatype.maven.plugin</groupId>
+ <artifactId>emma4it-maven-plugin</artifactId>
+ <version>${emma4it.plugin.version}</version>
+ </plugin>
+
+
</plugins>
</build>
+
+ <reporting>
+ <plugins>
+
+ <plugin>
+ <groupId>org.sonatype.maven.plugin</groupId>
+ <artifactId>emma4it-maven-plugin</artifactId>
+ <version>${emma4it.plugin.version}</version>
+
+ <configuration>
+ <searchPath>${basedir}</searchPath>
+
+ <sourceFolders>
+ <sourceFolder>${basedir}/../mercury-artifact/src/main/java</sourceFolder>
+ <sourceFolder>${basedir}/../mercury-crypto/mercury-crypto-api/src/main/java</sourceFolder>
+ <sourceFolder>${basedir}/../mercury-crypto/mercury-crypto-basic/src/main/java</sourceFolder>
+ <sourceFolder>${basedir}/../mercury-event/src/main/java</sourceFolder>
+ <sourceFolder>${basedir}/../mercury-external/src/main/java</sourceFolder>
+ <sourceFolder>${basedir}/../mercury-logging/src/main/java</sourceFolder>
+ <sourceFolder>${basedir}/../mercury-md/mercury-md-shared/src/main/java</sourceFolder>
+ <sourceFolder>${basedir}/../mercury-md/mercury-md-sat/src/main/java</sourceFolder>
+ <sourceFolder>${basedir}/../mercury-plexus/src/main/java</sourceFolder>
+ <sourceFolder>${basedir}/../mercury-repo/mercury-repo-api/src/main/java</sourceFolder>
+ <sourceFolder>${basedir}/../mercury-repo/mercury-repo-cache-fs/src/main/java</sourceFolder>
+ <sourceFolder>${basedir}/../mercury-repo/mercury-repo-flat/src/main/java</sourceFolder>
+ <sourceFolder>${basedir}/../mercury-repo/mercury-repo-local-m2/src/main/java</sourceFolder>
+ <sourceFolder>${basedir}/../mercury-repo/mercury-repo-local-map/src/main/java</sourceFolder>
+ <sourceFolder>${basedir}/../mercury-repo/mercury-repo-remote-m2/src/main/java</sourceFolder>
+ <sourceFolder>${basedir}/../mercury-repo/mercury-repo-virtual/src/main/java</sourceFolder>
+ <sourceFolder>${basedir}/../mercury-transport/mercury-transport-api/src/main/java</sourceFolder>
+ <sourceFolder>${basedir}/../mercury-transport/mercury-transport-http/src/main/java</sourceFolder>
+ <sourceFolder>${basedir}/../mercury-util/src/main/java</sourceFolder>
+ </sourceFolders>
+
+ <jarFiles>
+ <jarFile>${basedir}/../mercury-artifact/target/mercury-artifact-${project.version}.jar</jarFile>
+ <jarFile>${basedir}/../mercury-crypto/mercury-crypto-api/target/mercury-crypto-api-${project.version}.jar</jarFile>
+ <jarFile>${basedir}/../mercury-crypto/mercury-crypto-basic/target/mercury-crypto-basic-${project.version}.jar</jarFile>
+ <jarFile>${basedir}/../mercury-event/target/mercury-event-${project.version}.jar</jarFile>
+ <jarFile>${basedir}/../mercury-external/target/mercury-external-${project.version}.jar</jarFile>
+ <jarFile>${basedir}/../mercury-logging/target/mercury-logging-${project.version}.jar</jarFile>
+ <jarFile>${basedir}/../mercury-md/mercury-md-shared/target/mercury-md-shared-${project.version}.jar</jarFile>
+ <jarFile>${basedir}/../mercury-md/mercury-md-sat/target/mercury-md-sat-${project.version}.jar</jarFile>
+ <jarFile>${basedir}/../mercury-plexus/target/mercury-plexus-${project.version}.jar</jarFile>
+ <jarFile>${basedir}/../mercury-repo/mercury-repo-api/target/mercury-repo-api-${project.version}.jar</jarFile>
+ <jarFile>${basedir}/../mercury-repo/mercury-repo-cache-fs/target/mercury-repo-cache-fs-${project.version}.jar</jarFile>
+ <jarFile>${basedir}/../mercury-repo/mercury-repo-local-m2/target/mercury-repo-local-m2-${project.version}.jar</jarFile>
+ <jarFile>${basedir}/../mercury-repo/mercury-repo-local-map/target/mercury-repo-local-map-${project.version}.jar</jarFile>
+ <jarFile>${basedir}/../mercury-repo/mercury-repo-remote-m2/target/mercury-repo-remote-m2-${project.version}.jar</jarFile>
+ <jarFile>${basedir}/../mercury-repo/mercury-repo-remote-virtual/target/mercury-repo-remote-virtual-${project.version}.jar</jarFile>
+ <jarFile>${basedir}/../mercury-transport/mercury-transport-api/target/mercury-transport-api-${project.version}.jar</jarFile>
+ <jarFile>${basedir}/../mercury-transport/mercury-transport-http/target/mercury-transport-http-${project.version}.jar</jarFile>
+ <jarFile>${basedir}/../mercury-util/target/mercury-util-${project.version}.jar</jarFile>
+ </jarFiles>
+ </configuration>
+
+ </plugin>
+
+ </plugins>
+ </reporting>
+
+
</project>
diff --git a/mercury-it/src/test/java/org/apache/maven/mercury/all/it/AllTestCases.java b/mercury-it/src/test/java/org/apache/maven/mercury/all/it/AllTestCases.java
index 8ca9ed0..5b4af9c 100644
--- a/mercury-it/src/test/java/org/apache/maven/mercury/all/it/AllTestCases.java
+++ b/mercury-it/src/test/java/org/apache/maven/mercury/all/it/AllTestCases.java
@@ -19,6 +19,18 @@
package org.apache.maven.mercury.all.it;
+import org.apache.maven.mercury.dependency.tests.DependencyTreeBuilderTest;
+import org.apache.maven.mercury.plexus.DefaultPlexusMercuryTest;
+import org.apache.maven.mercury.repository.tests.ComprehensiveRepositoryTest;
+import org.apache.maven.mercury.repository.tests.DavServerTest;
+import org.apache.maven.mercury.repository.tests.LocalRepositoryReaderM2Test;
+import org.apache.maven.mercury.repository.tests.LocalRepositoryWriterM2Test;
+import org.apache.maven.mercury.repository.tests.ReadWriteTest;
+import org.apache.maven.mercury.repository.tests.RemoteRepositoryCachingReaderM2Test;
+import org.apache.maven.mercury.repository.tests.RemoteRepositoryReaderM2Test;
+import org.apache.maven.mercury.repository.tests.RemoteRepositoryWriterM2Test;
+import org.apache.maven.mercury.repository.tests.VirtualRepositoryReaderIntegratedTest;
+
import junit.framework.Test;
import junit.framework.TestSuite;
@@ -58,7 +70,7 @@
/*
* This must be the first one to ensure the local repository is properly setup.
*/
-// suite.addTestSuite( MercuryITBootstrapTest.class );
+ suite.addTestSuite( DavServerTest.class );
/*
* Add tests in reverse alpha order by number below. This makes testing new
@@ -66,6 +78,16 @@
* 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 );
+ suite.addTestSuite( ReadWriteTest.class );
+ suite.addTestSuite( RemoteRepositoryCachingReaderM2Test.class );
+ suite.addTestSuite( RemoteRepositoryReaderM2Test.class );
+ suite.addTestSuite( RemoteRepositoryWriterM2Test.class );
+ suite.addTestSuite( DependencyTreeBuilderTest.class );
+ suite.addTestSuite( VirtualRepositoryReaderIntegratedTest.class );
+ suite.addTestSuite( DefaultPlexusMercuryTest.class );
+ suite.addTestSuite( ComprehensiveRepositoryTest.class );
/*
diff --git a/mercury-it/src/test/java/org/apache/maven/mercury/plexus/DefaultPlexusMercuryTest.java b/mercury-it/src/test/java/org/apache/maven/mercury/plexus/DefaultPlexusMercuryTest.java
index 5fe5414..44874d5 100644
--- a/mercury-it/src/test/java/org/apache/maven/mercury/plexus/DefaultPlexusMercuryTest.java
+++ b/mercury-it/src/test/java/org/apache/maven/mercury/plexus/DefaultPlexusMercuryTest.java
@@ -25,13 +25,16 @@
import java.util.HashSet;
import java.util.List;
+import org.apache.maven.mercury.MavenDependencyProcessor;
import org.apache.maven.mercury.artifact.Artifact;
import org.apache.maven.mercury.artifact.ArtifactBasicMetadata;
import org.apache.maven.mercury.artifact.ArtifactExclusionList;
+import org.apache.maven.mercury.artifact.ArtifactInclusionList;
import org.apache.maven.mercury.artifact.ArtifactMetadata;
import org.apache.maven.mercury.artifact.ArtifactQueryList;
import org.apache.maven.mercury.artifact.ArtifactScopeEnum;
import org.apache.maven.mercury.artifact.DefaultArtifact;
+import org.apache.maven.mercury.builder.api.DependencyProcessor;
import org.apache.maven.mercury.crypto.api.StreamVerifierFactory;
import org.apache.maven.mercury.crypto.pgp.PgpStreamVerifierFactory;
import org.apache.maven.mercury.crypto.sha.SHA1VerifierFactory;
@@ -45,6 +48,7 @@
import org.apache.maven.mercury.util.FileUtil;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
/**
*
@@ -100,7 +104,7 @@
throws Exception
{
super.setUp();
-
+
// prep. Artifact
File artifactBinary = File.createTempFile( "test-repo-writer", "bin" );
FileUtil.writeRawData( getClass().getResourceAsStream( "/maven-core-2.0.9.jar" ), artifactBinary );
@@ -134,8 +138,10 @@
localRepoDir = new File( "./target/local" );
FileUtil.delete( localRepoDir );
localRepoDir.mkdirs();
+//
+// localRepo = new LocalRepositoryM2( "testLocalRepo", localRepoDir, pm.findDependencyProcessor() );
- localRepo = new LocalRepositoryM2( "testLocalRepo", localRepoDir, pm.findDependencyProcessor() );
+ localRepo = pm.constructLocalRepositoryM2( "testLocal", localRepoDir, null, null, null, null );
repos = new ArrayList<Repository>();
repos.add( localRepo );
@@ -174,9 +180,28 @@
return false;
}
//-------------------------------------------------------------------------------------
- public void testDummy()
+ public void testFindDepProcessorWithHint()
+ throws RepositoryException, ComponentLookupException
{
- System.out.println("Have to disable plexus tests - need to fix maven-mercury first");
+ DependencyProcessor dp = null;
+
+ dp = pm.findDependencyProcessor("default");
+
+ assertNotNull( dp );
+
+ assertTrue( MavenDependencyProcessor.class.isAssignableFrom( dp.getClass() ) );
+ }
+ //-------------------------------------------------------------------------------------
+ public void testFindDepProcessor() // should run after the previous one
+ throws RepositoryException, ComponentLookupException
+ {
+ DependencyProcessor dp = null;
+
+ dp = pm.findDependencyProcessor();
+
+ assertNotNull( dp );
+
+ assertTrue( MavenDependencyProcessor.class.isAssignableFrom( dp.getClass() ) );
}
//-------------------------------------------------------------------------------------
public void testWrite()
@@ -189,6 +214,31 @@
assertTrue( af.exists() );
}
//-------------------------------------------------------------------------------------
+ public void testReadVersions()
+ throws RepositoryException
+ {
+ ArtifactMetadata bmd = new ArtifactMetadata(artifactCoord);
+
+ List<ArtifactBasicMetadata> res = pm.readVersions( repos, bmd );
+
+ assertNotNull( res );
+
+ assertFalse( res.isEmpty() );
+
+ ArtifactBasicMetadata a = res.get( 0 );
+
+ assertEquals( "1.0.0-alpha-2-20081104.001322-2", a.getVersion() );
+
+ List<Artifact> al = pm.read( repos, a );
+
+ assertNotNull( al );
+
+ assertFalse( al.isEmpty() );
+
+ assertEquals( 1, al.size() );
+
+ }
+ //-------------------------------------------------------------------------------------
public void testRead()
throws RepositoryException
{
@@ -272,13 +322,13 @@
}
//-------------------------------------------------------------------------------------
@SuppressWarnings("unchecked")
- public void ntestResolveWithExclusion()
+ public void testResolveWithExclusion()
throws Exception
{
- Server central = new Server( "central", new URL("http://repo1.maven.org/maven2") );
+// Server central = new Server( "central", new URL("http://repo1.maven.org/maven2") );
// Server central = new Server( "central", new URL("http://repository.sonatype.org/content/groups/public") );
- repos.add( new RemoteRepositoryM2(central, pm.findDependencyProcessor()) );
+// repos.add( new RemoteRepositoryM2(central, pm.findDependencyProcessor()) );
String artifactId = "asm:asm-xml:3.0";
@@ -299,5 +349,33 @@
assertFalse( assertHasArtifact( res, "asm:asm:3.0" ) );
}
//-------------------------------------------------------------------------------------
+ @SuppressWarnings("unchecked")
+ public void testResolveWithInclusion()
+ throws Exception
+ {
+// Server central = new Server( "central", new URL("http://repo1.maven.org/maven2") );
+// Server central = new Server( "central", new URL("http://repository.sonatype.org/content/groups/public") );
+
+// repos.add( new RemoteRepositoryM2(central, pm.findDependencyProcessor()) );
+
+ String artifactId = "asm:asm-xml:3.0";
+
+ List<ArtifactMetadata> res = pm.resolve( repos
+ , ArtifactScopeEnum.compile
+ , new ArtifactQueryList(artifactId)
+ , new ArtifactInclusionList("asm:asm-xml:3.0","asm:asm-util:3.0")
+ , null
+ );
+
+ System.out.println("Resolved as "+res);
+
+ assertEquals( 2, res.size() );
+
+ assertTrue( assertHasArtifact( res, "asm:asm-xml:3.0" ) );
+ assertTrue( assertHasArtifact( res, "asm:asm-util:3.0" ) );
+ assertFalse( assertHasArtifact( res, "asm:asm-tree:3.0" ) );
+ assertFalse( assertHasArtifact( res, "asm:asm:3.0" ) );
+ }
+ //-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------
}
diff --git a/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/ComprehensiveRepositoryTest.java b/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/ComprehensiveRepositoryTest.java
index 81cc3ad..aebac29 100644
--- a/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/ComprehensiveRepositoryTest.java
+++ b/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/ComprehensiveRepositoryTest.java
@@ -20,6 +20,7 @@
package org.apache.maven.mercury.repository.tests;
import java.io.File;
+import java.io.FilenameFilter;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
@@ -77,6 +78,8 @@
List<Repository> _lrs;
List<Repository> _repos;
+ private static final boolean isWindows = File.pathSeparatorChar == ';';
+
@Override
protected void setUp()
@@ -84,23 +87,32 @@
{
super.setUp();
+ String prefix = "-t-";
+ String suffix = "-t";
+ File temp = File.createTempFile( prefix, suffix );
+
DependencyProcessor dp = new MavenDependencyProcessor();
Credentials user = new Credentials("foo","bar");
- _base1 = new File( "./target/webdav1" );
- FileUtil.delete( _base1 );
+ _base1 = new File( "./target/webdav1" + temp.getName() );
+// FileUtil.delete( _base1 );
+ assertFalse( _base1.exists() );
_base1.mkdirs();
- _server1 = new WebDavServer( 0, _base1, _context1, getContainer(), 9, "mercury-test-1" );
+ _base1.deleteOnExit();
+ _server1 = new WebDavServer( 0, _base1, _context1, getContainer(), 9, null, _base1.getCanonicalPath() );
_server1.start();
_port1 = _server1.getPort();
Server server = new Server("rr1", new URL("http://localhost:"+_port1+_context1), false, false, user );
_rr1 = new RemoteRepositoryM2( server, dp );
- _base2 = new File( "./target/webdav2" );
- FileUtil.delete( _base2 );
+ temp = File.createTempFile( prefix, suffix );
+ _base2 = new File( "./target/webdav2" + temp.getName() );
+// FileUtil.delete( _base2 );
+ assertFalse( _base2.exists() );
_base2.mkdirs();
- _server2 = new WebDavServer( 0, _base2, _context2, getContainer(), 9, "mercury-test-2" );
+ _base2.deleteOnExit();
+ _server2 = new WebDavServer( 0, _base2, _context2, getContainer(), 9, null, _base2.getCanonicalPath() );
_server2.start();
_port2 = _server2.getPort();
@@ -111,14 +123,20 @@
_rrs.add( _rr1 );
_rrs.add( _rr2 );
- _lbase1 = new File( _local1 );
- FileUtil.delete( _lbase1 );
- _lbase1.mkdirs();
+ temp = File.createTempFile( prefix, suffix );
+ _lbase1 = new File( _local1 + temp.getName() );
+// FileUtil.delete( _lbase1 );
+ assertFalse( _lbase1.exists() );
+ _lbase1.mkdirs() ;
+ _lbase1.deleteOnExit();
_lr1 = new LocalRepositoryM2( "lr1", _lbase1, dp );
- _lbase2 = new File( _local2 );
- FileUtil.delete( _lbase2 );
+ temp = File.createTempFile( prefix, suffix );
+ _lbase2 = new File( _local2 + temp.getName() );
+// FileUtil.delete( _lbase2 );
+ assertFalse( _lbase2.exists() );
_lbase2.mkdirs();
+ _lbase2.deleteOnExit();
_lr2 = new LocalRepositoryM2( "lr2", _lbase2, dp );
_lrs = new ArrayList<Repository>(2);
@@ -153,9 +171,30 @@
}
catch( Exception e ) {}
finally { _server2 = null; }
+
+ File target = new File( "target" );
+ File [] files = target.listFiles(
+ new FilenameFilter()
+ {
+
+ public boolean accept( File dir, String name )
+ {
+ if( name.startsWith( "webdav" ))
+ return true;
+ return false;
+ }
+
+ }
+ );
+
+ for( File f : files )
+ {
+ FileUtil.delete( f );
+ System.out.println("dropping "+f.getAbsolutePath() );
+ }
}
- public void writeArtifact( String name, File af, File ap, Repository repo )
+ public void writeArtifact( String name, File af, File ap, Repository repo, File expectedFile )
throws Exception
{
DefaultArtifact da = new DefaultArtifact( new ArtifactBasicMetadata(name) );
@@ -166,6 +205,18 @@
al.add( da );
repo.getWriter().writeArtifacts( al );
+
+ int count = 10;
+
+ if( expectedFile != null )
+ {
+ while( ! expectedFile.exists() && count > 0 )
+ {
+// if( isWindows )
+ Thread.sleep( 1000L );
+ count--;
+ }
+ }
}
public List<Artifact> readArtifact( String name , List<Repository> repos )
@@ -226,7 +277,7 @@
assertFalse( aJar1.exists() );
assertFalse( aJar2.exists() );
- writeArtifact( name, af, ap, _rr2 );
+ writeArtifact( name, af, ap, _rr2, aJar2 );
assertFalse( aJar1.exists() );
assertTrue( aJar2.exists() );
@@ -261,7 +312,7 @@
assertFalse( aJar1.exists() );
assertFalse( aJar2.exists() );
- writeArtifact( name, af, ap, _rr2 );
+ writeArtifact( name, af, ap, _rr2, aJar2 );
assertFalse( aJar1.exists() );
assertTrue( aJar2.exists() );
@@ -297,7 +348,7 @@
assertFalse( aJar1.exists() );
assertFalse( aJar2.exists() );
- writeArtifact( name, af, ap, _lr2 );
+ writeArtifact( name, af, ap, _lr2, aJar2 );
assertFalse( aJar1.exists() );
assertTrue( aJar2.exists() );
@@ -327,7 +378,7 @@
assertFalse( aJar1.exists() );
assertFalse( aJar2.exists() );
- writeArtifact( name, af, ap, _rr2 );
+ writeArtifact( name, af, ap, _rr2, aJar2 );
assertFalse( aJar1.exists() );
assertTrue( aJar2.exists() );
@@ -348,6 +399,31 @@
assertFalse( localRepo2Jar.exists() );
}
+ public void testWriteReadSnapshotLocal()
+ throws Exception
+ {
+ String name = "org.apache.maven:maven-core:2.0.9-SNAPSHOT";
+
+ File af = new File( _resourceBase, "maven-core-2.0.9.jar" );
+ File ap = new File( _resourceBase, "maven-core-2.0.9.pom" );
+
+ File aJar1 = new File( _lbase1, "org/apache/maven/maven-core/2.0.9-SNAPSHOT/maven-core-2.0.9-SNAPSHOT.jar");
+ File aJar2 = new File( _lbase2, "org/apache/maven/maven-core/2.0.9-SNAPSHOT/maven-core-2.0.9-SNAPSHOT.jar");
+
+ assertFalse( aJar1.exists() );
+ assertFalse( aJar2.exists() );
+
+ writeArtifact( name, af, ap, _lr2, aJar2 );
+
+ assertFalse( aJar1.exists() );
+ assertTrue( aJar2.exists() );
+
+ List<Artifact> al = readArtifact( name, _lrs );
+
+ assertTrue( aJar1.exists() );
+ assertTrue( aJar2.exists() );
+ }
+
public void testWriteTimestampReadSnapshotSingleRepo()
throws Exception
{
@@ -358,8 +434,44 @@
File af = new File( _resourceBase, "maven-core-2.0.9.jar" );
File ap = new File( _resourceBase, "maven-core-2.0.9.pom" );
- writeArtifact( nameTS1, af, ap, _rr2 );
- writeArtifact( nameTS2, af, ap, _rr1 );
+ File aJar = new File( _base2, "org/apache/maven/maven-core/2.0.9-SNAPSHOT/maven-core-2.0.9-20090204.232323-23.jar");
+
+ writeArtifact( nameTS1, af, ap, _rr2, aJar );
+
+ aJar = new File( _base2, "org/apache/maven/maven-core/2.0.9-SNAPSHOT/maven-core-2.0.9-20090204.232324-24.jar");
+ writeArtifact( nameTS2, af, ap, _rr2, aJar );
+
+ List<Artifact> al = readArtifact( nameSN, _rrs );
+
+ System.out.println(al);
+
+ assertNotNull( al );
+
+ assertEquals( 1, al.size() );
+
+ Artifact aSN = al.get( 0 );
+
+ assertNotNull( aSN.getFile() );
+
+ assertTrue( aSN.getFile().exists() );
+
+ assertEquals( "2.0.9-20090204.232324-24", aSN.getVersion() );
+ }
+
+ public void testWriteTimestampReadSnapshotSingleRepoSN()
+ throws Exception
+ {
+ String nameTS1 = "org.apache.maven:maven-core:2.0.9-20090204.232323-23";
+ String nameTS2 = "org.apache.maven:maven-core:2.0.9-20090204.232324-24";
+ String nameSN = "org.apache.maven:maven-core:2.0.9-SNAPSHOT";
+
+ File af = new File( _resourceBase, "maven-core-2.0.9.jar" );
+ File ap = new File( _resourceBase, "maven-core-2.0.9.pom" );
+
+ File aJar = new File( _base2, "org/apache/maven/maven-core/2.0.9-SNAPSHOT/maven-core-2.0.9-20090204.232323-23.jar");
+ writeArtifact( nameTS1, af, ap, _rr2, aJar );
+ writeArtifact( nameTS2, af, ap, _rr2, null );
+ writeArtifact( nameSN, af, ap, _rr2, null );
List<ArtifactBasicMetadata> vl = readVersions( nameSN, _rrs );
@@ -382,5 +494,237 @@
assertNotNull( aSN.getFile() );
assertTrue( aSN.getFile().exists() );
+
+ assertEquals( "2.0.9-SNAPSHOT", aSN.getVersion() );
+ }
+
+ public void testWriteTimestampReadSnapshot2Repos()
+ throws Exception
+ {
+ String nameTS1 = "org.apache.maven:maven-core:2.0.9-20090204.232323-23";
+ String nameTS2 = "org.apache.maven:maven-core:2.0.9-20090204.232324-24";
+ String nameSN = "org.apache.maven:maven-core:2.0.9-SNAPSHOT";
+
+ File af = new File( _resourceBase, "maven-core-2.0.9.jar" );
+ File ap = new File( _resourceBase, "maven-core-2.0.9.pom" );
+
+ File aJar = new File( _base2, "org/apache/maven/maven-core/2.0.9-SNAPSHOT/maven-core-2.0.9-20090204.232323-23.jar");
+ writeArtifact( nameTS1, af, ap, _rr2, aJar );
+
+ aJar = new File( _base1, "org/apache/maven/maven-core/2.0.9-SNAPSHOT/maven-core-2.0.9-20090204.232324-24.jar");
+ writeArtifact( nameTS2, af, ap, _rr1, aJar );
+
+ List<ArtifactBasicMetadata> vl = readVersions( nameSN, _rrs );
+
+ System.out.println(vl);
+
+ assertNotNull( vl );
+
+ assertEquals( 1, vl.size() );
+
+ List<Artifact> al = readArtifact( nameSN, _rrs );
+
+ System.out.println(al);
+
+ assertNotNull( al );
+
+ assertEquals( 1, al.size() );
+
+ Artifact aSN = al.get( 0 );
+
+ assertNotNull( aSN.getFile() );
+
+ assertTrue( aSN.getFile().exists() );
+
+ assertEquals( "2.0.9-20090204.232324-24", aSN.getVersion() );
+ }
+
+ public void testWriteTimestampReadSnapshot2ReposReversed()
+ throws Exception
+ {
+ String nameTS1 = "org.apache.maven:maven-core:2.0.9-20090204.232323-23";
+ String nameTS2 = "org.apache.maven:maven-core:2.0.9-20090204.232324-24";
+ String nameSN = "org.apache.maven:maven-core:2.0.9-SNAPSHOT";
+
+ File af = new File( _resourceBase, "maven-core-2.0.9.jar" );
+ File ap = new File( _resourceBase, "maven-core-2.0.9.pom" );
+
+ File aJar = new File( _base1, "org/apache/maven/maven-core/2.0.9-SNAPSHOT/maven-core-2.0.9-20090204.232323-23.jar");
+ writeArtifact( nameTS1, af, ap, _rr1, aJar );
+
+ aJar = new File( _base2, "org/apache/maven/maven-core/2.0.9-SNAPSHOT/maven-core-2.0.9-20090204.232324-24.jar");
+ writeArtifact( nameTS2, af, ap, _rr2, aJar );
+
+ List<ArtifactBasicMetadata> vl = readVersions( nameSN, _rrs );
+
+ System.out.println(vl);
+
+ assertNotNull( vl );
+
+ assertEquals( 1, vl.size() );
+
+ List<Artifact> al = readArtifact( nameSN, _rrs );
+
+ System.out.println(al);
+
+ assertNotNull( al );
+
+ assertEquals( 1, al.size() );
+
+ Artifact aSN = al.get( 0 );
+
+ assertNotNull( aSN.getFile() );
+
+ assertTrue( aSN.getFile().exists() );
+
+ assertEquals( "2.0.9-20090204.232324-24", aSN.getVersion() );
+ }
+
+ public void testLatest()
+ throws Exception
+ {
+ String nameTS1 = "org.apache.maven:maven-core:2.0.9-20090204.232323-23";
+ String nameTS2 = "org.apache.maven:maven-core:2.0.9-20090204.232324-24";
+ String nameRL = "org.apache.maven:maven-core:2.0.8";
+ String nameLT = "org.apache.maven:maven-core:LATEST";
+
+ File af = new File( _resourceBase, "maven-core-2.0.9.jar" );
+ File ap = new File( _resourceBase, "maven-core-2.0.9.pom" );
+
+ File aJar = new File( _base2, "org/apache/maven/maven-core/2.0.9-SNAPSHOT/maven-core-2.0.9-20090204.232323-23.jar");
+ writeArtifact( nameTS1, af, ap, _rr2, aJar );
+
+ aJar = new File( _base1, "org/apache/maven/maven-core/2.0.9-SNAPSHOT/maven-core-2.0.9-20090204.232324-24.jar");
+ writeArtifact( nameTS2, af, ap, _rr1, aJar );
+
+ aJar = new File( _base2, "org/apache/maven/maven-core/2.0.8/maven-core-2.0.8.jar");
+ writeArtifact( nameRL, af, ap, _rr2, aJar );
+
+ List<Artifact> al = readArtifact( nameLT, _rrs );
+
+ System.out.println(al);
+
+ assertNotNull( al );
+
+ assertEquals( 1, al.size() );
+
+ Artifact aSN = al.get( 0 );
+
+ assertNotNull( aSN.getFile() );
+
+ assertTrue( aSN.getFile().exists() );
+
+ assertEquals( "2.0.9-20090204.232324-24", aSN.getVersion() );
+ }
+
+ public void testLatestLocal()
+ throws Exception
+ {
+ String nameTS1 = "org.apache.maven:maven-core:2.0.9-20090204.232323-23";
+ String nameTS2 = "org.apache.maven:maven-core:2.0.9-20090204.232324-24";
+ String nameRL = "org.apache.maven:maven-core:2.0.8";
+ String nameLT = "org.apache.maven:maven-core:LATEST";
+
+ File af = new File( _resourceBase, "maven-core-2.0.9.jar" );
+ File ap = new File( _resourceBase, "maven-core-2.0.9.pom" );
+
+ File aJar = new File( _lbase2, "org/apache/maven/maven-core/2.0.9-SNAPSHOT/maven-core-2.0.9-20090204.232323-23.jar");
+ writeArtifact( nameTS1, af, ap, _lr2, aJar );
+
+ aJar = new File( _lbase1, "org/apache/maven/maven-core/2.0.9-SNAPSHOT/maven-core-2.0.9-20090204.232324-24.jar");
+ writeArtifact( nameTS2, af, ap, _lr1, aJar );
+
+ aJar = new File( _lbase2, "org/apache/maven/maven-core/2.0.8/maven-core-2.0.8.jar");
+ writeArtifact( nameRL, af, ap, _lr2, aJar );
+
+ List<Artifact> al = readArtifact( nameLT, _lrs );
+
+ System.out.println(al);
+
+ assertNotNull( al );
+
+ assertEquals( 1, al.size() );
+
+ Artifact aSN = al.get( 0 );
+
+ assertNotNull( aSN.getFile() );
+
+ assertTrue( aSN.getFile().exists() );
+
+ assertEquals( "2.0.9-20090204.232324-24", aSN.getVersion() );
+ }
+
+ public void testRelease()
+ throws Exception
+ {
+ String nameTS1 = "org.apache.maven:maven-core:2.0.9-20090204.232323-23";
+ String nameTS2 = "org.apache.maven:maven-core:2.0.9-20090204.232324-24";
+ String nameRL = "org.apache.maven:maven-core:2.0.8";
+ String name = "org.apache.maven:maven-core:RELEASE";
+
+ File af = new File( _resourceBase, "maven-core-2.0.9.jar" );
+ File ap = new File( _resourceBase, "maven-core-2.0.9.pom" );
+
+ File aJar = new File( _base2, "org/apache/maven/maven-core/2.0.9-SNAPSHOT/maven-core-2.0.9-20090204.232323-23.jar");
+ writeArtifact( nameTS1, af, ap, _rr2, aJar );
+
+ aJar = new File( _base1, "org/apache/maven/maven-core/2.0.9-SNAPSHOT/maven-core-2.0.9-20090204.232324-24.jar");
+ writeArtifact( nameTS2, af, ap, _rr1, aJar );
+
+ aJar = new File( _base2, "org/apache/maven/maven-core/2.0.8/maven-core-2.0.8.jar");
+ writeArtifact( nameRL, af, ap, _rr2, aJar );
+
+ List<Artifact> al = readArtifact( name, _rrs );
+
+ System.out.println(al);
+
+ assertNotNull( al );
+
+ assertEquals( 1, al.size() );
+
+ Artifact aSN = al.get( 0 );
+
+ assertNotNull( aSN.getFile() );
+
+ assertTrue( aSN.getFile().exists() );
+
+ assertEquals( "2.0.8", aSN.getVersion() );
+ }
+
+ public void testReleaseLocal()
+ throws Exception
+ {
+ String nameTS1 = "org.apache.maven:maven-core:2.0.9-20090204.232323-23";
+ String nameTS2 = "org.apache.maven:maven-core:2.0.9-20090204.232324-24";
+ String nameRL = "org.apache.maven:maven-core:2.0.8";
+ String name = "org.apache.maven:maven-core:RELEASE";
+
+ File af = new File( _resourceBase, "maven-core-2.0.9.jar" );
+ File ap = new File( _resourceBase, "maven-core-2.0.9.pom" );
+
+ File aJar = new File( _lbase2, "org/apache/maven/maven-core/2.0.9-SNAPSHOT/maven-core-2.0.9-20090204.232323-23.jar");
+ writeArtifact( nameTS1, af, ap, _lr2, aJar );
+
+ aJar = new File( _lbase1, "org/apache/maven/maven-core/2.0.9-SNAPSHOT/maven-core-2.0.9-20090204.232324-24.jar");
+ writeArtifact( nameTS2, af, ap, _lr1, aJar );
+
+ aJar = new File( _lbase2, "org/apache/maven/maven-core/2.0.8/maven-core-2.0.8.jar");
+ writeArtifact( nameRL, af, ap, _lr2, aJar );
+
+ List<Artifact> al = readArtifact( name, _lrs );
+
+ System.out.println(al);
+
+ assertNotNull( al );
+
+ assertEquals( 1, al.size() );
+
+ Artifact aSN = al.get( 0 );
+
+ assertNotNull( aSN.getFile() );
+
+ assertTrue( aSN.getFile().exists() );
+
+ assertEquals( "2.0.8", aSN.getVersion() );
}
}
diff --git a/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/DavServerTest.java b/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/DavServerTest.java
index 0ecb4ac..c195665 100644
--- a/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/DavServerTest.java
+++ b/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/DavServerTest.java
@@ -47,31 +47,49 @@
public class DavServerTest
extends PlexusTestCase
{
- static final String _davContext = "/webdav";
-
static final String _user = "foo";
static final String _pass = "bar";
+ // repo1
WebDavServer _dav;
File _base;
RemoteRepositoryM2 _davRepo;
+
+ // repo2
+ WebDavServer _dav2;
+
+ File _base2;
+
+ RemoteRepositoryM2 _davRepo2;
+ static final String _davContext = "/webdav";
+
+ static final String _davContext2 = "/webdav2test";
+
//---------------------------------------------------------------------------------------------
protected void setUp()
throws Exception
{
super.setUp();
+ setUp1();
+
+ setUp2();
+ }
+ //---------------------------------------------------------------------------------------------
+ protected void setUp1()
+ throws Exception
+ {
_base = new File( "./target", _davContext );
FileUtil.delete( _base );
_base.mkdirs();
- _dav = new WebDavServer( 0, _base, _davContext, getContainer(), 9, "mercury-test" );
+ _dav = new WebDavServer( 0, _base, _davContext, getContainer(), 9, "mercury-test", null );
_dav.start();
@@ -84,6 +102,28 @@
_davRepo = new RemoteRepositoryM2( server, new MavenDependencyProcessor() );
}
//---------------------------------------------------------------------------------------------
+ protected void setUp2()
+ throws Exception
+ {
+ _base2 = new File( "./target", _davContext2 );
+
+ FileUtil.delete( _base2 );
+
+ _base2.mkdirs();
+
+ _dav2 = new WebDavServer( 0, _base2, _davContext2, getContainer(), 9, null, _base2.getAbsolutePath() );
+
+ _dav2.start();
+
+ Credentials user = new Credentials(_user,_pass);
+
+ Server server = new Server("dav2", new URL("http://localhost:"+_dav2.getPort()+_davContext2), false, false, user );
+
+ System.out.println("URL: "+server.getURL() );
+
+ _davRepo2 = new RemoteRepositoryM2( server, new MavenDependencyProcessor() );
+ }
+ //---------------------------------------------------------------------------------------------
protected void tearDown()
throws Exception
{
@@ -95,6 +135,13 @@
_dav.destroy();
_dav = null;
}
+
+ if( _dav2 != null )
+ {
+ _dav2.stop();
+ _dav2.destroy();
+ _dav2 = null;
+ }
}
//---------------------------------------------------------------------------------------------
public void testDavWrite()
@@ -162,4 +209,69 @@
assertEquals( "test-pom".length(), a.getFile().length() );
}
//---------------------------------------------------------------------------------------------
+ public void testDavWrite2()
+ throws Exception
+ {
+ File jar = new File("./target/test.jar");
+ FileUtil.writeRawData( jar, "test-jar" );
+
+ File pom = new File("./target/test.pom");
+ FileUtil.writeRawData( pom, "test-pom" );
+
+ DefaultArtifact da = new DefaultArtifact( new ArtifactBasicMetadata("a:test:1.0") );
+ da.setFile( jar );
+ da.setPomBlob( FileUtil.readRawData( pom ) );
+
+ List<Artifact> al = new ArrayList<Artifact>( 8 );
+ al.add( da );
+
+ RepositoryWriter rw = _davRepo2.getWriter();
+
+ rw.writeArtifacts( al );
+
+ File davJar = new File( _base2, "a/test/1.0/test-1.0.jar" );
+
+ assertTrue( davJar.exists() );
+
+ assertEquals( jar.length(), davJar.length() );
+ }
+ //---------------------------------------------------------------------------------------------
+ public void testDavRead2()
+ throws Exception
+ {
+ testDavWrite2();
+
+ ArtifactBasicMetadata bmd = new ArtifactBasicMetadata("a:test:1.0");
+
+ List<ArtifactBasicMetadata> query = new ArrayList<ArtifactBasicMetadata>( 1 );
+
+ query.add( bmd );
+
+ RepositoryReader rr = _davRepo2.getReader();
+
+ ArtifactResults res = rr.readArtifacts( query );
+
+ assertNotNull( res );
+
+ assertFalse( res.hasExceptions() );
+
+ assertTrue( res.hasResults() );
+
+ List<Artifact> al = res.getResults( bmd );
+
+ assertNotNull( al );
+
+ assertFalse( al.isEmpty() );
+
+ Artifact a = al.get( 0 );
+
+ assertNotNull( a );
+
+ assertNotNull( a.getFile() );
+
+ assertTrue( a.getFile().exists() );
+
+ assertEquals( "test-pom".length(), a.getFile().length() );
+ }
+ //---------------------------------------------------------------------------------------------
}
diff --git a/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/RemoteRepositoryWriterM2Test.java b/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/RemoteRepositoryWriterM2Test.java
index a9418de..57e87e9 100644
--- a/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/RemoteRepositoryWriterM2Test.java
+++ b/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/RemoteRepositoryWriterM2Test.java
@@ -79,7 +79,7 @@
targetDirectory.mkdirs();
- _dav = new WebDavServer( 0, targetDirectory, _davContext, getContainer(), 9, baseHint );
+ _dav = new WebDavServer( 0, targetDirectory, _davContext, getContainer(), 9, baseHint, null );
_dav.start();
diff --git a/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/WebDavServer.java b/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/WebDavServer.java
index f5ee5e8..5b0de6e 100644
--- a/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/WebDavServer.java
+++ b/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/WebDavServer.java
@@ -51,6 +51,7 @@
, PlexusContainer container
, int debugLevel
, String fileCollectionHint
+ , String fileCollectionBase
)
throws Exception
{
@@ -81,7 +82,17 @@
context.setAttribute( PlexusConstants.PLEXUS_KEY, container );
context.setResourceBase( base.getCanonicalPath() );
- context.setAttribute( "resourceCollectionHint", fileCollectionHint );
+ if( fileCollectionBase != null )
+ {
+ context.setAttribute( "resourceCollectionBase", fileCollectionBase );
+ System.out.println("webDav resource base: "+fileCollectionBase);
+ }
+ else
+ {
+ context.setAttribute( "resourceCollectionHint", fileCollectionHint );
+ System.out.println("webDav resource hint: "+fileCollectionHint);
+ }
+
context.setAttribute( "debug", debugLevel+"" );
// Map<String,String> initParams = new HashMap<String, String>(8);
diff --git a/mercury-it/src/test/resources/remoteRepo/asm/asm-parent/3.0/asm-parent-3.0.pom b/mercury-it/src/test/resources/remoteRepo/asm/asm-parent/3.0/asm-parent-3.0.pom
new file mode 100644
index 0000000..18fd6ee
--- /dev/null
+++ b/mercury-it/src/test/resources/remoteRepo/asm/asm-parent/3.0/asm-parent-3.0.pom
@@ -0,0 +1,91 @@
+<project>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>asm-parent</artifactId>
+ <groupId>asm</groupId>
+ <version>3.0</version>
+ <packaging>pom</packaging>
+
+ <name>ASM</name>
+ <description>A very small and fast Java bytecode manipulation framework</description>
+ <url>http://asm.objectweb.org/</url>
+
+ <organization>
+ <name>ObjectWeb</name>
+ <url>http://www.objectweb.org/</url>
+ </organization>
+ <inceptionYear>2000</inceptionYear>
+
+ <developers>
+ <developer>
+ <name>Eric Bruneton</name>
+ <id>ebruneton</id>
+ <email>Eric.Bruneton@rd.francetelecom.com</email>
+ <roles>
+ <role>Creator</role>
+ <role>Java Developer</role>
+ </roles>
+ </developer>
+ <developer>
+ <name>Eugene Kuleshov</name>
+ <id>eu</id>
+ <email>eu@javatx.org</email>
+ <roles>
+ <role>Java Developer</role>
+ </roles>
+ </developer>
+ </developers>
+
+ <scm>
+ <connection>scm:cvs:pserver:anonymous@cvs.forge.objectweb.org:/cvsroot/asm:asm</connection>
+ <developerConnection>scm:cvs:ext:${maven.username}@cvs.forge.objectweb.org:/cvsroot/asm:asm</developerConnection>
+ <url>http://cvs.forge.objectweb.org/cgi-bin/viewcvs.cgi/asm/asm/</url>
+ </scm>
+
+ <issueManagement>
+ <url>http://forge.objectweb.org/tracker/?group_id=23</url>
+ </issueManagement>
+
+ <dependencyManagement>
+ <dependencies>
+
+ <dependency>
+ <artifactId>asm</artifactId>
+ <groupId>${project.groupId}</groupId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <artifactId>asm-tree</artifactId>
+ <groupId>${project.groupId}</groupId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <artifactId>asm-analysis</artifactId>
+ <groupId>${project.groupId}</groupId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <artifactId>asm-commons</artifactId>
+ <groupId>${project.groupId}</groupId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <artifactId>asm-util</artifactId>
+ <groupId>${project.groupId}</groupId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <artifactId>asm-xml</artifactId>
+ <groupId>${project.groupId}</groupId>
+ <version>${project.version}</version>
+ </dependency>
+
+ </dependencies>
+ </dependencyManagement>
+
+</project>
diff --git a/mercury-it/src/test/resources/remoteRepo/asm/asm-parent/3.0/asm-parent-3.0.pom.sha1 b/mercury-it/src/test/resources/remoteRepo/asm/asm-parent/3.0/asm-parent-3.0.pom.sha1
new file mode 100644
index 0000000..d7a8a9a
--- /dev/null
+++ b/mercury-it/src/test/resources/remoteRepo/asm/asm-parent/3.0/asm-parent-3.0.pom.sha1
@@ -0,0 +1 @@
+526bfebc865ac047ff3fa7d77924a4edff7ba468
\ No newline at end of file
diff --git a/mercury-it/src/test/resources/remoteRepo/asm/asm-tree/3.0/asm-tree-3.0.jar b/mercury-it/src/test/resources/remoteRepo/asm/asm-tree/3.0/asm-tree-3.0.jar
new file mode 100644
index 0000000..2a4b208
--- /dev/null
+++ b/mercury-it/src/test/resources/remoteRepo/asm/asm-tree/3.0/asm-tree-3.0.jar
Binary files differ
diff --git a/mercury-it/src/test/resources/remoteRepo/asm/asm-tree/3.0/asm-tree-3.0.jar.sha1 b/mercury-it/src/test/resources/remoteRepo/asm/asm-tree/3.0/asm-tree-3.0.jar.sha1
new file mode 100644
index 0000000..5803091
--- /dev/null
+++ b/mercury-it/src/test/resources/remoteRepo/asm/asm-tree/3.0/asm-tree-3.0.jar.sha1
@@ -0,0 +1 @@
+6fff655717d1e1871decfe9f8e46a531e8df3a31
\ No newline at end of file
diff --git a/mercury-it/src/test/resources/remoteRepo/asm/asm-tree/3.0/asm-tree-3.0.pom b/mercury-it/src/test/resources/remoteRepo/asm/asm-tree/3.0/asm-tree-3.0.pom
new file mode 100644
index 0000000..dcadce5
--- /dev/null
+++ b/mercury-it/src/test/resources/remoteRepo/asm/asm-tree/3.0/asm-tree-3.0.pom
@@ -0,0 +1,20 @@
+<?xml version="1.0"?><project>
+ <parent>
+ <artifactId>asm-parent</artifactId>
+ <groupId>asm</groupId>
+ <version>3.0</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>asm-tree</artifactId>
+ <name>ASM Tree</name>
+ <version>3.0</version>
+ <dependencies>
+ <dependency>
+ <groupId>asm</groupId>
+ <artifactId>asm</artifactId>
+ </dependency>
+ </dependencies>
+ <distributionManagement>
+ <status>deployed</status>
+ </distributionManagement>
+</project>
\ No newline at end of file
diff --git a/mercury-it/src/test/resources/remoteRepo/asm/asm-tree/3.0/asm-tree-3.0.pom.sha1 b/mercury-it/src/test/resources/remoteRepo/asm/asm-tree/3.0/asm-tree-3.0.pom.sha1
new file mode 100644
index 0000000..9da1941
--- /dev/null
+++ b/mercury-it/src/test/resources/remoteRepo/asm/asm-tree/3.0/asm-tree-3.0.pom.sha1
@@ -0,0 +1 @@
+ab6cd3767b9d74674add377f571dc6fb28c867f9
\ No newline at end of file
diff --git a/mercury-it/src/test/resources/remoteRepo/asm/asm-util/3.0/asm-util-3.0.jar b/mercury-it/src/test/resources/remoteRepo/asm/asm-util/3.0/asm-util-3.0.jar
new file mode 100644
index 0000000..5133856
--- /dev/null
+++ b/mercury-it/src/test/resources/remoteRepo/asm/asm-util/3.0/asm-util-3.0.jar
Binary files differ
diff --git a/mercury-it/src/test/resources/remoteRepo/asm/asm-util/3.0/asm-util-3.0.jar.sha1 b/mercury-it/src/test/resources/remoteRepo/asm/asm-util/3.0/asm-util-3.0.jar.sha1
new file mode 100644
index 0000000..065cb38
--- /dev/null
+++ b/mercury-it/src/test/resources/remoteRepo/asm/asm-util/3.0/asm-util-3.0.jar.sha1
@@ -0,0 +1 @@
+948516ecc11fe78bc373aa68626d64bc51321a26
\ No newline at end of file
diff --git a/mercury-it/src/test/resources/remoteRepo/asm/asm-util/3.0/asm-util-3.0.pom b/mercury-it/src/test/resources/remoteRepo/asm/asm-util/3.0/asm-util-3.0.pom
new file mode 100644
index 0000000..9996c1c
--- /dev/null
+++ b/mercury-it/src/test/resources/remoteRepo/asm/asm-util/3.0/asm-util-3.0.pom
@@ -0,0 +1,20 @@
+<?xml version="1.0"?><project>
+ <parent>
+ <artifactId>asm-parent</artifactId>
+ <groupId>asm</groupId>
+ <version>3.0</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>asm-util</artifactId>
+ <name>ASM Util</name>
+ <version>3.0</version>
+ <dependencies>
+ <dependency>
+ <groupId>asm</groupId>
+ <artifactId>asm-tree</artifactId>
+ </dependency>
+ </dependencies>
+ <distributionManagement>
+ <status>deployed</status>
+ </distributionManagement>
+</project>
\ No newline at end of file
diff --git a/mercury-it/src/test/resources/remoteRepo/asm/asm-util/3.0/asm-util-3.0.pom.sha1 b/mercury-it/src/test/resources/remoteRepo/asm/asm-util/3.0/asm-util-3.0.pom.sha1
new file mode 100644
index 0000000..a4c102f
--- /dev/null
+++ b/mercury-it/src/test/resources/remoteRepo/asm/asm-util/3.0/asm-util-3.0.pom.sha1
@@ -0,0 +1 @@
+93889a96e9d131986748858c5530c36990f4efff
\ No newline at end of file
diff --git a/mercury-it/src/test/resources/remoteRepo/asm/asm-xml/3.0/asm-xml-3.0.jar b/mercury-it/src/test/resources/remoteRepo/asm/asm-xml/3.0/asm-xml-3.0.jar
new file mode 100644
index 0000000..cd55000
--- /dev/null
+++ b/mercury-it/src/test/resources/remoteRepo/asm/asm-xml/3.0/asm-xml-3.0.jar
Binary files differ
diff --git a/mercury-it/src/test/resources/remoteRepo/asm/asm-xml/3.0/asm-xml-3.0.jar.sha1 b/mercury-it/src/test/resources/remoteRepo/asm/asm-xml/3.0/asm-xml-3.0.jar.sha1
new file mode 100644
index 0000000..9c7479e
--- /dev/null
+++ b/mercury-it/src/test/resources/remoteRepo/asm/asm-xml/3.0/asm-xml-3.0.jar.sha1
@@ -0,0 +1 @@
+f37fac6e8563334d0d6960fec5c5cdaf65c69b6f
\ No newline at end of file
diff --git a/mercury-it/src/test/resources/remoteRepo/asm/asm-xml/3.0/asm-xml-3.0.pom b/mercury-it/src/test/resources/remoteRepo/asm/asm-xml/3.0/asm-xml-3.0.pom
new file mode 100644
index 0000000..83f0060
--- /dev/null
+++ b/mercury-it/src/test/resources/remoteRepo/asm/asm-xml/3.0/asm-xml-3.0.pom
@@ -0,0 +1,20 @@
+<?xml version="1.0"?><project>
+ <parent>
+ <artifactId>asm-parent</artifactId>
+ <groupId>asm</groupId>
+ <version>3.0</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>asm-xml</artifactId>
+ <name>ASM XML</name>
+ <version>3.0</version>
+ <dependencies>
+ <dependency>
+ <groupId>asm</groupId>
+ <artifactId>asm-util</artifactId>
+ </dependency>
+ </dependencies>
+ <distributionManagement>
+ <status>deployed</status>
+ </distributionManagement>
+</project>
\ No newline at end of file
diff --git a/mercury-it/src/test/resources/remoteRepo/asm/asm-xml/3.0/asm-xml-3.0.pom.sha1 b/mercury-it/src/test/resources/remoteRepo/asm/asm-xml/3.0/asm-xml-3.0.pom.sha1
new file mode 100644
index 0000000..fac9bea
--- /dev/null
+++ b/mercury-it/src/test/resources/remoteRepo/asm/asm-xml/3.0/asm-xml-3.0.pom.sha1
@@ -0,0 +1 @@
+e4f53862352dcbeab566b761283dd94c30326943
\ No newline at end of file
diff --git a/mercury-it/src/test/resources/remoteRepo/asm/asm/3.0/asm-3.0.jar b/mercury-it/src/test/resources/remoteRepo/asm/asm/3.0/asm-3.0.jar
new file mode 100644
index 0000000..112f5bd
--- /dev/null
+++ b/mercury-it/src/test/resources/remoteRepo/asm/asm/3.0/asm-3.0.jar
Binary files differ
diff --git a/mercury-it/src/test/resources/remoteRepo/asm/asm/3.0/asm-3.0.jar.sha1 b/mercury-it/src/test/resources/remoteRepo/asm/asm/3.0/asm-3.0.jar.sha1
new file mode 100644
index 0000000..276f2b7
--- /dev/null
+++ b/mercury-it/src/test/resources/remoteRepo/asm/asm/3.0/asm-3.0.jar.sha1
@@ -0,0 +1 @@
+d1616c03f056291a2314510dea75739b15b4d415
\ No newline at end of file
diff --git a/mercury-it/src/test/resources/remoteRepo/asm/asm/3.0/asm-3.0.pom b/mercury-it/src/test/resources/remoteRepo/asm/asm/3.0/asm-3.0.pom
new file mode 100644
index 0000000..aedbcee
--- /dev/null
+++ b/mercury-it/src/test/resources/remoteRepo/asm/asm/3.0/asm-3.0.pom
@@ -0,0 +1,14 @@
+<?xml version="1.0"?><project>
+ <parent>
+ <artifactId>asm-parent</artifactId>
+ <groupId>asm</groupId>
+ <version>3.0</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>asm</artifactId>
+ <name>ASM Core</name>
+ <version>3.0</version>
+ <distributionManagement>
+ <status>deployed</status>
+ </distributionManagement>
+</project>
\ No newline at end of file
diff --git a/mercury-it/src/test/resources/remoteRepo/asm/asm/3.0/asm-3.0.pom.sha1 b/mercury-it/src/test/resources/remoteRepo/asm/asm/3.0/asm-3.0.pom.sha1
new file mode 100644
index 0000000..ef21b66
--- /dev/null
+++ b/mercury-it/src/test/resources/remoteRepo/asm/asm/3.0/asm-3.0.pom.sha1
@@ -0,0 +1 @@
+b48a64347352256722f848007cfe92939ec04747
\ No newline at end of file
diff --git a/mercury-logging/pom.xml b/mercury-logging/pom.xml
index cf896e5..9b8269b 100644
--- a/mercury-logging/pom.xml
+++ b/mercury-logging/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury</artifactId>
- <version>1.0-alpha-5-SNAPSHOT</version> </parent>
+ <version>1.0-alpha-5</version> </parent>
<artifactId>mercury-logging</artifactId>
diff --git a/mercury-maven/list-.txt b/mercury-maven/list-.txt
index fe4fec6..7571f5f 100644
--- a/mercury-maven/list-.txt
+++ b/mercury-maven/list-.txt
@@ -1,29 +1,8 @@
asm:asm-xml:3.0
org.apache.maven.plugins:maven-antrun-plugin:1.2
-org.apache.maven.plugins:maven-archetypeng-plugin:2.0
org.apache.maven.plugins:maven-assembly-plugin:2.1
org.apache.maven.plugins:maven-changelog-plugin:2.1
org.apache.maven.plugins:maven-checkstyle-plugin:2.1
org.apache.maven.plugins:maven-clean-plugin:2.2
org.apache.maven.plugins:maven-compiler-plugin:2.0.2
-org.apache.maven.plugins:maven-dependency-plugin:2.0
-org.apache.maven.plugins:maven-deploy-plugin:2.4
-org.apache.maven.plugins:maven-ear-plugin:2.3.1
-org.apache.maven.plugins:maven-eclipse-plugin:2.4
-org.apache.maven.plugins:maven-ejb-plugin:2.1
-org.apache.maven.plugins:maven-help-plugin:2.0.2
-org.apache.maven.plugins:maven-install-plugin:2.2
-org.apache.maven.plugins:maven-jar-plugin:2.2
-org.apache.maven.plugins:maven-javadoc-plugin:2.4
-org.apache.maven.plugins:maven-jxr-plugin:2.1
-org.apache.maven.plugins:maven-plugin-parent:2.0.1
-org.apache.maven.plugins:maven-plugin-plugin:2.4.3
-org.apache.maven.plugins:maven-pmd-plugin:2.4
-org.apache.maven.plugins:maven-project-info-reports-plugin:2.0.1
-org.apache.maven.plugins:maven-rar-plugin:2.2
-org.apache.maven.plugins:maven-remote-resources-plugin:1.0
-org.apache.maven.plugins:maven-resources-plugin:2.3
-org.apache.maven.plugins:maven-shade-plugin:1.1
-org.apache.maven.plugins:maven-source-plugin:2.0.4
-org.apache.maven.plugins:maven-surefire-plugin:2.4.3
org.apache.maven.plugins:maven-surefire-report-plugin:2.4.3
diff --git a/mercury-maven/list-plugins.txt b/mercury-maven/list-plugins.txt
new file mode 100644
index 0000000..fe4fec6
--- /dev/null
+++ b/mercury-maven/list-plugins.txt
@@ -0,0 +1,29 @@
+asm:asm-xml:3.0
+org.apache.maven.plugins:maven-antrun-plugin:1.2
+org.apache.maven.plugins:maven-archetypeng-plugin:2.0
+org.apache.maven.plugins:maven-assembly-plugin:2.1
+org.apache.maven.plugins:maven-changelog-plugin:2.1
+org.apache.maven.plugins:maven-checkstyle-plugin:2.1
+org.apache.maven.plugins:maven-clean-plugin:2.2
+org.apache.maven.plugins:maven-compiler-plugin:2.0.2
+org.apache.maven.plugins:maven-dependency-plugin:2.0
+org.apache.maven.plugins:maven-deploy-plugin:2.4
+org.apache.maven.plugins:maven-ear-plugin:2.3.1
+org.apache.maven.plugins:maven-eclipse-plugin:2.4
+org.apache.maven.plugins:maven-ejb-plugin:2.1
+org.apache.maven.plugins:maven-help-plugin:2.0.2
+org.apache.maven.plugins:maven-install-plugin:2.2
+org.apache.maven.plugins:maven-jar-plugin:2.2
+org.apache.maven.plugins:maven-javadoc-plugin:2.4
+org.apache.maven.plugins:maven-jxr-plugin:2.1
+org.apache.maven.plugins:maven-plugin-parent:2.0.1
+org.apache.maven.plugins:maven-plugin-plugin:2.4.3
+org.apache.maven.plugins:maven-pmd-plugin:2.4
+org.apache.maven.plugins:maven-project-info-reports-plugin:2.0.1
+org.apache.maven.plugins:maven-rar-plugin:2.2
+org.apache.maven.plugins:maven-remote-resources-plugin:1.0
+org.apache.maven.plugins:maven-resources-plugin:2.3
+org.apache.maven.plugins:maven-shade-plugin:1.1
+org.apache.maven.plugins:maven-source-plugin:2.0.4
+org.apache.maven.plugins:maven-surefire-plugin:2.4.3
+org.apache.maven.plugins:maven-surefire-report-plugin:2.4.3
diff --git a/mercury-maven/mercury-compare-maven-plugin/c b/mercury-maven/mercury-compare-maven-plugin/c
index 92c6e60..c1a15fd 100755
--- a/mercury-maven/mercury-compare-maven-plugin/c
+++ b/mercury-maven/mercury-compare-maven-plugin/c
@@ -1 +1,2 @@
-mvn -e -s s.xml org.sonatype.maven.plugins:mercury-compare-maven-plugin:1.0:deps -DtargetDir=../deps -DlistFile=../list.txt -DlocalRepo=../localRepoMaven
+mvn -e -s s.xml org.sonatype.maven.plugins:mercury-compare-maven-plugin:1.0-alpha-5-SNAPSHOT:deps -DtargetDir=../deps -DlistFile=../list.txt -DlocalRepo=../localRepoMaven
+#mvn -e -s s.xml org.sonatype.maven.plugins:mercury-compare-maven-plugin:1.0-alpha-5-SNAPSHOT:deps -DtargetDir=../deps -DlistFile=../list.txt -DlocalRepo=/app/maven.repo
diff --git a/mercury-maven/mercury-compare-maven-plugin/pom.xml b/mercury-maven/mercury-compare-maven-plugin/pom.xml
index a0458a0..ddd4657 100644
--- a/mercury-maven/mercury-compare-maven-plugin/pom.xml
+++ b/mercury-maven/mercury-compare-maven-plugin/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury</artifactId>
- <version>1.0.0-alpha-3-SNAPSHOT</version>
+ <version>1.0-alpha-5-SNAPSHOT</version>
</parent>
<groupId>org.sonatype.maven.plugins</groupId>
diff --git a/mercury-maven/mercury-compare-maven-plugin/s.xml b/mercury-maven/mercury-compare-maven-plugin/s.xml
index 1ec3b8e..505ad4c 100644
--- a/mercury-maven/mercury-compare-maven-plugin/s.xml
+++ b/mercury-maven/mercury-compare-maven-plugin/s.xml
@@ -22,7 +22,12 @@
<settings>
+<!--
<localRepository>/app/src/asf/maven/mercury/trunk/mercury-maven/localRepoMaven</localRepository>
+ <localRepository>/app/maven.repo</localRepository>
+-->
+ <localRepository>/app/src/asf/maven/mercury/trunk/mercury-maven/localRepoMaven</localRepository>
+
<profiles>
diff --git a/mercury-maven/mercury-compare-mdo/pom.xml b/mercury-maven/mercury-compare-mdo/pom.xml
index 24c7da0..80117aa 100644
--- a/mercury-maven/mercury-compare-mdo/pom.xml
+++ b/mercury-maven/mercury-compare-mdo/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury</artifactId>
- <version>1.0.0-alpha-3-SNAPSHOT</version>
+ <version>1.0-alpha-5-SNAPSHOT</version>
</parent>
<artifactId>mercury-compare-mdo</artifactId>
@@ -79,4 +79,4 @@
</plugin>
</plugins>
</build>
-</project>
\ No newline at end of file
+</project>
diff --git a/mercury-maven/mercury-compare-mercury/c b/mercury-maven/mercury-compare-mercury/c
index 624d26e..67816e6 100644
--- a/mercury-maven/mercury-compare-mercury/c
+++ b/mercury-maven/mercury-compare-mercury/c
@@ -1 +1 @@
-mvnDebug -X org.sonatype.maven.plugins:mercury-compare-plugin:1.0-test:compare -DlocalFileDir=./target/repo
+mvnDebug -X org.sonatype.maven.plugins:mercury-compare-plugin:1.0-alpha-5-SNAPSHOT:compare -DlocalFileDir=./target/repo
diff --git a/mercury-maven/mercury-compare-mercury/pom.xml b/mercury-maven/mercury-compare-mercury/pom.xml
index 47bcd41..3d1d678 100644
--- a/mercury-maven/mercury-compare-mercury/pom.xml
+++ b/mercury-maven/mercury-compare-mercury/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury</artifactId>
- <version>1.0.0-alpha-3-SNAPSHOT</version>
+ <version>1.0-alpha-5-SNAPSHOT</version>
</parent>
<groupId>org.sonatype.maven.plugins</groupId>
@@ -45,7 +45,7 @@
</developers>
<properties>
- <maven.version>3.0-alpha-1</maven.version>
+ <maven.version>3.0-SNAPSHOT</maven.version>
</properties>
<dependencies>
diff --git a/mercury-maven/mercury-compare-mercury/src/main/java/org/sonatype/maven/plugins/mercury/compare/MercuryResolve.java b/mercury-maven/mercury-compare-mercury/src/main/java/org/sonatype/maven/plugins/mercury/compare/MercuryResolve.java
index 196adf0..814c1c7 100644
--- a/mercury-maven/mercury-compare-mercury/src/main/java/org/sonatype/maven/plugins/mercury/compare/MercuryResolve.java
+++ b/mercury-maven/mercury-compare-mercury/src/main/java/org/sonatype/maven/plugins/mercury/compare/MercuryResolve.java
@@ -55,8 +55,8 @@
implements IDepResolver
{
static final String SYSTEM_PROPERTY_LOCAL_REPO = "localRepo";
- static final String localRepoDir = System.getProperty( SYSTEM_PROPERTY_LOCAL_REPO, "../localRepoMercury" );
-// static final String localRepoDir = System.getProperty( SYSTEM_PROPERTY_LOCAL_REPO, "../localRepoMaven" );
+// static final String localRepoDir = System.getProperty( SYSTEM_PROPERTY_LOCAL_REPO, "../localRepoMercury" );
+ static final String localRepoDir = System.getProperty( SYSTEM_PROPERTY_LOCAL_REPO, "/app/maven.repo" );
static final File localRepoDirFile = new File( localRepoDir );
static final String SYSTEM_PROPERTY_LIST_FILE = "list";
@@ -121,6 +121,7 @@
}
depBuilder = DependencyBuilderFactory.create( DependencyBuilderFactory.JAVA_DEPENDENCY_MODEL, repos, null, null, null );
+// depBuilder.register( new DumbListener() );
DataBuilder.visitDeps( listFile, mc );
@@ -162,10 +163,18 @@
MetadataTreeNode.showNode( root, 0 );
long ll = System.currentTimeMillis();
- System.out.println("BuildTree: " + (ll - start) );
+ long interval = ll - start;
+ int count = root.countNodes();
+ long timePerNode = count == 0L ? 0 : interval / count;
+
+ System.out.println("BuildTree: " + (ll - start)+" ms, " + count + " nodes, " + timePerNode+ " ms per node" );
List<ArtifactMetadata> dl = depBuilder.resolveConflicts( root );
- System.out.println("resolveDeps: " + (System.currentTimeMillis() - ll) );
+ interval = System.currentTimeMillis() - ll;
+ count = dl == null ? 0 : dl.size();
+ timePerNode = count == 0L ? 0 : interval / count;
+
+ System.out.println("resolveDeps: " + interval+ " ms, "+ count+" nodes, "+ timePerNode+" ms per node" );
File df = DataBuilder.getFile( targetDirFile, bmd.getGroupId(), bmd.getArtifactId(), bmd.getVersion(), bmd.getType() );
@@ -176,7 +185,9 @@
if( df.exists() )
{
deps = DataBuilder.read( df );
+
List l = deps.getMercury();
+
if( !Util.isEmpty( l ) )
l.clear();
}
@@ -192,17 +203,18 @@
deps.setMercuryMillis( System.currentTimeMillis() - start );
- for( ArtifactMetadata am : dl )
- {
- Dependency dep = new Dependency();
- dep.setGroupId( am.getGroupId() );
- dep.setArtifactId( am.getArtifactId() );
- dep.setVersion( am.getVersion() );
- dep.setType( am.getType() );
- dep.setScope( am.getScope() );
-
- deps.addMercury( dep );
- }
+ if(dl != null)
+ for( ArtifactMetadata am : dl )
+ {
+ Dependency dep = new Dependency();
+ dep.setGroupId( am.getGroupId() );
+ dep.setArtifactId( am.getArtifactId() );
+ dep.setVersion( am.getVersion() );
+ dep.setType( am.getType() );
+ dep.setScope( am.getScope() );
+
+ deps.addMercury( dep );
+ }
DataBuilder.write( deps, df );
diff --git a/mercury-maven/repositories.properties b/mercury-maven/repositories.properties
index 22a9d2b..0196cc7 100644
--- a/mercury-maven/repositories.properties
+++ b/mercury-maven/repositories.properties
@@ -16,8 +16,8 @@
# specific language governing permissions and limitations
# under the License.
#
-#sona.central=http://repository.sonatype.org/content/groups/public
-maven.central=http://repo1.maven.org/maven2
+sona.central=http://repository.sonatype.org/content/groups/public
+#maven.central=http://repo1.maven.org/maven2
#codehaus.snapshots=http://snapshots.repository.codehaus.org
#apache.snapshots=http://people.apache.org/repo/m2-snapshot-repository
#codehaus.releases=http://repository.codehaus.org
diff --git a/mercury-maven/results.html b/mercury-maven/results.html
new file mode 100644
index 0000000..56b5912
--- /dev/null
+++ b/mercury-maven/results.html
@@ -0,0 +1,378 @@
+<html><body><table border='1'><tr><th colspan='2'>vdoclet:vdoclet:20070127::jar</th></tr>
+
+<tr><th>Maven: 5 deps in 14201 millis</th><th>Mercury: 5 deps in 1371 millis</th></tr><tr>
+
+<td>
+
+</td>
+
+<td>
+
+</td>
+
+</tr></table><br/><br/><br/><br/>
+<table border='1'><tr><th colspan='2'>magicGball:magicGball:0.01234-alpha0::jar</th></tr>
+
+<tr><th>Maven: 2 deps in 3943 millis</th><th>Mercury: 2 deps in 1429 millis</th></tr><tr>
+
+<td>
+
+</td>
+
+<td>
+
+</td>
+
+</tr></table><br/><br/><br/><br/>
+<table border='1'><tr><th colspan='2'>asm:asm-util:2.2.1::jar</th></tr>
+
+<tr><th>Maven: 5 deps in 5537 millis</th><th>Mercury: 5 deps in 2740 millis</th></tr><tr>
+
+<td>
+
+</td>
+
+<td>
+
+</td>
+
+</tr></table><br/><br/><br/><br/>
+<table border='1'><tr><th colspan='2'>asm:asm-tree:2.2.1::jar</th></tr>
+
+<tr><th>Maven: 2 deps in 1 millis</th><th>Mercury: 2 deps in 6 millis</th></tr><tr>
+
+<td>
+
+</td>
+
+<td>
+
+</td>
+
+</tr></table><br/><br/><br/><br/>
+<table border='1'><tr><th colspan='2'>asm:asm-attrs:2.2.1::jar</th></tr>
+
+<tr><th>Maven: 2 deps in 8 millis</th><th>Mercury: 2 deps in 8 millis</th></tr><tr>
+
+<td>
+
+</td>
+
+<td>
+
+</td>
+
+</tr></table><br/><br/><br/><br/>
+<table border='1'><tr><th colspan='2'>asm:asm-xml:2.2.1::jar</th></tr>
+
+<tr><th>Maven: 6 deps in 1799 millis</th><th>Mercury: 6 deps in 1119 millis</th></tr><tr>
+
+<td>
+
+</td>
+
+<td>
+
+</td>
+
+</tr></table><br/><br/><br/><br/>
+<table border='1'><tr><th colspan='2'>asm:asm-commons:2.2.1::jar</th></tr>
+
+<tr><th>Maven: 2 deps in 1213 millis</th><th>Mercury: 2 deps in 184 millis</th></tr><tr>
+
+<td>
+
+</td>
+
+<td>
+
+</td>
+
+</tr></table><br/><br/><br/><br/>
+<table border='1'><tr><th colspan='2'>asm:asm-analysis:2.2.1::jar</th></tr>
+
+<tr><th>Maven: 3 deps in 1 millis</th><th>Mercury: 3 deps in 13 millis</th></tr><tr>
+
+<td>
+
+</td>
+
+<td>
+
+</td>
+
+</tr></table><br/><br/><br/><br/>
+<table border='1'><tr><th colspan='2'>tranql:tranql:1.0-20050713::jar</th></tr>
+
+<tr><th>Maven: 12 deps in 27569 millis</th><th>Mercury: 14 deps in 4776 millis</th></tr><tr>
+
+<td>
+net.java.dev.javacc:javacc:3.2::jar:compile<br/>
+
+</td>
+
+<td>
+javacc:javacc:3.2::jar:compile<br/>
+log4j:log4j:1.2.6::jar:compile<br/>
+logkit:logkit:1.0.1::jar:compile<br/>
+
+</td>
+
+</tr></table><br/><br/><br/><br/>
+<table border='1'><tr><th colspan='2'>tranql:tranql:1.2.3::jar</th></tr>
+
+<tr><th>Maven: 12 deps in 3450 millis</th><th>Mercury: 14 deps in 329 millis</th></tr><tr>
+
+<td>
+net.java.dev.javacc:javacc:3.2::jar:compile<br/>
+
+</td>
+
+<td>
+javacc:javacc:3.2::jar:compile<br/>
+log4j:log4j:1.2.6::jar:compile<br/>
+logkit:logkit:1.0.1::jar:compile<br/>
+
+</td>
+
+</tr></table><br/><br/><br/><br/>
+<table border='1'><tr><th colspan='2'>tranql:tranql:1.2::jar</th></tr>
+
+<tr><th>Maven: 12 deps in 7245 millis</th><th>Mercury: 14 deps in 700 millis</th></tr><tr>
+
+<td>
+net.java.dev.javacc:javacc:3.2::jar:compile<br/>
+
+</td>
+
+<td>
+javacc:javacc:3.2::jar:compile<br/>
+log4j:log4j:1.2.6::jar:compile<br/>
+logkit:logkit:1.0.1::jar:compile<br/>
+
+</td>
+
+</tr></table><br/><br/><br/><br/>
+<table border='1'><tr><th colspan='2'>tranql:tranql:1.0-M3::jar</th></tr>
+
+<tr><th>Maven: 12 deps in 6352 millis</th><th>Mercury: 14 deps in 1474 millis</th></tr><tr>
+
+<td>
+net.java.dev.javacc:javacc:3.2::jar:compile<br/>
+
+</td>
+
+<td>
+javacc:javacc:3.2::jar:compile<br/>
+log4j:log4j:1.2.6::jar:compile<br/>
+logkit:logkit:1.0.1::jar:compile<br/>
+
+</td>
+
+</tr></table><br/><br/><br/><br/>
+<table border='1'><tr><th colspan='2'>tranql:tranql:1.2.1::jar</th></tr>
+
+<tr><th>Maven: 12 deps in 4777 millis</th><th>Mercury: 14 deps in 229 millis</th></tr><tr>
+
+<td>
+net.java.dev.javacc:javacc:3.2::jar:compile<br/>
+
+</td>
+
+<td>
+javacc:javacc:3.2::jar:compile<br/>
+log4j:log4j:1.2.6::jar:compile<br/>
+logkit:logkit:1.0.1::jar:compile<br/>
+
+</td>
+
+</tr></table><br/><br/><br/><br/>
+<table border='1'><tr><th colspan='2'>tranql:tranql:1.2.2::jar</th></tr>
+
+<tr><th>Maven: 12 deps in 3192 millis</th><th>Mercury: 14 deps in 226 millis</th></tr><tr>
+
+<td>
+net.java.dev.javacc:javacc:3.2::jar:compile<br/>
+
+</td>
+
+<td>
+javacc:javacc:3.2::jar:compile<br/>
+log4j:log4j:1.2.6::jar:compile<br/>
+logkit:logkit:1.0.1::jar:compile<br/>
+
+</td>
+
+</tr></table><br/><br/><br/><br/>
+<table border='1'><tr><th colspan='2'>tranql:tranql:1.0-M2::jar</th></tr>
+
+<tr><th>Maven: 11 deps in 5209 millis</th><th>Mercury: 13 deps in 402 millis</th></tr><tr>
+
+<td>
+net.java.dev.javacc:javacc:3.2::jar:compile<br/>
+
+</td>
+
+<td>
+javacc:javacc:3.2::jar:compile<br/>
+log4j:log4j:1.2.6::jar:compile<br/>
+logkit:logkit:1.0.1::jar:compile<br/>
+
+</td>
+
+</tr></table><br/><br/><br/><br/>
+<table border='1'><tr><th colspan='2'>tranql:tranql-connector:1.1::jar</th></tr>
+
+<tr><th>Maven: 11 deps in 3059 millis</th><th>Mercury: 13 deps in 666 millis</th></tr><tr>
+
+<td>
+net.java.dev.javacc:javacc:3.2::jar:compile<br/>
+
+</td>
+
+<td>
+javacc:javacc:3.2::jar:compile<br/>
+log4j:log4j:1.2.6::jar:compile<br/>
+logkit:logkit:1.0.1::jar:compile<br/>
+
+</td>
+
+</tr></table><br/><br/><br/><br/>
+<table border='1'><tr><th colspan='2'>tranql:tranql-connector:1.0::jar</th></tr>
+
+<tr><th>Maven: 11 deps in 2101 millis</th><th>Mercury: 13 deps in 397 millis</th></tr><tr>
+
+<td>
+net.java.dev.javacc:javacc:3.2::jar:compile<br/>
+
+</td>
+
+<td>
+javacc:javacc:3.2::jar:compile<br/>
+log4j:log4j:1.2.6::jar:compile<br/>
+logkit:logkit:1.0.1::jar:compile<br/>
+
+</td>
+
+</tr></table><br/><br/><br/><br/>
+<table border='1'><tr><th colspan='2'>tranql:tranql-connector:1.0-M3::jar</th></tr>
+
+<tr><th>Maven: 11 deps in 2972 millis</th><th>Mercury: 13 deps in 357 millis</th></tr><tr>
+
+<td>
+net.java.dev.javacc:javacc:3.2::jar:compile<br/>
+
+</td>
+
+<td>
+javacc:javacc:3.2::jar:compile<br/>
+log4j:log4j:1.2.6::jar:compile<br/>
+logkit:logkit:1.0.1::jar:compile<br/>
+
+</td>
+
+</tr></table><br/><br/><br/><br/>
+<table border='1'><tr><th colspan='2'>tranql:tranql-connector:1.0-20050716::jar</th></tr>
+
+<tr><th>Maven: 11 deps in 1973 millis</th><th>Mercury: 13 deps in 242 millis</th></tr><tr>
+
+<td>
+net.java.dev.javacc:javacc:3.2::jar:compile<br/>
+
+</td>
+
+<td>
+javacc:javacc:3.2::jar:compile<br/>
+log4j:log4j:1.2.6::jar:compile<br/>
+logkit:logkit:1.0.1::jar:compile<br/>
+
+</td>
+
+</tr></table><br/><br/><br/><br/>
+<table border='1'><tr><th colspan='2'>jmimemagic:jmimemagic:0.0.4a::jar</th></tr>
+
+<tr><th>Maven: 5 deps in 12956 millis</th><th>Mercury: 5 deps in 164 millis</th></tr><tr>
+
+<td>
+
+</td>
+
+<td>
+
+</td>
+
+</tr></table><br/><br/><br/><br/>
+<table border='1'><tr><th colspan='2'>jmimemagic:jmimemagic:0.1.1::jar</th></tr>
+
+<tr><th>Maven: 7 deps in 2476 millis</th><th>Mercury: 10 deps in 1458 millis</th></tr><tr>
+
+<td>
+xerces:xercesImpl:2.4.0::jar:runtime<br/>
+xml-apis:xml-apis:1.0.b2::jar:compile<br/>
+
+</td>
+
+<td>
+logkit:logkit:1.0.1::jar:compile<br/>
+avalon-framework:avalon-framework:4.1.3::jar:compile<br/>
+xerces:xerces:2.4.0::jar:compile<br/>
+xerces:xercesImpl:2.7.1::jar:compile<br/>
+xml-apis:xml-apis:2.0.2::jar:compile<br/>
+
+</td>
+
+</tr></table><br/><br/><br/><br/>
+<table border='1'><tr><th colspan='2'>jmimemagic:jmimemagic:0.1.2::jar</th></tr>
+
+<tr><th>Maven: 7 deps in 1734 millis</th><th>Mercury: 10 deps in 213 millis</th></tr><tr>
+
+<td>
+xerces:xercesImpl:2.4.0::jar:runtime<br/>
+xml-apis:xml-apis:1.0.b2::jar:compile<br/>
+
+</td>
+
+<td>
+logkit:logkit:1.0.1::jar:compile<br/>
+avalon-framework:avalon-framework:4.1.3::jar:compile<br/>
+xerces:xerces:2.4.0::jar:compile<br/>
+xerces:xercesImpl:2.7.1::jar:compile<br/>
+xml-apis:xml-apis:2.0.2::jar:compile<br/>
+
+</td>
+
+</tr></table><br/><br/><br/><br/>
+<table border='1'><tr><th colspan='2'>commons-validator:commons-validator:1.2.0::jar</th></tr>
+
+<tr><th>Maven: 7 deps in 77 millis</th><th>Mercury: 10 deps in 41 millis</th></tr><tr>
+
+<td>
+xml-apis:xml-apis:1.0.b2::jar:compile<br/>
+
+</td>
+
+<td>
+log4j:log4j:1.2.6::jar:compile<br/>
+logkit:logkit:1.0.1::jar:compile<br/>
+avalon-framework:avalon-framework:4.1.3::jar:compile<br/>
+xml-apis:xml-apis:2.0.2::jar:compile<br/>
+
+</td>
+
+</tr></table><br/><br/><br/><br/>
+<table border='1'><tr><th colspan='2'>commons-httpclient:commons-httpclient:2.0.2::jar</th></tr>
+
+<tr><th>Maven: 2 deps in 1 millis</th><th>Mercury: 4 deps in 25 millis</th></tr><tr>
+
+<td>
+
+</td>
+
+<td>
+log4j:log4j:1.2.6::jar:compile<br/>
+logkit:logkit:1.0.1::jar:compile<br/>
+
+</td>
+
+</tr></table><br/><br/><br/><br/>
+</body></html>
\ No newline at end of file
diff --git a/mercury-md/mercury-md-sat/pom.xml b/mercury-md/mercury-md-sat/pom.xml
index 08303eb..38ccf3b 100644
--- a/mercury-md/mercury-md-sat/pom.xml
+++ b/mercury-md/mercury-md-sat/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury-md</artifactId>
- <version>1.0-alpha-5-SNAPSHOT</version>
+ <version>1.0-alpha-5</version>
</parent>
<artifactId>mercury-md-sat</artifactId>
diff --git a/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java b/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java
index 1f89dc5..cbb72e5 100644
--- a/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java
+++ b/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java
@@ -185,6 +185,32 @@
// build all trees
for ( ArtifactBasicMetadata bmd : startMDs )
{
+ if( inclusions != null )
+ {
+ List<ArtifactBasicMetadata> inc = inclusions.getMetadataList();
+
+ if( ! inc.contains( bmd ) )
+ continue;
+
+ if( bmd.hasInclusions() )
+ bmd.getInclusions().addAll( inc );
+ else
+ bmd.setInclusions( inc );
+ }
+
+ if( exclusions != null )
+ {
+ List<ArtifactBasicMetadata> excl = exclusions.getMetadataList();
+
+ if( excl.contains( bmd ) )
+ continue;
+
+ if( bmd.hasExclusions() )
+ bmd.getExclusions().addAll( excl );
+ else
+ bmd.setExclusions( excl );
+ }
+
MetadataTreeNode rooty = buildTree( bmd, scope );
deps.add( rooty );
@@ -206,7 +232,6 @@
return res;
}
-
// -----------------------------------------------------
private MetadataTreeNode createNode( ArtifactBasicMetadata nodeMD, MetadataTreeNode parent
, ArtifactBasicMetadata nodeQuery, ArtifactScopeEnum globalScope
diff --git a/mercury-md/mercury-md-shared/pom.xml b/mercury-md/mercury-md-shared/pom.xml
index 2398d53..0cf55a2 100644
--- a/mercury-md/mercury-md-shared/pom.xml
+++ b/mercury-md/mercury-md-shared/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury-md</artifactId>
- <version>1.0-alpha-5-SNAPSHOT</version>
+ <version>1.0-alpha-5</version>
</parent>
<groupId>org.apache.maven.mercury</groupId>
diff --git a/mercury-md/mercury-md-shared/src/main/java/org/apache/maven/mercury/repository/metadata/AddVersionOperation.java b/mercury-md/mercury-md-shared/src/main/java/org/apache/maven/mercury/repository/metadata/AddVersionOperation.java
index 4f0a229..305da3c 100644
--- a/mercury-md/mercury-md-shared/src/main/java/org/apache/maven/mercury/repository/metadata/AddVersionOperation.java
+++ b/mercury-md/mercury-md-shared/src/main/java/org/apache/maven/mercury/repository/metadata/AddVersionOperation.java
@@ -18,8 +18,10 @@
*/
package org.apache.maven.mercury.repository.metadata;
+import java.util.Collections;
import java.util.List;
+import org.apache.maven.mercury.artifact.version.VersionComparator;
import org.apache.maven.mercury.util.TimeUtil;
import org.codehaus.plexus.lang.DefaultLanguage;
import org.codehaus.plexus.lang.Language;
@@ -94,8 +96,35 @@
}
vs.addVersion( version );
+
+ List<String> versions = vs.getVersions();
+
+ Collections.sort( versions, new VersionComparator() );
+
+ vs.setLatest( getLatestVersion(versions) );
+
+ vs.setRelease( getReleaseVersion(versions) );
+
vs.setLastUpdated( TimeUtil.getUTCTimestamp() );
return true;
}
+
+ private String getLatestVersion( List<String> orderedVersions )
+ {
+ return orderedVersions.get( orderedVersions.size() - 1 );
+ }
+
+ private String getReleaseVersion( List<String> orderedVersions )
+ {
+ for (int i = orderedVersions.size() - 1; i >= 0; i--)
+ {
+ if (!orderedVersions.get(i).endsWith("SNAPSHOT"))
+ {
+ return orderedVersions.get(i);
+ }
+ }
+
+ return "";
+ }
}
diff --git a/mercury-md/mercury-md-shared/src/main/java/org/apache/maven/mercury/repository/metadata/SetSnapshotOperation.java b/mercury-md/mercury-md-shared/src/main/java/org/apache/maven/mercury/repository/metadata/SetSnapshotOperation.java
index 5d8d108..7aef3e7 100644
--- a/mercury-md/mercury-md-shared/src/main/java/org/apache/maven/mercury/repository/metadata/SetSnapshotOperation.java
+++ b/mercury-md/mercury-md-shared/src/main/java/org/apache/maven/mercury/repository/metadata/SetSnapshotOperation.java
@@ -34,6 +34,8 @@
private static final Language LANG = new DefaultLanguage( SetSnapshotOperation.class );
private Snapshot snapshot;
+
+ private String snapshotPomName;
/**
* @throws MetadataException
@@ -43,17 +45,30 @@
{
setOperand( data );
}
+
+ public SetSnapshotOperation( StringOperand data )
+ throws MetadataException
+ {
+ setOperand( data );
+ }
public void setOperand( Object data )
throws MetadataException
{
- if ( data == null || !( data instanceof SnapshotOperand ) )
+ if ( data != null && data instanceof SnapshotOperand )
+ {
+ snapshot = ( (SnapshotOperand) data ).getOperand();
+ }
+ else if ( data != null && data instanceof StringOperand )
+ {
+ snapshotPomName = ( (StringOperand) data ).getOperand();
+ }
+ else
{
throw new MetadataException( LANG.getMessage( "bad.operand", "SnapshotOperand", data == null ? "null"
- : data.getClass().getName() ) );
+ : data.getClass().getName() ) );
}
- snapshot = ( (SnapshotOperand) data ).getOperand();
}
/**
@@ -70,19 +85,108 @@
{
return false;
}
-
+
Versioning vs = metadata.getVersioning();
if ( vs == null )
{
vs = new Versioning();
+
metadata.setVersioning( vs );
}
-
- vs.setSnapshot( snapshot );
- vs.setLastUpdated( TimeUtil.getUTCTimestamp() );
-
- return true;
+
+ if ( snapshotPomName != null )
+ {
+ return updateSnapshot( snapshotPomName, metadata );
+ }
+ else
+ {
+ return updateSnapshot( snapshot, vs );
+ }
+
+ }
+
+ private boolean updateSnapshot( String snapshotVersion, Metadata metadata )
+ {
+ Snapshot snapshot = buildSnapshot( snapshotVersion, metadata );
+
+ Snapshot oldSnapshot = metadata.getVersioning().getSnapshot();
+
+ if ( needUpdateSnapshot( oldSnapshot, snapshot) )
+ {
+ return updateSnapshot( snapshot, metadata.getVersioning() );
+ }
+
+ return false;
+
+
+ }
+
+ private boolean updateSnapshot( Snapshot snapshot, Versioning vs )
+ {
+ vs.setSnapshot( snapshot );
+
+ vs.setLastUpdated( TimeUtil.getUTCTimestamp() );
+
+ return true;
+ }
+
+ private boolean needUpdateSnapshot( Snapshot oldSnapshot, Snapshot newSnapshot )
+ {
+ if ( newSnapshot == null )
+ {
+ return false;
+ }
+
+ if ( oldSnapshot == null )
+ {
+ return true;
+ }
+
+ if ( oldSnapshot.getBuildNumber() < newSnapshot.getBuildNumber() )
+ {
+ return true;
+ }
+
+ return false;
+ }
+
+ private Snapshot buildSnapshot( String pomName, Metadata md )
+ {
+ // skip files like groupId-artifactId-versionSNAPSHOT.pom
+ if ( pomName.endsWith( "SNAPSHOT.pom" ) )
+ {
+ return null;
+ }
+
+ Snapshot result = new Snapshot();
+
+ int lastHyphenPos = pomName.lastIndexOf( '-' );
+
+ try
+ {
+ int buildNumber = Integer.parseInt( pomName.substring(
+ lastHyphenPos + 1,
+ pomName.length() - 4 ) );
+
+ String timestamp = pomName.substring( ( md.getArtifactId() + '-' + md.getVersion() + '-' )
+ .length()
+ - "-SNAPSHOT".length(), lastHyphenPos );
+
+ result.setLocalCopy( false );
+
+ result.setBuildNumber( buildNumber );
+
+ result.setTimestamp( timestamp );
+
+ return result;
+ }
+ catch ( Exception e )
+ {
+ // skip any exception because of illegal version numbers
+ return null;
+ }
+
}
}
diff --git a/mercury-md/mercury-md-shared/src/test/java/org/apache/maven/mercury/repository/metadata/MetadataBuilderTest.java b/mercury-md/mercury-md-shared/src/test/java/org/apache/maven/mercury/repository/metadata/MetadataBuilderTest.java
index 4e0a4d1..56f669a 100644
--- a/mercury-md/mercury-md-shared/src/test/java/org/apache/maven/mercury/repository/metadata/MetadataBuilderTest.java
+++ b/mercury-md/mercury-md-shared/src/test/java/org/apache/maven/mercury/repository/metadata/MetadataBuilderTest.java
@@ -27,6 +27,7 @@
import java.util.ArrayList;
import java.util.List;
+import junit.framework.Assert;
import junit.framework.TestCase;
import org.apache.maven.mercury.util.FileUtil;
@@ -60,6 +61,26 @@
throws Exception
{
}
+
+ protected Metadata getMetadata(File file)
+ throws Exception
+ {
+ byte[] targetBytes = FileUtil.readRawData(file);
+
+ return MetadataBuilder.getMetadata(targetBytes);
+ }
+
+ protected Metadata applyOpsAndGetMetadata(Metadata metadata,
+ List<MetadataOperation> ops, File file)
+ throws Exception
+ {
+ byte[] resBytes = MetadataBuilder.changeMetadata(metadata, ops);
+
+ FileUtil.writeRawData(file, resBytes);
+
+ return MetadataBuilder.read(new FileInputStream(file));
+ }
+
//-------------------------------------------------------------------------
public void testReadGroupMd()
throws FileNotFoundException, IOException, XmlPullParserException, MetadataException
@@ -184,21 +205,76 @@
assertTrue( versions.contains("1.0.0") );
assertTrue( versions.contains("2.0.0") );
}
+
+ public void testAddVersionOperationOrdered() throws Exception
+ {
+ File mdFileBefore = new File(testBase, "group-maven-metadata.xml");
+ Metadata mdBefore = getMetadata( mdFileBefore );
+
+ List<MetadataOperation> ops = new ArrayList<MetadataOperation>();
+ ops.add(new AddVersionOperation( new StringOperand("1.3.0-SNAPSHOT") ));
+ ops.add(new AddVersionOperation( new StringOperand("1.2.0-SNAPSHOT") ));
+ ops.add(new AddVersionOperation( new StringOperand("1.2.0.5-SNAPSHOT") ));
+ ops.add(new AddVersionOperation( new StringOperand("1.0.1") ));
+ ops.add(new AddVersionOperation( new StringOperand("1.0.3-SNAPSHOT") ));
+ ops.add(new AddVersionOperation( new StringOperand("1.1-M1") ));
+ ops.add(new AddVersionOperation( new StringOperand("1.0.0-alpha-5") ));
+ ops.add(new AddVersionOperation( new StringOperand("1.2.0") ));
+ ops.add(new AddVersionOperation( new StringOperand("1.2.0-beta-1") ));
+ ops.add(new AddVersionOperation( new StringOperand("1.0.0.1") ));
+ ops.add(new AddVersionOperation( new StringOperand("1.0.0-beta-3") ));
+ ops.add(new AddVersionOperation( new StringOperand("4.1.0") ));
+ ops.add(new AddVersionOperation( new StringOperand("1.0.0-beta-6-SNAPSHOT") ));
+ ops.add(new AddVersionOperation( new StringOperand("5.0-SNAPSHOT") ));
+
+ List<String> orderedVersions = new ArrayList<String>();
+ orderedVersions.add( "1.0.0-alpha-5" );
+ orderedVersions.add( "1.0.0-beta-3" );
+ orderedVersions.add( "1.0.0-beta-6-SNAPSHOT" );
+ orderedVersions.add( "1" );
+ orderedVersions.add( "1.0.0.1" );
+ orderedVersions.add( "1.0.1" );
+ orderedVersions.add( "1.0.3-SNAPSHOT" );
+ orderedVersions.add( "1.1-M1" );
+ orderedVersions.add( "1.2.0-SNAPSHOT" );
+ orderedVersions.add( "1.2.0-beta-1" );
+ orderedVersions.add( "1.2.0" );
+ orderedVersions.add( "1.2.0.5-SNAPSHOT" );
+ orderedVersions.add( "1.3.0-SNAPSHOT" );
+ orderedVersions.add( "2" );
+ orderedVersions.add( "3" );
+ orderedVersions.add( "4" );
+ orderedVersions.add( "4.1.0" );
+ orderedVersions.add( "5.0-SNAPSHOT" );
+
+ File mdFileAfter = new File( testBase, "group-maven-metadata-write.xml");
+ Metadata mdAfter = applyOpsAndGetMetadata( mdBefore, ops, mdFileAfter );
+
+ Assert.assertEquals(orderedVersions, mdAfter.getVersioning().getVersions());
+ Assert.assertEquals("5.0-SNAPSHOT", mdAfter.getVersioning().getLatest());
+ Assert.assertEquals("4.1.0", mdAfter.getVersioning().getRelease());
+
+ }
+
//-------------------------------------------------------------------------
public void testAddVersionOperation()
- throws FileNotFoundException, IOException, XmlPullParserException, MetadataException
+ throws Exception
{
- File groupMd = new File( testBase, "group-maven-metadata.xml");
- byte [] targetBytes = FileUtil.readRawData( groupMd );
-
- byte [] resBytes = MetadataBuilder.changeMetadata( targetBytes, new AddVersionOperation( new StringOperand("5") ) );
+ // prepare
+ File groupMd = new File( testBase, "group-maven-metadata.xml");
+
+ Metadata md = getMetadata(groupMd);
+
+ List<MetadataOperation> ops = new ArrayList<MetadataOperation>();
+
+ ops.add(new AddVersionOperation( new StringOperand("5")));
+
+ File resFile = new File( testBase, "group-maven-metadata-write.xml");
- File resFile = new File( testBase, "group-maven-metadata-write.xml");
+ // do
+ Metadata mmd = applyOpsAndGetMetadata( md, ops, resFile);
- FileUtil.writeRawData( resFile, resBytes );
-
- Metadata mmd = MetadataBuilder.read( new FileInputStream(resFile) );
-
+ // assert
assertNotNull( mmd );
assertEquals("a", mmd.getGroupId() );
assertEquals("a", mmd.getArtifactId() );
@@ -218,12 +294,11 @@
}
//-------------------------------------------------------------------------
public void testAddVersionTwiceOperation()
- throws FileNotFoundException, IOException, XmlPullParserException, MetadataException
+ throws Exception
{
File groupMd = new File( testBase, "group-maven-metadata.xml");
- byte [] targetBytes = FileUtil.readRawData( groupMd );
- Metadata checkMd = MetadataBuilder.getMetadata( targetBytes );
+ Metadata checkMd = getMetadata(groupMd);
assertNotNull( checkMd );
assertEquals("a", checkMd.getGroupId() );
@@ -246,13 +321,10 @@
ops.add( new AddVersionOperation( new StringOperand("5") ) );
ops.add( new AddVersionOperation( new StringOperand("5") ) );
- byte [] resBytes = MetadataBuilder.changeMetadata( targetBytes, ops );
File resFile = new File( testBase, "group-maven-metadata-write.xml");
- FileUtil.writeRawData( resFile, resBytes );
-
- Metadata mmd = MetadataBuilder.read( new FileInputStream(resFile) );
+ Metadata mmd = applyOpsAndGetMetadata(checkMd, ops, resFile);
assertNotNull( mmd );
assertEquals("a", mmd.getGroupId() );
@@ -302,6 +374,29 @@
assertTrue( versions.contains("3") );
assertTrue( versions.contains("4") );
}
+
+ public void testSetSnapshotVersionOperation()
+ throws Exception
+ {
+ File mdFileBefore = new File(testBase, "group-maven-metadata.xml");
+ Metadata mdBefore = getMetadata( mdFileBefore );
+
+ mdBefore.setVersion("1.3.0-SNAPSHOT");
+
+ List<MetadataOperation> ops = new ArrayList<MetadataOperation>();
+ ops.add( new SetSnapshotOperation( new StringOperand( "a-1.3.0-20090210.041603-374.pom" ) ) );
+ ops.add( new SetSnapshotOperation( new StringOperand( "a-1.3.0-20090210.030701-373.pom" ) ) );
+ ops.add( new SetSnapshotOperation( new StringOperand( "a-1.3.0-20090210.090218-375.pom" ) ) );
+ ops.add( new SetSnapshotOperation( new StringOperand( "a-1.3.0-20090210.095716-376.pom" ) ) );
+
+ File mdFileAfter = new File( testBase, "group-maven-metadata-write.xml");
+ Metadata mdAfter = applyOpsAndGetMetadata( mdBefore, ops, mdFileAfter );
+
+ Assert.assertEquals("20090210.095716", mdAfter.getVersioning().getSnapshot().getTimestamp());
+ Assert.assertEquals(376, mdAfter.getVersioning().getSnapshot().getBuildNumber());
+ }
+
+
//-------------------------------------------------------------------------
public void testSetSnapshotOperation()
throws FileNotFoundException, IOException, XmlPullParserException, MetadataException
diff --git a/mercury-md/pom.xml b/mercury-md/pom.xml
index c98b3af..01fa629 100644
--- a/mercury-md/pom.xml
+++ b/mercury-md/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury</artifactId>
- <version>1.0-alpha-5-SNAPSHOT</version> </parent>
+ <version>1.0-alpha-5</version> </parent>
<artifactId>mercury-md</artifactId>
<packaging>pom</packaging>
diff --git a/mercury-plexus/pom.xml b/mercury-plexus/pom.xml
index 89ef71e..c06cdbf 100644
--- a/mercury-plexus/pom.xml
+++ b/mercury-plexus/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury</artifactId>
- <version>1.0-alpha-5-SNAPSHOT</version>
+ <version>1.0-alpha-5</version>
</parent>
<artifactId>mercury-plexus</artifactId>
diff --git a/mercury-plexus/src/main/java/org/apache/maven/mercury/plexus/Messages.properties b/mercury-plexus/src/main/resources/org/apache/maven/mercury/plexus/Messages.properties
similarity index 100%
rename from mercury-plexus/src/main/java/org/apache/maven/mercury/plexus/Messages.properties
rename to mercury-plexus/src/main/resources/org/apache/maven/mercury/plexus/Messages.properties
diff --git a/mercury-repo/mercury-repo-api/pom.xml b/mercury-repo/mercury-repo-api/pom.xml
index 4188f06..a707bf0 100644
--- a/mercury-repo/mercury-repo-api/pom.xml
+++ b/mercury-repo/mercury-repo-api/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury-repo</artifactId>
- <version>1.0-alpha-5-SNAPSHOT</version>
+ <version>1.0-alpha-5</version>
</parent>
<groupId>org.apache.maven.mercury</groupId>
diff --git a/mercury-repo/mercury-repo-cache-fs/pom.xml b/mercury-repo/mercury-repo-cache-fs/pom.xml
index 1048bbd..333732d 100644
--- a/mercury-repo/mercury-repo-cache-fs/pom.xml
+++ b/mercury-repo/mercury-repo-cache-fs/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury-repo</artifactId>
- <version>1.0-alpha-5-SNAPSHOT</version>
+ <version>1.0-alpha-5</version>
</parent>
<groupId>org.apache.maven.mercury</groupId>
diff --git a/mercury-repo/mercury-repo-local-flat/pom.xml b/mercury-repo/mercury-repo-local-flat/pom.xml
index 82e5c27..c44989d 100644
--- a/mercury-repo/mercury-repo-local-flat/pom.xml
+++ b/mercury-repo/mercury-repo-local-flat/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury-repo</artifactId>
- <version>1.0-alpha-5-SNAPSHOT</version>
+ <version>1.0-alpha-5</version>
</parent>
<groupId>org.apache.maven.mercury</groupId>
diff --git a/mercury-repo/mercury-repo-local-m2/pom.xml b/mercury-repo/mercury-repo-local-m2/pom.xml
index 1fea49b..81de9fb 100644
--- a/mercury-repo/mercury-repo-local-m2/pom.xml
+++ b/mercury-repo/mercury-repo-local-m2/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury-repo</artifactId>
- <version>1.0-alpha-5-SNAPSHOT</version>
+ <version>1.0-alpha-5</version>
</parent>
<artifactId>mercury-repo-local-m2</artifactId>
diff --git a/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/ArtifactLocation.java b/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/ArtifactLocation.java
index 866d35a..1b3dcfc 100644
--- a/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/ArtifactLocation.java
+++ b/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/ArtifactLocation.java
@@ -145,6 +145,24 @@
return ver;
}
+
+ public static String getTS( String ver )
+ {
+ if( ver == null )
+ return null;
+
+ int li = ver.lastIndexOf( '-' );
+
+ if( li < 1 )
+ return ver;
+
+ int li2 = ver.substring( 0, li ).lastIndexOf( '-' );
+
+ if( li2 > 0 )
+ return ver.substring( li2+1 );
+
+ return ver;
+ }
//---------------------------------------------------------------------------------------------------------------
public static String calculateVersionDir( String ver )
{
diff --git a/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryM2.java b/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryM2.java
index 7df74a0..9efd39c 100644
--- a/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryM2.java
+++ b/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryM2.java
@@ -28,11 +28,15 @@
import org.apache.maven.mercury.repository.api.RepositoryReader;
import org.apache.maven.mercury.repository.api.RepositoryWriter;
import org.apache.maven.mercury.transport.api.Server;
+import org.codehaus.plexus.lang.DefaultLanguage;
+import org.codehaus.plexus.lang.Language;
public class LocalRepositoryM2
extends AbstractRepository
implements LocalRepository
{
+ private static final Language LANG = new DefaultLanguage( LocalRepositoryM2.class );
+
private File directory;
public static final String METADATA_FILE_NAME = "maven-metadata-local.xml";
@@ -41,11 +45,14 @@
private void setDirectory( File directory )
{
if( directory == null )
- throw new IllegalArgumentException( "null.directory" );
+ throw new IllegalArgumentException( LANG.getMessage( "null.directory" ) );
if( !directory.exists() )
directory.mkdirs();
+ if( !directory.isDirectory() )
+ throw new IllegalArgumentException( LANG.getMessage( "file.directory", directory.getAbsolutePath() ) );
+
this.directory = directory;
}
//----------------------------------------------------------------------------------
diff --git a/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java b/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java
index 8535031..ef77035 100644
--- a/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java
+++ b/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java
@@ -19,18 +19,22 @@
package org.apache.maven.mercury.repository.local.m2;
import java.io.File;
+import java.io.FileFilter;
import java.io.FileInputStream;
+import java.io.FilenameFilter;
import java.io.IOException;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import java.util.TreeSet;
import org.apache.maven.mercury.artifact.Artifact;
import org.apache.maven.mercury.artifact.ArtifactBasicMetadata;
import org.apache.maven.mercury.artifact.DefaultArtifact;
import org.apache.maven.mercury.artifact.Quality;
import org.apache.maven.mercury.artifact.version.DefaultArtifactVersion;
+import org.apache.maven.mercury.artifact.version.VersionComparator;
import org.apache.maven.mercury.artifact.version.VersionException;
import org.apache.maven.mercury.artifact.version.VersionRange;
import org.apache.maven.mercury.artifact.version.VersionRangeFactory;
@@ -53,6 +57,7 @@
import org.apache.maven.mercury.repository.api.RepositoryException;
import org.apache.maven.mercury.repository.api.RepositoryReader;
import org.apache.maven.mercury.util.FileUtil;
+import org.apache.maven.mercury.util.Util;
import org.codehaus.plexus.lang.DefaultLanguage;
import org.codehaus.plexus.lang.Language;
@@ -118,46 +123,34 @@
// RELEASE = LATEST - SNAPSHOTs
if ( Artifact.RELEASE_VERSION.equals( loc.getVersion() ) || Artifact.LATEST_VERSION.equals( loc.getVersion() ) )
{
- boolean noSnapshots = Artifact.RELEASE_VERSION.equals( loc.getVersion() );
+ final boolean noSnapshots = Artifact.RELEASE_VERSION.equals( loc.getVersion() );
loc.setVersion( null );
- DefaultArtifactVersion tempDav = null;
- DefaultArtifactVersion tempDav2 = null;
+
+ final TreeSet<String> ts = new TreeSet<String>( new VersionComparator() );
- File[] files = gaDir.listFiles();
-
- if( files != null && files.length > 0 )
- // find latest
- for ( File vf : files )
- {
- if ( vf.isFile() )
- continue;
-
- String vn = vf.getName();
-
- // RELEASE?
- if ( noSnapshots && vn.endsWith( Artifact.SNAPSHOT_VERSION ) )
- continue;
-
- if ( loc.getVersion() == null )
- {
- loc.setVersion( vn );
- tempDav = new DefaultArtifactVersion( vn );
- continue;
- }
-
- tempDav2 = new DefaultArtifactVersion( vn );
- if ( tempDav2.compareTo( tempDav ) > 0 )
- {
- loc.setVersion( vn );
- tempDav = tempDav2;
- }
-
- }
-
- if ( loc.getVersion() == null )
+ gaDir.listFiles(
+ new FilenameFilter()
+ {
+ public boolean accept( File dir, String name )
+ {
+ if( new File(dir,name).isDirectory() )
+ {
+ if( noSnapshots && name.endsWith( Artifact.SNAPSHOT_VERSION ) )
+ return false;
+
+ ts.add( name );
+ return true;
+ }
+ return false;
+ }
+
+ }
+ );
+
+ if( !ts.isEmpty() )
+ loc.setVersion( ts.last() );
+ else
{
-// res.addError( bmd, new RepositoryException( LANG.getMessage( "gav.not.found", bmd.toString(),
-// loc.getGaPath() ) ) );
if( LOG.isErrorEnabled() )
LOG.error( LANG.getMessage( "gav.not.found", bmd.toString(), loc.getGaPath() ) );
return null;
@@ -414,7 +407,7 @@
}
// ---------------------------------------------------------------------------------------------------------------
- private static boolean findLatestSnapshot( ArtifactBasicMetadata bmd, ArtifactLocation loc, AbstractRepOpResult res )
+ private static boolean findLatestSnapshot( final ArtifactBasicMetadata bmd, final ArtifactLocation loc, AbstractRepOpResult res )
{
File binary = new File( loc.getAbsPath() );
@@ -423,51 +416,43 @@
// no real SNAPSHOT file, let's try to find one
File gavDir = new File( loc.getAbsGavPath() );
- File[] files = gavDir.listFiles();
- loc.setVersion( null );
- DefaultArtifactVersion tempDav = null;
- DefaultArtifactVersion tempDav2 = null;
-
- int aLen = loc.getBaseName().length();
-
- if( files != null && files.length > 0 )
- // find latest
- for ( File vf : files )
- {
- if ( vf.isFile() )
- continue;
+
+ String classifier = Util.isEmpty( bmd.getClassifier() ) ? "" : '-'+bmd.getClassifier();
+
+ final String regEx = Artifact.SNAPSHOT_TS_REGEX + classifier + "\\."+bmd.getCheckedType();
+
+ final TreeSet<String> ts = new TreeSet<String>( new VersionComparator() );
+
+ final int pos = bmd.getArtifactId().length() + 1;
+
+ gavDir.listFiles( new FilenameFilter()
+ {
+ public boolean accept( File dir, String name )
+ {
+ if( name.matches( regEx ) )
+ {
+ String ver = name.substring( pos, name.lastIndexOf( '.' ) );
+
+ ts.add( ver );
+
+ return true;
+ }
- String vn = vf.getName().substring( aLen + 1 );
-
- // no snapshots
- if ( vn.endsWith( Artifact.SNAPSHOT_VERSION ) )
- continue;
-
- if ( loc.getVersion() == null )
- {
- loc.setVersion( vn );
- tempDav = new DefaultArtifactVersion( vn );
- continue;
- }
-
- tempDav2 = new DefaultArtifactVersion( vn );
- if ( tempDav2.compareTo( tempDav ) > 0 )
- {
- loc.setVersion( vn );
- tempDav = tempDav2;
- }
-
- }
-
- if ( loc.getVersion() == null )
+ return false;
+ }
+
+ }
+ );
+
+ if( ts.isEmpty() )
{
-// res.addError( bmd, new RepositoryException( LANG.getMessage( "snapshot.not.found", bmd.toString(),
-// gavDir.getAbsolutePath() ) ) );
if( LOG.isErrorEnabled() )
LOG.error( LANG.getMessage( "snapshot.not.found", bmd.toString(), gavDir.getAbsolutePath() ) );
-
+
return false;
}
+
+ loc.setVersion( ts.last() );
return true;
}
diff --git a/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/Messages.properties b/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/Messages.properties
index 6cd0926..f58048a 100644
--- a/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/Messages.properties
+++ b/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/Messages.properties
@@ -30,4 +30,7 @@
signature.failed=Signature "{0}": verification failed for file {1}
cannot.read.signature.file=Cannot read signature file {0}, error: {1}
cannot.lock.gav=Cannot lock GAV folder {0} in {1} millis
-file.is.empty=File {0} exists, but is empty. Data corruption somewhere - please repair metadata.
\ No newline at end of file
+file.is.empty=File {0} exists, but is empty. Data corruption somewhere - please repair metadata.
+
+null.directory=supplied local repo root is null
+file.directory=supplied local repo root is not a folder: {0}
\ No newline at end of file
diff --git a/mercury-repo/mercury-repo-local-map/pom.xml b/mercury-repo/mercury-repo-local-map/pom.xml
index 9da5200..5de0a09 100644
--- a/mercury-repo/mercury-repo-local-map/pom.xml
+++ b/mercury-repo/mercury-repo-local-map/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury-repo</artifactId>
- <version>1.0-alpha-5-SNAPSHOT</version>
+ <version>1.0-alpha-5</version>
</parent>
<artifactId>mercury-repo-local-map</artifactId>
diff --git a/mercury-repo/mercury-repo-remote-m2/pom.xml b/mercury-repo/mercury-repo-remote-m2/pom.xml
index 6a76886..7522505 100644
--- a/mercury-repo/mercury-repo-remote-m2/pom.xml
+++ b/mercury-repo/mercury-repo-remote-m2/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury-repo</artifactId>
- <version>1.0-alpha-5-SNAPSHOT</version>
+ <version>1.0-alpha-5</version>
</parent>
<artifactId>mercury-repo-remote-m2</artifactId>
diff --git a/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java b/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java
index 7b47c98..805063b 100644
--- a/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java
+++ b/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java
@@ -498,11 +498,18 @@
gam.getVersions().clear();
+ boolean requestRelease = bmd.getVersion().endsWith( Artifact.RELEASE_VERSION );
+ // GA metadata version scan
for( String v : vRes )
{
String toAdd;
- if( v.endsWith( Artifact.SNAPSHOT_VERSION ) )
+ boolean foundSnapshot = v.endsWith( Artifact.SNAPSHOT_VERSION );
+
+ if( requestRelease && foundSnapshot )
+ continue;
+
+ if( foundSnapshot )
{
boolean snFound = false;
ArtifactBasicMetadata snMd = new ArtifactBasicMetadata( bmd.toString() );
diff --git a/mercury-repo/mercury-repo-virtual/pom.xml b/mercury-repo/mercury-repo-virtual/pom.xml
index 1e50be6..3bedd7f 100644
--- a/mercury-repo/mercury-repo-virtual/pom.xml
+++ b/mercury-repo/mercury-repo-virtual/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury-repo</artifactId>
- <version>1.0-alpha-5-SNAPSHOT</version>
+ <version>1.0-alpha-5</version>
</parent>
<artifactId>mercury-repo-virtual</artifactId>
diff --git a/mercury-repo/pom.xml b/mercury-repo/pom.xml
index 50d49f0..9e3af43 100644
--- a/mercury-repo/pom.xml
+++ b/mercury-repo/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury</artifactId>
- <version>1.0-alpha-5-SNAPSHOT</version> </parent>
+ <version>1.0-alpha-5</version> </parent>
<artifactId>mercury-repo</artifactId>
<packaging>pom</packaging>
diff --git a/mercury-transport/mercury-transport-api/pom.xml b/mercury-transport/mercury-transport-api/pom.xml
index e77649f..933893c 100644
--- a/mercury-transport/mercury-transport-api/pom.xml
+++ b/mercury-transport/mercury-transport-api/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury-transport</artifactId>
- <version>1.0-alpha-5-SNAPSHOT</version>
+ <version>1.0-alpha-5</version>
</parent>
<artifactId>mercury-transport-api</artifactId>
diff --git a/mercury-transport/mercury-transport-file/pom.xml b/mercury-transport/mercury-transport-file/pom.xml
index 4493c48..db2da54 100644
--- a/mercury-transport/mercury-transport-file/pom.xml
+++ b/mercury-transport/mercury-transport-file/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury-transport</artifactId>
- <version>1.0-alpha-5-SNAPSHOT</version>
+ <version>1.0-alpha-5</version>
</parent>
<artifactId>mercury-transport-file</artifactId>
diff --git a/mercury-transport/mercury-transport-http/pom.xml b/mercury-transport/mercury-transport-http/pom.xml
index 09ab1e0..3b6b50f 100644
--- a/mercury-transport/mercury-transport-http/pom.xml
+++ b/mercury-transport/mercury-transport-http/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury-transport</artifactId>
- <version>1.0-alpha-5-SNAPSHOT</version>
+ <version>1.0-alpha-5</version>
</parent>
<artifactId>mercury-transport-http</artifactId>
diff --git a/mercury-transport/pom.xml b/mercury-transport/pom.xml
index f75891a..ffb74d5 100644
--- a/mercury-transport/pom.xml
+++ b/mercury-transport/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury</artifactId>
- <version>1.0-alpha-5-SNAPSHOT</version>
+ <version>1.0-alpha-5</version>
</parent>
<artifactId>mercury-transport</artifactId>
diff --git a/mercury-util/pom.xml b/mercury-util/pom.xml
index 1406e23..ed96470 100644
--- a/mercury-util/pom.xml
+++ b/mercury-util/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury</artifactId>
- <version>1.0-alpha-5-SNAPSHOT</version>
+ <version>1.0-alpha-5</version>
</parent>
<artifactId>mercury-util</artifactId>
diff --git a/mercury-wagon/pom.xml b/mercury-wagon/pom.xml
index 64ecffb..4f94aa9 100644
--- a/mercury-wagon/pom.xml
+++ b/mercury-wagon/pom.xml
@@ -23,30 +23,13 @@
<parent>
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury</artifactId>
- <version>1.0-alpha-5-SNAPSHOT</version>
+ <version>1.0-alpha-5</version>
</parent>
<artifactId>mercury-wagon</artifactId>
<name>Mercury Wagon provider</name>
- <distributionManagement>
- <snapshotRepository>
- <id>${distMgmtSnapshotsId}</id>
- <name>${distMgmtSnapshotsName}</name>
- <url>${distMgmtSnapshotsUrl}</url>
- </snapshotRepository>
- </distributionManagement>
-
- <properties>
- <mercury.version>${project.version}</mercury.version>
-
- <distMgmtSnapshotsId>apache.snapshots</distMgmtSnapshotsId>
- <distMgmtSnapshotsName>Apache Development Snapshot Repository</distMgmtSnapshotsName>
- <distMgmtSnapshotsUrl>scp://people.apache.org/www/people.apache.org/repo/m2-snapshot-repository</distMgmtSnapshotsUrl>
-
- </properties>
-
<dependencies>
<dependency>
<groupId>org.apache.maven.wagon</groupId>
diff --git a/pom.xml b/pom.xml
index 8dfbf49..ac4f890 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,7 +28,7 @@
<groupId>org.apache.maven.mercury</groupId>
<artifactId>mercury</artifactId>
- <version>1.0-alpha-5-SNAPSHOT</version>
+ <version>1.0-alpha-5</version>
<packaging>pom</packaging>
<name>Mercury</name>
@@ -76,6 +76,8 @@
<plexus.lang.version>1.1</plexus.lang.version>
<plexus.component.metadata.version>1.0-beta-3.0.1</plexus.component.metadata.version>
+ <emma4it.plugin.version>1.0</emma4it.plugin.version>
+
<commons.digester.version>1.8</commons.digester.version>
<commons.cli.version>1.1</commons.cli.version>
@@ -99,27 +101,35 @@
<distMgmtReleasesId>apache.releases</distMgmtReleasesId>
<distMgmtReleasesName>Apache Releases</distMgmtReleasesName>
+<!--
<distMgmtReleasesUrl>scp://people.apache.org/www/people.apache.org/repo/m2-release-repository</distMgmtReleasesUrl>
+ -->
+ <distMgmtReleasesUrl>https://repository.apache.org/service/local/staging/deploy/maven2</distMgmtReleasesUrl>
<distMgmtSnapshotsId>apache.snapshots</distMgmtSnapshotsId>
<distMgmtSnapshotsName>Apache Snapshots</distMgmtSnapshotsName>
+<!--
<distMgmtSnapshotsUrl>scp://people.apache.org/www/people.apache.org/repo/m2-snapshot-repository</distMgmtSnapshotsUrl>
+ -->
+ <distMgmtSnapshotsUrl>https://repository.apache.org/content/repositories/snapshots</distMgmtSnapshotsUrl>
</properties>
-
-
- <scm>
- <connection>scm:svn:http://svn.apache.org/repos/asf/maven/mercury/trunk/</connection>
- <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/mercury/trunk/</developerConnection>
- <url>http://svn.apache.org/viewvc/maven/mercury/trunk/</url>
+
+ <scm>
+ <connection>scm:svn:http://svn.apache.org/repos/asf/maven/mercury/tags/mercury-1.0-alpha-5</connection>
+ <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/mercury/tags/mercury-1.0-alpha-5</developerConnection>
+ <url>http://svn.apache.org/viewvc/maven/mercury/tags/mercury-1.0-alpha-5</url>
</scm>
+
<issueManagement>
<system>jira</system>
<url>http://jira.codehaus.org/browse/MERCURY</url>
</issueManagement>
+
<ciManagement>
<system>hudson</system>
<url>http://grid.sonatype.org/ci/view/Mercury/job/mercury</url>
</ciManagement>
+
<distributionManagement>
<repository>
<id>${distMgmtReleasesId}</id>
@@ -487,13 +497,17 @@
</testResources>
<pluginManagement>
+
<plugins>
<plugin>
<artifactId>maven-release-plugin</artifactId>
- <version>2.0-beta-7</version>
+ <version>2.0-beta-8</version>
<configuration>
<tagBase>https://svn.apache.org/repos/asf/maven/mercury/tags</tagBase>
<autoVersionSubmodules>true</autoVersionSubmodules>
+ <useReleaseProfile>false</useReleaseProfile>
+ <goals>deploy</goals>
+ <arguments>-Prelease</arguments>
</configuration>
</plugin>
<plugin>
@@ -515,6 +529,11 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-release-plugin</artifactId>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
@@ -570,84 +589,82 @@
</plugins>
</build>
+
+
<profiles>
- <profile>
- <id>mercury.install.all</id>
- <activation>
- <property>
- <name>mercury.install.all</name>
- <value>true</value>
- </property>
- </activation>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-enforcer-plugin</artifactId>
- <version>1.0-alpha-3</version>
- <executions>
- <execution>
- <goals>
- <goal>enforce</goal>
- </goals>
- <configuration>
- <rules>
- <requireMavenVersion>
- <version>[2.0.9,)</version>
- </requireMavenVersion>
- <requireJavaVersion>
- <version>1.5.0</version>
- </requireJavaVersion>
- </rules>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>cobertura-maven-plugin</artifactId>
- <version>2.0</version>
- <executions>
- <execution>
- <id>clean</id>
- <goals>
- <goal>clean</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-javadoc-plugin</artifactId>
- <version>2.2</version>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-source-plugin</artifactId>
- <executions>
- <execution>
- <id>attach-sources</id>
- <goals>
- <goal>jar</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-javadoc-plugin</artifactId>
- <executions>
- <execution>
- <id>attach-javadocs</id>
- <goals>
- <goal>jar</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
+
+<profile>
+ <id>release</id>
+ <build>
+ <plugins>
+ <!-- We want to sign the artifact, the POM, and all attached artifacts -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-gpg-plugin</artifactId>
+ <configuration>
+ <passphrase>${gpg.passphrase}</passphrase>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>sign</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <!-- We want to deploy the artifact to a staging location for perusal -->
+ <plugin>
+ <inherited>true</inherited>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <configuration>
+ <altDeploymentRepository>${deploy.altRepository}</altDeploymentRepository>
+ <updateReleaseInfo>true</updateReleaseInfo>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>attach-sources</id>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <encoding>${project.build.sourceEncoding}</encoding>
+ </configuration>
+ <executions>
+ <execution>
+ <id>attach-javadocs</id>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <!--plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>clirr-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>clirr-check</id>
+ <phase>package</phase>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin-->
+ </plugins>
+ </build>
+</profile>
<profile>
<id>reporting-aggregate</id>